Tool-assisted game movies
When human skills are just not enough

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

Console: Nintendo Entertainment System
Game name: River City Ransom
Game version: USA
ROM filename: River City Ransom (USA).nes
Emulator: FCEUX 2.2.3
Movie length: 05:14.45
FrameCount: 18898
Re-record count: 41477
Author's real name: Will Becker
Author's nickname: willbobsled
Submitter: willbobsled
Submitted at: 2020-11-13 05:55:30
Text last edited at: 2020-11-18 05:48:14
Text last edited by: willbobsled
Download: Download (3290 bytes)
Status: judging underway
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:
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

(Link to video)

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 current 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 attacker's relevant stat (Punch, Kick, Weapon, Throw), current action (neutral/walking, Small-jump, Dash/running, Run-jump), attack type (standard, uppercut/high kick, weapon rating if applicable), and the defender's Defense stat.
  • 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 0x04DA 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.
  • Glitched 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 neutral or running punch, kick, weapon strike, or weapon throw deals approximately 10% extra Damage while Glitched state is active. This is an extremely useful technique in RTA as each of the three punches in a Stone Hands attack deals this extra Damage, saving numerous boss cycles over the course of the run.
  • Small-jump occurs when A+B is pressed while Ryan is stationary or walking; attacks deal approximately 150% Damage. 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 deal approximately 220% Damage. 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 deal approximately 200% Damage. 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 0x052B 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 (which seem to differ only in appearance) will damage one character when thrown or pushed, and then again to all characters within range 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 extensively when Crate/Trashcan comes to rest in boss fights.
  • 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 Names Frames
Cross Town High
Sticksville I,II&III
Grotto Mall
Waterfront Mall
Capitol Ave. Bridge
Downtown I
W.S.L. Co. Warehouse I
70 70 The 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.
11 W.S.L. Co. Warehouse II 145 215 Most 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-15 W.S.L. Co. Warehouse III
Armstrong Thru-way I,II&III
-24 191 Note that this segment is compared with the equivalent segment from the 2014 publication, beginning at Frame 8896.
Glitched 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.
16 Downtown II 75 266 Note that this segment is compared with the equivalent segment from the most recent publication, beginning at Frame 10003.
Glitched 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 Names Room
Flatirons Mall I&II
Downtown II
7484 Boat 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
9385 Blade 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
10390 There 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-22 Vacant 3rd Wheel Factory I,II&III 13422 Ryan 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-28 Downtown IV
OAK Hill Mall I&II
Burb Village I&II
River City High I
14682 Trashcan 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.
29 River City High II 16369 Otis 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-32 River City High III,IV&V 17571 After 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.
34 River City High VII 18891 By 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



  • 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.

Similar submissions (by title and categories where applicable):