qol
standard,recommended,il
@@ -556,36 +536,6 @@
04016A90 FC210828
-
qol
recommended,il
@@ -1285,413 +1235,6 @@
042AF040 49541081
-
timer
Quarterframe Timer (Experimental)
@@ -3262,82 +2805,6 @@
0426659C 60000000
-
cosmetic
Replace Episode names with their ID
@@ -3393,7 +2860,7 @@
- misc
+ metadata
Position/angle/speed display
Position/Winkel/Geschw. Display
Affichage de position/angle/vitesse
@@ -3401,8 +2868,20 @@
Noki Doki
1.3
Oct 28, 2019
- Shows Mario's position, angle and speed at any given time.
- Zeigt Mario's Position, Winkel und Geschwindigkeit jederzeit auf dem Bildschirm an.
+
+ Shows Mario's position, angle and speed at any given time.
+
+ ::: warning
+ This code is not compatible with the Speed Display code.
+ :::
+
+
+ Zeigt Mario's Position, Winkel und Geschwindigkeit jederzeit auf dem Bildschirm an.
+
+ ::: warning
+ Dieser Code ist nicht kompatibel mit dem Geschwindigkeits-Display Code
+ :::
+
Affiche la position, l'angle et la vitesse de Mario à tout moment.
常に「マリオの位置」「マリオの角度」「マリオの速度」を表示します。
- misc
+ metadata
Speed display
Geschwindigkeits-Display
Affichage de vitesse
@@ -3707,8 +3186,20 @@
Noki Doki
1.4
Nov 28, 2021
- Shows Mario's speed at any given time.
- Zeigt Mario's Geschwindigkeit jederzeit auf dem Bildschirm an.
+
+ Shows Mario's speed at any given time.
+
+ ::: warning
+ This code is not compatible with the Position/Angle/Speed Display code.
+ :::
+
+
+ Zeigt Mario's Geschwindigkeit jederzeit auf dem Bildschirm an.
+
+ ::: warning
+ Dieser Code ist nicht kompatibel mit dem Position/Winkel/Gewschw. Display Code
+ :::
+
Affiche la vitesse de Mario à tout moment.
常に「マリオの速度」を表示します。
+
+ misc
+ Shadow Mario HP Meter
+ Barre de vie d'Antimario
+ miluaces
+ 1.0
+ Feb 20, 2022
+ Shows a health bar above Shadow Mario whenever he gets hit with water.
+ Affiche une barre de vie au-dessus d'Antimario quand il est touché par de l'eau.
+
+
+
+
+
diff --git a/Readme.md b/Readme.md
index f7260d8..8afbc46 100644
--- a/Readme.md
+++ b/Readme.md
@@ -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) |
diff --git a/Removed-Codes.xml b/Removed-Codes.xml
new file mode 100644
index 0000000..882971b
--- /dev/null
+++ b/Removed-Codes.xml
@@ -0,0 +1,536 @@
+
+
+ qol
+ Infinite Lives (Deprecated)
+ Psychonauter
+ 1.0
+ Jan 20, 2017
+ Locks life count at 99.
+
+
+
+
+
+
+ misc
+ Remove Save Boxes
+ Speicher-Schaltfläche entfernen
+ Supprimer les boîtes de sauvegarde
+ セーブ画面の削除
+ Psychonauter, Noki Doki
+ 2.2
+ Feb 17, 2021
+ Removes all saveboxes.
+ Entfernt alle Speicherschaltflächen.
+ Supprime toutes les boîtes de sauvegarde.
+ 全てのセーブ画面を削除します。
+
+
+
+
+
+
+ timer
+ Shine Touch Timer
+ Psychonauter
+ 1.6
+
+ Adds the ingame timer to every level, starting on the last black frame after the loading screen and ending when you touch a Shine.
+
+ Nov 29, 2017
+
+
+
+
+
+
+ loader
+ Stage Randomizer (Experimental)
+ Stage Randomizer (Experimentell)
+ Randomiseur de niveaux (expérimental)
+ ステージランダマイザー(実験段階)
+ Noki Doki
+ 1.0
+
+ Loads stages in randomized order.
+
+ ::: warning
+ This code is not compatible with the Level Select or Fast Any% code.
+ :::
+
+
+ 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.
+ :::
+
+
+ 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%.
+ :::
+
+
+ ランダムな順番でステージをロードします。
+
+ ::: warning 注意
+ このコードは「レベルセレクト」「Fast Any%」とは互換性がありません。
+ :::
+
+ Oct 11, 2017
+
+
+-
', + }, + ], + 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 { diff --git a/site/.vuepress/components/CustomCodeModal.vue b/site/.vuepress/components/CustomCodeModal.vue new file mode 100644 index 0000000..59a9c96 --- /dev/null +++ b/site/.vuepress/components/CustomCodeModal.vue @@ -0,0 +1,166 @@ + +