QFT 1.3
This commit is contained in:
parent
375ba5eb73
commit
313ee79416
10 changed files with 261 additions and 598 deletions
348
Codes.xml
348
Codes.xml
|
@ -1237,12 +1237,14 @@
|
||||||
<title lang="en-US">Quarterframe Timer (Experimental)</title>
|
<title lang="en-US">Quarterframe Timer (Experimental)</title>
|
||||||
<title lang="ja-JP">QFタイマー</title>
|
<title lang="ja-JP">QFタイマー</title>
|
||||||
<author>Noki Doki, sup39(サポミク)</author>
|
<author>Noki Doki, sup39(サポミク)</author>
|
||||||
<version>1.2</version>
|
<version>1.3</version>
|
||||||
<date>Oct 16, 2022</date>
|
<date>Dec 16, 2022</date>
|
||||||
<dependencies version="GMSJ01">drawText</dependencies>
|
<dependencies version="GMSJ01">drawText</dependencies>
|
||||||
|
<dependencies version="GMSE01">drawText</dependencies>
|
||||||
|
<dependencies version="GMSP01">drawText</dependencies>
|
||||||
<dependencies version="GMSJ0A">drawText</dependencies>
|
<dependencies version="GMSJ0A">drawText</dependencies>
|
||||||
<description lang="en-US">
|
<description lang="en-US">
|
||||||
Adds an in-game timer to every level, starting on the last black frame after the
|
Adds an in-game timer to every level, starting on the last black frame of the
|
||||||
loading screen and ending as soon as the 'Shine Get' animation starts
|
loading screen and ending as soon as the 'Shine Get' animation starts
|
||||||
(similar to the x-cam timer of SM64).
|
(similar to the x-cam timer of SM64).
|
||||||
|
|
||||||
|
@ -1251,46 +1253,45 @@
|
||||||
:::
|
:::
|
||||||
</description>
|
</description>
|
||||||
<source version="GMSJ01">
|
<source version="GMSJ01">
|
||||||
C20ECE44 0000000B
|
C20ECE44 00000006
|
||||||
981A0260 3CE0817F
|
981A0260 3CE0817F
|
||||||
880700B3 2C000000
|
880700B3 2C000000
|
||||||
38800000 908700BC
|
38000000 900700BC
|
||||||
41820010 B08700B2
|
41820010 B00700B2
|
||||||
3800FFFC 900700B4
|
3800FFFC 900700B4
|
||||||
60E30110 60E50094
|
60000000 00000000
|
||||||
80CD97F8 80C60048
|
C2206738 0000001F
|
||||||
60E700A4 39000002
|
3C60817F 6064011C
|
||||||
39200000 3D808001
|
38630094 3D808020
|
||||||
618C9904 7D8803A6
|
398C1EA8 7D8803A6
|
||||||
4E800021 00000000
|
4E800021 3C60817F
|
||||||
C2206738 0000001B
|
888300B2 810300B4
|
||||||
3C60817F 888300B2
|
2C040000 40A20030
|
||||||
810300B4 2C040000
|
808300BC 2C040000
|
||||||
40A20030 808300BC
|
40A20010 810D97E8
|
||||||
2C040000 40A20010
|
8108005C 48000010
|
||||||
810D97E8 8108005C
|
3884FFFF 908300BC
|
||||||
48000010 3884FFFF
|
810300B8 800300B4
|
||||||
908300BC 810300B8
|
7D080214 3CE0000A
|
||||||
800300B4 7D080214
|
60E7F9B0 7C074000
|
||||||
3CE0000A 60E7F9B0
|
40A00010 7CE83B78
|
||||||
7C074000 40A00010
|
98E300B2 90E300B4
|
||||||
7CE83B78 98E300B2
|
1D0803E9 38000078
|
||||||
90E300B4 1D0803E9
|
7D080396 9421FFF0
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
380003E8 7CE80396
|
||||||
7C0701D6 7D004050
|
7C0701D6 7D004050
|
||||||
3800003C 7CC70396
|
91010008 3800003C
|
||||||
7C0601D6 7CE03850
|
7D270396 7C0901D6
|
||||||
38A300A4 3880000F
|
7D403850 80E30118
|
||||||
80630210 4CC63182
|
390300A4 80C30114
|
||||||
3D808008 618C40C4
|
3D80817F 80A30110
|
||||||
7D8803A6 4E800021
|
618C0238 808300A0
|
||||||
3C60817F 60630110
|
7D8803A6 80630094
|
||||||
38800000 38A00000
|
4E800021 38210010
|
||||||
38C10E90 38E00081
|
38610E90 3D808003
|
||||||
3D808001 618C8E64
|
398C5228 7D8803A6
|
||||||
7D8803A6 4E800021
|
4E800021 881F0046
|
||||||
881F0046 00000000
|
60000000 00000000
|
||||||
C20EFA30 00000005
|
C20EFA30 00000005
|
||||||
3CA0817F A00500B2
|
3CA0817F A00500B2
|
||||||
2C000000 40820014
|
2C000000 40820014
|
||||||
|
@ -1327,64 +1328,47 @@
|
||||||
5400003A 900500B8
|
5400003A 900500B8
|
||||||
3800FFFF 900500BC
|
3800FFFF 900500BC
|
||||||
60000000 00000000
|
60000000 00000000
|
||||||
C2196314 00000004
|
|
||||||
80AD97E8 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C2196128 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
</source>
|
</source>
|
||||||
<source version="GMSE01">
|
<source version="GMSE01">
|
||||||
C22998C0 0000000B
|
C22998C0 00000006
|
||||||
981A0260 3CE0817F
|
981A0260 3CE0817F
|
||||||
880700B3 2C000000
|
880700B3 2C000000
|
||||||
38800000 908700BC
|
38000000 900700BC
|
||||||
41820010 B08700B2
|
41820010 B00700B2
|
||||||
3800FFFC 900700B4
|
3800FFFC 900700B4
|
||||||
60E30110 60E50094
|
60000000 00000000
|
||||||
80CD9FC8 80C60048
|
C2143F18 0000001F
|
||||||
60E700A4 39000002
|
3C60817F 6064011C
|
||||||
39200000 3D80802D
|
38630094 3D808014
|
||||||
618C0848 7D8803A6
|
398C0390 7D8803A6
|
||||||
4E800021 00000000
|
4E800021 3C60817F
|
||||||
C2143F18 0000001B
|
888300B2 810300B4
|
||||||
3C60817F 888300B2
|
2C040000 40A20030
|
||||||
810300B4 2C040000
|
808300BC 2C040000
|
||||||
40A20030 808300BC
|
40A20010 810D9FB8
|
||||||
2C040000 40A20010
|
8108005C 48000010
|
||||||
810D9FB8 8108005C
|
3884FFFF 908300BC
|
||||||
48000010 3884FFFF
|
810300B8 800300B4
|
||||||
908300BC 810300B8
|
7D080214 3CE0000A
|
||||||
800300B4 7D080214
|
60E7F9B0 7C074000
|
||||||
3CE0000A 60E7F9B0
|
40A00010 7CE83B78
|
||||||
7C074000 40A00010
|
98E300B2 90E300B4
|
||||||
7CE83B78 98E300B2
|
1D0803E9 38000078
|
||||||
90E300B4 1D0803E9
|
7D080396 9421FFF0
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
380003E8 7CE80396
|
||||||
7C0701D6 7D004050
|
7C0701D6 7D004050
|
||||||
3800003C 7CC70396
|
91010008 3800003C
|
||||||
7C0601D6 7CE03850
|
7D270396 7C0901D6
|
||||||
38A300A4 3880000F
|
7D403850 80E30118
|
||||||
80630210 4CC63182
|
390300A4 80C30114
|
||||||
3D808033 618C97A4
|
3D80817F 80A30110
|
||||||
7D8803A6 4E800021
|
618C0238 808300A0
|
||||||
3C60817F 60630110
|
7D8803A6 80630094
|
||||||
38800000 38A00000
|
4E800021 38210010
|
||||||
38C10BD0 38E00081
|
38610BD0 3D80802F
|
||||||
3D80802C 618CFDA8
|
398CB6BC 7D8803A6
|
||||||
7D8803A6 4E800021
|
4E800021 881F0046
|
||||||
881F0046 00000000
|
60000000 00000000
|
||||||
C229C520 00000005
|
C229C520 00000005
|
||||||
3CA0817F A00500B2
|
3CA0817F A00500B2
|
||||||
2C000000 40820014
|
2C000000 40820014
|
||||||
|
@ -1421,64 +1405,47 @@
|
||||||
5400003A 900500B8
|
5400003A 900500B8
|
||||||
3800FFFF 900500BC
|
3800FFFF 900500BC
|
||||||
60000000 00000000
|
60000000 00000000
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
C21BE474 00000004
|
|
||||||
80AD9FB8 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C21BE288 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
</source>
|
</source>
|
||||||
<source version="GMSP01">
|
<source version="GMSP01">
|
||||||
C2291758 0000000B
|
C2291758 00000006
|
||||||
981A0260 3CE0817F
|
981A0260 3CE0817F
|
||||||
880700B3 2C000000
|
880700B3 2C000000
|
||||||
38800000 908700BC
|
38000000 900700BC
|
||||||
41820010 B08700B2
|
41820010 B00700B2
|
||||||
3800FFFC 900700B4
|
3800FFFC 900700B4
|
||||||
60E30110 60E50094
|
60000000 00000000
|
||||||
80CD9EF0 80C60048
|
C2138B54 0000001F
|
||||||
60E700A4 39000002
|
3C60817F 6064011C
|
||||||
39200000 3D80802C
|
38630094 3D808013
|
||||||
618C89F0 7D8803A6
|
398C4F0C 7D8803A6
|
||||||
4E800021 00000000
|
4E800021 3C60817F
|
||||||
C2138B54 0000001B
|
888300B2 810300B4
|
||||||
3C60817F 888300B2
|
2C040000 40A20030
|
||||||
810300B4 2C040000
|
808300BC 2C040000
|
||||||
40A20030 808300BC
|
40A20010 810D9EE0
|
||||||
2C040000 40A20010
|
8108005C 48000010
|
||||||
810D9EE0 8108005C
|
3884FFFF 908300BC
|
||||||
48000010 3884FFFF
|
810300B8 800300B4
|
||||||
908300BC 810300B8
|
7D080214 3CE0000A
|
||||||
800300B4 7D080214
|
60E7F9B0 7C074000
|
||||||
3CE0000A 60E7F9B0
|
40A00010 7CE83B78
|
||||||
7C074000 40A00010
|
98E300B2 90E300B4
|
||||||
7CE83B78 98E300B2
|
1D0803E9 38000078
|
||||||
90E300B4 1D0803E9
|
7D080396 9421FFF0
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
380003E8 7CE80396
|
||||||
7C0701D6 7D004050
|
7C0701D6 7D004050
|
||||||
3800003C 7CC70396
|
91010008 3800003C
|
||||||
7C0601D6 7CE03850
|
7D270396 7C0901D6
|
||||||
38A300A4 3880000F
|
7D403850 80E30118
|
||||||
80630210 4CC63182
|
390300A4 80C30114
|
||||||
3D808033 618C1924
|
3D80817F 80A30110
|
||||||
7D8803A6 4E800021
|
618C0238 808300A0
|
||||||
3C60817F 60630110
|
7D8803A6 80630094
|
||||||
38800000 38A00000
|
4E800021 38210010
|
||||||
38C10BE4 38E00081
|
38610BE4 3D80802E
|
||||||
3D80802C 618C7F50
|
398C3864 7D8803A6
|
||||||
7D8803A6 4E800021
|
4E800021 881F0046
|
||||||
881F0046 00000000
|
60000000 00000000
|
||||||
C22943FC 00000005
|
C22943FC 00000005
|
||||||
3CA0817F A00500B2
|
3CA0817F A00500B2
|
||||||
2C000000 40820014
|
2C000000 40820014
|
||||||
|
@ -1515,64 +1482,47 @@
|
||||||
5400003A 900500B8
|
5400003A 900500B8
|
||||||
3800FFFF 900500BC
|
3800FFFF 900500BC
|
||||||
60000000 00000000
|
60000000 00000000
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
C21B632C 00000004
|
|
||||||
80AD9EE0 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C21B6140 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
</source>
|
</source>
|
||||||
<source version="GMSJ0A">
|
<source version="GMSJ0A">
|
||||||
C2279570 0000000B
|
C2279570 00000006
|
||||||
981A0260 3CE0817F
|
981A0260 3CE0817F
|
||||||
880700B3 2C000000
|
880700B3 2C000000
|
||||||
38800000 908700BC
|
38000000 900700BC
|
||||||
41820010 B08700B2
|
41820010 B00700B2
|
||||||
3800FFFC 900700B4
|
3800FFFC 900700B4
|
||||||
60E30110 60E50094
|
60000000 00000000
|
||||||
80CD9E88 80C60048
|
C21252A4 0000001F
|
||||||
60E700A4 39000002
|
3C60817F 6064011C
|
||||||
39200000 3D80802B
|
38630094 3D808012
|
||||||
618C0058 7D8803A6
|
398C1660 7D8803A6
|
||||||
4E800021 00000000
|
4E800021 3C60817F
|
||||||
C21252A4 0000001B
|
888300B2 810300B4
|
||||||
3C60817F 888300B2
|
2C040000 40A20030
|
||||||
810300B4 2C040000
|
808300BC 2C040000
|
||||||
40A20030 808300BC
|
40A20010 810D9E78
|
||||||
2C040000 40A20010
|
8108005C 48000010
|
||||||
810D9E78 8108005C
|
3884FFFF 908300BC
|
||||||
48000010 3884FFFF
|
810300B8 800300B4
|
||||||
908300BC 810300B8
|
7D080214 3CE0000A
|
||||||
800300B4 7D080214
|
60E7F9B0 7C074000
|
||||||
3CE0000A 60E7F9B0
|
40A00010 7CE83B78
|
||||||
7C074000 40A00010
|
98E300B2 90E300B4
|
||||||
7CE83B78 98E300B2
|
1D0803E9 38000078
|
||||||
90E300B4 1D0803E9
|
7D080396 9421FFF0
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
380003E8 7CE80396
|
||||||
7C0701D6 7D004050
|
7C0701D6 7D004050
|
||||||
3800003C 7CC70396
|
91010008 3800003C
|
||||||
7C0601D6 7CE03850
|
7D270396 7C0901D6
|
||||||
38A300A4 3880000F
|
7D403850 80E30118
|
||||||
80630210 4CC63182
|
390300A4 80C30114
|
||||||
3D808031 618C90A4
|
3D80817F 80A30110
|
||||||
7D8803A6 4E800021
|
618C0238 808300A0
|
||||||
3C60817F 60630110
|
7D8803A6 80630094
|
||||||
38800000 38A00000
|
4E800021 38210010
|
||||||
38C10BEC 38E00081
|
38610BEC 3D80802D
|
||||||
3D80802A 618CF5B8
|
398CAECC 7D8803A6
|
||||||
7D8803A6 4E800021
|
4E800021 881F0046
|
||||||
881F0046 00000000
|
60000000 00000000
|
||||||
C227C214 00000005
|
C227C214 00000005
|
||||||
3CA0817F A00500B2
|
3CA0817F A00500B2
|
||||||
2C000000 40820014
|
2C000000 40820014
|
||||||
|
@ -1609,22 +1559,6 @@
|
||||||
5400003A 900500B8
|
5400003A 900500B8
|
||||||
3800FFFF 900500BC
|
3800FFFF 900500BC
|
||||||
60000000 00000000
|
60000000 00000000
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
C219E1FC 00000004
|
|
||||||
80AD9E78 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C219E010 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
</source>
|
</source>
|
||||||
</code>
|
</code>
|
||||||
<code>
|
<code>
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## Dec 16, 2022
|
||||||
|
### Updated 'Quarterframe Timer'
|
||||||
|
- Gave the timer a 1 frame headstart to make it more accurate to SGT and IL retiming rules
|
||||||
|
- Ported the customizable visuals and freeze conditions to the US and PAL versions
|
||||||
|
|
||||||
## Nov 19, 2022
|
## Nov 19, 2022
|
||||||
Added `CAngle` for 'Customized Display' to show camera angle
|
Added `CAngle` for 'Customized Display' to show camera angle
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ export default {
|
||||||
for (const code of c) {
|
for (const code of c) {
|
||||||
const codegen = codegens[code.id];
|
const codegen = codegens[code.id];
|
||||||
if (codegen) {
|
if (codegen) {
|
||||||
code.source = codegen(this.versionIdentifier);
|
code.source = codegen(this.versionIdentifier, code.source);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,9 +94,12 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
alertDolphinCodeSize(size) {
|
alertDolphinCodeSize(size) {
|
||||||
if (size > 3272) { // 0x3000-0x2338
|
if (size > 3272) {
|
||||||
|
// 0x3000-0x2338
|
||||||
// excluding header+footer
|
// excluding header+footer
|
||||||
alert(translate('generatorconfig.alert.dolphin', this.$lang).replaceAll('{size}', size-16));
|
alert(
|
||||||
|
translate('generatorconfig.alert.dolphin', this.$lang).replaceAll('{size}', size - 16),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
generateGCT(codes, version) {
|
generateGCT(codes, version) {
|
||||||
|
|
|
@ -4,90 +4,12 @@ export const r13off = -0x6048;
|
||||||
* @type {{[key: string]: {addr: number, orig: number}}}
|
* @type {{[key: string]: {addr: number, orig: number}}}
|
||||||
*/
|
*/
|
||||||
export const freezeCodeInfo = {
|
export const freezeCodeInfo = {
|
||||||
|
yellowCoin: { addr: 0x801becb4, orig: 0x8805000e },
|
||||||
redCoin: { addr: 0x801be474, orig: 0x38a00000 },
|
redCoin: { addr: 0x801be474, orig: 0x38a00000 },
|
||||||
blueCoin: { addr: 0x801be288, orig: 0x7c030378 },
|
blueCoin: { addr: 0x801be288, orig: 0x7c030378 },
|
||||||
|
item: { addr: 0x801bf3b4, orig: 0x8001001c },
|
||||||
|
talk: { addr: 0x80298128, orig: 0x807f00b0 },
|
||||||
|
demo: { addr: 0x802981a4, orig: 0x88e7013c },
|
||||||
|
cleaned: { addr: 0x80215c58, orig: 0x80010044 },
|
||||||
|
bowser: { addr: 0x801fc0a4, orig: 0x2c1d0003 },
|
||||||
};
|
};
|
||||||
|
|
||||||
export const baseCode = `
|
|
||||||
C22998C0 0000000B
|
|
||||||
981A0260 3CE0817F
|
|
||||||
880700B3 2C000000
|
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 60E30110
|
|
||||||
38800000 60E50094
|
|
||||||
80CD9FC8 80C60048
|
|
||||||
60E700A4 39000002
|
|
||||||
39200000 3D80802D
|
|
||||||
618C0848 7D8803A6
|
|
||||||
4E800021 00000000
|
|
||||||
C2143F18 0000001B
|
|
||||||
3C60817F 888300B2
|
|
||||||
810300B4 2C040000
|
|
||||||
40A20030 808300BC
|
|
||||||
2C040000 40A20010
|
|
||||||
810D9FB8 8108005C
|
|
||||||
48000010 3884FFFF
|
|
||||||
908300BC 810300B8
|
|
||||||
800300B4 7D080214
|
|
||||||
3CE0000A 60E7F9B0
|
|
||||||
7C074000 40A00010
|
|
||||||
7CE83B78 98E300B2
|
|
||||||
90E300B4 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
|
||||||
7C0701D6 7D004050
|
|
||||||
3800003C 7CC70396
|
|
||||||
7C0601D6 7CE03850
|
|
||||||
38A300A4 3880000F
|
|
||||||
80630210 4CC63182
|
|
||||||
3D808033 618C97A4
|
|
||||||
7D8803A6 4E800021
|
|
||||||
3C60817F 60630110
|
|
||||||
38800000 38A00000
|
|
||||||
38C10BD0 38E00081
|
|
||||||
3D80802C 618CFDA8
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C229C520 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C229A5AC 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21FA380 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C2164E24 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C229880C 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C22991A8 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C229A36C 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
`;
|
|
||||||
|
|
|
@ -13,80 +13,3 @@ export const freezeCodeInfo = {
|
||||||
cleaned: { addr: 0x8017a3c0, orig: 0x80010044 },
|
cleaned: { addr: 0x8017a3c0, orig: 0x80010044 },
|
||||||
bowser: { addr: 0x801d3c78, orig: 0x2c1d0003 },
|
bowser: { addr: 0x801d3c78, orig: 0x2c1d0003 },
|
||||||
};
|
};
|
||||||
|
|
||||||
export const baseCode = `
|
|
||||||
C20ECE44 00000005
|
|
||||||
981A0260 3CE0817F
|
|
||||||
880700B3 2C000000
|
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 00000000
|
|
||||||
C2206738 0000001F
|
|
||||||
3C60817F 6064011C
|
|
||||||
38630094 3D808020
|
|
||||||
398C1EA8 7D8803A6
|
|
||||||
4E800021 3C60817F
|
|
||||||
888300B2 810300B4
|
|
||||||
2C040000 40820030
|
|
||||||
808300BC 2C040000
|
|
||||||
40820010 810D97E8
|
|
||||||
8108005C 48000010
|
|
||||||
3884FFFF 908300BC
|
|
||||||
810300B8 800300B4
|
|
||||||
7D080214 3CE0000A
|
|
||||||
60E7F9B0 7C074000
|
|
||||||
40800010 7CE83B78
|
|
||||||
98E300B2 90E300B4
|
|
||||||
3C60817F 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
9421FFF0 380003E8
|
|
||||||
7CE80396 7C0701D6
|
|
||||||
7D004050 91010008
|
|
||||||
3800003C 7D270396
|
|
||||||
7C0901D6 7D403850
|
|
||||||
80E30118 390300A4
|
|
||||||
80C30114 3D80817F
|
|
||||||
80A30110 618C0238
|
|
||||||
808300A0 7D8803A6
|
|
||||||
80630094 4E800021
|
|
||||||
38210010 38610E90
|
|
||||||
3D808003 398C5228
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C20EFA30 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C20EDB30 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21D1F38 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C22257CC 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C20EBD78 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C20EC72C 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C20ED8F0 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
`;
|
|
||||||
|
|
|
@ -13,80 +13,3 @@ export const freezeCodeInfo = {
|
||||||
cleaned: { addr: 0x801f5af8, orig: 0x80010044 },
|
cleaned: { addr: 0x801f5af8, orig: 0x80010044 },
|
||||||
bowser: { addr: 0x801dbe48, orig: 0x2c1d0003 },
|
bowser: { addr: 0x801dbe48, orig: 0x2c1d0003 },
|
||||||
};
|
};
|
||||||
|
|
||||||
export const baseCode = `
|
|
||||||
C2279570 00000005
|
|
||||||
981A0260 3CE0817F
|
|
||||||
880700B3 2C000000
|
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 00000000
|
|
||||||
C21252A4 0000001F
|
|
||||||
3C60817F 6064011C
|
|
||||||
38630094 3D808012
|
|
||||||
398C1660 7D8803A6
|
|
||||||
4E800021 3C60817F
|
|
||||||
888300B2 810300B4
|
|
||||||
2C040000 40820030
|
|
||||||
808300BC 2C040000
|
|
||||||
40820010 810D9E78
|
|
||||||
8108005C 48000010
|
|
||||||
3884FFFF 908300BC
|
|
||||||
810300B8 800300B4
|
|
||||||
7D080214 3CE0000A
|
|
||||||
60E7F9B0 7C074000
|
|
||||||
40800010 7CE83B78
|
|
||||||
98E300B2 90E300B4
|
|
||||||
3C60817F 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
9421FFF0 380003E8
|
|
||||||
7CE80396 7C0701D6
|
|
||||||
7D004050 91010008
|
|
||||||
3800003C 7D270396
|
|
||||||
7C0901D6 7D403850
|
|
||||||
80E30118 390300A4
|
|
||||||
80C30114 3D80817F
|
|
||||||
80A30110 618C0238
|
|
||||||
808300A0 7D8803A6
|
|
||||||
80630094 4E800021
|
|
||||||
38210010 38610E90
|
|
||||||
3D80802D 398CAECC
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C227C214 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C227A298 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21DA0FC 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C2145EBC 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C22784B4 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C2278E58 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C227A01C 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
`;
|
|
||||||
|
|
|
@ -4,90 +4,12 @@ export const r13off = -0x6120;
|
||||||
* @type {{[key: string]: {addr: number, orig: number}}}
|
* @type {{[key: string]: {addr: number, orig: number}}}
|
||||||
*/
|
*/
|
||||||
export const freezeCodeInfo = {
|
export const freezeCodeInfo = {
|
||||||
|
yellowCoin: { addr: 0x801b6b6c, orig: 0x8805000e },
|
||||||
redCoin: { addr: 0x801b632c, orig: 0x38a00000 },
|
redCoin: { addr: 0x801b632c, orig: 0x38a00000 },
|
||||||
blueCoin: { addr: 0x801b6140, orig: 0x7c030378 },
|
blueCoin: { addr: 0x801b6140, orig: 0x7c030378 },
|
||||||
|
item: { addr: 0x801b726c, orig: 0x8001001c },
|
||||||
|
talk: { addr: 0x8028ffc0, orig: 0x807f00b0 },
|
||||||
|
demo: { addr: 0x8029003c, orig: 0x88e7013c },
|
||||||
|
cleaned: { addr: 0x8020db3c, orig: 0x80010044 },
|
||||||
|
bowser: { addr: 0x801f3f88, orig: 0x2c1d0003 },
|
||||||
};
|
};
|
||||||
|
|
||||||
export const baseCode = `
|
|
||||||
C2291758 0000000B
|
|
||||||
981A0260 3CE0817F
|
|
||||||
880700B3 2C000000
|
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 60E30110
|
|
||||||
38800000 60E50094
|
|
||||||
80CD9EF0 80C60048
|
|
||||||
60E700A4 39000002
|
|
||||||
39200000 3D80802C
|
|
||||||
618C89F0 7D8803A6
|
|
||||||
4E800021 00000000
|
|
||||||
C2138B54 0000001B
|
|
||||||
3C60817F 888300B2
|
|
||||||
810300B4 2C040000
|
|
||||||
40A20030 808300BC
|
|
||||||
2C040000 40A20010
|
|
||||||
810D9EE0 8108005C
|
|
||||||
48000010 3884FFFF
|
|
||||||
908300BC 810300B8
|
|
||||||
800300B4 7D080214
|
|
||||||
3CE0000A 60E7F9B0
|
|
||||||
7C074000 40A00010
|
|
||||||
7CE83B78 98E300B2
|
|
||||||
90E300B4 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
|
||||||
7C0701D6 7D004050
|
|
||||||
3800003C 7CC70396
|
|
||||||
7C0601D6 7CE03850
|
|
||||||
38A300A4 3880000F
|
|
||||||
80630210 4CC63182
|
|
||||||
3D808033 618C1924
|
|
||||||
7D8803A6 4E800021
|
|
||||||
3C60817F 60630110
|
|
||||||
38800000 38A00000
|
|
||||||
38C10BE4 38E00081
|
|
||||||
3D80802C 618C7F50
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C22943FC 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C2292480 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21F2258 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C2159E9C 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C22906A4 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C2291040 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C2292204 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
`;
|
|
||||||
|
|
|
@ -67,11 +67,15 @@ export const codes = { GMSJ01, GMSE01, GMSP01, GMSJ0A };
|
||||||
bl 817fxxxx
|
bl 817fxxxx
|
||||||
****/
|
****/
|
||||||
const freezeCodeAddr = 0x817f0348;
|
const freezeCodeAddr = 0x817f0348;
|
||||||
/** @param {keyof typeof codes} version */
|
/**
|
||||||
export default function codegen(version) {
|
* @param {keyof typeof codes} version
|
||||||
|
* @param {string=} baseCode
|
||||||
|
*/
|
||||||
|
export default function codegen(version, baseCode) {
|
||||||
|
if (!baseCode) return '';
|
||||||
|
|
||||||
const config = getConfig();
|
const config = getConfig();
|
||||||
const { freezeCodeInfo, baseCode, r13off } = codes[version] ?? {};
|
const { freezeCodeInfo, r13off } = codes[version] ?? {};
|
||||||
if (baseCode == null) return '';
|
|
||||||
|
|
||||||
let code = baseCode;
|
let code = baseCode;
|
||||||
const { freezeDuration: frame } = config;
|
const { freezeDuration: frame } = config;
|
||||||
|
@ -163,8 +167,7 @@ export default function codegen(version) {
|
||||||
code += [...code04, ...code07].map(inst2gecko).join('');
|
code += [...code04, ...code07].map(inst2gecko).join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
// ui (GMSJ01/GMSJ0A only)
|
// ui
|
||||||
if (['GMSJ01', 'GMSJ0A'].includes(version)) {
|
|
||||||
/* bounds */
|
/* bounds */
|
||||||
const { x, y, fontSize, width } = config;
|
const { x, y, fontSize, width } = config;
|
||||||
const scale = fontSize / 20;
|
const scale = fontSize / 20;
|
||||||
|
@ -185,7 +188,6 @@ export default function codegen(version) {
|
||||||
const fgColor2 =
|
const fgColor2 =
|
||||||
((config.fgRGB2 ?? config.fgRGB) & 0xffffff) * 256 + ((config.fgA2 ?? config.fgA) & 0xff);
|
((config.fgRGB2 ?? config.fgRGB) & 0xffffff) * 256 + ((config.fgA2 ?? config.fgA) & 0xff);
|
||||||
code += [fontSize, fgColor, fgColor2, bgColor].map(inst2gecko).join('');
|
code += [fontSize, fgColor, fgColor2, bgColor].map(inst2gecko).join('');
|
||||||
}
|
|
||||||
|
|
||||||
return code.replace(/\s/g, '');
|
return code.replace(/\s/g, '');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +1,32 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="config">
|
<div id="config">
|
||||||
<section v-if="['GMSJ01', 'GMSJ0A'].includes(version)" class="appearance">
|
<section class="appearance">
|
||||||
<h3>{{ l.h3 }}</h3>
|
<h3>{{ l.h3 }}</h3>
|
||||||
<div>
|
<div>
|
||||||
<TextConfig v-model="textConfig" />
|
<TextConfig v-model="textConfig" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>{{l.bgColor}}</span><input type="color" :value="rgbI2S(bgRGB)" @change="bgRGB = rgbS2I($event.target.value)">
|
<span>{{ l.bgColor }}</span
|
||||||
<span>{{l.alpha}}</span><input type="number" min="0" max="255" v-model.number="bgA"><span>/255={{(bgA/2.55).toFixed(1)}}%</span>
|
><input type="color" :value="rgbI2S(bgRGB)" @change="bgRGB = rgbS2I($event.target.value)" />
|
||||||
|
<span>{{ l.alpha }}</span
|
||||||
|
><input type="number" min="0" max="255" v-model.number="bgA" /><span
|
||||||
|
>/255={{ (bgA / 2.55).toFixed(1) }}%</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="freeze">
|
<section class="freeze">
|
||||||
<h3>{{ l.freeze.h3 }}</h3>
|
<h3>{{ l.freeze.h3 }}</h3>
|
||||||
<div>
|
<div>
|
||||||
{{l.freeze.duration}}<input type="number" min="0" max="32767" v-model="freezeDuration"> {{l.freeze.frame}}
|
{{ l.freeze.duration }}<input type="number" min="0" max="32767" v-model="freezeDuration" />
|
||||||
= {{(freezeDuration*1001/30000).toFixed(2)}} {{l.freeze.sec}}
|
{{ l.freeze.frame }} = {{ ((freezeDuration * 1001) / 30000).toFixed(2) }} {{ l.freeze.sec }}
|
||||||
</div>
|
</div>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="key in freezeKeys" :key="key">
|
<tr v-for="key in freezeKeys" :key="key">
|
||||||
<td>{{ l.freeze.rows[key] }}</td>
|
<td>{{ l.freeze.rows[key] }}</td>
|
||||||
<td><input type="checkbox" :checked="freeze[key]" @change="onChangeFreeze($event, key)"></td>
|
<td>
|
||||||
|
<input type="checkbox" :checked="freeze[key]" @change="onChangeFreeze($event, key)" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -35,9 +41,21 @@ import labels from './labels.json';
|
||||||
import TextConfig from '../TextConfig.vue';
|
import TextConfig from '../TextConfig.vue';
|
||||||
|
|
||||||
function updateConfig() {
|
function updateConfig() {
|
||||||
const {x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze, freezeDuration} = this;
|
const { x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze, freezeDuration } =
|
||||||
|
this;
|
||||||
const config = {
|
const config = {
|
||||||
x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze, freezeDuration
|
x,
|
||||||
|
y,
|
||||||
|
fontSize,
|
||||||
|
width,
|
||||||
|
fgRGB,
|
||||||
|
fgA,
|
||||||
|
fgRGB2,
|
||||||
|
fgA2,
|
||||||
|
bgRGB,
|
||||||
|
bgA,
|
||||||
|
freeze,
|
||||||
|
freezeDuration,
|
||||||
};
|
};
|
||||||
localStorage.setItem(lskey, JSON.stringify(config));
|
localStorage.setItem(lskey, JSON.stringify(config));
|
||||||
this.$emit('config', config);
|
this.$emit('config', config);
|
||||||
|
@ -70,12 +88,21 @@ export default {
|
||||||
rgbaI2S,
|
rgbaI2S,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
const {x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze, freezeDuration} = getConfig();
|
const { x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze, freezeDuration } =
|
||||||
|
getConfig();
|
||||||
return {
|
return {
|
||||||
x, y, fontSize,
|
x,
|
||||||
fgRGB, fgA, fgRGB2, fgA2,
|
y,
|
||||||
width, bgRGB, bgA,
|
fontSize,
|
||||||
freeze, freezeDuration,
|
fgRGB,
|
||||||
|
fgA,
|
||||||
|
fgRGB2,
|
||||||
|
fgA2,
|
||||||
|
width,
|
||||||
|
bgRGB,
|
||||||
|
bgA,
|
||||||
|
freeze,
|
||||||
|
freezeDuration,
|
||||||
// const
|
// const
|
||||||
freezeKeys: Object.keys(codes[this.version]?.freezeCodeInfo ?? {}),
|
freezeKeys: Object.keys(codes[this.version]?.freezeCodeInfo ?? {}),
|
||||||
};
|
};
|
||||||
|
@ -101,14 +128,15 @@ export default {
|
||||||
bgA: updateConfig,
|
bgA: updateConfig,
|
||||||
freezeDuration: updateConfig,
|
freezeDuration: updateConfig,
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
input[type=number], td.right {
|
input[type='number'],
|
||||||
|
td.right {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
input[type="number"] {
|
input[type='number'] {
|
||||||
width: 3em;
|
width: 3em;
|
||||||
margin: 0 2px;
|
margin: 0 2px;
|
||||||
}
|
}
|
||||||
|
@ -116,11 +144,11 @@ input[type="number"] {
|
||||||
padding: 0 0 4px;
|
padding: 0 0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=number] {
|
input[type='number'] {
|
||||||
-moz-appearance: textfield;
|
-moz-appearance: textfield;
|
||||||
}
|
}
|
||||||
input[type="number"]::-webkit-inner-spin-button,
|
input[type='number']::-webkit-inner-spin-button,
|
||||||
input[type="number"]::-webkit-outer-spin-button {
|
input[type='number']::-webkit-outer-spin-button {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,8 +34,8 @@
|
||||||
"fontSize": "Font size: ",
|
"fontSize": "Font size: ",
|
||||||
"fgColor": "Font color: ",
|
"fgColor": "Font color: ",
|
||||||
"fgColorGrad": "Gradient",
|
"fgColorGrad": "Gradient",
|
||||||
"fgColor1": "Font color(Top): ",
|
"fgColor1": "Font color (top): ",
|
||||||
"fgColor2": "Font color(Bottom): ",
|
"fgColor2": "Font color (bottom): ",
|
||||||
"bgColor": "Background color: ",
|
"bgColor": "Background color: ",
|
||||||
"alpha": "Alpha=",
|
"alpha": "Alpha=",
|
||||||
"preview": "Preview",
|
"preview": "Preview",
|
||||||
|
@ -43,17 +43,17 @@
|
||||||
"freeze": {
|
"freeze": {
|
||||||
"h3": "Freezing the timer",
|
"h3": "Freezing the timer",
|
||||||
"duration": "Duration: ",
|
"duration": "Duration: ",
|
||||||
"frame": "(frame)",
|
"frame": "(frames)",
|
||||||
"sec": "(sec)",
|
"sec": "(sec)",
|
||||||
"rows": {
|
"rows": {
|
||||||
"yellowCoin": "When collected a yellow coin",
|
"yellowCoin": "When a yellow coin is collected",
|
||||||
"redCoin": "When collected a red coin",
|
"redCoin": "When a red coin is collected",
|
||||||
"blueCoin": "When collected a blue coin",
|
"blueCoin": "When a blue coin is collected",
|
||||||
"item": "When collected an item (e.g. nozzle)",
|
"item": "When an item (e.g. nozzle) is collected",
|
||||||
"talk": "When dialogue started",
|
"talk": "When dialogue starts",
|
||||||
"demo": "When cutscene started",
|
"demo": "When a cutscene starts",
|
||||||
"cleaned": "When NPC is cleaned",
|
"cleaned": "When an NPC is cleaned",
|
||||||
"bowser": "When destroyed platform in Bowser fight"
|
"bowser": "When a platform is destroyed in the Bowser fight"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue