commit 8b4d6e715abf207287b3c103e35115a90a66d94e Author: sup39 Date: Mon Apr 25 19:25:58 2022 +0900 add instant-restart, fast-forward, skip-intro-cutscenes diff --git a/NTSC-J_1.0/fast-forward.txt b/NTSC-J_1.0/fast-forward.txt new file mode 100644 index 0000000..696068a --- /dev/null +++ b/NTSC-J_1.0/fast-forward.txt @@ -0,0 +1,6 @@ +020ecde2 00000258 +28400D50 00000204 +020ecde2 00000960 +28400D51 00000208 +020ecde2 000012C0 +E0000000 00000000 diff --git a/NTSC-J_1.0/instant-restart.txt b/NTSC-J_1.0/instant-restart.txt new file mode 100644 index 0000000..08e9461 --- /dev/null +++ b/NTSC-J_1.0/instant-restart.txt @@ -0,0 +1,10 @@ +C20EAFA0 00000009 +3C608040 A0A30D50 +28050808 40A20030 +3C60817F 38A00001 +98A300B3 98A30100 +3C60803E 84A3600E +90A30004 3C60800E +6063B3F8 7C6803A6 +4E800020 2C000002 +60000000 00000000 diff --git a/NTSC-J_1.0/skip-intro-cutscenes.txt b/NTSC-J_1.0/skip-intro-cutscenes.txt new file mode 100644 index 0000000..59fec4b --- /dev/null +++ b/NTSC-J_1.0/skip-intro-cutscenes.txt @@ -0,0 +1,13 @@ +$ Skip intro cutscenes (v0.1.0, 2022/03/10) [sup39] +28400D50 00000028 +C20ECF14 00000005 +899A0064 2C0C0001 +4182000C B01A004C +48000010 3863000F +907A0054 3B800000 +60000000 00000000 +040ec5d4 60000000 +28400D51 00000024 +040ECF14 b01a004c +040ec5d4 418204ec +E0000000 00000000 diff --git a/NTSC-J_1.1/fast-forward.txt b/NTSC-J_1.1/fast-forward.txt new file mode 100644 index 0000000..687dcfc --- /dev/null +++ b/NTSC-J_1.1/fast-forward.txt @@ -0,0 +1,6 @@ +0227950E 00000258 +283F5428 00000204 +0227950E 00000960 +283F5429 00000208 +0227950E 000012C0 +E0000000 00000000 \ No newline at end of file diff --git a/NTSC-J_1.1/instant-restart.txt b/NTSC-J_1.1/instant-restart.txt new file mode 100644 index 0000000..29f8f6a --- /dev/null +++ b/NTSC-J_1.1/instant-restart.txt @@ -0,0 +1,10 @@ +C227768C 00000009 +3C60803F A0A35428 +28050808 40A20030 +3C60817F 38A00001 +98A300B3 98A30100 +3C60803E 84A3A8EE +90A30004 3C608027 +60637AE4 7C6803A6 +4E800020 2C000002 +60000000 00000000 diff --git a/NTSC-J_1.1/skip-intro-cutscenes.txt b/NTSC-J_1.1/skip-intro-cutscenes.txt new file mode 100644 index 0000000..8857d1f --- /dev/null +++ b/NTSC-J_1.1/skip-intro-cutscenes.txt @@ -0,0 +1,13 @@ +$ Skip intro cutscenes (v0.1.0, 2022/04/25) [sup39] +283F5428 00000028 +C2279640 00000005 +899A0064 2C0C0001 +4182000C B01A004C +48000010 3863000F +907A0054 3B800000 +60000000 00000000 +04278D00 60000000 +283F5429 00000024 +04279640 B01A004C +04278D00 418204EC +E0000000 00000000 diff --git a/NTSC-U/instant-restart.txt b/NTSC-U/instant-restart.txt new file mode 100644 index 0000000..24d27de --- /dev/null +++ b/NTSC-U/instant-restart.txt @@ -0,0 +1,10 @@ +C22979E4 00000009 +3C608040 A0A34454 +28050808 40A20030 +3C60817F 38A00001 +98A300B3 98A30100 +3C60803F 84A3970E +90A30004 3C608029 +60637E3C 7C6803A6 +4E800020 2C000002 +60000000 00000000 diff --git a/NTSC-U/skip-intro-cutscenes.txt b/NTSC-U/skip-intro-cutscenes.txt new file mode 100644 index 0000000..e81309f --- /dev/null +++ b/NTSC-U/skip-intro-cutscenes.txt @@ -0,0 +1,13 @@ +$ Skip intro cutscenes (v0.1.0, 2022/04/25) [sup39] +28404454 00000028 +C2299990 00000005 +899A0064 2C0C0001 +4182000C B01A004C +48000010 3863000F +907A0054 3B800000 +60000000 00000000 +04299050 60000000 +28404455 00000024 +04299990 B01A004C +04299050 418204EC +E0000000 00000000 diff --git a/PAL/instant-restart.txt b/PAL/instant-restart.txt new file mode 100644 index 0000000..9c94e49 --- /dev/null +++ b/PAL/instant-restart.txt @@ -0,0 +1,10 @@ +C228F87C 00000009 +3C608040 A0A3BBF4 +28050808 40A20030 +3C60817F 38A00001 +98A300B3 98A30100 +3C60803E 84A310CE +90A30004 3C608028 +6063FCD4 7C6803A6 +4E800020 2C000002 +60000000 00000000 diff --git a/PAL/skip-intro-cutscenes.txt b/PAL/skip-intro-cutscenes.txt new file mode 100644 index 0000000..b1b8697 --- /dev/null +++ b/PAL/skip-intro-cutscenes.txt @@ -0,0 +1,13 @@ +$ Skip intro cutscenes (v0.1.0, 2022/04/25) [sup39] +283FBBF4 00000028 +C2291828 00000005 +899A0064 2C0C0001 +4182000C B01A004C +48000010 3863000F +907A0054 3B800000 +60000000 00000000 +04290EE8 60000000 +283FBBF5 00000024 +04291828 B01A004C +04290EE8 418204EC +E0000000 00000000 diff --git a/README.md b/README.md new file mode 100644 index 0000000..5573404 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# supSMS misc. code +## List of codes +||NTSC-J 1.0|NTSC-J 1.1|NTSC-U|PAL| +|-|:-:|:-:|:-:|:-:| +|[Instant restart](#instant-restart)|◎|◎|?|?| +|[Fast forward](#skip-intro-cutscenes)|◎|◎|?|?| +|[Skip intro cutscenes](#skip-intro-cutscenes)|◎|◎|?|?| + +◎: tested by sup39 +〇: tested by others +?: untested + +## Usage +### Instant restart +- press `Y + D-Pad Up` to restart without pausing + exit area + +You can change the `0808` in the 3rd line to the button input value you want. + +### Fast forward +- press `B + D-Pad Down` to fast forward 4x +- press `B + D-Pad Up` to fast forward 8x (Note: this may cause lag) + +This code handles QFT (but not SGT) properly. + +### Skip intro cutscenes +- press `R + D-Pad Up` to enable +- press `R + D-Pad Down` to disable + +This code do not skip any frames but *fast forward* them. +Therefore, objects will still move as regular in the intro cutscenes, +but without being rendered on the screen. + +This code also handles QFT (but not SGT) properly just like the [Fast forward](#fast-forward) code. + +Note: **You may want to disable it when you are in secret stage and Bowser fight.** diff --git a/src/instant-restart.s b/src/instant-restart.s new file mode 100644 index 0000000..6251177 --- /dev/null +++ b/src/instant-restart.s @@ -0,0 +1,23 @@ +.set C2, 48 + updateGameMode__12TMarDirectorFv +.set aInput, 0 + mPadStatus__10JUTGamePad +.set aArea, 14 + gpApplication +.set aBL, 1160 + updateGameMode__12TMarDirectorFv + +.L_C2: + lis r3, aInput@ha + lhz r5, aInput@l(r3) + cmplwi r5, 0x801 + bne+ .L_done + lis r3, 0x817F + li r5, 0x1 + stb r5, 0xB3(r3) + stb r5, 0x100(r3) + lis r3, aArea@ha + lwzu r5, aArea@l(r3) + stw r5, 4(r3) + lis r3, aBL@h + ori r3, r3, aBL@l + mtlr r3 + blr +.L_done: + cmpwi r0, 0x2