Submission #6932: willbobsled's NES River City Ransom "1 player" in 05:14.45

Nintendo Entertainment System
1 player
FCEUX 2.2.3
River City Ransom (USA).nes
Submitted by willbobsled on 11/13/2020 5:55:30 AM
Submission Comments
Slick with his gangs of students and evil bosses holds River City captive and Ryan's girlfriend hostage. Only our hero can stop him now!... But first, he's got some shopping to do!

Game objectives

  • Emulator used: FCEUX 2.2.3
  • Takes damage and uses death to save time
  • Acquires Boat Shoes
  • Uses easiest difficulty
  • Genre: Fighting

About goal choice

River City Ransom was originally released for Famicom/NES in Japan 1989 as Downtown Nekketsu Story, one of the first titles in the Kunio-kun series, and was ported to multiple consoles, including: X68000, and PC Engine. This TAS was performed on the original US port for NES to remain consistent with earlier publications and to make it easier to understand for the general audience, despite the NES games being functionally identical and also saving approximately two seconds from quicker Japanese text. The game difficulty has been set to Novice rather than Advanced in accordance with previous publications, as the harder difficulty results in longer and repetitive encounters, which is neither interesting nor entertaining.
Previous publications have taken advantage of L+R inputs, especially to quickly perform a death warp and commence the required back-tracking to defeat Blade in Sherman Park. However, the route in this TAS requires a later death warp (after purchasing Boat Shoes) which can be achieved fastest by reducing Ryan's Stamina to 0 and running into a wall. I was unable to find any other opportunity where L+R would save time, so I opted to exclude all L+R inputs. Note that the damage required for a death warp without L+R is the only time that Ryan receives damage, including the events that take place after the final input.
Finally, it must be noted that this route is likely sub-optimal and that the route used in the predecessor publication combined with time saves from improved fights and lag reduction will yield an even faster completion.

Techniques and glitches

  • Damage is a function of the relevant attack stat (Punch, Kick, Weapon, Throw), speed (stationary/walking, Dash/running), state (Grounded, Floating, aerial), attack type (standard, finisher, weapon strike, weapon throw), and the defender's Strength stat. There are 12 Damage tiers from walking grounded standard attack (lowest) to Run-jump weapon throw (highest). Some tiers are associated with multiple combinations, e.g. stationary floating uppercut (finisher) = Small-jump standard attack. Each weapon type belongs to one of three separate strike and throw tiers.
  • Will power (WP) is a stat that rejuvenates a downed character once their Stamina (HP) stat reaches 0. If HP == 0 and WP > 31 then HP = WP / 4 , WP -= HP else rip e.g. Otis (WP42) → 32WP10HP → 24WP8HP. On Advanced Difficulty some gangs have WP > 31; on Novice only Simon (WP63) has WP > 54. Ryan has WP15 without powerups, maximum for all characters is WP63.
  • Step counter at $04DA increments while Ryan continues to walk or run. If Ryan is jumping while running and Step counter > 15 then Ryan will perform a High-jump. Step counter is only reset shortly (but not immediately) after the beginning of walk/run animations and is not reset by small adjustments, jumping, or loading zones.
  • Grounded state is the weakest of the three states and uses the intended damage formula for ground attacks.
  • Floating state is activated after landing from a High-jump and remains through loading zones until Ryan next leaves the ground by hopping, jumping, or falling. Each subsequent attack deals one Damage tier above Grounded. This is an extremely useful technique in RTA as each of the three punches in a Stone Hands attack deals this extra 1-2 Damage, saving numerous boss cycles over the duration of the run.
  • Small-jump occurs when A+B is pressed while Ryan is stationary or walking; attacks belong to at least the 3rd lowest Damage tier. Ryan travels faster while running than any possible jump, however a Small-jump will cause minimal cooldown upon landing.
  • Run-jump is performed when Step counter < 16 and Ryan jumps while running; attacks belong to at least the 7th lowest Damage tier. The trajectory can be changed slightly by pressing and holding A or B before jumping (cancelling an attack) and movement/attacks performed mid-air. The cooldown upon landing will depend on Ryan's Agility stat, and how many frames A or B was held. Ryan can also enter the Run-jump state by running off a ledge.
  • High-jump is a Run-jump while Step counter > 15.
  • Long-jump will slightly lose height but gain distance, and the initial lunge forward may also spawn bosses a few frames earlier. Long-jump requires increased Agility, and is performed by pressing either A or B for a single frame before Run-jump or High-jump, immediately followed by a held punch, kick, or weapon strike.
  • Dash makes Ryan run by pressing L or R twice in quick succession; Dash (and running) attacks belong to at least the 5th lowest Damage tier. Step counter will not be reset if a Dash is quickly followed by an input that stops running.
  • Re-dash is a variant of Dash that only requires one L or R input, saving 4 frames. Re-dash can only be performed after a Dash that doesn't reset the Step counter, and can be chained together to perform further Re-dash attacks.
  • Global timer at $052B determines which of the 8 configurations is selected for initial spawn points of gang members. In most cases where a boss needs to be defeated, it is faster to wait in the previous Room to manipulate a desirable pattern.
  • Crate/Trashcan (all best tier except thrown Trashcan) will damage one character when thrown or pushed, and then again on the frame that it comes to rest. It will deal the same Damage as the last time it was thrown. Once at rest, it can be pushed along the floor with a kick, uppercut, or Chain strike. Note that the pushed speed is dependent on the Damage of the pushing attack, which is often different to the stored value.
  • Duplicated damage occurs when a defender takes damage from two sources on consecutive frames, resulting in unintended duplication of either or both attacks. This doesn't seem to be possible with all attacks, but is used when Crate/Trashcan comes to rest in boss fights, as best demostrated by the Otis fight (Room 29).
  • Boat Shoes boosts Ryan's Kick and Agility stats which increases walking and running speed by 25% and allows Ryan to jump farther, but cooldown is slightly extended.
  • Death warp sends Ryan to the previous mall in order to reduce the time spent back-tracking to defeat Blade.

Room by room comments

Room NamesFrames
Cross Town High
Sticksville I,II&III
Grotto Mall
Waterfront Mall
Capitol Ave. Bridge
Downtown I
W.S.L. Co. Warehouse I
7070The first nine rooms have been grouped together as they are repetitive. The first mandatory encounter is Rocko in Room 11,
and Ryan must bring a Crate/Trashcan to quickly defeat him. All time saves are due to lag reduction from RNG manipulation.
11W.S.L. Co. Warehouse II145215Most boss rooms require 4 gang members to be defeated before the boss appears. Only two enemies may appear on screen at
any given time, and will not spawn until the coin disappears or is collected. The Step counter stored from the previous room
allows for an immediate High-jump to quickly dispatch of the first two Home Boys. Collecting the $0.75 coin spawns a Home
Boy upstairs where he attempts to approach Ryan by hopping down but lands on the ledge of a stationary tyre, allowing him to
to vanquished with a single hit. The final two coins are collected and Rocko WP31 is defeated. The routes diverge here as Ryan
collects Rocko's coin for a total of $25.25 and continues to Flatirons Mall to acquire Boat Shoes.
12-15W.S.L. Co. Warehouse III
Armstrong Thru-way I,II&III
-24191Note that this segment is compared with the equivalent segment from the predecessor publication, beginning at Frame 8896.
Floating state is enabled by performing a High-jump on the final frame of Room 14 and maintained for the remainder of the
segment. The lost frames are due to the slower weapon (Chain strikes) and waiting to collect Turk's $2.50 for a total of $31.75.
16Downtown II75266Note that this segment is compared with the equivalent segment from the predecessor publication, beginning at Frame 10003.
Floating state is still active from the previous segment, and is maintained for the remainder of the Room. Despite collecting
Mojo's coin, 75 frames were saved from improving fights.
It isn't particularly insightful to compare the remainder of the TAS with the most recent publication due to gameplay differences caused by Boat Shoes.
Room NamesRoom
Flatirons Mall I&II
Downtown II
7484Boat Shoes are equipped for $36.95 with $0.30 to spare. Incidentally, exiting the Belongings menu can only be buffered on the (USA) port, saving one frame
which is the only known occasion where (J) is disadvantaged. Death warp to Waterfront Mall is not faster with L+R shenanigans.
Waterfront Mall
Sticksville II&I
Sherman Park
9385Blade only appears after Rocko has been defeated, so the back-tracking to defeat him is required in order to spawn Thor. Money is no longer required but the event
flag is not raised until frames before his coin appears.
Sticksville I&II
Waterfront Mall
Capitol Ave. Bridge
Downtown I,II&III
W.S.L. Co. Warehouse I,II&III
Armstrong Thru-way I,II&III
Flatirons Mall I&II
10390There is no need to engage any enemies until Thor, so lag reduction was the primary focus. We continue avoiding all lag frames (since Death warp) until Room 10
with 20 lag frames. An empty Room is always followed by a Room with the native gang, but Room 11 is the laggiest Room in this segment. Only 4 more lag frames
are conceded for the remainder of the segment, all in Room 16.
20-22Vacant 3rd Wheel Factory I,II&III13422Ryan is reunited with his Crate in empty Room 20; future Rooms that can spawn gangs will never be empty. Room 21 is occupied by native gang Squids,
causing 11 lag frames. Long-jump in Room 21 demonstrates the extra distance reached. The companion cube is a tool to be used and discarded; Boat Shoes might
be required to perform this precise High-jump and Long-jump in Room 22.
23-28Downtown IV
OAK Hill Mall I&II
Burb Village I&II
River City High I
14682Trashcan is conveniently available in Room 23. Ivan WP48 has a high Throw stat so his running Trashcan throw deals 41 Damage and will knock him down
whether or not he is in the stun animation.
29River City High II16369Otis WP42 spawns too close to the wall to significantly benefit from manipulating him to throw Trashcan, but Duplicated damage deals a whopping 95 Damage in
the first two volleys. Long-jump is used to quickly conquer the gym equipment. 8 lag frames.
30-32River City High III,IV&V17571After ascending the stairs and clearing the gangs, Andy WP49 is lured into a running Trashcan throw at Randy WP50, dealing 35 Damage which is enough to
knock either Dragon Twin down without being in the stun animation. 16 lag frames.
34River City High VII18891By far the biggest time save in this run is the final Room with 736 frames saved by exploiting Simon's AI. Basically, enemies at close range will reposition if
their Z-coordinate is > 5 difference to Ryan, otherwise they will attack, however, attacks will only connect if Z-difference < 5. Ryan enters the Room at Z=68 and
simultaneously moves up to 70 while beginning his final Dash. Select is pressed as an audio cue to indicate final input. When Simon finishes his monologue, he
runs towards Ryan from Z=80 to Z=75. With a Z-difference of 5, Simon is now stuck in a continuous but unsuccessful endeavour to hit Ryan, eventually throwing
weapons and embarrassing himself. This series of events seems to be relatively easy to replicate for any future TAS, as long as Simon doesn't inadvertently change
his Z-coordinate by jumping on the Crate/Trashcan, or getting stuck walking backwards between Ryan and the wall. Apart from finding a way to Re-dash upon
entry, I feel confident claiming that this room is solved at 7 frames - the final input at 18897 occurs before the fade-in begins.

Other comments

One minor timesave has since been brought to my attention where the Death warp can be achieved faster by entering the Belongings menu once Ryan's corpse disappears, saving about one second. As the optimal route does not involve any shopping (or pause menu), it is unlikely that this timesave will be demonstrated in any future TAS unless it is required to perform a sequence break. The optimal route should be able to achieve a final time of 4:5X or perhaps slightly lower.


  • Shoutouts to Chamale for producing a high-quality TAS that gave me competitive segments with which I could assess my progress
  • Thank you xxEzraBxxx and Spikestuff for higher quality temporary encodes!
  • Special thanks to yelsraek for inspiring me to optimise this bizarre route

ThunderAxe31: Judging.
ThunderAxe31: File replaced with a 65 frames improvement.
feos: Pub.
Last Edited by on 1/1/2022 6:14 PM
Page History Latest diff List referrers