don't click here

(DC) Sonic Adventure Prototype (1998-10-16)

Discussion in 'General Sonic Discussion' started by Orengefox, May 21, 2013.

  1. Jen

    Jen

    #lapidot Moderator
    1,306
    1
    18
    England
    Various drawings
    Is there any way that you could provide some save states of this please? Or some step-by-step instructions? Orenge and I have tried following what you've said but we can't get it to work as we don't understand what we're looking for. We can get as far as setting a write breakpoint, but beyond that we're stuck...

    If you know how to convert Cheat Engine codes to Action Replay or Gameshark, or know another way of getting this to be controllable on hardware, that would help me out :) I have the original disc here so I reckon that might be the best way of playing the game on hardware.
     
  2. Vahkiti

    Vahkiti

    20
    0
    0
    Canadialand
    Professional let's player, video gamer, chiptune composer
    I might be able to figure it out. I can give it a try anyways. I've only ever converted Action Replay codes to and from the Wiird format, (Gamecube to Wii/Ocarina) but that's not exactly a difficult task.

    EDIT: I have absolutely no idea what they're talking about here. I'll need to read through it in a bit more detail. Since it is written regarding Gameshark for PSX, I don't know if this method will work, but if any of you guys feel like having a crack at it before I can wrap my head around it, here's the link: http://forums.codetwink.com/showthread.php?446-Cheat-Engine-Memory-Address-to-GameShark-Codes
     
  3. Jase

    Jase

    ~~(_ _C^> Member
    I remember Polygon Jim managed to convert some SA2 Cheat Engine addresses I gave him into Codebreaker codes, and he gave me guides on how to make the codes have triggers (like, pressing a trigger activates something), and I remember learning how to do them myself, but I sort of forgot since this was years ago and never really had interest or motive to make Codebreaker codes.
    I do remember it's quite simple though, the first section of an address (Like, if the address was 2C8333A0), the 2C part gets turned into 00 or 01, 02, ect, and each number determines what to do to the address (Eg 00 means change the byte at the address and 01 is change two bytes). All this is just coming off the top of my head and probably isn't accurate since my memory is ridiculously bad.
     
  4. Lanzer

    Lanzer

    The saber calls for its master... Member
    6,845
    3
    18
    Glendale, AZ
    Living life.
    *Sigh* I miss that crazy son of a bitch already. I'm sure he would've had a real kick tearing this thing apart. :(
     
  5. Jase

    Jase

    ~~(_ _C^> Member
    He's gone? D: I need to lurk more on Retro. I'll look it up.
     
  6. Vahkiti

    Vahkiti

    20
    0
    0
    Canadialand
    Professional let's player, video gamer, chiptune composer
    That article I posted might help refresh your memory. Then again, those are Gameshark codes. I couldn't find anything for Codebreaker.

    Yeah, sadly, he died last weekend. :/
     
  7. Jase

    Jase

    ~~(_ _C^> Member
    ...are you serious? holy fuck...
    Ahh man, this sucks. I'll invest my time in looking through my ancient histories of MSN for the stuff he taught me years ago (or maybe I could just google search it but yeah) then see what I can do. :/
     
  8. Vahkiti

    Vahkiti

    20
    0
    0
    Canadialand
    Professional let's player, video gamer, chiptune composer
    Well anything I can do to be of help, just let me know. I don't know a whole lot about it either but figuring it all out is what makes it fun right? :P
     
  9. Jen

    Jen

    #lapidot Moderator
    1,306
    1
    18
    England
    Various drawings
    Thanks for looking into this for me, Jase and Vahkiti, it's appreciated :)

    I've tried having a look around online for info about this, but none of it makes much sense to me (the way the things are written confuses me to be honest, they kinda assume that you know what you're doing - which I totally don't when it comes to calculating things).
     
  10. Vahkiti

    Vahkiti

    20
    0
    0
    Canadialand
    Professional let's player, video gamer, chiptune composer
    Oh believe me, I know the feeling. I'd like to consider myself fairly knowledgeable about certain things, but when I initially have to learn them, I can never find anything that just gives me a straight answer or a point form step by step list of instructions. I'm STILL trying to wrap my head around using codebreaker codes on the PS2 to force native widescreen.
     
  11. Orengefox

    Orengefox

    Snooping as usual... Researcher
    462
    21
    18
    Right in front of my computer.
    Some artwork, a ZZT game, and a hack.
    [​IMG]

    Updated the Sonic Adventure AutoDemo cheat table for Cheat Engine (in conjunction with demul). I've fixed it so that everything is now the right type. In addition to that, you can now access all sorts cheats and it includes two text files. The first text file tells you which stages and segments/acts are playable. The other text file goes into detail what each cheat does. Many thanks to everyone so far. Keep up the great work :thumbsup:

    Download: http://www.mediafire.com/download/iqi2nuznupazezq/Sonic_Adventure_AutoDemo_Demul_Cheat_Engine_Table.rar
     
  12. Jase

    Jase

    ~~(_ _C^> Member
    Right not making ANY promises, but here is a codebreaker code for that "Controls" Address that Morph found on page 21

    00169D18
    00000000

    OR

    01169D18
    00000000

    I can't test it since I lack a codebreaker CD and blank CD's. I'll continue reading about codebreaker codes but no harm in trying that.
    EDIT: Edited the code.
    EDIT: Ahh. I'm trying too hard whilst I'm exhausted. There also may be a "Master Code" needed which I have no idea how to find IF needed.
    Here's the guide anyway
    http://www.gamefaqs.com/dreamcast/916412-dreamcast/faqs/11357
     
  13. Vahkiti

    Vahkiti

    20
    0
    0
    Canadialand
    Professional let's player, video gamer, chiptune composer
    I'll need to go out later and buy a pack of CDs I guess. Can codebreaker codes not be used with DC Homebrew like AR on the Wii? A DC codebreaker might be hard to come by unless I can burn that too.
     
  14. Glu

    Glu

    Member
    2
    0
    0
    I'm afraid I can't, sorry. The method described patches the code dcemul generates in order to emulate the CPU. As such, the code is not inside the Dreamcast's scope, so it will not get written into save states.
    Here is a quick step-by-step guide:
    Always try to begin from the start screen. It works from inside levels in some circumstances, but this is just the safest way. Pause the game here
    [​IMG]
    Set Stage and Stage segment to something meaningful, and Character to some character that does not have a cutscene there(6, Gamma in this example). Also, set your write breakpoint on LoadThing
    [​IMG]
    Unpause the game, and wait for the game loading the stage. Your breakpoint will now hit in the right window
    [​IMG]
    Start running the game(Debug->Run) a few times. LoadThing will go from 0 to 1 to 4 to 11. As soon as it hits 11, don't click on Debug->Run for now. Instead, click here
    [​IMG]
    Now go one instruction up in the top left window, select the call instruction, and remove it
    [​IMG]
    Finally, set LoadThing back to 4 manually. You can just do this in Cheat Engine's main window
    [​IMG]

    You're ready to hit Debug->Run again. Everything should run now, with full control. Note that you'll have to do this nearly every time, dcemul overwrites your patched routine or uses a new one in most cases once you load a new level.

    I don't have the required setup to mess around with SH4 code right now. This whole procedure could be greatly simplified by just patching the game's code. Meh.

    Also, here is a list of cutscenes I have been able to walk around in
    Code (Text):
    1.  
    2. Level Segment Description
    3. 29     2      Egg carrier deck
    4. 26     1      Station Square Train Station/Casino Street
    5. 32     3      Egg carrier prison
    6. 32     1      Egg carrier bridge
    7. 1      2      Big's Fishing Level at Emerald Coast(fishing actually works here when using Big!)
    8.  
    By the way, I don't remember reading it here. Setting LoadThing to 12 enables the pause menu. 2C75161A contains the current selection in there. Nothing too special.
     
  15. AeonicB

    AeonicB

    Oldbie
    813
    12
    18
    Freelance
    On the creepy girl image, if the font is indeed any sort of English, then the ending of the word doesn't have a trailing Y. Its so lo-resed at this point it'd be a godsend to figure out anything at all, but could someone provide me with the original textures of Speed Highway's Bugduck lady from the beta and final? At least, it gives me something to do with a free afternoon.
     
  16. How do I rebuild the ISO? I wish to test my work on the beta Chao Garden.
     
  17. SF94

    SF94

    Tech Member

    I think what it actually is is whether or not a demo is playing, seeing as it's 0 to enable control which is typically disable in every other regard.
    That being the case, there's probably another one laying around that handles actual controls that we could find.
     
  18. evilhamwizard

    evilhamwizard

    Researcher
    1,392
    455
    63
    Just a quick question. I'm currently getting something to load that otherwise couldn't load before (!) and I think I have it working, but the problem is that I'm loading out of the stage. The X/Y/Z positions stay at zero and have no effect when modified, not even Action either. Does anyone know of a fix? You can see this happen if you load stage 37 too. The X/Y/Z just stays put at 0 and doesn't change when Sonic moves. But it works if you let the game play normally without hacking.

    Sorry if this was addressed before.


    NEVERMIND. I found the X/Y/Z addresses with Sazpaimon and we realized they changed locations for some reason. So check this out:

    [​IMG]
    [​IMG]

    I got the third Chao Garden loaded! Extremely small and has no textures (there aren't any references to any so that's the way it has to be). No objects either, except for a ring which is placed outside the map. I had to edit the stage's file like I did before, thankfully it was small and a little less painful than the other one. The map only has one object in it's list, a ring. Like I stated before a few times, the addressing is off because the stage file was compiled for an older version of the game. On top of fixing the addressing for that one object, this stage also came with some code. As I said earlier, other stages would be very difficult to fix in this way because object instructions also have references to locations outside of the file (like 1ST_READ). Luckily, this stage is so simple that it only contained a few pointers to these locations - so fixing this was trivial. I found the addresses the same way I found the addresses for fixing STG00, I just took something we know works in this version of the game (GARDEN00) and disassembled it to find the correct addresses to similar things. The listing of the addressing isn't always in the same order every time, but I could tell which addresses needed to be changed based on their relative location in the old version versus the new one. If they were a certain distance apart, then I could deduct that they were the correct addresses. Once I thought I had the correct addresses, I just simply opened up my hex editor and changed the old addresses that are in the file in little endian to the new ones. A simple fix with the addressing was all that was needed to fix it.

    Here were the addresses I had to change. I didn't list the ring object addressing here though, since you've seen that. But that and this stuff is all I changed to get it working:

    Code (Text):
    1. ROM:0CA80120 dword_CA80120:  .data.l h'C9001C0       ; DATA XREF: ROM:0CA8004Ar
    2. ROM:0CA80120                                         ; Should be ok, address in AL_MAIN
    3. ROM:0CA80124 dword_CA80124:  .data.l h'8C079660      ; DATA XREF: ROM:0CA80048r
    4. ROM:0CA80124                                         ; Should be 8C078F40 - 1ST_READ
    5. ROM:0CA80128 dword_CA80128:  .data.l h'43960000      ; DATA XREF: ROM:0CA8001Eo
    6. ROM:0CA8012C dword_CA8012C:  .data.l h'42480000      ; DATA XREF: ROM:0CA8003Co
    7. ROM:0CA80130 dword_CA80130:  .data.l h'C3160000      ; DATA XREF: ROM:0CA80040o
    8. ROM:0CA80134 dword_CA80134:  .data.l h'8C0DE1C0      ; DATA XREF: ROM:0CA80046r
    9. ROM:0CA80134                                         ; Should be 8C0DE3DC - 1ST_READ
    10. ROM:0CA80138 dword_CA80138:  .data.l h'3B480000      ; DATA XREF: ROM:0CA80044o
    11.  
    By default, I'm guessing AL_MAIN.PRS spawns the Chao and the animals by default. When you load into the map, all the animals and chao pour out from you as you fall into the abyss. This was when I needed to find the new X/Y/Z coordinate addresses (listed below). I no clipped up to the stage and everything was good.

    As far as the level goes, there isn't much to see for a 5kb stage. Obviously since there are no textures, you need to use wireframe to walk around (here's a tip, use 3D Ripper X and the DXv3 plugin to play in wireframe since the option doesn't seem to exist the new version of Demul). There's a hole where the door should be, it doesn't look like a cart could fit in it so it might've been a door somehow. There's a small puddle of water to drown in, and if you go all the way near the other end of the stage near the wall, Sonic seems to freak out on some ledge. Probably where the VMU station was supposed to be. But that's pretty much it.

    Here are some files:

    Modified AL_GARDEN02.PRS file with the modifications I made.
    Database for AL_GARDEN02
    Demul 0.5.7 savestate (make sure your savestate is set to 2 in demul then load it with a key binding)

    Some other info:

    Key: 0CA80000
    LandTable: 0x1310
    New X Coord address: 2C833370 (float)
    New Y Coord address: 2C833374 (float)
    New Z Coord address: 2C833378 (float)
    New Action address: 2C833350 (byte - set to 73 for no clip)

    HUGE thanks to Sazpaimon for testing my changes and for helping me find the right coordinates for X/Y/Z again.

    Here's hoping I get GARDEN01 fixed soon...

    PS: Going back to loading the second test level, Saz and I noticed that the level does indeed load but crashes when trying to load geometry. When we loaded out of the stage though using a new coordinate the game played fine until we no clip'd to see geometry. So I don't think the problem are my edits...

    Here's an image of where it crashes. As soon as you get past this spot either with the camera or with the Sonic the game will crash along with the emulator:

    [​IMG]

    Seems to crash around here.
     
  19. Shoemanbundy

    Shoemanbundy

    Researcher
    1,094
    30
    28
    Chicago, Illinois
    selling shoes
    This will be interesting if you somehow get Windy Valley loaded. Though no scripts and textures will leave it pretty dry, but still.
     
  20. Glaber

    Glaber

    Has Beaten Sonic Genesis for GBA Oldbie
    I'm still interested in the missing hill of Garden00. thought I have no idea how to check that map on NullDC