diff --git a/InstantLevelSelectExtra/@code.xml b/InstantLevelSelectExtra/@code.xml
index 7801deb..e21fe31 100644
--- a/InstantLevelSelectExtra/@code.xml
+++ b/InstantLevelSelectExtra/@code.xml
@@ -19,7 +19,8 @@
- Pressing `D-Pad Down` in Plaza has no effect
#### Level Select
- Press `{the following button combination} + D-Pad Up` to warp to other area instantly:
+ Press `{the following button combination} + D-Pad Up` to warp to other area instantly.
+ As the alternatives of `Z` button, you can also press `B` or `Start`.
![Level Select Combinations](/img/levelselect.png)
- For `Z + D-Pad Up`, the current area will be restarted, but the **respawn position will be reset**. It is like `D-Pad Up`, but the respawn position will be the default position instead of the previous one
@@ -47,9 +48,11 @@
#### シャイン選択画面からやり直し
- `十字キー下`で**現在のステージのシャイン選択画面からやり直す**
+ - ポーズ中にこのコードは無効化されます
#### レベル選択
- `{次のボタン}+十字キー上`でレベル選択
+ `{次のボタン}+十字キー上`でレベル選択
+ `Z`ボタンの代わりに`B`か`Start`ボタンを押すこともできます
![レベル選択](/img/levelselect.png)
@@ -66,7 +69,7 @@
4. これで好きなだけハニスキを練習できます。他のエリアに入ろうとする時に自動的にやり直すので、手動でやり直す必要がありません。必要であれば`十字キー上`でやり直すこともできます。
- C20F9B74 0000004D
+ C20F9B74 00000052
3C80817F 816D97D0
3D808040 80AC0D80
20050022 540A043D
@@ -75,25 +78,30 @@
28830001 4C451102
40A2000C 38A00008
90AC0D80 7C7D1B79
- 41820220 70A00004
- 41A20034 881F000E
- 3D40803B 394A40E8
- 7CEA00AE 2C070001
- 40810200 38070001
- 5400EFFE 7CE70214
- 54E7403E 60E700FF
- 480000F8 70A00008
- 41A201E0 4800003D
- 00141516 0017181D
- 34000090 2F2E3020
- 32293328 2A1FBA3C
- 371E213A 0E2C3900
- 00010507 08090200
- 123457D0 24567000
- 12234070 23467001
- 7D2802A6 54A6CF38
- 50A6F77A 50A6E7BC
- 50A6D7FE 54A0C738
+ 41820248 818D97E8
+ 7D8C6379 41820010
+ 880C0064 2C000005
+ 41820230 70A00004
+ 41A20040 881F0008
+ 2C000008 41820034
+ 881F000E 3D40803B
+ 394A40E8 7CEA00AE
+ 2C070001 40810204
+ 38070001 5400EFFE
+ 7CE70214 54E7403E
+ 60E700FF 480000FC
+ 70A00008 41A201E4
+ 4800003D 00141516
+ 0017181D 34000090
+ 2F2E3020 32293328
+ 2A1FBA3C 371E213A
+ 0E2C3900 00010507
+ 08090200 123457D0
+ 24567000 12234070
+ 23467001 7D2802A6
+ 54A6CF3A 50A6E7BC
+ 50A6D7FE 54A0F77A
+ 7CC60378 54A0C738
50A0B77C 7CC60378
54A3873F 41820054
2C030009 41820098
@@ -146,7 +154,7 @@
60000000 00000000
- C22A6170 0000004D
+ C22A6170 00000052
3C80817F 816D9FA0
3D808040 80AC4484
20050022 540A043D
@@ -155,25 +163,30 @@
28830001 4C451102
40A2000C 38A00008
90AC4484 7C7D1B79
- 41820220 70A00004
- 41A20034 881F000E
- 3D40803E 394AF498
- 7CEA00AE 2C070001
- 40810200 38070001
- 5400EFFE 7CE70214
- 54E7403E 60E700FF
- 480000F8 70A00008
- 41A201E0 4800003D
- 00141516 0017181D
- 34000090 2F2E3020
- 32293328 2A1FBA3C
- 371E213A 0E2C3900
- 00010507 08090200
- 123457D0 24567000
- 12234070 23467001
- 7D2802A6 54A6CF38
- 50A6F77A 50A6E7BC
- 50A6D7FE 54A0C738
+ 41820248 818D9FB8
+ 7D8C6379 41820010
+ 880C0064 2C000005
+ 41820230 70A00004
+ 41A20040 881F0008
+ 2C000008 41820034
+ 881F000E 3D40803E
+ 394AF498 7CEA00AE
+ 2C070001 40810204
+ 38070001 5400EFFE
+ 7CE70214 54E7403E
+ 60E700FF 480000FC
+ 70A00008 41A201E4
+ 4800003D 00141516
+ 0017181D 34000090
+ 2F2E3020 32293328
+ 2A1FBA3C 371E213A
+ 0E2C3900 00010507
+ 08090200 123457D0
+ 24567000 12234070
+ 23467001 7D2802A6
+ 54A6CF3A 50A6E7BC
+ 50A6D7FE 54A0F77A
+ 7CC60378 54A0C738
50A0B77C 7CC60378
54A3873F 41820054
2C030009 41820098
@@ -226,7 +239,7 @@
60000000 00000000
- C229E080 0000004D
+ C229E080 00000052
3C80817F 816D9EC8
3D808040 80ACBC24
20050022 540A043D
@@ -235,25 +248,30 @@
28830001 4C451102
40A2000C 38A00008
90ACBC24 7C7D1B79
- 41820220 70A00004
- 41A20034 881F000E
- 3D40803D 394A6DB0
- 7CEA00AE 2C070001
- 40810200 38070001
- 5400EFFE 7CE70214
- 54E7403E 60E700FF
- 480000F8 70A00008
- 41A201E0 4800003D
- 00141516 0017181D
- 34000090 2F2E3020
- 32293328 2A1FBA3C
- 371E213A 0E2C3900
- 00010507 08090200
- 123457D0 24567000
- 12234070 23467001
- 7D2802A6 54A6CF38
- 50A6F77A 50A6E7BC
- 50A6D7FE 54A0C738
+ 41820248 818D9EE0
+ 7D8C6379 41820010
+ 880C0064 2C000005
+ 41820230 70A00004
+ 41A20040 881F0008
+ 2C000008 41820034
+ 881F000E 3D40803D
+ 394A6DB0 7CEA00AE
+ 2C070001 40810204
+ 38070001 5400EFFE
+ 7CE70214 54E7403E
+ 60E700FF 480000FC
+ 70A00008 41A201E4
+ 4800003D 00141516
+ 0017181D 34000090
+ 2F2E3020 32293328
+ 2A1FBA3C 371E213A
+ 0E2C3900 00010507
+ 08090200 123457D0
+ 24567000 12234070
+ 23467001 7D2802A6
+ 54A6CF3A 50A6E7BC
+ 50A6D7FE 54A0F77A
+ 7CC60378 54A0C738
50A0B77C 7CC60378
54A3873F 41820054
2C030009 41820098
@@ -306,7 +324,7 @@
60000000 00000000
- C2285FCC 0000004D
+ C2285FCC 00000052
3C80817F 816D9E60
3D80803F 80AC5458
20050022 540A043D
@@ -315,25 +333,30 @@
28830001 4C451102
40A2000C 38A00008
90AC5458 7C7D1B79
- 41820220 70A00004
- 41A20034 881F000E
- 3D40803D 394AF9B8
- 7CEA00AE 2C070001
- 40810200 38070001
- 5400EFFE 7CE70214
- 54E7403E 60E700FF
- 480000F8 70A00008
- 41A201E0 4800003D
- 00141516 0017181D
- 34000090 2F2E3020
- 32293328 2A1FBA3C
- 371E213A 0E2C3900
- 00010507 08090200
- 123457D0 24567000
- 12234070 23467001
- 7D2802A6 54A6CF38
- 50A6F77A 50A6E7BC
- 50A6D7FE 54A0C738
+ 41820248 818D9E78
+ 7D8C6379 41820010
+ 880C0064 2C000005
+ 41820230 70A00004
+ 41A20040 881F0008
+ 2C000008 41820034
+ 881F000E 3D40803D
+ 394AF9B8 7CEA00AE
+ 2C070001 40810204
+ 38070001 5400EFFE
+ 7CE70214 54E7403E
+ 60E700FF 480000FC
+ 70A00008 41A201E4
+ 4800003D 00141516
+ 0017181D 34000090
+ 2F2E3020 32293328
+ 2A1FBA3C 371E213A
+ 0E2C3900 00010507
+ 08090200 123457D0
+ 24567000 12234070
+ 23467001 7D2802A6
+ 54A6CF3A 50A6E7BC
+ 50A6D7FE 54A0F77A
+ 7CC60378 54A0C738
50A0B77C 7CC60378
54A3873F 41820054
2C030009 41820098
diff --git a/InstantLevelSelectExtra/README.md b/InstantLevelSelectExtra/README.md
index a5845f0..1823e8b 100644
--- a/InstantLevelSelectExtra/README.md
+++ b/InstantLevelSelectExtra/README.md
@@ -12,7 +12,8 @@
- Pressing `D-Pad Down` in Plaza has no effect
### Level Select
-Press `{the following button combination} + D-Pad Up` to warp to other area instantly:
+Press `{the following button combination} + D-Pad Up` to warp to other area instantly.
+As the alternatives of `Z` button, you can also press `B` or `Start`.
![Level Select Combinations](../.img/levelselect.png)
- For `Z + D-Pad Up`, the current area will be restarted, but the **respawn position will be reset**. It is like `D-Pad Up`, but the respawn position will be the default position instead of the previous one
diff --git a/InstantLevelSelectExtra/info.xml b/InstantLevelSelectExtra/info.xml
index 0127113..890778c 100644
--- a/InstantLevelSelectExtra/info.xml
+++ b/InstantLevelSelectExtra/info.xml
@@ -19,7 +19,8 @@
- Pressing `D-Pad Down` in Plaza has no effect
#### Level Select
- Press `{the following button combination} + D-Pad Up` to warp to other area instantly:
+ Press `{the following button combination} + D-Pad Up` to warp to other area instantly.
+ As the alternatives of `Z` button, you can also press `B` or `Start`.
![Level Select Combinations](/img/levelselect.png)
- For `Z + D-Pad Up`, the current area will be restarted, but the **respawn position will be reset**. It is like `D-Pad Up`, but the respawn position will be the default position instead of the previous one
@@ -47,9 +48,11 @@
#### シャイン選択画面からやり直し
- `十字キー下`で**現在のステージのシャイン選択画面からやり直す**
+ - ポーズ中にこのコードは無効化されます
#### レベル選択
- `{次のボタン}+十字キー上`でレベル選択
+ `{次のボタン}+十字キー上`でレベル選択
+ `Z`ボタンの代わりに`B`か`Start`ボタンを押すこともできます
![レベル選択](/img/levelselect.png)
diff --git a/InstantLevelSelectExtra/src/main.s b/InstantLevelSelectExtra/src/main.s
index 45bad35..eb867c3 100644
--- a/InstantLevelSelectExtra/src/main.s
+++ b/InstantLevelSelectExtra/src/main.s
@@ -54,10 +54,27 @@
beq .L.done
+## disable the code if paused
+.L.checkPaused:
+### r12 = *gpMarDirector
+ lwz r12, gpMarDirector$r13(r13)
+ mr. r12, r12
+ beq .L.checkPaused.done
+### if (u8) @ *gpMarDirector + 0x64 == 5
+ lbz r0, 0x64(r12)
+ cmpwi r0, 5
+ beq .L.done
+.L.checkPaused.done:
+
+
## check button (Shine Select)
.L.checkButton.ShineSelect:
andi. r0, rBtn, $btnShineSelect
beq+ .L.checkButton.ShineSelect.done
+### disable Shine Select when already in Shine Select
+ lbz r0, 0x8(rApp) # directory type
+ cmpwi r0, 8 # shine select
+ beq .L.checkButton.ShineSelect.done
.ShineSelect:
## rAns = shineStageTable[curArea]
lbz r0, 0xE(rApp) # current area
@@ -121,12 +138,14 @@
.L.main:
## calc index
-## btn: S YXZA -LRZ ----
-## XZRL=8,4,2,1
- rlwinm rIdx, rBtn, 32-7, 0x8 # X=8
- rlwimi rIdx, rBtn, 32-2, 0x4 # Z=4
+## btn: S YXBA -LRZ ----
+## XBRL=8,4,2,1
+ rlwinm rIdx, rBtn, 32-7, 0xC # X,B=8,4
rlwimi rIdx, rBtn, 32-4, 0x2 # R=2
rlwimi rIdx, rBtn, 32-6, 0x1 # L=1
+## Z=4
+ rlwinm r0, rBtn, 32- 2, 0x4 # Z=4
+ or rIdx, rIdx, r0
## YSY=8,4,2
rlwinm r0, rBtn, 32- 8, 0x8 # Y=+8
rlwimi r0, rBtn, 32-10, 0x6 # S,Y=4,+2