fix (ILSEx v1.3.1): use white loading screen for episode area
This commit is contained in:
parent
993f16e808
commit
fa5bca53ce
3 changed files with 132 additions and 102 deletions
|
@ -3,7 +3,7 @@
|
|||
<title lang="en-US">Instant Level Select Extra</title>
|
||||
<title lang="ja-JP">レベル選択EX</title>
|
||||
<author>sup39(サポミク)</author>
|
||||
<version>1.3</version>
|
||||
<version>1.3.1</version>
|
||||
<date>Feb 25, 2024</date>
|
||||
<description lang="en-US">
|
||||
::: warning
|
||||
|
@ -69,7 +69,7 @@
|
|||
4. これで好きなだけハニスキを練習できます。他のエリアに入ろうとする時に自動的にやり直すので、手動でやり直す必要がありません。必要であれば`十字キー上`でやり直すこともできます。
|
||||
</description>
|
||||
<source version="GMSJ01">
|
||||
C20F9B74 00000057
|
||||
C20F9B74 0000005A
|
||||
3C80817F 816D97D0
|
||||
3D808040 80AC0D80
|
||||
20050022 540A043D
|
||||
|
@ -78,20 +78,20 @@
|
|||
28830001 4C451102
|
||||
40A2000C 38A00008
|
||||
90AC0D80 7C7D1B79
|
||||
41820274 818D97E8
|
||||
4182028C 818D97E8
|
||||
280C0000 41820014
|
||||
898C0064 38000021
|
||||
5C00656B 40820258
|
||||
5C00656B 40820270
|
||||
70A00004 41A20040
|
||||
881F0008 2C000008
|
||||
41820034 881F000E
|
||||
3D40803B 394A40E8
|
||||
7CEA00AE 2C070001
|
||||
4081022C 38070001
|
||||
40810244 38070001
|
||||
5400EFFE 7CE70214
|
||||
54E7403E 60E700FF
|
||||
480000FC 70A00008
|
||||
41A2020C 4800003D
|
||||
41A20224 4800003D
|
||||
00141516 0017181D
|
||||
34000090 2F2E3020
|
||||
32293328 2A1FBA3C
|
||||
|
@ -144,22 +144,25 @@
|
|||
900B00D8 A00B00CC
|
||||
60004000 54000524
|
||||
B00B00CC B0FF0012
|
||||
54E0C63E 819F0020
|
||||
2C000007 2C80000E
|
||||
4C423382 3800003B
|
||||
41820008 38000000
|
||||
B00C00E4 A00C00E2
|
||||
540007FA B00C00E2
|
||||
54FDD7BE 3BBD0005
|
||||
819F0034 38000000
|
||||
900C0020 38000012
|
||||
900C0024 380000FF
|
||||
280709FF 40A2000C
|
||||
3C00D2D2 6000D2FF
|
||||
900C0018 00000000
|
||||
819F0020 54E0C63E
|
||||
2F000009 2880000F
|
||||
3940007D 5D4A05EF
|
||||
4EC51042 2C000007
|
||||
2C80000E 4C423382
|
||||
3800003B 41820008
|
||||
38000000 B00C00E4
|
||||
A00C00E2 540007FA
|
||||
B00C00E2 54FDD7BF
|
||||
3BBD0005 819F0034
|
||||
38000000 900C0020
|
||||
419A000C 40820010
|
||||
4096000C 3C00D2D2
|
||||
6000D200 600000FF
|
||||
900C0018 38000012
|
||||
900C0024 00000000
|
||||
</source>
|
||||
<source version="GMSE01">
|
||||
C22A6170 00000057
|
||||
C22A6170 0000005A
|
||||
3C80817F 816D9FA0
|
||||
3D808040 80AC4484
|
||||
20050022 540A043D
|
||||
|
@ -168,20 +171,20 @@
|
|||
28830001 4C451102
|
||||
40A2000C 38A00008
|
||||
90AC4484 7C7D1B79
|
||||
41820274 818D9FB8
|
||||
4182028C 818D9FB8
|
||||
280C0000 41820014
|
||||
898C0064 38000021
|
||||
5C00656B 40820258
|
||||
5C00656B 40820270
|
||||
70A00004 41A20040
|
||||
881F0008 2C000008
|
||||
41820034 881F000E
|
||||
3D40803E 394AF498
|
||||
7CEA00AE 2C070001
|
||||
4081022C 38070001
|
||||
40810244 38070001
|
||||
5400EFFE 7CE70214
|
||||
54E7403E 60E700FF
|
||||
480000FC 70A00008
|
||||
41A2020C 4800003D
|
||||
41A20224 4800003D
|
||||
00141516 0017181D
|
||||
34000090 2F2E3020
|
||||
32293328 2A1FBA3C
|
||||
|
@ -234,22 +237,25 @@
|
|||
900B00D8 A00B00CC
|
||||
60004000 54000524
|
||||
B00B00CC B0FF0012
|
||||
54E0C63E 819F0020
|
||||
2C000007 2C80000E
|
||||
4C423382 3800003B
|
||||
41820008 38000000
|
||||
B00C00E4 A00C00E2
|
||||
540007FA B00C00E2
|
||||
54FDD7BE 3BBD0005
|
||||
819F0034 38000000
|
||||
900C0020 38000012
|
||||
900C0024 380000FF
|
||||
280709FF 40A2000C
|
||||
3C00D2D2 6000D2FF
|
||||
900C0018 00000000
|
||||
819F0020 54E0C63E
|
||||
2F000009 2880000F
|
||||
3940007D 5D4A05EF
|
||||
4EC51042 2C000007
|
||||
2C80000E 4C423382
|
||||
3800003B 41820008
|
||||
38000000 B00C00E4
|
||||
A00C00E2 540007FA
|
||||
B00C00E2 54FDD7BF
|
||||
3BBD0005 819F0034
|
||||
38000000 900C0020
|
||||
419A000C 40820010
|
||||
4096000C 3C00D2D2
|
||||
6000D200 600000FF
|
||||
900C0018 38000012
|
||||
900C0024 00000000
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
C229E080 00000057
|
||||
C229E080 0000005A
|
||||
3C80817F 816D9EC8
|
||||
3D808040 80ACBC24
|
||||
20050022 540A043D
|
||||
|
@ -258,20 +264,20 @@
|
|||
28830001 4C451102
|
||||
40A2000C 38A00008
|
||||
90ACBC24 7C7D1B79
|
||||
41820274 818D9EE0
|
||||
4182028C 818D9EE0
|
||||
280C0000 41820014
|
||||
898C0064 38000021
|
||||
5C00656B 40820258
|
||||
5C00656B 40820270
|
||||
70A00004 41A20040
|
||||
881F0008 2C000008
|
||||
41820034 881F000E
|
||||
3D40803D 394A6DB0
|
||||
7CEA00AE 2C070001
|
||||
4081022C 38070001
|
||||
40810244 38070001
|
||||
5400EFFE 7CE70214
|
||||
54E7403E 60E700FF
|
||||
480000FC 70A00008
|
||||
41A2020C 4800003D
|
||||
41A20224 4800003D
|
||||
00141516 0017181D
|
||||
34000090 2F2E3020
|
||||
32293328 2A1FBA3C
|
||||
|
@ -324,22 +330,25 @@
|
|||
900B00D8 A00B00CC
|
||||
60004000 54000524
|
||||
B00B00CC B0FF0012
|
||||
54E0C63E 819F0020
|
||||
2C000007 2C80000E
|
||||
4C423382 3800003B
|
||||
41820008 38000000
|
||||
B00C00E4 A00C00E2
|
||||
540007FA B00C00E2
|
||||
54FDD7BE 3BBD0005
|
||||
819F0034 38000000
|
||||
900C0020 38000012
|
||||
900C0024 380000FF
|
||||
280709FF 40A2000C
|
||||
3C00D2D2 6000D2FF
|
||||
900C0018 00000000
|
||||
819F0020 54E0C63E
|
||||
2F000009 2880000F
|
||||
3940007D 5D4A05EF
|
||||
4EC51042 2C000007
|
||||
2C80000E 4C423382
|
||||
3800003B 41820008
|
||||
38000000 B00C00E4
|
||||
A00C00E2 540007FA
|
||||
B00C00E2 54FDD7BF
|
||||
3BBD0005 819F0034
|
||||
38000000 900C0020
|
||||
419A000C 40820010
|
||||
4096000C 3C00D2D2
|
||||
6000D200 600000FF
|
||||
900C0018 38000012
|
||||
900C0024 00000000
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
C2285FCC 00000057
|
||||
C2285FCC 0000005A
|
||||
3C80817F 816D9E60
|
||||
3D80803F 80AC5458
|
||||
20050022 540A043D
|
||||
|
@ -348,20 +357,20 @@
|
|||
28830001 4C451102
|
||||
40A2000C 38A00008
|
||||
90AC5458 7C7D1B79
|
||||
41820274 818D9E78
|
||||
4182028C 818D9E78
|
||||
280C0000 41820014
|
||||
898C0064 38000021
|
||||
5C00656B 40820258
|
||||
5C00656B 40820270
|
||||
70A00004 41A20040
|
||||
881F0008 2C000008
|
||||
41820034 881F000E
|
||||
3D40803D 394AF9B8
|
||||
7CEA00AE 2C070001
|
||||
4081022C 38070001
|
||||
40810244 38070001
|
||||
5400EFFE 7CE70214
|
||||
54E7403E 60E700FF
|
||||
480000FC 70A00008
|
||||
41A2020C 4800003D
|
||||
41A20224 4800003D
|
||||
00141516 0017181D
|
||||
34000090 2F2E3020
|
||||
32293328 2A1FBA3C
|
||||
|
@ -414,18 +423,21 @@
|
|||
900B00D8 A00B00CC
|
||||
60004000 54000524
|
||||
B00B00CC B0FF0012
|
||||
54E0C63E 819F0020
|
||||
2C000007 2C80000E
|
||||
4C423382 3800003B
|
||||
41820008 38000000
|
||||
B00C00E4 A00C00E2
|
||||
540007FA B00C00E2
|
||||
54FDD7BE 3BBD0005
|
||||
819F0034 38000000
|
||||
900C0020 38000012
|
||||
900C0024 380000FF
|
||||
280709FF 40A2000C
|
||||
3C00D2D2 6000D2FF
|
||||
900C0018 00000000
|
||||
819F0020 54E0C63E
|
||||
2F000009 2880000F
|
||||
3940007D 5D4A05EF
|
||||
4EC51042 2C000007
|
||||
2C80000E 4C423382
|
||||
3800003B 41820008
|
||||
38000000 B00C00E4
|
||||
A00C00E2 540007FA
|
||||
B00C00E2 54FDD7BF
|
||||
3BBD0005 819F0034
|
||||
38000000 900C0020
|
||||
419A000C 40820010
|
||||
4096000C 3C00D2D2
|
||||
6000D200 600000FF
|
||||
900C0018 38000012
|
||||
900C0024 00000000
|
||||
</source>
|
||||
</code>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<title lang="en-US">Instant Level Select Extra</title>
|
||||
<title lang="ja-JP">レベル選択EX</title>
|
||||
<author>sup39(サポミク)</author>
|
||||
<version>1.3</version>
|
||||
<version>1.3.1</version>
|
||||
<date>Feb 25, 2024</date>
|
||||
<description lang="en-US">
|
||||
::: warning
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
.set rApp, 31 # gpApplication
|
||||
.set rNextGameMode, 29
|
||||
.set crAreaLock, 7
|
||||
.set crArea9, 6
|
||||
.set crArea234568, 5
|
||||
.set $btnLevelSelect, 0x8 # D_UP
|
||||
.set $btnShineSelect, 0x4 # D_DOWN
|
||||
|
||||
|
@ -18,12 +20,6 @@
|
|||
lis \reg, \val@h
|
||||
ori \reg, \reg, \val@l
|
||||
.endm
|
||||
#.macro call addr
|
||||
# li32 r12, \addr
|
||||
# mtlr r12
|
||||
# blrl r12
|
||||
# #bl call
|
||||
#.endm
|
||||
|
||||
.L.prepare:
|
||||
## prepare registers
|
||||
|
@ -146,10 +142,6 @@
|
|||
.long 0x12234070
|
||||
.long 0x23467001
|
||||
|
||||
#call:
|
||||
# mtctr r12
|
||||
# bctr
|
||||
|
||||
.L.LevelSelect:
|
||||
mflr rD
|
||||
|
||||
|
@ -316,48 +308,74 @@ handlePlaza:
|
|||
### write nextArea
|
||||
sth rAns, 0x12(rApp)
|
||||
|
||||
.set rMGP, 12
|
||||
# SirenaHotel(0x07) or Casino(0x0E) ? 59 : 0
|
||||
.L.handleStickCD:
|
||||
lwz r12, 0x20(rApp) # TMarioGamePad*
|
||||
## area
|
||||
rlwinm r0, rAns, 32-8, 0xFF # area
|
||||
lwz rMGP, 0x20(rApp) # TMarioGamePad*
|
||||
## crArea9(eq): area == 9
|
||||
cmpwi crArea9, r0, 9
|
||||
## crArea234568(eq)
|
||||
### cr1(gt): area >= 0x10
|
||||
cmplwi cr1, r0, 0xF
|
||||
### cr0(eq): area magic == 0
|
||||
li rTmp, 0x7D # 234568 => 111_1101
|
||||
rlwnm. rTmp, rTmp, r0, 31-8, 31-8 # LSB 8
|
||||
### crArea234568(eq) = !(area >= 0x10) && !(area magic == 0)
|
||||
crnor 4*crArea234568+eq, 4*cr1+gt, eq
|
||||
## SirenaHotel(0x07) or Casino(0x0E) ? 59 : 0
|
||||
cmpwi r0, 0x07 # SirenaHotel
|
||||
cmpwi cr1, r0, 0x0E # Casino
|
||||
cror eq, eq, 4*cr1+eq
|
||||
cror eq, eq, 4*cr1+eq # (NOTE: cannot use rlwnm trick since area may >= 0x20)
|
||||
li r0, 59
|
||||
beq- .L.handleStickCD
|
||||
beq- .L.handleStickCD.apply
|
||||
li r0, 0
|
||||
.L.handleStickCD:
|
||||
sth r0, 0xe4(rMGP)
|
||||
.L.handleStickCD.apply:
|
||||
sth r0, 0xe4(r12)
|
||||
|
||||
.L.handleStickFlag:
|
||||
## clear 0x2 bit of 0xe2 flag
|
||||
lhz r0, 0xe2(rMGP)
|
||||
lhz r0, 0xe2(r12)
|
||||
rlwinm r0, r0, 0, 31, 29
|
||||
sth r0, 0xe2(rMGP)
|
||||
sth r0, 0xe2(r12)
|
||||
|
||||
## set nextGameMode if gpMarDirector == NULL
|
||||
### nextGameMode = nextArea == (shine select) ? 8 : 5
|
||||
## ep==0xFF ? 3 : 0 (Note: all valid ep id < 0x40)
|
||||
rlwinm rNextGameMode, rAns, 32-6, 0x3
|
||||
## cr0(eq) == ep!=0xFF
|
||||
rlwinm. rNextGameMode, rAns, 32-6, 0x3
|
||||
addi rNextGameMode, rNextGameMode, 5
|
||||
|
||||
.L.setFader:
|
||||
## TSMSFader::setFadeStatus(gpApplication.fader, FadedOut(=0))
|
||||
lwz r12, 0x34(rApp)
|
||||
.L.setFader.status:
|
||||
### this->status = FadedOut(0);
|
||||
li r0, 0
|
||||
stw r0, 0x20(r12)
|
||||
.L.setFader.color:
|
||||
## TSMSFader::setColor(gpApplication.fader, color)
|
||||
/**
|
||||
* (9, *) => white (0xd2d2d2ff)
|
||||
* (*, 0xFF) => black (0xff)
|
||||
* (2|3|4|5|6|8, *) => white
|
||||
* _ => black
|
||||
*/
|
||||
### area == 9 => white
|
||||
beq crArea9, .L.setFader.color.white
|
||||
### !(ep != 0xFF) => black (Note: DO NOT DESTROY cr0 UNTIL HERE!)
|
||||
bne cr0, .L.setFader.color.black
|
||||
### area != 2|3|4|5|6|8 => black
|
||||
bne crArea234568, .L.setFader.color.black
|
||||
.L.setFader.color.white:
|
||||
li32 r0, 0xd2d2d200
|
||||
.L.setFader.color.black:
|
||||
ori r0, r0, 0xff # r0 = 0 in .L.setFader.status
|
||||
.L.setFader.color.apply:
|
||||
stw r0, 0x18(r12)
|
||||
|
||||
### this->color->a = 0xff; (overwritten afterward)
|
||||
### (this->wipeRequest).type = 0x12;
|
||||
li r0, 0x12
|
||||
stw r0, 0x24(r12)
|
||||
## TSMSFader::setColor(gpApplication.fader, color=0xff)
|
||||
### this->color = rAns == 0x09FF ? 0xd2d2d2ff : 0xff
|
||||
li r0, 0xff
|
||||
cmplwi rAns, 0x09FF
|
||||
bne+ .L.setFader.color.apply
|
||||
li32 r0, 0xd2d2d2ff
|
||||
.L.setFader.color.apply:
|
||||
stw r0, 0x18(r12)
|
||||
|
||||
.L.done:
|
||||
|
|
Loading…
Reference in a new issue