TASVideos

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

Submission #3984: atro city's Genesis Streets of Rage 3 in 38:12.55

Console: Sega Genesis
Game name: Streets of Rage 3
Game version: USA
ROM filename: Streets of Rage 3 (U) [!].smd
Branch:
Emulator: Gens 11b
Movie length: 38:12.55
FrameCount: 137376
Re-record count: 23424
Author's real name:
Author's nickname: atro city
Submitter: atro city
Submitted at: 2013-06-13 21:57:32
Text last edited at: 2013-06-19 15:35:37
Text last edited by: feos
Download: Download (22185 bytes)
Status: published
Click to view the actual publication
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:
http://www.youtube.com/watch?v=IcuV2JdaBYY


(Link to video)

Game objectives

  • Emulator used: Gens 11b
  • Uses 2 players
  • Plays on hardest difficulty
  • Takes damage to save time
  • Contains speed/entertainment tradeoffs

Comments

Started this run back in 2005, and after 8 years in limbo, it's finally done. This run uses Zan/Blaze and plays on Hard difficulty on the US version of Streets of Rage 3 (which is quite a bit harder than its Japanese counterpart, Bare Knuckle III). This is 8 minutes faster than my previous 1 player run.

Technically, damage is taken to save time (only a few times, I cancel Blaze's elbow by hitting her with Zan), but due to a bug where you gain extra life beyond your lifebar after exiting a scene, you'll never actually see that damage on the lifebars.

There are many speed/entertainment tradeoffs, especially during long boss battles that would otherwise be very boring (the Yamatos in particular).

Multi-hit bug

The major bug used in this run is the multi-hit bug. This occurs when both players are hitting two or more of the same enemies at the same time, causing hits to stack quickly. Unlike the "Handshake of Death" bug in Streets of Rage 2, this one does not freeze the players, and is slightly less lethal. I only found out about the bug when I reached the Stage 2 nightclub, so it isn't used until then. Redoing the run from that point would have made it more monotonous, as the bug gets used quite a bit from that point onward.

AI manipulation

AI manipulation was the hardest part of this TAS. Enemies' behavior is determined by one (or both) player's position and actions, and not having the ability to dissect their AI routines means a lot of frustrating trial-and-error, especially with the stubborn/annoying enemy types (Goldies, Zacks, Tigers and robots). Because of this, you'll see some unusual solutions to getting the enemies to do what I want, especially in Stage 7.

Robots

These enemies (the jumping robots, not the Robot X clones) have many unique properties. They have a much longer hit stun than other enemies, making the multi-hit bug useless against them. They also have interesting interactions with grabbing flurry attacks (Zan lets go after two flurry hits, and Blaze can repeatedly knee if she has multiple robots in one spot).

Some robots can self-destruct, but only under certain conditions. Here's what I've determined about this behavior:

  • White robots can never self-destruct
  • All other robots can self-destruct, but only when their current lifebar (ignoring the 1x, 2x, etc. on the side) is very low.

Only 4 robots in the game are non-white and have more than 1 lifebar, unfortunately. Otherwise, having robots with less than 1 lifebar self-destruct loses time versus just killing them normally.

Known improvements

Axel/Blaze would probably be faster due to Axel having a more damaging jumping downward attack. Bestiajerules' 1 player run shows a bug where on Robot Y's last hit caused him to skip his death animation, saving a few seconds. Try as I may, I couldn't replicate this bug.

Suggested screenshots: Frame 45715, 83332, 118673


feos: Accepting for Moons and publishing...

Similar submissions (by title and categories where applicable):