I did some TASing work (using Lsnes) on this game and have some improvements over the published TAS up to stage 3 (since I haven't done any TASing beyond that yet). I know that the published TAS for this game is in the Vault since the NES TAS seems similar enough (and better, I guess), but that doesn't need to matter.
General notes on the Test-TAS so far (and comparison to Whitegastra's TAS):
At the beginning, one has to wait for a high note of the title screen music until one finally can affect the game and choose and confirm the chosen characters as soon as possible. Note that testing other character combinations still is remaining to be tested, but I just went with this combination because the resources that I checked lead me to believe it'd be good to start out this way. I also chose the mode in which both players cannot hit each other, of which I'm not entirely sure that it is faster, but at least it'd get rid of annoying instances in which they get into their way and hit each other instead of targeting enemies (or even just when they do jumpkicks to get past obstacles while moving synchronized), and additional collision checks might also cause more lag at few places. The first 2 enemies are taken care of similarly as in Whitegastra's TAS, but the next pair of fighters climbing along the floor are killed with simple fist attacks that let them just straight fall and not move up and down which keeps them longer on screen and hence stalls the screen longer before it continues moving at its seemingly fixed/constant speed throughout stage 1. Opening a capsule generally produces 1 lag frame when it bursts, and I assume the reason for this is the many small projectiles/capsule pieces with their own trajectories. I wasn't aware of this right at the beginning yet, so the very 1st capsule should be left untouched, but there is a strange behavior of (any but especially) the 1st brown robot for which the sound of a bursting capsule (or jumpkicking an enemy while the robot is on screen) at any point earlier on will influence the robot's behavior (because the robot normally has an attack preparation phase during which it flies upwards out of the player's fist attack range, and if the sound of a jumpkick hitting an enemy occurs meanwhile (or a capsule was opened before in the stage), the robot's AI is interrupted and it keeps its speed for a bit and drifts further, but then can afterwards immediately start chasing the player, which allows to cancel the usual preparation phase immediately as soon as the robot appears, with a well-timed jumpkick sound or capsule-opening sound, since not actually hitting a robot stalls it but the hit sound already causes this). So probably at least 1 capsule might be opened to achieve the fastest result. In the Test-TAS one can see the 1st brown robot still moving upwards for about 3 frames, but I think I had instances in which it moved straight down from the beginning. The next 2 brown robots have their particle effects (when they burst on the ground) occur at the same frame to merge the lag frames that each of those bursts would cause to 1 remaining lag frame. The 2nd fighter afterwards that Jimmy is kicking is kicked at the same frame as Billy hits the other enemy for whom he can wait and doesn't have positioning constraints to meet, so for Jimmy, the hit should have occured as soon as possible aswell already, provided those 2 enemies spawn at the same time (and thus can be hit at the same frame). Then I keep Billy climbing along the floor because getting up would stall the screen movement, and I don't need him yet to get rid of further enemies, and I let him up as soon as the screen would anyways stop. The next brown robot causes another lag frame when it bursts. And at the next pair of brown robots, I could have done the final attack on both at the same time but this would have resulted in 2 lag frames instead of 1 for which I delayed the kill of Jimmy's robot, since both need to be dead anyways in order to allow the screen movement to continue (and the height of the floor actually matters for the frame in which they burst/reach the ground). As opposed to the NES version of the game, after a bunch of tests, it seemed to be impossible to deal an initial early hit on Abobo before the player characters are stunned temporarily. Generally, it seems when enemies appear, there is frames during which it seems that no collision check is executed for hitting them with an attack (maybe only for 1 of the 2 players, or for every 2nd frame which is to be checked), which in few cases caused me to lose 1 frame compared to Whitegastra's TAS.
In the 2nd stage I use the 1st wooden enemy as target for both player character's finishing moves to get rid of the last 2 enemies at once, which often seems to be a successful strategy. Most of the time, a running jumpkick shifts the screen to its final position where it stops (in stage 2 and 3) within the same time as running does already, and is only rarely 1 or a few frames faster with proper timing. The strategy for both dynamite throwers is to first let them throw all dynamites that I'll need in total to kill them, followed by throwing the dynamites at them (which turned out to be a bit more tricky in the 2nd case, where 1 dynamite was already about to explode and had to be thrown in order to pick it up later again). It seemed to be impossible to pick up a dynamite that was about to enter the door in order to essentially duplicate dynamites such that one would hold 1 and another dynamite enters the door (which is possible in the NES version). The range in which dynamites can still be picked up (even if it is far away from a character) is extraordinairy, by the way. The time it takes for a dynamite between throwing it and it entering the door depends on its trajectory in the room, but there seem to be fixed minimal delays between dynamites to make the hits count, and I think the minimum was reached in each case. At the part before the rat, in the orange floating bikes, I could avoid a lag frame that would (usually) occur when a heart symbol for an additional life (of which I need a bunch for death warps in stage 3) appears. Keeping orientation closer to the 2-player speedrun by PJ and Mecha Richter than the older TAS payed off at this part aswell, since it allowed for the largest improvement over the TAS with 1000 saved frames, I think, simply by not killing any biker and just stalling 1 of them and letting him disappear, which skips an otherwise additional ''bonus'' phase in which capsules appear. And it seemed to be irrelevant at what time the biker finally disappears from the screen (but maybe killing him well-timed might save or even waste time), which he does on his own at some point. At the rat, a jumpkick together with a fist attack allowed to initiate a knee attack early on (and further kicks were just used to keep the rat down on ground so the knee would hit, aswell as manipulating the rat's position close to the edge of the screen), and turned out to be faster than spamming jumpkicks.
Already at the beginning of stage 3, after the first couple enemies, (aswell as at few spots later in the same stage) I could make good use of the longjump storage mechanic (explained further below for 1 of the movies, but basically allows to accelerate during a jump up to about running speed which is even kept after the character lands), aswell as sliding onto higher platforms via jumpkicks. And a longjump for Billy is also used after the first turret in order to jump over a platform and land on the ground next to Jimmy as soon as possible to initiate the rope swinging animation as soon as possible. The following few whirlwind attacks fortunately didn't cause lag to my knowledge at the birds (even though this kind of attack is somewhat heavy on the game), but cause 1 lag frame later on each time (where I tried to let the whirlwind attack animation almost run out before it hits an enemy as soon as it appears, from as high as possible against the same wall one is attached to, to reduce the amount of rope sprites which otherwise also throws in a few lag frames here and there). So far, I didn't find any way to get off the ropes in a better way than just optimizing the position rather than position and speed or acceleration, which seemed to not matter much. Note though that the current Test-TAS doesn't have the use of a RAM Watch incorporated yet (and only uses the input editor, which on its own is already pretty powerful), since I'm still looking through the addresses to map their behavior to parameter's that change in the game, for a later TAS attempt. Right after jumping off the ropes, Jimmy gets rid of the capsule (for which I managed to avoid the lag frame that the collection of the 5000 score sign normally causes) so Billy can dash forwards with a jumpkick (instead of being forced by the capsule's position to initiate an ellbow attack against it). The longjump mechanic then allows me to simply jump over the ''Tarzan-gaps'' as I call them, instead of getting past them the normal way. At around the frame 22153, after finishing off 2 turrets, dashing forwards midair after a jumpkick with Billy barely allows Billy to land on the higher platform. Also noteworthy is that in stage 2 and 3, there seem to be parts at which the screen (provided it reached a certain position already) starts moving at a fixed speed, so that character movement couldn't induce a faster forced screen-shift anymore. After the chainsaws, jumping normally onto higher platforms (and being attached to them in a standing pose if one keeps holding Jump and is close enough) ended up being faster than using a jumpkick onto the 1st higher platform, since this would trigger the stomper earlier and would require to start running again after the jumpkick finished, which doesn't allow to get past the stomper anymore, so one would get hit. At the lever gates, I could nicely abuse the fence side-kick animation that can happen simultaneously to falling from the fence and still hit the lever that way in each case. Then there is capsules on the path which effectively hinder jumpkicks from being a quick option to get onto higher platforms, and another longjump is used over a platform, followed by a slightly different approach to get rid of the women with the whips.
The game often doesn't spawn more than 2 fighter type enemies simultaneously and often hitting/getting rid of 1 of 2 such enemies instantly causes the next enemy to appear. And again longjumps over Tarzan gaps are used, followed by shifting the screen as quick as possible sufficiently far to the right with Jimmy so that Billy could respawn on the right side quickly. Billy's jumpkick afterwards shifted the screen faster to its end position, and the woman that Jimmy kicks on the ground first allows him to initiate a knee attack that then hits the other woman, so both can be finished off faster in the end. Then a jumpkick trajectory into the following abyss for a death warp is chosen in such a way to still respawn on the right side but also with a lot of falling speed to land early to start swinging ropes quickly. The turrets afterwards didn't cause any lag, but I think each whirlwind attack caused 1 lag (though some were synchronized). The final bird that is attacked either flies off-screen far to the right or to the left, depending on where the highest character is positioned, so I made sure it moves to the left so it can be finished off together with the previous bird. Billy and Jimmy are attached to the long fence further ahead using jumpkicks, and this fence will probably take a while to optimize (and is the reason why the Test-TAS stops shortly after), since the time at which obstacles spawn near the fence depends on the screen position, and one would want to minimize the time needed to dodge obstacles (or counter-attack them) without being able to move, so one would want to merge or let many obstacles overlap or be synchronized at 1 place to reduce the total amount of frames spent on dodging them (and a normal death warp would just let a player respawn at the far left of the screen and essentially waste already travelled distance). And for this task, not a constantly moving screen matters in the end but the furthest ahead player character's position matters to reach a fixed final screen position as soon as possible (since the character drives the screen position and ultimately allows for a death warp for both characters as soon as the screen has reached a certain position which it will have reached as soon as the character reached a certain position by travelling a sufficient distance). And since it suffices for 1 character to reach this position that then allows a death warp for both, the other character can be used to stop the screen movement bit by bit by how much it should be, whenever needed in order to delay new obstacles from appearing or change the distance between the further ahead character to the side of the screen for the times in which new obstacles will appear, as long as it doesn't unnecessarily keep the further ahead character from moving to the right. Regarding this fence, I couldn't make the fast fence travel method from the NES version work here.
- - - - -
Lsnes movies:
This is my current Test-TAS until about half through stage 3, and the following movies containing short improvements (or potential, not yet confirmed possible, improvements in few cases) refer with their X frame improvements (over the Test-TAS) to this Test-TAS. Generally, in the input editor, there is some (useless) inputs used as markers for orientation, and the frames at which differences occur between the Test-TAS and an improvement movie are marked in the improvement movie by 2 frame-rows of L and R inputs for both characters (instead of just 1 row of L and R, which I use generally as breakpoints for when the screen starts to move or stops moving or when certain animations start or end to see how well the TAS does). Most lag frames (outside of cutscenes and loading times) should be marked with Start inputs in the movie.
https://cdn.discordapp.com/attachments/218520158963105792/344550065261772801/Test-TAS.lsmv
Local known improvements (and improvement ideas) as Lsnes movies:
A jump kick with Jimmy at around 7857 allows to have the screen finish its movement 1 frame earlier (but might not anymore allow to move Jimmy vertically along the ground to lure the enemy coming from the right side into the screen fast enough to keep the frame save).
https://cdn.discordapp.com/attachments/218520158963105792/344593095737737247/jumpkick_for_1f_faster_screen_shift_stage_2.lsmv
This is one of my largest oversights of stage 2 for my current setup with Billy and Jimmy, since I simply started the finishing knee attacks with Billy and Jimmy at least 18 frames later than I could have done (which is around frame 7986) with better positioning and timing. I think I thought the sliding of the enemies on ground needed to finish before I could finish them off, and must have gotten to that conclusion by just doing a few tests that didn't allow me to finish them off earlier, but some more testing later on when I came back (now knowing that the finishing move can be started much earlier, basically as soon as the enemy lands on ground) made me realize this mistake. Even the published TAS does this faster (which I didn't use for comparison at that time).
https://cdn.discordapp.com/attachments/218520158963105792/344580493926203392/18f_stage_2_time_save_with_earlier_knee_finisher.lsmv
A jumpkick in stage 2 - 2 at around frame 9200 in the Test-TAS allows the screen to finish its shift 5 frames earlier, but this improvement should be obsolete.
https://cdn.discordapp.com/attachments/218520158963105792/344551374450589697/obsolete_jumpkick_for_5f_faster_screen_shift_stage_2.lsmv
Doing a jumpkick at around frame 9243 with Jimmy allows to shift the screen 7 frames earlier to its next fixed position compared to the Test-TAS, and 2 frames earlier compared to the above obsolete option. The 2nd movie is the same improvement in a different way that keeps the the final fixed position of the screen as it is in the Test-TAS.
https://cdn.discordapp.com/attachments/218520158963105792/344579053459734529/7f_faster_screen_shift_stage_2_and_diff_final_background_x_pos.lsmv
https://cdn.discordapp.com/attachments/218520158963105792/344597979820457984/the_7f_stage_2_faster_shift_with_same_background_x_pos.lsmv
Finishing off the remaining 3 enemies climbing along the floor at around 9975 with stomps instead of jumpkicks despawns them much earlier and hence allows the screen to move much earlier, which should save around 20 frames. The 2nd movie takes (only) this improvement and continues further up to the dynamite thrower, where the RNG desynchs.
https://cdn.discordapp.com/attachments/218520158963105792/344593624950112257/stage_2_downstomp_strat_huge_20f_improvement.lsmv
https://cdn.discordapp.com/attachments/218520158963105792/344596243420545025/Test-TAS_improvement_at_stage_2_uncontinued.lsmv
A jumpkick with Billy at around 10060 allows the screen to finish its shift 1 frame earlier (but might not be implementable due to possibly hitting the left guy afterwards later than originally).
https://cdn.discordapp.com/attachments/218520158963105792/344586283634393088/another_1f_shift_save_stage_2.lsmv
At around frame 22227, instead of using a jump-kick, one can use a late airial kick shortly before Billy would land, in order to be able to run earlier to the right (and be further to the right) to do the final attack 2 frames earlier than in the Test-TAS.
https://cdn.discordapp.com/attachments/218520158963105792/344551944859418634/2f_save_stage_3_with_non-dash_jump_kick.lsmv
At around frame 22238, jumping later after turning around keeps Jimmy further to the right (probably because of now already lost momentum) and allows him to hit the woman to the right 3 frames earlier.
https://cdn.discordapp.com/attachments/218520158963105792/344574496465747980/3f_stage_3_save_with_later_jumpkick_after_turn.lsmv
At around frame 25101, after the jumpkick off the platform, one can continue moving forwards midair and enter the running animation midair to shift the screen 1 frame earlier to the next position where it will stop.
https://cdn.discordapp.com/attachments/218520158963105792/344570190404648960/1f_stage_3_faster_screen_shift_with_running_jump-kick_midair_dash.lsmv
These improvements (and possibly other fixes such as a few remaining lag frames here and there remaining to be eliminated or merged to change 2 lag frames into 1 if one knows what causes the lag and can synchronize lag-inducing actions) are things that I'd want to implement into the Test-TAS before continuing further with the test, because I expect RNG and lag patterns to have a more major impact/relevance in stage 4, and so far, it seems the only ''majorly'' RNG depending scenario was in stage 2 at the 2nd dynamite throwing guy with the trajectories of the dynamites which seemed to depend on RNG. To me it seems the game would allow for various ways in which one can implement stylistic elements (entertainment) which don't seem to be fully exhausted in the published TAS, but (except maybe of the 1st stage in the Test-TAS) entertainment is something to care about and do at the end when the frame-optimization is mostly done, I guess, because otherwise it might happen that already implemented stylistic elements will have to be revised after finding new improvements.
- - - - -
Lsnes observation movies throughout the TASing process:
- - -
Stage 1:
When the 2nd fighter that gets into the screen and is kicked at around frame 2391, the screen in this test movie is kept far left to test if the fighter would despawn earlier that way after being thrown far off-screen to the right instead of landing and despawning shortly after, but this didn't work (which though turns out to be possible in a few cases of kicking fighters in stage 1 off-stage to keep the screen movement going).
https://cdn.discordapp.com/attachments/218520158963105792/344645430870540288/level_1_test.lsmv
This movie shows how one can take out the 1st (and apparently only the 1st) brown robot in stage 1 with a simple, well positioned (in relation to the robot's position, not too centered and not too far away vertically along the ground) fist attack as soon as the robot sank far enough down from above.
https://cdn.discordapp.com/attachments/218520158963105792/344607040376668161/brown_robot_grab_and_jab_kill.lsmv
Here is a comparison movie for the case of finishing off a fighter in stage 1 around frame 3407 with the knee attack (which ended up being slower than waiting for the fighter to stand up, kick him and let him despawn off-screen).
https://cdn.discordapp.com/attachments/218520158963105792/344641174885367810/knee_smash_finisher_test.lsmv
- - -
Stage 2:
In the 2nd stage, on the first floor, there is an occassion at which 2 enemies approach Billy and Jimmy from both sides, and they will try to adapt their vertical position on the floor to the player character that they are targeting, but I haven't quite yet figured out how they decide their target, which can be important to figure out, as I learned in stage 3. This movie shows how those 2 enemies both lock onto the same player character, ignoring the other one (until hitting the former, at least).
https://cdn.discordapp.com/attachments/218520158963105792/344605710673248256/both_fighters_locking_onto_same_char.lsmv
A movie that uses the TAS strategy that Whitegastra used for the 1st dynamite thrower, for comparison purposes. And the 2nd movie shows what happens if one throws a secondary (or later) dynamite too early into the door (which causes a repetition of the dynamite thrower's backwards movement animation and doesn't let the previous danymite hit count anymore, so it seems).
https://cdn.discordapp.com/attachments/218520158963105792/344614054087884801/dynamite_thrower_old_TAS_strat.lsmv
https://cdn.discordapp.com/attachments/218520158963105792/344614364416049153/dynamite_thrower_animation_repetition.lsmv
Here one can see an example of some kind of inverted situation at the 1st floor of stage 2 where the enemy fighters' AI ignores the closer player character.
https://cdn.discordapp.com/attachments/218520158963105792/344639302577422346/fighter_AI_char_lock_demonstration.lsmv
At the beginning of the 2nd floor in stage 2, this movie shows roughly how long one can delay a 2nd knee attack against an enemy on the floor while the other player character is finishing him off. This uses the mechanic that the knee attack can still be triggered after a dash that ends near the enemy and already stopped, (and even during a stationary jump at that spot) as long as the/some target enemy on the ground is still there.
https://cdn.discordapp.com/attachments/218520158963105792/344647460498702336/most_delayed_stored_knee_finisher_from_present_object.lsmv
At the 2nd floor in stage 2 at the 2 wooden enemies, it occured (and is shown in this movie) that a knee attack was capable of hitting 1 of the wooden enemies while it was in its stunned knockback phase shortly after getting kicked.
https://cdn.discordapp.com/attachments/218520158963105792/344656786680315928/wooden_enemy_kick_and_knee_kill_midair.lsmv
This is where I first noticed the longjump mechanic (at the 2nd floor of stage 2).
https://cdn.discordapp.com/attachments/218520158963105792/344640281246957570/horizontally_speed_up_dash_jump.lsmv
The time it takes until the 2nd stage ends (with a fade-out of the screen) depends on how soon the rat boss exits the screen (and despawns), apparently. And the following movie indicates the time difference of knocking it to the left or the right out of the screen for a given final rat starting position where the rat lies (which one wants to have as close to 1 side of the screen as possible).
https://cdn.discordapp.com/attachments/218520158963105792/344642512817750026/L_and_R_markers_for_offscreen_rat_delay_difference.lsmv
- - -
Stage 3:
At the lever gate, if one does a jumpkick against the laser, then the knockback animation will occur after the jumpkick animation finished (which is usually the case when touching fire rings aswell), and the character will be thrown back during the jumpkick (which doesn't seem to happen anywhere else so far).
https://cdn.discordapp.com/attachments/218520158963105792/344637375470895124/electric_gate_jumpkick_delayed_damage.lsmv
At the chainsaw downwards climb, it doesn't help trying to let both player characters die and respawn near the end in order to obtain and keep i-frames to get past the stomper shortly afterwards (which is possible for 1 of the characters and would be faster if the other one wouldn't get hit and then stall the screen for a whole long time), because at least 1 of the player characters has to finish off the final turret in order to allow the screen to progress, and at this point the last chainsaw is gone already and both would be in their death animation, and waiting for a turret shot to let a character die would already waste too many frames, so at least 1 character cannot get the i-frames and would get hit if the other one triggers the stomper too early (except it might still allow to trigger the stomper just 1 or a few frames earlier without yet hitting the slower i-frame-less character so that the character that is further ahead still can keep his distance-wise advantage).
https://cdn.discordapp.com/attachments/218520158963105792/344652802339110913/stage_3_iframe_strat_doesnt_work_bec_turret.lsmv
This here is a comparison movie that contains the order/method in which the published TAS got rid of the women with the whips at the beginning of stage 3 - 2, which turned out to be slower than using the 3rd last woman (which is the last woman that takes 2 hits to despawn, in order to be useful for using her to trigger a double-knee-attack which usually seems to be the best way to get rid of the final 2 enemies) to get rid of her and the final one at the end.
https://cdn.discordapp.com/attachments/218520158963105792/344650061181091850/slower_stage_3_whip_ladies_strat_from_published_TAS.lsmv
This movie contains an earlier, slower strategy of getting off the long fence near the end of the Test-TAS using a deathwarp for Jimmy and Billy.
https://cdn.discordapp.com/attachments/218520158963105792/344649595856355329/old_stage_3_Test-TAS_fence_strategy.lsmv
Having another enemy lie around on the ground next to an enemy that already has been delivered the final attack allowed Billy at around the frame 25385 to initiate another final knee attack which then targeted the already finished off woman, which was a strange noteworthy occurence since it could be of relevance at some point.
https://cdn.discordapp.com/attachments/218520158963105792/344654900871036930/strange_knee_multi-kill_of_same_whip_lady_at_other_enemy.lsmv
- - - - -
Snes9x 1.51 rr movies (mostly for tests and documenting some things):
Stage 2:
One can jump and grab the orange floating bike (similarly to the NES version) for a higher jump, except one doesn't stay up there.
https://cdn.discordapp.com/attachments/218520158963105792/344544889779781643/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_vehicle_grab_jump.smv
Some tests with the orange floating bike (dashing forwards and backwards, ramming and kicking, jumping and kicking in different rhythms that can cause weird vertical teleportations and kick animations).
https://cdn.discordapp.com/attachments/218520158963105792/344530057773187073/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_forwards_vehicle_kick_and_resonating_jumps_and_hi.smv
- - -
Stage 3:
2 types of game crashes:
A game crash with black screen during the narrow climb section in stage 3. I think the crash is related to having a character close to the bottom of the screen near/beneath a bird (possibly bird AI or collision related) and either switching between holding Right and Left or just holding Left or Right. I assume it is related to the birds, because during the tests where I reproduced this kind of crash in similar situations a bunch of times, I think there was always a bird involved and I don't think I could get the game crash without a bird (except of 1 specific other instance). I don't think it is related to the fire ring sprites, since there were cases where the game crash could be reproduced without them aswell.
https://cdn.discordapp.com/attachments/218520158963105792/344491806295195648/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_another_climb_game_crash.smv
While the (seemingly) bird related crash was easy to reproduce, a crash that seemed to be related to the height or timing at which a capsule that spawned at the end of a climbing section was much more precise and harder to recreate. It might be related to the sound or particle effect or the drop's positioning inbetween the 2 characters.
https://cdn.discordapp.com/attachments/218520158963105792/344524982124019712/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_down_climb_capsule_game_crash.smv
This movie demonstrates a clip through the left wall using a laser and the induced animation from touching it (and one can get stuck on that left side that way). In the narrow shaft, this also works to clip through the right wall.
https://cdn.discordapp.com/attachments/218520158963105792/344512718843281409/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_clipping_past_left_wall_in_climb_shaft.smv
It is also to note that the position of the capsule's drop from the above capsule game crash movie depends on positioning/timing of hitting the capsule when it spawns (since that drop can spawn far left or right).
https://cdn.discordapp.com/attachments/218520158963105792/344539150743240715/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_opening_capsule_far_right_when_it_spawns_for_drop.smv
Jumps over/through the ceiling in stage 3:
With the jump-kick mechanic using a crouch midair to gain height and distance (by chaining such kicks) during jumps, one can explore the collision-behavior of the ceiling a bit in stage 3 after the downwards climbing sections (if the jump that gets rid of the rope is well-timed while moving upwards at the top of the screen where the character is teleported back down a bit if one goes too high), and it seems that one cannot stand on any part of the ceiling (at least this seems to be true for the parts of the ceiling I could reach, and instead of landing on the ceiling, one will just fall through), and some parts of the ceiling don't allow the character to move sideways through them (i.e. some tiles in the ceiling have walls). In none of the cases I could get past the left wall with a crouchjump-kick near the top of the screen (but in some cases one can get hit by a blue laser and use the animation that happens when the character is shocked to clip through the left wall). And the stompers seem to extend very far upwards (since they still could hit the character in the ceiling even if they were triggered to move downwards by the other character).
https://cdn.discordapp.com/attachments/218520158963105792/344497436628353025/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_another_jump_through_ceiling.smv
https://cdn.discordapp.com/attachments/218520158963105792/344511697282924545/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_ceiling_clip_in_stage_3.smv
This movie shows how stompers extend into the ceiling (and it would still be like this if the stomper was triggered earlier by the other character).
https://cdn.discordapp.com/attachments/218520158963105792/344543603516899341/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_stomper_extends_far_into_ceiling.smv
At the climb section in stage 3 shown in the following movie, the last bunch of birds will not spawn and the screen will not stop going downwards if one doesn't attack at least 1 of the 2 birds that come after the first 4 birds higher up in the climb, but if one doesn't attack any of those 2 birds and reaches the bottom, one is stuck and cannot progress anymore (because the screen doesn't move anymore). And in the case that one does attack 1 of those 2 birds, then the screen will continue going downwards as long as the bird isn't despawned yet (when it exits the screen at the bottom), and the next set of birds will spawn (at fixed positions relative to the screen's position for at least 1 of them) as soon as the screen movement stops or as soon as a certain height of the screen close to the bottom of the shaft is finally reached (though it might also instead happen as soon as the juggled bird gets its final hit delivered). One can then also see some sprites of birds on screen that one cannot attack yet because they are actually higher up and will take some time to go down (and their sprites will disappear at the bottom of the screen and appear at the top again). And after those birds are finished off, the capsules that normally would spawn at different heights in relation to each other will all be lined up at a specific height near the end of the shaft (probably because this limiting height has priority and stops the capsules that are usually positioned further below from appearing lower than this limit).
https://cdn.discordapp.com/attachments/218520158963105792/344502913713963008/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_bird_climb_messed_up.smv
The following movie shows how a bird clips through the left wall with its attack animation, and is then stuck over there (where one could still hit it) unless it clips back through if it is lured downwards close enough to the bottom of the screen and attacks.
https://cdn.discordapp.com/attachments/218520158963105792/344509361743462402/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_birds_can_dash_past_walls.smv
The fence in the movie extends to the left (past the range of fence sprites), but unfortunately the stomper is in the way, so I couldn't test how far one could climb over to the left, but one would probably anyways stop at the left side of the screen.
https://cdn.discordapp.com/attachments/218520158963105792/344510690956017665/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_cannot_climb_left_past_stomper.smv
A midair crouchjumpkick-chain test in stage 3 into an abyss to get an idea on how long the point in time of respawning can be delayed that way.
https://cdn.discordapp.com/attachments/218520158963105792/344515686489522186/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_delaying_the_respawn_with_Down-jumpkicks.smv
In stage 3, if one jumps and presses Down at any point during the jump (except during a jumpkick or crouchjumpkick animation), the character cannot move sideways anymore until he lands (or until he executes a crouchjumpkick). And the following movie also contains some crouchjumpkick chain tests (going the same direction or alternating the direction each time), and slowdown tests to do a normal fist attack quickly after running in some direction (instead of a jumpkick which normally would happen). And if one jumps and keeps holding Jump after landing, one cannot dash anymore in order to run as long as Jump is held (nor can one jump by pressing the 2nd Jump button, since apparently the 2 Jump buttons act as 1 Jump button, and the same seems to be true for the 2 Attack buttons). And if one keeps holding Jump, lands on ground and presses down, then the character will be ''stuck'' in the crouch pose and cannot move sideways anymore as long as one keeps holding Jump (unless one presses Attack to do a crouchjumpkick).
https://cdn.discordapp.com/attachments/218520158963105792/344521835997822977/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_Down_button_and_jumpkick_boost_tests.smv
When climbing a fence in stage 3, one can execute crouchjumpkicks that move the character upwards and forwards a bit, but the forwards movement is stopped as soon as one (vertically) comes close enough to the fence so that the character just stays in the air for a bit beneath the fence. Though if one falls further, one can move sideways during a crouchjumpkick before the character gained enough height from the crouchjumpkick in order to ''stick in place'' for the rest of the crouchjumpkick animation. One can also do a sideways kick animation on the fence and press Down about the same time to fall from the fence and do the kick animation (and can then still continue with midair crouchjumpkicks).
https://cdn.discordapp.com/attachments/218520158963105792/344526835197018112/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_downkick_fence_climbing_and_travel.smv
Triggering an ellbow attack (due to the midair capsule) while running into the abyss in stage 3, and the 2nd movie shows the same with better timing where one can even reach the laser on the other side (and possibly could land over there if it wasn't for the laser).
https://cdn.discordapp.com/attachments/218520158963105792/344528935029309444/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_ellbow_attack_into_abyss_again_.smv
https://cdn.discordapp.com/attachments/218520158963105792/344544428721176586/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_triggering_ellbow_attack_while_running_off_cliff_.smv
A fist attack can be executed at the right height shortly before attaching a character to a fence in the ceiling, but the fist attack seems to not be capable of hitting the lever.
https://cdn.discordapp.com/attachments/218520158963105792/344529390035664896/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_fist_attack_before_attaching_char_to_ceiling.smv
Walking into the abyss and starting to run midair in stage 3. And the 2nd movie shows that one can also change the direction midair.
https://cdn.discordapp.com/attachments/218520158963105792/344531615944540160/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_gaining_dash_speed_in_abyss.smv
https://cdn.discordapp.com/attachments/218520158963105792/344539869269327874/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_running_diff_directions_midair_falling.smv
One can also run into the abyss and do a fist attack midair (after turning around).
https://cdn.discordapp.com/attachments/218520158963105792/344540777730277376/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_running_into_abyss_and_fist_attack.smv
When a character moves into an abyss and respawns, then the speed and animation is kept and i-frames are given.
https://cdn.discordapp.com/attachments/218520158963105792/344541191376994304/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_speed_and_animation_is_kept_when_respawning_and_i.smv
If one gets hit (in this case by fire rings) while running, then the ''dashing'' state of the character is kept, i.e. one doesn't need to press Forwards, release it and re-press it again in order to start dashing (or in order to do jumpkicks) and can just hold Forwards to continue running. And no i-frames are given by getting hit unless one loses a character's life.
https://cdn.discordapp.com/attachments/218520158963105792/344542747459584010/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_speedkeep_after_getting_hit_and_lack_of_iframes.smv
Jumps over gaps (as applications of the longjump mechanic and or midair crouchjump-kicks):
https://cdn.discordapp.com/attachments/218520158963105792/344536914432622592/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_huge_abyss_longkickjump.smv
https://cdn.discordapp.com/attachments/218520158963105792/344537462493806592/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_jumpkick_float_over_gap.smv
https://cdn.discordapp.com/attachments/218520158963105792/344538146005843979/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_longjump_over_tarzan_gap.smv
https://cdn.discordapp.com/attachments/218520158963105792/344538264004329472/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_longjumps_for_more_gaps.smv
The midair crouchjumpkick also allows to run off a platform and jump back onto it.
https://cdn.discordapp.com/attachments/218520158963105792/344537134910406656/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_jumpkick_back_onto_platform_.smv
In stage 3, a running jumpkick allows to get pushed up onto higher platforms without much of a loss of sideways speed.
https://cdn.discordapp.com/attachments/218520158963105792/344537639803682818/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_jumpkick_to_get_onto_higher_platform_smoothly.smv
If one is close enough to a wall like in the following movie, then a character will get attached to a wall and stand on it, and tapping the other direction will make him stand on the same wall but on the other side of the wall. And one can execute those ''whirlwind'' attacks towards both directions on a wall (either away from it or towards it where one will stay in place). And near the bottom of the screen during climb sections or this place, pressing Down (either while walking on a wall or hanging) can make the character go up, which will happen until one reaches a certain height within the screen during the upwards movement in case one holds Down, or in the case one only taps Down bit by bit, one will not stop moving upwards until reaching the top of the screen.
https://cdn.discordapp.com/attachments/218520158963105792/344545433026166814/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_wall_behavior_with_rope.smv
- - -
Stage 4:
It seems that remaining Missiles cannot hurt/hit the rat ship at the end in any way.
https://cdn.discordapp.com/attachments/218520158963105792/344538327816470529/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_missile_doing_nothing_to_rat_ship.smv
- - - - -
Snes9x 1.53 v.7 movie:
Here is a test of a longjump mechanic that i found kind of by accident (which seems to exist in the NES version of this game aswell at least in a similar manner as someone told me afterwards). The longjump is possible once a character dashes to some direction and slows down for a sufficiently long time (and can even have stopped moving entirely and still be able to execute such longjump). The longjump is then done by jumping (for any amount of time, depending on how high the jump shall be) and pressing and holding Forwards at any point of the jump (but the earlier, the further the jump can go). The high sideways speed of this longjump (which seems to max out at a very similar speed as the maximum running speed) is cancelled if one kicks early on during the jump (on the way up before the apex) or turns around (or starts moving towards the background or foreground in stage 1 or 2, which isn't possible in stage 3). If one turns around after dashing to one direction, one cannot execute such jump anymore either (unless dashing to a direction again to ''store'' jump speed, or rather enable sideways acceleration for such longjump).
https://cdn.discordapp.com/attachments/218520158963105792/344516595848183808/Battletoads__Double_Dragon_-_The_Ultimate_Team_USA_dash_longjump_mechanic_tests_.smv
- - - - -
Timestamps (in frame counts) for the published TAS by Whitegastra:
-----
(1883)
1st stop of screen movement, to the right: 1883
(42)
first frame of screen movement after 1st stop: 1925
(546)
2nd stop of screen movement, to the right: 2471
(65)
first frame of screen movement after 2nd stop: 2536
(65)
3rd stop of screen movement, to the right: 2601
(69)
first frame of screen movement after 3rd stop: 2670
(220)
first frame of screen movement after 4th stop at brown robots (neglecting the player induced screen shift): 2890
(175)
first frame of screen movement after 5th stop at 3 purple fighters after brown robots (overtaken by player stopping the screen longer): 3065
(225)
6th stop of screen movement, to the right: 3290
(48)
first frame of screen movement after 6th stop: 3338
(161)
7th stop of screen movement, to the right: 3499
(204)
first frame of screen movement after 7th stop: 3703
(17)
8th stop of screen movement, to the right: 3720
(571)
first frame of screen movement after 8th stop: 4291
(161)
9th stop of screen movement, to the right: 4452
(167)
first frame of screen movement after 9th stop: 4619
(65)
10th stop of screen movement, to the right: 4684
(570)
first frame of screen movement after 10th stop: 5254
(113)
11th stop of screen movement, to the right: 5367
(553)
first frame of screen movement after 11th stop: 5920
(42)
12th stop of screen movement, to the right: 5962
(72)
1st frame of players jaw drop animation: 6034
(667)
1st frame of Abobo's flying animation: 6701
(398)
- - -
first frame of input in level 2-1: 7099
(693)
2nd stop of screen movement, to the right (neglecting the player induced delay): 7792
(531)
3rd stop of screen movement, to the right: 8323
(206)
4th stop of screen movement, to the right: 8529
(131)
last frame of players jaw drop animation: 8660
(675)
first frame of elevator door fully closed: 9335
(407)
---
1st stop of screen movement, to the left at level 2-2 (neglecting the player induced delay): 9742
(302)
2nd stop of screen movement, to the left: 10044
(575)
3rd stop of screen movement, to the left: 10619
(1091)
4th stop of screen movement, to the left: 11710
(130)
last frame of players jaw drop animation: 11840
(1131)
first frame of elevator door fully closed: 12971
(289)
---
first frame of screen movement after 1st stop in level 2-3: 13260
(8001)
1st frame of players jaw drop animation: 21261
(282)
last frame of players jaw drop animation: 21543
(808)
- - -
first frame of screen movement after 1st stop in level 3-1: 22351
(101)
2nd stop of screen movement, to the right: 22452
(220)
3rd stop of screen movement, to the right: 22672
(531)
4th stop of screen movement, downwards: 23203
(63)
5th stop of screen movement, to the right: 23266
(189)
6th stop of screen movement, to the right: 23455
(268)
7th stop of screen movement, to the right: 23723
(97)
8th stop of screen movement, to the right: 23820
(113)
9th stop of screen movement, to the right: 23933
(138)
10th stop of screen movement, to the right: 24071
(157)
11th stop of screen movement, to the right: 24228
(340)
12th stop of screen movement, to the right: 24568
(94)
first frame of screen movement downwards after 12th stop: 24662
(1279)
12th stop of screen movement, downwards (with movement to the right): 25941
(363)
---
1st stop of screen movement, to the right at level 3-2: 26304
(529)
2nd stop of screen movement, to the right: 26833
(257)
3rd stop of screen movement, to the right: 27090
(169)
4th stop of screen movement, to the right: 27259
(443)
5th stop of screen movement, to the right: 27702
(227)
first frame of screen movement after 5th stop: 27929
(672)
first frame of screen movement downwards after 5th stop: 28601
(2104)
6th stop of screen movement, downwards: around 30705
(188)
7th stop of screen movement, downwards: around 30893
(676)
8th stop of screen movement, downwards (with movement to the right): 31569
(2212)
---
first frame of screen movement, downwards at level 3-3: 33781
(1365)
1st stop of screen movement, downwards: 35146
(545)
first frame of screen movement, to the right (at the sideways rope travelling part): 35691
(498)
2nd stop of screen movement, to the right: 36189
(209)
3rd stop of screen movement, to the right: 36398
(472)
first frame of screen movement, downwards after 3rd stop: 36870
(1980)
first frame of screen movement, to the right after garbage dodging on rope: 38850
(785)
1st frame of players jaw drop animation: 39635
(202)
last frame of players jaw drop animation: 39837
(666)
1st frame of 3-3 boss losing his weapon: 40503
(126)
first frame of screen movement after 3-3 boss: 40629
(4371)
- - -
first frame of rat ship moving to the left at start of 4-2: 45000
(640)
first frame of inner rat ship explosion sprite appearing: 45640
(876)
- - -
1st stop of screen movement, to the right at level 5-1: 46516
(394)
2nd stop of screen movement, to the right: 46910
(128)
3rd stop of screen movement, to the right: 47038
(280)
4th stop of screen movement, to the right (neglecting ladder climb): 47318
(145)
5th stop of screen movement, to the right: 47463
(383)
first frame of space ship door closed: 47846
(1344)
6th stop of screen movement, to the right at the dynamite throwing guys: 49190
(712)
first frame of screen movement to the right after the dynamite throwing guys: 49902
(244)
first frame of space ship door closed: 50146
(1675)
7th stop of screen movement, at the multi ninja ambush: 51821
(382)
---
1st stop of screen movement, to the right at level 5-2: 52203
(130)
2nd stop of screen movement, to the right: 52333
(369)
3rd stop of screen movement, to the right: 52702
(20)
4th stop of screen movement, to the right: 52722
(380)
5th stop of screen movement, to the right: 53102
(22)
6th stop of screen movement, to the right: 53124
(462)
7th stop of screen movement, to the right: 53586
(411)
first frame of space ship door closed: 53997
(1444)
first frame of space ship door closed: 55441
(2302)
- - -
first frame of players lying on ground from falling at level 6-1: 57743
(262)
1st stop of screen movement, to the right: 58005
(168)
2nd stop of screen movement, to the right: 58173
(289)
3rd stop of screen movement, to the right: 58462
(295)
4th stop of screen movement, to the right: 58757
(122)
5th stop of screen movement, to the right: 58879
(161)
1st frame of players jaw drop animation: 59040
(82)
last frame of players jaw drop animation: 59122
(2275)
first frame of screen movement to the right: 61397
(440)
- - -
1st stop of screen movement, to the right at level 7-1: 61837
(243)
first frame of screen movement after 1st stop: 62080
(23)
2nd stop of screen movement, to the right: 62103
(202)
first frame of screen movement after 2nd stop: 62305
(23)
3rd stop of screen movement, to the right: 62328
(355)
first frame of screen movement after 3rd stop: 62683
(18)
4th stop of screen movement, to the right: 62701
(575)
1st frame of players jaw drop animation: 63276
(223)
last frame of players jaw drop animation: 63499
(717)
frame of last input: 64216
-----
Timestamps for the Test-TAS above (in comparison to the published TAS):
-----
(1862|-21)
1st stop of screen movement, to the right: 1862
(21|-21)
first frame of screen movement after 1st stop: 1883
(546|-0)
2nd stop of screen movement, to the right: 2429
(66|+1)
first frame of screen movement after 2nd stop: 2495
(65|-0)
3rd stop of screen movement, to the right: 2560
(28|-41)
first frame of screen movement after 3rd stop: 2588
(186|-34)
first frame of screen movement after 4th stop at brown robots: 2774
(160|-15)
first frame of screen movement after 5th stop at 3 purple fighters after brown robots: 2934
(217|-8)
6th stop of screen movement, to the right: 3151
(47|-1)
first frame of screen movement after 6th stop: 3198
(161|-0)
7th stop of screen movement, to the right: 3359
(146|-58)
first frame of screen movement after 7th stop: 3505 (3557 with knee finisher)
(17|-0)
8th stop of screen movement, to the right: 3522
(567|-4)
first frame of screen movement after 8th stop: 4089
(228|+67)
9th stop of screen movement, to the right (neglecting the player induced delay): 4317
(36|-131)
first frame of screen movement after 9th stop: 4353
(65|-0)
10th stop of screen movement, to the right: 4418
(568|-2)
first frame of screen movement after 10th stop: 4986
(113|-0)
11th stop of screen movement, to the right: 5099
(549|-4)
first frame of screen movement after 11th stop: 5648
(42|-0)
12th stop of screen movement, to the right: 5690
(72|-0)
1st frame of players jaw drop animation: 5762
(664|-3)
1st frame of Abobo's flying animation: 6426
(343|-55)
- - -
first frame of input in level 2-1: 6769
(666|-27)
2nd stop of screen movement, to the right (neglecting the player induced delay): 7435
(439|-92)
3rd stop of screen movement, to the right: 7874
(228|+22)
4th stop of screen movement, to the right: 8102
(132|+1)
last frame of players jaw drop animation: 8234
(627|-48)
first frame of elevator door fully closed: 8861
(396|-11)
---
1st stop of screen movement, to the left at level 2-2 (neglecting the player induced delay): 9257
(298|-4)
2nd stop of screen movement, to the left: 9555
(526|-49)
3rd stop of screen movement, to the left: 10081
(944|-147)
4th stop of screen movement, to the left: 11025
(131|+1)
last frame of players jaw drop animation: 11156
(1011|-120)
first frame of elevator door fully closed: 12167
(284|-5)
---
first frame of screen movement after 1st stop in level 2-3: 12451
(7001|-1000)
1st frame of players jaw drop animation: 19452
(283|+1)
last frame of players jaw drop animation: 19735
(753|-55)
- - -
first frame of screen movement after 1st stop in level 3-1: 20488
(92|-9)
2nd stop of screen movement, to the right: 20580
(130|-90)
3rd stop of screen movement, to the right: 20710
(597|+66)
4th stop of screen movement, downwards: 21307
(58|-5)
5th stop of screen movement, to the right: 21365
(192|+3)
6th stop of screen movement, to the right: 21557
(266|-2)
7th stop of screen movement, to the right: 21823
(28|-69)
8th stop of screen movement, to the right: 21851
(110|-3)
9th stop of screen movement, to the right: 21961
(114|-24)
10th stop of screen movement, to the right: 22075
(145|-12)
11th stop of screen movement, to the right: 22220
(274|-76)
12th stop of screen movement, to the right: 22494
(95|+1)
first frame of screen movement downwards after 12th stop: 22589
(1279|-0)
12th stop of screen movement, downwards (with movement to the right): 23868
(327|-36)
---
1st stop of screen movement, to the right at level 3-2: 24195
(492|-37)
2nd stop of screen movement, to the right: 24687
(258|+1)
3rd stop of screen movement, to the right: 24945
(107|-62)
4th stop of screen movement, to the right: 25052
(207|-236)
5th stop of screen movement, to the right: 25259
(136|-91)
first frame of screen movement after 5th stop: 25395
(256|-416)
first frame of screen movement downwards after 5th stop: 25651
(1715|-389)
6th stop of screen movement, downwards: 27366
(139|-49)
7th stop of screen movement, downwards: 27505
(656|-20)
8th stop of screen movement, downwards (with movement to the right): 28161
(1920|-292)
---
(...)