Language…
16 users online: CalHal, Heitor Porfirio, hoangng, Humpersbmx1, jferrerfaj,  Linkdeadx2, MiracleWater, monkey03297, mtheordinarygamer,  Nanako, Natsuz2,  RussianMan, TheJank, will___, Yutuz, Zavok - Guests: 101 - Bots: 227
Users: 66,509 (2,386 active)
Latest user: carrotkurboi21

Crash on Savestates?

No, it's not a problem I'm running into...
In fact, I'd want to know if I can make a romhack crash when attempting to load a savestate, because :
1 - I think the savestates ruin non-kaizo romhacks, since you can easily Za Warudo the whole hack... I don't want people to do that on my romhacks, because their difficulty is inspired on the game "Geometry Dash", and savestates would ruin that difficulty
2 - I saw romhacks doing that (Ex.: Kaze's "Jumping over it with Nathaniel "Scuttlebug" Bandy") and it makes the game much more punishing
3 - So I can have proof that I "Verified" my romhack legit (no tools)
RIP my friend's Ridley, he dropped it cuz I combo'd him a bit tol much as Mario.


It's not possible.

Tricks to prevent savestates rely on the inaccuracy of emulators in properly preserving the RAM state; all you need to do then is check if the improperly-recorded address is not what it should be. Howerever, if the emulator catches everything properly (which most SNES emulators do at this point), then there's simply no way to detect them.


That said, if you're really dedicated to this, it would be possible if you make use of external tools. Specifically, lua scripts. Lua scripting is supported by Snes9x, Bizhawk, and lsnes, and allow you to reprogram certain aspects of the emulator, which includes writing values into the current game's RAM. You could require having a script running to play your game (by e.g. writing a constantly-updating value to RAM with it, which the game then checks to make sure the script is executing), and then monitor for savestates using the script as well. That's kinda leaning into overengineering, though.

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
If I can't do that, how do I make my romhack hard although they can Za Warudo out of any bad decision/error/whatever?
RIP my friend's Ridley, he dropped it cuz I combo'd him a bit tol much as Mario.
If there's no obvious glitches your hack needs a guy from the outside to show up with a red pill and a blue pill to know if it's in the Matrix.
You couldn't lock off TAS completely anyway.

However, one thing you could try is detecting if buttons are being pressed faster than human reflexes. Doesn't lock off savestates or TAS but makes it more fair maybe by limiting how much performance enhancement you can get out of it. It'd be a lot of work though. There's a ton of edge cases you'd have to work through and decided what you wanted to do (ie: if lag frame be more forgiving). Not to mention it might be a lot of code to call every frame for limited benefit if you're handling all the edge cases.

Edit: Fastest human button pressing is a press every 3.75 frames though (3 rounded down). With an "average guy" top speed of every 5 frames, I think? So at most that would say you can't press the same button loading in from a save state within 3-5 frames, but you *could* hold the same buttons (or wait 5 frames before doing anything). All in all, maybe not worth the effort involved. Unless you found a lot of frame-perfect exploits you wanted to remove from your game on top of the current goal.
People who like hard games will want to play your hack without cheating anyway, and people who don't like hard games won't play it to begin with.

It kind of sucks that you can never be sure if someone played through your hack legit and you can't give out prizes or anything. Ultimately, though, it's up to the player to decide on the experience they want. If they're not having fun, you could say it's kind of their fault.


 
Originally posted by WhiteYoshiEgg
People who like hard games will want to play your hack without cheating anyway, and people who don't like hard games won't play it to begin with.

It kind of sucks that you can never be sure if someone played through your hack legit and you can't give out prizes or anything. Ultimately, though, it's up to the player to decide on the experience they want. If they're not having fun, you could say it's kind of their fault.

Thanks for confirming me that! When I finish my romhack, I'll :
1 - Adjust the difficulty of X levels (By buffing/nerfing) if needed
2 - Add secret routes (leading to secret coins) for the more hardcore players
3 - Not use the cape powerup (probably replacing it with the poison mushroom)
RIP my friend's Ridley, he dropped it cuz I combo'd him a bit tol much as Mario.
There isn't really much point in trying to restrict player from cheating, if someone wants to cheese/skip/cheat/whatever they are gonna do that regardless, trying to prevent that is just more pointless work for you that takes lots of time from doing other things for your hack. Like cape flying for example, instead of trying to prevent player from flying through the level, add something to the skies instead, or if your level isn't tall you can just add ceiling or something.
Originally posted by JP32
There isn't really much point in trying to restrict player from cheating, if someone wants to cheese/skip/cheat/whatever they are gonna do that regardless, trying to prevent that is just more pointless work for you that takes lots of time from doing other things for your hack. Like cape flying for example, instead of trying to prevent player from flying through the level, add something to the skies instead, or if your level isn't tall you can just add ceiling or something.

I won't use the cape, but if I use one powerup from LX5's patch that lets you fly, I'll put "the sniping elite of headshooting noscopers" (invisible blocks that insta-kill the flying player)... Let's see how people will react to getting 3 6 0 N O S C O P ' D!
(Btw I already did a similar troll in my Geometry Dash april fools level "le memez" (A "back on track" remake with a MLG John Cena song and glow + a Nine Circles ship part xd)
RIP my friend's Ridley, he dropped it cuz I combo'd him a bit tol much as Mario.

Uhhhh... unless you're doing it ironically, it might not be a good idea to use the MLG memes in your hacks, since they're very very old.
"Glauben Sie nicht alles, was Sie im Internet lesen." - Karl Marx
Originally posted by FailSandwich
Uhhhh... unless you're doing it ironically, it might not be a good idea to use the MLG memes in your hacks, since they're very very old.

Don't worry, no MLG memes will be in the romhack...
I'll just add invisible instakill blocks for the people that prefer skipping the lvl by flying rather than beating it the legit way
RIP my friend's Ridley, he dropped it cuz I combo'd him a bit tol much as Mario.