<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://shmups.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Olifante</id>
	<title>Shmups Wiki -- The Digital Library of Shooting Games - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://shmups.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Olifante"/>
	<link rel="alternate" type="text/html" href="https://shmups.wiki/library/Special:Contributions/Olifante"/>
	<updated>2026-04-17T03:31:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://shmups.wiki/index.php?title=Armed_Police_Batrider&amp;diff=16092</id>
		<title>Armed Police Batrider</title>
		<link rel="alternate" type="text/html" href="https://shmups.wiki/index.php?title=Armed_Police_Batrider&amp;diff=16092"/>
		<updated>2022-07-04T13:27:45Z</updated>

		<summary type="html">&lt;p&gt;Olifante: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo batrider.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
{{GameInfobox&lt;br /&gt;
| bordercolor = black&lt;br /&gt;
| title = Armed Police Batrider&lt;br /&gt;
| background = #f8f8f8&lt;br /&gt;
| image = APBatrider Poster.jpg&lt;br /&gt;
| width = 324px;&lt;br /&gt;
| imagecaption = Poster for the game&lt;br /&gt;
| imagescalepx = 220px&lt;br /&gt;
| developer = [[Raizing]]&lt;br /&gt;
| music = Manabu Namiki&amp;lt;br/&amp;gt;Kenichi Koyano&amp;lt;br/&amp;gt;Hitoshi Sakimoto&lt;br /&gt;
| program = Shinobu Yagawa&lt;br /&gt;
| art = Kazuyuki Nakashima&amp;lt;br/&amp;gt;Hiroshi Yokoyama&amp;lt;br/&amp;gt;Masayuki Taguchi&amp;lt;br/&amp;gt;Masaharu Tokutake&amp;lt;br/&amp;gt;Yuki Yonei&lt;br /&gt;
| releasedate = 1998&lt;br /&gt;
| nextgame =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Gameplay Overview ==&lt;br /&gt;
The '''gameplay overview''' section starts out with the '''controls''' of the game, including all of the buttons used and what they're used for. ''It's recommended to keep the control layout simple and easy to understand.'' Feel free to note the directions that the player can move as well, if you wish or if it's notable (horizontal only, 4 way, 8 way, analog, etc). Advanced and strategic ways of manipulating the controls can be included in a following Strategy section, or wherever that information might be the most relevant.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
----&lt;br /&gt;
* '''A:''' Shoot&lt;br /&gt;
* '''A (After charging):''' Without pressing the button, you charge an &amp;quot;aura&amp;quot;, which can kill enemies at close range, after that pressing the button will release a powerful attack.&lt;br /&gt;
* '''B:''' Bomb&lt;br /&gt;
* '''C:''' Reconfigure your option (only works with the Battle Garegga characters)&lt;br /&gt;
&lt;br /&gt;
==== Controls In Game ====&lt;br /&gt;
* '''Hold Start + Tap B:''' Shows score calculations. A &amp;quot;?&amp;quot; will appear to the left of the level name. To exit, repeat command.&lt;br /&gt;
* '''Hold Start + Tap A/C:''' Changes autofire bullet speed. Tap A to increase or tap C to decrease. The number left of the level displays bullet speeds of 7, 8, 10, 12, 15, 20 (default), 30.&lt;br /&gt;
* '''Hold Start + Tap UP:''' For Revision B which does not have a C button. Also lowers autofire rate.&lt;br /&gt;
&lt;br /&gt;
==== Bullet Color Commands ====&lt;br /&gt;
Input the command and continue tapping the directional button to loop through color choices during game play.&lt;br /&gt;
Color Choices in Order: [Yellow loops back to Blue]&lt;br /&gt;
# Blue (Default)&lt;br /&gt;
# Green&lt;br /&gt;
# Purple&lt;br /&gt;
# Pink&lt;br /&gt;
# Red&lt;br /&gt;
# Orange&lt;br /&gt;
# Yellow&lt;br /&gt;
* '''Hold Start + Tap Right:''' Changes the NML (most common shot type such as lasers) color. Continue tapping to choose between 6 colors.&lt;br /&gt;
* '''Hold Start + Tap Down:''' Changes the MSL (destructable) color.&lt;br /&gt;
* '''Hold Start + Tap Left:''' Changes the BAL (ball shots) color.&lt;br /&gt;
&lt;br /&gt;
==== Shooting Frequency ====&lt;br /&gt;
To change your autofire rate, tap the A button in the frequency you want to set auto-fire to.&lt;br /&gt;
&lt;br /&gt;
==== Options when Invincible DIP switch is set ====&lt;br /&gt;
* '''Hold Start:''' During the game, the message &amp;quot;SLOW !?&amp;quot; will appear on screen and thus the game will slow down.&lt;br /&gt;
* '''Press Start:''' During the game will pause the game and display &amp;quot;PAUSE !&amp;quot;&lt;br /&gt;
* '''Press 1P + 2P Start:''' Will end the game with your current character(s) and show the credits. Skip by Start.&lt;br /&gt;
&lt;br /&gt;
==== Character Specific Commands ====&lt;br /&gt;
* '''Control Tag-T's razorblade bomb:''' Press B then hold a direction to throw them, then tap B.&lt;br /&gt;
* '''Control Silver Sword's Napalm:''' Hold a direction then tap B. The Napalm will fly in the ''opposite'' direction that you held.&lt;br /&gt;
&lt;br /&gt;
==== Garegga Formation Commands (with at least one option) ====&lt;br /&gt;
Handy Notes:&lt;br /&gt;
&lt;br /&gt;
You can change formation while shooting and charging.&lt;br /&gt;
&lt;br /&gt;
To change formation while charging, input the command and push C instead of A.&lt;br /&gt;
&lt;br /&gt;
If you want to perform a charged shot and change formation at the same time, input the command and push A while charged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[Notation with numbers is numpad notation]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Formation !! Directional Input !! Numpad Not.&lt;br /&gt;
|-&lt;br /&gt;
| '''V-formation''' || Right, Down, Down-Right + A || 623+A&lt;br /&gt;
|-&lt;br /&gt;
| '''Front-formation''' || Up, Down, Up + A || 828+A&lt;br /&gt;
|-&lt;br /&gt;
| '''Back-formation''' || Down, Up, Down + A|| 282+A&lt;br /&gt;
|-&lt;br /&gt;
| '''Control-formation''' || Left, Down, Down-Left + A|| 421+A&lt;br /&gt;
|-&lt;br /&gt;
| '''Circle-formation''' || Left, Down-Left, Down, Down-Right, Right + A|| 41236+A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unlockable Secrets ===&lt;br /&gt;
----&lt;br /&gt;
The following codes are to be done at the title screen after inserting a coin.&lt;br /&gt;
There are also dip switch settings to unlock these as well (if playing on emulator).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| Up Up, Down Down, Left Right, Left Right, A B, Start || Unlocks the guest characters&lt;br /&gt;
|-&lt;br /&gt;
| Up Up, Down Down, Left Right, Left Right, B A, Start || Unlocks single ship team&lt;br /&gt;
|-&lt;br /&gt;
| Up Down, Up Down, Left Right, Left Right, A B, Start || Unlocks Boss Rush mode&lt;br /&gt;
|-&lt;br /&gt;
| Press A + B simultaneously while highlighting mode (normal, adv, etc) || Unlocks Stage Edit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After unlocking Boss Rush mode, highlight Boss Mode and either tap Left/Right to play a special version of a stage, once on normal then on advanced.  &lt;br /&gt;
&lt;br /&gt;
Here are the dip switch settings if you're using MAME (v 0.231 pictured here): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ MAME dip switch settings&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Dip switch settings.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Characters / Ships / Styles ===&lt;br /&gt;
----&lt;br /&gt;
==== Selection Options ====&lt;br /&gt;
* '''A:''' Strong '''Shot''', weak ''option''&lt;br /&gt;
* '''B:''' Strong '''Option''', weak ''shot''&lt;br /&gt;
* '''C or A+B:''' Strong '''Shot &amp;amp; Option''', slower ''speed''&lt;br /&gt;
* '''Start:''' Faster '''Speed''', weak ''option &amp;amp; shot''&lt;br /&gt;
&lt;br /&gt;
===Shot Type===&lt;br /&gt;
Shot type concerns bullet trajectory/guidance.&lt;br /&gt;
Front - shot is front-facing/vertically forward.&amp;lt;br&amp;gt;&lt;br /&gt;
Wide - shot has a wide arc trajectory.&amp;lt;br&amp;gt;&lt;br /&gt;
Search- shot is homing.&amp;lt;br&amp;gt;&lt;br /&gt;
Garegga - shot is respective to Garegga counterpart.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Power Type====&lt;br /&gt;
Power type concerns bullet properties.&lt;br /&gt;
Vulcan - shot that has no special properties.&amp;lt;br&amp;gt;&lt;br /&gt;
Beam - shot that shoots a beam.&amp;lt;br&amp;gt;&lt;br /&gt;
Laser - shot that has penetrative properties.&amp;lt;br&amp;gt;&lt;br /&gt;
Napalm - shot that has explosive properties.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Teams ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Police Team&lt;br /&gt;
|-&lt;br /&gt;
! D.D !! Shorty !! Jyuji&lt;br /&gt;
|-&lt;br /&gt;
| [[File:1-DD.png|thumb|Shot type: Wide&amp;lt;br&amp;gt;Power type: Vulcan]] || [[File:2-Shorty.png|thumb|Shot type: Search&amp;lt;br&amp;gt;Power type: Napalm]] || [[File:3-Jyuji.png|thumb|Shot type: Front&amp;lt;br&amp;gt;Power type: Beam]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Psychic Team&lt;br /&gt;
|-&lt;br /&gt;
! Maria !! Golden !! Strawman&lt;br /&gt;
|-&lt;br /&gt;
| [[File:4-Maria.png|thumb|Shot type: Wide&amp;lt;br&amp;gt;Power type: Beam]] || [[File:5-Golden.png|thumb|Shot Type: Front&amp;lt;br&amp;gt;Power Type: Vulcan]] || [[File:6-Strawman.png|thumb|Shot type: Search&amp;lt;br&amp;gt;Power type: Beam]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Criminal Team&lt;br /&gt;
|-&lt;br /&gt;
! Birthday !! Tag-T !! Adam&lt;br /&gt;
|-&lt;br /&gt;
| [[File:7-Birthday.png|thumb|Shot type: Front&amp;lt;br&amp;gt;Power type: Napalm]] || [[File:8-Tag-T.png|thumb|Shot type: search&amp;lt;br&amp;gt;Power type: Laser]] || [[File:9-Adam.png|thumb|Shot type: Wide&amp;lt;br&amp;gt;Power type: Laser]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Battle Garegga Team&lt;br /&gt;
|-&lt;br /&gt;
! Silver Sword !! Grasshopper !! Flying Baron !! Wild Snail&lt;br /&gt;
|-&lt;br /&gt;
| [[File:10-Silver Sword.png|thumb|Shot type: Garegga&amp;lt;br&amp;gt;Power type: Vulcan]] || [[File:11-Grasshopper.png|thumb|Shot type: Garegga&amp;lt;br&amp;gt;Power type: Laser]] || [[File:12-Flying Baron.png|thumb|Shot type: Garegga&amp;lt;br&amp;gt;Power type: Vulcan]] || [[File:13-Wild Snail.png|thumb|Shot type: Garegga&amp;lt;br&amp;gt;Power type: Laser]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Mahou Daisakusen Team&lt;br /&gt;
|-&lt;br /&gt;
! Gain !! Chitta !! Miyamoto !! Bornnam !! Car-pet&lt;br /&gt;
|-&lt;br /&gt;
| [[File:14-Gain.png|thumb|Shot type: Front&amp;lt;br&amp;gt;Power type: Laser]] || [[File:15-Chitta.png|thumb|Shot type: Wide&amp;lt;br&amp;gt;Power type:Vulcan]] || [[File:16-Miyamoto.png|thumb|Shot type: Wide&amp;lt;br&amp;gt;Power type: Napalm]] || [[File:17-Bornnam.png|thumb|Shot type: Search&amp;lt;br&amp;gt;Power type:Vulcan]] || [[File:18-Car-pet.png|thumb|Shot type: Front&amp;lt;br&amp;gt;Power type: Napalm]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Weapons ===&lt;br /&gt;
----&lt;br /&gt;
This section describes the weapons that you use in the game and elaborates on them further. Stuff like standard shots, focus shots, bombs, weapon pickups that differ in functionality, options, etc. ''This can be omitted if not relevant to the game in question.''&lt;br /&gt;
&lt;br /&gt;
=== Items ===&lt;br /&gt;
----&lt;br /&gt;
==== Secret Extends ====&lt;br /&gt;
In addition to score extends (per 1.5 million), there are 3 ways to get more:  &lt;br /&gt;
# On Highway, the large blue hovercraft must be destroyed when it stops in the tunnel. It will be right above the yellow turret craft.  &lt;br /&gt;
# Miss 3 max/large bomb items.  &lt;br /&gt;
# Miss 3 extend items. This special extend will give top your extends up without the rank gain.&lt;br /&gt;
&lt;br /&gt;
=== Rank ===&lt;br /&gt;
----&lt;br /&gt;
'''Basics'''&lt;br /&gt;
&lt;br /&gt;
From a technical point of view, rank is value which lowers when playing. The lower the rank value gets to zero, the more difficult the game becomes.&amp;lt;br&amp;gt;&lt;br /&gt;
The rank memory address is &amp;lt;code&amp;gt;0x20F9D0&amp;lt;/code&amp;gt;. Depending on the mode (normal, advanced, boss), there is a &amp;quot;starting rank value&amp;quot; at address &amp;lt;code&amp;gt;0x20F9D8&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Normal &amp;quot;starting rank&amp;quot; is valued at &amp;lt;code&amp;gt;16252928&amp;lt;/code&amp;gt;, Advanced at &amp;lt;code&amp;gt;14221312&amp;lt;/code&amp;gt;, and Boss at &amp;lt;code&amp;gt;13205504&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
To calculate your current rank, we use this simple formula: &amp;lt;code&amp;gt;(100 - (current_rank / starting_rank) * 100)&amp;lt;/code&amp;gt;. This will give us a human readable value (e.g. 12%).&amp;lt;br&amp;gt;&lt;br /&gt;
To have this percentage make sense, we always compare the &amp;lt;code&amp;gt;current_rank&amp;lt;/code&amp;gt; against Normal &amp;quot;starting rank&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
This is the rank percentage at the Character Select screen (remember, rank starts counting here). So let's take the Advanced mode, which starts at 12.5%, that&amp;lt;br&amp;gt;&lt;br /&gt;
means it's 12.5% more rank compared to Normal start.&lt;br /&gt;
&lt;br /&gt;
'''Starting Rank Warning'''&lt;br /&gt;
&lt;br /&gt;
When Batrider is booted up, it will start with an incredibly high rank value (normal @ 25%, advanced @ 34%, etc) so it is important that you set it to 0% using this method:&lt;br /&gt;
# Enter Service Mode (either through a test menu on PCB or by dip-switch in emulator).&lt;br /&gt;
# Leave the cursor over &amp;quot;GAME MODE&amp;quot; and '''ONLY''' press start to initialize the game.&lt;br /&gt;
From then on, Normal should be at minimum rank, with the other modes starting at their designated minimum rank percents.&lt;br /&gt;
Rank starts calculating on the character select screen only (the screen before it immediately starts stage 1).&lt;br /&gt;
&lt;br /&gt;
'''Extra Credits Warning'''&lt;br /&gt;
&lt;br /&gt;
Having extra credits/coins inserted means more rank during game play (rank = frame rank + # of credits). Make sure to do your attempts/practice with only a '''single credit'''.&lt;br /&gt;
&lt;br /&gt;
'''Mode Rank Percentages'''&lt;br /&gt;
&lt;br /&gt;
Normal starts at '''25%''' (with rank reset it begins at 0%)&amp;lt;br&amp;gt;&lt;br /&gt;
Advanced starts at '''34%''' (12.5%)&amp;lt;br&amp;gt;&lt;br /&gt;
Boss Rush starts at '''39%''' (18.75%)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Extends Rank Increase'''&lt;br /&gt;
&lt;br /&gt;
If you are at full extends, getting another extend increases rank by about 12.9%&amp;lt;br&amp;gt;&lt;br /&gt;
At 2 extends, getting another adds 6%&amp;lt;br&amp;gt;&lt;br /&gt;
Getting an extend on the last life raises rank a little over 3%&lt;br /&gt;
&lt;br /&gt;
'''Rank System - More Information'''&lt;br /&gt;
&lt;br /&gt;
Consult this post at https://shmups.system11.org/viewtopic.php?p=489830&amp;amp;sid=94e548f7fa3f2f36e57812afab0e8a29#p489830&lt;br /&gt;
&lt;br /&gt;
=== Scoring ===&lt;br /&gt;
----&lt;br /&gt;
This section should cover a general breakdown of the scoring system of the game. Feel free to put the meat and potatoes here. A great example of a scoring section is the ''[[DoDonPachi]]'' page.&lt;br /&gt;
&lt;br /&gt;
== Strategy ==&lt;br /&gt;
=== Hidden Boss Requirements ===  &lt;br /&gt;
Here are the requirements for the hidden bosses in a scoring order.  &lt;br /&gt;
Tips to achieve these will also be added.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Violent City - Bashinet MkII'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !! !! &lt;br /&gt;
|-&lt;br /&gt;
| • Destroy the car shop building FIRST then the billboards afterwards. This will make birds fly out of the rubble.&amp;lt;br&amp;gt;• Your team must have one surviving Mahou character.&amp;lt;br&amp;gt;• Will trigger if playing with a single Mahou character team. || [[File:Batrider - Car Dealership.png|frame|left|Destroy the building first THEN the billboard in front]]  || [[File:Batrider_-_Car_Dealership_pt2.png|frame|Birds will fly out from the rubble]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Sky-High - Bashinet'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !! !! &lt;br /&gt;
|-&lt;br /&gt;
| • Destroy the big blue bombers. You will get an audio cue if they're all destroyed properly: &amp;quot;COOL!&amp;quot;&amp;lt;br&amp;gt;• Your team must have one surviving Mahou character.&amp;lt;br&amp;gt;• Will trigger if playing with a single Mahou character team.|| [[File:Big Blue Bombers.png|frame|left|Destroy these blue planes to trigger Bashinet. Keep in mind their wings are separate parts from the core.]] || [[File:Batrider-skyhigh-bashinet.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Sewage System - Black Heart'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !! !! &lt;br /&gt;
|-&lt;br /&gt;
| • Destroy all of the flipping turrets. You will get an audio cue if they're all destroyed properly.&amp;lt;br&amp;gt;• Your team must have one surviving Garegga character.&amp;lt;br&amp;gt;• Will trigger if playing with a single Garegga character team.|| [[File:Batrider-sewer-lasers.png|frame|On Normal difficulty, these will be bullet balls but the requirement is still the same]] || &lt;br /&gt;
[[File:Batrider-sewage-blackheart.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Airport - Gob-Robo'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !! !! &lt;br /&gt;
|-&lt;br /&gt;
| • Destroy the side panels of the cannon turret. You will also get an audio cue if they're all destroyed properly.&amp;lt;br&amp;gt;• Requires one surviving Mahou character.&amp;lt;br&amp;gt;• Will trigger on single Mahou character team.&amp;lt;br&amp;gt;• After defeating Gob, you will fight Bashinet MkII if you triggered the requirements (see above).|| [[File:Batrider-airport-cannon.png|frame|You must destroy both sides before the main cannon to trigger the requirements]] || [[File:Batrider-airport-gobrobo.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Highway- Tsumujimaru/Hayatemaru'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !! !! &lt;br /&gt;
|-&lt;br /&gt;
| • For Tsumuji, your team must have 3 different &amp;quot;shot&amp;quot; types (front, wide, etc).&amp;lt;br&amp;gt;• Tsumuji will appear before the blue hovercraft in the beginning. &amp;lt;br&amp;gt;• For Hayate, your team must have different &amp;quot;power&amp;quot; types (vulcan, beam, laser, etc).&amp;lt;br&amp;gt;• Hayate will appear before the stage boss(es).&amp;lt;br&amp;gt;• Requires one surviving Mahou character.&amp;lt;br&amp;gt;• Will NOT trigger on single Mahou character team.|| [[File:Batrider-tsumuji.png|thumb]] || [[File:Batrider-hayate.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Highway- Sobut/Green, Blunt/Yellow, Envy/Red'''&lt;br /&gt;
|-&lt;br /&gt;
! Color to Stage !! How boss(es) are determined !! Requirements for multiple&lt;br /&gt;
|-&lt;br /&gt;
| • Sobut/Green corresponds to Sewer System.&amp;lt;br&amp;gt;• Blunt/Yellow corresponds to Sky-High.&amp;lt;br&amp;gt;• Envy/Red corresponds to Airport.|| • What you pick for stage 2,3 &amp;amp; 4 determines what boss(es) you can get at the end of the Highway stage. || To trigger more than one boss, these are the requirements:&amp;lt;br&amp;gt;• Bosses for stage 2/3 - Get a shot special level up.&amp;lt;br&amp;gt;• Bosses for stage2/4 - Get an option special level up.&amp;lt;br&amp;gt;• Bosses for stages 2/3/4 - Get both shot and option special level ups.&amp;lt;br&amp;gt;• Requires a surviving Batrider character for each boss.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''After Highway Stage- Black Heart MkII'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !!&lt;br /&gt;
|-&lt;br /&gt;
| • Your team must have at least 2 different ship types (selected through pressing the A, B, C or start button at ship selection, and indicated by the color of the ship).&amp;lt;br&amp;gt;• Requires one surviving Garegga character.&amp;lt;br&amp;gt;• Will NOT trigger on single Garegga character team.|| [[File:Batrider-blackheartmk2.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Zenobia City- Glow Squid'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !! !!&lt;br /&gt;
|-&lt;br /&gt;
| • Destroy the 4 circular turrets. There are two near the beginning and two near the end.&amp;lt;br&amp;gt;• Requires one surviving Garegga character.&amp;lt;br&amp;gt;• Battle occurs after Grubby (and Bashinet-R).&amp;lt;br&amp;gt;• This boss has two phases just like its Garegga counterpart. || [[File:Batrider-zenobia-circular-turrets.png|frame|To destroy these turrets, destroy the surround guns, then the bridge that connects both turrets. These turrets have an armored opening that, once up, will allow you to do damage to them.]] || [[File:Batrider-glowsquid.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ '''Zenobia City- Bashinet-R'''&lt;br /&gt;
|-&lt;br /&gt;
! Requirements !! !!&lt;br /&gt;
|-&lt;br /&gt;
| • Destroy these 3 missile turrets, with bombs, that pop out of the ground.&amp;lt;br&amp;gt;• Requires one surviving Mahou character. || [[File:Batrider-bashinetr-turret.png|thumb|Pictured is the first turret you will need to bomb. After this, the next one is beside a green tank and the other is right above the 2nd.]] || [[File:Batrider-bashientr.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Story ==&lt;br /&gt;
'''2019 AD'''&lt;br /&gt;
&lt;br /&gt;
Zenobia, a man-made island located 2 kilometers south of Manhattan Island.&lt;br /&gt;
&lt;br /&gt;
The island was built 15 years ago as a desperate measure by the government who were concerned about the increasing crime rate due to the high population count and concentration of man-made structures on the island. Gigantec Cybertron (GC), a fast-growing company at the time, built a large facility on the island. People who had given up on Manhattan Island moved to the island one after another.&lt;br /&gt;
This led to the &amp;quot;New New York&amp;quot; boom. However, as time went by, problems over the location and ownership of the island surfaced. Contrary to initial expectations, the crime rate began to increase.&lt;br /&gt;
&lt;br /&gt;
In addition, the expansion of the main body of the island was carried out in parallel with these problems. The island's main body was being enlarged one after another. It was only a matter of time before the island became a slum. A few years later, the island continued to grow in a distorted manner, with the GC building towering in the center of the island. The structures that have continued to proliferate and change into a bizarre appearance. The island has taken on a nightmarish aspect, with the towering GC building at its center, and a structure that has continued to grow and change into an odd shape.&lt;br /&gt;
&lt;br /&gt;
The island is infested with all kinds of crimes. It had become a lawless zone where thugs who have undergone cyborg surgery roam about. And the changes were not limited to the island. The &amp;quot;old&amp;quot; New York City was also experiencing a greater number of violent crimes than ever before.&lt;br /&gt;
&lt;br /&gt;
The government, fed up with the situation, began to take over the police force in exchange for the freedom of criminals captured in secret. The government decided to treat them as an organization outside the police force. Named &amp;quot;Zero Cops,&amp;quot; they were given the name of &amp;quot;cops who are not supposed to exist. They are deployed to crack down on violent crimes and illegal activities.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Zero Cops&amp;quot; are completely controlled by a tiny &amp;quot;chip&amp;quot; implanted in their temples and when they reach a certain level of contribution, they are free to go. However, if they fail to comply with the orders, they will be subjected to pain or a swift death.&lt;br /&gt;
&lt;br /&gt;
Their mission this time is to invade the island of Zenobia in teams of three. &lt;br /&gt;
The GC Corporation will take full control of the island and will be held responsible for cybernetic surgery experimentation and testing newly developed weapons on criminals.&lt;br /&gt;
&lt;br /&gt;
[https://www.8ing.co.jp/museum/prd/batrider/story.html Official 8ing Page of the Batrider Story]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Development History ==&lt;br /&gt;
If available, you can include information here about the hardware, the development of the game, and its general reception. ''Try to have as much information in this section cited as possible.''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Version Differences ==&lt;br /&gt;
* Include information here about differences in a game between various versions. This includes regional differences, patch updates/bugfixes, and the like.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* Cool facts and random tidbits go here!&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;div style='text-align: center;'&amp;gt;&lt;br /&gt;
''See [[(Template Page)/Gallery]] for our collection of images and scans for the game.''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Video References ==&lt;br /&gt;
&lt;br /&gt;
If the game already has an existing entry in the [[:Category:Video_Index|Video Index]], please link to the page here. If you want to link to smaller clips perhaps not included in the Index, you can also leave them here.&lt;br /&gt;
&lt;br /&gt;
[https://shmups.wiki/library/Armed_Police_Batrider/Video_Index Armed Police Batrider Video Index]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
=== Note about Training/Easy Mode ===&lt;br /&gt;
While the training/easy mode is only 3 stages and is a gentle introduction to the game, if your character grazes any bullets it will immediately set off the auto-bomb.&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Contributors ==&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
# [https://shmups.system11.org/viewtopic.php?p=489828 System11 Forum Thread]&lt;br /&gt;
# [https://www.8ing.co.jp/museum/prd/batrider/ Official 8ing page]&lt;br /&gt;
# [http://www.world-of-arcades.net/R8zing/Batrider/Batrider.htm World of Arcades]&lt;br /&gt;
# [[User:Dubs|Dubs]]&lt;br /&gt;
# Special thanks to Trap, Satis, Plasmo, Icarus, and Olifante for helping with MAME overlay with ranking percentages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* This template page was assembled by [[User:CHA-STG|CHA-STG]] and [[User:Plasmo|Plasmo]].&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Olifante</name></author>
		
	</entry>
	<entry>
		<id>https://shmups.wiki/index.php?title=Mushihimesama_Futari/Reverse_engineering_notes&amp;diff=4081</id>
		<title>Mushihimesama Futari/Reverse engineering notes</title>
		<link rel="alternate" type="text/html" href="https://shmups.wiki/index.php?title=Mushihimesama_Futari/Reverse_engineering_notes&amp;diff=4081"/>
		<updated>2020-08-17T11:10:59Z</updated>

		<summary type="html">&lt;p&gt;Olifante: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains notes gathered while reverse engineering the [https://github.com/mamedev/mame/blob/028b43b74446cae777967321587a83b0fffbb09a/src/mame/drivers/cv1k.cpp#L613 futari15] mame romset. Addresses will be different for other versions of the game.&lt;br /&gt;
&lt;br /&gt;
== Players ==&lt;br /&gt;
Most of the player1 data is stored in the range [0xc38aabc..0xc38ab73]. Setting 0xc38ab24 to 0x7fffffff makes the player invulnerable, which can be useful while debugging enemy patterns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enemy Bullets ==&lt;br /&gt;
Enemy bullets are stored in a doubly linked list (head: 0xc38a3b8, tail: 0xc38a3bc).&lt;br /&gt;
&lt;br /&gt;
The physical data of the bullets is stored in an array of 2000 structures in [0xc3c64d8..0xc40e917].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Functions related to enemy bullets ===&lt;br /&gt;
&lt;br /&gt;
===== 0xc06db00: schedule_enemy_bullet =====&lt;br /&gt;
signature: &amp;lt;code&amp;gt;struct enemy_bullet_plan * schedule_enemy_bullet(byte type, int x, int y, short speed, short angle)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function is used to create a single bullet or a simple pattern.&lt;br /&gt;
&lt;br /&gt;
All bullets constructed on the current frame are temporarily stored in an array of 500 structures in [0xc40e934..0xc41b453].&lt;br /&gt;
&lt;br /&gt;
This is a great place place to start from when trying to find the AI of an enemy: simply put a breakpoint in this function when the desired enemy is about to shoot a bullet and when the breakpoint gets triggered, step out of the function to find where it was called from (which is usually the AI of the enemy).&lt;br /&gt;
&lt;br /&gt;
===== 0xc06dc90: spawn_enemy_bullets =====&lt;br /&gt;
signature: &amp;lt;code&amp;gt;void spawn_enemy_bullets(struct gamestate *state)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function spawns all the bullets planned by 0xc06db00. Notice that a single bullet plan can spawn multiple bullets.&lt;br /&gt;
&lt;br /&gt;
===== 0xc06e350: new_enemy_bullet =====&lt;br /&gt;
signature: &amp;lt;code&amp;gt;struct enemy_bullet * new_enemy_bullet(int type,int x,int y,ushort speed,ushort angle,void *param_6,short param_7)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function spawns a single bullet.&lt;br /&gt;
&lt;br /&gt;
== Enemies ==&lt;br /&gt;
Enemies are stored in a doubly linked list (head: 0xc38a2c8, tail: 0xc38a2cc).&lt;br /&gt;
&lt;br /&gt;
The logic data of enemies is stored in an array of 128 structures in [0xc41b560..0xc464560].&lt;br /&gt;
&lt;br /&gt;
The physical data of the enemy is dynamically allocated in [0xc464560..0xc47bc5f] by the enemy_entity_malloc function at 0xc075990.&lt;br /&gt;
&lt;br /&gt;
Additional data can be allocated dynamically in &amp;quot;closures&amp;quot; (allocated in [0xc491e18..0xc498217]).&lt;br /&gt;
&lt;br /&gt;
Each enemy has a different constructor and uses its dynamically allocated memory in a different way (e.g. the position is not always at the same offset).&lt;br /&gt;
&lt;br /&gt;
The pointers to the constructors of the enemies are listed at [0xc2857e0..0xc285bdf].&lt;br /&gt;
&lt;br /&gt;
For example, enemy 88 is the flying lobster from stage 2, therefore its constructor is at 0xc2857e0 + 4*88 = 0xc285940.&lt;br /&gt;
&lt;br /&gt;
Depending on the game mode (original=0, maniac=1, ultra=2), which is stored at 0xc38a580, different update logics are selected for the enemies. For example, the flying lobster has 3 different update functions for the different game modes: 0x0c0b5f20 for original 0xc0b6210 for maniac, 0xc0b6440 for ultra.&lt;br /&gt;
&lt;br /&gt;
Bosses are more complicated, as their AI changes over time. Each phase is usually represented by a [https://en.wikipedia.org/wiki/Closure_(computer_programming) closure] a function pointer to the updater function which is called once per frame together with its contextual data (e.g. number of frames to wait before shooting the next bullets).&lt;br /&gt;
There are different closures for shooting AI, movement AI, rendering... These closures are used to implement a sort of parallelism even though this game runs on a single thread.&lt;br /&gt;
&lt;br /&gt;
As an example, the shooting AI of the second pattern of the first phase of the stage 2 ultra boss is at 0xc174cf0, but the chain of function pointers that link the constructor to that pattern is 8 pointers long:&lt;br /&gt;
* 0xc15e890 stage2_ultra_boss_constructor()&lt;br /&gt;
* 0xc166ad0 (allocates 12 bytes closure for next function)&lt;br /&gt;
* 0xc1668e0 stage2_ultra_boss_spawning_animation_updater()&lt;br /&gt;
* 0xc16a5a0 (allocates 16 bytes closure for next function)&lt;br /&gt;
* 0xc16a620 stage2_ultra_boss_phase1_updater()&lt;br /&gt;
* 0xc16a8e0 (allocates 82 bytes closure for next function)&lt;br /&gt;
* 0xc16afa0 stage2_ultra_boss_phase1_pattern2()&lt;br /&gt;
* 0xc1747d0 (allocates 64 bytes closure for next function)&lt;br /&gt;
* 0xc174cf0 stage2_ultra_boss_phase1_pattern2_shoot()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other useful functions ==&lt;br /&gt;
&lt;br /&gt;
===== 0xc0631f0: randint =====&lt;br /&gt;
signature: &amp;lt;code&amp;gt;ushort randint(ushort max)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Random number generator (RNG). Uses the standard C [https://en.wikipedia.org/wiki/Linear_congruential_generator LCG]&lt;/div&gt;</summary>
		<author><name>Olifante</name></author>
		
	</entry>
	<entry>
		<id>https://shmups.wiki/index.php?title=Mushihimesama_Futari/Reverse_engineering_notes&amp;diff=4080</id>
		<title>Mushihimesama Futari/Reverse engineering notes</title>
		<link rel="alternate" type="text/html" href="https://shmups.wiki/index.php?title=Mushihimesama_Futari/Reverse_engineering_notes&amp;diff=4080"/>
		<updated>2020-08-17T10:46:44Z</updated>

		<summary type="html">&lt;p&gt;Olifante: This page contains notes gathered while reverse engineering the futari15 mame romset. Addresses will be different for other versions of the game.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains notes gathered while reverse engineering the [https://github.com/mamedev/mame/blob/028b43b74446cae777967321587a83b0fffbb09a/src/mame/drivers/cv1k.cpp#L613 futari15] mame romset. Addresses will be different for other versions of the game.&lt;br /&gt;
&lt;br /&gt;
== Players ==&lt;br /&gt;
Most of the player1 data is stored in the range [0xc38aabc..0xc38ab73]. Setting 0xc38ab24 to 0x7fffffff makes the player invulnerable, which can be useful while debugging enemy patterns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enemy Bullets ==&lt;br /&gt;
Enemy bullets are stored in a doubly linked list (head: 0xc38a3b8, tail: 0xc38a3bc).&lt;br /&gt;
&lt;br /&gt;
The physical data of the bullets is stored in an array of 2000 structures in [0xc3c64d8..0xc40e917].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Functions related to enemy bullets ===&lt;br /&gt;
&lt;br /&gt;
===== 0xc06db00: schedule_enemy_bullet =====&lt;br /&gt;
signature: ```struct enemy_bullet_plan * schedule_enemy_bullet(byte type, int x, int y, short speed, short angle)```&lt;br /&gt;
&lt;br /&gt;
This function is used to create a single bullet or a simple pattern.&lt;br /&gt;
&lt;br /&gt;
All bullets constructed on the current frame are temporarily stored in an array of 500 structures in [0xc40e934..0xc41b453].&lt;br /&gt;
&lt;br /&gt;
This is a great place place to start from when trying to find the AI of an enemy: simply put a breakpoint in this function when the desired enemy is about to shoot a bullet and when the breakpoint gets triggered, step out of the function to find where it was called from (which is usually the AI of the enemy).&lt;br /&gt;
&lt;br /&gt;
===== 0xc06dc90: spawn_enemy_bullets =====&lt;br /&gt;
signature: ```void spawn_enemy_bullets(struct gamestate *state)```&lt;br /&gt;
&lt;br /&gt;
This function spawns all the bullets planned by 0xc06db00. Notice that a single bullet plan can spawn multiple bullets.&lt;br /&gt;
&lt;br /&gt;
===== 0xc06e350: new_enemy_bullet =====&lt;br /&gt;
signature: ```struct enemy_bullet * new_enemy_bullet(int type,int x,int y,ushort speed,ushort angle,void *param_6,short param_7)```&lt;br /&gt;
&lt;br /&gt;
This function spawns a single bullet.&lt;br /&gt;
&lt;br /&gt;
== Enemies ==&lt;br /&gt;
Enemies are stored in a doubly linked list (head: 0xc38a2c8, tail: 0xc38a2cc).&lt;br /&gt;
&lt;br /&gt;
The logic data of enemies is stored in an array of 128 structures in [0xc41b560..0xc464560].&lt;br /&gt;
&lt;br /&gt;
The physical data of the enemy is dynamically allocated in [0xc464560..0xc47bc5f] by the enemy_entity_malloc function at 0xc075990.&lt;br /&gt;
&lt;br /&gt;
Additional data can be allocated dynamically in &amp;quot;closures&amp;quot; (allocated in [0xc491e18..0xc498217]).&lt;br /&gt;
&lt;br /&gt;
Each enemy has a different constructor and uses its dynamically allocated memory in a different way (e.g. the position is not always at the same offset).&lt;br /&gt;
&lt;br /&gt;
The pointers to the constructors of the enemies are listed at [0xc2857e0..0xc285bdf].&lt;br /&gt;
&lt;br /&gt;
For example, enemy 88 is the flying lobster from stage 2, therefore its constructor is at 0xc2857e0 + 4*88 = 0xc285940.&lt;br /&gt;
&lt;br /&gt;
Depending on the game mode (original=0, maniac=1, ultra=2), which is stored at 0xc38a580, different update logics are selected for the enemies. For example, the flying lobster has 3 different update functions for the different game modes: 0x0c0b5f20 for original 0xc0b6210 for maniac, 0xc0b6440 for ultra.&lt;br /&gt;
&lt;br /&gt;
Bosses are more complicated, as their AI changes over time. Each phase is usually represented by a [https://en.wikipedia.org/wiki/Closure_(computer_programming) closure] a function pointer to the updater function which is called once per frame together with its contextual data (e.g. number of frames to wait before shooting the next bullets).&lt;br /&gt;
There are different closures for shooting AI, movement AI, rendering... These closures are used to implement a sort of parallelism even though this game runs on a single thread.&lt;br /&gt;
&lt;br /&gt;
As an example, the shooting AI of the second pattern of the first phase of the stage 2 ultra boss is at 0xc174cf0, but the chain of function pointers that link the constructor to that pattern is 8 pointers long:&lt;br /&gt;
* 0xc15e890 stage2_ultra_boss_constructor()&lt;br /&gt;
* 0xc166ad0 (allocates 12 bytes closure for next function)&lt;br /&gt;
* 0xc1668e0 stage2_ultra_boss_spawning_animation_updater()&lt;br /&gt;
* 0xc16a5a0 (allocates 16 bytes closure for next function)&lt;br /&gt;
* 0xc16a620 stage2_ultra_boss_phase1_updater()&lt;br /&gt;
* 0xc16a8e0 (allocates 82 bytes closure for next function)&lt;br /&gt;
* 0xc16afa0 stage2_ultra_boss_phase1_pattern2()&lt;br /&gt;
* 0xc1747d0 (allocates 64 bytes closure for next function)&lt;br /&gt;
* 0xc174cf0 stage2_ultra_boss_phase1_pattern2_shoot()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other useful functions ==&lt;br /&gt;
&lt;br /&gt;
===== 0xc0631f0: randint =====&lt;br /&gt;
signature: ```ushort randint(ushort max)```&lt;br /&gt;
&lt;br /&gt;
Random number generator (RNG). Uses the standard C [https://en.wikipedia.org/wiki/Linear_congruential_generator LCG]&lt;/div&gt;</summary>
		<author><name>Olifante</name></author>
		
	</entry>
</feed>