ateam @dreamcastforever.com · Apr 23

(7/9) The solution was to leave the original case 6 intact (becomes dead code), copy all 316 bytes into a verified-empty safe zone elsewhere in the binary, insert a new 26-byte "draw letter D" block between letters 7 and 8, then redirect one pointer in the switch table.

2 likes 1 replies

?

Replies

ateam · Apr 23

(8/9) The trickiest part was that the copied code uses PC-relative addressing for data loads. Moving it to a new RAM location breaks EVERY displacement! So, I scripted something up to walk the assembly, recompute all 26 displacements, and generate the new assembly for me.