Home News Forum                            
 

Play your favorite classic games and more with the GameEx front end. Read more.

flstory: MAME ROM Information.


History:

The Fairyland Story (c) 1985 Taito.


A precursor to 1986's "Bubble Bobble", the player controls a spell-casting elf who turns evil wizards, witches and other enemies into cakes and either pushes them from the platform ledges, or shoots then repeatedly to destroy them. If an enemy touches the player character, the elf becomes entrapped in a magic bubble and floats away. Each level takes place inside a variety of castles.


- TECHNICAL -


Board Number : M4300034B

Prom Stickers : A45


Main CPU : Z80 (@ 5.3665 Mhz), M68705 (@ 2 Mhz)

Sound CPU : Z80 (@ 4 Mhz)

Sound Chips : AY8910 (@ 2 Mhz), MSM5232 (@ 2 Mhz), DAC (@ 2 Mhz)


Players : 2

Control : 2-way joystick

Buttons : 2


- TRIVIA -


Released in July 1985.


- STAFF -


From highscore table : (KBT), (MAD), Onijust (ONJ), (KMJ), Ishida (ISD)


- PORTS -


* Consoles :

Sony PlayStation 2 [JP] (July 26, 2005; "Taito Memories Joukan [Model SLPM-66057]")

Sony PlayStation 2 (2005, "Taito Memories Vol. 1")

Sony PSP [JP] (January 5, 2006; "Taito Memories Pocket [Model ULJM-05076]")

Microsoft XBOX (2006, "Taito Legends 2")

Sony PlayStation 2 (2006, "Taito Legends 2")


* Computers :

MSX (1987)

Sharp X68000 (1991)

PC [CD-ROM] (2006, "Taito Legends 2")


- SOURCES -


Game's rom.




MAME Info:

0.37b9 [Nicola Salmoria]

0.36b3 [Chris Moore]


DEBUG MODE:

- When "Debug Mode" dipswitch is ON, keep IPT_SERVICE1 ('9') pressed to freeze the game. Once the game is frozen, you can press IPT_START1 ('5') to advance 1 frame, or IPT_START2 ('6') to advance 6 frames. When "Continue" dipswitch is ON, you can only continue in a 1 player game AND when level (0xe781) is between 8 and 98 (included).


Bugs:

- MSM5232 tone duration is longer in MAME. Fujix (ID 04567)


WIP:

- 0.125u7: Corrado Tomaselli verified clocks and adjusted sound volumes in Fairyland Story. Changed M68705 CPU3 clock speed to 3072000 Hz.

- 0.122u6: Changed M68705 CPU3 clock speed to 4MHz.

- 0.115: Aaron Giles updated 68705 clocks to take into account the internal divide by 4. Added constant so that it is clear why this is being done. Changed M68705 CPU4 clock speed to 1MHz.

- 0.101u4: Aaron Giles fixed Fairyland Story stays at blue screen. Nicola Salmoria improved video rendering and fixed graphics corruption on the final level of Fairyland Story.

- 26th October 2005: Nicola Salmoria - Check the final level of Fairyland Story ending on MamEnd. The background graphics are quite obviously broken in the top left corner! Strange that nobody reported this bug. Anyway, I've fixed it now. I've also been studying what the MCU does in that game, and the programmers made some interesting choices. First of all, the MCU can return data stored in its internal ROM. This is done with short tables that are needed at the beginning of a level, and when you die. More interestingly, the text needed for the continue screen is stored there, and since you can't continue until level 8, it would take some time for a bootlegger to notice the problem. Even more interestingly, the endgame text is stored there, so one would have to play all the 101 levels to get to the protection. Another wicked part of the MCU protection is that before action starts in a level, the game takes three bytes, performs complicated calculations on them to convert them into an 8-byte number passed to the MCU, and the MCU then performs more complicated calculations, recovers the original bytes and sends them back. A lot of work to essentially do nothing. Finally, during the final level, the MCU is used to calculate and update the trajectory of the dragon's fireballs. Without the MCU, the dragon doesn't fire. I just have to wonder: why bother? How many people would have reached the final level in the arcades? And would bootleggers have bothered anyway? Figure some player going to the arcade owner and asking for her quarter back because the ending was too easy.

- 0.84u6: Added 'Leave On' dipswitch.

- 0.59: Added dipswitches 'Lives', 'Debug Mode', 'Allow Continue' and 'Coin Slots'.

- 9th January 2002: Uki fixed a few graphics glitches in The Fairyland Story.

- 0.57: MSM5232 sound emulator [Jarek Burczynski, Hiromitsu Shioya]. MSM5232 support in Fairy Land Story [Jarek Burczynski]. Added MSM5232 (2MHz) and DAC sound. Added dipswitches 'Flip Screen' and 'Cabinet'.

- 7th December 2001: Uki improved the Fairyland Story emulation.

- 30th November 2001: Uki converted the Fairyland Story / Onna Sanshirou driver to tilemaps and fixed some palette and sound problems.

- 21st October 2001: Jarek Burczynski sent in a MSM5232 sound chip emulator (thanks to CAB), adding music to Fairy Land Story and adding one missing sound effect to Buggy Challenge.

- 0.37b9: Nicola Salmoria added The FairyLand Story (Taito 1985) and clone (Japan).

- 27th October 2000: Nicola Salmoria and Takahiro Nogi further fixed some Fairyland Story sprite problems.

- 24th October 2000: Takahiro Nogi fixed some sprite bugs in Fairyland Story.

- 0.36RC2: Added clone 'The FairyLand Story (Japan)' (Testdriver).

- 0.36b3: Chris Moore added The FairyLand Story (Testdriver). Known issues: The 68705 doesn't pass the startup checksum test (causing "BAD HW"). This is patched by changing one unused ROM byte to make it calculate the checksum the main cpu expects. Possibilites: 1) The cpu<->mcu interface is wrong, 2) the 68705 dump is bad and 3) the 68705 program is for a different version of the main program. Anyway, the 68705 isn't returning the expected data and the program hangs when you start a game. Sound communication not understood. Sound section also has a MSM5232.

- 20th October 2000: Gareth Hall added the correct MCU dump to the Fairyland Story driver, which is now playable.

- 19th August 1999: Nicola added the 68705 image to Fairyland Story, and the attract mode and intro now work, but it hangs when a game is started.


LEVELS: 101


Other Emulators:

* FB Alpha

* Raine


Recommended Games (Platform 2):

Joust

Joust 2 - Survival of the Fittest

Q*bert

Faster, Harder, More Challenging Q*bert

Q*bert's Qubes

Chack'n Pop

Mario Bros.

Mario Bros. (PlayChoice-10)

Popper

Bomb Jack

Vs. Mighty Bomb Jack

Bombjack Twin

The FairyLand Story

TeddyBoy Blues

Bubble Bobble

Bubble Bobble 2

Bubble Memories - The Story Of Bubble Bob

Rainbow Islands

Don Doko Don

Rodland

Snow Bros. - Nick & Tom

Snow Bros. 2 / Otenki Paradise

Snow Brothers 3 - Magical Adventure

The Berlin Wall

Tumble Pop

Dark Tower

Diet Go Go

Funky Jet

Saboten Bombers

Jump Kids

Gun Master

Joe & Mac Returns

Metal Saver

Pang Pang

Fancy World - Earth of Crisis

Miss Bubble II

Toppy & Rappy

Ultra Balloon

Bomb Kick

Raccoon World

Dream World

Dynamite Bomber

Head Panic

Penguin Brothers

Tang Tang

Jumping Pop

Toy Land Adventure

Zupapa!

Super Bubble 2003

Tower & Shaft


Romset: 194 kb / 14 files / 83.7 zip




MAME XML Output:

       <game name="flstory" sourcefile="flstory.c">
              <description>The FairyLand Story</description>
              <year>1985</year>
              <manufacturer>Taito</manufacturer>
              <rom name="cpu-a45.15" size="16384" crc="f03fc969" sha1="c8dd25ca25fd413b1a29bd4e58ce5820e5f852b2" region="maincpu" offset="0"/>
              <rom name="cpu-a45.16" size="16384" crc="311aa82e" sha1="c2dd806f70ea917818ec844a275fb2fecc2e6c19" region="maincpu" offset="4000"/>
              <rom name="cpu-a45.17" size="16384" crc="a2b5d17d" sha1="0198d048aedcbd2498d490a5c0c506f8fc66ed03" region="maincpu" offset="8000"/>
              <rom name="snd.22" size="8192" crc="d58b201d" sha1="1c9c2936ec95a8fa920d58668bea420c5e15008f" region="audiocpu" offset="0"/>
              <rom name="snd.23" size="8192" crc="25e7fd9d" sha1="b9237459e3d8acf8502a693914e50714a37d515e" region="audiocpu" offset="2000"/>
              <rom name="a45.mcu" size="2048" crc="5378253c" sha1="e1ae1ab01e470b896c1d74ad4088928602a21a1b" region="mcu" offset="0"/>
              <rom name="vid-a45.18" size="16384" crc="6f08f69e" sha1="8f1b7e63a38f855cf26d57aed678da7cf1378fdf" region="gfx1" offset="0"/>
              <rom name="vid-a45.06" size="16384" crc="dc856a75" sha1="6eedbf6b027c884502b6e7329f13829787138165" region="gfx1" offset="4000"/>
              <rom name="vid-a45.08" size="16384" crc="d0b028ca" sha1="c8bd9136ad3180002961ecfe600fc91a3c891539" region="gfx1" offset="8000"/>
              <rom name="vid-a45.20" size="16384" crc="1b0edf34" sha1="e749c78053ed09bdb42c03cf4589b0fe122d9095" region="gfx1" offset="c000"/>
              <rom name="vid-a45.19" size="16384" crc="2b572dc9" sha1="9e14428663819e18829c625b4ae91a8a5530eb33" region="gfx1" offset="10000"/>
              <rom name="vid-a45.07" size="16384" crc="aa4b0762" sha1="6d4246753e80fe3ca05d47bd279f7ccc603f4700" region="gfx1" offset="14000"/>
              <rom name="vid-a45.09" size="16384" crc="8336be58" sha1="b92d37856870c4128a860d8ae02fa647743b99e3" region="gfx1" offset="18000"/>
              <rom name="vid-a45.21" size="16384" crc="fc382bd1" sha1="a773c87454a3d7b80374a6d38ecb8633af2cd990" region="gfx1" offset="1c000"/>
              <chip type="cpu" tag="maincpu" name="Z80" clock="5366500"/>
              <chip type="cpu" tag="audiocpu" name="Z80" clock="4000000"/>
              <chip type="cpu" tag="mcu" name="M68705" clock="3072000"/>
              <chip type="audio" tag="mono" name="Speaker"/>
              <chip type="audio" tag="aysnd" name="AY-3-8910A" clock="2000000"/>
              <chip type="audio" tag="msm" name="MSM5232" clock="2000000"/>
              <chip type="audio" tag="dac" name="DAC"/>
              <display tag="screen" type="raster" rotate="180" width="256" height="224" refresh="60.000000" />
              <sound channels="1"/>
              <input players="2" buttons="2" coins="2" tilt="yes">
                     <control type="joy" ways="2"/>
              </input>
              <dipswitch name="Bonus Life" tag="DSW0" mask="3">
                     <dipvalue name="30000 100000" value="0" default="yes"/>
                     <dipvalue name="30000 150000" value="1"/>
                     <dipvalue name="50000 150000" value="2"/>
                     <dipvalue name="70000 150000" value="3"/>
              </dipswitch>
              <dipswitch name="Free Play" tag="DSW0" mask="4">
                     <dipvalue name="Off" value="4" default="yes"/>
                     <dipvalue name="On" value="0"/>
              </dipswitch>
              <dipswitch name="Lives" tag="DSW0" mask="24">
                     <dipvalue name="3" value="8" default="yes"/>
                     <dipvalue name="4" value="16"/>
                     <dipvalue name="5" value="24"/>
                     <dipvalue name="Infinite (Cheat)" value="0"/>
              </dipswitch>
              <dipswitch name="Debug Mode" tag="DSW0" mask="32">
                     <dipvalue name="Off" value="32" default="yes"/>
                     <dipvalue name="On" value="0"/>
              </dipswitch>
              <dipswitch name="Flip Screen" tag="DSW0" mask="64">
                     <dipvalue name="Off" value="64" default="yes"/>
                     <dipvalue name="On" value="0"/>
              </dipswitch>
              <dipswitch name="Cabinet" tag="DSW0" mask="128">
                     <dipvalue name="Upright" value="128" default="yes"/>
                     <dipvalue name="Cocktail" value="0"/>
              </dipswitch>
              <dipswitch name="Coin A" tag="DSW1" mask="15">
                     <dipvalue name="9 Coins/1 Credit" value="15"/>
                     <dipvalue name="8 Coins/1 Credit" value="14"/>
                     <dipvalue name="7 Coins/1 Credit" value="13"/>
                     <dipvalue name="6 Coins/1 Credit" value="12"/>
                     <dipvalue name="5 Coins/1 Credit" value="11"/>
                     <dipvalue name="4 Coins/1 Credit" value="10"/>
                     <dipvalue name="3 Coins/1 Credit" value="9"/>
                     <dipvalue name="2 Coins/1 Credit" value="8"/>
                     <dipvalue name="1 Coin/1 Credit" value="0" default="yes"/>
                     <dipvalue name="1 Coin/2 Credits" value="1"/>
                     <dipvalue name="1 Coin/3 Credits" value="2"/>
                     <dipvalue name="1 Coin/4 Credits" value="3"/>
                     <dipvalue name="1 Coin/5 Credits" value="4"/>
                     <dipvalue name="1 Coin/6 Credits" value="5"/>
                     <dipvalue name="1 Coin/7 Credits" value="6"/>
                     <dipvalue name="1 Coin/8 Credits" value="7"/>
              </dipswitch>
              <dipswitch name="Coin B" tag="DSW1" mask="240">
                     <dipvalue name="9 Coins/1 Credit" value="240"/>
                     <dipvalue name="8 Coins/1 Credit" value="224"/>
                     <dipvalue name="7 Coins/1 Credit" value="208"/>
                     <dipvalue name="6 Coins/1 Credit" value="192"/>
                     <dipvalue name="5 Coins/1 Credit" value="176"/>
                     <dipvalue name="4 Coins/1 Credit" value="160"/>
                     <dipvalue name="3 Coins/1 Credit" value="144"/>
                     <dipvalue name="2 Coins/1 Credit" value="128"/>
                     <dipvalue name="1 Coin/1 Credit" value="0" default="yes"/>
                     <dipvalue name="1 Coin/2 Credits" value="16"/>
                     <dipvalue name="1 Coin/3 Credits" value="32"/>
                     <dipvalue name="1 Coin/4 Credits" value="48"/>
                     <dipvalue name="1 Coin/5 Credits" value="64"/>
                     <dipvalue name="1 Coin/6 Credits" value="80"/>
                     <dipvalue name="1 Coin/7 Credits" value="96"/>
                     <dipvalue name="1 Coin/8 Credits" value="112"/>
              </dipswitch>
              <dipswitch name="Allow Continue" tag="DSW2" mask="8">
                     <dipvalue name="No" value="0"/>
                     <dipvalue name="Yes" value="8" default="yes"/>
              </dipswitch>
              <dipswitch name="Attract Animation" tag="DSW2" mask="16">
                     <dipvalue name="Off" value="0"/>
                     <dipvalue name="On" value="16" default="yes"/>
              </dipswitch>
              <dipswitch name="Leave Off" tag="DSW2" mask="32">
                     <dipvalue name="Off" value="32" default="yes"/>
                     <dipvalue name="On" value="0"/>
              </dipswitch>
              <dipswitch name="Invulnerability (Cheat)" tag="DSW2" mask="64">
                     <dipvalue name="Off" value="64" default="yes"/>
                     <dipvalue name="On" value="0"/>
              </dipswitch>
              <dipswitch name="Coin Slots" tag="DSW2" mask="128">
                     <dipvalue name="1" value="0"/>
                     <dipvalue name="2" value="128" default="yes"/>
              </dipswitch>
              <driver status="imperfect" emulation="good" color="good" sound="imperfect" graphic="good" savestate="supported" palettesize="512"/>
       </game>
 
 


emumovies.com      Retro bytes Portal           Bookmark and Share

 
Developed by: Spesoft  Headsoft     Terms of use     Privacy    Advertise