don't click here

Sonic Adventure 2 Hacking

Discussion in 'Engineering & Reverse Engineering' started by Turbohog, Feb 20, 2012.

  1. Caverns 4

    Caverns 4

    Member
    346
    0
    16
    Sonic: Retold
    Hey Flarn, for your next release of the cheat table, could you add all of the physics parameters to be edited? Even the ones that aren't known, because I'm trying to figure out what everything is.

    Edit: Also, Mainmemory, I know that you were able to enable special abilities from 2P mode into 1P mode, is there any chance you might know anything about doing that with abilities too?

    What I'm thinking of exactly is allowing Mechless Tails to use the Magic Gloves if Sonic has them, not necessarily as an independent power-up. I think it's one thing that would make the mechless characters a little more playable until we can (if we'll ever be able to) hack them into more properly functional character.
     
  2. Facemelt

    Facemelt

    Member
    14
    0
    0
    UK
    Analysing the Fabric of Sonic the Hedgehog
    Looks incredible, keep it up :)
     
  3. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    That is an entirely different can of worms. In order to do that, I would have to figure out where Sonic's 'Magic Hands' code is, and insert it into Tails' code. I've never done anything like that before.
     
  4. Caverns 4

    Caverns 4

    Member
    346
    0
    16
    Sonic: Retold
    It didn't occur to me that Magic Hands is a character specific action somehow, but it does rather make sense. If it was that easy it probably would've been done already. I guess the reason it made sense to me initially is because of Shadow veing able to use the bounce bracelet if you get it in Pyramid cave... Though I'm still thinking there may be a correlation of some type there, as now I'm wondering if it would be possible (easy) to give Shadow Sonic's ability? Obviously he at least has the actions for them, or else it'd likely crash.
     
  5. flarn2006

    flarn2006

    Member
    280
    3
    18
    I'll try to remember to add the unknown physics parameters. Thanks for the suggestion! :)

    Now some of you may have noticed a new button on the cheat table saying "Land Table Hook" and wondered what it did. Well you can use this to load a level using the textures from another level. For "Texture File" you'd just enter the name of the level's texture file. This is typically "landtx??", where ?? is the level's ID. For example, City Escape is landtx13, and Green Forest is landtx03.

    Now often it just looks like some random texture was chosen to replace each one, and that makes sense. But some combinations look surprisingly good. Loading Green Forest's textures in Aquatic Mine decorates the mine's walls with plants, for example, and loading City Escape's textures in Final Rush makes it look a little bit like Speed Highway. (It's not that big of a resemblance, but it still looks cool.)

    But by far the best texture swap I've found so far is loading Security Hall's textures in White Jungle. Honestly, it looks like the textures and the level were made for each other. It makes it look like you're in an abandoned GUN facility that's flooded and overgrown. You'd think the tiki torches would look out of place, but they look pretty good there. Here's a video.

    Also, in case anyone's wondering, I've added a couple new keyboard shortcuts for manipulating objects in addition to the ones you already have. I'm trying to make it as easy as possible to arrange objects more precisely. Now that you can save the sets of objects you spawn it's really not only for experimenting with parameters anymore—think of the fun things that have been done with debug mode on the Genesis games.

    (Also, if someone ever does figure out how to copy character-specific actions to another character, I'd love to make the noclip mode work with Knuckles and Rouge.)
     
  6. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    There are six distinct character objects, named as such:
    • "SonicTheHedgehog" - Sonic, Shadow, Amy, Metal Sonic
    • "MilesTailsPrower" - Mechless Tails
    • "Eggman" - Mechless Eggman
    • "KnucklesTheEchidna" - Knuckles, Rouge, Tikal, Chaos
    • "EggWalker" - Mech Tails, Mech Eggman, Chao Walker, Dark Chao Walker
    • "SuperSonic" - Super Sonic, Super Shadow
    All the characters in the game use one of those objects. Any perceived differences between them are due to different models, animations, and character ID specific branches in the code.
     
  7. flarn2006

    flarn2006

    Member
    280
    3
    18
     
  8. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    New version of the alternate charsel exe which fixes the 2P race bar for non-racing characters. Except Eggman. Of course, mixing character types is still likely to glitch and crash, but it won't be because of that reason anymore.

    Oh yeah, you can now force P2 to load by holding Start on their controller. No splitscreen or any other 2P mode stuff though.
     
  9. Is there any way to force load Sonic or Shadow out of car in the car racing levels?
     
  10. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    You are not the first to ask that question, and unfortunately, I have no idea how the cart levels work.
     
  11. Caverns 4

    Caverns 4

    Member
    346
    0
    16
    Sonic: Retold
    We are quite a ways from that I would assume with a fair amount of safety.

    Well, one thing I can say is that it works quite a bit differently from the main game, for many reasons. Considering how hard it is to load two different types of normal characters alongside eachother, I'd say we probably won't be doing such a thing with the Kart racing for a very long time, since the entire game mode for that is a random arbitrary addition that doesn't even play similarly (It's also worth noting that it plays badly, but everyone knows that).
     
  12. flarn2006

    flarn2006

    Member
    280
    3
    18
    Actually if you load the Chao garden first, and then load the Kart level using Combine Levels (in Cheat Engine), it loads the Kart stage with a regular character that you can control normally, except for one thing. There's also another Sonic (or whoever you're playing as) in a Kart being controlled at the same time, and that's who the camera follows.

    By the way, has any trace of the two removed test levels (SONIC TEST and KNUCKLES TEST) been found, like in a prototype or anywhere? I'd love to see what they looked like.
     
  13. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    Replacing the CartExecuter object's loading function with LoadSonic didn't work.

    As far as the two removed test levels go, I don't know that anyone's ever looked. It wouldn't be hard to find though, just check the disc for stg01 and stg02 files.
     
  14. flarn2006

    flarn2006

    Member
    280
    3
    18
    I don't have the ISOs for those versions. Could someone who does maybe check?
    Also, if they are there, how easy would it be to port them to the PC? Would it just be a matter of copying the files, or is there more to it?
     
  15. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    That would be like trying to run Super Mario World in Gens.
    In the Dreamcast version, the *.prs files contain SH-4 code and data for levels or menus or whatever.
    In the GameCube version, the *.rel files contain PowerPC code and data for levels or menus or whatever.
    In the PC version, the sonic2app.exe file contains x86 code and some data for levels and menus, and the Data_DLL.dll file contains more data. There are .rel files left over from the GC version yes, but they are 99.9% unused (one could easily hack the game to not even check that they're there).
     
  16. darkspines35

    darkspines35

    It's Easy Actually. No, seriously. Tech Member
    248
    0
    16
    .V.
    Sanik Adevnt Casters
    There are some textures left over, but that's it. No stage files or anything.
     
  17. flarn2006

    flarn2006

    Member
    280
    3
    18
    So there would be some binary code involved? I wasn't sure if it was just an issue of copying stuff like models/land tables/SET files/whatever that's basically the same format on every platform. (except perhaps endianness)

    Also, since nobody's responded to my request for Mercurial write access in at least two months, I've put my cheat table up on Github. This version is a little more up to date than the version on the wiki, but I'll still be uploading to the wiki just as often.
    https://github.com/flarn2006/SA2CheatTable

    EDIT: I recently PM'd Cinossu about something else, and I mentioned my Mercurial request as well. He said he'd look at it, so when/if I do get access I'll remove it from Github and move it there. :)
     
  18. Lanzer

    Lanzer

    The saber calls for its master... Member
    6,845
    3
    18
    Glendale, AZ
    Living life.
    What are the textures if you don't mind me asking?
     
  19. flarn2006

    flarn2006

    Member
    280
    3
    18
    I know there were some unused textures associated with the test level that looked like they're from City Escape (here's an image) but I don't know if these are the ones he's talking about.

    Also, I managed to figure out why switches don't spawn correctly, in case anyone's interested: if the player is already right on top of the switch when it appears, it will permanently break that switch. So in order to spawn switches and have them work, you'll need to use the "Replace Selection" button or something. Usually what I do is spawn the switch normally with the parameters I want, move off the switch, and then click Replace Selection (since newly-spawned objects are automatically selected.)
     
  20. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,742
    338
    63
    SonLVL
    At flarn2006's insistence I have uploaded a new version of the disassembly.