don't click here

Basic Questions & Answers thread

Discussion in 'Engineering & Reverse Engineering' started by Tweaker, May 29, 2008.

  1. Thanks! I was always wondering!

    So how far in the future do you think a split disassemble program will be ready for 3&K?
     
  2. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Not sure. <a href="http://idisk.mac.com/pietro10-Public/skincomplete.zip" target="_blank">You can use this incomplete one I released a while ago.</a>

    Also realize that even with a split disassembly you will need an understanding of how the game engine works.
     
  3. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,167
    295
    63
    Lincs, UK
    TurBoa, S1RL
    <!--quoteo(post=441477:date=Apr 12 2010, 04:03 PM:name=Cracker)--><div class='quotetop'>QUOTE (Cracker @ Apr 12 2010, 04:03 PM) <a href="index.php?act=findpost&pid=441477">[​IMG]</a></div><div class='quotemain'><!--quotec-->So how far in the future do you think a split disassemble program will be ready for 3&K?<!--QuoteEnd--></div><!--QuoteEEnd-->

    I'd personally guess at another 4-5 years, although I wish we already had it. I'm looking forward to discovering exactly how it works.
     
  4. Animemaster

    Animemaster

    Prison bitch! Member
    346
    0
    0
    UK
    Sonic 1 Revelation
    Ask Varion, he might be able to help you with that question.
     
  5. MarkeyJester

    MarkeyJester

    Time to Grow Up. Resident Jester
    2,119
    245
    43
    Japan
    From what I hear, there are plenty of them out there in the works as we speak, being done by multiple people, but no one is releasing anything yet, as a result, no disassembly. Though it would make sense to wait for a proper near finished version of the disassembly than say a half done version released immediatly as of ASAP. I can advise two things:

    (1) Wait until someone releases something.
    (2) Attempt to disassemble it yourself.
     
  6. VivaLaVida

    VivaLaVida

    This Guy.... Member
    35
    0
    0
    Editing layouts in SonED2
    So I was working with SonED2 on GHZ after following the guide on how to fix it and this happened:

    <a href="http://s915.photobucket.com/albums/ac358/VivaSonic/?action=view&current=yeah-3.gif" target="_blank">http://s915.photobucket.com/albums/ac358/V...rent=yeah-3.gif</a> (Couldn't remember how to post a screenshot for some reason)

    My question (seeing as I suck with disassembly work) is how can I fix this? Any help is greatly appreciated.
     
  7. SegaLoco

    SegaLoco

    W)(at did you say? Misfit
    Is the collision mixed up, or just the tiles themselves?
     
  8. VivaLaVida

    VivaLaVida

    This Guy.... Member
    35
    0
    0
    Editing layouts in SonED2
    I'm not entirely sure what that means, but I would guess the collison.
     
  9. MarkeyJester

    MarkeyJester

    Time to Grow Up. Resident Jester
    2,119
    245
    43
    Japan
    I can see title screen art there.. OK, lemmy work this out.

    The GHZ art is cut up into two sections, and the title screen loads one of the sections to present the BG GHZ art behind the title screen FG card, and the level "GHZ" loads both sections.

    The fact that GHZ is missing tiles which just so happen to have title card patterns in it's place, tells me that when GHZ is started, the second section of art isn't being fully loaded, as a result, the title screen patterns that were in VRam previously, haven't been overwritten by it.

    That's the only logic I can think of right now. The second GHZ art file is either..

    Missing tiles
    Not loading the tiles at all
    Or the title screen FG patterns are being reloaded over the GHZ patterns after the level loads

    Though I doubt it'd be that last one, but it's worth taking note, sorry I can't be much help.
     
  10. VivaLaVida

    VivaLaVida

    This Guy.... Member
    35
    0
    0
    Editing layouts in SonED2
    Ahh I see, and don't worry about it, I appreciate the thought. I followed the guide about how to set up GHZ for SonED2, and I triple checked to make sure I did everything right, but I must have screwed up somewhere.
     
  11. McGuirk

    McGuirk

    The Egg-Man Cometh. Member
    576
    1
    16
    Fort Worth, Texas, USA
    Making a Full-Sized Egg Carrier in Minecraft.
    I'm working on a little project to practice level layouts and learn a few things in the process.

    One thing I'm wanting to do is use horizontal spikes in EHZ. They're invisible work as-is. I searched for a while on how to fix this, and if I remember correctly the only relevant thing that I found said by SMTP: The art files are separate from the vertical spikes, so I'd need to load the art for the horizontal spikes before they'll show up.

    Snazzy. I'm working with the S2 split dissasembly from the SVN. However, there don't seem to be any art files in the /art directory, and the wiki doesn't list the address of the art in the ROM, so I can't get it out with a hex editor.

    Does anyone know anything about this art so that I could get around to getting it working?

    Also, I had an alternative idea to remap the sprites to use the vertical spike's art, but apparently you can't rotate tiles 90 degrees in Sonic 2?
     
  12. Hanoch

    Hanoch

    Also known as TheKnock, Birashot Member
    491
    0
    0
    Israel
    everything
    I don't think the genesis is capable of rotating/resizing tiles the 32x however can do that. You could always use TLP to manually rotate all tiles by 90 deegrees and then save the art.
     
  13. amphobius

    amphobius

    doing more important things with my life Member
    2,120
    0
    16
    life
    <!--quoteo(post=444358:date=Apr 19 2010, 12:41 PM:name=Hanoch)--><div class='quotetop'>QUOTE (Hanoch @ Apr 19 2010, 12:41 PM) <a href="index.php?act=findpost&pid=444358">[​IMG]</a></div><div class='quotemain'><!--quotec-->I don't think the genesis is capable of rotating/resizing tiles the 32x however can do that. You could always use TLP to manually rotate all tiles by 90 deegrees and then save the art.<!--QuoteEnd--></div><!--QuoteEEnd-->
    SonMapEd has a function for rotating by 90 degrees. Just make a group of tiles in a single block, duplicate it (with tiles), rotate the new sprite 90 degrees within SonMapEd. The temporaty mappings will be unnessacary if you're just wanting the tiles.
     
  14. McGuirk

    McGuirk

    The Egg-Man Cometh. Member
    576
    1
    16
    Fort Worth, Texas, USA
    Making a Full-Sized Egg Carrier in Minecraft.
    SonMapEd crashes if I try to use either "Rotate 90 degrees" function with Sonic 2.
     
  15. SegaLoco

    SegaLoco

    W)(at did you say? Misfit
    If you are just starting, you might try learning the Mega CD while you are at it, it offers superior PCM abilities and Scaling/Rotating abilities.
     
  16. McGuirk

    McGuirk

    The Egg-Man Cometh. Member
    576
    1
    16
    Fort Worth, Texas, USA
    Making a Full-Sized Egg Carrier in Minecraft.
    I have a basic understanding of how objects work now.

    Here's something I don't get:

    EHZ's Pattern Load Request loads the spike art into the VRAM at address $8680. My question is how does the game know to load the art at $8680 for the spike? I don't think it's specified in the mapping. I'm pretty sure that the tile index in the sprite mapping is relative as objects are sometimes loaded at different VRAM addresses in different levels.

    What I'm getting at is this: If I wanted to change the order of the PLR or add something that wasn't there before, how do I get the game to use that new art?
     
  17. Thorn

    Thorn

    Tech Member
    335
    19
    18
    Home
    Sonic 2 Retro Remix
    ^ Answering this during class atm, so I'm not viewing the SVN disassembly and am using the 2007 disassembly from my hack.

    Try this: take the object's VRAM address and divide it by 20 (all in hex). Now look at the art_tile value in the object's code and check out the last three digits. For example, normal spikes are loaded at $8680, which is $434 x $20, and one of its art_tile values is $2434. There's your relation. If you want to use a different VRAM location than the norm, you change the art_tile value so that the last three digits multiplied by $20 will match the desired VRAM address. The first digit is used for other properties of the object, so keep that the same unless you intend to toy with it (and I encourage toying around with things as long as you can reset them when you're done).

    With regards to spikes, you'll see a second art_tile value of $247C. This one is for sideways spikes. If you want to keep this VRAM location for zones already using it (e.g. Mystic Cave), create conditional branches that change the art_tile value only for specifics zones, and put the art into the PLC (Pattern Load Cue/Queue, or Request as you're calling it) for those zones with the desired address.
     
  18. NeKit

    NeKit

    Member
    57
    0
    0
    Russia
    Sonic SCANF
    [​IMG][​IMG]
    I tried to make other levels available in Sonic the Hedgehog 2 2P. But, like GerbilSoft said, it uses 8x16 mappings. Can something be done with it? As I understood, I have to do another set of mappings. But where and how? I'm using disassembly from Sonic Retro SVN.
     
  19. Hanoch

    Hanoch

    Also known as TheKnock, Birashot Member
    491
    0
    0
    Israel
    everything
    Here is a little tip: 8x16 is like 8 columns of 16 (pixels) from Soned2's block editor. I think you need to edit the mappings to fit those limiations but if you want your art to look as accurate to the 1P versions, you might want to try edit the art (though I think it uses 2 8x16 block next to each other so it looks like a full block)
     
  20. McGuirk

    McGuirk

    The Egg-Man Cometh. Member
    576
    1
    16
    Fort Worth, Texas, USA
    Making a Full-Sized Egg Carrier in Minecraft.
    Thorn, thanks much for your reply!

    Here's something that confuses me though. When I load horizontal spike art at $8F80, the horizontal spikes are still invisible, and the starpost gets borked up and starts using the horizontal spike art!

    This would be all good, except I can't figure out why that is.

    This is the only PLR that I can find with the starpost:
    Code (Text):
    1. PlrList_Signpost: plrlistheader
    2. &nbsp;&nbsp;&nbsp;&nbsp;plreq $8680, ArtNem_Signpost
    3. PlrList_Signpost_End
    So, first off, why doesn't the normal spike art mess with this, as it also loads at $8680? You mentioned conditional branches for loading art to nonstandard location. Do you know of any of these already in the game? I ask because I don't think the horizontal spikes are loading the art defined in their mappings, as well as confusion about the starpost.

    —EDIT--

    Nevermind, I can explain the startpost now:
    Code (Text):
    1. PlrList_Std2: plrlistheader
    2. &nbsp;&nbsp;&nbsp;&nbsp;plreq $8F80, ArtNem_Checkpoint
    3. &nbsp;&nbsp;&nbsp;&nbsp;plreq $D000, ArtNem_Powerups
    4. &nbsp;&nbsp;&nbsp;&nbsp;plreq $97C0, ArtNem_Shield
    5. &nbsp;&nbsp;&nbsp;&nbsp;plreq $9BC0, ArtNem_Invincible_stars
    6. PlrList_Std2_End
    But then why don't the horizontal spikes load checkpoint art by default if the mapping for the obj36 declare them to be at $8F80?