Arabian Magic
| Arabian Magic |
|---|
|
Developer: Taito
|
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
Cleanup
Cleanup
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
Hidden categories > Pages missing developer references
Hidden categories > Pages missing publisher references










