iam currently investigate the pointer system of DQ1+2 and have some problems to understand the script and the pointer.
One of the first dialogs on DQ2 is "Cabinet Minister: Prince... It looks like the time for your leave has come!..."
Each dialog start with a FD als Scrollingcomand and there are some bytes before the FD value occurs. I have debugged the dialog and find a pointer on pc 0e2f37 (headerless)
It is a 3 byte pointer: 91 8D 14 (DQ is lorom).
I dont know for what are the command in the most cases of the dialogs.
Further: Next after each pointer there are 10 bytes and then the next pointer occurs. What does this bytes in the game? I change someone and i thing this bytes are responsible for events and so on.
Quote$06/8305 9D A6 15 STA $15A6,x[$1C:15D2] A:0060 X:002C Y:AF42 P:envmxdizc
$06/8308 B9 02 00 LDA $0002,y[$1C:AF44] A:0060 X:002C Y:AF42 P:envmxdizc -> PC 0E2F44
$06/830B 9D A1 15 STA $15A1,x[$1C:15CD] A:8D91 X:002C Y:AF42 P:eNvmxdizc
$06/830E A9 00 00 LDA #$0000 A:8D91 X:002C Y:AF42 P:eNvmxdizc
$06/8311 E2 20 SEP #$20 A:0000 X:002C Y:AF42 P:envmxdiZc
$06/8313 B9 04 00 LDA $0004,y[$1C:AF46] A:0000 X:002C Y:AF42 P:envMxdiZc
$06/8316 9D A3 15 STA $15A3,x[$1C:15CF] A:0014 X:002C Y:AF42 P:envMxdizc
$06/8319 B9 05 00 LDA $0005,y[$1C:AF47] A:0014 X:002C Y:AF42 P:envMxdizc
Hope anyone could anwer how the pointersystem works...
Have a nice day.
I have a partially completed project in cleaning up the DQ1-2 text, but I'm stumped by the character codes when the Prince of Cannock gets cursed. I might need some help on that myself, but I need to look at where I am and what I need before I make that request.
In any case, here is what I've found about the pointers and dialogue commands:
DQ1/2 TEXT FORMATTING
*Text in long dialogue sequences will loop if not explicitly pointed
to the next line.
*The dialogue is single-width font, with some custom characters.
5F - *: - the symbol for a random NPC speaker
8B - play sound for dialogue
E5 - new string (non-dialogue)
FD - new string (dialogue)
F0 - prompt for next line
FE - end of line
FF - end of string
D80301 XXXX - command to point to the next string of text to show in big-endian
(text starting at 83B2 is written as B283)
D85200 - short delay in text
D85300 - longer delay in text
thanks for your feedback. This would help to understand the structure of the dialogs.
Will investigate in deeper look to the dialogs. Could you already create a dumper for the dialogs to work with them?!
I had traced the pointer for the first dialogs which are total confusing in his structure. So i could find some "head"-Pointer and the other are located in the dialog structure.
So i thing it would need a special dumper/inserter to change the pointer automatically. Or do you thing it would be possible to use a tool like cartographer or kruptar?