Grüße,
erstmal gesundes Neues. Sorry, war etwas viel los und immer die Bude voll
Also, dein Text beginnt ja bei Rom Adresse 380000 - Die ROM ist Lowrom, demnach wenn du Lunar Adress anmachst und bei PC Adresse 380000 eingibst, spuckt er F08000 aus.
Im Rom sind die ersten drei Dialoge an einer stelle hintereinander gepackt: Hab bei mir mal die ROM Position eingetragen, so konnte ich das besser Tracen.
Die Zahlen sind die Pointer die abgerufen werden: Findest du bei PC Adresse 03a208 -> Drück im SNesEdit bei 03a208 auf F5 und dann F8 - Differenz 34800.
Wenn du dann auf 03a20A bzw C gehst siehst du dann das er auf die Rom Adresse zeigt. Das sind die Pointer die glaube ich genutzt werden, wenn du zu unterschiedlichen Zeiten den Shop usw aufsuchst.
Aber kommen wir mal noch zu den anderen Pointern. Also der erste Beginnt eigentlich bei 3800A9 / "Oh, your#ve come!..."
Ich hab also im Spiel bevor der Text geöffnet wird mit Geiger einen Savestate gemacht und dann CPU getraced, bis der Dialog aufgerufen wird, er muss nicht durchlaufen, es reichen die ersten paas Wörter,
3800A9 ist im ROM die Adresse F080A9 - Öffne den Trace, suche nur 80A9. Irgendwann findest du diese und musst dann schauen wo er das aufgerufen hat. Meine Doku nutzt aber den nächsten Dialog, nämlich "Actually...." Fängt an bei 3800D5 / Also Rom F080D5.
$FE/9000 AC D0 19 LDY $19D0 [$8A:19D0] A:0003 X:0580 Y:0000 D:0000 DB:8A S:0186 P:envmxdizc HC:0428 VC:247 FC:47 I:00
$FE/9003 DA PHX A:0003 X:0580 Y:0000 D:0000 DB:8A S:0186 P:envmxdiZc HC:0468 VC:247 FC:47 I:00
$FE/9004 5A PHY A:0003 X:0580 Y:0000 D:0000 DB:8A S:0184 P:envmxdiZc HC:0502 VC:247 FC:47 I:00
$FE/9005 A5 18 LDA $18 [$00:0018] A:0003 X:0580 Y:0000 D:0000 DB:8A S:0182 P:envmxdiZc HC:0536 VC:247 FC:47 I:00
$FE/9007 18 CLC A:80D5 X:0580 Y:0000 D:0000 DB:8A S:0182 P:eNvmxdizc HC:0610 VC:247 FC:47 I:00
$FE/9008 6D D0 19 ADC $19D0 [$8A:19D0] A:80D5 X:0580 Y:0000 D:0000 DB:8A S:0182 P:eNvmxdizc HC:0628 VC:247 FC:47 I:00
$FE/900B AA TAX A:80D5 X:0580 Y:0000 D:0000 DB:8A S:0182 P:eNvmxdizc HC:0668 VC:247 FC:47 I:00
$FE/900C C9 00 80 CMP #$8000 A:80D5 X:80D5 Y:0000 D:0000 DB:8A S:0182 P:eNvmxdizc HC:0686 VC:247 FC:47 I:00
$FE/900F B0 08 BCS $08 [$9019] A:80D5 X:80D5 Y:0000 D:0000 DB:8A S:0182 P:envmxdizC HC:0710 VC:247 FC:47 I:00
$FE/9019 BF 00 00 F0 LDA $F00000,x[$F0:80D5] A:80D5 X:80D5 Y:0000 D:0000 DB:8A S:0182 P:envmxdizC HC:0734 VC:247 FC:47 I:00
Hier lädst er von F080D5 - bzw 38 00 D5. Du musst schauen wo das 80D5 herkommt, geh in deinem Dump zurück: Man sieht das immer wenn du die 08D5 einfach in Notepad++ markiest:
Er holt sich die Adresse von 000018 / Lädst diese mit LDA $18, LDA heißt LadeInAccumulator, was er ja auch macht, da bei A: dann 80D5 stehen hat.
Die 80D5 kannst du wieder markieren und wenn du weiter nach oben verfolgst, findest du dann den "hardcoded" Pointer. Im Grundegenommen sind alle genauso abgelegt. die dann folgen.
War das soweit nachzuvollziehen?
Gruß
red