Expansion de la mémoire de sauvegarde

Dernière mise-à-jour : 25/06/2024
Version actuelle : 2.0
Compatible avec : FF3us 1.0
Type : amélioration
Télécharger
EN FR
Nouvelle cartographie de la mémoire de sauvegarde (SRAM)
Expansion partie 1: $306A00-$307FFF
                    $306000-$3069FF = $7E1600-$7E1FFF

Expansion partie 2: $316A00-$317FFF
                    $316000-$3169FF = $7E1600-$7E1FFF

Expansion partie 3: $326A00-$327FFF
                    $326000-$3269FF = $7E1600-$7E1FFF

Autres valeurs: $336000-$3375FF (SRAM commune)
                $337600-$337EFF (non-utilisée)
                $337F00 = dernière partie altérée
                $337F01 = index rng
                $337F08 = valeur de checksum #$E41B (partie 1)
                $337F0A = valeur de checksum #$E41B (partie 2)
                $337F0C = valeur de checksum #$E41B (partie 3)
                $337F0E = valeur de checksum #$E41B (partie 4)
Description

Ce hack permet une expansion de la mémoire de sauvegarde (SRAM) de $1600 octets, allouant maintenant $2000 octets pour chaque partie sauvegardée ainsi qu'un 8Kb commun supplémentaire. Originalement, seulement 8Kb était alloué au total (mémoire $306000-$307FFF), chaque partie ayant $0A00 octets, en plus $200 octets pour usage commun général.

Avec ce hack, la mémoire $306000-$307FFF est utilisée pour la partie 1, $316000-$317FFF est utilisée pour la partie 2 et $326000-$327FFF pour la partie 3. La mémoire $7E1600-$7E1FFF est utilisée, tel que dans le jeu original, et est copiée dans la bonne section à la sauvegarde. La mémoire $336000-$3375FF est aussi copiée dans la bonne section. Lors du chargement d'une partie, le processus inverse est fait. Pour utiliser la nouvelle mémoire de sauvegarde, vous pouvez utiliser par exemple les instructions STA $336000,X ou LDA $336000,X.

Puisque la mémoire $337600-$337EFF est inutilisée, vous pourriez l'utiliser comme mémoire temporaire (appelée scratchpad RAM dans le jargon).

La SRAM pourrait être sujette à expansion encore plus significative, mais j'ai jugé que $1600 octets de plus par partie sont suffisants. Dans la cartographie de mémoire HiROM, les sections $20-$3F peuvent être utilisées comme SRAM, toujours dans les sous-sections $6000-$7FFF (e.g. $2E6000-$2E7FFF). La valeur dans l'en-tête SNES à l'adresse $C0FFD8 inidque quelle taille la mémoire de sauvegarde aura.

Je n'ai pas testé ce hack sur sd2snes, Everdrive ou une vraie console. snes9x 1.55 et bsnes+ ont été utilisés pour mes tests. Si vous planifiez d'utiliser ce hack avec une vraie cartouche de jeu, je ne sais pas quel type de cartouche pourrait faire l'affaire.

Expansion de la mémoire de sauvegarde

Dernière mise-à-jour : 25/06/2024
Version actuelle : 2.0
Compatible avec : FF3us 1.0
Type : amélioration
Télécharger
Nouvelle cartographie de la mémoire de sauvegarde (SRAM)
Expansion partie 1: $306A00-$307FFF
                    $306000-$3069FF = $7E1600-$7E1FFF

Expansion partie 2: $316A00-$317FFF
                    $316000-$3169FF = $7E1600-$7E1FFF

Expansion partie 3: $326A00-$327FFF
                    $326000-$3269FF = $7E1600-$7E1FFF

Autres valeurs: $336000-$3375FF (SRAM commune)
                $337600-$337EFF (non-utilisée)
                $337F00 = dernière partie altérée
                $337F01 = index rng
                $337F08 = valeur de checksum #$E41B (partie 1)
                $337F0A = valeur de checksum #$E41B (partie 2)
                $337F0C = valeur de checksum #$E41B (partie 3)
                $337F0E = valeur de checksum #$E41B (partie 4)
Description

Ce hack permet une expansion de la mémoire de sauvegarde (SRAM) de $1600 octets, allouant maintenant $2000 octets pour chaque partie sauvegardée ainsi qu'un 8Kb commun supplémentaire. Originalement, seulement 8Kb était alloué au total (mémoire $306000-$307FFF), chaque partie ayant $0A00 octets, en plus $200 octets pour usage commun général.

Avec ce hack, la mémoire $306000-$307FFF est utilisée pour la partie 1, $316000-$317FFF est utilisée pour la partie 2 et $326000-$327FFF pour la partie 3. La mémoire $7E1600-$7E1FFF est utilisée, tel que dans le jeu original, et est copiée dans la bonne section à la sauvegarde. La mémoire $336000-$3375FF est aussi copiée dans la bonne section. Lors du chargement d'une partie, le processus inverse est fait. Pour utiliser la nouvelle mémoire de sauvegarde, vous pouvez utiliser par exemple les instructions STA $336000,X ou LDA $336000,X.

Puisque la mémoire $337600-$337EFF est inutilisée, vous pourriez l'utiliser comme mémoire temporaire (appelée scratchpad RAM dans le jargon).

La SRAM pourrait être sujette à expansion encore plus significative, mais j'ai jugé que $1600 octets de plus par partie sont suffisants. Dans la cartographie de mémoire HiROM, les sections $20-$3F peuvent être utilisées comme SRAM, toujours dans les sous-sections $6000-$7FFF (e.g. $2E6000-$2E7FFF). La valeur dans l'en-tête SNES à l'adresse $C0FFD8 inidque quelle taille la mémoire de sauvegarde aura.

Je n'ai pas testé ce hack sur sd2snes, Everdrive ou une vraie console. snes9x 1.55 et bsnes+ ont été utilisés pour mes tests. Si vous planifiez d'utiliser ce hack avec une vraie cartouche de jeu, je ne sais pas quel type de cartouche pourrait faire l'affaire.