don't click here

Press Start Button

Discussion in 'Engineering & Reverse Engineering' started by Quickman, May 22, 2004.

Thread Status:
Not open for further replies.
  1. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    I was curious about the PRESS START BUTTON message on the Sonic 1 title screen. Sonic CulT lists how to do it ($14271 = 02 -> 00). So I put together a highly incomplete IDA disassembly to work out what this mysterious byte was. I discovered the following opcode.

    Code (Text):
    1. addq.b #$2,($18,a0)
    This was part of the first routine of an object beginning at $14254. SO I checked Nemesis' guides to find out what this object is.

    What's the connection between the old special stage entry sprite and the PRESS START BUTTON text?

    (Note to self: Retrieve copies of the two object dissections by Dr Ivo to rediscover the purpose of ($18,a0).)
     
  2. Rika Chou

    Rika Chou

    Tech Member
    5,276
    169
    43
    That object has a weird effect when placed in game, it teleports him away for a second, then he appears back.
     
  3. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    I checked my documentation and that byte is the display plane for the object in question, which has to be the most bizarre connection ever - the display plane of a teleportation object also determines the appearance of text on the title screen.
     
  4. SupperTails66

    SupperTails66

    Tech Member
    1,109
    7
    18
    Well, that could make sense, seeing as the text flashes.... then again, I don't entirely understand this, but whatever.
     
  5. Perhaps it's something that's been partly overwritten by something else...or...something...
     
  6. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    The display plane for the HUD is also 0 as it's a screen object not a level object... I wonder if the same object is used in two different positions with different mappings and different art.
     
  7. drx

    drx

    mfw Researcher
    2,254
    350
    63
    :rolleyes:
    In title screen code, there's an opcode that loads some object over the Press Title Screen object, forgot where it is now, I'll search later.
     
  8. Hivebrain

    Hivebrain

    Administrator
    3,049
    162
    43
    53.4N, 1.5W
    Github
    The "SONIC TEAM PRESENTS" object disables the PSB object. In fact, it seems PSB is enabled by default.
     
  9. Orengefox

    Orengefox

    Snooping as usual... Researcher
    462
    21
    18
    Right in front of my computer.
    Some artwork, a ZZT game, and a hack.
    If the "Press Start Button" is enabled by defualt, is it possible that it was also originally used when the game would show the usual demos after the Title Screen. Basically you would have the demo showing as usual and the "Press Start Button" would show on the demo screen.

    If not, perhaps the "Press Start Button" object is just like any other object that's not suppose to be in that particular zone and just shows up all messed up. You know how you would for example, you go to some Zone like LZ and you would place an object like "Ballhog" or any other object that doesn't fit with the tiles that belong to that Zone and so it appears as nothing but garbage but still is doing its function. Basically the "Press Start Button" is an object that belongs in the Title Screen but not in any of the levels.

    Then again, it wouldn't make sense (from what I explained in the 2nd paragraph) considering some of the tiles for the "Press Start Button" can still be found at LZ and most likely in the other Zones (I've only manage to see it in that zone so far when I was hacking it) and those tiles are even shown correctly on the "Press Start Button" object if placed and shown in LZ mind you unless the reason those tiles are there is becuase the Zone doing the same thing how Hidden Palace Zone did in Sonic 2 (final) where the Zone was using tiles from another Zone like Oil Ocean since the orginal tiles for it were gone and so you get garbage in that Zone, Only LZ is using some tiles from the Title Screen to fill in whatever was in those tiles in the first place (doubt it).
     
  10. drx

    drx

    mfw Researcher
    2,254
    350
    63
    :rolleyes:
    Yeah, Hivebrain is right. Btw. the other way to enable PSB object is to nop 6 bytes at 0x2fd0 (US version)
     
  11. ICEknight

    ICEknight

    Researcher Researcher
    I'm guessing that's just a leftover from getting in Labyrinth through the title Screen/Stage select menu. The level might just not load anything into that VRAM adress, so if you get in there through normal play you'll probably find Marble graphics in its place, since the game just doesn't clean the graphics it's not gonna use.

    I doubt the PRESS START BUTTON words were ever supposed to appear anywhere else than the Title Screen.
     
  12. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    Wouldn't it be Spring Yard Zone graphics?
     
  13. LocalH

    LocalH

    roxoring your soxors Tech Member
    PSB also shows up when you've done the Japanese credits code, given the proper region setting and use of the proper code. I've never got it to appear on hardware, half due to my PAR having a dodgy connection, and half due to me tending to forget to disable checksums half the time.

    If this is triggered by a RAM address, does anyone know it? It'd be much handier to just patch that single word of RAM, especially if it's paired with another byte of interest.
     
  14. drx

    drx

    mfw Researcher
    2,254
    350
    63
    :rolleyes:
    The code is FFFFE3:0001. By the way, number of C pressed in level select code divided by 2 + FFFFE0 gives you the ram address (I know that's tricky =P)
     
  15. LocalH

    LocalH

    roxoring your soxors Tech Member
    Hm, I never knew that...so, basically, every time you press C twice, you're incrementing a counter that the game uses as an offset to choose the correct cheat to enable? Quite ingenious. Also oughta make it fairly simple if one wanted to add additional cheats, just shuffle some RAM around if you need to.

    So it's FFE3...that's cool to know.
     
Thread Status:
Not open for further replies.