- Joined: 16 Dec 2009
- Posts: 243
|
Three Dragons Story Checksum Graphics very messy
Posted: Thu Jul 29, 2010 3:32 am
|
When I was trying to edit the checksum of 3 Dragons Story for play on export consoles the graphics totally mess up. Checksum reader says everything is OK and I enter the game and this is what happens...
It's exactly the same problem on the emulator and on real hardware.
I am guessing I wrote over the actual graphics code but how am I supposed to move it to incorporate the checksum? Is this a complex thing to do also will it increase the rom beyond 32kb in size?
|
- Site Admin
- Joined: 19 Oct 1999
- Posts: 14752
- Location: London
|
Posted: Thu Jul 29, 2010 8:44 am
|
The header area might be used for data. Here's how I'd fix it:
- Run it in Meka's debugger with the breakpoint:
b r 7ff0..7fff
- When it hits, try to figure out from the code what the start point of that data is
- Figure out the size of the data (looks like it goes right up to $7fff)
- Look for some free space in the ROM that is big enough for the data (looks like it's extremely full... the biggest I see is 18 bytes)
- Copy it there and "rewire" the addresses to point to it
If that doesn't work:
- expand the ROM to 48KB
- now you have lots of free space
- but you might not be able to use it...
Edit: Well, here's how I did it...
1. b r 7ff0..7fff
2. Breakpoint hits at $7fdf
3. I can see it's using register HL to point at data, and the loop starts with it at $7feb. So that's where the data starts.
4. b remove 0
w r 7ff0..7fff
j 0
c
5. I see it only reads up to $7ff2. So the block is 8 bytes.
6. Look for 8 free bytes. I see some at $0018.
7. w clear
w 18..1f
j 0
c
8. $18 is used. There's another gap at $26-$37.
9. w clear
w 26..37
j 0
c
10. No hits.
11. Copy 8 bytes from $7feb to $26
12. Rewire pointer at $7fdb (change from EB 7F to 26 00)
13. Add header
14. Done.
I suggest running it in Meka's debugger with b 7ff0..7fff and try to play through the whole game, just to check. Let us know the result.
(Irrelevant note: the bytes from $7ff5 are the ASCII "LD D,5", a remnant of source code.)
|
- Joined: 16 Dec 2009
- Posts: 243
|
Posted: Thu Jul 29, 2010 9:46 am
|
- Site Admin
- Joined: 19 Oct 1999
- Posts: 14752
- Location: London
|
Posted: Thu Jul 29, 2010 12:23 pm Last edited by Maxim on Fri Jul 30, 2010 8:55 am; edited 1 time in total
|
Hmm, I'll take a look.
Edit: I've PMed you with a link to an IPS file. I followed my own instructions and it seems to work.
Edit: attached in public now
|