Difference between revisions of "Phantasy Star III:FrenchNotes"

From Data Crystal
Jump to: navigation, search
m (Patterns Compressés)
(Scènes)
Line 70: Line 70:
 
* type = 0x18 : décompresse les patterns (Nemesis) depuis source vers destination en RAM (n est ignoré)
 
* type = 0x18 : décompresse les patterns (Nemesis) depuis source vers destination en RAM (n est ignoré)
 
* type = 0x1C : à étudier ; ça écrit des trucs en 0xFF8000 et ça a à voir avec les tiles
 
* type = 0x1C : à étudier ; ça écrit des trucs en 0xFF8000 et ça a à voir avec les tiles
* type = 0x20 : copie n octets de source + x*32, où x est le word en 0xFFD01E, vers 0xFFDD40 + destination (palettes)
+
* type = 0x20 : copie n octets de source + quest_id*32 vers 0xFFDD40 + destination (palettes)
 +
 
 +
=== Table des ajustements ===
 +
 
 +
Une table spéciale modifie le scene_id selon les events du jeu débloquée. Elle débute en 0x3EF86, par des offsets (w) vers chaque entrée.
 +
Une entrée est une liste, terminée par 0xFF.
 +
 
 +
Chaque entrée est sur 4 octets :
 +
* 00 (b) : numéro de la quête (voir quest_id dans la ROM map)
 +
* 01 (b) : event_id (voir ROM map)
 +
* 02 (w) : scene_id
 +
Si numéro de quête = quest_id et si l'event de evenet_id est True, alors le numéro de carte actuel est remplacé par scene_id.
  
 
== Batailles ==
 
== Batailles ==
  
 
== Stats ==
 
== Stats ==

Revision as of 07:43, 14 July 2014

Ces notes ne concernent que les versions US et européennes (les adresses sont différentes pour la version japonaise).

Elles sont encore incomplètes. Certains renseignements proviennent de la page de Hugues Johnson (sections hacking-rom, hacking et aridia wiki).

J'utilise la terminologie du document genvdp de Charles McDonald pour ce qui concerne la gestion des graphismes.

Pour le jeu lui-même :

  • Les Objets sont en général représentés par des sprites. Ce sont les PC, les NPC, et certains autres objets (par exemple les portails de châteaux, dans les villes, qui peuvent être ouverts ou fermés).
  • Les Cartes sont "vides", formées de deux Layers et d'informations de collisions.
  • Une Scène est la donnée d'une carte, de palettes, d'Objets.

Graphismes

Palettes

Patterns Non-compressés

Quelques graphismes sont non-compressés, par exemple l'écran-titre et la police. Voir la ROM map.

Patterns Compressés

La plupart des graphismes (tiles, persos) sont compressés à l'aide de l'algorithme Nemesis (voir ici pour plus de renseignements).

Voir la ROM map.

Police

Textes

Objets

Cartes

Scènes

Les scènes sont identifiée par un scene_id pair entre 0 et 0x3CA.

La plupart des scènes sont un assemblage cartes / NPCs / musique / autres infos, mais certaines scènes ne sont pas des cartes.

Table de paramètres

Une table de paramètres en 0x3C36A, démarrant par des offsets (w) vers chaque entrée. Une entrée est de la forme :

  • 00 (b) : largeur, en nbre de tiles
  • 01 (b) : hauteur, en nbre de tiles
  • 02 (w) : autant que je puisse en juger, ignoré (lu nulle part)
  • 04 (w) : de la forme xxbb. Si xx >= 0x80, alors la scène peut présenter des combats, et bb donne alors la battle_formations_id (voir section combats)
  • 06 (b) : id de la musique
  • 07 (b) : si 0xFF, le plan inférieur bouge moins vite (exemple : donjons futuristes)

Table de chargements

Une table de chargements en 0x21B70, démarrant par des offsets (w) vers chaque entrée. Une entrée est une liste, terminée par un 0x0000. Chaque entrée de la liste est sur 12 octets :

  • 00 (w) : paramètre n
  • 02 (w) : type (multiple de 4)
  • 04 (l) : adresse source
  • 08 (l) : adresse destination

Selon le type, l'action est différente :

  • type = 0x00 : copie n octets de source vers destination en RAM
  • type = 0x04 : copie n octets de source vers destination en VRAM
  • type = 0x08 : copie n octets de source vers 0xFFDD40 + destination (zone réservée aux palettes)
  • type = 0x0C : décompresse les patterns (Nemesis) depuis source vers destination en VRAM (n est ignoré)
  • type = 0x10 : charge les tiles (voir section maps pour la description du format) en RAM destination depuis source (n est ignoré).
  • type = 0x14 : charge une layer (voir section maps pour la description du format) en RAM destination depuis source (n est ignoré).
  • type = 0x18 : décompresse les patterns (Nemesis) depuis source vers destination en RAM (n est ignoré)
  • type = 0x1C : à étudier ; ça écrit des trucs en 0xFF8000 et ça a à voir avec les tiles
  • type = 0x20 : copie n octets de source + quest_id*32 vers 0xFFDD40 + destination (palettes)

Table des ajustements

Une table spéciale modifie le scene_id selon les events du jeu débloquée. Elle débute en 0x3EF86, par des offsets (w) vers chaque entrée. Une entrée est une liste, terminée par 0xFF.

Chaque entrée est sur 4 octets :

  • 00 (b) : numéro de la quête (voir quest_id dans la ROM map)
  • 01 (b) : event_id (voir ROM map)
  • 02 (w) : scene_id

Si numéro de quête = quest_id et si l'event de evenet_id est True, alors le numéro de carte actuel est remplacé par scene_id.

Batailles

Stats