Help with Pagan 8 disassembled code...
Posted: Wed Oct 28, 2015 8:57 am
Hi guys,
a bunch of time has passed since my last visit... and, congrats for the prize for the Fan Project of Ultima Codex.
All right, here goes my question, let's see if someone of Pentagram team can help me.
I'm trying to do the spanish translation for Pagan, I had talked about it years ago, but no tolos... so, I decided to do my own, but I needed to disassemble EUSECODE.FLX CLASSES to check what they were doing.
Until now I interpreted all the major code, but there is something in one EUSECODE CLASS, that I don't know what is doing.
Let's see the disassembled code (a portion):
==============================
.
.
CODE
.
.
B976: 57 spawn 00 02 057C:1090 (METHOD::1090)
B97D: 5E push retval
B97E: 54 implies 01 01
B981: 12 pop temp
B982: 53 suspend
B983: 52 jmp 0006h (to B98C)
B986: 52 jmp 0000h (to B989)
--->> B989: 52 jmp 6711h (to 1209D)
B98C: 62 free string [BP-07h]
B98E: 62 free string [BP-09h]
B990: 62 free string [BP-0Bh]
B992: 62 free string [BP-0Dh]
B994: 63 free slist [BP-0Fh]
B996: 50 ret
B997: 7A end
Destroying FileSystem...
======================================
Ok, let's see in 0xB989 address for this 0x040A CLASS. The end of class it's at 0xB997 address. The selected line (0xB989) makes a JMP instruction OUTSIDE BOUNDARIES of the class. This is the unique class that it is doing this. There are also in the previous code for this class more JMP or JNE instructions that go OUTSIDE BOUNDARIES, AFTER or BEFORE the addresses of this class.
Here goes my question:
Where in the hell are going this JMP & JNE instructions, to another EUSECODE CLASS? How can I know where they go?
I hope you can help with this, is the only thing in all the disassembled code that I can not interpret, and for one file it will be a mess that I can not do a good translation for this game.
Thanks in advance.
a bunch of time has passed since my last visit... and, congrats for the prize for the Fan Project of Ultima Codex.
All right, here goes my question, let's see if someone of Pentagram team can help me.
I'm trying to do the spanish translation for Pagan, I had talked about it years ago, but no tolos... so, I decided to do my own, but I needed to disassemble EUSECODE.FLX CLASSES to check what they were doing.
Until now I interpreted all the major code, but there is something in one EUSECODE CLASS, that I don't know what is doing.
Let's see the disassembled code (a portion):
==============================
.
.
CODE
.
.
B976: 57 spawn 00 02 057C:1090 (METHOD::1090)
B97D: 5E push retval
B97E: 54 implies 01 01
B981: 12 pop temp
B982: 53 suspend
B983: 52 jmp 0006h (to B98C)
B986: 52 jmp 0000h (to B989)
--->> B989: 52 jmp 6711h (to 1209D)
B98C: 62 free string [BP-07h]
B98E: 62 free string [BP-09h]
B990: 62 free string [BP-0Bh]
B992: 62 free string [BP-0Dh]
B994: 63 free slist [BP-0Fh]
B996: 50 ret
B997: 7A end
Destroying FileSystem...
======================================
Ok, let's see in 0xB989 address for this 0x040A CLASS. The end of class it's at 0xB997 address. The selected line (0xB989) makes a JMP instruction OUTSIDE BOUNDARIES of the class. This is the unique class that it is doing this. There are also in the previous code for this class more JMP or JNE instructions that go OUTSIDE BOUNDARIES, AFTER or BEFORE the addresses of this class.
Here goes my question:
Where in the hell are going this JMP & JNE instructions, to another EUSECODE CLASS? How can I know where they go?
I hope you can help with this, is the only thing in all the disassembled code that I can not interpret, and for one file it will be a mess that I can not do a good translation for this game.
Thanks in advance.