From 76c7c45990dc9fd689cc240e6185d68532545d25 Mon Sep 17 00:00:00 2001 From: Akitake Date: Mon, 1 Jul 2024 08:53:43 +0200 Subject: [PATCH] Add DDR A3 --- SUPPORTED.md | 2 + patches/MDX-65d547f3_8fd24.json | 55 +++ patches/MDX-66050e15_1c0a74.json | 667 +++++++++++++++++++++++++++++++ patches/MDX-660511b3_165389.json | 115 ++++-- 4 files changed, 816 insertions(+), 23 deletions(-) create mode 100644 patches/MDX-65d547f3_8fd24.json create mode 100644 patches/MDX-66050e15_1c0a74.json diff --git a/SUPPORTED.md b/SUPPORTED.md index 8b10621..5aca9b2 100644 --- a/SUPPORTED.md +++ b/SUPPORTED.md @@ -206,7 +206,9 @@ Patches for which we don't know the corresponding game version. | Codename | Filename | Version | Identifier | |----------|----------|---------|------------| | MDX-001 | gamemdx.dll | 2024-04-02 | [MDX-660511b3_165389](patches/MDX-660511b3_165389.json) | +| MDX-003 | gamemdx.dll | 2024-04-02 | [MDX-66050e15_1c0a74](patches/MDX-66050e15_1c0a74.json) | | MDX-001 | arkmdxp3.dll | 2024-04-02 | [MDX-65d547e4_74f1b](patches/MDX-65d547e4_74f1b.json) | +| MDX-003 | arkmdxbio2.dll | 2024-04-02 | [MDX-65d547f3_8fd24](patches/MDX-65d547f3_8fd24.json) | ## Dancerush Stardom (DRS) diff --git a/patches/MDX-65d547f3_8fd24.json b/patches/MDX-65d547f3_8fd24.json new file mode 100644 index 0000000..bed2fd2 --- /dev/null +++ b/patches/MDX-65d547f3_8fd24.json @@ -0,0 +1,55 @@ +[ + { + "name": "Mode Layout", + "description": "Changes resolution based on sceen type, among other things", + "gameCode": "MDX", + "type": "union", + "patches": [ + { + "name": "0 - SD", + "type": "union", + "patch": { + "dllName": "arkmdxbio2.dll", + "data": "00", + "offset": 516633 + } + }, + { + "name": "1 - SD", + "type": "union", + "patch": { + "dllName": "arkmdxbio2.dll", + "data": "01", + "offset": 516633 + } + }, + { + "name": "2 - HD (Default)", + "type": "union", + "patch": { + "dllName": "arkmdxbio2.dll", + "data": "02", + "offset": 516633 + } + }, + { + "name": "3 - HD", + "type": "union", + "patch": { + "dllName": "arkmdxbio2.dll", + "data": "03", + "offset": 516633 + } + }, + { + "name": "4 - HD (Gold)", + "type": "union", + "patch": { + "dllName": "arkmdxbio2.dll", + "data": "04", + "offset": 516633 + } + } + ] + } +] \ No newline at end of file diff --git a/patches/MDX-66050e15_1c0a74.json b/patches/MDX-66050e15_1c0a74.json new file mode 100644 index 0000000..eca229b --- /dev/null +++ b/patches/MDX-66050e15_1c0a74.json @@ -0,0 +1,667 @@ +[ + { + "name": "Force enable fast/slow", + "description": "", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1658896, + "dllName": "gamemdx.dll", + "dataDisabled": "8B4148C3CCCC", + "dataEnabled": "B801000000C3" + } + ] + }, + { + "name": "Force background judgement", + "description": "", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1200096, + "dllName": "gamemdx.dll", + "dataDisabled": "8B4144C3CCCC", + "dataEnabled": "B801000000C3" + } + ] + }, + { + "name": "Force darkest background", + "description": "", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1203233, + "dllName": "gamemdx.dll", + "dataDisabled": "750333C0", + "dataEnabled": "33C0B003" + } + ] + }, + { + "name": "Opaque background for darkest background option", + "description": "This makes the darkest background option be 99% opaque, hiding the dancers and videos.", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 2651312, + "dllName": "gamemdx.dll", + "dataDisabled": "666666", + "dataEnabled": "A4707D" + } + ] + }, + { + "name": "Song Unlock", + "description": "", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1066501, + "dllName": "gamemdx.dll", + "dataDisabled": "7507", + "dataEnabled": "9090" + }, + { + "offset": 1066503, + "dllName": "gamemdx.dll", + "dataDisabled": "32C0", + "dataEnabled": "B001" + }, + { + "offset": 2593784, + "dllName": "gamemdx.dll", + "dataDisabled": "65", + "dataEnabled": "62" + }, + { + "offset": 2593800, + "dllName": "gamemdx.dll", + "dataDisabled": "65", + "dataEnabled": "62" + }, + { + "offset": 2593808, + "dllName": "gamemdx.dll", + "dataDisabled": "72", + "dataEnabled": "62" + }, + { + "offset": 2593816, + "dllName": "gamemdx.dll", + "dataDisabled": "6C", + "dataEnabled": "62" + }, + { + "offset": 2593832, + "dllName": "gamemdx.dll", + "dataDisabled": "6C", + "dataEnabled": "62" + } + ] + }, + { + "name": "Tutorial Skip", + "description": "", + "caution": "Not recommended with cards on networks", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 432169, + "dllName": "gamemdx.dll", + "dataDisabled": "75", + "dataEnabled": "EB" + } + ] + }, + { + "name": "Timer Freeze", + "description": "", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 209776, + "dllName": "gamemdx.dll", + "dataDisabled": "74", + "dataEnabled": "EB" + } + ] + }, + { + "name": "Force unlock extended paseli exclusive options", + "description": "Premium mode options such as ARROW COLOR and 0.25 speed mod", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 587141, + "dllName": "gamemdx.dll", + "dataDisabled": "33D2", + "dataEnabled": "8BD1" + } + ] + }, + { + "name": "Enable extended speed modifiers", + "description": "x4.25/x7.75", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1201202, + "dllName": "gamemdx.dll", + "dataDisabled": "0F8FD6010000", + "dataEnabled": "909090909090" + } + ] + }, + { + "name": "Enable FLARE Gauges", + "description": "", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1201493, + "dllName": "gamemdx.dll", + "dataDisabled": "33D2", + "dataEnabled": "9090" + } + ] + }, + { + "name": "Enable LIFE8 modifier", + "description": "Must be in premium mode to select", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1201678, + "dllName": "gamemdx.dll", + "dataDisabled": "32C0", + "dataEnabled": "B001" + } + ] + }, + { + "name": "PFC Mode", + "description": "Like Extra Encore Stage. If you hit a Great or a Good, you lose a life. This feature requires you to select LIFE8/LIFE4/RISKY on the Options, otherwise it has no effect.", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1202357, + "dllName": "gamemdx.dll", + "dataDisabled": "0F96C0", + "dataEnabled": "B00190" + } + ] + }, + { + "name": "GFC Mode", + "description": "Like PFC Mode with Greats permitted.", + "caution": "Requires PFC Mode to be enabled and MFC Mode to be disabled.", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1202384, + "dllName": "gamemdx.dll", + "dataDisabled": "A6", + "dataEnabled": "92" + } + ] + }, + { + "name": "MFC Mode", + "description": "Like PFC Mode with Marvelous' only.", + "caution": "Requires PFC Mode to be enabled and GFC Mode to be disabled.", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1202380, + "dllName": "gamemdx.dll", + "dataDisabled": "92", + "dataEnabled": "A6" + } + ] + }, + { + "name": "Hide all bottom text", + "description": "Such as EVENT MODE, PASELI, COIN, CREDIT, MAINTENANCE", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1998656, + "dllName": "gamemdx.dll", + "dataDisabled": "4556454E54204D4F44450000000000004652454520504C41590000005300000020000000544F4B454E000000434F494E0000000000000000257325733A2532642F2532640000000043524544495425733A25326400000000303030303000000030303030303000002A2A2A2A2A2A0000504153454C493A202573202B20257300504153454C493A202573000000000000455854524120504153454C493A2025730000000000000000504153454C493A204E4F5420415641494C41424C450000004C4F43414C204D4F44450000000000004F46464C494E45204D4F4445000000004D41494E54454E414E43450000000000434845434B494E470000000000000000434845434B494E472E00000000000000434845434B494E472E2E000000000000434845434B494E472E2E2E004F4E4C494E4500004552524F52000000000000004E4F5420415641494C41424C45", + "dataEnabled": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + ] + }, + { + "name": "Force Cabinet Type 6", + "description": "Gold cab", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 69452, + "dllName": "gamemdx.dll", + "dataDisabled": "02", + "dataEnabled": "06" + }, + { + "offset": 69481, + "dllName": "gamemdx.dll", + "dataDisabled": "0F88", + "dataEnabled": "90E9" + } + ] + }, + { + "name": "Enable DDR SELECTION", + "description": "Even works in offline/local mode!", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 1192498, + "dllName": "gamemdx.dll", + "dataDisabled": "32C0", + "dataEnabled": "B001" + } + ] + }, + { + "name": "Fake PFREE - Force 2nd stage forever with saving", + "description": "Bug: ghost score pacemaker indicator doesn't reload in the same round if a new best is achieved", + "caution": "Make sure your network supports this before enabling.", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 162627, + "dllName": "gamemdx.dll", + "dataDisabled": "01", + "dataEnabled": "00" + }, + { + "offset": 162641, + "dllName": "gamemdx.dll", + "dataDisabled": "FF41084533C0", + "dataEnabled": "E9FB67190090" + }, + { + "offset": 1827665, + "dllName": "gamemdx.dll", + "dataDisabled": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", + "dataEnabled": "C74108010000004533C0E9F797E6FF" + }, + { + "offset": 91366, + "dllName": "gamemdx.dll", + "dataDisabled": "FFE1", + "dataEnabled": "9090" + }, + { + "offset": 91439, + "dllName": "gamemdx.dll", + "dataDisabled": "7469", + "dataEnabled": "9090" + } + ] + }, + { + "name": "Mute Announcer", + "description": "Also mutes crowd cheering and booing during gameplay", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 220697, + "dllName": "gamemdx.dll", + "dataDisabled": "0F84", + "dataEnabled": "90E9" + }, + { + "offset": 2511655, + "dllName": "gamemdx.dll", + "dataDisabled": "76", + "dataEnabled": "62" + }, + { + "offset": 2511687, + "dllName": "gamemdx.dll", + "dataDisabled": "76", + "dataEnabled": "62" + } + ] + }, + { + "name": "Force DDR SELECTION theme everywhere", + "description": "Skips intro and enables the skin selected below on all songs", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 203990, + "dllName": "gamemdx.dll", + "dataDisabled": "0F84", + "dataEnabled": "90E9" + }, + { + "offset": 1189745, + "dllName": "gamemdx.dll", + "dataDisabled": "7552", + "dataEnabled": "9090" + }, + { + "offset": 1189756, + "dllName": "gamemdx.dll", + "dataDisabled": "743C", + "dataEnabled": "9090" + }, + { + "offset": 1189760, + "dllName": "gamemdx.dll", + "dataDisabled": "74", + "dataEnabled": "EB" + } + ] + }, + { + "name": "Choose forced theme", + "description": "", + "gameCode": "MDX", + "type": "union", + "patches": [ + { + "name": "1st", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "01", + "offset": 1189813 + } + }, + { + "name": "EXTREME", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "02", + "offset": 1189813 + } + }, + { + "name": "SuperNOVA2", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "03", + "offset": 1189813 + } + }, + { + "name": "X2", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "04", + "offset": 1189813 + } + }, + { + "name": "2013", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "05", + "offset": 1189813 + } + } + ] + }, + { + "name": "Choose cabinet type timing offset", + "description": "Set \"Force LCD 945 p3io timing\" for individual offsets below", + "gameCode": "MDX", + "type": "union", + "patches": [ + { + "name": "Default", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "E89BCFFEFF", + "offset": 147360 + } + }, + { + "name": "Force LCD 945 p3io timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B800000000", + "offset": 147360 + } + }, + { + "name": "Force LCD HM65 p4io timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B801000000", + "offset": 147360 + } + }, + { + "name": "Force CRT 945 p3io timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B802000000", + "offset": 147360 + } + }, + { + "name": "Force CRT ADE-6291 p3io timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B803000000", + "offset": 147360 + } + }, + { + "name": "Force LCD ADE-6291 p3io timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B804000000", + "offset": 147360 + } + }, + { + "name": "Force LCD ADE-6291 p4io white timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B805000000", + "offset": 147360 + } + }, + { + "name": "Force LCD ADE-6291 bio2 gold timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B806000000", + "offset": 147360 + } + }, + { + "name": "Force LCD X10 bio2 timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B807000000", + "offset": 147360 + } + }, + { + "name": "Force LCD ADE-6291 bio2 white timing", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "B808000000", + "offset": 147360 + } + } + ] + }, + { + "name": "Sound Offset", + "description": "Default = 87", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 146881, + "min": 0, + "max": 1000, + "size": 4 + } + }, + { + "name": "Input Offset", + "description": "Default = 28", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 146900, + "min": 0, + "max": 1000, + "size": 4 + } + }, + { + "name": "Render Offset", + "description": "Default = 17", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 146920, + "min": 0, + "max": 1000, + "size": 4 + } + }, + { + "name": "Center arrows for single player", + "description": "", + "gameCode": "MDX", + "type": "memory", + "patches": [ + { + "offset": 308234, + "dllName": "gamemdx.dll", + "dataDisabled": "75", + "dataEnabled": "EB" + }, + { + "offset": 309012, + "dllName": "gamemdx.dll", + "dataDisabled": "4C0F45C9", + "dataEnabled": "90909090" + }, + { + "offset": 310510, + "dllName": "gamemdx.dll", + "dataDisabled": "8B5C2438EB248BDF895C2438", + "dataEnabled": "BBEF010000895C2438EB1F90" + }, + { + "offset": 310739, + "dllName": "gamemdx.dll", + "dataDisabled": "EB1648894424384889442440", + "dataEnabled": "C7442438EF010000EB0E9090" + } + ] + }, + { + "name": "Fullscreen FPS Target", + "description": "", + "caution": "Experimental: fast animations and menu scrolling", + "gameCode": "MDX", + "type": "union", + "patches": [ + { + "name": "60 FPS", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "3C000000", + "offset": 5929 + } + }, + { + "name": "120 FPS", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "78000000", + "offset": 5929 + } + }, + { + "name": "144 FPS", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "90000000", + "offset": 5929 + } + }, + { + "name": "165 FPS", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "A5000000", + "offset": 5929 + } + }, + { + "name": "240 FPS", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "F0000000", + "offset": 5929 + } + }, + { + "name": "360 FPS", + "type": "union", + "patch": { + "dllName": "gamemdx.dll", + "data": "68010000", + "offset": 5929 + } + } + ] + } +] \ No newline at end of file diff --git a/patches/MDX-660511b3_165389.json b/patches/MDX-660511b3_165389.json index 1e8c906..7d16f71 100644 --- a/patches/MDX-660511b3_165389.json +++ b/patches/MDX-660511b3_165389.json @@ -108,6 +108,7 @@ { "name": "Tutorial Skip", "description": "", + "caution": "Not recommended with cards on networks", "gameCode": "MDX", "type": "memory", "patches": [ @@ -140,10 +141,28 @@ "type": "memory", "patches": [ { - "offset": 451609, + "offset": 451657, "dllName": "gamemdx.dll", - "dataDisabled": "FF248D6CF90610", - "dataEnabled": "E9110100009090" + "dataDisabled": "33FF8BC3C7420402000000", + "dataEnabled": "E9421FFCFF909090909090" + }, + { + "offset": 197520, + "dllName": "gamemdx.dll", + "dataDisabled": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", + "dataEnabled": "BF010000008BC3C7420402000000E9B1E00300" + }, + { + "offset": 452100, + "dllName": "gamemdx.dll", + "dataDisabled": "33FF8BC3C7420403000000", + "dataEnabled": "E9868CFCFF909090909090" + }, + { + "offset": 225935, + "dllName": "gamemdx.dll", + "dataDisabled": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", + "dataEnabled": "BF010000008BC3C7420403000000E96D730300" } ] }, @@ -206,6 +225,7 @@ { "name": "GFC Mode", "description": "Like PFC Mode with Greats permitted.", + "caution": "Requires PFC Mode to be enabled and MFC Mode to be disabled.", "gameCode": "MDX", "type": "memory", "patches": [ @@ -220,6 +240,7 @@ { "name": "MFC Mode", "description": "Like PFC Mode with Marvelous' only.", + "caution": "Requires PFC Mode to be enabled and GFC Mode to be disabled.", "gameCode": "MDX", "type": "memory", "patches": [ @@ -245,26 +266,6 @@ } ] }, - { - "name": "Autoplay", - "description": "", - "gameCode": "MDX", - "type": "memory", - "patches": [ - { - "offset": 209987, - "dllName": "gamemdx.dll", - "dataDisabled": "7440", - "dataEnabled": "9090" - }, - { - "offset": 209998, - "dllName": "gamemdx.dll", - "dataDisabled": "7452", - "dataEnabled": "9090" - } - ] - }, { "name": "Force Cabinet Type 6", "description": "Gold cab, some assets (such as menu background) may not work", @@ -296,6 +297,7 @@ { "name": "Enable cabinet lights for Cabinet Type 6", "description": "", + "caution": "Doesn't support arkmdxp3.dll Mode Layout Gold patch", "gameCode": "MDX", "type": "memory", "patches": [ @@ -336,6 +338,7 @@ { "name": "Fake PFREE - Force 2nd stage forever with saving", "description": "Bug: ghost score pacemaker indicator doesn't reload in the same round if a new best is achieved", + "caution": "Make sure your network supports this before enabling", "gameCode": "MDX", "type": "memory", "patches": [ @@ -559,6 +562,71 @@ } ] }, + { + "name": "Sound Offset", + "description": "Default = 87", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 126660, + "min": 0, + "max": 1000, + "size": 4 + } + }, + { + "name": "Input Offset", + "description": "Default = 28", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 126640, + "min": 0, + "max": 1000, + "size": 4 + } + }, + { + "name": "Render Offset", + "description": "Default = 17", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 126692, + "min": 0, + "max": 1000, + "size": 4 + } + }, + { + "name": "Bomb Frame Offset", + "description": "Default = 0", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 126891, + "min": 0, + "max": 10, + "size": 4 + } + }, + { + "name": "High Precision Input", + "description": "Default = 1", + "gameCode": "MDX", + "type": "number", + "patch": { + "dllName": "gamemdx.dll", + "offset": 126645, + "min": 0, + "max": 1, + "size": 4 + } + }, { "name": "Center arrows for single player", "description": "", @@ -606,6 +674,7 @@ { "name": "Fullscreen FPS Target", "description": "", + "caution": "Experimental: fast animations and menu scrolling", "gameCode": "MDX", "type": "union", "patches": [