don't click here

Sonic Adventure 2 Hacking

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

  1. flarn2006

    flarn2006

    Member
    280
    3
    18
    Why? If you add to the cheat table we can see the addresses and modify it, not to mention it would all be in one place.
     
  2. Dark Sonic

    Dark Sonic

    Member
    14,631
    1,611
    93
    Working on my art!
    trainer = god mode for idiots like me.
     
  3. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,781
    362
    63
    SonLVL
    If it's a cheat table, you have to manually change all the codes to allow you to play as the 2P characters in 1P mode, and enable the test level. With a trainer, it's one click.

    Edit: For future reference, the level list you should all be using is here.
     
  4. flarn2006

    flarn2006

    Member
    280
    3
    18
    On that list, what are "Sonic Test" and "Knuckles Test"? It says they're not in any released version, but how do we know that's what it is? Is there any video of it from a prototype or something?
    Also, what about all the areas you see in the cutscenes, like the Eclipse Cannon control room and the prison cell where Sonic was? Do you know of any hacks that will allow you to actually control Sonic (or any other character) in those places, even if you need to use noclip (char action=58) or something?
     
  5. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,781
    362
    63
    SonLVL
    Those two levels were in the list for the debug menu I found.
    The events are not levels, they have no level geometry, and I don't think those are the same character objects you see in levels.
     
  6. flarn2006

    flarn2006

    Member
    280
    3
    18
    Debug menu? Seriously? How do I enable it?
    And is there any way I can view the event areas from different angles, as if it was a level? Where are the models for the events stored?
    Also, I had just refreshed the page for the first time in about a half an hour, and didn't see anything, then your post appeared literally the next time I refreshed only a second later.
     
  7. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,781
    362
    63
    SonLVL
    If you want to enable the invisible debug menu in the PC version, go to 434687 and change CC 76 8B 00 to 98 8F 8B 00.
     
  8. flarn2006

    flarn2006

    Member
    280
    3
    18
    Cool, I'll have to try that. Do you think you'll be able to make it visible?
     
  9. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,781
    362
    63
    SonLVL
    No. The reason it is invisible is because the code to display the menu was removed.
     
  10. flarn2006

    flarn2006

    Member
    280
    3
    18
    :-( Why'd they have to ruin our fun?
    Do you have any more screenshots of the Gamecube version with the menu visible? Know of any way to use the debug menu on there using just an Action Replay?
     
  11. Glaber

    Glaber

    Has Beaten Sonic Genesis for GBA Oldbie
    What's a land table for?

    And I'd really like to be able to get at the 3d data for the cut kindergarten rooms. I've been coming up with ideas for a chao animation series that could actually put them to use. Though I'd more than likely have to renovate the hallway.
     
  12. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,781
    362
    63
    SonLVL
    "LandTable" is the name of the data structure that begins a level's geometry data. Unfortunately the SA2B model format is still unknown, but for all the other parts of the Kindergarten (including the Library), you can use SALVL to get them from SA2DC's files and export them to OBJ. If it's not broken. Which it probably is.

    Those of you that would like more information on the debug menu can see the section on the wiki I just added. I just found out it has a demo recorder too.
     
  13. flarn2006

    flarn2006

    Member
    280
    3
    18
    Well the text for the debug menu is definitely present in the PC version; it's just not getting displayed.

    [​IMG]

    Perhaps it would be possible to figure out what text is supposed to be displayed at the moment, and then write a program (maybe using Cheat Engine forms) to display the text? The text I found isn't what would be displayed at the moment; just the possible strings it could display. But it might still be possible to rewrite the code Sega removed, even if the code is in a separate program. What do you think, MainMemory?

    By the way, I was playing around with the TEST:EVENT function, and for some reason it kind of reminds me of Source Filmmaker.
     
  14. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,781
    362
    63
    SonLVL
    Unfortunately, some of the text was also removed in the PC version.
     
  15. flarn2006

    flarn2006

    Member
    280
    3
    18
    Since you're able to run the modified Gamecube version, maybe you could make a menu map, basically listing all the items and submenus. Then a program could be written where you configure it with the same control inputs as are set up in SA2. You'd press a button when you activate the menu to let the program know it's ready, and then the program would display the same menu that would have been displayed. Then when it detects you press the buttons to select an item, it would update the selection it shows, basically simulating the menu that would appear on the Gamecube. The only problem with this is that certain dynamic information such as player position data could be shown, but that stuff I'm sure could always be read in Cheat Engine. (Though I may be overestimating exactly how useful this would be.)

    EDIT: I was able to find the address for the current menu selection in Cheat Engine, thinking maybe such a program could read that instead, but the address seems to change every time the menu is opened. It's probably controlled by a pointer; I'm currently using the pointer scan function to try and find out where the pointer is stored. I'll post when I find something.

    And...found it! Here's the pointer setup:

    [​IMG]

    I edited the image in Paint to make the text box larger, in case you're confused about why the dialog doesn't look exactly the same.
    If we find out where all the menu state data is stored, it should be possible to reimplement the menu display code in a Cheat Engine Lua script.
     
  16. Dark Sonic

    Dark Sonic

    Member
    14,631
    1,611
    93
    Working on my art!
    Did anyone ever manage to figure out how to swap the title screens? SA2 menus are superior.
     
  17. I'm just kinda diddling around at this point. I know it's not anything big, but I decided to add the Chao data with some of the more important fields to the cheat engine table. If anyone wants to make it more complete go ahead :3

    It's linked below:

    http://chaoticevil.ca/~captainbozo/sonic2app.CT
     
  18. flarn2006

    flarn2006

    Member
    280
    3
    18
    That's pretty cool. Try changing "Texture (Jewel)" to 44. (Don't put it any higher than 126 however; it will crash.)

    I'm adding a Lua form to the cheat table to enable various tweaks found by MainMemory, such as the debug "menu".
    EDIT: The new version is up!
     
  19. Chenginerd

    Chenginerd

    Member
    6
    0
    1
    I'm assuming (according to the Chao Table) that Chao 1 - 8 are in the Normal Garden, 9 - 16 are Hero, and 17 - 24 are dark, correct? If so, my third Chao's run is up to level 78 (1568), why is Run Fraction set to 74? Is this a different address/value alltogether?
     
  20. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,781
    362
    63
    SonLVL
    The "Fraction" is the bar that goes up when you give a Chao Chaos Drives/Small Animals and levels them up when it reaches the end.