Arabian Magic
Arabian Magic |
---|
Developer: Taito This game has hidden development-related text. |
Arabian Magic is a slash-and-bash-and-zap 'em up game themed after Arabian mythology. The king has been turned into a monkey by dark magicks, and the player has to find the Jewel of Seven Colors to commence de-monkeyfication.
Contents
Debug Features
Round Select
This game uses the Taito Code:
- While the game boots up, hold Service 1 until the "SERVICE SWITCH ERROR" message pops up on the screen.
- Then, press 1P Start (x3), Service 1, 1P Start. The stage select menu should then appear.
Use 1P Joystick to select a round and 1P Start to start the game. "Round" is a bit misleading; what this actually does is select the starting area. For instance, area 4 is the start of Round 2, and area 23 is the final boss screen. Inputting this code will also start the player off with 9 credits.
Round Editor
To use this and the next debugging tool without triggering the game's checksum routine, place the following code in MAME's arabianm.xml (World set), arabianmj.xml (JP set), or arabianmu.xml (US set) cheat file and enable it:
<cheat desc="Skip Checksum"> <script state="run"> <action>maincpu.mw@00D6E=0x0002</action> </script> <script state="off"> <action>maincpu.mw@00D6E=0x00AE</action> </script> </cheat>
Then, put the following code in the same file and enable it to access a round editor shortly after the game boots:
<cheat desc="Round Editor"> <script state="run"> <action>maincpu.md@04E24=0x00026312</action> </script> <script state="off"> <action>maincpu.md@04E24=0x0000926C</action> </script> </cheat>
First, the user has to select which round to load.
- 1P Up/Down: Cycles between rounds.
- 1P Button 1: Loads the selected round.
- 1P Button 2: Spawns the profile and picture of Prince Lassid from the game's attract mode.
- 1P Button 3: Exits editor.
The round editor is actually fairly limited; the user is only able to edit the height definitions of each 16x16 tile. Strangely, loading a round does not also load its height data, so they initially start out blank. It's not clear if this is by design or if this is a consequence of accessing this tool in a retail build. Object loading is also buggy, with objects like vases and traps being present some of the time, and other times not loading at all. Moving the cursor slowly seems to help with loading objects.
- 1P Joystick: Moves cursor.
- 1P Button 1 / Button 2: Adjusts the height of the selected tile.
- 1P Button 3: Switches between the following editing tools:
- Code Set
- The cursor can only adjust one tile at a time.
- Box
- The user first presses 1P Button 1 to set the cursor's position, then uses 1P Joystick to change the width and height of the cursor. Then, the user presses 1P Button 1 again to save the dimensions of the cursor. From then on, the user can adjust all tiles in the area of the cursor by pressing 1P Button 1 / Button 2.
- Dai Box
- Same controls as the Box tool, but the cursor is shaped like a parallelogram instead of a rectangle.
- Copy
- First, the user copies a section of height data using the same controls as the Box tool. Then, the user can press 1P Button 1 to paste that data onto the map.
- 2P Button 1: Places pit tiles at the cursor's position (except when using the Copy tool)
- 2P Button 2: Place different pit tiles at the cursor's position. It's not clear what the difference is between the two pit types.
- 1P Start: Switches to object testing mode.
In this mode, the user can spawn objects at the center point of the screen. The "Start is:" text shows which object will be spawned. There are six special options that act as toggles rather than spawns:
- Stats: Toggles tile data visibility.
- Gimmick: Toggles certain objects like shadows.
- PLAYER1: Toggles Prince Lassid in the 1P slot.
- PLAYER2: Toggles Princess Lisa in the 2P slot.
- PLAYER3: Toggles Sinbad in the 3P slot.
- PLAYER4: Toggles Afshaal in the 4P slot.
Controls
- 1P Joystick: Moves the camera.
- 1P Button 1 / Button 2: Moves between the object list.
- 1P Button 3: Spawns a copy of the selected object in the center of the screen.
- 1P Button 1 + Button 2 + Button 3: Deletes all objects from the round.
- 1P Start: Exits back to code set mode.
- 2P Joystick: Function depends on the current edit mode (see below).
- 2P Start: Cycles between the following edit modes:
- EDITOR: 1p: 2P joystick moves the PLAYER1 object.
- EDITOR: 2p: 2P joystick moves the PLAYER2 object.
- 1p : 2p: 1P Joystick moves PLAYER1, 2P Joystick moves PLAYER2. User cannot move the camera in this mode.
Running Debug
During development, pressing Tilt (Or, more likely, whatever actual button they had mapped to the same bit) would bring up a debug menu. Put the following code in arabianm.xml / arabianmj.xml / arabianmu.xml to switch the game's normal tilt check with the debug menu:
<cheat desc="Running Debug"> <script state="run"> <action>maincpu.mw@007C6=0x4EB9</action> <action>maincpu.mw@007C8=0x0003</action> <action>maincpu.mw@007CA=0xF124</action> <action>maincpu.mw@007CC=0x4E75</action> </script> <script state="off"> <action>maincpu.mw@007C6=0x0839</action> <action>maincpu.mw@007C8=0x0000</action> <action>maincpu.mw@007CA=0x004A</action> <action>maincpu.mw@007CC=0x0002</action> </script> </cheat>
The game is paused while the menu is up. The user can pick between the following options:
Cancel
Exits the menu. Pretty obvious.
Reset
Resets the game. Again, obvious.
Color Edit
A tool that lets the user view and change the color values of the game's many palettes.
- 1P Joystick: Moves cursor.
- 1P Button 1 / 2: Increments/decrements current palette number or color value.
- 1P Start: Exits menu.
No Enemy!
Sets bit 6 of RAM address 40E5BC. This should either remove all enemies or prevent them from spawning, but since that address isn't checked anywhere else in the code, this subroutine does nothing.
Player Move
Sets RAM address 41268A to FF. That address is checked nowhere else in the code, so this function does nothing.
Round Select
Another round select. Unlike the first menu, this lists areas in a more sensible manner (Round 1-1, 1-2, etc.) and allows the user to jump directly to the end credits by selecting "END".
- 1P Joystick: Changes selected round.
- 1P Button 2: Warps to selected round.
- 1P Start: Exits menu.
Object Display
A simple viewer for the game's many different sprites.
- 1P Left/Right: Adjusts current CHR number by 1.
- 1P Up/Down: Adjusts current CHR number by 16.
- 2P Joystick: Changes the sprite's position.
- 1P Start: Exits menu.
See Invisible
Sets bit 6 of RAM address 40E5BC. This value is referenced in subroutines located at 36360 and 36392, but said subroutines aren't called anywhere in the code.
Hitdata Making Aid
A strange tool that allows the user to see different sprites and control a hitbox that doesn't actually correspond with that sprite. The hitbox can be adjusted in size but this doesn't seem to have any effect on gameplay. Maybe this was meant as a visual aid?
- 1P Joystick: Changes the position of the hitbox.
- 1P Button 1/2: Adjusts the current object number.
- 2P Left/Right: Adjusts the width of the hitbox.
- 2P Up/Down: Increases the height of the hitbox.
- 2P Button 2 + Joystick: Changes the sprite's position.
- 1P Start: Exits menu.
Object Status
Shows the effect of the game's sprites on the main CPU. The first bar seems to be for complex sprites like the player characters and enemies, while the bottom bar is for simple sprites like the players' weapons and other projectiles.
Process Meter
Selecting this option normally does nothing; it toggles RAM address 40DC92, which is only referenced in an orphaned subroutine. However, putting the following MAME code in the appropriate XML file will hook that subroutine into the coin handler...
<cheat desc="Process Meter Fix"> <script state="run"> <action>maincpu.md@014F4=0x4EB90007</action> <action>maincpu.mw@014F8=0xFCA0</action> <action>maincpu.md@7FCA0=0x4EB90000</action> <action>maincpu.md@7FCA4=0x24121039</action> <action>maincpu.md@7FCA8=0x004A0001</action> <action>maincpu.mw@7FCAC=0x4E75</action> </script> <script state="off"> <action>maincpu.md@014F4=0x1039004A</action> <action>maincpu.mw@014F8=0x0001</action> <action>maincpu.md@7FCA0=0xFFFFFFFF</action> <action>maincpu.md@7FCA4=0xFFFFFFFF</action> <action>maincpu.md@7FCA8=0xFFFFFFFF</action> <action>maincpu.mw@7FCAC=0xFFFF</action> </script> </cheat>
...and the process meter will show up in the upper-left corner of the screen. The orange bar tracks how heavily the CPU is being used.
Task Status
Toggles RAM address 40DC93, which isn't checked anywhere else in the game's code. Function does nothing.
EEROM Dump
Prints out the raw contents of the EEPROM. Selecting the option again clears the screen.
Location Test Screen
There's data for a location test screen in the main CPU, but the data is unreferenced. Put this code in either arabianm.xml, arabianmj.xml, or arabianmu.xml to swap out the introductory cutscene with the location test screen:
<cheat desc="Location Test Screen"> <script state="run"> <action>maincpu.mw@2A30C=0xD3F2</action> </script> <script state="off"> <action>maincpu.mw@2A30C=0xB54C</action> </script> </cheat>
JP | INT |
---|---|
Congratulations on clearing the round(s)! However, the journey of the prince and his crew is from over, so please look forward to the rest. |
Note that MAME cannot properly display text during most cutscenes in English-language sets, but the text can still be seen tilemap viewer on layer 9; the second screenshot is a mockup of how it would look like on a real machine.
Special High Score Names
There are three names that are checked at the high score entry:
- A blank name will be changed to "F3S", short for the Taito F3 System the game is based on.
- AAA will be replaced with three random characters based on the current RNG value at 40DC84.
- SEX will be changed to "幸せ。", which translates to happiness or good fortune.
Developer Text
A large amount of apparent filler text is stored at 0x1059CC in the audio CPU. This seems to be from an OS for an Ensoniq keyboard synthesizer, possibly from the SQ-1 line:
MIDI Base Channel CARD Ftsw elect Time Glide Wave Filter FC1 FC2 Cutoff nvelope Keyb oard SORRY! Save SOUND ound Press efault Prog Pedal Output SEQUENCE Sequence Record Click Volume Erase Length Change Song Select a first. FROM TO Bars Location New oice SEQ/Pset SONG/Pset Preset Copy No free lease Operation = Stor Size Step Transpose Event Edit Range Status Command Card card Quantize Start: End: SEQ SNG SONG PUNCH IN: PUNCH OUT: data Shift Scale Signature memory Decay Level Center Depth Chorus Flange Phaser Rotor Detune Rate Feedback Delay Over Speed Map Rename Info empty write Number Install a Loop locks Source ENTER to Re wait... is on first. Write to ENSONIQ EGOS Personal Studio 0.35 OS Version Unexpected EventID = Press any button WARNING! Batterylow. See manual. Analog Tests preparing demo. Replace edit ? wrong type, erase? on ? ? Reinit Reinitialize & seq RAM? changes? to save new . successful! not done. editing sending SysEx error GPR Value ? / . Download retry. failed. I cannot ROM. RAM seq is . is . Need morespace on . Need expanded RAM. Current is muted. You must a . There are no parameters. locating must be stopped. Out of . theYES or NO CANNOT APPEND! Exceeds 999 bars No on Dest Seq state error Parameters? Mixed s on destination? s partially appended Running out of Tempo Bar Beat C B b S R Mod * XCtrl Controllers System Excl Master Tune Global Bend Touch TrkName Muting S VOICE: Key Restrike Wave Direction Start Index Oct Semi Fine Env1 LFO Pitch ing Levl LevV AtckV VelCurv Trk Gate LFO Dlay Restart Noise Vol Boost Pan Scale Key Bus Priority Vel Window Trk ram Sustain Timbre FX1 FX2 HF Damping HF Bandwidth Low Frequency Diffusion Stereo Cross - Repeats Lag mAmount Drive LoRotor Src Fast Slow Input Invert Dist Modulate by Compression Distortion In Out Reverb to Cmprss HiPass LoPass PW CV Knob Reference Bat KEYUP EXT Set Clear Key s s age Type = COPY COPY SAVE ,goto Keep firstxxx bars? Clock Countoff Free Memory uses effectfrom: sDisplayed: Prompt to s: Auto Punch Entry Interval ing! Autostep Gate Step name = = = = = = = = = = at Bar Minutes Seconds Total Loc SEQ SONG Rep Track to nearest TO: Insert copied at bar: Semitones to : of to shift by: by factor: Duration: Beats Clks Key RAM # A =# B =# -UNDEFINED- # *EMPTY SEQ/PSET* * EMPTY SONG * * END OF SONG * UNDEFINED STEP Create Create Song-00 Sequence-00
A complete set of sample names can be found at the start of each bank in the Ensoniq sample ROM (d29-01.ic17):
0x000000 | 0x080000 | 0x100000 | 0x180000 |
---|---|---|---|
KEN SWING NUNO HAMMAR FURI THUNDER-MAG BOSS MAGIC POWER UP ITEM COIN 3 POWER UP 2 P1 NAGE P2 NAGE P3 NAGE P4 NAGE HIT 1 HIT 2 HIT 3 HIT 4 HIT 5 KEN VS KEN 1 KEN VS KEN 2 KEN VS KEN 3 KEN VS KEN 4 KEN VS KEN 5 NAGURU 1 NAGURU 2 OWAZA FIRE BALL COIN PLAYER 1 PLAYER 2 PLAYER 3 PLAYER 4 ZAKO VOICE 1 ZAKO VOICE 2 SYAZANBREATH NOKOGIRI BOSS DEAD 2 |
THUNDER-MUS TIMPANI WIDE MID STR SITAR HARP HORN BR ORCH LOW TRUMPET MID PIANO 1 PIANO 2 PIANO 3 PIANO 4 PIANO 5 CYMBAL BOWAWA SYAZAN 1-2 SYAZAN 2-2 SYAZAN 3-2 CHARM TATSUMAKI 2 |
IKAKU 2 HABATAKI ROCK BIRD 2 BOSS DEAD ROC TOUJOU MISSILE BOSS KURUI 2 UNE UNE UNE UNE 3 UNE UNE 2 UNE DEAD BREATH TILTOWAIT SHIELD MAGIC IKAKU 3 SYOKAN 2 KANJIJIPUNCH BALANTWARAI SUPON HYUUU COBRA POCHI APPIER TOBISARU ZAKO YARARE5 |
HIKIZURI 2 DOOR TAKARA MOKUCRASH SHINDO IWA KOROGARI SHIZUKU YARI ISHI KOWARE KOUMORI NAMI TO KAZE FUNE KISIMI RIVER TOBIKOMI ICHIBA 2 HANA NAKIGOE RYUUSA 3 TEKI MAGIC TSURIBASI DW TSURIBASIDON HONE BUNKAI GLASS*TATAKI P1 DAMAGE P1 YARARE P2 DAMAGE P2 YARARE P3 DAMAGE P3 YARARE P4 DAMAGE P4 YARARE TIME UP KAZI SUN MAGIC |
References
- Pages missing developer references
- Games developed by Taito
- Pages missing publisher references
- Games published by Taito
- Arcade games
- Games released in 1992
- Games released in September
- Games released in October
- Games with hidden development-related text
- Games with unused text
- Games with debugging functions
- Games with hidden level selects
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with hidden level selects
Games > Games by content > Games with unused text
Games > Games by developer
Games > Games by developer > Games developed by Square Enix > Games developed by Taito
Games > Games by platform > Arcade games
Games > Games by publisher
Games > Games by publisher > Games published by Square Enix > Games published by Taito
Games > Games by release date > Games released in 1992
Games > Games by release date > Games released in October
Games > Games by release date > Games released in September