don't click here

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

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

  1. Overlord


    Now playable in Smash Bros Ultimate Moderator
    Long-term happiness
    Wish granted. =P

    Great work on all of this! The Autodemo is a fascinating snapshot of SA1's development and it's good it's being so heavily looked at.
  2. Lanzer


    The saber calls for its master... Member
    Glendale, AZ
    Living life.
    Holy shit! thats a level of detail I haven't seen in a while.

    'Wiki Sysops' may be in your future here. (Maybe 'Researcher' too but I'm not sure if thats just locked to Oldbies).
  3. Energy


    That's a crazy wiki post. Thanks for all that. Really interesting reading.

    I'm guessing there isn't an early version of Chao Adventure on the disc?
    Also just reading that there is the level data for that Dragon boss is such a tease.
  4. Windii


    Robot Stonks Riser Member

    • Okay, I know you mean well, but I don't think it would hurt to credit JmTsHaW specifically for that TCRF article, as as he is responsible for documenting most of what's on it. Without his contribution I don't know how much longer that page would have stayed barren and lifeless so it's only fair to give proper credit.
  5. Antheraea


    Bug Hunter Member
    Thank you very much for the membership and kind words! I should really get around to adding images at some point...

    • My apologies! I wasn't sure which of the several people in the revision history was from here. I don't recall it being mentioned in this topic either - there was an offhand reference to the Hotel sign from the TCRF article, which tipped me off to its existence, but not who had written it. I could have also spaced on it, as it took me a year to slowly go through everything and it has been months since I last looked at this topic.

      Thank you very much JmTsHaW! :D I'll go edit my post too, if necessary.
  6. Woofmute


    stuck in ram Member
    turning into a dreamcast
    Bit of a bump, but its for some new discoveries. Any memory addresses here will be 0x2C instead of 0x8C for Cheat Engine and Demul.

    Chaos 2 was thought to be non-functional in the Autodemo but it turns out it can be activated and fought properly.
    There are two methods, one is weird in that chaos 2 will only walk after you and turn into the bouncing ball when hit each time, until you defeat it.

    Load into the Chaos 2 stage, and press X on controller 1. You can then press A or B to activate the simple version of Chaos 2's fight. Doing so will lock the camera until you deactivate Chaos.
    Pressing X again will cancel the bouncing ball attack, and can be used deactivate Chaos.

    The alternative method is to set the byte at 0x8C6A4EAA to 01.
    Activating the fight this way will show the little cutscene that shows the boss' name and activates the health bar, and Chaos 2 will be able to use all of its attacks.
    The punching attack in this version does not have the delay afterwards like the final, so there are less openings to attack.

    Credit to MainJP and SpeepsHighway for discovering how to activate Chaos 2. A video will need to be made about the second method for activation.

    The controller method for activating Chaos 2.

    A look at all of Chaos 2's available actions in this build.

    The other discovery I'd like to mention is about the demo recorder. It is still mostly functional in this build, and potentially in other builds.
    These demo files are the KEYXXYY.BIN files in the game's data.

    XX is the level ID,
    YY is the level segment ID.

    KEY0501 is Red Mountain, Red Hot Skull.
    KEY0A00 is Final Egg, part 1.

    These use hex values for their level IDs, while SET files use decimal.
    They are loaded into 0x8CBE0000 in memory.

    Demos are recorded and played back only if the value at 0x8C169D18 is 01.
    The current demo read/write location is stored as 4 bytes at 0x8C169D28.
    Setting 0x8C169D1C to 02 stops demo recording and playback, and prints the current read/write location of the demo to the screen.

    Demos can be recorded and dumped by setting this byte to 02 when you're done, and dumping the memory from 0x8CBE0000 to wherever the printed location is.

    The KEY files are the same format as the memory dump, and should be easily replaceable.
    Custom demos will most likely need a footer like the KEY files in the game's data have, which I believe is the last 12 bytes of the KEY file.

    Sonic in Speed Highway Footer:
    FFFFFFFF 00000000 090080FF
    E-102 in Red Mountain Footer:
    FFFFFFFF 00000000 7E001100

    Will be looking for this in other versions soon.
  7. Jase


    ~~(_ _C^> Member
    Good to see discoveries are still being made in this autodemo!
  8. Vangar


    The demo recorder being functional is a pretty cool find, great work
  9. Shaddy the guy

    Shaddy the guy

    Professional Internet asshole Member
    I might've missed something in the past 45 pages, but the links to download this demo have died. Can it get a reupload? Some others are looking for it, and I don't know of another place to download the ISO.
  10. JaxTH


    Pudding Deity Oldbie
    Los Angeles
    Jack shit.
    And this, ladies and gents, is why all protos should also be mirrored on the wikis.
  11. evilhamwizard


  12. evilhamwizard


    mfw almost 6 years

    Just a quick heads up. There's a new (better?) way to play the AutoDemo now that doesn't involve using Demul + Cheat Engine. For almost a year now, the guys over at libretro have given their reicast core some love and made it into something that you can probably use.

    Unlike Demul, the reicast libretro core has built in support for cheats. That and the fact that you can use shaders, widescreen hacks, internal resolution increases, and monitors that support variable refresh rates makes this the best way to make the Autodemo itself playable. It looks great too, if this stuff is more your thing:

    I made a code that you can trigger to activate 60fps too. I made a small cheat file for myself but feel free to port some codes over so we can get something going:

    Code (Text):
    1. cheat0_address = "7721128"
    2. cheat0_address = "7721128"
    3. cheat0_address_bit_position = "0"
    4. cheat0_big_endian = "false"
    5. cheat0_cheat_type = "1"
    6. cheat0_desc = "ram_framerate"
    7. cheat0_enable = "true"
    8. cheat0_handler = "1"
    9. cheat0_memory_search_size = "5"
    10. cheat0_repeat_add_to_address = "1"
    11. cheat0_repeat_add_to_value = "0"
    12. cheat0_repeat_count = "1"
    13. cheat0_rumble_port = "0"
    14. cheat0_rumble_primary_duration = "0"
    15. cheat0_rumble_primary_strength = "0"
    16. cheat0_rumble_secondary_duration = "0"
    17. cheat0_rumble_secondary_strength = "0"
    18. cheat0_rumble_type = "0"
    19. cheat0_rumble_value = "0"
    20. cheat0_value = "1"
    21. cheat1_address = "7721136"
    22. cheat1_address_bit_position = "0"
    23. cheat1_big_endian = "false"
    24. cheat1_cheat_type = "1"
    25. cheat1_code = ""
    26. cheat1_desc = "ram_framelimit"
    27. cheat1_enable = "true"
    28. cheat1_handler = "1"
    29. cheat1_memory_search_size = "5"
    30. cheat1_repeat_add_to_address = "1"
    31. cheat1_repeat_add_to_value = "0"
    32. cheat1_repeat_count = "1"
    33. cheat1_rumble_port = "0"
    34. cheat1_rumble_primary_duration = "0"
    35. cheat1_rumble_primary_strength = "0"
    36. cheat1_rumble_secondary_duration = "0"
    37. cheat1_rumble_secondary_strength = "0"
    38. cheat1_rumble_type = "0"
    39. cheat1_rumble_value = "0"
    40. cheat1_value = "1"
    41. cheat2_address = "7949456"
    42. cheat2_address_bit_position = "0"
    43. cheat2_big_endian = "false"
    44. cheat2_cheat_type = "1"
    45. cheat2_code = ""
    46. cheat2_desc = "levelselect"
    47. cheat2_enable = "false"
    48. cheat2_handler = "1"
    49. cheat2_memory_search_size = "3"
    50. cheat2_repeat_add_to_address = "1"
    51. cheat2_repeat_add_to_value = "0"
    52. cheat2_repeat_count = "1"
    53. cheat2_rumble_port = "0"
    54. cheat2_rumble_primary_duration = "0"
    55. cheat2_rumble_primary_strength = "0"
    56. cheat2_rumble_secondary_duration = "0"
    57. cheat2_rumble_secondary_strength = "0"
    58. cheat2_rumble_type = "0"
    59. cheat2_rumble_value = "0"
    60. cheat2_value = "0"
    61. cheats = "3"
    Just put this in a .cht file and load it up while playing. Activate the levelselect cheat while on the title screen (leaving it on before hand should work too I think) and you'll get a nice level select menu to jump into any playable level you want with any character. Create a savestate at this screen and you can instantly play any level in the game without having to wait 500 years for the intro video to finish. The 60fps code makes cutscenes run at double the frame rate, but other than that its safe to leave both the framelimiter and framerate cheats on at all times.

    In other news, I monkeyed around with porting Sky Deck and ran into a problem that basically confirms what I suspected was wrong with my Windy Valley port - the collisions don't work for most if not all objects. Here's what I have so far:


    All those platforms are actually objects. Trying to land on any of them causes anyone to just fall down. I'm guessing the collision flag for the particular model is wrong? Or maybe there's a parameter being passed to some collision routine that's using a bad value? I have no idea...

    There's some oddities with the set file as well. The parameters for many of the objects seem incorrect, the biggest giveaway of this is the fact that most item monitors are just extra lives:

    While my time is limited, I'm still interested in getting these stages to load properly at some point. Of course, I'd rather see someone port more stages to SADX instead. :P
  13. evilhamwizard


    a quickie

    from shadow2005 from the tcrf discord:


  14. Mookey


    Ah neat, looks pretty primitive aside from the cool transparency (unless that weird texture is some sort of environment mapping, which would be kinda cool). I wonder if it was a prototype for the ghost prisoners seen in the final.

    Nice to see stuff still being dug out of this prototype by the way! I always look forward to seeing this topic get bumped in case something else gets found.

    Edit: Actually, I feel like I've seen that texture around before, unused of course but I can't remember if it survived into the final or if it was found in the Autodemo's files awhile ago.
  15. Antheraea


    Bug Hunter Member
    I definitely remember seeing that texture (in perfectly square, unmapped form), however I can't seem to find it anywhere on here or on TCRF?
  16. PkR


    SADX Dreamcast Conversion, The Emeralds' Awakening
    It's "d128obake1a" and "d128obake2a" in the Autodemo OBJ_MOUNTAIN.
    [​IMG] [​IMG]
  17. Chibisteven


    Glad they cut that from the final. It looks like total crap.
  18. Diablohead


    Indie dev Oldbie
    Near London
    I'd say it would look fine at a distance with fixed cameras but without any kind of animation to the cloth it'll look really stiff.
  19. BlackHole


    You're going to need MORE than help. Member


    Possibly a 3D version of these guys?
  20. Blue Blood

    Blue Blood

    I doubt it. They don't really look alike at all; both are relatively generic sheet ghosts, but don't share many similarities. Particularly the fact that the SA1 ghosts have mouths.