Submission #5163: V's Arcade Shinobi in 09:27.38

(Link to video)
Arcade
baseline
FBA-rr 0.0.7a
34043
60
1199
Unknown
V
shinobi.zip
Submitted by V on 7/6/2016 8:43:21 AM
Submission Comments
Simple, any%, fastest-possible TAS for the arcade release of Shinobi in 9:28. No glitches exploited or codes used.

Game objectives

  • Emulator used: FBA-RR v007 (from tasvideos.org)
  • ROM: shinobi.zip (system 16A, set 6, unprotected)
  • fastest-possible, any%

Premise

This game is a 1987 sidescroller by Sega. There are 5 missions where each mission has 3 stages plus a boss fight. In each stage, the player needs to save all the hostages (ninjas in pink) in order to finish and move on. Each credit gives the player 3 lives. After each boss fight, there's a bonus stage which gives the player a (low) chance of earning an extra life.
The stages often have multiple platforms (eg: upper and lower) which the player can jump between. Only enemies on the same platform can attack/be attacked.
The player has three weapons:
  • shirukens/bullets: shoots straight left/right. The player always starts the stage with shirukens but is upgraded to a gun/bullets after saving a certain number of hostages in the stage (indicated by a "POW"). Bullets deliver more damage, as well as a bit of splash damage, and lasts until the end of the stage
  • close-range/melee: delivers more damage than shirukens and can take out multiple enemies per strike
  • special: a clear-the-screen power which can only be used once per stage and delivers about 4-5 shirukens worth of damage to all enemies in the screen
The player can actually bounce off most enemies provided there's no contact with the enemies' weapons (bullets, knives, some enemies themselves).
Can be played in single or two-player mode but the game simply alternates between players in two-player mode. This TAS was done as a single-player run. The game appears to allow unlimited continues up until mission 5. Continues are no longer allowed after that.

Comments

Regarding all the jumping, shooting/attacking while in the air allows you to keep moving forward during the attack's cool-down. Otherwise, attacking while on the ground forces you to stand still during the cool-down.
The bonus stages are shortened as much as possible by just letting the enemies jump at you. The bonus stages are deterministic so it's always the same guy who jumps at you first. As long as you don't kill that particular guy, you can kill any of the others while still allowing the bonus stage to finish as quickly as possible.
This game used to kick my ass at the corner-stores and laundromats so this run was some kind of vengeance for me. Originally, I was looking for a TAS of this game to watch but surprisingly, there are very few runs of the arcade version (that I can find) so I decided to give it a shot myself. This is my first attempt at TAS so I appreciate any patience and/or feedback that can be spared.

Samsara: File replaced with a version trimming out all the blank input (plus the name entry screen). Also, judging.
Samsara: I took a close look at the file and I'm unfortunately seeing a number of optimization issues. The two that stand out the most to me are the title screen and the boss of the first area. The title screen can be cleared 6 frames earlier, and that first boss isn't being hit as soon as possible once his invulnerability runs out. The boss can also be hit for the first time much earlier: Overall, it seems like more than a second can be gained on the boss alone, with another second coming from the prior screens.
For some general advice: Always try to see if things can be done earlier, even if you're on a black screen the game could still be accepting input. If you're clearing text boxes or windows or menu screens, you should always keep pushing it back until you're absolutely sure you find the first frame. Don't be afraid to try out as many things as possible: You have a good handle on optimization already, but there are some iffy moments and smaller things that you need to pay attention to. One of the smaller things is that when you're jumping between upper and lower areas, you can jump into enemies to bounce off of them and cancel part of the jumping animation, allowing you to move sooner. On a similar note, you should minimize the distance of those jumps as much as possible since you can't move left or right while you're doing them. Jumping down onto crates or higher platforms (or jumping up from them) will let you move some frames sooner than you otherwise would have.
When fighting bosses, try a variety of different strategies and make sure you're always hitting them on the earliest possible frame. That first boss can be hit once every 31 frames, so you should always be hitting it that often. If one strategy doesn't allow for this, try a different approach and see if it works. One I found is that if you stand a certain distance away, you can throw a shuriken on the way up, then throw one on the way back down, and if you time it right and keep adjusting your position accordingly, you should be able to get each one hitting every 31 frames.
I've uploaded a userfile that contains the title screen optimization and some work on the first two areas, stopping just before the boss, and as for the boss, I made a quick GfyCat [dead link removed] of a potential strategy. I highly recommend you study these and work on an improved run.
I don't mean to discourage you with this at all. I think you already have a good grasp on TASing, you just need to slow down, take your time and keep trying things to make absolutely sure you're optimizing everything to the highest extent. Take a second pass through the game and make sure you're improving as many things as you possibly can, both over this submission and my own improvements (I'm pretty sure both screens in my userfile can be improved by a few frames, so definitely take a look at those), and I can almost guarantee that the improvement will be accepted.
I'm looking forward to your next submission. Good luck!
Last Edited by adelikat on 10/18/2023 12:48 AM
Page History Latest diff List referrers