Quantcast

Results 1 to 7 of 7

Thread: Genesis Graphics Hacking

  1. #1
    On NGC? No, DREAMCAST! ;D Outrunner GameX's Avatar
    Join Date
    Apr 2010
    Location
    Quebec
    Posts
    726
    Rep Power
    8

    Default Genesis Graphics Hacking

    Hello,

    I would like to change a few graphics on a Genesis ROM, Dragon Ball.
    Like putting the gold Super Saiyan hair in a regular black.

    How can I do this? With Tile Layer Pro, I can't see anything, just little dots everywhere. I guess most of the graphics are compressed. If it's the case, who can I uncompress them?

    Thanks

  2. #2
    ding-doaw Raging in the Streets tomaitheous's Avatar
    Join Date
    Sep 2007
    Location
    Sonoran Desert
    Age
    38
    Posts
    3,526
    Rep Power
    49

    Default

    Quote Originally Posted by GameX View Post
    Hello,

    I would like to change a few graphics on a Genesis ROM, Dragon Ball.
    Like putting the gold Super Saiyan hair in a regular black.

    How can I do this? With Tile Layer Pro, I can't see anything, just little dots everywhere. I guess most of the graphics are compressed. If it's the case, who can I uncompress them?

    Thanks
    This should be in some other forum than tech aid? As far as the graphics (tiles), most likely they will be compressed. If they are compressed, you need to trace through the code in the game to figure out how they are compressed and possibly write your own decompressor (unless it's using a stock or already known compression scheme). As far as recompressing, assuming you don't have to write one yourself, you're more than likely going to have to figure out the pointer system and redo that (unless the data compresses at the same or smaller size than the original).

    Another option, is to rip the tiles from vram ( a save state or debugger vram dump), modify them, expand the rom and place them in the expanded area. Then change the pointer system to the new data (and possibly add an ASM hook if the decompression routine doesn't support uncompressed blocks).

    Sorry, it's not as easy as hacking NES roms. I'm still waiting for Nemesis Genesis debugger to come out (which is going to be awesome). Meantime, Regen has a debugger. There was some activity with Gens, IIRC, by the Sonic hacking community - so maybe a decent debugger is implemented in that was well.

    Good luck.

  3. #3
    On NGC? No, DREAMCAST! ;D Outrunner GameX's Avatar
    Join Date
    Apr 2010
    Location
    Quebec
    Posts
    726
    Rep Power
    8

    Default

    Quote Originally Posted by tomaitheous View Post
    This should be in some other forum than tech aid? As far as the graphics (tiles), most likely they will be compressed. If they are compressed, you need to trace through the code in the game to figure out how they are compressed and possibly write your own decompressor (unless it's using a stock or already known compression scheme). As far as recompressing, assuming you don't have to write one yourself, you're more than likely going to have to figure out the pointer system and redo that (unless the data compresses at the same or smaller size than the original).

    Another option, is to rip the tiles from vram ( a save state or debugger vram dump), modify them, expand the rom and place them in the expanded area. Then change the pointer system to the new data (and possibly add an ASM hook if the decompression routine doesn't support uncompressed blocks).

    Sorry, it's not as easy as hacking NES roms. I'm still waiting for Nemesis Genesis debugger to come out (which is going to be awesome). Meantime, Regen has a debugger. There was some activity with Gens, IIRC, by the Sonic hacking community - so maybe a decent debugger is implemented in that was well.

    Good luck.
    Good luck, yes.
    Are you good at these? I don't know if you are able to write a decompressor? Because writing one by myself, it's a nightmare. Especially for a begginer.

    Thanks

  4. #4
    ding-doaw Raging in the Streets tomaitheous's Avatar
    Join Date
    Sep 2007
    Location
    Sonoran Desert
    Age
    38
    Posts
    3,526
    Rep Power
    49

    Default

    Are you good at these? I don't know if you are able to write a decompressor? Because writing one by myself, it's a nightmare. Especially for a begginer.
    I've done a handful. Writing the decompressor is the easy part (once you've figured out the compression scheme by stepping through the code). Writing the compressor can be the real chore (depends on the compression scheme). If it's LZSS (or a specific implementation of it) and it's custom, you might be able to get away with using a similar compressor and then reformatting it to the game version/variant.

    Unfortunately, it's advanced level stuff :/ It definitely requires ASM knowledge too. How much experience do you have with ASM and PC programming? Also, for this game if it's just a palette hack (hair color), you might get lucky that the palette is stored uncompressed (or bit packed). Run the game in Regen, and then dump the palette data when you get to the at part. Then do a search in the rom for a few values from that. You might want to bit pack and do a search on that as well. Also, you need to figure out if the palette data is stored in little endian or big endian (because of how the VDP takes the written data and stores it, etc). Once you found what you think might be it, change those values in the rom and play test the rom.

  5. #5
    On NGC? No, DREAMCAST! ;D Outrunner GameX's Avatar
    Join Date
    Apr 2010
    Location
    Quebec
    Posts
    726
    Rep Power
    8

    Default

    I've done a handful. Writing the decompressor is the easy part (once you've figured out the compression scheme by stepping through the code). Writing the compressor can be the real chore (depends on the compression scheme). If it's LZSS (or a specific implementation of it) and it's custom, you might be able to get away with using a similar compressor and then reformatting it to the game version/variant.
    Can you decompress it for me, if you're able to do it, please? Because it's really too bad: if I can't uncompress the data, I can't do anything at all.

    Unfortunately, it's advanced level stuff :/ It definitely requires ASM knowledge too. How much experience do you have with ASM and PC programming?
    ASM, I don't even know what it is. ^^"
    I've done a bit of video games programming in GML, but that's all. And the GML is far more easier than the C++ - maybe it's one of the easiest programation language-. It's a simplified one.

    Also, for this game if it's just a palette hack (hair color), you might get lucky that the palette is stored uncompressed (or bit packed). Run the game in Regen, and then dump the palette data when you get to the at part.
    I thought about that, but I don't even think I'm doing it right. I'm just modifying the palette directly from TileLayerPro, but it doesn't change anything.

    Thanks for your help.

  6. #6
    ding-doaw Raging in the Streets tomaitheous's Avatar
    Join Date
    Sep 2007
    Location
    Sonoran Desert
    Age
    38
    Posts
    3,526
    Rep Power
    49

    Default

    Quote Originally Posted by GameX View Post
    Can you decompress it for me, if you're able to do it, please? Because it's really too bad: if I can't uncompress the data, I can't do anything at all.
    If you can locate the compressed data and figure out the compression scheme (document it), then I can write a decompressor (rip directly from the rom) and compressor (and rom inserter) for you, on the PC side. But to be honest, if you haven't had any experience with low level hardware and/or ASM (assembly language), then I suspect it's going to be a tough road ahead of you to get to a pace to where you can find the data and decode the scheme. I definitely don't want to do that part for you (it's harder part IMO. Plus I've already done that a few times for people and had that hardwork go no where on their side). Not to mention working without a real/nice debugger is a pain in the ass for hacking IMO (I'm spoiled ).



    ASM, I don't even know what it is. ^^"
    I've done a bit of video games programming in GML, but that's all. And the GML is far more easier than the C++ - maybe it's one of the easiest programation language-. It's a simplified one.
    Hmm - never heard of GML, but at least you have a little background.



    I thought about that, but I don't even think I'm doing it right. I'm just modifying the palette directly from TileLayerPro, but it doesn't change anything.
    I'm not sure as I haven't used tile layer pro (I used some of my own utils plus TMOD2 and TM). But it sounds like it isn't saving to the rom (what ever palette changes you made). Can you tell TLP where the palette data is in the rom or is it just for tile/sprite editing purposes (so you can see the right colors while editing them)?

    If all you want to do with this game at the moment, is to change the hair color - then you might not need to change the sprite. I suggest the first thing to do, is look at the structure of a save state file of some Genesis emulator. Find out where everything is in that file (you might need to unpack it first). Find the palette data for the hair color, change it, and reload that save state into the game. See if it works. If so, you can go about looking for the palette data in the rom (which is a lot easier than tile/sprite data).

  7. #7
    On NGC? No, DREAMCAST! ;D Outrunner GameX's Avatar
    Join Date
    Apr 2010
    Location
    Quebec
    Posts
    726
    Rep Power
    8

    Default

    If you can locate the compressed data and figure out the compression scheme (document it), then I can write a decompressor (rip directly from the rom) and compressor (and rom inserter) for you, on the PC side. But to be honest, if you haven't had any experience with low level hardware and/or ASM (assembly language), then I suspect it's going to be a tough road ahead of you to get to a pace to where you can find the data and decode the scheme. I definitely don't want to do that part for you (it's harder part IMO. Plus I've already done that a few times for people and had that hardwork go no where on their side). Not to mention working without a real/nice debugger is a pain in the ass for hacking IMO (I'm spoiled ).
    I subscribed on a ROM Hacking Forum. I hope they'll help me for the first part.

    Hmm - never heard of GML, but at least you have a little background.
    Do you know the video games creation software Game Maker by YoyoGames? It's actually using the GML (Game Maker Language).

    I'm not sure as I haven't used tile layer pro (I used some of my own utils plus TMOD2 and TM). But it sounds like it isn't saving to the rom (what ever palette changes you made). Can you tell TLP where the palette data is in the rom or is it just for tile/sprite editing purposes (so you can see the right colors while editing them)?
    This is exacly what I'm doing with TLP, but it changes noting:
    http://download252.mediafire.com/yxj...z4w1dm/tlp.wmv

    If all you want to do with this game at the moment, is to change the hair color - then you might not need to change the sprite. I suggest the first thing to do, is look at the structure of a save state file of some Genesis emulator. Find out where everything is in that file (you might need to unpack it first). Find the palette data for the hair color, change it, and reload that save state into the game. See if it works. If so, you can go about looking for the palette data in the rom (which is a lot easier than tile/sprite data).
    I would love at a certain moment to change the clothes or something like that, I guess it's very harder. And with my caracther with black hair, if I could add it as a caracther (So the gold hair and black hair are playable, both), like when I press the C button on the caracther name... It's probably extremely hard to play both.


    Thanks again, I really apreciate it.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •