Well, that last one didn't last very long.
This submission is intended to be an improvement over https://tasvideos.org/9686S , which beat Difficult? Punch-Out!! in 13:23.62 of in-game time and 18:01.00 of real time. In the 4 days since it has been published, I have managed to find improvements in 2 of the 14 fights, pushing the total in-game time down to 13:22.24 and the total play time under the previously elusive 18 minute barrier. Note that this TAS prioritizes in-game time over real time, meaning that it aims to achieve the fastest real time completion of Difficult? Punch-Out!! while still getting the fastest (known) possible in-game time on each of the 14 fights. It's also worth noting that sub 18 RTA was actually technically possible prior to the discovery of these 2 improvements had real time been prioritized over in-game time. Difficult? Punch-Out!! is a romhack of Punch-Out!! featuring Mr. Dream, despite the fact that the final boss in this romhack is Mike Tyson (who is featured as the final boss in Mike Tyson's Punch-Out!!). The romhack can be found here: https://www.romhacking.net/hacks/4476 .
Here are the times for each of the 14 fights:
Glass Joe - 47.48
Von Kaiser - 34.48
Piston Honda 1 - 39.61
Don Flamenco 1 - 14.00
King Hippo - 53.48
Great Tiger - 36.97
Bald Bull 1 - 56.61
Piston Honda 2 - 43.61
Soda Popinski - 27.97
Bald Bull 2 - 1:11.00
Don Flamenco 2 - 54.97
Mr. Sandman - 2:39.61 (was 2:40.48)
The general game plan for defeating Sandy in this hack comes from abusing the gameplay loop of face punch to force him to throw a hook -> dodge the hook -> face punch to stun him -> delayed right gut punch to do 5 damage -> repeat. There is an extra step you can add to this gameplay loop though, and that's doing a 1 damage left gut punch after the face punch stun and before the delayed right gut punch. This is generally suboptimal, since it's 16 whole frames in exchange for only 1 point of damage, hence why I seldom utilized it in my previous TAS of this hack. However, with how the timing in the first phase of the fight works, these 1 damage left guts turn out to be pretty useful.
Since it's impossible to damage Sandy in the first 50 seconds of the fight (if you throw a facejab he'll block instead of retaliating), the first phase only truly begins at the 50 second mark. Sandy will go into his Dreamland Express (or DLX) pattern at the 1:30 mark, where you can repeatedly punch him after dodging 3 of his uppercuts, and this is the fastest way to damage Sandy. This is why it's often suboptimal to be forcing a hook right before the 1:30 mark, as you delay the start of Sandy's DLX until the gameplay loop fully finishes. After 7 gameplay loops, there just so happens to be around half a gameplay loop’s worth of time before the clock ticks to 1:30, so instead of forcing another hook, it's faster to use a gut punch to force a jab and land a single 4 damage punch, then let Sandy's DLX timer begin, and this is exactly what I did in my previous TAS.
Upon the publication of said previous TAS, however, I realized that it's actually substantially faster to perform 4 of the aforementioned 1 damage left guts and substitute out the forced jab. This timesave ended up leaving me with even more time to spare before the 1:30 mark, so by performing 2 more 1 damage left guts, I'm actually able to cut out a whole DLX stun punch (this refers to the repeated punches that can be thrown after dodging a DLX) and save a whole second in the first phase of the fight. This isn't the end of it though, as the 1:30 DLX happens to only be the first of 2 framerule-esque moments in the fight.
Since countering the DLX is the fastest way to damage Sandy, it's optimal to force him to perform as many as possible. However, the DLX isn't just a move he'd normally perform - specific conditions need to be fulfilled. These conditions are either timed triggers, such as the 1:30 DLX, or knockdown triggers. Specifically, after Little Mac or Sandy take a knockdown in the 2nd or 3rd round of the fight, Sandy is programmed to immediately go into his DLX pattern. The Little Mac knockdown trigger actually extends into Round 1, but only in the last minute of the round, specifically starting from when the clock is at 1:59.10. This is why a faster Phase 1 knockdown time means that the first part of Phase 2 must be adjusted, so that Little Mac doesn't take his knockdown too early. The fastest adjustment I found involves forcing 3 hooks and performing no 1 damage left guts. In my testing, any other reasonable strategy appears to be slower.
One final thing to note regarding this fight is that knocking Sandy down with a face punch is faster in RTA than a gut punch, as the face punch knockdown animation is a fair bit shorter. However, you may notice that the first 2 knockdowns are achieved with gut punches, as they are faster in terms of IGT. Finishing Phase 3 with a gut punch would also be faster IGT, by 1 frame to be specific, but since this fight originally finished on the 2nd to last frame of the .61 decimal, I was able to sacrifice that 1 frame to save real time without impacting the in-game time on this fight. It's also possible to replace Phase 2's knockdown punch with a face punch without losing a significant amount of time (it'd lose 3 frames to be precise), but doing so will inevitably bump this fight's decimal up to a .82 or higher.
Super Macho Man - 42.48 (was 42.99)
I hope you didn't think the Sandy explanation was long cuz I'm bouta go into a real tangent for this one.
Macho initiates both Phase 2 and 3 with a minispin punch, and the most efficient way to deal with this is to intercept it with a guard manipulated max damage star punch, which is essentially a star punch where you hold up with strategic timing to manipulate the opponent’s guard so that the star deals maximum damage. With how the timing works out, it’s most optimal to manipulate Macho to perform the longer of his 2 delays prior to his minispin and land 2 consecutive stars during this delay, the second of which intercepts his minispin punch. In order not to land too early, this second star has to be delayed by 9 frames, which, as you’d expect, creates a framerule effect.
An important component in successfully landing guard manipped max damage stars is Macho’s guard position. After all, the whole reason these stars even work in the first place is because we’re manipulating the opponent’s guard. There are 2 basic types of guard manipped max damage stars, and which one you throw depends on Macho’s guard position prior to initiating the star punch. Essentially, if his guard starts down, you throw a regular guard manipped max damage, but if his guard starts up, you throw a reversed guard manipped max damage. Note that after both of these max damage stars, his guard will end in the down position, hence why these stars can be chained consecutively.
However, Macho’s guard isn’t always either strictly up or down; it can be in transition between the 2 states. If his guard is in transition, there is no way to land a guard manipped max damage, and you’ll have to wait for his guard to finish transitioning before you can land your star. This is where the aforementioned framerule effect comes in, as it just so happens that if Macho starts a phase while his guard is in transition, an 8 frame delay before throwing your guard manipped max damage is enough for his guard to complete transitioning and therefore for the star to successfully deal max damage. In other words, no matter what guard position Macho is in at the end of Phase 1, as long as I complete the phase with 2 or more stars in the bank, I can initiate Phase 2 optimally, which, to reiterate, involves landing 2 guard manipped max damages, the second of which intercepts his minispin punch.
Well, now the goal becomes finding the fastest possible Phase 1 which ends with 2 or more stars. This phase can be divided into 2 sections - before his superspin, and after the superspin. This is because the superspin creates a framerule effect (oh man, there are a couple of those in this game, aren’t there) due to what’s known as clockrounding. Basically, when Macho starts spinning, the clock gets rounded to the beginning of the next second, hence the framerule effect.
Let’s first focus on what’s before the superspin first. Macho will throw 4 punches, all of which can in theory be intercepted with Mac’s punches, and this is faster than dodging them (which takes too much time) or canceling them (which doesn’t deal any damage). However, the 4th punch can’t actually be intercepted as the delay after the 3rd punch is too short, and the best I can do is to cancel it. It’s also worth noting that since the delay before Macho’s 1st punch is so long, I can actually fit a dizzy destroyer (a guard manipulated left gut punch into a buffered up release facejab) prior to it and still intercept punch 1 optimally, which is how I begin the fight. This leaves 2 more punches for me to intercept before punch 4, which I have to cancel.
Stars can only be obtained on the Macho fight starting on the 4th punch you land, meaning the previous 3 punches (the 2 punches that make up the dizzy destroyer, followed by the punch 1 intercept) wouldn’t have granted a star. A logical decision from this point onwards would be to intercept his next 2 punches to obtain 2 stars, cancel punch 4, then land a max damage star (not guard manipulated this time) right after his superspin punch, which is precisely what I did in my previous TAS. However, between each intercept, you must delay a few frames, so that you don’t land your intercept before Macho even initiates his punch, which is optimally an uppercut. If you did land this punch too early, Macho would immediately throw his upper after your punch finishes, meaning you would no longer have time to intercept it.
However, this only applies to uppercuts specifically. Macho can also throw hooks, but they’re rarely ever in the question as hook intercepts only deal 1 damage, while uppercut intercepts deal 5 damage. However, hook intercepts can still be useful, since they’re still able to grant a star. So instead of simply intercepting punch 2 and punch 3 like I did in the previous TAS, I buffer a face punch immediately after the punch 1 intercept, manipulate Macho to throw a hook, then buffer a hook intercept to obtain my 2nd star. After delaying another facejab to intercept punch 3 and obtain a 3rd star, I cancel punch 4 and enter the superspin with an extra star in the bank, albeit 1 second later than in my previous TAS.
With how the phase pans out following the superspin, this extra star ends up saving more than the second sacrificed, allowing for a Phase 1 knockdown time half a second earlier than in my previous TAS while still having 2 stars in the bank. Additionally, this new Phase 1 allows the knockdown to be completed with a facejab instead of a left gut punch, which does require sacrificing 1 frame to set up, but just like the Sandy improvement, this 1 frame didn’t end up affecting the final in-game decimal, and the shorter knockdown animation saves 48 frames of real time, which is what pushed the final RTA time under 18 minutes.
Mike Tyson - 1:59.97
Final Time - 13:22.24
nymx: Claiming for judging.
nymx: I held on to this submission for a few reasons. One...Because of the quick turn-around on this submission, I wanted to give yellowdice a bit of time for any further improvement discoveries. Two...one of my rom sites is down and probably has the version that I needed in order to check this submission for my own details. I wasn't able to, so I'm trusting the "Sync Verification" on this one. There is no reason to reject this one, since there is a history of improvements...and especially since it appears to be getting tighter and tighter. Perhaps it has reach "Frame War" status? :)
Accepting over [6560] NES Difficult? Punch-Out!! by yellowdice in 18:01.00.