Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Disable emulator savestates in a hack?
  
User name:
Password:
Reply:
 

UserPost
Imzogelmo
Posts: 36/41
I'm working on a hack and I've come up with some ideas that you might consider. First of all, let me say, I'm not against save states--but I am against someone using an editor to hack the save state and thereby cheat their way through my hack. Now I'm not so foolish to believe that I can defeat that; because I can't. But what I can do is make it annoying enough that no one will want to try.

One thing you can do is move/swap some RAM variables around. That way, if a person has a list of variables from the original game, hacking the same offsets will not get the desired results. Also, if the game has an in-game save, you play with the checksum to make sure it isn't compatible (either in location, calculation, etc.).

As for out-of-game save states, you shouldn't be able to detect those if the emu works right, but you shouldn't be threatened by them either.
d4s
Posts: 171/325
Originally posted by BMF54123
The only way you're going to prevent cheating is to hack the game so it can ONLY be played on real SNES hardware (look for timing glitches or register values that are only present in emulators?). Of course, you'd be excluding nearly everyone that would want to play the hack, and such hardware checks can always be reversed, unless you heaily intertwine them with the original game code in various undetectable ways...


haha, believe it or not, i already tried to do that.
not the emulator lockout, but to detect an emulator at all.
i just didnt pursue it further because i couldnt think of any way i could benefit from it.(well, apart from a message like: "play it on the real thing, sucker!"

since zsnes and snes9x allow writes to vram outside vblank,
its just a matter of making sure that were outside vblank, then writing and reading back a byte to and from vram.
writing certain registers to the ppu outside vblank can crash the snes, though, so one has to be careful with that.
i havent done any in-depth tests yet, so i cant tell for sure wich ones.

anyway, im somewhat proud that my hack runs on the real snes at all.
not many hacks do nowadays.
btw, your mario world odyssey patch doesnt either, bmf.
unfortunately it crashes right away on the titlescreen.
after applying my fastrom patch to your hack, it runs fine, though.(well, until you collect a coin, wich crashes the snes.

my guess is that your vblank routine is too long(its ok in fastrom mode, though) and that collecting a coin triggers a ppuwrite without caring for vblank.

whats possible aswell is that my fastrom patch overwrites one of your jsls and thats why it crashes.
actually, thats even more likely.

d'oh.
i'll try again by applying my fastrom patch to a fresh smw rom, THEN applying your patch after that when i have time.
or you can try for yourself if you like.
do you have a copier?
btw, you have even longer vblank periods if you are running in pal 50hz mode instead of ntsc.
just a general advice for anyone who cares. :>

Surlent
Posts: 827/1077
Same here, I use them if my boss calls me and I need to do something (yes, I'm working at home, backing all my important stuff very often), but on the other hand things the Ancient Cave in Lufia II lose their full challenge when save-stated.

If I had a camera (or maybe taking one with my crappy cell phone cam ), I'd take a screenshot from my Lufia II cartridge, showing 97 hours in total, thus 80 hours spent for the Ancient and fully completed, except two Iris treasures
This on an emulator with save-stating ... no; I really "enjoyed" the Gold Dragons later, sacrificing an entire sunday, after I was not careful enough and got wiped out by "Stardust" three times
Jigglysaint
Posts: 162/215
I think the best idea could be either the emulators have a function to disable save states so a player can play without them(but sometimes you reach for the F5 instinctivly), or a program be coded that when loaded, would intercept and disable savestates for the most used emulators. Perhaps it could be a patch or somthing. Either way, the game itself shouldn't be cheat proof. After all, rom hacking itself is basically cheating. Like you were supposed to be able to code in your own hacks in the game anyway....
HyperLamer
Posts: 4190/8210
Even then they could be undone, just people'd probably just throw it out.

I'd like to say this is a really crappy idea. Save states are supposed to provide a convenient way to save the game at any time, so that if you have to go and can't get to a save point, you just hit the button. Keeping an internal count of how many times the player used one and showing it somewhere does sound cool, though.
BMF98567
Posts: 771/1261
The only way you're going to prevent cheating is to hack the game so it can ONLY be played on real SNES hardware (look for timing glitches or register values that are only present in emulators?). Of course, you'd be excluding nearly everyone that would want to play the hack, and such hardware checks can always be reversed, unless you heaily intertwine them with the original game code in various undetectable ways...
d4s
Posts: 170/325
Originally posted by DahrkDaiz
I just want to know exactly how it's possible for the game to detect whether a savestate has been loaded or not. The game has no knowledge of the emulator's existance since it's emulating the system, so loading a savestate is like waking up from a coma, nothing ever happened between the time it went down and woke back up, according to the game.


i described it in detail in one of my above posts.
in a nutshell, the trick is that no snes emulator (apart from the most recent zsnes version, or so it seems) will restore sram upon savestate loading.


Originally posted by dan
I use savestates all the time, so obviously I voted no. I remember seeing a translators website where the translator was going to make people use an emulator he wrote to play his translation, all because he didn't want his translation to end up in the Good list. That was quite over the top.


really, whos that?
gid doesnt like goodsnes, but he didnt write an emulator, so youre probably talking about byuu.


and dudes, you got me wrong for sure if you think i want to force everybody to play the way i want them to so take it easy, will ya.
its an idea amongst many others i consider including in the project.
some will make it to the final patch, some wont.
thanks for the feedback, anyway.
DahrkDaiz
Posts: 604/885
I just want to know exactly how it's possible for the game to detect whether a savestate has been loaded or not. The game has no knowledge of the emulator's existance since it's emulating the system, so loading a savestate is like waking up from a coma, nothing ever happened between the time it went down and woke back up, according to the game.
dan
Posts: 519/782
I use savestates all the time, so obviously I voted no. I remember seeing a translators website where the translator was going to make people use an emulator he wrote to play his translation, all because he didn't want his translation to end up in the Good list. That was quite over the top.
MathOnNapkins
Posts: 1741/2189
Savestates, while they can be used for cheating, I usually use for convenience. So... no way. Games are meant to be as challenging as the user makes them. Some people cheat for enjoyment, and then intend to play for challenge later.
Xkeeper
Posts: -2008/-863
The bootloader hurts my eyes. Argghg.

Also, last I checked (1.40) I tried loading a savestate that was a lot farther behind than my last save, so I restarted the game and the original SRAM was still there...

Maybe it just depends on the game (or was added in a more recent version), I don't know... still kind of wierd.
||bass
Posts: 311/817
Originally posted by d4s
do recent zsnes versions merge zst and srm files?
i admit that i havent downloaded a new version for ages. :>

this player-renaming sounds quite funny, but it may be a bit too hard if i think about it.

theres a hidden record-room in the game.
maybe i'll include that there.

btw, i updated the project status page, check it out here:
http://bof2.blogspot.com/
They havent been merged, but if you load a savestate, the srm gets overriden with the one in the savestate, making the anti-savestate routine useless.
d4s
Posts: 168/325
do recent zsnes versions merge zst and srm files?
i admit that i havent downloaded a new version for ages. :>

this player-renaming sounds quite funny, but it may be a bit too hard if i think about it.

theres a hidden record-room in the game.
maybe i'll include that there.

btw, i updated the project status page, check it out here:
http://bof2.blogspot.com/
Xkeeper 2.0
Posts: 346/1091
Originally posted by Skiffles
meh; Did it occour to any of you that some people don't use savestates to cheat; but use them as a quick save so when they quit they don't have to go through all the intro's and title screens and options and shit when they first load up a game? I know it would certainly make me not want to play.


Exactly my point... When I play SMB3 on an emulator, if I want to do something else I do a quick savestate so I don't have to play the whole game again. =\
FloBo
Posts: 41/101
Just skip this idea, d4s.

If someone wants to cheat his way throug a game, it's just up to him. I personally can't see the advantage of cheating cause what are you playing for then?!

Anyway, renaming him as a cheater would be quite funny... but that's just my tiny opinion...^^
Setzer
Posts: 175/532
meh; Did it occour to any of you that some people don't use savestates to cheat; but use them as a quick save so when they quit they don't have to go through all the intro's and title screens and options and shit when they first load up a game? I know it would certainly make me not want to play.
iamhiro1112
Posts: 373/487
Ya, why not go for the rename character routinue. And you ought to give people headsup what happens if you do use a savestate cause they might be a little peeved if they are hours into the game and then use their first savestate.
Geiger
Posts: 359/460
if you think about it for a moment, you'll notice that savestates restore all the internal ram, but they dont restore the sram on the cart.

ZSNES does. In fact, I lost a whole day's worth of gameplay thanks to that.

---T.Geiger
TheCube
Posts: 31/82
Completely ignoring the technical reasons why this is not a good idea, I think it's not a good idea.

I do, however, like the idea of renaming the player to "Cheater" or something. Reminds me of Link's Awakening where you get your name changed to "Thief" if you steal stuff.
||bass
Posts: 309/817
I wouldn't particularly care for two reasons.

1: I think recent zsnes wip's DO restore the sram.
2: If they didn't it would take about 10 minutes to code.

Don't bother using your routine, its pointless. The moment you did, you'd find 3 modified emulators and 10 sets to patch codes released all from different people.
This is a long thread. Click here to view it.
Acmlm's Board - I2 Archive - Rom Hacking - Disable emulator savestates in a hack?


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.003 seconds.