Possible to defeat speed check???

greenspun.com : LUSENET : MARP Editors : One Thread

Back during T3, I thought of a way to cheat to avoid speed violations, but didn't address it at MARP since it's a problem with TG MAME. I think I sent Mark a note so he could "fix" it for M36TG4 or whatever comes out next...

What tipped me off were speed recordings 5-15% OVER the correct FPS. Players were hitting F10 to speed throttle through the slow parts of the game. Now if I'm at borderline 90% and use F10 especially at the beginning of the game before feeding a credit and hitting P1 start, this could in fact bring me back into fair territory. Disabling F10 would remove this potential cheat.

On a side note, I think our 90% minimum speed requirement is a little too tolerant. For the next one, I'd like to see it raised to 95% just to be safe. Not sure if you all knew, but someone told me that MAME is being emulated at between 99 to 99.5% of actual CPU speed. In games were timing is crucial this possiblitity of a 10-11% allowable slowdown is really unacceptable.

-- Anonymous, June 26, 2000

Answers

I often use F10 to go through the opening inits, then I cut it off. Ben Jos however will argue that a judge wouldn't want to watch an hour recording at 100 % speed. So turn it off during recording, turn it on during playback.

I too was also thinking about a 95 % speed rule instead of 90 %. I should be able to sneak that rule in for tournament 5 without too much objection.

GB9

-- Anonymous, June 26, 2000


With some work (hehe proly mine) Ben's speed program could detect these speedups pretty easily. Usually autoframe skip will go over and under in a pretty fluctuanting manner, while as if people were to throttle, it would be over 100% in bunches of frames, and then under 100% in bunches of frames while people take advantage of the slow play.

I'll be a adjacent over 100% and adjacent under 100% histogram would do the trick. If you find the histogram is reaching 1000s of adjacent over 100% frames and 1000s of under 100% adjacent frames, this would be a throttle cheat. I'll be normall autoframeskiping won't go more than 100 frames over or under 100% at a time. I don't think it's the tgmame's problem to detect this, it really should report the framerate and the judges need to know what to do with it....

-- Anonymous, June 26, 2000


"I'll be" should be "I'll bet". i coulda sworn i typed those t's.

-- Anonymous, June 26, 2000

An hour's recording? Not too mention "real" marathons. :-)

Yes, while it is possible to use F10 to get back to a minimum of 90% average speed, I for one always look at how many frames were below 90%, and I have actually disqualified several recordings during T3 because of this. The average speed may be over 90%, but if, say, 3600 frames were below 90%, then (for a 60 fps game), this means that a full minute of playing time was done below 90%. Both Mark's Checker and my InpSpeed (now also part of analinp) show how many frames are below 90% and I know that Mark also disqualifies recordings that have a large number of bad frames, regardless of whether the average speed is over 90%.

As for F10, while I tend to think it's acceptable to use before the game has actually started (i.e. before a coin has been inserted), I think that it should not be allowed once the game has begun. I know that games like Ms. Pacman have cut scenes that are over one minute long, but using F10 to quickly go through those and so not lose rhythm or concentration is not something that was possible on the actual machines, and therefore might give someone an advantage. And because of differences in speed for different machines, this advantage is not available to the same extent to everyone.

My InpSpeed therefore also calls frames with a speed over 110% bad, but it of course is up to the judge to decide what to do with it. I could extend InpSpeed a little bit so that it also gives the frame number of the last frame that was too fast. That way, it's easy to see if someone used it during the game or only during startup. The only problem is that on my computer, for instance, every now and then I get brief, and very annoying, speedups of up to 200%. My guess that this is due to the fact that my computer is "too fast" for the timing method used in MAME to always work correctly.

A private version of InpSpeed that I have written gives a lot more information about all the speeds (exact frame numbers and durations, good and bad frames), but I am very hesitant to release this, because all the information it gives makes it a lot easier for people to hack TG3. (Because it matches the speed percentages with the exact frame numbers, it makes it very easy to find out how the speed is encoded, and then it is a small step to editing an .inp and giving it "acceptable" speed values.) I guess I could release it (or build it into analinp) provided that it will never be distributed to non-editors...

Just some of my thoughts...

Cheers, Ben Jos.

-- Anonymous, June 26, 2000


I guess I should read everything before replying...

Chad: The private version of InpSpeed I have written already makes a histogram, and by changing one or two lines in it, I can have it give a full histogram of the entire "speed history" in the .inp. Something like (describing the entire .inp in chronological order):

1200 frames below 95% (average speed: 70%) 4035 frames between 95% and 105% (average speed: 100%) 100 frames over 105% (average speed: 2000%) 8732 frames between 95% and 105% (average speed: 101%) 3248 frames over 105% (average speed 212%) etc.

Everyone: I guess this would be a useful addition to analinp?

Cheers, Ben Jos.

-- Anonymous, June 26, 2000



Ben Jos,

Yea I really like this idea!! So a sped up recording only during the intro before gameplay might look something like this...

3333 frames over 105% (average speed 333%); 12345 frames between 95% and 105% (average speed: 100%); EOF

And yes, of course we wouldn't want to disable F10 during PLAYBACK!!

-- Anonymous, June 27, 2000


OK. Done. Here's an example of a Pnickies recording I made where I used F10 during startup, and then again when the game was over (but before entering my initials). The extra output is available through the -S switch (replacing the old functionality, since this new one is more informative).

Analinp Version 2l 

1 slow frame (average speed: 0%) 796 fast frames (average speed: 437%) 22308 good frames (average speed: 100%) 720 fast frames (average speed: 297%) 562 good frames (average speed: 100%)

-------- analinp Report -------- p = 3 f = 4 Bit# frames:on/off Presses BPresses Bursts highVar LowVar Speed% p = 10 f = 9 Bit# frames:on/off Presses BPresses Bursts highVar LowVar Speed%

pnickj.inp -------- End Of analinp Report --------

-------- InpSpeed Report -------- Good frames : 22870 (average speed: 100%) Slow frames : 1 (average speed: 0%) Fast frames : 1516 (average speed: 371%)

Total frames: 24387 (average speed: 117%) -------- End Of InpSpeed Report --------

Cheers, Ben Jos.

-- Anonymous, June 27, 2000


Moderation questions? read the FAQ