Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,586,657
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 05-15-24 02:32 AM
Guest: Register | Login

0 users currently in Super Mario RPG Hacking | 1 guest

Main - Super Mario RPG Hacking - I cant understand doc_dialogue.txt New thread | New reply


perfectacle
Posted on 01-28-15 01:59 PM Link | Quote | ID: 159397


Micro-Goomba
Level: 9

Posts: 8/11
EXP: 2793
Next: 369

Since: 04-24-08

Last post: 3213 days
Last view: 3182 days
(dialogue ID * 2) + 37E000 = pointer offset

dialogue ID's are 12 bits long
bits 10-12 are used to determine the bank

-------------
dialogue ID is number
It is correct??
ex) 1 or 92 or 206
Dialogue ID is 12bits long??
206 is 12bits?????
I cant understand...

here is the procedure by which to find the exact offset of the dialogue
d = dialogue ID

if (d AND 0xFE00) < 8
(d + 0x2206E3) = offset
else (d AND 0xFE00) - 8
if (d AND 0xFE00 - 8) < 4
(d + 0x237583) = offset
else (d AND 0xFE00 - 12)
if (d AND 0xFE00 - 12) < 4
(d + 0x24531E) = offset
else end

if (d AND 0xFE00) < 8 ????
it is
if ((d < 8) && (0xFE00 < 8)) ????
I cant understand...

kogami
Posted on 02-27-15 08:57 PM (rev. 5 of 02-27-15 09:06 PM) Link | Quote | ID: 159545


Goomba
Level: 14

Posts: 30/31
EXP: 12894
Next: 177

Since: 02-01-09

Last post: 3357 days
Last view: 3226 days
The texts of dialogues starts at
0x220008

The pointer table that found at
0x37E000

The text block for the first part of this dialogue divided into 4 part

Part1
Dialogue: 0x220008 (512 dialogue)
Pointer table: 0x37E000

Part2
Dialogue: 0x2206E3 (512 dialogue)
Pointer table: 0x37E400

Part3
Dialogue: 0x226759 (512 dialogue)
Pointer table: 0x37E800

Part4
Dialogue: 0x22B2B8 (512 dialogue)
Pointer table: 0x37EC00

Calculation of pointers
Part1: 0x220000 $0800 (little endian)
Part2: 0x220002 $E306 (little endian)
Part3: 0x220004 $5967 (little endian)
Part4: 0x220006 $B8B2 (little endian)

To simplify the calculation pointer we change the start address:

Part1: 0x220000 $0800 (little endian)
Part2: 0x220002 $0800 (little endian)
Part3: 0x220004 $0800 (little endian)
Part4: 0x220006 $0800 (little endian)

Main - Super Mario RPG Hacking - I cant understand doc_dialogue.txt New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.030 seconds. (340KB of memory used)
MySQL - queries: 42, rows: 63/64, time: 0.027 seconds.