View Single Post
Old 01 May 2022, 20:23   #5
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,314
It was slightly more complex in Red Zone yes

For instance, the main draw table consisted of blocks like: a routine (reloc needed), plus parameters that depended of the routine and which could be word, long or pointer... I had to use a python script to decode all that crap and generate proper tables.

Code:
lb_fa94:
	dc.l	lb_e1f8	;0fa94
	dc.w	$0002	;0fa98
	dc.w	$0004	;0fa9a
	dc.w	$0006	;0fa9c
	dc.w	$0008	;0fa9e
	dc.w	$ffff	;0faa0
lb_faa2:
	dc.l	lb_dde0	;0faa2
	dc.w	$0006	;0faa6
	dc.w	$20ca	;0faa8
	dc.w	$0004	;0faaa
	dc.w	$0002	;0faac
	dc.w	$0008	;0faae
	dc.w	$0006	;0fab0
	dc.w	$ffff	;0fab2
	dc.l	$ffffffff	;0fab4
lb_fab8:
	dc.l	lb_d458	;0fab8
	dc.w	$012c	;0fabc
lb_fabe:
	dc.l	lb_e496	;0fabe
lb_fac2:
	dc.l	lb_4d64a	;0fac2
lb_fac6:
	dc.l	lb_4d64c	;0fac6
lb_faca:
	dc.l	lb_4d64e	;0faca
	dc.w	$0000	;0face
Note: the table is 32k in size!!! good luck doing that by hand.

Plus the coders were really inconsistent in their coding, using either movea.l #address,another_address or lea address,A0 (depending on the mood?). LEAs are translated to labels, but moveas could very well be data...

The trick was to use winuae and read/write watchpoint on the whole program (previous location) and work from there to be sure not to miss anything.

It's not over yet, but looking good.
jotd is offline  
 
Page generated in 0.04547 seconds with 11 queries