Zophar's Message Domain

Go Back   Zophar's Message Domain > Emulation Talk > Rom Hack

Reply
 
Thread Tools Display Modes
Old 11-26-2004, 04:52 PM   #1
Advent_Kirby
Junior Member
 
Join Date: Oct 2004
Posts: 18
Default Genesis Pointers

Does anyone know where I can find some docs on how to calculate Genesis pointers? So far, the info I've found is very vauge and it didn't focus on pointers, it just happened to mention them.

From what I can understand, the Genesis-scene is quite small (nither romhacking.com nor zophar's has any info judging from what I've seen so far), but if anyone knows anything, i'd be thankful if you would share it.

<P ID="signature"></P>
Advent_Kirby is offline   Reply With Quote
Old 11-27-2004, 01:44 AM   #2
SamIAm
Senior Member
 
Join Date: Aug 2001
Posts: 487
Default Re: Genesis Pointers

I can only offer limited help, but here's what I can tell you: if anyone does know about this stuff, it's the guys at segaxtreme's forums. There is a fair amount of documentation on their site as well, but I'll leave it to you to find out whether or not it is at all relavant to what you want.<img src=smilies/thumb.gif>

<P ID="signature">
</P>
SamIAm is offline   Reply With Quote
Old 11-27-2004, 07:30 AM   #3
Advent_Kirby
Junior Member
 
Join Date: Oct 2004
Posts: 18
Default Re: Genesis Pointers

Ok, thanks! I'll try it out there.

<P ID="signature"></P>
Advent_Kirby is offline   Reply With Quote
Old 12-16-2004, 05:55 AM   #4
D--
Senior Member
 
D--'s Avatar
 
Join Date: Oct 2001
Location: Chaoyang, Beijing, China
Posts: 826
Default Re: Genesis Pointers

> Does anyone know where I can find some docs on how to
> calculate Genesis pointers? So far, the info I've found is
> very vauge and it didn't focus on pointers, it just happened
> to mention them.

I've been working on a bunch of Genesis stuff, including repairing/finishing Langrisser II since Hiryuu Honnyaku never got to, Fengshen Yingjiezhuan and The New Prince & the Pauper. So I'll take this question.

They're almost ALWAYS 32-bit big-endian values. The 68000 stores its multi-byte values as big-endian so you don't need to flip things backwards like you do with little-endian families (6502, 65816, Intel stuff).

One thing I noticed is rarely are Genesis pointers under 32-bits in length, so if you try to lookt hem up fromt he location of the text, you almost enver miss. That's something I've been thankfully able to exploit because Genesis compilers tend to scatter pointers across the entire ROM whenever code needs them, instead of having a "pointer table" as you often find in SNES and NES games.

I'm reluctant to make any more broad statements because they might be incorrect for your game. If you can be a bit more specific I'll try to help.

I can provide source code for my Langrisser II script dumper and tools if you want, but not the other two games, which are being done under contract agreement.

P.S. Make VERY VERY SURE your ROM is deinterleaved, or you will not find shit. GROM can deinterleave it, or you can just write your own tool like I did.

<P ID="signature"><hr>
<img border=0 src=http://www.oakland.edu/~dcsoboda/img/avatar/you_lose.gif>
The Second Dimension (http://www.the2d.comhttp://www.the2d.com/</a>)</P>
__________________
portfolio :: deviantArt :: 微博 :: Twitter
D-- is offline   Reply With Quote
Old 12-17-2004, 02:53 PM   #5
pipes
Senior Member
 
pipes's Avatar
 
Join Date: May 2003
Posts: 1,883
Default Re: Genesis Pointers

> segaxtreme's forums.

They are down. Plus I thought I did a link to it too.<img src=smilies/retard.gif>

<P ID="signature">-----------------------------------------
The pipes clangor all the time!</P>
__________________
The pipes never clangor.
pipes is offline   Reply With Quote
Old 12-30-2004, 05:40 AM   #6
HeranBago
Junior Member
 
Join Date: Dec 2004
Posts: 16
Default Re: Genesis Pointers

> From what I can understand, the Genesis-scene is quite small

Yeah it is! However, the Sonic scene is huge. As far as I know, pointers for the genesis are normal, Big Endian.

For example. In sonic the Hedgehog 1.
The graphics for crabby are at 035A06.
You could decompress that art, alter it, compress it, and stick it at the end of the ROM, wherever that is. I'll say it's 080F0E.

Then search the ROM in a hex editor for 00035A06. Two results should come up. They're both pointers! Change themn both to your new address (00080F0E) and your all set!

Might want to get used to hex first though.

The good part is the Big Endian. No need to add a number to the address like you do with GBA or 32X games.


That's how I do it with sonic games though.

<P ID="signature"></P>
HeranBago is offline   Reply With Quote
Old 12-30-2004, 11:48 AM   #7
Advent_Kirby
Junior Member
 
Join Date: Oct 2004
Posts: 18
Default Re: Genesis Pointers

> For example. In sonic the Hedgehog 1. The graphics for crabby are at 035A06. You could decompress that art, alter it, compress it, and stick it at the end of the ROM, wherever that is. I'll say it's 080F0E.

>Then search the ROM in a hex editor for 00035A06. Two results should come up. They're both pointers! Change themn both to your new address (00080F0E) and your all set!

> The good part is the Big Endian. No need to add a number to
> the address like you do with GBA or 32X games.


So, from what I can understand so far, as long as you'r able to get both the old and new offset in hex, you already know your pointers? Sounds kinda easy, so maybe I'm missing soething here.

But I do remember reading something similar at the repositorys forum. Well, I guess I'll just try it out on a few english roms first.

But while we're at it, what was that about GBA/32X roms? Do they use a similar system?


<P ID="signature"></P>
Advent_Kirby is offline   Reply With Quote
Old 01-01-2005, 07:55 AM   #8
HeranBago
Junior Member
 
Join Date: Dec 2004
Posts: 16
Default Re: Genesis Pointers

Listen to D-boy.

And like I said, Sonic hacking has gotten pretty far. If anyone knows it'd be them. There are a number of sites...
http://sws2b.dyndns.org:1124/
www.soniccult.org (currently down)
http://www.shacnet.com/
http://www.projectnemesis.ibforums.com/esrael/
http://ssrg.shadowsoft-games.com/
http://sonicology.fateback.com/

Since so darn much is known about sonic games (especially sonic 2) I recommend you learn on that. There are great documentaions, even dissasemblies of those genesis sonic games.

As for the GBA, everything's little endian. so 124E looks like 4E12 in the ROM. It looks better when it's loaded, but then the ROM starts at 0x08000000, so to my understanding, that number is added to the real addy for a pointer..<img src=smilies/banghead.gif>

With the 32X, it's in big endian, the two hitatchi processers each start at different locations, master/slave. So where the data is loaded to depends on the data. Logically, adding 880000 would work, but for Knuckles Chaotix all the pointers I've found are big endian with 700000 added to them.<img src=smilies/banghead.gif>

Why can't everything be as easy as the NES? or at least the Genisis...

<P ID="signature"></P>
HeranBago is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:09 AM.

Contact Us - Zophar's Domain - Archive - Top

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.