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