Suggested Description

In this run of River City Ransom , Ryan decides to fight the gangs of students and evil bosses alone because his teammate Alex only slows him down. Several bosses need to be found and beaten before he can enter River City High and beat up the final bad guys (including an obvious imitation of the Double Dragon heroes).
This run obsoletes the previous run by 37 seconds by playing in single-player mode, which greatly reduces lag and makes it easier to exploit the AI. The instant-death glitch frequently used to reduce lag in older runs is only needed once, to deathwarp away from the first boss fight.

Suggested Screenshot

Note

The rerecord count of 775 is inaccurate, and I'm not sure why it's so low. I estimate that the real rerecord count would be 10 times higher.

This run:

• Aims for fastest time
• Abuses programming errors
• Takes damage and uses death to save time

Improvements Made

Every improvement in this run is partly due to the greatly reduced lag. 480 frames are from lag reduction running through uninteresting areas. 1104 frames are from improved fights and lag reduction. 662 frames come from the route change and lag reduction, notably Roxy's dialogue which is 7 seconds faster when she talks to Ryan alone instead of Alex or both. I saved 13 frames by removing blank input between the last button press and the moment the last attack hits the final boss.

Tricks Used

Mashing left+right to run causes that character to glitch out, rapidly going back and forth and falling out of the game world. This glitch is much less useful in single-player mode, but it's a quick way to backtrack away from Rocko and reach Blade faster.
Thrown or kicked trash cans deal damage when they collide with a character, and at the frame they stop moving.
Beginning a flying (run+jump) kick just before landing lets the player bounce and use repeated flying kicks, a high-damage attack also used in unassisted speedruns.
Moose is supposed to be the first boss, but if you avoid fighting him it's still possible to beat the game normally.

Optimizing Fights

In this run, I treat each boss fight as a problem in constrained optimization. Enemy health is stored in 04C1 and 04C2. More time-consuming attacks tend to deal more damage, with flying attacks the most damaging and slowest. Fighting a boss is a matter of knocking his initial health down to 0 as quickly as possible, and repeating the process each time he gets back up with another small amount of health. It is typically faster to not knock down an enemy unless it would bring their health to 0 or it is unavoidable.
An important trick with the trash can is useful against later enemies. When any character throws a movable weapon, that weapon will continue to calculate damage based on that throw as long as it is kicked along the ground. Since Ivan, the Dragon Twins, and Simon have more than triple Ryan's throwing power, these fights each involve letting the boss throw a trash can and repeatedly kicking it along the ground.

Manipulating Luck and AI

Luck in River City Ransom is largely but not entirely based on timing. The easiest and slowest way to manipulate enemy position is to delay entering the next area or picking up the coin that spawns an enemy. Different fights and routes in earlier areas can sometimes influence enemies in the next area. Manipulating enemy spawn positions is important for setting up 2 AIs tobe hit with a single attack.
Napoleon once said "Never interrupt your enemy when he is making a mistake." The AI in this game will assess its priorities and possibly choose a new goal several times per second. The AI may choose to attack in place, run and attack, defend in place, pick up a weapon, or pick up and immediately throw a weapon. Fighting the AI in later stages is a matter of manipulating it into a mistake, such as throwing a trash can at itself, and finding the earliest frame to start a new action without interrupting the AI.

Possible Improvements

I can't think of any obvious improvements to this run, if buying items weren't so slow there would be far more routes to test. This run was recorded in FCEUX 2.2.2 because I'm not familiar with Bizhawk, but I'll use Bizhawk next time for its broader suite of tools. A better understanding of lag and luck in this game could lead to a variety of minor improvements.

Detailed Breakdown

Power on - Roxy Start

75 frames saved in this segment from lag reduction. I chose single player mode for this run, which has the primary advantage of reducing lag significantly in all areas. Ryan is faster than Alex because Roxy has a shorter monologue when she speaks to him, and because he tends to start each area closer to the exit.

Roxy

438 frames saved from the route change (shorter cutscene) and lag reduction.

Roxy end - Rocko Start

111 frames saved from lag reduction and better luck manipulation.

Rocko

48 frames saved from a "faster" fight. Like most fights in this run, this fight would be slower than the last run without lag, but W.S.L. Warehouse is one of the laggiest areas in the game. I managed to manipulate the first set of enemies to a position where they could be fought through the wall, and their coins disappear just in time to spawn some new enemies directly in front of Ryan.

Rocko end - Blade start

31 frames saved in this short area from lag reduction.

Blade

28 frames saved from this fight.

Blade end - Turk start

163 frames saved in this long segment from lag reduction. I was concerned that the Warehouse would be slower because of the inability to glitch through the wall in single-player mode, but it turned out to be faster without all the extra lag from a second player.

Turk

79 frames saved in this fight. I stay on the ground to attack Turk since his health, 78, is a multiple of the 13 damage dealt by a running chain attack.

Mojo

87 frames saved in this fight.

Mojo end - Thor start

100 frames saved from lag reduction here. This mall is the only place to buy shoes, which provide a one-off increases to running speed but take several seconds to acquire.

Thor

40 frames lost in this fight. Reaching Thor in single-player mode simply can't be as fast as the "Yoshi suicide" that launches one character across the pit to Thor.

Thor end - Ivan start

140 frames saved from lag reduction and the route change of only needing to pick up one trash can.

Ivan

135 frames saved from the fight. Ivan and Simon are tied for highest throwing power in the game. Since this game is technically an RPG though speedrunners never bother to level up, it's much faster to let Ivan attack himself repeatedly with that garbage can. After he throws the garbage can once, it will always deal 33 damage and knock him down.

Otis

48 frames saved from this fight. Otis is an unusual fight since it takes so longer to run to the next area after defeating him. It's hypothetically possible to lead him closer to the exit before fighting without losing time, but trapping bosses against the wall is so effective that I use that strategy here.

Otis end - Dragon Twins start

84 frames saved from the route change. Alex starts out lower on the screen and takes a longer time to climb the staircase.

Dragon Twins

456 frames saved in this fight. The Dragon Twins are by far the laggiest fight in this game, and at this point the player character deals so little damage that it's better to attack the Dragon Twins with their own stats. After Andy throws the trash can at Randy, it deals 23 damage per hit, and I repeatedly kick the trash can into one twin and manipulate the other twin's AI to running into more damage. When the trash can stops moving, it deals just as much damage as if it has just been kicked.

Simon

263 frames saved from this fight. The last input is at 19182, but the final boss is defeated at frame 19195. I throw the trash can at Simon once, since otherwise he'll stand around to deliver a speech, and then let him bounce my weapon off the wall into his own head. Now that the trash can is set to deal 22 damage per hit, I repeatedly kick it into Simon or make him walk into it until he dies.
The fastest route to kick the can for the final blow puts Ryan in a position where he will take damage after the input ends. Strangely enough, the first damage taken in this run happens 1 second after input is over and the final boss is defeated.

feos: Accepting as an any% branch. The other run should be relabeled to "2 players" then.
Spikestuff: Heck Yea! 1 player runs are in town. Publishing.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15629
Location: 127.0.0.1
This topic is for the purpose of discussing #4216: Chamale's NES River City Ransom in 05:19.16
Spikestuff
They/Them
Editor, Publisher, Expert player (2656)
Joined: 10/12/2011
Posts: 6449
Location: The land down under.
^added YouTube module to the submission description^ something went stupid with the forums
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Cooljay
He/Him
Active player (397)
Joined: 5/1/2012
Posts: 468
Location: Canada
Awesome TAS. I liked the hijinks of making Simon "trip" over the garbage can constantly,the amusing fights, and how fast this was. Yes vote.
Editor
Joined: 11/3/2013
Posts: 506
Very nice, easy yes vote. Voting for this not to obsolete the two-player run but rather to create separate branches.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
thatguy wrote:
Voting for this not to obsolete the two-player run but rather to create separate branches.
Even without watching the last 2P run, I agree that it shouldn't be obsoleted. It's a common tradition now and then, that good games provide enough fun for both player modes.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
This is probably the first time I've actually seen a 1-player run ever since Sleepz's TAS... I never played the game 1P myself. I forgot Roxy's message was so different. Is her message very different using Ryan versus using Alex? (I thought Cyndi was Alex's girlfriend, for instance.) For that matter, why use Ryan instead of Alex? The fights are spiffy, and it's amazing how fast they are. The Ivan fight got a little boring but it was short. The trashcan exploit was awesome against the twins though. Yes vote for a separate branch.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Spikestuff
They/Them
Editor, Publisher, Expert player (2656)
Joined: 10/12/2011
Posts: 6449
Location: The land down under.
feos wrote:
thatguy wrote:
Voting for this not to obsolete the two-player run but rather to create separate branches.
Even without watching the last 2P run, I agree that it shouldn't be obsoleted. It's a common tradition now and then, that good games provide enough fun for both player modes.
Just on par, with examples:
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Thanks for the encode, Spikestuff.
mklip2001 wrote:
This is probably the first time I've actually seen a 1-player run ever since Sleepz's TAS... I never played the game 1P myself. I forgot Roxy's message was so different. Is her message very different using Ryan versus using Alex? (I thought Cyndi was Alex's girlfriend, for instance.) For that matter, why use Ryan instead of Alex?
Roxy's message when using Alex is the same as the message in the two-player run, so it's about 7 seconds slower. Even without this factor, Ryan is a couple seconds faster than Alex because he tends to start each area closer to the door to the next area.
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Chamale: I was asking whether Ryan's solo message is different from Alex's solo message.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
mklip2001 wrote:
Chamale: I was asking whether Ryan's solo message is different from Alex's solo message.
Ryan's solo message is different. When using Alex solo, the message is the same as the message in the two-player run. I should have been more clear about that in the submission text.
Post subject: "So you're RYAN ... The twins took RYAN's girl."
JXQ
Experienced player (761)
Joined: 5/6/2005
Posts: 3132
The lack of lag compared to the 2-player run makes this look really polished in comparison. The boss fights were fun to watch, despite some repetitive moves, since they were over quickly, and kicking trash cans into people is funny.
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
Joined: 6/4/2009
Posts: 893
that's how you play "kick the can" yes vote
Joined: 7/2/2007
Posts: 3960
That was impressively quick and clean. Like JXQ says, this is much less "sloppy" looking than the two-player run simply because of all the lag removal (even though I know the 2P run isn't sloppy at all, the lag makes it feel slow). Nice work!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 5/26/2008
Posts: 11
I noticed a possible improvement. After entering the River City H.S., you attack two Plagues, one with a stick and the other unarmed. You kill the unarmed one with 2 hits, but use 3 to kill the one with the stick. Is it possible to kill both with only 2 hits? It's also nice to have a different message from Roxy instead of the usual one from Alex or Alex + Ryan. Otherwise, the movie is extremely smooth and well played. Nice job!
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
jspecakord wrote:
I noticed a possible improvement. After entering the River City H.S., you attack two Plagues, one with a stick and the other unarmed. You kill the unarmed one with 2 hits, but use 3 to kill the one with the stick. Is it possible to kill both with only 2 hits?
Nope, the stick means he takes an extra hit. I spent a while working on that segment but unfortunately the best luck-manipulation still took too long to save any time.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15629
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [2553] NES River City Ransom "1 player" by Chamale in 05:19.16