We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Street Fighter EX

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Street Fighter EX

Developer: Arika
Publisher: Capcom
Platform: Arcade (Sony ZN-1)
Released internationally: December 19, 1996
Released in JP: November 30, 1996,
April 1997 (EX Plus)
Released in US: December 19, 1996,
March 31, 1997 (EX Plus)


CodeIcon.png This game has unused code.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.


Before there was Street Fighter IV, with its 3D graphics (but with classic 2D gameplay), there was Street Fighter EX.

This article also covers Street Fighter EX Plus, which adds the evil versions of Ryu and Hokuto as well as the Cycloids. The next update, EX Plus Alpha, was a PlayStation exclusive that added two stalwarts from Capcom: Sakura and Dhalsim.

Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: There are unused voice clips, and we need to find them!

Unused Voice Clips

Ryu

Ryu saying "お前の本当の力を見せてみろ!" ("Let me see your real power!")

Instant Unlock Codes

Normally, Street Fighter EX and EX Plus both have characters which only become playable after the game has been running for a certain amount of time, sometimes also requiring the player to input certain codes on the character select screen. However, both versions of the game also have additional codes that can be input in the game's service menu, which instantly make these hidden characters available, or even add them to the character select screen without the player having to input any codes of their own.

All of these codes must be input on either the Color Bar or Dot Cross Hatch screens; if done correctly, "HERE COMES A NEW CHALLENGER" will appear on-screen. The codes only need to be input once; the effects remain active until the game's backup memory is deleted.

Street Fighter EX

Unlock Kairi, Allen, Blair, and Darun

On the Color Bar screen, input any one of the following codes as player 1:

  • HK, MP, LK, MK, HP
  • LP, MP, HP, HP, HK
  • MP, LK, MK, MK, MP

The four characters will now all be selectable on the character select screen.

Unlock "Play as Akuma" Code

On the Dot Cross Hatch screen, input any one of the following codes:

  • As Player 1: LK, LP, LP, LK, LP, LP, LP, MP
  • As Player 2: LP, LP, LK, LP, LP, LP, MP, MP
  • As Player 2: LP, LP, LK, HP, HK, HP, MP, MK

Akuma will now be playable by highlighting Ryu, then pressing Start, Down x3, Up x4, MP/MK.

Unlock Akuma

On the Dot Cross Hatch screen, input any one of the following codes:

  • As Player 1: LP, LK, MP, MK, HK, HP, LP, LP
  • As Player 2: MP, MK, MP, MK, LK, HK, HK, LK
  • As Player 2: HK, HK, HK, HK, HK, LK, LP, LP

Akuma will now be available on the character select screen at all times without requiring a code.

Street Fighter EX Plus

Since EX Plus makes all of the above characters immediately playable, it has a different set of unlock codes instead. All of the following codes are entered as player 1.

Unlock "Play as Bloody Hokuto" Code

On the Color Bar screen, enter HP, LK, LK, MK, MP, LP.

Bloody Hokuto will now be playable by highlighting Akuma, pressing Start x3, highlighting Kairi, pressing Start x2, then highlighting Hokuto and pressing MP/MK.

Unlock "Play as Cycloid ß" Code

On the Color Bar screen, enter HP, MK, LK, MP, HK.

Cycloid ß will now be playable by highlighting Pullum, pressing Start x4, highlighting Ryu, pressing Start x3, then highlighting Blair and pressing MP/MK.

Unlock "Play as Cycloid γ" Code

On the Color Bar screen, enter LP, MK, MP, LK, HK, HP.

Cycloid γ will now be playable by highlighting Garuda, pressing Start x5, highlighting Guile, pressing Start x4, then highlighting D. Dark and pressing MP/MK.

Unlock All Characters

On the Dot Cross Hatch screen, enter LP, MP, MK, LK, HP, MP, HP, MP, HP, HP, LP, MP, LP, MK, MK, LP, HK.

All four new characters (Evil Ryu, Bloody Hokuto, and both Cycloids) will now be available on the character select screen at all times without requiring codes.

(Source: Original TCRF research)

Regional Differences

In the Japanese version, after beating the last boss, the player's character will do their win pose and a text-based ending epilogue will be shown. Each character has one. However, in the international versions, the text was removed and the character just stands there while entering a hi-score name.

Translations for those endings can be found here.

As with previous games in the series, M. Bison (the dictator) is known as Vega and Akuma is known as Gouki in Japan.

D. Dark's Throw

D. Dark's punch throw, where he grabs the opponent and slits their throat, is censored when the game is set to a region other than mainland Japan. The game itself has a special region setting for prefectures of Odawara and Niigata that also censors the move due to stricter regulations in those prefectures. However, the code for the slit throat animation can still be found in the game.

Mainland Japan World, Niigata/Odawara
Sfex japthrow.png Sfex us-eurthrow.png

Debug Character Select

SFEX debug char select.png

A rather barebones character/stage select in the same style as the service menu screens exists in the ROM, and is still mostly functional, but requires a bit of hacking in order to restore it to full functionality. The controls for increasing/decreasing the stage select are mapped to two inputs that aren't present on a real machine; because the ZN-1 arcade system is directly based on PlayStation hardware, it's likely that this screen was used to aid playtesting on actual PlayStation development hardware using the console's normal controllers.

All characters in the game are selectable from this screen; in the original EX, this includes the normally unplayable M. Bison and Garuda, while in EX Plus it includes the four new secret characters.

Moving the joystick left/right will select between the character's normal and alternate palettes. Note that this screen always allows selecting both characters and the current stage, but the second player and stage settings are only used during an actual two-player game.

Interestingly, this is one of three unused screens that uses completely different names for most of the new characters; see "Early Character Names" for more information. When EX Plus was released with four new hidden characters, the list of names shown on this screen wasn't updated to match, so the new characters don't have their names displayed properly here.

Adding the below to a MAME cheats file will allow you to use this screen in place of the normal character select screen, and also remaps the stage select controls to the light and medium punch/kick buttons:

Street Fighter EX (sfex.xml) Street Fighter EX Plus (sfexp.xml)
  <cheat desc="Alternate Player Select">
    <script state="run">
      <action>maincpu.pd@8020f6c4=801ec524</action>
      <!-- fix up which game state vars are read by the new screen -->
      <action>maincpu.pq@801ec524=34427d383c02802d</action>
      <action>maincpu.pd@801ec538=90420001</action>
      <!-- fix up which game state vars are updated by the new screen -->
      <action>maincpu.pq@801ec8f8=34637d383c03802d</action>
      <action>maincpu.pq@801ec904=a060000190620000</action>
      <action>maincpu.pd@801ec910=a0620000</action>
      <!-- remap stage select to LP/LK and MP/MK -->
      <action>maincpu.pb@801ec840=c0</action> <!-- P1 -->
      <action>maincpu.pb@801ec854=c0</action> <!-- P2 -->
      <action>maincpu.pb@801ec888=30</action> <!-- P1 -->
      <action>maincpu.pb@801ec8a0=30</action> <!-- P2 -->
    </script>
    <script state="off">
      <action>maincpu.pd@8020f6c4=801dd0c0</action>
    </script>
  </cheat>
  <cheat desc="Alternate Player Select">
    <script state="run">
      <action>maincpu.pd@802240a8=80200768</action>
      <!-- fix up which game state vars are read by the new screen -->
      <action>maincpu.pq@80200768=3442d5c03c028031</action>
      <action>maincpu.pd@8020077c=90420001</action>
      <!-- fix up which game state vars are updated by the new screen -->
      <action>maincpu.pq@80200b44=3463d5c03c038031</action>
      <action>maincpu.pq@80200750=a060000190620000</action>
      <action>maincpu.pd@80200b5c=a0620000</action>
      <!-- remap stage select to LP/LK and MP/MK -->
      <action>maincpu.pb@80200a8c=c0</action> <!-- P1 -->
      <action>maincpu.pb@80200aa0=c0</action> <!-- P2 -->
      <action>maincpu.pb@80200ad4=30</action> <!-- P1 -->
      <action>maincpu.pb@80200aec=30</action> <!-- P2 -->
    </script>
    <script state="off">
      <action>maincpu.pd@802240a8=801f0990</action>
    </script>
  </cheat>
(Source: Original TCRF research)

Other Debug Screens

In addition to the unused character select and the various other screens available from the service menu, there is code for some other screens used during development that are normally no longer accessible.

Adding the following to a MAME cheats file will allow you to replace the normal service menu with one of two alternate debug screens:

Street Fighter EX (sfex.xml) Street Fighter EX Plus (sfexp.xml)
  <cheat desc="Alternate Service Menu">
    <parameter>
      <item value="0x94b4">Motion Test</item>
      <item value="0xa77e">High Speed Sensei</item>
    </parameter>
    <script state="change">
      <action>maincpu.pb@803f214a=00</action> <!-- reset state machine -->
    </script>
    <script state="run">
      <action>maincpu.pw@801e36a4=param</action>
      <!-- skip 8MB RAM init (will crash a 4MB machine otherwise) -->
      <action>maincpu.pb@8020c1c0=94</action>
    </script>
    <script state="off">
      <action>maincpu.pw@801e36a4=8df8</action>
    </script>
  </cheat>
  <cheat desc="Alternate Service Menu">
    <parameter>
      <item value="0xe542">Motion Test</item>
      <item value="0xf810">High Speed Sensei</item>
    </parameter>
    <script state="change">
      <action>maincpu.pb@803f214a=00</action> <!-- reset state machine -->
    </script>
    <script state="run">
      <action>maincpu.pw@801f78ec=param</action>
      <!-- skip 8MB RAM init (will crash a 4MB machine otherwise) -->
      <action>maincpu.pb@802209ac=dc</action>
    </script>
    <script state="off">
      <action>maincpu.pw@801f78ec=de94</action>
    </script>
  </cheat>
(Source: Original TCRF research)

Motion Test

SFEX motion test.png

A screen for testing player animations, showing both players on-screen at the same time. Using each player's controls allows you to move and rotate the respective character, cycle through the available animations, and change various playback settings. Pressing the coin button advances to the next character.

As you can see in the screenshot, this screen also features the same alternate character names as the debug character select screen.

(Source: Original TCRF research)

"High Speed Sensei"

Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: What is this screen actually doing?
SFEX high speed sensei.png

Another debug screen for some sort of per-character functionality. The player 1 joystick selects a character, and the light punch button does... something. It's not really clear what, yet. Interestingly, this screen has another set of unused character names that differs from the ones shown in the debug player select and motion test screens.

For whatever reason, this screen normally starts by attempting to initialize an additional 4 megabytes of RAM that a real machine doesn't have; the above MAME cheats cause this part to be skipped over in order to avoid an exception/crash.

Two additional string tables referenced by the code for this screen suggest that this screen's functionality is related to characters' states/animations:

INIT
TAIKI
ATTACK
WARIKOMI
YOKE
LIBRARY
FINISH
INIT
INIT
INIT
SELECT
GETUP
TAOREZU
DAMAGE
GUARD
PIYO
FORWARD JUMP
VERTICAL JUMP
BACK JUMP
HANI
NOT COMMAND
NOT FOUND ENDIF
USE ONLY TAIKI
USE ONLY ATK,WRI,YOK
USE ONLY LIBRARY
BAD PARAMETER
NOT FOUND LIBRARY
NOT USE IN LIBRARY
TOO MANY ELSE
NOT FOUND IF_OFF
NOT USE LIBRARY
(Source: Original TCRF research)

Early Character Names

As mentioned above, the various debug screens reveal some alternate names for most of the new characters. With the exception of D. Dark and Skullomania, all of EX's new characters had their names changed during development, sometimes even twice!

The new characters from EX Plus also had their names added to the "High Speed Sensei" screen, though with the exception of Evil Ryu ("Satsui Ryu"), these names probably weren't meant to be the character's real names - for example, Bloody Hokuto is listed as "Ura Hokuto" ("inverse Hokuto" or "opposite Hokuto"), Cycloid γ is listed as "Waiya" (a transliteration of "wire", as in "wireframe"), and Cycloid ß is listed as "Hantomei" ("translucent").

Character Debug Character Select
/ Motion Test
"High Speed Sensei"
Kairi Akira Yuubi Syujinkou
Hokuto Miliam Rainbow Kobuhei
Darun Mister Mystar Wood Mystar
Pullum Purna Zante Wind Arabin
Blair Dame Viune Light Ketsu
Allen Snider Erubis Erubis
Cracker Jack Miyauchi Miyauchi
Garuda Boss Boss
Bloody Hokuto Ura Hokuto
Cycloid γ Waiya
Cycloid ß Hantomei
(Source: Original TCRF research)

Unused Text

Some unused text from other development-related screens is also present in the ROM, though the actual screens that would have displayed it are either nonfunctional or completely missing.

Sound Test

Some text for an alternate sound test screen is located right next to the strings used by the normal sound test screen in the service menu. There doesn't appear to be any code that still references this text.

**** SOUND TEST ****
MUSIC CODE = %04XH
SE BANK    = %04XH
SE CODE    = %04XH
MUSIC CODE MINUS ... 1P LEFT
MUSIC CODE PLUS  ... 1P RIGHT
MUSIC DECIDE     ... 1P SHOT 1
MUSIC STOP       ... 1P SHOT 2
SE BANK MINUS    ... 2P UP
SE BANK PLUS     ... 2P DOWN
SE CODE MINUS    ... 2P RIGHT
SE CODE PLUS     ... 2P LEFT
SE DECIDE        ... 2P SHOT 1

Flash ROM Writer

Text for a tool used to erase and reprogram the game's main CPU program ROMs is located among the other service menu text. The code for this screen still exists in the ROM, but is not usable anymore. A similar (semi-functional) screen is also present in Tetris: The Grand Master.

rom/start.bin
MAIN.BIN
FILEEND
WRITE OK
INITIALIZE ERROR
ERASE ERROR
IPL WRITE ERROR
MAIN WRITE ERROR
DATA WRITE ERROR
DIR WRITE ERROR
MAKE MAIN ROM FILE
END
MAKE DEBUG ROM FILE
sim:ROMFILE/DEBUG%02X.ROM
sim:ROMFILE/DEBUG%02X.SUM
COMPLETE
DIR ENTRY WRITE
%s   %x
MAIN WRITE
MAIN LOAD  %x
IPL WRITE
IPL LOAD  %x
ERASE  %d
****  FLASH ROM WRITER V0.001  ****
ROM ADDRESS  %x
(Source: Original TCRF research)