Merge remote-tracking branch 'origin/master' into sup39
This commit is contained in:
commit
8943d44f4d
16 changed files with 1043 additions and 600 deletions
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
|
@ -18,6 +18,7 @@
|
|||
"[vue-html]": {
|
||||
"editor.defaultFormatter": "octref.vetur"
|
||||
},
|
||||
"files.autoSave": "off",
|
||||
"breadcrumbs.symbolSortOrder": "type",
|
||||
"editor.codeLens": true,
|
||||
"editor.detectIndentation": true,
|
||||
|
|
591
Codes.xml
591
Codes.xml
|
@ -428,26 +428,6 @@
|
|||
042906AC 60000000
|
||||
</source>
|
||||
</code>
|
||||
<!-- <code>
|
||||
<category>qol</category>
|
||||
<title lang="en-US">Infinite Lives (Deprecated)</title>
|
||||
<author>Psychonauter</author>
|
||||
<version>1.0</version>
|
||||
<date>Jan 20, 2017</date>
|
||||
<description lang="en-US">Locks life count at 99.</description>
|
||||
<source version="GMSE01">
|
||||
04578A04 00000063
|
||||
</source>
|
||||
<source version="GMSJ01">
|
||||
04575227 00000063
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
04569724 00000063
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
04570967 00000063
|
||||
</source>
|
||||
</code> -->
|
||||
<code>
|
||||
<category>qol</category>
|
||||
<presets>standard,recommended,il</presets>
|
||||
|
@ -556,36 +536,6 @@
|
|||
04016A90 FC210828
|
||||
</source>
|
||||
</code>
|
||||
<!--<code>
|
||||
<category>misc</category>
|
||||
<title lang="en-US">Remove Save Boxes</title>
|
||||
<title lang="de-CH">Speicher-Schaltfläche entfernen</title>
|
||||
<title lang="fr-FR">Supprimer les boîtes de sauvegarde</title>
|
||||
<title lang="ja-JP">セーブ画面の削除</title>
|
||||
<author>Psychonauter, Noki Doki</author>
|
||||
<version>2.2</version>
|
||||
<date>Feb 17, 2021</date>
|
||||
<description lang="en-US">Removes all saveboxes.</description>
|
||||
<description lang="de-CH">Entfernt alle Speicherschaltflächen.</description>
|
||||
<description lang="fr-FR">Supprime toutes les boîtes de sauvegarde.</description>
|
||||
<description lang="ja-JP">全てのセーブ画面を削除します。</description>
|
||||
<source version="GMSE01">
|
||||
04297CAC 60000000
|
||||
04297CB8 60000000
|
||||
</source>
|
||||
<source version="GMSJ01">
|
||||
040EB268 60000000
|
||||
040EB274 60000000
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
04277954 60000000
|
||||
04277960 60000000
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
0428FB44 60000000
|
||||
0428FB50 60000000
|
||||
</source>
|
||||
</code>-->
|
||||
<code>
|
||||
<category>qol</category>
|
||||
<presets>recommended,il</presets>
|
||||
|
@ -1285,413 +1235,6 @@
|
|||
042AF040 49541081
|
||||
</source>
|
||||
</code>
|
||||
<!-- <code>
|
||||
<category>timer</category>
|
||||
<title lang="en-US">Shine Touch Timer</title>
|
||||
<author>Psychonauter</author>
|
||||
<version>1.6</version>
|
||||
<description lang="en-US">
|
||||
Adds the ingame timer to every level, starting on the last black frame after the loading screen and ending when you touch a Shine.
|
||||
</description>
|
||||
<date>Nov 29, 2017</date>
|
||||
<source version="GMSE01">
|
||||
C2031F68 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803E 60A59710
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608034
|
||||
606394D8 7C6803A6
|
||||
4E800021 3CA08090
|
||||
60A52B28 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C21BD3D8 00000007
|
||||
7DE802A6 3C608056
|
||||
6063DD00 7FB0EB78
|
||||
3FA08028 63BDE604
|
||||
7FA803A6 4E800021
|
||||
7DE803A6 7E1D8378
|
||||
39E00000 3A000000
|
||||
4E800020 00000000
|
||||
C234802C 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C2149148 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803E
|
||||
60639710 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608056 6063DD00
|
||||
3FA08028 63BDE998
|
||||
7FA803A6 4E800021
|
||||
3C608056 6063DD00
|
||||
3FA08028 63BDE82C
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C228E90C 0000000A
|
||||
3CA0803E 60A59710
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C2171B6C 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F025C 00000000
|
||||
C2031F6C 0000000A
|
||||
3C60803E 60639710
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 6063DD00
|
||||
3C808028 6084E604
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
04348048 4E800020
|
||||
0414A99C 60000000
|
||||
0414D2E8 60000000
|
||||
0428E9C8 60000000
|
||||
0428E854 60000000
|
||||
0428E624 60000000
|
||||
0456DD00 00000000
|
||||
0456DD04 00000000
|
||||
0456DD18 00000003
|
||||
0456DD1C 00000002
|
||||
0456DD20 8056DD24
|
||||
0456DD24 00000000
|
||||
0456DD28 00000001
|
||||
0456DD2C 00000000
|
||||
0456DD30 000000B4
|
||||
</source>
|
||||
<source version="GMSJ01">
|
||||
C23617C4 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803E 60A56010
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608009
|
||||
60633DF8 7C6803A6
|
||||
4E800021 3CA08090
|
||||
60A57B08 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C21953A8 00000007
|
||||
7DE802A6 3C608074
|
||||
60639F00 7FB0EB78
|
||||
3FA0800E 63BD1B4C
|
||||
7FA803A6 4E800021
|
||||
7DE803A6 7E1D8378
|
||||
39E00000 3A000000
|
||||
4E800020 00000000
|
||||
C209294C 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C220A5A0 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803E
|
||||
60636010 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608074 60639F00
|
||||
3FA0800E 63BD1EE0
|
||||
7FA803A6 4E800021
|
||||
3C608074 60639F00
|
||||
3FA0800E 63BD1D74
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C20E1E54 0000000A
|
||||
3CA0803E 60A56010
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C2232024 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F0268 00000000
|
||||
C23617C8 0000000A
|
||||
3C60803E 60636010
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 60639F00
|
||||
3C80800E 60841B4C
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
04092968 4E800020
|
||||
0420BDF8 60000000
|
||||
0420E8A4 60000000
|
||||
040E1F10 60000000
|
||||
040E1D9C 60000000
|
||||
040E1B6C 60000000
|
||||
04749F00 00000000
|
||||
04749F04 00000000
|
||||
04749F18 00000003
|
||||
04749F1C 00000002
|
||||
04749F20 80749F24
|
||||
04749F24 00000000
|
||||
04749F28 00000001
|
||||
04749F2C 00000000
|
||||
04749F30 000000B4
|
||||
0420c074 4800006C
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
C2032020 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803E 60A510D0
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608034
|
||||
60631734 7C6803A6
|
||||
4E800021 3CA0808F
|
||||
60A5CCE8 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C21B5290 00000003
|
||||
3C60817F 60630100
|
||||
38800001 9083000C
|
||||
4E800020 00000000
|
||||
C228F870 0000000C
|
||||
2C000003 40A20050
|
||||
3C60817F 60630100
|
||||
8083000C 2C040000
|
||||
41A2003C 38800000
|
||||
9083000C 7DE802A6
|
||||
3C608056 6063DF00
|
||||
7FB0EB78 3FA08028
|
||||
63BD6390 7FA803A6
|
||||
4E800021 7DE803A6
|
||||
7E1D8378 39E00000
|
||||
3A000000 3C60803A
|
||||
60000000 00000000
|
||||
C2340288 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C213DDD8 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803E
|
||||
606310D0 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608056 6063DF00
|
||||
3FA08028 63BD6724
|
||||
7FA803A6 4E800021
|
||||
3C608056 6063DF00
|
||||
3FA08028 63BD65B8
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C2286698 0000000A
|
||||
3CA0803E 60A510D0
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C2167984 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F084C 00000000
|
||||
C2032024 0000000A
|
||||
3C60803E 606310D0
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 6063DF00
|
||||
3C808028 60846390
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
043402A4 4E800020
|
||||
0413F62C 60000000
|
||||
04141F78 60000000
|
||||
04286754 60000000
|
||||
042865E0 60000000
|
||||
042863B0 60000000
|
||||
0456DF00 00000000
|
||||
0456DF04 00000000
|
||||
0456DF18 00000003
|
||||
0456DF1C 00000002
|
||||
0456DF20 8056DF24
|
||||
0456DF24 00000000
|
||||
0456DF28 00000001
|
||||
0456DF2C 00000000
|
||||
0456DF30 000000B4
|
||||
0413f8a8 4800006C
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
C2363E70 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803D 60A5A8F0
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608032
|
||||
60638DD8 7C6803A6
|
||||
4E800021 3CA0808F
|
||||
60A5C788 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C219D160 00000003
|
||||
3C60817F 60630100
|
||||
38800001 9083000C
|
||||
4E800020 00000000
|
||||
C2277680 0000000C
|
||||
2C000003 40A20050
|
||||
3C60817F 60630100
|
||||
8083000C 2C040000
|
||||
41A2003C 38800000
|
||||
9083000C 7DE802A6
|
||||
3C608056 6063DD00
|
||||
7FB0EB78 3FA08026
|
||||
63BDE354 7FA803A6
|
||||
4E800021 7DE803A6
|
||||
7E1D8378 39E00000
|
||||
3A000000 3C608039
|
||||
60000000 00000000
|
||||
C232792C 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C212A528 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803D
|
||||
6063A8F0 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608056 6063DD00
|
||||
3FA08026 63BDE6E8
|
||||
7FA803A6 4E800021
|
||||
3C608056 6063DD00
|
||||
3FA08026 63BDE57C
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C226E65C 0000000A
|
||||
3CA0803D 60A5A8F0
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C21528FC 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F0268 00000000
|
||||
C2363E74 0000000A
|
||||
3C60803D 6063A8F0
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 6063DD00
|
||||
3C808026 6084E354
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
04327948 4E800020
|
||||
0412BD90 60000000
|
||||
0412E6F8 60000000
|
||||
0426E718 60000000
|
||||
0426E5A4 60000000
|
||||
0426E374 60000000
|
||||
0456DD00 00000000
|
||||
0456DD04 00000000
|
||||
0456DD18 00000003
|
||||
0456DD1C 00000002
|
||||
0456DD20 8056DD24
|
||||
0456DD24 00000000
|
||||
0456DD28 00000001
|
||||
0456DD2C 00000000
|
||||
0456DD30 000000B4
|
||||
0412C00C 4800006C
|
||||
</source>
|
||||
</code> -->
|
||||
<code>
|
||||
<category>timer</category>
|
||||
<title lang="en-US">Quarterframe Timer (Experimental)</title>
|
||||
|
@ -3262,82 +2805,6 @@
|
|||
0426659C 60000000
|
||||
</source>
|
||||
</code>
|
||||
<!--<code>
|
||||
<category>loader</category>
|
||||
<title lang="en-US">Stage Randomizer (Experimental)</title>
|
||||
<title lang="de-CH">Stage Randomizer (Experimentell)</title>
|
||||
<title lang="fr-FR">Randomiseur de niveaux (expérimental)</title>
|
||||
<title lang="ja-JP">ステージランダマイザー(実験段階)</title>
|
||||
<author>Noki Doki</author>
|
||||
<version>1.0</version>
|
||||
<description lang="en-US">
|
||||
Loads stages in randomized order.
|
||||
|
||||
::: warning
|
||||
This code is not compatible with the Level Select or Fast Any% code.
|
||||
:::
|
||||
</description>
|
||||
<description lang="de-CH">
|
||||
Ladet die Level in einer zufälligen Reihenfolge.
|
||||
|
||||
::: warning WARNUNG
|
||||
Dieser Code ist nicht kompatibel mit dem Level Select, Stage Loader oder Fast Any% code.
|
||||
:::
|
||||
</description>
|
||||
<description lang="fr-FR">
|
||||
Charge des niveaux dans un ordre aléatoire.
|
||||
|
||||
::: warning Attention
|
||||
Ce code n'est pas compatible avec le Sélecteur de niveaux, le Chargeur de liste ou Fast Any%.
|
||||
:::
|
||||
</description>
|
||||
<description lang="ja-JP">
|
||||
ランダムな順番でステージをロードします。
|
||||
|
||||
::: warning 注意
|
||||
このコードは「レベルセレクト」「Fast Any%」とは互換性がありません。
|
||||
:::
|
||||
</description>
|
||||
<date>Oct 11, 2017</date>
|
||||
<source version="GMSE01">
|
||||
C22A6710 00000023
|
||||
3C60803E 60639710
|
||||
88830002 2C04000E
|
||||
418200D8 2C04000D
|
||||
41820068 2C040001
|
||||
418100EC 7C6C42E6
|
||||
5464EF7E 70650007
|
||||
38840002 2C040007
|
||||
40A20028 38800014
|
||||
2C050006 40A20008
|
||||
68840003 2C050007
|
||||
40A20008 54A5083C
|
||||
7C842A14 38A00000
|
||||
5484402E 7C842A78
|
||||
48000008 7C884A14
|
||||
3C60803E 60639710
|
||||
90830000 48000090
|
||||
39000D00 8083FFFC
|
||||
2C040500 4082000C
|
||||
39200000 4BFFFFD8
|
||||
2C040502 4082000C
|
||||
39200001 4BFFFFC8
|
||||
2C040504 4082000C
|
||||
39200002 4BFFFFB8
|
||||
2C040505 4082000C
|
||||
39200003 4BFFFFA8
|
||||
2C040506 4082000C
|
||||
39200004 4BFFFF98
|
||||
2C040507 40A20030
|
||||
39200005 4BFFFF88
|
||||
3C60803E 60639710
|
||||
8883FFF4 70850008
|
||||
41A2000C 38800E01
|
||||
4BFFFF70 38800E00
|
||||
4BFFFF68 807F0020
|
||||
60000000 00000000
|
||||
</source>
|
||||
</code>-->
|
||||
<code>
|
||||
<category>cosmetic</category>
|
||||
<title lang="en-US">Replace Episode names with their ID</title>
|
||||
|
@ -3393,7 +2860,7 @@
|
|||
</source>
|
||||
</code>
|
||||
<code>
|
||||
<category>misc</category>
|
||||
<category>metadata</category>
|
||||
<title lang="en-US">Position/angle/speed display</title>
|
||||
<title lang="de-CH">Position/Winkel/Geschw. Display</title>
|
||||
<title lang="fr-FR">Affichage de position/angle/vitesse</title>
|
||||
|
@ -3401,8 +2868,20 @@
|
|||
<author>Noki Doki</author>
|
||||
<version>1.3</version>
|
||||
<date>Oct 28, 2019</date>
|
||||
<description lang="en-US">Shows Mario's position, angle and speed at any given time.</description>
|
||||
<description lang="de-CH">Zeigt Mario's Position, Winkel und Geschwindigkeit jederzeit auf dem Bildschirm an.</description>
|
||||
<description lang="en-US">
|
||||
Shows Mario's position, angle and speed at any given time.
|
||||
|
||||
::: warning
|
||||
This code is not compatible with the Speed Display code.
|
||||
:::
|
||||
</description>
|
||||
<description lang="de-CH">
|
||||
Zeigt Mario's Position, Winkel und Geschwindigkeit jederzeit auf dem Bildschirm an.
|
||||
|
||||
::: warning
|
||||
Dieser Code ist nicht kompatibel mit dem Geschwindigkeits-Display Code
|
||||
:::
|
||||
</description>
|
||||
<description lang="fr-FR">Affiche la position, l'angle et la vitesse de Mario à tout moment.</description>
|
||||
<description lang="ja-JP">常に「マリオの位置」「マリオの角度」「マリオの速度」を表示します。</description>
|
||||
<source version="GMSE01">
|
||||
|
@ -3699,7 +3178,7 @@
|
|||
</source>
|
||||
</code>
|
||||
<code>
|
||||
<category>misc</category>
|
||||
<category>metadata</category>
|
||||
<title lang="en-US">Speed display</title>
|
||||
<title lang="de-CH">Geschwindigkeits-Display</title>
|
||||
<title lang="fr-FR">Affichage de vitesse</title>
|
||||
|
@ -3707,8 +3186,20 @@
|
|||
<author>Noki Doki</author>
|
||||
<version>1.4</version>
|
||||
<date>Nov 28, 2021</date>
|
||||
<description lang="en-US">Shows Mario's speed at any given time.</description>
|
||||
<description lang="de-CH">Zeigt Mario's Geschwindigkeit jederzeit auf dem Bildschirm an.</description>
|
||||
<description lang="en-US">
|
||||
Shows Mario's speed at any given time.
|
||||
|
||||
::: warning
|
||||
This code is not compatible with the Position/Angle/Speed Display code.
|
||||
:::
|
||||
</description>
|
||||
<description lang="de-CH">
|
||||
Zeigt Mario's Geschwindigkeit jederzeit auf dem Bildschirm an.
|
||||
|
||||
::: warning
|
||||
Dieser Code ist nicht kompatibel mit dem Position/Winkel/Gewschw. Display Code
|
||||
:::
|
||||
</description>
|
||||
<description lang="fr-FR">Affiche la vitesse de Mario à tout moment.</description>
|
||||
<description lang="ja-JP">常に「マリオの速度」を表示します。</description>
|
||||
<source version="GMSE01">
|
||||
|
@ -4601,4 +4092,26 @@
|
|||
0424F324 7FE6FB78
|
||||
</source>
|
||||
</code>
|
||||
<code>
|
||||
<category>misc</category>
|
||||
<title lang="en-US">Shadow Mario HP Meter</title>
|
||||
<title lang="fr-FR">Barre de vie d'Antimario</title>
|
||||
<author>miluaces</author>
|
||||
<version>1.0</version>
|
||||
<date>Feb 20, 2022</date>
|
||||
<description lang="en-US">Shows a health bar above Shadow Mario whenever he gets hit with water.</description>
|
||||
<description lang="fr-FR">Affiche une barre de vie au-dessus d'Antimario quand il est touché par de l'eau.</description>
|
||||
<source version="GMSJ01">
|
||||
04253748 60000000
|
||||
</source>
|
||||
<source version="GMSE01">
|
||||
0403FD94 60000000
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
0403FBE4 60000000
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
0402BF98 60000000
|
||||
</source>
|
||||
</code>
|
||||
</codes>
|
||||
|
|
|
@ -37,7 +37,7 @@ Some codes store some states in the games memory starting from address 0x817F000
|
|||
| ![](./docs/unallocated.svg) | `0x24` | `0x93` | Not Allocated |
|
||||
| ![](./docs/reserved.svg) | `0x94` | `0xA3` | QF Timer: Coordinates of the Text box (LTRB) |
|
||||
| ![](./docs/reserved.svg) | `0xA4` | `0xB0` | QF Timer: Timer Format String |
|
||||
| ![](./docs/reserved.svg) | `0xB1` | `0xB1` | QF Timer: (Unused) |
|
||||
| ![](./docs/reserved.svg) | `0xB0` | `0xB1` | QF Timer: (Unused) |
|
||||
| ![](./docs/reserved.svg) | `0xB2` | `0xB2` | QF Timer: Stop at QFT Offset |
|
||||
| ![](./docs/reserved.svg) | `0xB3` | `0xB3` | QF Timer: Restart Flag |
|
||||
| ![](./docs/reserved.svg) | `0xB4` | `0xB7` | QF Timer: Cumulative time of previous areas since last reset (QFT Offset) |
|
||||
|
|
536
Removed-Codes.xml
Normal file
536
Removed-Codes.xml
Normal file
|
@ -0,0 +1,536 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<codes>
|
||||
<code>
|
||||
<category>qol</category>
|
||||
<title lang="en-US">Infinite Lives (Deprecated)</title>
|
||||
<author>Psychonauter</author>
|
||||
<version>1.0</version>
|
||||
<date>Jan 20, 2017</date>
|
||||
<description lang="en-US">Locks life count at 99.</description>
|
||||
<source version="GMSE01">
|
||||
04578A04 00000063
|
||||
</source>
|
||||
<source version="GMSJ01">
|
||||
04575227 00000063
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
04569724 00000063
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
04570967 00000063
|
||||
</source>
|
||||
</code>
|
||||
<code>
|
||||
<category>misc</category>
|
||||
<title lang="en-US">Remove Save Boxes</title>
|
||||
<title lang="de-CH">Speicher-Schaltfläche entfernen</title>
|
||||
<title lang="fr-FR">Supprimer les boîtes de sauvegarde</title>
|
||||
<title lang="ja-JP">セーブ画面の削除</title>
|
||||
<author>Psychonauter, Noki Doki</author>
|
||||
<version>2.2</version>
|
||||
<date>Feb 17, 2021</date>
|
||||
<description lang="en-US">Removes all saveboxes.</description>
|
||||
<description lang="de-CH">Entfernt alle Speicherschaltflächen.</description>
|
||||
<description lang="fr-FR">Supprime toutes les boîtes de sauvegarde.</description>
|
||||
<description lang="ja-JP">全てのセーブ画面を削除します。</description>
|
||||
<source version="GMSE01">
|
||||
04297CAC 60000000
|
||||
04297CB8 60000000
|
||||
</source>
|
||||
<source version="GMSJ01">
|
||||
040EB268 60000000
|
||||
040EB274 60000000
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
04277954 60000000
|
||||
04277960 60000000
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
0428FB44 60000000
|
||||
0428FB50 60000000
|
||||
</source>
|
||||
</code>
|
||||
<code>
|
||||
<category>timer</category>
|
||||
<title lang="en-US">Shine Touch Timer</title>
|
||||
<author>Psychonauter</author>
|
||||
<version>1.6</version>
|
||||
<description lang="en-US">
|
||||
Adds the ingame timer to every level, starting on the last black frame after the loading screen and ending when you touch a Shine.
|
||||
</description>
|
||||
<date>Nov 29, 2017</date>
|
||||
<source version="GMSE01">
|
||||
C2031F68 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803E 60A59710
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608034
|
||||
606394D8 7C6803A6
|
||||
4E800021 3CA08090
|
||||
60A52B28 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C21BD3D8 00000007
|
||||
7DE802A6 3C608056
|
||||
6063DD00 7FB0EB78
|
||||
3FA08028 63BDE604
|
||||
7FA803A6 4E800021
|
||||
7DE803A6 7E1D8378
|
||||
39E00000 3A000000
|
||||
4E800020 00000000
|
||||
C234802C 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C2149148 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803E
|
||||
60639710 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608056 6063DD00
|
||||
3FA08028 63BDE998
|
||||
7FA803A6 4E800021
|
||||
3C608056 6063DD00
|
||||
3FA08028 63BDE82C
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C228E90C 0000000A
|
||||
3CA0803E 60A59710
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C2171B6C 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F025C 00000000
|
||||
C2031F6C 0000000A
|
||||
3C60803E 60639710
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 6063DD00
|
||||
3C808028 6084E604
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
04348048 4E800020
|
||||
0414A99C 60000000
|
||||
0414D2E8 60000000
|
||||
0428E9C8 60000000
|
||||
0428E854 60000000
|
||||
0428E624 60000000
|
||||
0456DD00 00000000
|
||||
0456DD04 00000000
|
||||
0456DD18 00000003
|
||||
0456DD1C 00000002
|
||||
0456DD20 8056DD24
|
||||
0456DD24 00000000
|
||||
0456DD28 00000001
|
||||
0456DD2C 00000000
|
||||
0456DD30 000000B4
|
||||
</source>
|
||||
<source version="GMSJ01">
|
||||
C23617C4 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803E 60A56010
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608009
|
||||
60633DF8 7C6803A6
|
||||
4E800021 3CA08090
|
||||
60A57B08 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C21953A8 00000007
|
||||
7DE802A6 3C608074
|
||||
60639F00 7FB0EB78
|
||||
3FA0800E 63BD1B4C
|
||||
7FA803A6 4E800021
|
||||
7DE803A6 7E1D8378
|
||||
39E00000 3A000000
|
||||
4E800020 00000000
|
||||
C209294C 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C220A5A0 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803E
|
||||
60636010 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608074 60639F00
|
||||
3FA0800E 63BD1EE0
|
||||
7FA803A6 4E800021
|
||||
3C608074 60639F00
|
||||
3FA0800E 63BD1D74
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C20E1E54 0000000A
|
||||
3CA0803E 60A56010
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C2232024 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F0268 00000000
|
||||
C23617C8 0000000A
|
||||
3C60803E 60636010
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 60639F00
|
||||
3C80800E 60841B4C
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
04092968 4E800020
|
||||
0420BDF8 60000000
|
||||
0420E8A4 60000000
|
||||
040E1F10 60000000
|
||||
040E1D9C 60000000
|
||||
040E1B6C 60000000
|
||||
04749F00 00000000
|
||||
04749F04 00000000
|
||||
04749F18 00000003
|
||||
04749F1C 00000002
|
||||
04749F20 80749F24
|
||||
04749F24 00000000
|
||||
04749F28 00000001
|
||||
04749F2C 00000000
|
||||
04749F30 000000B4
|
||||
0420c074 4800006C
|
||||
</source>
|
||||
<source version="GMSP01">
|
||||
C2032020 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803E 60A510D0
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608034
|
||||
60631734 7C6803A6
|
||||
4E800021 3CA0808F
|
||||
60A5CCE8 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C21B5290 00000003
|
||||
3C60817F 60630100
|
||||
38800001 9083000C
|
||||
4E800020 00000000
|
||||
C228F870 0000000C
|
||||
2C000003 40A20050
|
||||
3C60817F 60630100
|
||||
8083000C 2C040000
|
||||
41A2003C 38800000
|
||||
9083000C 7DE802A6
|
||||
3C608056 6063DF00
|
||||
7FB0EB78 3FA08028
|
||||
63BD6390 7FA803A6
|
||||
4E800021 7DE803A6
|
||||
7E1D8378 39E00000
|
||||
3A000000 3C60803A
|
||||
60000000 00000000
|
||||
C2340288 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C213DDD8 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803E
|
||||
606310D0 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608056 6063DF00
|
||||
3FA08028 63BD6724
|
||||
7FA803A6 4E800021
|
||||
3C608056 6063DF00
|
||||
3FA08028 63BD65B8
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C2286698 0000000A
|
||||
3CA0803E 60A510D0
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C2167984 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F084C 00000000
|
||||
C2032024 0000000A
|
||||
3C60803E 606310D0
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 6063DF00
|
||||
3C808028 60846390
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
043402A4 4E800020
|
||||
0413F62C 60000000
|
||||
04141F78 60000000
|
||||
04286754 60000000
|
||||
042865E0 60000000
|
||||
042863B0 60000000
|
||||
0456DF00 00000000
|
||||
0456DF04 00000000
|
||||
0456DF18 00000003
|
||||
0456DF1C 00000002
|
||||
0456DF20 8056DF24
|
||||
0456DF24 00000000
|
||||
0456DF28 00000001
|
||||
0456DF2C 00000000
|
||||
0456DF30 000000B4
|
||||
0413f8a8 4800006C
|
||||
</source>
|
||||
<source version="GMSJ0A">
|
||||
C2363E70 0000000F
|
||||
3CC0817F 60C60100
|
||||
88860000 2C040001
|
||||
4182002C 88860001
|
||||
2C040001 40A20050
|
||||
3CA0803D 60A5A8F0
|
||||
88850002 2C040007
|
||||
4182003C 2C040009
|
||||
41810034 3C608032
|
||||
60638DD8 7C6803A6
|
||||
4E800021 3CA0808F
|
||||
60A5C788 90650028
|
||||
90660004 9085002C
|
||||
90860008 38600000
|
||||
98660000 80010024
|
||||
60000000 00000000
|
||||
C219D160 00000003
|
||||
3C60817F 60630100
|
||||
38800001 9083000C
|
||||
4E800020 00000000
|
||||
C2277680 0000000C
|
||||
2C000003 40A20050
|
||||
3C60817F 60630100
|
||||
8083000C 2C040000
|
||||
41A2003C 38800000
|
||||
9083000C 7DE802A6
|
||||
3C608056 6063DD00
|
||||
7FB0EB78 3FA08026
|
||||
63BDE354 7FA803A6
|
||||
4E800021 7DE803A6
|
||||
7E1D8378 39E00000
|
||||
3A000000 3C608039
|
||||
60000000 00000000
|
||||
C232792C 00000007
|
||||
3DE0817F 61EF0100
|
||||
8A0F0000 2C100001
|
||||
4182000C 806F0004
|
||||
808F0008 3A000000
|
||||
9A0F0000 906F0004
|
||||
908F0008 909F002C
|
||||
39E00000 00000000
|
||||
C212A528 00000012
|
||||
7C6F1B78 7FB0EB78
|
||||
3C60817F 60630100
|
||||
88830001 2C040001
|
||||
40A20060 38800000
|
||||
98830001 3C60803D
|
||||
6063A8F0 A0630002
|
||||
2C030805 41820044
|
||||
2C030605 4182003C
|
||||
2C031E00 41820034
|
||||
3C608056 6063DD00
|
||||
3FA08026 63BDE6E8
|
||||
7FA803A6 4E800021
|
||||
3C608056 6063DD00
|
||||
3FA08026 63BDE57C
|
||||
7FA803A6 4E800021
|
||||
7DE37B78 7E1D8378
|
||||
39E00000 3A000000
|
||||
800100CC 00000000
|
||||
C226E65C 0000000A
|
||||
3CA0803D 60A5A8F0
|
||||
A0A50002 2C051E00
|
||||
41820034 2C050404
|
||||
4182002C 2C050801
|
||||
41820024 2C050904
|
||||
4182001C 2C050605
|
||||
41820014 2C050805
|
||||
4182000C 38800000
|
||||
38600000 909E00CC
|
||||
60000000 00000000
|
||||
C21528FC 00000003
|
||||
3C60817F 60630100
|
||||
38800101 B0830000
|
||||
807F0268 00000000
|
||||
C2363E74 0000000A
|
||||
3C60803D 6063A8F0
|
||||
A083FFFE 2C043C00
|
||||
40A20038 A0830002
|
||||
2C040FFF 40A2002C
|
||||
7C1E0378 7FE802A6
|
||||
3C608056 6063DD00
|
||||
3C808026 6084E354
|
||||
7C8803A6 4E800021
|
||||
7FE803A6 7FC0F378
|
||||
83E1001C 00000000
|
||||
04327948 4E800020
|
||||
0412BD90 60000000
|
||||
0412E6F8 60000000
|
||||
0426E718 60000000
|
||||
0426E5A4 60000000
|
||||
0426E374 60000000
|
||||
0456DD00 00000000
|
||||
0456DD04 00000000
|
||||
0456DD18 00000003
|
||||
0456DD1C 00000002
|
||||
0456DD20 8056DD24
|
||||
0456DD24 00000000
|
||||
0456DD28 00000001
|
||||
0456DD2C 00000000
|
||||
0456DD30 000000B4
|
||||
0412C00C 4800006C
|
||||
</source>
|
||||
</code>
|
||||
<code>
|
||||
<category>loader</category>
|
||||
<title lang="en-US">Stage Randomizer (Experimental)</title>
|
||||
<title lang="de-CH">Stage Randomizer (Experimentell)</title>
|
||||
<title lang="fr-FR">Randomiseur de niveaux (expérimental)</title>
|
||||
<title lang="ja-JP">ステージランダマイザー(実験段階)</title>
|
||||
<author>Noki Doki</author>
|
||||
<version>1.0</version>
|
||||
<description lang="en-US">
|
||||
Loads stages in randomized order.
|
||||
|
||||
::: warning
|
||||
This code is not compatible with the Level Select or Fast Any% code.
|
||||
:::
|
||||
</description>
|
||||
<description lang="de-CH">
|
||||
Ladet die Level in einer zufälligen Reihenfolge.
|
||||
|
||||
::: warning WARNUNG
|
||||
Dieser Code ist nicht kompatibel mit dem Level Select, Stage Loader oder Fast Any% code.
|
||||
:::
|
||||
</description>
|
||||
<description lang="fr-FR">
|
||||
Charge des niveaux dans un ordre aléatoire.
|
||||
|
||||
::: warning Attention
|
||||
Ce code n'est pas compatible avec le Sélecteur de niveaux, le Chargeur de liste ou Fast Any%.
|
||||
:::
|
||||
</description>
|
||||
<description lang="ja-JP">
|
||||
ランダムな順番でステージをロードします。
|
||||
|
||||
::: warning 注意
|
||||
このコードは「レベルセレクト」「Fast Any%」とは互換性がありません。
|
||||
:::
|
||||
</description>
|
||||
<date>Oct 11, 2017</date>
|
||||
<source version="GMSE01">
|
||||
C22A6710 00000023
|
||||
3C60803E 60639710
|
||||
88830002 2C04000E
|
||||
418200D8 2C04000D
|
||||
41820068 2C040001
|
||||
418100EC 7C6C42E6
|
||||
5464EF7E 70650007
|
||||
38840002 2C040007
|
||||
40A20028 38800014
|
||||
2C050006 40A20008
|
||||
68840003 2C050007
|
||||
40A20008 54A5083C
|
||||
7C842A14 38A00000
|
||||
5484402E 7C842A78
|
||||
48000008 7C884A14
|
||||
3C60803E 60639710
|
||||
90830000 48000090
|
||||
39000D00 8083FFFC
|
||||
2C040500 4082000C
|
||||
39200000 4BFFFFD8
|
||||
2C040502 4082000C
|
||||
39200001 4BFFFFC8
|
||||
2C040504 4082000C
|
||||
39200002 4BFFFFB8
|
||||
2C040505 4082000C
|
||||
39200003 4BFFFFA8
|
||||
2C040506 4082000C
|
||||
39200004 4BFFFF98
|
||||
2C040507 40A20030
|
||||
39200005 4BFFFF88
|
||||
3C60803E 60639710
|
||||
8883FFF4 70850008
|
||||
41A2000C 38800E01
|
||||
4BFFFF70 38800E00
|
||||
4BFFFF68 807F0020
|
||||
60000000 00000000
|
||||
</source>
|
||||
</code>
|
||||
</codes>
|
33
changelog.md
33
changelog.md
|
@ -1,5 +1,22 @@
|
|||
# Changelog
|
||||
|
||||
## Mar 13, 2022
|
||||
|
||||
### Added 'Metadata Display' category
|
||||
|
||||
- Moved speed display codes from misc to metadata display
|
||||
- Made codes in the category exclusive
|
||||
|
||||
## Feb 22, 2022
|
||||
|
||||
### Added Option to define custom Gecko codes
|
||||
|
||||
## Feb 20, 2022
|
||||
|
||||
### Added 'Shadow Mario HP Meter'
|
||||
|
||||
Displays a health bar above Shadow Mario.
|
||||
|
||||
## Nov 28, 2021
|
||||
|
||||
### Updated 'Speed display'
|
||||
|
@ -8,24 +25,24 @@ Fixed a crash when leaving certain levels.
|
|||
|
||||
### Updated 'Quarterframe Timer (Experimental)'
|
||||
|
||||
* The timer now freezes upon grabbing blue or red coins.
|
||||
* The timer now rounds to the frame for end times, entry times and blue coin grabs, as more precision in those cases would be meaningless.
|
||||
- The timer now freezes upon grabbing blue or red coins.
|
||||
- The timer now rounds to the frame for end times, entry times and blue coin grabs, as more precision in those cases would be meaningless.
|
||||
|
||||
## Nov 15, 2021
|
||||
|
||||
### Updated 'Quarterframe Timer (Experimental)'
|
||||
|
||||
* Revamped reset behavior; this code is now fully compatible with Shine Get Timer, and no longer depends on any loader code.
|
||||
* The timer now freezes upon hitting a loading zone (similarly to Shine Get Timer) or exiting area.
|
||||
* Fixed possible overflows when entering a loading zone after staying in the same area for a very long time.
|
||||
- Revamped reset behavior; this code is now fully compatible with Shine Get Timer, and no longer depends on any loader code.
|
||||
- The timer now freezes upon hitting a loading zone (similarly to Shine Get Timer) or exiting area.
|
||||
- Fixed possible overflows when entering a loading zone after staying in the same area for a very long time.
|
||||
|
||||
## Oct 22, 2021
|
||||
|
||||
### Updated 'Quarterframe Timer (Experimental)'
|
||||
|
||||
* Adjusted speed to match real time on 30fps. The timer will run slightly faster than real time on 25fps PAL, just as the game itself does.
|
||||
* Fixed the ability for the timer to eventually roll back to 0:00.000; it will now stop at 99:59.994 (the highest achievable time below 100 minutes).
|
||||
* Fixed the ability for the timer to eventually resume while waiting on a Shine textbox; it will now keep displaying the end time forever (well, until the next area transition).
|
||||
- Adjusted speed to match real time on 30fps. The timer will run slightly faster than real time on 25fps PAL, just as the game itself does.
|
||||
- Fixed the ability for the timer to eventually roll back to 0:00.000; it will now stop at 99:59.994 (the highest achievable time below 100 minutes).
|
||||
- Fixed the ability for the timer to eventually resume while waiting on a Shine textbox; it will now keep displaying the end time forever (well, until the next area transition).
|
||||
|
||||
## Oct 10, 2021
|
||||
|
||||
|
|
53
package-lock.json
generated
53
package-lock.json
generated
|
@ -19,7 +19,7 @@
|
|||
"jsdom": "19.0.0",
|
||||
"markdown-it-attrs": "4.1.3",
|
||||
"pre-commit": "1.2.2",
|
||||
"prettier": "2.5.1",
|
||||
"prettier": "2.6.0",
|
||||
"serve": "^13.0.2",
|
||||
"vuepress": "1.9.7"
|
||||
}
|
||||
|
@ -7322,9 +7322,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.14.7",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
|
||||
"integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
|
||||
"version": "1.14.8",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
|
||||
"integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
|
@ -11526,15 +11526,18 @@
|
|||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
|
||||
"integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz",
|
||||
"integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/pretty-error": {
|
||||
|
@ -11557,9 +11560,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/prismjs": {
|
||||
"version": "1.26.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz",
|
||||
"integrity": "sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==",
|
||||
"version": "1.27.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz",
|
||||
"integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
|
@ -14894,9 +14897,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/url-parse": {
|
||||
"version": "1.5.4",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz",
|
||||
"integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==",
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
|
||||
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"querystringify": "^2.1.1",
|
||||
|
@ -22264,9 +22267,9 @@
|
|||
}
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.14.7",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
|
||||
"integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
|
||||
"version": "1.14.8",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
|
||||
"integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
|
||||
"dev": true
|
||||
},
|
||||
"for-in": {
|
||||
|
@ -25623,9 +25626,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"prettier": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
|
||||
"integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz",
|
||||
"integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==",
|
||||
"dev": true
|
||||
},
|
||||
"pretty-error": {
|
||||
|
@ -25645,9 +25648,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"prismjs": {
|
||||
"version": "1.26.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz",
|
||||
"integrity": "sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==",
|
||||
"version": "1.27.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz",
|
||||
"integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==",
|
||||
"dev": true
|
||||
},
|
||||
"process": {
|
||||
|
@ -28403,9 +28406,9 @@
|
|||
}
|
||||
},
|
||||
"url-parse": {
|
||||
"version": "1.5.4",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz",
|
||||
"integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==",
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
|
||||
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"querystringify": "^2.1.1",
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
"jsdom": "19.0.0",
|
||||
"markdown-it-attrs": "4.1.3",
|
||||
"pre-commit": "1.2.2",
|
||||
"prettier": "2.5.1",
|
||||
"prettier": "2.6.0",
|
||||
"serve": "^13.0.2",
|
||||
"vuepress": "1.9.7"
|
||||
},
|
||||
|
|
|
@ -1,16 +1,32 @@
|
|||
<template>
|
||||
<div :class="disabled ? 'button-wrapper disabled' : 'button-wrapper'">
|
||||
<button @click="onClick" :disabled="disabled">{{ label }}</button>
|
||||
<div
|
||||
:class="
|
||||
disabled
|
||||
? `button-wrapper disabled ${className ? className : ''}`
|
||||
: `button-wrapper ${className ? className : ''}`
|
||||
"
|
||||
>
|
||||
<button :class="small ? 'small' : ''" @click="handleClick" :disabled="disabled">
|
||||
{{ label }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
small: { type: Boolean, required: false },
|
||||
className: { type: String, required: false },
|
||||
disabled: { type: Boolean },
|
||||
onClick: { type: Function },
|
||||
label: { type: String },
|
||||
},
|
||||
methods: {
|
||||
handleClick(e) {
|
||||
e.stopPropagation();
|
||||
this.onClick();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@ -28,6 +44,10 @@ export default {
|
|||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.small {
|
||||
padding: 3px 7px;
|
||||
}
|
||||
|
||||
button {
|
||||
border: none;
|
||||
outline: none;
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
<template>
|
||||
<div>
|
||||
<CustomCodeModal
|
||||
v-if="customCodeInEditMode"
|
||||
:onCancel="closeCustomClodeModal"
|
||||
:onSave="saveCustomCode"
|
||||
:identifier="customCodeInEditMode.identifier"
|
||||
:initialValue="customCodeInEditMode.value"
|
||||
:initialTitle="customCodeInEditMode.title"
|
||||
/>
|
||||
<div class="preset-select">
|
||||
<SelectComponent
|
||||
:options="getPresetOptions()"
|
||||
|
@ -9,16 +17,37 @@
|
|||
/>
|
||||
</div>
|
||||
<div v-for="category in codeCategories" v-bind:key="category.identifier" class="code-group">
|
||||
<div class="category-title">{{ getCategoryTitle(category) }}</div>
|
||||
<div class="category-title">
|
||||
<span>{{ getCategoryTitle(category) }}</span>
|
||||
<ButtonComponent
|
||||
:small="true"
|
||||
v-if="category.identifier === 'custom'"
|
||||
className="btn-add-custom-code"
|
||||
label="+"
|
||||
:onClick="initCustomCodeModal"
|
||||
/>
|
||||
</div>
|
||||
<ul>
|
||||
<li
|
||||
v-for="(code, idx) in availableCodes.filter((c) => c.category === category.identifier)"
|
||||
v-bind:key="idx"
|
||||
v-bind:key="code.identifier ? code.identifier : idx"
|
||||
:class="code.selected ? 'checked' : code.disabled ? 'disabled' : ''"
|
||||
@click="toggle(code)"
|
||||
@mouseover="inspect(code)"
|
||||
>
|
||||
{{ getCodeTitle(code) }}
|
||||
<span>
|
||||
{{ getCodeTitle(code) }}
|
||||
</span>
|
||||
<div class="code-menu">
|
||||
<button
|
||||
v-if="code.identifier != null && code.category === 'custom'"
|
||||
type="button"
|
||||
class="btn-edit-custom-code"
|
||||
@click="(e) => deleteCustomCode(e, code.identifier)"
|
||||
>
|
||||
×
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
<li
|
||||
v-if="category.identifier === 'loader'"
|
||||
|
@ -40,6 +69,7 @@ import presetCategories from '../data/presetCategories.json';
|
|||
|
||||
export default {
|
||||
props: {
|
||||
version: { type: String },
|
||||
codes: { type: Array },
|
||||
onSelectionChanged: { type: Function },
|
||||
onInspect: { type: Function },
|
||||
|
@ -57,6 +87,8 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
customCodes: [],
|
||||
customCodeInEditMode: null,
|
||||
availableCodes: [],
|
||||
codeCategories,
|
||||
presetCategories,
|
||||
|
@ -71,6 +103,10 @@ export default {
|
|||
value: c.identifier,
|
||||
}));
|
||||
},
|
||||
emitChangeEvent() {
|
||||
const selectedCodes = this.availableCodes.filter((c) => c.selected);
|
||||
this.onSelectionChanged(selectedCodes);
|
||||
},
|
||||
loadPreset(identifier) {
|
||||
if (
|
||||
(this.stageLoaderSelected || this.availableCodes.find((c) => c.selected)) &&
|
||||
|
@ -86,7 +122,7 @@ export default {
|
|||
|
||||
this.unselectStageLoader();
|
||||
this.refreshDisabledCodes();
|
||||
this.onSelectionChanged(this.availableCodes.filter((c) => c.selected));
|
||||
this.emitChangeEvent();
|
||||
this.generation++;
|
||||
},
|
||||
getPresetPlaceholder() {
|
||||
|
@ -116,7 +152,7 @@ export default {
|
|||
this.stageLoaderSelected = newState;
|
||||
this.onStageLoaderToggle(newState);
|
||||
this.refreshDisabledCodes();
|
||||
this.onSelectionChanged(this.availableCodes.filter((c) => c.selected));
|
||||
this.emitChangeEvent();
|
||||
},
|
||||
refreshDisabledCodes() {
|
||||
for (const code of this.availableCodes) {
|
||||
|
@ -134,6 +170,64 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
initCustomCodeModal() {
|
||||
this.customCodeInEditMode = {
|
||||
identifier: btoa(new Date().toISOString()),
|
||||
title: undefined,
|
||||
value: undefined,
|
||||
};
|
||||
},
|
||||
closeCustomClodeModal() {
|
||||
this.customCodeInEditMode = null;
|
||||
},
|
||||
deleteCustomCode(e, identifier) {
|
||||
e.stopPropagation();
|
||||
this.customCodes = this.customCodes.filter((c) => c.identifier !== identifier);
|
||||
localStorage.setItem('custom-codes', JSON.stringify(this.customCodes));
|
||||
this.availableCodes = this.availableCodes.filter((c) => c.identifier !== identifier);
|
||||
this.emitChangeEvent();
|
||||
},
|
||||
saveCustomCode(identifier, title, value) {
|
||||
const updatedCode = {
|
||||
identifier,
|
||||
author: '-',
|
||||
title: [
|
||||
{
|
||||
lang: 'en-US',
|
||||
content: title,
|
||||
},
|
||||
],
|
||||
description: [
|
||||
{
|
||||
lang: 'en-US',
|
||||
content: '-',
|
||||
html: '<p>-</p>',
|
||||
},
|
||||
],
|
||||
version: '-',
|
||||
date: new Date().toLocaleDateString('en-US', {
|
||||
month: 'short',
|
||||
day: '2-digit',
|
||||
year: 'numeric',
|
||||
}),
|
||||
source: value,
|
||||
presets: [],
|
||||
category: 'custom',
|
||||
dependsOn: null,
|
||||
createdOnVersion: this.version,
|
||||
};
|
||||
this.customCodes = [
|
||||
...this.customCodes.filter((c) => c.identifier !== identifier),
|
||||
updatedCode,
|
||||
];
|
||||
|
||||
localStorage.setItem('custom-codes', JSON.stringify(this.customCodes));
|
||||
this.availableCodes = [
|
||||
...this.availableCodes.filter((c) => c.identifier !== identifier),
|
||||
{ ...updatedCode, selected: false },
|
||||
];
|
||||
this.closeCustomClodeModal();
|
||||
},
|
||||
toggle(code) {
|
||||
if (!code.selected && codeCategories.find((c) => c.identifier === code.category).exclusive) {
|
||||
for (const availableCode of this.availableCodes.filter(
|
||||
|
@ -150,10 +244,27 @@ export default {
|
|||
|
||||
code.selected = code.disabled ? false : !code.selected;
|
||||
this.refreshDisabledCodes();
|
||||
this.onSelectionChanged(this.availableCodes.filter((c) => c.selected));
|
||||
this.emitChangeEvent();
|
||||
},
|
||||
populate() {
|
||||
this.availableCodes = this.codes.map((c) => ({ ...c, selected: false }));
|
||||
const storedCustomCodes = localStorage.getItem('custom-codes');
|
||||
|
||||
if (storedCustomCodes) {
|
||||
try {
|
||||
const parsedCodes = JSON.parse(storedCustomCodes);
|
||||
this.customCodes = parsedCodes;
|
||||
} catch (err) {
|
||||
this.customCodes = [];
|
||||
}
|
||||
} else {
|
||||
this.customCodes = [];
|
||||
}
|
||||
|
||||
this.availableCodes = [
|
||||
...this.codes.map((c) => ({ ...c, selected: false })),
|
||||
...this.customCodes.map((c) => ({ ...c, selected: false })),
|
||||
];
|
||||
|
||||
this.refreshDisabledCodes();
|
||||
},
|
||||
inspect(code) {
|
||||
|
@ -168,13 +279,29 @@ export default {
|
|||
|
||||
<style scoped>
|
||||
.category-title {
|
||||
position: relative;
|
||||
color: white;
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
background: #383838b5;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding: 2px;
|
||||
margin-bottom: 0;
|
||||
display: grid;
|
||||
grid-template-columns: auto min-content;
|
||||
}
|
||||
|
||||
.btn-add-custom-code {
|
||||
min-width: unset;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.btn-edit-custom-code {
|
||||
background: transparent;
|
||||
border: none;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.category-title ~ ul {
|
||||
|
@ -209,10 +336,20 @@ ul li {
|
|||
user-select: none;
|
||||
outline: none;
|
||||
display: block;
|
||||
min-width: 280px;
|
||||
white-space: nowrap;
|
||||
padding-right: 15px;
|
||||
overflow: hidden;
|
||||
padding-right: 5px;
|
||||
min-width: 260px;
|
||||
max-width: 260px;
|
||||
text-align: left;
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: auto min-content min-content;
|
||||
}
|
||||
|
||||
ul li > span {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
ul li:nth-child(odd) {
|
||||
|
@ -271,9 +408,9 @@ li.checked::before {
|
|||
background-color: #d85e55;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 400px) {
|
||||
@media screen and (max-width: 1100px) {
|
||||
ul li {
|
||||
min-width: 180px;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
166
site/.vuepress/components/CustomCodeModal.vue
Normal file
166
site/.vuepress/components/CustomCodeModal.vue
Normal file
|
@ -0,0 +1,166 @@
|
|||
<template>
|
||||
<div class="modal-mask">
|
||||
<div class="modal-wrapper">
|
||||
<div class="modal-container">
|
||||
<span @click="confirmCancel" class="btn-close">×</span>
|
||||
<div class="modal-body">
|
||||
<div>
|
||||
<label>
|
||||
{{ getLabel('codeeditor.fields.title.label') }}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
:placeholder="getLabel('codeeditor.fields.title.placeholder')"
|
||||
v-model="title"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label> {{ getLabel('codeeditor.fields.value.label') }}* </label>
|
||||
<textarea
|
||||
@paste="onPaste"
|
||||
@blur="onTouch"
|
||||
v-model="customCode"
|
||||
:class="touched && !isCodeValid() ? 'invalid' : ''"
|
||||
:placeholder="getLabel('codeeditor.fields.value.placeholder')"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<ButtonComponent
|
||||
:disabled="!isCodeValid()"
|
||||
:label="getLabel('codeeditor.save')"
|
||||
:onClick="onSubmit"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// Util
|
||||
import { translate } from '../i18n/localeHelper';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
identifier: { type: String, required: false },
|
||||
initialTitle: { type: String, required: false },
|
||||
initialValue: { type: String, required: false },
|
||||
onCancel: { type: Function },
|
||||
onSave: { type: Function },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: this.initialTitle,
|
||||
customCode: this.initialValue,
|
||||
touched: this.initialValue != null,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
getLabel(key) {
|
||||
return translate(key, this.$lang);
|
||||
},
|
||||
isCodeValid() {
|
||||
if (!this.customCode) return false;
|
||||
const formattedCode = this.customCode.replace(/(?:\r|\n|\s)/g, '');
|
||||
return /^[a-fA-F0-9]+$/.test(formattedCode) && formattedCode.length % 16 === 0;
|
||||
},
|
||||
onTouch() {
|
||||
this.touched = true;
|
||||
},
|
||||
confirmCancel() {
|
||||
if (!confirm(translate('common.discard', this.$lang))) return;
|
||||
this.onCancel();
|
||||
},
|
||||
onSubmit() {
|
||||
this.onSave(
|
||||
this.identifier,
|
||||
this.title ? this.title : 'N/A',
|
||||
this.customCode.replace(/[^a-zA-Z0-9]/g, '').toUpperCase(),
|
||||
);
|
||||
},
|
||||
onPaste(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
const pasteContent =
|
||||
e.clipboardData?.getData?.('text') || window.clipboardData?.getData?.('text');
|
||||
|
||||
if (!pasteContent) return;
|
||||
|
||||
const newCode = `${this.customCode ? this.customCode : ''} ${pasteContent}`
|
||||
.replace(/(?:\t|\s)/g, '')
|
||||
.replace(/(.{8})(.{8})/g, '$1 $2\r\n');
|
||||
this.customCode = newCode;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.modal-mask {
|
||||
position: fixed;
|
||||
z-index: 9998;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: table;
|
||||
}
|
||||
.modal-wrapper {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.modal-container {
|
||||
max-height: 80vh;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
width: 300px;
|
||||
margin: 0px auto;
|
||||
padding: 20px;
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33);
|
||||
}
|
||||
.btn-close {
|
||||
position: absolute;
|
||||
font-size: 1.2em;
|
||||
right: 20px;
|
||||
top: 10px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
.modal-body > div:not(:last-child) {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.modal-body > div > label {
|
||||
display: block;
|
||||
color: #727272;
|
||||
font-size: 0.8em;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.modal-body > div > input,
|
||||
.modal-body > div > textarea {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
display: block;
|
||||
}
|
||||
.modal-body > div > textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
.modal-body > div > textarea.invalid {
|
||||
border: 1px solid red;
|
||||
}
|
||||
.modal-enter {
|
||||
opacity: 0;
|
||||
}
|
||||
.modal-leave-active {
|
||||
opacity: 0;
|
||||
}
|
||||
.modal-enter .modal-container,
|
||||
.modal-leave-active .modal-container {
|
||||
-webkit-transform: scale(1.1);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
</style>
|
|
@ -23,12 +23,11 @@
|
|||
/>
|
||||
</div>
|
||||
</section>
|
||||
<br />
|
||||
<hr />
|
||||
<section>
|
||||
<div v-if="codes && codes.length > 0">
|
||||
<h3>{{ getLabel('headers.codelist') }}</h3>
|
||||
<CodeList
|
||||
:version="selectedVersion"
|
||||
:onStageLoaderToggle="onStageLoaderToggle"
|
||||
:codes="codes"
|
||||
:onSelectionChanged="onCheatSelectionChanged"
|
||||
|
@ -216,7 +215,12 @@ section > div:not(:first-child) {
|
|||
}
|
||||
|
||||
.config {
|
||||
position: relative;
|
||||
position: sticky;
|
||||
top: 58px;
|
||||
z-index: 999;
|
||||
padding: 16px 0px;
|
||||
background: white;
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
}
|
||||
|
||||
.config span {
|
||||
|
@ -227,7 +231,7 @@ section > div:not(:first-child) {
|
|||
|
||||
.help {
|
||||
position: sticky;
|
||||
top: 80px;
|
||||
top: 90px;
|
||||
text-align: left;
|
||||
align-self: flex-start;
|
||||
width: 100%;
|
||||
|
|
|
@ -225,7 +225,6 @@ export default {
|
|||
return;
|
||||
}
|
||||
|
||||
console.log('Generating new Stageloader-Code');
|
||||
this.onChange(
|
||||
generateStageLoaderCode(
|
||||
this.fastCodes,
|
||||
|
|
|
@ -14,6 +14,11 @@
|
|||
"i18nKey": "generatorconfig.categories.timer",
|
||||
"exclusive": false
|
||||
},
|
||||
{
|
||||
"identifier": "metadata",
|
||||
"i18nKey": "generatorconfig.categories.metadata",
|
||||
"exclusive": true
|
||||
},
|
||||
{
|
||||
"identifier": "misc",
|
||||
"i18nKey": "generatorconfig.categories.misc",
|
||||
|
@ -28,5 +33,10 @@
|
|||
"identifier": "cosmetic",
|
||||
"i18nKey": "generatorconfig.categories.cosmetic",
|
||||
"exclusive": false
|
||||
},
|
||||
{
|
||||
"identifier": "custom",
|
||||
"i18nKey": "generatorconfig.categories.custom",
|
||||
"exclusive": false
|
||||
}
|
||||
]
|
||||
|
|
|
@ -8,7 +8,21 @@
|
|||
"GMSJ0A": "GMSJ01 (NTSC-J 1.1)",
|
||||
"GMSP01": "GMSP01 (PAL)",
|
||||
"loadpresetplaceholder": "Lade eine Vorlage..",
|
||||
"selectionreset": "Deine Auswahl wird zurückgesetzt. Fortfahren?"
|
||||
"selectionreset": "Deine Auswahl wird zurückgesetzt. Fortfahren?",
|
||||
"discard": "Deine Änderungen werden zurückgesetzt, fortfahren?"
|
||||
},
|
||||
"codeeditor": {
|
||||
"fields": {
|
||||
"title": {
|
||||
"label": "Titel",
|
||||
"placeholder": "N/A"
|
||||
},
|
||||
"value": {
|
||||
"label": "Gecko Code",
|
||||
"placeholder": "Dein Gecko Code.."
|
||||
}
|
||||
},
|
||||
"save": "Speichern"
|
||||
},
|
||||
"headers": {
|
||||
"help": "Hilfe",
|
||||
|
@ -39,7 +53,9 @@
|
|||
"timer": "Timer",
|
||||
"misc": "Misc",
|
||||
"memcardpatch": "Memory Card Patches",
|
||||
"cosmetic": "Kosmetisch"
|
||||
"cosmetic": "Kosmetisch",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"metadata": "Metadaten Anzeige"
|
||||
},
|
||||
"presets": {
|
||||
"standard": "Standard",
|
||||
|
|
|
@ -8,7 +8,21 @@
|
|||
"GMSJ0A": "GMSJ01 (NTSC-J 1.1)",
|
||||
"GMSP01": "GMSP01 (PAL)",
|
||||
"loadpresetplaceholder": "Load a preset..",
|
||||
"selectionreset": "This will reset your selection, continue?"
|
||||
"selectionreset": "This will reset your selection, continue?",
|
||||
"discard": "This will discard all your changes, continue?"
|
||||
},
|
||||
"codeeditor": {
|
||||
"fields": {
|
||||
"title": {
|
||||
"label": "Title",
|
||||
"placeholder": "N/A"
|
||||
},
|
||||
"value": {
|
||||
"label": "Gecko Code",
|
||||
"placeholder": "Your Gecko Code.."
|
||||
}
|
||||
},
|
||||
"save": "Save"
|
||||
},
|
||||
"headers": {
|
||||
"codelist": "Available Codes",
|
||||
|
@ -39,7 +53,9 @@
|
|||
"timer": "Timers",
|
||||
"misc": "Misc",
|
||||
"memcardpatch": "Memory Card Patches",
|
||||
"cosmetic": "Cosmetic"
|
||||
"cosmetic": "Cosmetic",
|
||||
"custom": "Custom",
|
||||
"metadata": "Metadata Display"
|
||||
},
|
||||
"presets": {
|
||||
"standard": "Standard",
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
body
|
||||
min-height: 120vh;
|
||||
font-size: 15px;
|
||||
|
||||
body.fool
|
||||
transform: rotateY(-180deg);
|
||||
|
@ -23,4 +24,8 @@ footer.page-edit
|
|||
max-width: 80%;
|
||||
|
||||
aside.sidebar
|
||||
z-index: 18;
|
||||
z-index: 1000;
|
||||
|
||||
header
|
||||
z-index: 9991 !important;
|
||||
height: 58px !important;
|
||||
|
|
Loading…
Reference in a new issue