don't click here

Demo Converter

Discussion in 'Engineering & Reverse Engineering' started by Mercury, Sep 13, 2010.

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

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    You may have heard of this programme I made to convert GMV files into demo data that can be used in a Sonic disasm, but wondered where the hell to find it.

    Well, now that it's been tested and actually used for a hack, I thought it was time for a public release.

    Go here for more info.

    The download includes the source, so if you know GML and need to make modifications, go wild!
     
  2. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    To be honest, at first I was jealous when you got the Tech Member status. However, now I get why you are where you are: This is mind-fucking-blowing awesome and you deserve every single pixel of your green banner. =D
     
  3. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,192
    406
    63
    Japan
    This will no doubt save a lot of time for many people out there who wish to create demo plays, nice going!
     
  4. Mercury

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    Thanks, man. =)
     
  5. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    Maybe I shouldn't ask, but I'm interested: What excactly does this program (technically seen)?
     
  6. Emulator movies are just logs of what controller buttons are pressed each frame, as are the demos in Sonic games. I haven't looked at Mercury's converter yet, but technically it should be just a matter of converting from the emulator format to the game format. IIRC, Sonic games use a compressed format composed of buttons+duration pairs, so that the same combination of buttons can be reused for up to 256 frames if it doesn't change in that time (it's a kind of RLE compression).

    Mercury, I have a question of my own: How does the game handle lag frames? I mean, the emulator will record buttons for all frames, but does the game read a new button combination even on lag frames? If it doesn't, there could be synchronization issues, right?
     
  7. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    I've already given you my two cents about this program Mercury, but it has helped give my project that extra professional touch and I'm sure it will come in useful for many others. I can see a few people having a lot of fun with this in projects.
     
  8. Oh my, many thanks for this! :) Does this do 2P's controls as well? (I recon S1/S2's data is nearly the same, so is it possible to have two people playing in split screen mode)
     
  9. theocas

    theocas

    Tech Member
    346
    0
    16
    Wow... this is awesome! Forgive my ignorance, but where are the levels the demos are recorded for stored? I really want to show off different levels. Also, I get this strange error upon starting it:
    http://cl.ly/4e1d55b82afdc5e36674
    And once it finished starting, I get this screen instead of the programme:
    http://cl.ly/2498d52ebdb8322bcf6a
    It's a good idea to fix that :)
     
  10. Mercury

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    Spot on. You remember correctly.

    To my knowledge, Gens Rerecording doesn't record during dropped frames.

    There are a few times that I'm familiar with in the Sonic games when frames are dropped that don't accept input. (Most annoying is the Sonic CD title screen, because it makes entering the codes a pain.) At these times, the Gens Rerecording frame counter turns red and I don't think it records input. I could be wrong - but everything I tested synched up fine.

    No, it doesn't. I basically forgot about player 2. If you give me a couple of days I can add the feature, though.

    My programme was made in Game Maker (which I suppose I should have mentioned earlier.) That looks like a compatibility issue with GM and your system; can you play any other GM games on your system? If so, then the error's on my end and I'll look into it.
     
  11. theocas

    theocas

    Tech Member
    346
    0
    16
    A few ones, but there are only one or two that work. May I ask why Game Maker was chosen to code this app in?
     
  12. Mercury

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    I use it for everything, so it was convenient. Come to think of it, that's rather pathetic, because a GM game is over a megabyte, which is just overkill for something like this. Plus, the compatibility issues, blah blah blah. I guess I'm just lazy.
     
  13. Impish

    Impish

    Member
    Bwahaha I love that! You use game maker for hacking tools, thats great Mercury! Game maker is so versatile and easy to use, if inly it was faster and worked on linux.
     
  14. neonsynth

    neonsynth

    Previously 'SonicVaan' Member
    394
    9
    18
    Germany, Stammbach
    gaming and music production
    Just a question, but how do I record when the level starts, when Gens Rerecording takes me back to the start of the game?
     
  15. nineko

    nineko

    I am the Holy Cat Tech Member
    6,298
    475
    63
    italy
    Record from now and make a savestate
    [​IMG]
    (Then ignore the savestate)

    Though I have to ask, during the private tech release it was mentioned that the recording must start at a precise moment or it won't sync. Given that I didn't try this yet, how is that handled? Should people manually keep an eye on a certain memory location in Gens Rerecording and wait until it reaches a certain value? (not leaking the ram address nor the value, sorry, this is up to Mercury and/or Marc)
     
  16. Mercury

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    Yes, they should. I described this on the download page:
     
  17. Do all demos run for the same amount of time on the Genesis games? I figured that since pausing demos doesn't make sense, the 'start' button could be used to indicate the end of the demo, so that they can all have different lengths. You know, since the real 'start' (pressed by the player) can end demos, ORing it with the 'start' from the demo is pretty simple. Of course I never checked if this was true, but that's how I did it in the NES game I'm making.
     
  18. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,338
    412
    63
    Lincs, UK
    TurBoa, S1RL
    Having START in the demos tend to mess them up. You're really better off without it.


    All demos run for a fixed length; however this length varies between games.

    Sonic 1 - slow fade after 30 seconds, game continues while fading.
    Sonic 2 - slow fade after 27 seconds, game continues while fading.
    Sonic 3K - quick fade after 30 seconds, game stops when fading starts.
     
  19. Mercury

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    Just a quick message: It's been updated to export Player 2's data, now, too. (I did some tests, nothing extensive, but it seemed to work fine.)

    Thanks for suggesting that feature, Irixion. =)
     
Thread Status:
Not open for further replies.