Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Three Dragons Story Checksum Graphics very messy

Reply to topic
Author Message
  • Joined: 16 Dec 2009
  • Posts: 243
Reply with quote
Three Dragons Story Checksum Graphics very messy
Post 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?

  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14752
  • Location: London
Reply with quote
Post 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.)
  View user's profile Send private message Visit poster's website
  • Joined: 16 Dec 2009
  • Posts: 243
Reply with quote
Post Posted: Thu Jul 29, 2010 9:46 am
still not working :(
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14752
  • Location: London
Reply with quote
Post 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

  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!