Posts for DrD2k9

Post subject: Re: Rule review for DOS games (at least via JPC-rr)?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Warp wrote:
Radiant wrote:
In the late 1980s, PCs running at 4.7 MHz and at 20 MHz were both available on the market, and are both part of the target platform despite one being over four times faster!
I think you would agree that it feels cheating to use a faster computer than what the original developers of the game intended. Surely the developers didn't intend for the game to run 4 times faster depending on which kind of PC you have.
I don't agree at all that simply using a faster system feels like cheating. Using faster technology is no more cheating than using any other type technological advancement is cheating. That includes all other types of TASing tools including frame advance, piano roll, and even savestates. These all could be considered as a form of cheating from a developer's perspective.
(The problem with the very early DOS games is that developers didn't realize that PCs would become faster in the near future, and assumed that all PCs are the same speed, just like the "8-bit home computers" and consoles of the time.)
Can you substantiate this claim? Just in the '70s, microprocessor speeds climbed from as low as 375kHz all the way up to 8mHz. Developers in the '80s at least had enough historical information to anticipate that further speed increases could continue.
In my opinion, if a clear-cut fair system cannot be established due to practical reasons (after all, who gets to decide what speed the original developers "intended" the game to run at?), then these early DOS games that run faster on faster PCs should be excluded from anything where completion time matters (including awards and, perhaps, Vault? Because Vault is all about completion time, and when the completion time can be semi-"cheated" by emulating a faster PC, it kind of makes it pointless. Who gets to decide what the "correct" speed is?)
Developer intent is a sticky qualification. If we're going to disqualify games from vault/awards/etc. simply because they are run on a faster system (something the developers didn't 'intended'), then we should disqualify any run that use glitches from vault/awards/etc. as well, because those runs also use situations that the developer didn't intend.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
total wrote:
I took some time and managed to convert the AGDQ2017 SMB3 ACE payload we used that does the DPCM glitching in 1-1 to lead into full total control. It's not the final version that was shown but it's mostly the same. Wasn't too easy to convert though since I had to first convert the inputs from the binary format used for the hardware replay and then go in and manually resync inputs for every lag frame and frame boundary that didn't match up, but finally it worked :) Here's the bk2: http://tasvideos.org/userfiles/info/52514549789799992 Pretty cool to see it working at least!
Encode (not as exciting without having actual music at the end, but here for those who want to watch). Link to video
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Ferret Warlord wrote:
Archanfel wrote:
P.S. Little pigs transform to rugby balls!? This is something new.
American footballs are sometimes called "pigskins."
Which is still ironic considering they never have been commonly made from pig skin (pig bladder maybe, but not commonly the skin). They are now primarily rubber bladders inside cow leather.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Nicos wrote:
just watched the block and i think that the "lack of knowledge and interactivity" hurted the block pretty hard
Something else to consider for a GDQ audience: It's not a TAS audience, it's a speedrun audience. The majority of the attendees don't pay for passes to go to a GDQ to see what newfangled, fancy, or technically impressive stuff we TAS people come up with by using games as a launchpad. They go for the speedruns (and to support the cause). I'm not suggesting that the technical stuff we've done isn't interesting or noteworthy accomplishments. Yet, while our TAS community may find some of this technical stuff very interesting/creative/entertaining, the speedrun community may not share those perspectives because they look at gaming from a slightly different standpoint. In some cases they simply may not have the requisite background (or interest) to follow/enjoy all of what we are presenting. It doesn't mean that what we're doing isn't worthwhile. I'm suggesting that the GDQ audience isn't the appropriate audience for presenting this aspect of the TAS community. In other words, we may simply not be catering to the correct audience. While gaining complete control and doing arbitrary things can be very interesting; I'd dare to bet that many in attendance at these events would be perfectly thrilled by a TAS exhibition that simply beats games much faster than a human could ever hope to, instead of having ACE or extra non-game related stuff in the TAS Block that isn't actually playing a game. Again, being able to accomplish these non-game effects is awesome, but it's not the core of what GDQ is about. GDQ = Games done quick. If it's not game-related, does it really fit in with the concept? My personal perspective regarding ACE runs at a GDQ event is the following: -If the ACE is used to get to the endgame/credits faster, it's worthy of showing off at a GDQ. -If the ACE is only used as an entry to do something completely non-game related, it doesn't fit in with the concept of games being beaten quickly and thus doesn't really fit with the concept of GDQ in the first place. This doesn't mean that this type of ACE isn't interesting, just that it's not related to games being done quickly. Being technically impressive doesn't always equate to being entertaining. Perhaps we just need to simplify: stop worrying about showing the audience fancy new technical achievements and show them the speed-gaming they're there for anyway...just better than what they expect. If we do want to demonstrate something that's not strictly about beating a game quickly, we should strive to still offer a sense of speed-gaming in the presentation. For example Brain Age (while not a very fast completion) maintained that feel of speed-gaming while still demonstrating something unattainable by human standards. To reiterate...I suspect that the majority of GDQ attendees are there primarily for the speed gaming...not to see all the other non-game related stuff that just so happens to be doable using technology that is designed primarily for gaming (whether or not a game is used as the primary access point to achieve that other stuff).
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Alyosha wrote:
If anyone is willing to re-test SMB3 I would appreciate it.
I can confirm that Masterjun's inputs still work (at least using copy/paste in TAStudio). Or did you need something different?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
I agree. It would take much more work to implement the suggestion of capping all runs based on some calculable value. And it may not be worthwhile anyway. Personally, I'm leaning more and more toward the idea that the other option is best: outright elimination of the speed cap, and simply allowing any DOS run to be performed at the maximum settings with which the game can be effectively completed. I find Radiant's statement, that real people could simply use a faster system (than it was designed for) to play a game at a higher rate, to be a very valid point. TASing is about actually accomplishing what would be super-human. So reiterating what Radiant said; if real people could do it, why should we prevent a TAS from doing it? In essence, forcing a cap is like preventing a TAS from doing something a human actually could; making it not super-human, but sub-human. Much of what we already do in TASing is beyond what developers planned or expected. Why should we isolate DOS TASing to be bound to developer intent regarding system specs? Would having insanely fast runs detract from their entertainment value?...possibly. But it's not uncommon to have speed/entertainment trade-offs on our site. Normally, these trade-offs sacrifice speed to add entertainment, but the trade should be allowed to go the other way also....sacrificing entertainment to add to speed. In a way we do this all the time anyway (by commonly skipping cutscenes, text dialogue, etc.). Eliminating the cap would eliminate the extra work necessary to substantiate the used CPU settings. It would further push TASing into the level of super-human. It would also negate the need to calculate and compare CPU speed settings between JPC-rr CPU frequency and and DOSBox cycles. Given the differences in emulation, timing comparisons would still likely need to be adjusted somehow; perhaps start timing when the command to start the game is input instead of from system startup (but that's an off-topic discussion for the future). So now, my proposal is to eliminate speed caps for DOS runs. If we want TASes to be super-human...let's allow TASes to be super-human. TL:DR Setting a cap on CPU speeds prevents a TASer from doing something a human could; thus preventing a TAS from being super-human.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Looking back over both this and the other thread linked; and considering the question I've asked above, I'm no longer sure where I stand on CPU divider settings. These are further thoughts/questions in my mind now. How can we effectively set a cap on how fast any particular DOS game can be run? If we're allowing 20 mHz settings for games designed for slower systems than that, why can't we run a game that was released only when 33 mHz systems were available at even higher speed settings like 100-300 mHz? (as the rule is currently written, we'd have to provide proof to even raise the setting to the 33 mHz range). Considering how much of the DOS game library was released after systems beyond 20 mHz were available, the 20 mHz cap seems somewhat arbitrarily chosen simply because it's the default in the emulator. Further, can we even argue that games run at speeds higher than what they were designed for are being run 'artificially' fast? If we do want to cap the speeds of DOS runs, is the default 20 mHz cap SLOW enough that any game designed for even slower systems could be arguably run at that speed? If we do want to cap the speeds of DOS runs, shouldn't the cap value be calculable for any given game and not based on any one arbitrary value? ...spends time thinking... After further pondering (even without answers to all these questions), I believe I'm to the point where I feel future DOS TASing should go one of two ways: 1) Have no CPU speed restrictions on any game so long as it can effectively be run in JPC-rr (or DOSBox via libTAS when available). 2) For all games, cap CPU speeds in JPC-rr/DOSBox based on a value able to be substantiated and specifically calculable for each individual game (i.e. year of release)...not on an arbitrary value or default setting. We require a level of researching games for the optimization of TASes, looking up this type of information wouldn't be any more difficult. SIDE NOTE: When the time comes to restrict DOSBox cycles for matching system speeds (if necessary), the formula to convert between CPU clock speed and cycles is approximately as follows. DB Cycles = 7.45(CPU clock speed in mHz)^2 It's not a perfect formula, but it yields a close approximation Therefore a 100 mhz cpu is approximately 74500 cycles 10,000 cycles would be roughly a 36mHz CPU This formula was created by plotting some of the information found here and then finding the curve formula.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
MESHUGGAH wrote:
Still can't see subframes.... 2. Can't see any "SUBNESHawk" checkbox under Core https://imgur.com/GFAKKgh
Use the Config>Cores>SUBNESHawk Not the NES>Core>xxxx
Post subject: Re: Rule review for DOS games (at least via JPC-rr)?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Radiant wrote:
I disagree. The situation in the nomination thread appears because some people mistakenly believe the KQ1 movie is overclocked. In the late 1980s, PCs running at 4.7 MHz and at 20 MHz were both available on the market, and are both part of the target platform despite one being over four times faster!
That particular situation doesn't change the fact that the rule needs reviewed and possibly revised. And if it does need changed, it's a good thing that situation occurred to prompt the questioning of the rule. Just to reiterate, the concern this topic attempts to address is the rule, not any one particular run. Even if this doesn't apply to KQ1 (or any other sierra games mentioned in that particular thread), the rules as currently written still offer the potential for artificially faster runs due to the default CPU settings emulating systems significantly faster than what some games were designed for. With as much as we desire accuracy with the emulators of other systems (i.e. preferring NESHawk core over QuickNES because it's more accurate...or considering console verification as a type of gold standard), we should also show the same concern for the accuracy of DOS TASing. To me, that means playing games at CPU speeds they were intended to be played regardless of whether it's faster or slower than the default setting in JPC-rr.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Masterjun wrote:
I had to adjust it a bit due to timing differences from FCEUX, but here it is: Super Mario Bros. 3 cleared in 126 polls by abusing the DPCM glitch workaround overflow. It might not be actually 126 polls on console, as I assume there are blank, emulator-only polls, existing as a video frame so BizHawk can draw them.
well...i guess that's at least one step closer to publication. I was hoping to help slightly more than just suggesting that I could help. EDIT: Here's an encode of Masterjun's file. Link to video
Post subject: Rule review for DOS games (at least via JPC-rr)?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Fairly recently (within the past couple years) our rules on CPU speed settings for DOS runs via JPC-rr were updated to their current state:
Movie Rules wrote:
CPU frequency restrictions CPU frequency settings may be restricted or not, depending on the game. -If a game's speed is limited to real-world time or screen refresh, CPU frequency may be maximized by setting CPU frequency divider to 1 (emulating a 1GHz CPU). -If a game's speed is limited only by CPU frequency or clock speed, CPU frequency may be set no faster than JPC-rr's default of 50 (emulating a 20MHz CPU). In other words, the CPU frequency divider settings may not be set any lower than 50. This limit may be stretched if proof can be provided that the game was designed to run on faster systems than the 20MHz default. In other words, if increasing the CPU clock speed affects and speeds up all normal gameplay, it must be capped at most to the emulator's default setting, or to a frequency the game is proven to be designed for. If increasing the CPU clock speed only affects lag or loading times and does not otherwise speed up gameplay to any significant extent, it may be set to the emulator's maximum.
In light of the recent Speedy TAS nominations/discussion I think we may need to reconsider these rules, yet again. While I understand both sides of the argument for the Speedy TAS award, this topic is not meant to have any specific connection to that contest; the awards situation was only the prompt of me questioning the current rules/guidelines. As it stands, our rules allow for runs of DOS games designed for faster systems to use CPU settings above the default CPU frequency if proof is provided. This allows for more authentic speeds of these newer games. However, we do not require runs of games designed for systems significantly slower than the default 20mhz setting to reduce that CPU frequency setting to an appropriate value based on system speeds around the time when the game was released. I think we need to consider making this a requirement for DOS runs created in JPC-rr (and require proof of slower than default settings as we do with games having faster than default settings). As much as it'd be a bit disappointing to have to slow things down compared to some of the lightning fast runs already published, it'd be more authentic representation of these games. As the Speedy TAS award discussion pointed out, some of these DOS runs are artificially faster than they should be. We don't allow overclocking of any other system just to make the runs appear faster than they otherwise should; we probably shouldn't allow it on DOS either simply because the default settings of the emulator happen to be faster than the systems the game was designed for. If this rule is implemented, I believe that a lengthier DOS run which uses a more authentic CPU setting should be capable of obsoleting a currently published shorter run that used artificially inflated speeds (just because they were the default setting). Suggested wording of the rule if it is decided it needs updating. (unless someone comes up with a better way to phrase it). CPU frequency settings may be restricted or not, depending on the game. -If a game's speed is limited to real-world time or screen refresh, CPU frequency may be increased anywhere up to the maximum (setting the CPU frequency divider to 1 thus emulating a 1GHz CPU). -If a game's speed is limited only by CPU frequency or clock speed, CPU divider should be set to a value yielding CPU speeds authentic to systems around at the time when the game was released. In other words, the CPU frequency divider settings may be lowered for games designed for faster systems than the default 20mHz, and it must be increased for older games designed for systems slower than 20mHz. Supporting information for the chosen speed settings is required in submission notes. In other words, if increasing the CPU clock speed affects and speeds up all normal gameplay, it must be set to emulate an authentic CPU frequency of which the game is proven to be designed. If increasing the CPU clock speed only affects lag or loading times and does not otherwise speed up gameplay to any significant extent, it may be increased up to the emulator's maximum. Side Note: Implementing this requirement would mitigate future situations similar to what happened with this years Speedy TAS nominations. Side Note #2: A potential parallel could be argued for games run in DOSBox via libTAS (when that method of TASing DOS games get's the official green light). DOSbox allows for adjusting CPU cycles speed. Care should be taken to replicate authenticity in CPU speed there also.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
nymx wrote:
Edit: I was also surprised to see a conveyor belt level for the C-64. I remember seeing something like that, but wasn't sure what system it came from. I wonder if I saw it on the version that Adam released.
IIRC all three Donkey Kong ports on C64 have all four sub-stage.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
feos wrote:
This game has an ending guys.
Are you referring to the bit with Mario and Pauline up top at the end of the Rivet stage? If that qualifies as an ending, then simply playing through level 1 would be the absolute fastest way to complete the run. (And I'll gladly do it if that's all it will take!) I didn't expect that brief scene to be considered enough of an ending to not consider this an endless game. If only level 1 were played, there'd be potential future unseen content (conveyor and elevator stages) that would arise if the game was continued further. I always took that scene as a 'fooled you' by the developers, and didn't consider it a 'clear ending'. If for no other reason, because the happy music in that scene becomes suddenly foreboding over the last 3-4 notes suggesting that things aren't over yet. But hey, you're the senior judge, so I'll defer to you on when this game actually ends.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Awesome! I love that you figured this out in less than a month after telling me "Subframe input on the piano roll isn’t happening." here. Even if it is only for 1 or 2 cores. This is essentially what I was suggesting/hoping for. WAY TO GO! FWIW, I'm willing to help work on getting the SMB3 run re-done to see if it will work.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Spikestuff wrote:
I'm personally not a fan of TASes that jump to a set level and not complete the loop that's in the game which you happily pointed out. Much like this Submission which got rejected last year for well the reason I just wrote: #5950: Quibus's Coleco Galaxian in 00:22.97
Thanks for your opinion, but please specify exactly what pathway you feel would be required for completion. Which of the following would you require? -Starting and completing just Level 5 -Starting from Level 1 and completing level 5 -Starting from Level 1 and completing all 100 levels to return to level 1 -Something else? The problem I have with any of those specific options is that none of them offer any additional unique visual content or harder difficulty compared to the current submission (unless you count the order of sub-stages as visual content). Adding a sub-stage doesn't make a game harder from a TAS perspective. Truly it doesn't make the game harder for a human player....it just offers more opportunities for a human to screw up before reaching a higher level. Thus the difficulty hasn't increased, it's just prolonged. It's true that the sequence of sub-stages varies between the current submission and level 5+ but there's no gameplay differences or difficulty variation within those sub-stages. These are my opinions. Thank you for yours. I fully expected the community's perspectives to be a bit split on this submission, which is why I noted that I have a completed run which begins at level 5 ready to go. I do not have a level 1-5 run prepared, but would be willing to make it if necessary (as boring as it would be to watch the various stages repeated 20 times). EDIT: I'm not interested in doing a level 1-100 run.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Mothrayas wrote:
This looks like it will be a very interesting matchup between the classic DOS side (represented by slamo) and the new Linux side (represented by keylie). Curious to see where it'll go.
This brings up a good question. For future years (assuming there are enough TASes of the various PC operating systems), would it be appropriate to have separate awards for each separate OS (linux, DOS, windows, etc.) instead of a single PC award?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
In (minor) defense of my own King's Quest run: It's true that CPU speed settings affect how quickly the character is able to move. However with the increase of speed, there is a degree of control sacrificed. Movement changes are only possible approximately every 3 frames (using any CPU speed settings I tried). How far the character travels within each frame is what changes with CPU settings. In other words, King Graham moves farther in 1 frame at 20mhz than he does at 10mhz CPU speed. With the opportunity to change direction still mostly limited to every 3 frames, faster CPU speeds actually introduce a greater degree of TASing difficulty due to lost movement precision. So for this particular run, a degree of precision is lost to attain the speed it achieves. It's theoretically possible that faster (or possible even slower) CPU settings would yield a faster total run. A faster CPU speed may allow for even faster character movement, but further precision would be lost. This would however break the rule of using default JPC-rr settings unless documentation could be provided to show the game was designed for faster than default settings. A slower CPU speed may actually allow a faster total run as some movement precision would be gained by the slower CPU speed settings. If this gained precision allowed for fewer awkward movements through the run, the overall run may be shorter. Testing this could be quite tedious as it would likely require complete redos of the run to determine which is truly faster. (I'm somewhat open to this possibility, but have many other things on my plate at the moment).
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Those are interesting (and rather strange) results of your testing. It makes me wonder what else may be affected in the run. Unfortunately, this likely isn't something than can be generalized across all DOS games simply due to the insane variety of programs for DOS.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
YushiroGowa wrote:
That adventure game is still bugging me though.
The Adventures of Down Under Dan
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
It's interesting to see how the various ports have different beneficial glitches.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Cool shortcut!
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
I figured it would require quite a bit of work, but I figured I'd ask anyway.
Post subject: Re: Loading fdconfig.sys saves 55 frames
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
FractalFusion wrote:
Sand wrote:
FractalFusion, just for you I made a 30 fps encode. That one should be roughly comparable in framerate with the slow encode of [2247] DOS Mega Man by DarkKobold in 02:23.55. Only the slowest encode has captions.
Thanks! By the way, do you know why running fdconfig.sys saves 55 frames? Is it something that can be applied to other DOS games?
I don't know the exact reason, but fdconfig.sys contains a number of lines that mostly deal with memory usage. It's likely that processing fdconfig.sys allows the PC to use memory more efficiently thus minimizing the loading times later on in the run. Another possibility is the FILES=40 line. This allows DOS to utilize 40 files at once. I don't know how many it would be able to use without this line. (I have read that 30 is actually a more efficient number than 40 for this line). For reference, here are the contents of the fdconfig.sys file in the freeDOS floppy image. shell=cmd80x86.com command.com /k autoexec.bat dos=high device=himem.exe lastdrive=z buffers=20 files=40
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Personman wrote:
You refer in your latest post to "goofing off", but that's not what I was suggesting — I was talking about optimizing speed by typing longer commands (at no cost) that result in less text output. I'm pretty confused now, though, about how to reconcile c-square's claim that this is impossible ("there is no frame rule on the start of scrolling (i.e. hitting enter on key input #1 starts scrolling faster than hitting it on key input #2)) with your claim that "having more inputs within the frame shouldn't lose any time before the impact of the 1st input is seen."
WARNING: this is going to be a long post. c-square, yourself, and I are all correct...we're just discussing subtly different aspects of input. I'll try to explain with some hypothetical examples (not ones from this particular game). If you want to move the character in a circle by going north, east, south, and then west; there are multiple ways to type the commands to do so. Option 1: n<enter><enter>e<enter><enter>s<enter><enter>w<enter> The way to read this input stream is as follows: press 'n' press <enter> release <enter> press 'e' press <enter> release <enter> press 's' press <enter> release <enter> press 'w' press <enter> In other words, 11 key press/release events. This is the absolute fastest way to begin the screen scroll upon moving north. This option assumes that not releasing the pressed down keys won't add additional letters to the text command and screw up the input. If it would, then the keys pressed down must also be released and result in more frames required to type both commands; this is because it takes the same amount of time to release a key as it does to press it down. If it would work without releasing the letters pressed down, those keys would still need released at some point before they could be typed again. And as already mentioned, the key releases takes time. Option 2: n..e..s..w<enter> With this input stream, periods replace the first 3 enter presses. While it's equal at 11 inputs, the first <enter> press occurs 9 inputs later which may delay the start of screen scroll a fraction of a second. (This is what c-square was referring to by a later enter press having a delaying impact even though it's the same frame.) Now let's say you wanted to move north and then pick up a ham. Option 1: n<enter><enter> wait for output scroll until next prompted for a command then type get ham<enter> This gets the screen scroll for moving north as fast as possible but delays inputting the next command. Option 2: n<enter><enter>get ham<enter> This gets the screen scrolling just as quickly as Option 1, but essentially pre-types the next command to pick up the ham before the screen scroll has completed. This allows for the output of picking up the ham to occur earlier than Option 1 and is thus more optimal. (This is what I meant by the extra key presses within the frame after the first enter press won't delay the start of the screen scrolling). So finally let's discuss what I think you were wondering about: You want to go north into an armory and pick up a shotgun from a selection of multiple weapons. Option 1: n<enter><enter>get alll<enter> This is the shortest possible input stream to get the earliest scroll and acquire the shotgun. It's 12 inputs long and thus would require at least two frames to do, but would likely all be processed before the screen stopped scrolling. Unfortunately, it's also likely the character would pick up other unnecessary items which may later need dropped. This would require typing additional commands to drop those items resulting in a longer overall run. It may also try to pick up unobtainable items resulting in extra output text that is useless but takes even more time. Therefore it's likely suboptimal. Option 2: n<enter><enter>get shottggunn<enter> Though this input stream is longer, it is still less than 23 inputs and still only takes 2 frames to type. As with the above, it's likely that the processing of this input stream will occur before the screen is done scrolling. This results in a longer command that yields a better outcome and shorter overall run, because nothing extra was obtained that would later require extra commands to drop. Again, I think this was how you were asking about optimization. Sorry for all the confusion with goof-off input discussion (it is still good information, even if not necessarily on-topic). I hope all that makes sense and helps consolidate all the previous explanations.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2088)
Joined: 8/21/2016
Posts: 1026
Location: US
Curiosity and potential feature request: What would be required to implement sub-frame inputs in BizHawk? My (possibly unrealistic) thought process on this would be to have an option for the piano roll of TAStudio to have lines labeled by input opportunities instead of frames, and thus have a new line whenever a change of input would be recognized by the game. Using the NES as a specific example: Have TAStudio piano roll update with a new line every time the latch pin on the controller port is pulsed. This would essentially provide opportunity to change input every time the NES 'looks' for different input, not just changing input once per frame. I'm guessing this would take modification of TAStudios programming if not the system cores themselves. If this sub-frame input were available in an accepted emulator, we could potentially see more runs like the 3-second SMB3 run that was demonstrated at GDQ. EDIT: Not sure why this posted twice...I'll delete the repeated post. EDIT 2: Another option for piano roll would be to combine my idea with the current Piano roll. Have the roll still broken down by frame, but have additional indented lines (perhaps a different color like yellow?) for each latch pulse within a frame.