From 7f5511307a9da5fe7ad4c7952322434e6edfb84a Mon Sep 17 00:00:00 2001 From: sup39 Date: Sat, 15 Jul 2023 12:33:27 +0900 Subject: [PATCH] Ported 'FastForward', 'InstantRestart', 'SpawnYoshi', 'StageIntroSkip' to all versions --- Codes.xml | 275 ++++++++++++++---- changelog.md | 3 + .../codes/InstantRestart/codegen.js | 59 +--- 3 files changed, 225 insertions(+), 112 deletions(-) diff --git a/Codes.xml b/Codes.xml index a16a97e..63ca78d 100644 --- a/Codes.xml +++ b/Codes.xml @@ -4193,62 +4193,75 @@ 0.2.0 Apr 28, 2022 - When you pressed the buttons configured in [#Button Config](#config) simultaneously, - you can restart the current area without selecting "Exit Area" in pause menu. - Note that the restart function behaves differently than pressing Y or Z with "Level Select". - This code only supports restarting 1 area only. - For example, you can restart outside a secret stage or inside a secret stage individually, - but you can NOT restart a combination of outside+inside a secret stage. + When you pressed the buttons configured in [#Button Config](#config) simultaneously, + you can restart the current area without selecting "Exit Area" in pause menu. + Note that the restart function behaves differently than pressing Y or Z with "Level Select". + This code only supports restarting 1 area only. + For example, you can restart outside a secret stage or inside a secret stage individually, + but you can NOT restart a combination of outside+inside a secret stage. - ::: warning - You can NOT restart after destroying the last platform in Bowser fight at the moment. - ::: + ::: warning + You can NOT restart after destroying the last platform in Bowser fight at the moment. + ::: - [#ボタン設定](#config)で設定したボタンを同時に押すと、ポーズメニューから「コースから出る」を選択せずに所在のエリアをやり直すことができます。ただし、Level SelectのYとZのやり直し機能と異なり、エリアごとのやり直ししかできないので注意してください。例えば、ヒミツ外部のみ、ヒミツ内部のみといった一つのエリアのやり直しはできますが、ヒミツ外部+ヒミツ内部といった組み合わせのやり直しはできません。 + [#ボタン設定](#config)で設定したボタンを同時に押すと、ポーズメニューから「コースから出る」を選択せずに所在のエリアをやり直すことができます。ただし、Level SelectのYとZのやり直し機能と異なり、エリアごとのやり直ししかできないので注意してください。例えば、ヒミツ外部のみ、ヒミツ内部のみといった一つのエリアのやり直しはできますが、ヒミツ外部+ヒミツ内部といった組み合わせのやり直しはできません。 - ::: warning - 現時点ではクッパ戦で最後の足場を破壊するとやり直しできません。 - ::: + ::: warning + 現時点ではクッパ戦で最後の足場を破壊するとやり直しできません。 + ::: - C20EAFA0 0000000A - 3C608040 A0A30D50 - 28050808 40A20038 - 3C60817F 38A00001 - 98A300B3 98A30100 - 3C60803E 84A3600E - 90A30004 38A00040 - 90A30000 3C60800E - 6063B3F8 7C6803A6 - 4E800020 2C000002 - 60000000 00000000 - - - C227768C 0000000A - 3C60803F A0A35428 - 28050808 40A20038 - 3C60817F 38A00001 - 98A300B3 98A30100 - 3C60803E 84A3A8EE - 90A30004 38A00040 - 90A30000 3C608027 - 60637AE4 7C6803A6 - 4E800020 2C000002 - 60000000 00000000 + C20EAFA0 0000000A + 3C608040 A0A30D50 + 28050208 40A20038 + 3C60817F 38A00001 + 98A300B3 98A30100 + 3C60803E 84A3600E + 90A30004 38A00040 + 90A30000 3C60800E + 6063B3F8 7C6803A6 + 4E800020 2C000002 + 60000000 00000000 - C22979E4 0000000A - 3C608040 A0A34454 - 28050808 40A20038 - 3C60817F 38A00001 - 98A300B3 98A30100 - 3C60803F 84A3970E - 90A30004 38A00040 - 90A30000 3C608029 - 60637E3C 7C6803A6 - 4E800020 2C000002 - 60000000 00000000 + C22979E4 0000000A + 3C608040 A0A34454 + 28050208 40A20038 + 3C60817F 38A00001 + 98A300B3 98A30100 + 3C60803F 84A3970E + 90A30004 38A00040 + 90A30000 3C608029 + 60637E3C 7C6803A6 + 4E800020 2C000002 + 60000000 00000000 + + + C228F87C 0000000A + 3C608040 A0A3BBF4 + 28050208 40A20038 + 3C60817F 38A00001 + 98A300B3 98A30100 + 3C60803E 84A310CE + 90A30004 38A00040 + 90A30000 3C608028 + 6063FCD4 7C6803A6 + 4E800020 2C000002 + 60000000 00000000 + + + C227768C 0000000A + 3C60803F A0A35428 + 28050208 40A20038 + 3C60817F 38A00001 + 98A300B3 98A30100 + 3C60803E 84A3A8EE + 90A30004 38A00040 + 90A30000 3C608027 + 60637AE4 7C6803A6 + 4E800020 2C000002 + 60000000 00000000 @@ -4331,22 +4344,77 @@ 70000061 4C423102 60000000 00000000 28400D51 00000024 - 040ECF14 b01a004c - 040ec5d0 70000061 + 040ECF14 B01A004C + 040EC5D0 70000061 + E0000000 00000000 + + + 28404454 00000028 + C2299990 0000000A + 899A0064 2C0C0001 + 40A20040 819A0074 + 818C0094 816C02B8 + 2C0B0003 41A1002C + 41A00018 3D80803F + 818C9734 39600000 + 916C0018 48000014 + 3863000F 907A0054 + 3B800000 48000008 + B01A004C 00000000 + C229904C 00000004 + 807F0074 80630094 + 806302B8 2C830000 + 70000061 4C423102 + 60000000 00000000 + 28404455 00000024 + 04299990 B01A004C + 0429904C 70000061 + E0000000 00000000 + + + 283FBBF4 00000028 + C2291828 0000000A + 899A0064 2C0C0001 + 40A20040 819A0074 + 818C0094 816C08DC + 2C0B0003 41A1002C + 41A00018 3D80803E + 818C10F4 39600000 + 916C0018 48000014 + 3863000F 907A0054 + 3B800000 48000008 + B01A004C 00000000 + C2290EE4 00000004 + 807F0074 80630094 + 806308DC 2C830000 + 70000061 4C423102 + 60000000 00000000 + 283FBBF5 00000024 + 04291828 B01A004C + 04290EE4 70000061 E0000000 00000000 283F5428 00000028 - C2279640 00000005 + C2279640 0000000A 899A0064 2C0C0001 - 4182000C B01A004C - 48000010 3863000F - 907A0054 3B800000 + 40A20040 819A0074 + 818C0094 816C02BC + 2C0B0003 41A1002C + 41A00018 3D80803E + 818CA914 39600000 + 916C0018 48000014 + 3863000F 907A0054 + 3B800000 48000008 + B01A004C 00000000 + C2278CFC 00000004 + 807F0074 80630094 + 806302BC 2C830000 + 70000061 4C423102 60000000 00000000 - 04278D00 60000000 283F5429 00000024 04279640 B01A004C - 04278D00 418204EC + 04278CFC 70000061 E0000000 00000000 @@ -4398,6 +4466,75 @@ 4E800021 A01F00FC 60000000 00000000 + + C228102C 0000000A + 807F03F0 3C808040 + A0844454 54800436 + 2C000800 40820034 + 54840EFD 4182002C + 3C006300 5C0027BE + 980300D0 80030008 + 9003000C 807F03F0 + 3D808028 618C11A8 + 7D8803A6 4E800020 + 60000000 00000000 + C21BC5C4 00000009 + 3C808040 A0844454 + 54800436 2C000800 + 4082002C 54840EFD + 41820024 806D9F28 + 806303F0 93E300F0 + 7FE3FB78 81830000 + 818C0104 7D8803A6 + 4E800021 A01F00FC + 60000000 00000000 + + + C2278DB8 0000000A + 807F03F0 3C808040 + A084BBF4 54800436 + 2C000800 40820034 + 54840EFD 4182002C + 3C006300 5C0027BE + 980300D0 80030008 + 9003000C 807F03F0 + 3D808027 618C8F34 + 7D8803A6 4E800020 + 60000000 00000000 + C21B447C 00000009 + 3C808040 A084BBF4 + 54800436 2C000800 + 4082002C 54840EFD + 41820024 806D9E50 + 806303F0 93E300F0 + 7FE3FB78 81830000 + 818C0104 7D8803A6 + 4E800021 A01F00FC + 60000000 00000000 + + + C2260D7C 0000000A + 807F03F0 3C80803F + A0845428 54800436 + 2C000800 40820034 + 54840EFD 4182002C + 3C006300 5C0027BE + 980300D0 80030008 + 9003000C 807F03F0 + 3D808026 618C0EF8 + 7D8803A6 4E800020 + 60000000 00000000 + C219C34C 00000009 + 3C80803F A0845428 + 54800436 2C000800 + 4082002C 54840EFD + 41820024 806D9DE8 + 806303F0 93E300F0 + 7FE3FB78 81830000 + 818C0104 7D8803A6 + 4E800021 A01F00FC + 60000000 00000000 + misc @@ -4412,7 +4549,7 @@ | Combination | Result | |---------------|------| |B + D-Pad Left | Fast forward 4x | - |B + D-Pad Right| Fast forward 8x (may cause lag) | + |B + D-Pad Right| Fast forward 8x (lag may occur) | ::: warning SGT will be inaccurate with this code. @@ -4424,18 +4561,34 @@ | ボタン | 効果 | |--------------|------| |B + 十字キー左|4倍速| - |B + 十字キー右|8倍速(ラグが発生する可能性がある)| + |B + 十字キー右|8倍速(ラグが発生する可能性があります)| ::: warning このコードを使うとシャインゲットタイマーのタイムがずれます。 ::: - 020ecde2 00000258 + 020ECDE2 00000258 28400D50 00000201 - 020ecde2 00000960 + 020ECDE2 00000960 28400D51 00000202 - 020ecde2 000012C0 + 020ECDE2 000012C0 + E0000000 00000000 + + + 0229985E 00000258 + 28404454 00000201 + 0229985E 00000960 + 28404455 00000202 + 0229985E 000012C0 + E0000000 00000000 + + + 022916F6 00000258 + 283FBBF4 00000201 + 022916F6 00000960 + 283FBBF5 00000202 + 022916F6 000012C0 E0000000 00000000 diff --git a/changelog.md b/changelog.md index 0256c39..7c64a1d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,7 @@ # Changelog +## Jul 15, 2023 +### Ported 'FastForward', 'InstantRestart', 'SpawnYoshi', 'StageIntroSkip' to all versions + ## Jul 9, 2023 ### Updated 'Level Select' The peaceful plaza (after unlocking Ricco and Gelato) is now available as C↘ + Y, later plazas have their shortcuts moved clockwise, and the post-Corona plaza no longer has a dedicated shortcut. To access it, simply load Corona (X with neutral C stick) or Bowser (C↖ + Y + L) then exit to the plaza. diff --git a/site/.vuepress/components/codes/InstantRestart/codegen.js b/site/.vuepress/components/codes/InstantRestart/codegen.js index 9f6dfc2..ba78cfb 100644 --- a/site/.vuepress/components/codes/InstantRestart/codegen.js +++ b/site/.vuepress/components/codes/InstantRestart/codegen.js @@ -14,56 +14,15 @@ export const buttonValues = { DR: 0x0002, DL: 0x0001, }; - -const baseCodes = { - GMSJ01: (b) => ` -C20EAFA0 0000000A -3C608040 A0A30D50 -2805${b} 40A20038 -3C60817F 38A00001 -98A300B3 98A30100 -3C60803E 84A3600E -90A30004 38A00040 -90A30000 3C60800E -6063B3F8 7C6803A6 -4E800020 2C000002 -60000000 00000000 -`, - GMSJ0A: (b) => ` -C227768C 0000000A -3C60803F A0A35428 -2805${b} 40A20038 -3C60817F 38A00001 -98A300B3 98A30100 -3C60803E 84A3A8EE -90A30004 38A00040 -90A30000 3C608027 -60637AE4 7C6803A6 -4E800020 2C000002 -60000000 00000000 -`, - GMSE01: (b) => ` -C22979E4 0000000A -3C608040 A0A34454 -2805${b} 40A20038 -3C60817F 38A00001 -98A300B3 98A30100 -3C60803F 84A3970E -90A30004 38A00040 -90A30000 3C608029 -60637E3C 7C6803A6 -4E800020 2C000002 -60000000 00000000 -`, -}; const zCodes = { - GMSJ01: '040eb024 60000000', - GMSJ0A: '04277710 60000000', - GMSE01: '04297A68 60000000', + GMSJ01: '040EB02460000000', + GMSE01: '04297A6860000000', + GMSP01: '0428F90060000000', + GMSJ0A: '0427771060000000', }; export const defaultConfig = { - button: buttonValues.Y | buttonValues.DU, + button: buttonValues.B | buttonValues.DU, }; export function getConfig() { return { @@ -71,13 +30,11 @@ export function getConfig() { ...(parseJSON(localStorage.getItem(lskey)) ?? {}), }; } -export default function codegen(version) { +export default function codegen(version, src) { const { button } = getConfig(); - const g = baseCodes[version]; - if (g == null) return ''; - let code = g(button.toString(16).padStart(4, '0')); + let code = src.slice(0, 36) + button.toString(16).padStart(4, '0') + src.slice(40); if (button & buttonValues.Z) { code += zCodes[version]; } - return code.replace(/\s/g, ''); + return code; }