don't click here

Puggsy's SRAM-based copy-protection thang

Discussion in 'General Sega Discussion' started by MarzSyndrome, Jun 23, 2012.

  1. MooMoo

    MooMoo

    Leader Bean Member
    I have a mac, this is all I can use .___.
     
  2. dsrb

    dsrb

    Member
    3,149
    0
    16
    Nope! Should I have mentioned that I did all that on foobar2000 via Wineskin? :P Check it out. It's pretty easy to set up, and fb2k has worked as normal for all the (admittedly trivial) things I've thrown at it. Plus, Boot Camp... :v:

    So I presume you were referring to AO's own exporter, rather than foobar2000's Converter? I don't know how the former behaves or if it can be changed, as I don't think I've ever used it properly.
     
  3. MooMoo

    MooMoo

    Leader Bean Member
    From that 3 second google I just did, I assume wineskin is a windows opener thing for the mac? While I do have an XP disc, it'd be a bit of a faff doing all that just for some MP3s or similar.

    Yeah AO pretty much has a "convert to wav" option, in which you have to select the time in seconds, which is a bit of a pain since you essentially have to count the time from minutes into seconds manually for each tune. Easy enough to do, but a real annoyance. If the games I wanted had soundtests I could probably just do it direct from Kega and have done with it. :/
     
  4. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    wine is a program which lets you run Windows programs on a Unix system. It isn't emulation, and it fakes a Windows environment rather than requiring a real Windows setup. I haven't been "in the know" on pre-packaged wine distributions, since I usually build it from source. You will need an Intel Mac to run it, though.
     
  5. LocalH

    LocalH

    roxoring your soxors Tech Member
    Still useful for those of us with old cart copiers, that's why the old hacks exist in the first place :P
     
  6. MooMoo

    MooMoo

    Leader Bean Member
    I see, well that sounds quite handy actually. But how user friendly is it? If it's mostly script run and not idiot-friendly I'd probably find it difficult to use. :/
     
  7. dsrb

    dsrb

    Member
    3,149
    0
    16
    Wineskin does all the work for you, bundling your Windows program and a pre-compiled vrsion of Wine into an self-contained .app that'll be totally standalone. And, as I said, it's pretty simple to use; you need no scripting or whatever, just a few clicks. Seriously, try it; it may well be exactly what you need!
     
  8. MooMoo

    MooMoo

    Leader Bean Member
    Ok, had a tinker with it, and cant seem to get it working, but thats no doubt my incompetence; I just need to read the manual more. But on the surface it certainly looks useful. :)

    ON TOPIC

    From watching videos, I've learnt a few more techniques to use in Puggsy, like bouncing an item to use to get higher. Game just keeps giving out surprises.
     
  9. Vangar

    Vangar

    Member
    3,654
    62
    28
    Well if you like that, here are some other moves you might know about:

    - Holding down when you jump will hurt an enemy
    - Holding a direction upwards and releasing will throw an object that can also hurt enemies
    - Throwing an item upwards and bouncing on it as you said
    - Using an object to 'crawl' up walls by jumping into it and moving the object down and up
    - There's a secret level called 'a secret place' or something. You can spell out words to activate cheats there
    - I cant remember the level exactly but its in one of the town levels, there's a secret exit that takes you to a place where you can get shoes and glasses whenever you need them
    - A+B+C while paused will take you back to level select ( I think you need to have the level completed first?)
    - My favorite, in the final boss if you walk to the far right of the screen the lasers wont hit you there.
    - If you enter the silly maths question and beat all 51 levels there's a secret ending... but I've never seen it :(
     
  10. MooMoo

    MooMoo

    Leader Bean Member
    Yeah, I must have known about the first one from years ago, yet couldnt get it to work. Felt like such a dumbass when I saw someone killing enemies by jumping on them. :psyduck: Most of the others I know though. :)
     
  11. darkfalzx

    darkfalzx

    Member
    4
    0
    0
    Hey guys - I got the Puggsy copy-protection disabled with a little (well - a lot) of help from the author of Mega Everdrive.
    Here is the super-simple solution:
    1) Download a hex editor.
    2) Load up the Puggsy rom image.
    3) Scroll all the way to the end on the rom.
    4) At the very end insert an additional 3 megs of blank data.
    5) Save the rom.

    BAM! - no more copy-protection! I have verified this works on emulators as well as actual hardware.

    Here is why this works according to KRIKzz:
    Smaller genesis roms use a simpler SRAM chip that requires no initialization. Larger games - 2 meg and over, use a more advanced SRAM, which has to be initialized before use. Puggsy - a small game, is automatically fitted with the simple SRAM by the emulators and copier hardware, activating copy protection lockout. But once the rom size is blown up past 3 meg, the type of SRAM that gets automatically tacked on becomes the different, more advanced one, so the writes Puggsy performs to it all fail, NOT tripping the copy protection.

    Yap.

    It's as simple as that: )

    Cheers guys!
     
  12. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Actually all you're doing is replacing the SRAM with ROM, which won't be written and thus the checks will fail. I'm not entirely sure how writes to ROM are handled by most emulators, but I'm sure some of them won't simulate Sega's SRAM mapper for things that are not Phantasy Star IV and Beyond Oasis. (HardBall 95, a 3MB game, does not have to bank out ROM for SRAM.) Still, that's a somewhat clever workaround =P
     
  13. darkfalzx

    darkfalzx

    Member
    4
    0
    0
    I couldn't be happier! Puggsy is one of my favorite games on Genesis, and I was looking for a hassle-free way of playing it emulated/via MegaEverdrive for ages, and this is the first working solution I found. It's not as elegant as a programming patch, but it sure works great: )

    Massive thanks to KRIKzz over at MegaEverdive forum.
     
  14. MooMoo

    MooMoo

    Leader Bean Member
    Wouldnt the simpler way be to disable SRAM on the emulator? :v: I'm no rom genius so maybe I'm talking shit, but I could have sworn I did that in the past.
     
  15. darkfalzx

    darkfalzx

    Member
    4
    0
    0
    Of course it's always an option, but it has to be done on a case by case basis for this one particular rom. Also keep in mind that not all emulators, especially portable ones, support the disabling of SRAM, and neither do any of the MD/Genesis flash carts and copiers. With this workaround Puggsy just works like all other roms do.
     
  16. LocalH

    LocalH

    roxoring your soxors Tech Member
    This is not a proper fix, although it is still cool. Doesn't work with copiers that have less than 32Mbit of RAM :P Admittedly, that's a minor niche compared to the non-SRAM-disabling emulators that can accept large ROMs.
     
  17. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    US ROM:
    $538 - change byte to $60
    $542 - change byte to $60 (probably redundant given the above but just for good measure)
    $4B5CA - change byte to $60
    $4B5D4 - change byte to $60 (ditto)
    I don't think there are any more...

    EU ROM:
    $538 - change byte to $60
    $542 - change byte to $60 (ditto)
    $4B546 - change byte to $60
    $4B550 - change byte to $60 (ditto)

    also level modifier: word at $FF0452 (for both versions)
     
  18. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    Found two more locations in the US ROM:
    $29978
    $29982
    (turns out I wasn't processing VInts correctly)

    At this point if there's more code that a deeper analysis discovers, it'd probably be best to just modify the meulator.
     
  19. Interesting. Might be worth it to create copy protection disable Game Genie codes for use in emulators that supports GG as well so you don't have to turn off SRAM or pad the ROM itself.
     
  20. MarzSyndrome

    MarzSyndrome

    Everything is going to the beat. Member
    I just wanted to say finally, thank you to Andlabs for giving the lowdown on the hex locations. I can confirm that with these modifications I am able to progress past the first boss on emulators that don't automatically fix the issue, such as on the Dingoo emulators.

    Of course, padding the ROM works as well, though really you just need to pad it up to a byte or two above the 3MB mark for the newer SRAM to take effect and nullify all the in-game checks.


    And I'm up for GG codes as well, I mean why not? It shouldn't be too much of a problem actually to convert the hex modifications to a suitable Action Replay format first, then find a decent AR-to-GG converter.