Very short run, shorter than short. The game is beaten by simply starting it.
Game objectives
Emulator used: BizHawk 1.11.4
Win in shortest time on any mode
Comments
On frame 0 I needed to decide between pressing select or not to win. It changes the initial movement of the ball.
Other comments
Sub-frame wars go!
Noxxa: Delaying, pending investigating of accuracy between Atari 2600 emulators.
Noxxa: This run has been proven to be the result of emulation errors, which are being corrected in newer revisions of BizHawk. As such, rejecting this run for being invalid.
Look no further than FFVI. The credits run as part of the demo loop, so technically you get to the credits without a single input. They also play as part of the intro sequence before you actually gain control of anything more than text boxes, but both usually get skipped in runs that actually try to play the game.
I know, of course, that this isn't considered "beating the game", as the true ending of the game is the epilogue sequence after the character segments. Same with games that have a Credits option in their menu. For these reasons, runs just showing the credits before gameplay starts are almost always rejected as "not completing the game". Just look at any of the submissions that fit under this second category. (too lazy to list them myself...)
This TAS was done on easy mode, correct? Apart from the guidelines saying games should be done on the hardest difficulty, it seems it would make sense in this case as a faster ball would result in a shorter overall movie from start to finish.
I'll be voting no unless there are valid reasons not to do this TAS on the hardest difficulty.
Emulator Coder, Site Developer, Site Owner, Expert player
(3571)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
I just want to point out that Stella randomizes all ram values on start up (literally just a 0-255 random value in all open bus addresses as well as any on board ram).
Is it possible that this game is affected by the initial ram state? That would explain the different behavior between the two emulators. Of course, it is also very possible this game relies on emulation error, in which case this is not an acceptable movie.
We can't accept this movie without determining this.
^ oh yeah I forgot to mention that I unchecked the "randomize Ram when loading ROM" option in Stella, so everything started at 0 just like in Bizhawk. But the game plays out the same whether the option is checked or not, and I didn't see any uninitialized RAM use in the trace logs I looked at.
A bit of an update here, I found out why the movies play so differently between the 2 emulators.
It turns out that pressing 3 buttons like that at frame zero causes a glitched start up state to occur in the game. The addresses of interest here are $A2 and $F5, which seem to control level selection and RNG (not entirely clear on $F5.)
During a normal startup , $A2 varies between 0 and 5 as you choose between the 6 game modes. In the glitched start up, it goes to 0x17 on Stella and 0X15 on Bizhawk. This seems to be a timing difference, as Stella apparently goes through 2 extra loops of ... something before a poll for input comes up ($0C=0x80) to get to 0x17.
So basically, in the Bizhawk movie you play against the easy computer, while in Stella you play against the hard one. If you put the Stella values into Bizhawk you will indeed lose in the same manner.
I don't know which is correct. Bizhawk seems to be doing a lot of things differently. For example in Stella if you let one frame of 'fire' happen after a normal load sequence, both paddles fall at the same time, however on Bizhawk the same input make the paddle go up slightly, a pretty obvious difference. (besides the graphical / audio glitches in Bizhawk)
I'm voting Yes. This is obviously different enough from RTA play because of how soon input ends, which would justify it having a TAS. Just because it's short doesn't mean much.
effort on the first draft means less effort on any draft thereafter
- some loser
Is there any method to determine which emulator is correct (or both wrong)? I'm not even sure if having an actual console would help unless there's a way to dump the memory during runtime.
Edit: Also, not sure what to think of the situation where "Hard Mode" is selected, but the game treats as Easy. Is there some precedent for this? What should it even be categorized if it turns out to be legit?
Well, its not the dip switch setting that is effected. What is being selected is the hard AI in Stella (the binary one) but the easy AI in Bizhawk (the kind of dog face looking one.) This is because hard AI happens to be 5 (mod 6) and Stella ends up with $A2=23. Easy AI is 3 (mod 6) and Bizhawk gives $A2=21.
Well I think I (maybe) found the source of the timing difference:
A2600 Specs wrote:
Horizontal Timing and Resolution
Horizontal sync and blanking are done automatically by hardware. The software may re-synchronize itself to begin of H-Blank by writing to WSYNC.
Blanking 22.6 machine clocks (68 color clocks)
Picture 53.3 machine clocks (160 color clocks) (160 pixels)
Total 76.0 machine clocks (228 color clocks)
Bizhawk seems to incrementally lose clock cycles, and I did a step by step trace through both Bizhawk and Stella to see where it happened. I didn't have to go far, it turns out. At cycle 1904, Stella takes a 70 cycle pause as the color clk and pixel pos reset. There is no such pause in Bizhawk. It looks like this happens every time one of these instances pops up, so the difference gets big pretty fast.
EDIT: It's not every scanline, this one happens to be 25, which seems to be a short version that only takes up a few cycles (?)
I'm voting Yes. This is obviously different enough from RTA play because of how soon input ends, which would justify it having a TAS. Just because it's short doesn't mean much.
How could two runs that both have no input in them be distinguishable?
YoungJ1997lol wrote:
Normally i would say Yes, but thennI thought "its not the same hack" so ill stick with meh.
I'm voting Yes. This is obviously different enough from RTA play because of how soon input ends, which would justify it having a TAS. Just because it's short doesn't mean much.
How could two runs that both have no input in them be distinguishable?
RTA is timed by gameplay, so they would need to actually play the game to score 10 points as quickly as they can.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
NitroGenesis wrote:
That's just timing differences, it doesn't really help differentiate it from human play.
What is that supposed to mean? 1-frame movie is human reproducible?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 12/28/2013
Posts: 396
Location: Rio de Janeiro, Brasil
You can get this result in real time, because it doesn't happen only if you start the game in the first frame, but you can't do it with only 1 frame of input, obviously.
^ I actually got the exact same result. 1 frame of input on the first frame, I'm not saying it would be possible on console, I don't know what hardware constraints there might be, but at least on Bizhawk you can do it.
Anyway, after doing still more research, I finally realized what was going on here. In it's initial startup, Flapping goes through this loop:
BNE $F006
DEX
TXS
PHA
X starts at FF and goes to zero.
Unfortunately RAM in atari 2600 only goes down to $80, so this routine quickly runs into TIA registers and it's mirrors.
In my post above, I didn't realize at the time that the TIA was mirrored into $40, but once I saw that it was, it was obvious that what is happening is WSYNC is being written to when X reaches 0x42 and is being called, oops!
So currently my guess is that Bizhawk isn't checking the mirrors of the TIA and missed what should be a WSYNC, (EDIT: or more accurately, not checking PHA's into TIA registers as memory writes nope not that) hence the timing differences. I tried looking at the code but I have no idea what I am looking at.
EDIT2: Well, it looks like BIzhawk is doing all the WSYNC's correctly, just not counting the cycles? Or, isn't stopping the CPU?
What is being selected is the hard AI in Stella (the binary one) but the easy AI in Bizhawk (the kind of dog face looking one.) This is because hard AI happens to be 5 (mod 6) and Stella ends up with $A2=23. Easy AI is 3 (mod 6) and Bizhawk gives $A2=21.
I've played the TAS on emulator, and judging from the speed of the CPU paddle, it looks like BizHawk is using hard AI. Same as the encode earlier in this thread.
To others, please be more specific than "Hard mode". For some reason the author of this game decided to have multiple layers of so-called difficulty:
In particular:
● COM vs. EASY COM vs. 2P
COM means CPU goes fast ("hard AI"); EASY COM means CPU goes slow ("easy AI"), 2P is just 2-player mode. This selection is part of the menu.
● expert - FAST vs. novice - SLOW
expert - FAST means ball goes fast; novice - SLOW means ball goes slow. This is controlled by the left difficulty switch. Left difficulty false means expert - FAST; left difficulty true means novice - SLOW.
● CLASSIC vs POORLORDS
CLASSIC means without walls and first to 10 wins; POORLORDS means with one wall and first to 3 wins. This selection is part of the menu.
This submission uses, or at least is supposed to use, COM, expert - FAST, CLASSIC, though Alyosha says that BizHawk is using EASY COM mode somehow (but I don't understand because it isn't happening in my case, and not for the person who did the encode either).
Emulator Coder, Site Developer, Site Owner, Expert player
(3571)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
<adelikat_> someone needs to get Alyosha and micro500 on irc at the same time
<adelikat_> and sort out AtariHawk
<adelikat_> that's some damned good work Alyosha is doing and is only hindered by not knowing the coding side
<FerretWarlord> Post that in the topic.
http://www.youtube.com/Noxxa
<dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects.
<Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits
<adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.