summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mamehaze <mamehaze@users.noreply.github.com>2015-02-14 12:25:44 +0000
committer mamehaze <mamehaze@users.noreply.github.com>2015-02-14 12:25:44 +0000
commitb7ec700e9d19fc481e0225bee1fe6d6c05a65bc6 (patch)
tree9611d913e30e13a99ebc3da9478f61884ab57d74
parentabeb8214f56339bfef7aaab650c9fff335ceab94 (diff)
the Comad 'Fantasia' games are all derived from the expro02 Gals Panic codebase. The original Fantasia 940307, 940429 PCBs cloned everything from that, including the encrypted VIEW02 layer. Later releases (940803 PCB and above) removed the VIEW02 tilemap and associated ROMs, but left the code in to access it (that's what we were incorrectly treating as a 'mirror' of the BGram, it presumably goes nowhere instead)
The other release of Gals Panic is a different codebase, using the Pandora sprite chip, this one was not cloned by Comad. As a result of this research I've shuffled sets around a bit.
-rw-r--r--src/mame/drivers/expro02.c1038
-rw-r--r--src/mame/drivers/galpanic.c894
-rw-r--r--src/mame/includes/galpanic.h20
-rw-r--r--src/mame/video/galpanic.c59
-rw-r--r--src/mame/video/kaneko_spr.c39
-rw-r--r--src/mame/video/kaneko_spr.h2
6 files changed, 991 insertions, 1061 deletions
diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c
index c2beedc0813..3c0a588bc63 100644
--- a/src/mame/drivers/expro02.c
+++ b/src/mame/drivers/expro02.c
@@ -2,7 +2,18 @@
Kaneko EXPRO-02 board
- Used by the newer revisions of Gals Panic
+ Used by the newer (or possibly older/original) revisions of Gals Panic
+ also the basis of the various Comad clones
+
+ Fantasia 1994 Comad
+ Super Model 1994 Comad
+ New Fantasia 1994 Comad
+ New Fantasia 1995 Comad (set 2)
+ Fantasy '95 1995 Hi-max Technology Inc. (Running on a Comad PCB)
+ Miss World '96 1996 Comad
+ Ms/Mr World '96 1996 Comad
+ Fantasia II 1997 Comad
+ Gals Hustler 1997 Ace International
Notes:
- In gfx data banking function, some strange gfx are shown. Timing issue?
@@ -10,6 +21,9 @@
TODO:
- irq sources are unknown at current time
+This is a single board, no daughterboard. There are only 4 IC's socketed, the
+rest is soldered to the board, and no piggybacked ROMs.
+Board number is MDK 321 V-0 EXPRO-02
Gals Panic
Kaneko, 1990
@@ -52,7 +66,7 @@ EXPRO-02
clock input on any of the pins of these chips. They're not ROMs either
because the pinout doesn't match any known EPROMs.
There are no markings on the chips other than 'GP-U27' & 'GP-U41'
- If GP-U41 is removed, on bootup the PCB gives an error 'BG ERROR' and
+ If GP-U41 is removed, on bootup the PCB gives an error 'fg_ind8 ERROR' and
a memory address. If GP-U27 is removed, the PCB works but there are no
background graphics.
@@ -143,8 +157,43 @@ RAM for this layer, but don't have any roms.
the layer is misplaced however, different scroll regs?
+ - On Gals Hustler there is an extra test mode if you hold down player 2
+ button 1, I have no idea if its complete or not
+-- Zip Zap notes ---
+
+Bg for select screens seems to be corrupt
+
+-- General Notes --
+
+Fantasia etc. games are locking up when the girl 'changes' due to not liking
+the way we handle OKI status reads.. however these reads are correct according to
+tests done with a real chip so there must be something odd going on on this hardware
+
+From Miss World 96 manual/dipswitch sheet:
+
+A/B/C Three Versions depending on nude grade
+ A-Version is the extreme hottest nude models
+ B-Version is the more attractive nude models
+ C-Version is very beautiful bikini models
+
+An example of this can be seen in the Fantasia II sets with type A & B
+The current set of Super Model is an example of type C
+
+TODO:
+- There is a vector for IRQ4. The function does nothing in galpanic but is
+ more complicated in the Comad ones. However I'm not triggering it, and
+ they seems to work anyway...
+- There was a ROM in the newfant set, obj2_14.rom, which was identical to
+ Terminator 2's t2.107. I can only assume this was a mistake of the dumper.
+- lots of unknown reads and writes, also in galpanic but particularly in
+ the Comad ones.
+- fantasia and newfant have a service mode but they doesn't work well (text
+ is missing or replaced by garbage). This might be just how the games are.
+- Is there a background enable register? Or a background clear. fantasia and
+ newfant certainly look ugly as they are.
+
*/
#include "emu.h"
@@ -153,42 +202,54 @@ the layer is misplaced however, different scroll regs?
#include "machine/kaneko_hit.h"
#include "video/kaneko_tmap.h"
#include "video/kaneko_spr.h"
+#include "includes/galpnipt.h"
class expro02_state : public driver_device
{
public:
expro02_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_galsnew_bg_pixram(*this, "galsnew_bgram"),
- m_galsnew_fg_pixram(*this, "galsnew_fgram"),
+ m_expro02_fg_ind8_pixram(*this, "fg_ind8ram"),
+ m_expro02_bg_rgb555_pixram(*this, "bg_rgb555ram"),
m_view2_0(*this, "view2_0"),
m_kaneko_spr(*this, "kan_spr"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu"),
m_palette(*this, "palette"),
- m_generic_paletteram_16(*this, "paletteram") { }
+ m_generic_paletteram_16(*this, "paletteram"),
+ m_screen(*this, "screen")
+ { }
- optional_shared_ptr<UINT16> m_galsnew_bg_pixram;
- optional_shared_ptr<UINT16> m_galsnew_fg_pixram;
+ optional_shared_ptr<UINT16> m_expro02_fg_ind8_pixram;
+ optional_shared_ptr<UINT16> m_expro02_bg_rgb555_pixram;
optional_device<kaneko_view2_tilemap_device> m_view2_0;
optional_device<kaneko16_sprite_device> m_kaneko_spr;
optional_shared_ptr<UINT16> m_spriteram;
UINT16 m_vram_0_bank_num;
UINT16 m_vram_1_bank_num;
- DECLARE_WRITE16_MEMBER(galsnew_6295_bankswitch_w);
- DECLARE_WRITE16_MEMBER(galsnew_paletteram_w);
- DECLARE_WRITE16_MEMBER(galsnew_vram_0_bank_w);
- DECLARE_WRITE16_MEMBER(galsnew_vram_1_bank_w);
- DECLARE_DRIVER_INIT(galsnew);
+ DECLARE_WRITE16_MEMBER(expro02_6295_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(expro02_paletteram_w);
+ DECLARE_WRITE16_MEMBER(expro02_vram_0_bank_w);
+ DECLARE_WRITE16_MEMBER(expro02_vram_1_bank_w);
+ DECLARE_DRIVER_INIT(expro02);
virtual void machine_reset();
virtual void video_start();
DECLARE_PALETTE_INIT(expro02);
- UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_backgrounds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_expro02(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_zipzap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(expro02_scanline);
+
required_device<cpu_device> m_maincpu;
required_device<palette_device> m_palette;
required_shared_ptr<UINT16> m_generic_paletteram_16;
+ required_device<screen_device> m_screen;
+
+ // comad
+ READ16_MEMBER(comad_timer_r);
+ READ8_MEMBER(comad_okim6295_r);
+ WRITE16_MEMBER(galpanica_6295_bankswitch_w);
};
@@ -203,7 +264,7 @@ PALETTE_INIT_MEMBER(expro02_state, expro02)
palette.set_pen_color(2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
}
-UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 expro02_state::screen_update_backgrounds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// kaneko16_fill_bitmap(machine(),bitmap,cliprect);
int y,x;
@@ -217,7 +278,7 @@ UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16
for (x=0;x<256;x++)
{
- UINT16 dat = (m_galsnew_fg_pixram[count] & 0xfffe)>>1;
+ UINT16 dat = (m_expro02_bg_rgb555_pixram[count] & 0xfffe)>>1;
dat+=2048;
dest[x] = dat;
count++;
@@ -231,7 +292,7 @@ UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16
for (x=0;x<256;x++)
{
- UINT16 dat = (m_galsnew_bg_pixram[count]);
+ UINT16 dat = (m_expro02_fg_ind8_pixram[count]);
//dat &=0x3ff;
if (dat)
dest[x] = dat;
@@ -246,17 +307,33 @@ UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16
screen.priority().fill(0, cliprect);
- m_view2_0->kaneko16_prepare(bitmap, cliprect);
-
- for ( i = 0; i < 8; i++ )
+ if (m_view2_0)
{
- m_view2_0->render_tilemap_chip(screen,bitmap,cliprect,i);
+ m_view2_0->kaneko16_prepare(bitmap, cliprect);
+
+ for (i = 0; i < 8; i++)
+ {
+ m_view2_0->render_tilemap_chip(screen, bitmap, cliprect, i);
+ }
}
+ return 0;
+}
+UINT32 expro02_state::screen_update_expro02(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ screen_update_backgrounds(screen, bitmap, cliprect);
m_kaneko_spr->kaneko16_render_sprites(bitmap,cliprect, screen.priority(), m_spriteram, m_spriteram.bytes());
return 0;
}
+UINT32 expro02_state::screen_update_zipzap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ screen_update_backgrounds(screen, bitmap, cliprect);
+ m_kaneko_spr->bootleg_draw_sprites(bitmap,cliprect, m_spriteram, m_spriteram.bytes());
+ return 0;
+}
+
+
void expro02_state::video_start()
{
}
@@ -268,7 +345,7 @@ void expro02_state::video_start()
*
*************************************/
-static INPUT_PORTS_START( galsnew )
+static INPUT_PORTS_START( expro02 )
PORT_START("DSW1")
PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWA:1,2")
@@ -346,7 +423,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( galsnewa )
- PORT_INCLUDE( galsnew )
+ PORT_INCLUDE( expro02 )
PORT_MODIFY("DSW1")
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWA:3")
@@ -398,13 +475,138 @@ static INPUT_PORTS_START( fantasia )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
+
+static INPUT_PORTS_START( fantasiaa )
+ PORT_START("DSW1")
+ DIFFICULTY_DEMO_SOUNDS /* Unknown dip might be freeze/vblank? - code at 0x000734 ('fantasia') or 0x00075a ('newfant') - not called ? */
+ GALS_PANIC_JOYSTICK_4WAY(1) /* "Shot2" is shown in "test mode" but not used by the game */
+
+ PORT_START("DSW2")
+ COINAGE_TEST_LOC /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
+ GALS_PANIC_JOYSTICK_4WAY(2) /* "Shot2" is shown in "test mode" but not used by the game */
+
+ SYSTEM_NO_SERVICE /* MAME may crash when TILT is pressed (see notes), "Service" is shown in "test mode" */
+INPUT_PORTS_END
+
+/* Same as 'fantasia', but no "Service Mode" Dip Switch (and thus no "hidden" buttons) */
+static INPUT_PORTS_START( missw96 )
+ PORT_START("DSW1")
+ DIFFICULTY_DEMO_SOUNDS /* Unknown dip might be freeze/vblank? - code at 0x00074e - not called ? */
+ GALS_PANIC_JOYSTICK_4WAY(1)
+
+ PORT_START("DSW2")
+ COINAGE_NO_TEST_LOC /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
+ GALS_PANIC_JOYSTICK_4WAY(2)
+
+ SYSTEM_NO_SERVICE /* MAME may crash when TILT is pressed (see notes) */
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( galhustl )
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPSETTING( 0x0000, "6" )
+ PORT_DIPSETTING( 0x0001, "7" )
+ PORT_DIPSETTING( 0x0003, "8" )
+ PORT_DIPSETTING( 0x0002, "10" )
+ PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" )
+ PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" )
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
+ PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
+ GALS_PANIC_JOYSTICK_8WAY(1)
+
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3")
+ PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
+ PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
+ PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,5")
+ PORT_DIPSETTING( 0x0010, DEF_STR( Easy ) ) /* 5000 - 7000 */
+ PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) ) /* 4000 - 6000 */
+ PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) /* 6000 - 8000 */
+ PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) /* 7000 - 9000 */
+ PORT_DIPNAME( 0x0060, 0x0060, "Play Time" ) PORT_DIPLOCATION("SW1:6,7")
+ PORT_DIPSETTING( 0x0040, "120 Sec" )
+ PORT_DIPSETTING( 0x0060, "100 Sec" )
+ PORT_DIPSETTING( 0x0020, "80 Sec" )
+ PORT_DIPSETTING( 0x0000, "70 Sec" )
+ PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" )
+ GALS_PANIC_JOYSTICK_8WAY(2)
+
+ SYSTEM_NO_TILT
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( zipzap )
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0002, 0x0002, "Additional Obstacles" ) /* Adds 4 Blocker/Bumpers to playing field */
+ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x0000, "1" )
+ PORT_DIPSETTING( 0x0008, "2" )
+ PORT_DIPSETTING( 0x000c, "3" )
+ PORT_DIPSETTING( 0x0004, "4" )
+ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ GALS_PANIC_JOYSTICK_8WAY(1)
+
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0x0004, 0x0004, "Select Player Mode" ) /* Amateur, Normal & Exelent Modes */
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ GALS_PANIC_JOYSTICK_8WAY(2)
+
+ SYSTEM_NO_TILT
+INPUT_PORTS_END
+
/*************************************
*
* Sound handlers
*
*************************************/
-WRITE16_MEMBER(expro02_state::galsnew_6295_bankswitch_w)
+WRITE16_MEMBER(expro02_state::expro02_6295_bankswitch_w)
{
if (ACCESSING_BITS_8_15)
{
@@ -419,7 +621,7 @@ WRITE16_MEMBER(expro02_state::galsnew_6295_bankswitch_w)
*
*************************************/
-WRITE16_MEMBER(expro02_state::galsnew_paletteram_w)
+WRITE16_MEMBER(expro02_state::expro02_paletteram_w)
{
data = COMBINE_DATA(&m_generic_paletteram_16[offset]);
m_palette->set_pen_color(offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1));
@@ -434,67 +636,165 @@ WRITE16_MEMBER(expro02_state::galsnew_paletteram_w)
*
*************************************/
-static ADDRESS_MAP_START( galsnew_map, AS_PROGRAM, 16, expro02_state )
+
+static ADDRESS_MAP_START( expro02_video_base_map, AS_PROGRAM, 16, expro02_state )
+ AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fg_ind8ram")
+ AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("bg_rgb555ram")
+ AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
+ AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(expro02_paletteram_w) AM_SHARE("paletteram") // palette?
+ AM_RANGE(0x680000, 0x68001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w)
+ AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram") // sprites? 0x72f words tested
+ AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
+ AM_RANGE(0xd80000, 0xd80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_1_tilebank_w) /* ??? */
+ AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_0_tilebank_w) /* ??? */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( expro02_video_base_map_noview2, AS_PROGRAM, 16, expro02_state )
+ AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fg_ind8ram")
+ AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("bg_rgb555ram")
+ AM_RANGE(0x580000, 0x583fff) AM_NOP // games still makes leftover accesses
+ AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(expro02_paletteram_w) AM_SHARE("paletteram") // palette?
+ AM_RANGE(0x680000, 0x68001f) AM_NOP // games still makes leftover accesses
+ AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram") // sprites? 0x72f words tested
+ AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
+ AM_RANGE(0xd80000, 0xd80001) AM_NOP // games still makes leftover accesses
+ AM_RANGE(0xe80000, 0xe80001) AM_NOP // games still makes leftover accesses
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( expro02_map, AS_PROGRAM, 16, expro02_state )
+ AM_IMPORT_FROM(expro02_video_base_map)
AM_RANGE(0x000000, 0x03ffff) AM_ROM // main program
AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("user2",0) // other data
AM_RANGE(0x100000, 0x3fffff) AM_ROM AM_REGION("user1",0) // main data
AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(expro02_6295_bankswitch_w)
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* ??? */
+ AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
+ AM_RANGE(0xe00000, 0xe00015) AM_DEVREADWRITE("calc1_mcu", kaneko_hit_device, kaneko_hit_r,kaneko_hit_w)
+ADDRESS_MAP_END
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("galsnew_bgram")
- AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("galsnew_fgram")
+// bigger ROM space, OKI commands moved, no CALC mcu
+static ADDRESS_MAP_START( fantasia_map, AS_PROGRAM, 16, expro02_state )
+ AM_IMPORT_FROM(expro02_video_base_map)
+ AM_RANGE(0x000000, 0x4fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
+ AM_RANGE(0x800006, 0x800007) AM_NOP // ? used ?
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(expro02_6295_bankswitch_w)
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* ??? */
+ AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
+ AM_RANGE(0xf00000, 0xf00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
+ADDRESS_MAP_END
- AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
- AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galsnew_paletteram_w) AM_SHARE("paletteram") // palette?
- AM_RANGE(0x680000, 0x68001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w)
+static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16, expro02_state )
+ AM_IMPORT_FROM(expro02_video_base_map_noview2)
+ AM_RANGE(0x000000, 0x4fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
+// AM_RANGE(0x800006, 0x800007) ??
+ AM_RANGE(0x80000a, 0x80000b) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
+ AM_RANGE(0x80000c, 0x80000d) AM_READ(comad_timer_r) /* missw96 bits 8-a = timer? palette update code waits for them to be 111 */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
+ AM_RANGE(0xc00000, 0xc0ffff) AM_RAM
+ AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
+ AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
+ AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* newfant */
+ADDRESS_MAP_END
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram") // sprites? 0x72f words tested
+static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, expro02_state )
+ AM_IMPORT_FROM(expro02_video_base_map_noview2)
+ AM_RANGE(0x000000, 0x4fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
+// AM_RANGE(0x800006, 0x800007) ??
+ AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* coin counters, + ? */
+ AM_RANGE(0xc80000, 0xc80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00)
+ AM_RANGE(0xf80000, 0xf8ffff) AM_RAM
+ADDRESS_MAP_END
- AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
+static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, expro02_state )
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM
+ AM_RANGE(0x200000, 0x2fffff) AM_ROM AM_REGION("maincpudata", 0)
+
+ AM_RANGE(0x600800, 0x600fff) AM_RAM // writes only 1?
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP // ?
+ AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
+ AM_RANGE(0xe80000, 0xe8ffff) AM_RAM
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galsnew_6295_bankswitch_w)
+ AM_RANGE(0x780000, 0x78001f) AM_NOP // prevent sprites being flipped
- AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* ??? */
+ AM_IMPORT_FROM(expro02_video_base_map_noview2)
- AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
+ADDRESS_MAP_END
- AM_RANGE(0xd80000, 0xd80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_1_tilebank_w) /* ??? */
+static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, expro02_state )
+ AM_RANGE(0x000000, 0x4fffff) AM_ROM
+ AM_RANGE(0x701000, 0x71ffff) AM_RAM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
+ AM_RANGE(0xc00000, 0xc00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
+ AM_RANGE(0xc80000, 0xc8ffff) AM_RAM // main ram
- AM_RANGE(0xe00000, 0xe00015) AM_DEVREADWRITE("calc1_mcu", kaneko_hit_device, kaneko_hit_r,kaneko_hit_w)
+ AM_RANGE(0x780000, 0x78001f) AM_NOP // prevent sprites being flipped
- AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_0_tilebank_w) /* ??? */
+ AM_IMPORT_FROM(expro02_video_base_map_noview2)
ADDRESS_MAP_END
-
-// bigger rom space, OKI commands moved
-// no CALC mcu
-static ADDRESS_MAP_START( fantasia_map, AS_PROGRAM, 16, expro02_state )
+static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, expro02_state )
+ AM_IMPORT_FROM(expro02_video_base_map_noview2)
AM_RANGE(0x000000, 0x4fffff) AM_ROM
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("galsnew_bgram")
- AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("galsnew_fgram")
- AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
- AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galsnew_paletteram_w) AM_SHARE("paletteram") // palette?
- AM_RANGE(0x680000, 0x68001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w)
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram") // sprites? 0x72f words tested
- AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
+ AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
- AM_RANGE(0x800006, 0x800007) AM_NOP // ? used ?
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galsnew_6295_bankswitch_w)
- AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* ??? */
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
+ AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r)
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
- AM_RANGE(0xd80000, 0xd80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_1_tilebank_w) /* ??? */
- AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_0_tilebank_w) /* ??? */
- AM_RANGE(0xf00000, 0xf00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
+ AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
+ AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
+ AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
+ AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
ADDRESS_MAP_END
+static ADDRESS_MAP_START( smissw_map, AS_PROGRAM, 16, expro02_state )
+ AM_IMPORT_FROM(expro02_video_base_map_noview2)
+ AM_RANGE(0x000000, 0x4fffff) AM_ROM
+ AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
+ AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
+ AM_RANGE(0x80000e, 0x80000f) AM_READ(comad_timer_r)
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
+ AM_RANGE(0xc00000, 0xc0ffff) AM_RAM
+ AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
+ AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
+ AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
+ AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
+ADDRESS_MAP_END
+
+
/*************************************
*
* Initialization & interrupts
@@ -519,6 +819,39 @@ void expro02_state::machine_reset()
/*************************************
*
+ * Comad specific (kludges?)
+ *
+ *************************************/
+
+READ16_MEMBER(expro02_state::comad_timer_r)
+{
+ return (m_screen->vpos() & 0x07) << 8;
+}
+
+/* a kludge! */
+READ8_MEMBER(expro02_state::comad_okim6295_r)
+{
+ UINT16 retvalue;
+// retvalue = m_oki->read_status(); // doesn't work, causes lockups when girls change..
+ retvalue = machine().rand();
+ return retvalue;
+}
+
+WRITE16_MEMBER(expro02_state::galpanica_6295_bankswitch_w)
+{
+ if (ACCESSING_BITS_8_15)
+ {
+ UINT8 *rom = memregion("oki")->base();
+
+ memcpy(&rom[0x30000],&rom[0x40000 + ((data >> 8) & 0x0f) * 0x10000],0x10000);
+ }
+}
+
+
+
+
+/*************************************
+ *
* Graphics definitions
*
*************************************/
@@ -535,9 +868,13 @@ static const gfx_layout layout_16x16x4 =
};
-static GFXDECODE_START( 1x4bit_1x4bit )
+static GFXDECODE_START( expro02 )
+ GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 0x100, 0x40 ) // [0] Sprites
+ GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 0x400, 0x40 ) // [0] View2 tiles
+GFXDECODE_END
+
+static GFXDECODE_START( expro02_noview2 )
GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 0x100, 0x40 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 0x400, 0x40 ) // [0] bg tiles
GFXDECODE_END
/*************************************
@@ -546,11 +883,11 @@ GFXDECODE_END
*
*************************************/
-static MACHINE_CONFIG_START( galsnew, expro02_state )
+static MACHINE_CONFIG_START( expro02, expro02_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 12000000)
- MCFG_CPU_PROGRAM_MAP(galsnew_map)
+ MCFG_CPU_PROGRAM_MAP(expro02_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", expro02_state, expro02_scanline, "screen", 0, 1)
/* CALC01 MCU @ 16Mhz (unknown type, simulated) */
@@ -561,10 +898,10 @@ static MACHINE_CONFIG_START( galsnew, expro02_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_galsnew)
+ MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_expro02)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", 1x4bit_1x4bit)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", expro02)
MCFG_PALETTE_ADD("palette", 2048 + 32768)
MCFG_PALETTE_INIT_OWNER(expro02_state, expro02)
@@ -595,20 +932,70 @@ static MACHINE_CONFIG_START( galsnew, expro02_state )
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( fantasia, galsnew )
-
+static MACHINE_CONFIG_DERIVED( comad, expro02 )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(fantasia_map)
+ MCFG_DEVICE_REMOVE("calc1_mcu")
+
MCFG_DEVICE_MODIFY("view2_0")
// these values might not be correct, behavior differs from original boards
kaneko_view2_tilemap_device::set_invert_flip(*device, 1);
kaneko_view2_tilemap_device::set_offset(*device, -256, -216, 256, 224);
-
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(0)) /* a guess, and certainly wrong */
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( comad_noview2, comad )
+ MCFG_DEVICE_REMOVE("view2_0")
+
+ MCFG_GFXDECODE_MODIFY("gfxdecode", expro02_noview2)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( fantasia, comad_noview2 )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_CLOCK(10000000)
+ MCFG_CPU_PROGRAM_MAP(comad_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( supmodel, comad_noview2 )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(supmodel_map)
+ MCFG_OKIM6295_REPLACE("oki", 1584000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( smissw, comad_noview2 ) // 951127 PCB, 12 & 16 clocks
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(smissw_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( fantsia2, comad_noview2 )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(fantsia2_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( galhustl, comad_noview2 )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(galhustl_map)
+ MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_zipzap)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( zipzap, comad_noview2 )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(zipzap_map)
+ MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ MCFG_SCREEN_MODIFY("screen") // doesn't work with original kaneko_spr implementation
+ MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_zipzap)
MACHINE_CONFIG_END
/*************************************
@@ -841,12 +1228,12 @@ ROM_START( fantasia ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD940429 MADE IN K
ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "16.pro2", 0x000000, 0x80000, CRC(e27c6c57) SHA1(420b66928c46e76fa2496f221691dd6c34542287) ) /* PCB location is silkscreened under EPROM sockets */
ROM_LOAD16_BYTE( "13.pro1", 0x000001, 0x80000, CRC(68d27413) SHA1(84cb7d6523325496469d621f6f4da1b719162147) )
- ROM_LOAD16_BYTE( "9.bg7", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
- ROM_LOAD16_BYTE( "5.bg3", 0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
- ROM_LOAD16_BYTE( "8.bg6", 0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
- ROM_LOAD16_BYTE( "4.bg2", 0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
- ROM_LOAD16_BYTE( "7.bg5", 0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
- ROM_LOAD16_BYTE( "3.bg1", 0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
+ ROM_LOAD16_BYTE( "9.fg_ind87", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
+ ROM_LOAD16_BYTE( "5.fg_ind83", 0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
+ ROM_LOAD16_BYTE( "8.fg_ind86", 0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
+ ROM_LOAD16_BYTE( "4.fg_ind82", 0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
+ ROM_LOAD16_BYTE( "7.fg_ind85", 0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
+ ROM_LOAD16_BYTE( "3.fg_ind81", 0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
ROM_LOAD16_BYTE( "10.imag2", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
ROM_LOAD16_BYTE( "6.imag1", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
@@ -906,12 +1293,12 @@ ROM_START( fantasiab )
ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "fantasia_16", 0x000000, 0x80000, CRC(c5d93077) SHA1(da615ea0704e77e888dbda664fc9f9fd873edbfa) )
ROM_LOAD16_BYTE( "fantasia_13", 0x000001, 0x80000, CRC(d88529bd) SHA1(06eb928f4aefe101140140ba7a3ce416215f9e39) )
- ROM_LOAD16_BYTE( "9.bg7", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
- ROM_LOAD16_BYTE( "5.bg3", 0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
- ROM_LOAD16_BYTE( "8.bg6", 0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
- ROM_LOAD16_BYTE( "4.bg2", 0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
- ROM_LOAD16_BYTE( "7.bg5", 0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
- ROM_LOAD16_BYTE( "3.bg1", 0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
+ ROM_LOAD16_BYTE( "9.fg_ind87", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
+ ROM_LOAD16_BYTE( "5.fg_ind83", 0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
+ ROM_LOAD16_BYTE( "8.fg_ind86", 0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
+ ROM_LOAD16_BYTE( "4.fg_ind82", 0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
+ ROM_LOAD16_BYTE( "7.fg_ind85", 0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
+ ROM_LOAD16_BYTE( "3.fg_ind81", 0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
ROM_LOAD16_BYTE( "10.imag2", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
ROM_LOAD16_BYTE( "6.imag1", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
@@ -934,40 +1321,461 @@ ROM_START( fantasiab )
ROM_LOAD16_BYTE( "11.obj2", 0x100000, 0x80000, CRC(6d00a4c5) SHA1(8fc0d78200b82ab87658d364ebe2f2e7239722e7) )
ROM_END
+
+
+
+/*
+Fantasia II
+Comad, 1997
+
+Game is a copy/clone of Qix etc, with the usual Comad theme.....
+The hardware looks much nicer/cleaner and more professionally made than previous
+Comad boards I've seen also.
+
+
+CPU : MC68000P12
+Sound : AD-65 (OKI M6295)
+Osc. : 12.000MHz, 16.000MHz (both near 68000 & PLCC84)
+DIP Sw: 8 position (x2)
+RAM : 62256 (x12), 6116 (x4)
+PALs : plenty .....
+OTHER : ACTEL A1020B (84 Pin PLCC)
+
+ROMs: (all type 27C040)
+
+music* - oki samples / music
+prog* - main program
+obj* - objects
+scr* - gfx
+*/
+
+
+
+// fantasy 95 - derived from new fantasia?
+ROM_START( fantsy95 )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(1e684da7) SHA1(2104a6fb5f019011009f4faa769afcada90cff97) ) // sldh
+ ROM_LOAD16_BYTE( "prog1.7", 0x000001, 0x80000, CRC(dc4e4f6b) SHA1(9934121692a6d32164bef03c72c25dc727438e54) )
+ ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(ab8756ff) SHA1(0a7aa977151962e67b15a7e0f819b1412ff8dbdc) )
+ ROM_LOAD16_BYTE( "i-scr1.5", 0x100001, 0x80000, CRC(d8e2ef77) SHA1(ec2c1dcc13e281288b5df43fa7a0b3cdf7357459) )
+ ROM_LOAD16_BYTE( "i-scr4.9", 0x200000, 0x80000, CRC(4e52eb23) SHA1(be61c0dc68c49ded2dc6e8852fd92acac4986700) )
+ ROM_LOAD16_BYTE( "i-scr3.4", 0x200001, 0x80000, CRC(797731f8) SHA1(571f939a7f85bd5b75a0660621961b531f44f736) )
+ ROM_LOAD16_BYTE( "i-scr6.8", 0x300000, 0x80000, CRC(6f8e5239) SHA1(a1c2ec79e80906ca18cf3532ce38a1495ab37e44) )
+ ROM_LOAD16_BYTE( "i-scr5.3", 0x300001, 0x80000, CRC(85420e3f) SHA1(d29e81cb1a33dca6232e14a0df2e21c8de45ba71) )
+ ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(33db8177) SHA1(9e9aa890dfa20e5aa6f1caec7d018d992217c2fe) )
+ ROM_LOAD16_BYTE( "i-scr7.6", 0x400001, 0x80000, CRC(8662dd01) SHA1(a349c1cd965d3d51c20178fcce2f61ae76f4006a) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(3117e2ef) SHA1(6581a7104556d44f814c537bbd74998922927034) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(0c1109f9) SHA1(0e4ea534a32b1649e2e9bb8af7254b917ec03a90) )
+ROM_END
+
+ROM_START( fantasian ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD 940803 MADE IN KOREA */
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prog2_12.ue17", 0x000000, 0x80000, CRC(8bb70be1) SHA1(d8854defcffa4cc1a6f4087acdaa05cc80444089) )
+ ROM_LOAD16_BYTE( "prog1_7.ud17", 0x000001, 0x80000, CRC(d1616a3e) SHA1(49a647c16d3bdb895ca14871c1f5cb5abcf59c9a) )
+ ROM_LOAD16_BYTE( "i-scr2_10.ue16b", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) ) /* data roms same as expro02.c sets, but different positions */
+ ROM_LOAD16_BYTE( "i-scr1_5.ue16a", 0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
+ ROM_LOAD16_BYTE( "i-scr4_9.ue15b", 0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
+ ROM_LOAD16_BYTE( "i-scr3_4.ue15a", 0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
+ ROM_LOAD16_BYTE( "i-scr6_8.ue14b", 0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
+ ROM_LOAD16_BYTE( "i-scr5_3.ue14a", 0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
+ ROM_LOAD16_BYTE( "i-scr8_11.ue20b", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
+ ROM_LOAD16_BYTE( "i-scr7_6.ue20a", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "obj1_13.u5", 0x00000, 0x80000, CRC(f99751f5) SHA1(10f0a2e369abc36a6df2f0c9879ffb7071ee214b) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "music1_1.ub6", 0x00000, 0x80000, CRC(22955efb) SHA1(791c18d1aa0c10810da05c199108f51f99fe1d49) ) /* sample roms same as expro02.c sets, but different positions */
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "music2_2.uc6", 0xc0000, 0x80000, CRC(4cd4d6c3) SHA1(a617472a810aef6d82f5fe75ef2980c03c21c2fa) )
+ROM_END
+
+ROM_START( newfant )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
+ ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
+ ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
+ ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
+ ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
+ ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
+ ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
+ ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
+ ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
+ ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "nf95obj1.13", 0x00000, 0x80000, CRC(e6d1bc71) SHA1(df0b6c1742c01991196659bab2691230323e7b8d) ) // sldh
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
+ROM_END
+
+ROM_START( newfanta )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
+ ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
+ ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
+ ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
+ ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
+ ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
+ ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
+ ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
+ ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
+ ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
+ROM_END
+
+ROM_START( missw96 )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mw96_10.bin", 0x000000, 0x80000, CRC(b1309bb1) SHA1(3cc7a903cb007d8fc0f836a33780c1c9231d1629) )
+ ROM_LOAD16_BYTE( "mw96_06.bin", 0x000001, 0x80000, CRC(a5892bb3) SHA1(99130eb0af307fe66c9668414475e003f9c7d969) )
+ ROM_LOAD16_BYTE( "mw96_09.bin", 0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
+ ROM_LOAD16_BYTE( "mw96_05.bin", 0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
+ ROM_LOAD16_BYTE( "mw96_08.bin", 0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
+ ROM_LOAD16_BYTE( "mw96_04.bin", 0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
+ ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
+ ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
+ROM_END
+
+ROM_START( missw96a )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mw96n2_10.prog2", 0x000000, 0x80000, CRC(563ce811) SHA1(4013b303dc7fdfcd2b5b91f12a950eb71b27714a) )
+ ROM_LOAD16_BYTE( "mw96n2_6.prog1", 0x000001, 0x80000, CRC(98e91a3b) SHA1(a135458e0373b528498408ac3288a01a666f3522) )
+ ROM_LOAD16_BYTE( "mw96_09.bin", 0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
+ ROM_LOAD16_BYTE( "mw96_05.bin", 0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
+ ROM_LOAD16_BYTE( "mw96_08.bin", 0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
+ ROM_LOAD16_BYTE( "mw96_04.bin", 0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
+ ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
+ ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
+ROM_END
+
+ROM_START( missw96b )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mw96n3_10.prog2", 0x000000, 0x80000, CRC(67bde86b) SHA1(7457a4c130a9ab1c75645e2a662a87af3fee8bba) )
+ ROM_LOAD16_BYTE( "mw96n3_6.prog1", 0x000001, 0x80000, CRC(de99cc48) SHA1(ffa2597083c412fb943724048d8d5cc7bd9be11c) )
+ ROM_LOAD16_BYTE( "mw96_09.bin", 0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
+ ROM_LOAD16_BYTE( "mw96_05.bin", 0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
+ ROM_LOAD16_BYTE( "mw96_08.bin", 0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
+ ROM_LOAD16_BYTE( "mw96_04.bin", 0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
+ ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
+ ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
+ROM_END
+
+
+ROM_START( missmw96 )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mmw96_10.bin", 0x000000, 0x80000, CRC(45ed1cd9) SHA1(a75b1b6cddde065e6d7f7355a746819c8268c24f) )
+ ROM_LOAD16_BYTE( "mmw96_06.bin", 0x000001, 0x80000, CRC(52ec9e5d) SHA1(20b7cc923e9d55e391b09d96248837bb8f28a176) )
+ ROM_LOAD16_BYTE( "mmw96_09.bin", 0x100000, 0x80000, CRC(6c458b05) SHA1(249490c45cdecd6496338286a9ab6a6137cefcd0) )
+ ROM_LOAD16_BYTE( "mmw96_05.bin", 0x100001, 0x80000, CRC(48159555) SHA1(a7c736f9e41915d06b7242e427282c421c4a8283) )
+ ROM_LOAD16_BYTE( "mmw96_08.bin", 0x200000, 0x80000, CRC(1dc72b07) SHA1(fdbdf8298fe98d74ed2a76abf60f60af1c27a65d) )
+ ROM_LOAD16_BYTE( "mmw96_04.bin", 0x200001, 0x80000, CRC(fc3e18fa) SHA1(b3ad254aab982dc75a10c2cf2b3815c2fdbba914) )
+ ROM_LOAD16_BYTE( "mmw96_07.bin", 0x300000, 0x80000, CRC(001572bf) SHA1(cdf59c624baaeaea70985ee6f2f2fed08a8dfa61) )
+ ROM_LOAD16_BYTE( "mmw96_03.bin", 0x300001, 0x80000, CRC(22204025) SHA1(442e7f754c65c598983d6f897a60870d7759c823) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "mmw96_11.bin", 0x00000, 0x80000, CRC(7d491f8c) SHA1(63f580bd65579cac70b90eaa0e7f2413ef1597b8) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
+ROM_END
+
+ROM_START( smissw )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "10_PROG2.UE17", 0x000000, 0x80000, CRC(e99e520f) SHA1(edd06a3b0f8d30a4020e6ea452abb0afd79d426a) )
+ ROM_LOAD16_BYTE( "6_PROG1.UD17", 0x000001, 0x80000, CRC(22831657) SHA1(eeabcdef543048ccceabc4c3b4b288aec959a14f) )
+ ROM_LOAD16_BYTE( "9_IM1-B.UE16B", 0x100000, 0x80000, CRC(fff1eee4) SHA1(1b88d45b5cc0b5a03296d4dc950e570fa4dc19c2) )
+ ROM_LOAD16_BYTE( "5_IM1-A.UE16A", 0x100001, 0x80000, CRC(2134a72d) SHA1(f907ec8a1d6e5755a821e69564074ff05e426bb1) )
+ ROM_LOAD16_BYTE( "8_IM2-B.UE15B", 0x200000, 0x80000, CRC(cf44b638) SHA1(0fe5bdb62492c31c3efffa6d85f5d6a3b4ddb2e0) )
+ ROM_LOAD16_BYTE( "4_IM2-A.UE15A", 0x200001, 0x80000, CRC(d22b270f) SHA1(21bd2ced1b5fb3c08687addaa890ee621a56fff0) )
+ ROM_LOAD16_BYTE( "7_IM3-B.UE14B", 0x300000, 0x80000, CRC(12a9441d) SHA1(d9cd51e0c3ffac5fc561e0927c419bce0157337e) )
+ ROM_LOAD16_BYTE( "3_IM3-A.UE14A", 0x300001, 0x80000, CRC(8c656fc9) SHA1(c3fe5de7cd6cd520bbd205ec62ac0dda51f71eeb) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "15_OBJ11.U5", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "1_MUSIC1.UB6", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "2_MUSIC2.UC6", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
+ROM_END
+
+
+ROM_START( fantsia2 )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prog2.g17", 0x000000, 0x80000, CRC(57c59972) SHA1(4b1da928b537cf340a67026d07bc3dfc078b0d0f) )
+ ROM_LOAD16_BYTE( "prog1.f17", 0x000001, 0x80000, CRC(bf2d9a26) SHA1(92f0c1bd32f1e5e0ede3ba847242a212dfae4986) )
+ ROM_LOAD16_BYTE( "scr2.g16", 0x100000, 0x80000, CRC(887b1bc5) SHA1(b6fcdc8a56ea25758f363224d256e9b6c8e30244) )
+ ROM_LOAD16_BYTE( "scr1.f16", 0x100001, 0x80000, CRC(cbba3182) SHA1(a484819940fa1ef18ce679465c31075798748bac) )
+ ROM_LOAD16_BYTE( "scr4.g15", 0x200000, 0x80000, CRC(ce97e411) SHA1(be0ed41362db03f384229c708f2ba4146e5cb501) )
+ ROM_LOAD16_BYTE( "scr3.f15", 0x200001, 0x80000, CRC(480cc2e8) SHA1(38fe57ba1e34537f8be65fcc023ccd43369a5d94) )
+ ROM_LOAD16_BYTE( "scr6.g14", 0x300000, 0x80000, CRC(b29d49de) SHA1(854b76755acf58fb8a4648a0ce72ea6bdf26c555) )
+ ROM_LOAD16_BYTE( "scr5.f14", 0x300001, 0x80000, CRC(d5f88b83) SHA1(518a1f6732149f2851bbedca61f7313c39beb91b) )
+ ROM_LOAD16_BYTE( "scr8.g20", 0x400000, 0x80000, CRC(694ae2b3) SHA1(82b7a565290fce07c8393af4718fd1e6136928e9) )
+ ROM_LOAD16_BYTE( "scr7.f20", 0x400001, 0x80000, CRC(6068712c) SHA1(80a136d76dca566772e34d832ac11b8c7d6ce9ab) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "obj1.1i", 0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
+ ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "music2.1b", 0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "music1.1a", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
+ROM_END
+
+ROM_START( fantsia2a )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "fnt2-22.bin", 0x000000, 0x80000, CRC(a3a92c4b) SHA1(6affdcb57e1e0a77c7cc33135dafe86843e9e3d8) )
+ ROM_LOAD16_BYTE( "fnt2-17.bin", 0x000001, 0x80000, CRC(d0ce4493) SHA1(9cec088e6630555b6d584df23236c279909820cf) )
+ ROM_LOAD16_BYTE( "fnt2-21.bin", 0x100000, 0x80000, CRC(e989c2e7) SHA1(c9eea2a89843cdd9db4a4a0539d0315c125e3e02) )
+ ROM_LOAD16_BYTE( "fnt2-16.bin", 0x100001, 0x80000, CRC(8c06d372) SHA1(14fe2c8450f0f2e11e204dd524bfe32a72ddc144) )
+ ROM_LOAD16_BYTE( "fnt2-20.bin", 0x200000, 0x80000, CRC(6e9f1e65) SHA1(b6f1eb1a52de18ed5b17de3ef365e5c041d15314) )
+ ROM_LOAD16_BYTE( "fnt2-15.bin", 0x200001, 0x80000, CRC(85cbeb2b) SHA1(a213b461019ddb3b319b9815a76c6fb2ecfbe937) )
+ ROM_LOAD16_BYTE( "fnt2-19.bin", 0x300000, 0x80000, CRC(7953226a) SHA1(955c779eae496688be2ed416d879d6e83c888368) )
+ ROM_LOAD16_BYTE( "fnt2-14.bin", 0x300001, 0x80000, CRC(10d8ccff) SHA1(bf4c49d85556edf49289631ee6178d3fb7dea2cc) )
+ ROM_LOAD16_BYTE( "fnt2-18.bin", 0x400000, 0x80000, CRC(4cdaeda3) SHA1(f5b478e49b59496865982409517654f48296565d) )
+ ROM_LOAD16_BYTE( "fnt2-13.bin", 0x400001, 0x80000, CRC(68c7f042) SHA1(ed3c864f3d91377fec78f19897ba0b0d2bcf0d2b) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "obj1.1i", 0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
+ ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "music2.1b", 0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "music1.1a", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
+ROM_END
+
+ROM_START( wownfant)
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ep-4001 42750001 u81.bin", 0x000000, 0x80000, CRC(9942d200) SHA1(d2f69c0949881ef4aef202b564eac069c030a497) )
+ ROM_LOAD16_BYTE( "ep-4001 42750001 u80.bin", 0x000001, 0x80000, CRC(17359eeb) SHA1(90bb9da6bdf56fa9eb0ad03691750518a2a3f879) )
+ ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 1.bin", 0x100000, 0x200000, CRC(c318e841) SHA1(ba7af736d3b0accca474b0de1c8299eb3c449ef9) )
+ ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 2.bin", 0x300000, 0x200000, CRC(8871dc3a) SHA1(8e028f1430474df19bb9a912ee9e407fe4582558) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "ep-4001 42750001 u113.bin", 0x00000, 0x80000, CRC(3e77ca1f) SHA1(f946e65a29bc02b89c02b2a869578d38cfe7e2d0) )
+ ROM_LOAD( "ep-4001 42750001 u112.bin", 0x80000, 0x80000, CRC(51f4b604) SHA1(52e8ce0a2c1b9b00f04e0c775789bc550bad8ae0) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "ep-4001 42750001 u4.bin", 0x00000, 0x80000, CRC(06dc889e) SHA1(726561ff01bbde43669293a6ff7ee22b048b4118) ) // almost the same as fantasia2, just some changes to the sample references in the header
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "ep-4001 42750001 u1.bin", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
+ROM_END
+
+ROM_START( galhustl ) // An original PCB has been seen with genuine AFEGA labels
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "ue17.3", 0x00000, 0x80000, CRC(b2583dbb) SHA1(536f4aa2246ec816c4f270f9d42acc090718ee8b) ) // Also found as AFEGA 3
+ ROM_LOAD16_BYTE( "ud17.4", 0x00001, 0x80000, CRC(470a3668) SHA1(ad86e96ab8f1f5da23fb1feaabfb9c757965418e) ) // Also found as AFEGA 4
+
+ ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "galhstl1.ub6", 0x00000, 0x80000, CRC(23848790) SHA1(2e77fbe04f46e258daecb4c5917e383c7c06a306) ) // Also found as AFEGA 1
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "galhstl2.uc6", 0xc0000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) ) // Also found as AFEGA 2
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "galhstl5.u5", 0x00000, 0x80000, CRC(44a18f15) SHA1(1217cf7fbbb442358b15016099efeface5dcbd22) ) // Also found as AFEGA 5
+ROM_END
+
+ROM_START( pgalvip ) // this set has extra data roms for the gfx
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "afega_15.ue17", 0x00000, 0x20000, CRC(050060ca) SHA1(1e2a1d6aaf5038269d192baf3520f4af7a299325) )
+ ROM_LOAD16_BYTE( "afega_16.ud17", 0x00001, 0x20000, CRC(d32e4052) SHA1(632d9affee92a526c0e9399230ecf485922c6df4) )
+
+ ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
+ ROM_LOAD16_BYTE( "afega_13.rob1", 0x00000, 0x80000, CRC(ac51ef72) SHA1(01acb29ff474c52fcb323cdb14e0d6f804c93255) )
+ ROM_LOAD16_BYTE( "afega_14.roa1", 0x00001, 0x80000, CRC(0877c00f) SHA1(91c325d6c21045f08abca86a9c4d46023363dd2e) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "afega_12.ub6", 0x00000, 0x20000, CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
+ ROM_RELOAD( 0x40000, 0x20000 )
+ ROM_LOAD( "afega_11.uc6", 0xc0000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "afega_17.u5", 0x00000, 0x80000, CRC(a8a50745) SHA1(e51963947c7a7556b8531d172b9d7bf9f321b21b) )
+ROM_END
+
+ROM_START( pgalvipa ) // this set is more like Gals Hustler
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "pgalvip_3.ue17", 0x00000, 0x80000, CRC(a48e8255) SHA1(7e8f1747420ff0d599d340915712827ca2eb3092) )
+ ROM_LOAD16_BYTE( "pgalvip_4.ud17", 0x00001, 0x80000, CRC(829a2085) SHA1(3ff5f2bb730572202cd427abd7f91dd886537ab6) )
+
+ ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "pgalvip_1.ub6", 0x00000, 0x20000, CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
+ ROM_RELOAD( 0x40000, 0x20000 )
+ ROM_LOAD( "pgalvip_2.uc6", 0xc0000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "pgalvip_5.u5", 0x00000, 0x80000, CRC(2d6e5a90) SHA1(b5487e5764d83dfecd982a8614d213c9075fbee4) )
+ROM_END
+
+
+ROM_START( supmodel )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(714b7e74) SHA1(a4f7754a4b04729084ccb1359f9bdfbad6150222) )
+ ROM_LOAD16_BYTE( "prog1.7", 0x000001, 0x80000, CRC(0bb858de) SHA1(bd2039fa46fce89289e99a790400bd567f90105e) )
+ ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(d07ec0ce) SHA1(88997254ea2bffa83ab4a77087905cf646ee3c12) )
+ ROM_LOAD16_BYTE( "i-scr1.5", 0x100001, 0x80000, CRC(a96a8bde) SHA1(e93de2df1391a8e94d655e1c9e148196e692e661) )
+ ROM_LOAD16_BYTE( "i-scr4.9", 0x200000, 0x80000, CRC(e959cab5) SHA1(13d744aa71d9485a4530418536c38a542a269e27) )
+ ROM_LOAD16_BYTE( "i-scr3.4", 0x200001, 0x80000, CRC(4bf5e082) SHA1(14ab9ebe0c7a2154275b0aeb76f99d73552d862f) )
+ ROM_LOAD16_BYTE( "i-scr6.8", 0x300000, 0x80000, CRC(e71337c2) SHA1(be1b532e66e70f7d30b657a88c1f9b154187636e) )
+ ROM_LOAD16_BYTE( "i-scr5.3", 0x300001, 0x80000, CRC(641ccdfb) SHA1(f48dc0461bc49cfe4adcf769e9abfe83efa077a1) )
+ ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(7c1813c8) SHA1(80fe97ac640847360529edfb728955e1067b0c14) )
+ ROM_LOAD16_BYTE( "i-scr7.6", 0x400001, 0x80000, CRC(19c73268) SHA1(aa6dc8c817a2e9707ea74e219ab34cf826223741) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
+ ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
+ /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
+ ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(2b1f6655) SHA1(e7b52cf4bd16590c598c375d5a97b724bc9ef631) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(cccae65a) SHA1(5e4e2e51884eaf191f103aa189ff33371fc91d6d) )
+ROM_END
+
+
+/*
+
+Zip & Zap
+
+Zip Zap (pcb marked Barko Corp 950509)
+
+1x 68k
+1x Oki m6295
+1x osc 12mhz
+1x osc 16mhz
+1x fpga
+2x dipswitch banks
+
+*/
+
+ROM_START( zipzap )
+ ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 Code */
+ /* all the roms for this game could do with checking on another board, this one was in pretty bad condition
+ and reads weren't always consistent */
+ ROM_LOAD16_BYTE( "ud17.bin", 0x000001, 0x40000, BAD_DUMP CRC(2901fae1) SHA1(0d6ca6d48c5586c05f3c02aee51a95da38b3751f) )
+ ROM_LOAD16_BYTE( "ue17.bin", 0x000000, 0x40000, BAD_DUMP CRC(da6c3fc8) SHA1(4bc01bc6f62553f6ac4f7252f7d9bf0d639f6935) )
+ /* gfx bitmaps */
+ ROM_LOAD16_BYTE( "938.bin", 0x400000, 0x80000, CRC(61c06b60) SHA1(b3abae020009a48b99862766e0981e1118159a47) ) // good title background
+ ROM_LOAD16_BYTE( "942.bin", 0x400001, 0x80000, CRC(282413b8) SHA1(e2ecaaa3c5b2355eadc016b73d7d658f25e1e0db) ) // (and corrupt gfx on select mode screen)
+
+ ROM_LOAD16_BYTE( "934.bin", 0x300000, 0x80000, CRC(1e65988a) SHA1(64d6f8cbdb28755515d9bbf52f589ce1176fed58) ) // good, girls
+ ROM_LOAD16_BYTE( "939.bin", 0x300001, 0x80000, CRC(8790a6a3) SHA1(94f39e48b75144cab191e2de4284c28d18b8f1c7))
+
+ ROM_LOAD16_BYTE( "936.bin", 0x200000, 0x80000, CRC(596543cc) SHA1(10a0eab4ca4a8749f1703ff6fcc80d731d07d087) ) // good, girls
+ ROM_LOAD16_BYTE( "940.bin", 0x200001, 0x80000, CRC(0c9dfb53) SHA1(541bd8c79408b7415713b517eacdd565d0ac5cb8) )
+
+ ROM_LOAD16_BYTE( "937.bin", 0x100000, 0x80000, CRC(61dd653f) SHA1(68b5ae3423363cc64d933836bf6881431dad021a) ) // good, girls
+ ROM_LOAD16_BYTE( "941.bin", 0x100001, 0x80000, CRC(320321ed) SHA1(00b52cd34cd86c105ff6dbd0248ff239de31c851) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 ) // sprites
+ ROM_LOAD( "u5.bin", 0x000000, 0x80000, CRC(c274d8b5) SHA1(2c45961aaf8311f027a734df7e33fe085dfdd099) )
+
+ ROM_REGION( 0x140000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "snd.bin", 0x00000, 0x80000, CRC(bc20423e) SHA1(1f4bd52ec4f9b3b3e6b10ac2b3afaadf76a2c7c9) )
+ ROM_RELOAD( 0x40000, 0x80000 )
+ ROM_RELOAD( 0xc0000, 0x80000 )
+ROM_END
+
+
/*************************************
*
* Generic driver initialization
*
*************************************/
-DRIVER_INIT_MEMBER(expro02_state,galsnew)
-{
+DRIVER_INIT_MEMBER(expro02_state,expro02)
+{
UINT32 *src = (UINT32 *)memregion("gfx3" )->base();
UINT32 *dst = (UINT32 *)memregion("gfx2" )->base();
int x, offset;
-
- for (x = 0; x < 0x80000; x++)
+ // the VIEW2 tiledata is scrambled
+ if (src)
{
- offset = x;
+ for (x = 0; x < 0x80000; x++)
+ {
+ offset = x;
- // swap bits around to simplify further processing
- offset = BITSWAP24(offset, 23,22,21,20,19, 18,15, 9,10,8,7,12,13,16,17, 6,5,4,3,14,11,2,1,0);
+ // swap bits around to simplify further processing
+ offset = BITSWAP24(offset, 23, 22, 21, 20, 19, 18, 15, 9, 10, 8, 7, 12, 13, 16, 17, 6, 5, 4, 3, 14, 11, 2, 1, 0);
- // invert 8 bits
- offset ^= 0x0528f;
+ // invert 8 bits
+ offset ^= 0x0528f;
- // addition affecting 9 bits
- offset = (offset & ~0x001ff) | ((offset + 0x00043) & 0x001ff);
+ // addition affecting 9 bits
+ offset = (offset & ~0x001ff) | ((offset + 0x00043) & 0x001ff);
- // subtraction affecting 8 bits
- offset = (offset & ~0x1fe00) | ((offset - 0x09600) & 0x1fe00);
+ // subtraction affecting 8 bits
+ offset = (offset & ~0x1fe00) | ((offset - 0x09600) & 0x1fe00);
- // reverse the initial bitswap
- offset = BITSWAP24(offset, 23,22,21,20,19, 18,9,10,17,4,11,12,3,15,16,14,13,8,7,6,5,2,1,0);
+ // reverse the initial bitswap
+ offset = BITSWAP24(offset, 23, 22, 21, 20, 19, 18, 9, 10, 17, 4, 11, 12, 3, 15, 16, 14, 13, 8, 7, 6, 5, 2, 1, 0);
- // swap nibbles to use the same gfxdecode
- dst[x] = (src[offset] << 4 & 0xF0F0F0F0) | (src[offset] >> 4 & 0x0F0F0F0F);
+ // swap nibbles to use the same gfxdecode
+ dst[x] = (src[offset] << 4 & 0xF0F0F0F0) | (src[offset] >> 4 & 0x0F0F0F0F);
+ }
}
}
@@ -977,11 +1785,37 @@ DRIVER_INIT_MEMBER(expro02_state,galsnew)
*
*************************************/
-GAME( 1990, galsnew, 0, galsnew, galsnew, expro02_state, galsnew, ROT90, "Kaneko", "Gals Panic (US, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
-GAME( 1990, galsnewa, galsnew, galsnew, galsnewa, expro02_state, galsnew, ROT90, "Kaneko", "Gals Panic (Export, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
-GAME( 1990, galsnewj, galsnew, galsnew, galsnewj, expro02_state, galsnew, ROT90, "Kaneko (Taito license)", "Gals Panic (Japan, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
-GAME( 1990, galsnewk, galsnew, galsnew, galsnewj, expro02_state, galsnew, ROT90, "Kaneko (Inter license)", "Gals Panic (Korea, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
+GAME( 1990, galsnew, 0, expro02, expro02, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (US, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
+GAME( 1990, galsnewa, galsnew, expro02, galsnewa, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (Export, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
+GAME( 1990, galsnewj, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Taito license)", "Gals Panic (Japan, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
+GAME( 1990, galsnewk, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Inter license)", "Gals Panic (Korea, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
+/* the first version of Fantasia clones the EXPRO02 almost exactly, including the encrypted tiles*/
+GAME( 1994, fantasia, 0, fantasia, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, fantasiab, fantasia, fantasia, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 2)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, fantasiaa, fantasia, fantasia, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
+/* subsequent releases remove the encrypted tile (View2 layer) but leave the unused writes to it in the program code */
+GAME( 1994, fantasian,fantasia, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Fantasia (940803 PCB)", GAME_NO_COCKTAIL )
+
+GAME( 1994, supmodel, 0, supmodel, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Super Model",GAME_NO_COCKTAIL )
+
+GAME( 1995, newfant, 0, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1995 copyright)", GAME_NO_COCKTAIL ) // the only difference between the two is the gfx rom containing the copyright
+GAME( 1994, newfanta, newfant, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1994 copyright)", GAME_NO_COCKTAIL )
+GAME( 1995, fantsy95, newfant, fantasia, fantasiaa, driver_device, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", GAME_NO_COCKTAIL )
+
+GAME( 1996, missw96, 0, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 1)", GAME_NO_COCKTAIL )
+GAME( 1996, missw96a, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 2)", GAME_NO_COCKTAIL )
+GAME( 1996, missw96b, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 3)", GAME_NO_COCKTAIL )
+GAME( 1996, missmw96, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss Mister World '96 (Nude)", GAME_NO_COCKTAIL )
+
+GAME( 1996, smissw, 0, smissw, missw96, driver_device, 0, ROT0, "Comad", "Super Miss World", GAME_NO_COCKTAIL ) // 951127 PCB
+
+GAME( 1997, fantsia2, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Explicit)", GAME_NO_COCKTAIL )
+GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Less Explicit)", GAME_NO_COCKTAIL )
+
+GAME( 2002, wownfant, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "WOW New Fantasia", GAME_NO_COCKTAIL )
+
+GAME( 1996, pgalvip, 0, galhustl, galhustl, driver_device, 0, ROT0, "ACE International / Afega","Pocket Gals V.I.P (set 1)", GAME_IMPERFECT_GRAPHICS ) // roms were all AFEGA stickered, select screen seems wrong? maybe not a final version.
+GAME( 1997, pgalvipa, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "<unknown>", "Pocket Gals V.I.P (set 2)", 0 )
+GAME( 1997, galhustl, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "ACE International", "Gals Hustler", 0 ) // hack of the above?
-GAME( 1994, fantasia, 0, fantasia, fantasia, expro02_state, galsnew, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, fantasiab, fantasia, fantasia, fantasia, expro02_state, galsnew, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 2)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, fantasiaa, fantasia, fantasia, fantasia, expro02_state, galsnew, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, zipzap, 0, zipzap, zipzap, driver_device, 0, ROT90, "Barko Corp", "Zip & Zap", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c
index 42380b594f6..c3ad639e0a6 100644
--- a/src/mame/drivers/galpanic.c
+++ b/src/mame/drivers/galpanic.c
@@ -1,36 +1,12 @@
/***************************************************************************
Gals Panic 1990 Kaneko
-Fantasia 1994 Comad
-Super Model 1994 Comad
-New Fantasia 1994 Comad
-New Fantasia 1995 Comad (set 2)
-Fantasy '95 1995 Hi-max Technology Inc. (Running on a Comad PCB)
-Miss World '96 1996 Comad
-Ms/Mr World '96 1996 Comad
-Fantasia II 1997 Comad
-Gals Hustler 1997 Ace International
driver by Nicola Salmoria
-The Comad games run on hardware similar to Gals Panic, with a different
-sprite system. They are not ROM swaps because the addresses of work RAM
-and of the OKI chip change from one to the other, however everything else
-is pretty much identical.
-
-
-TODO:
-- There is a vector for IRQ4. The function does nothing in galpanic but is
- more complicated in the Comad ones. However I'm not triggering it, and
- they seems to work anyway...
-- There was a ROM in the newfant set, obj2_14.rom, which was identical to
- Terminator 2's t2.107. I can only assume this was a mistake of the dumper.
-- lots of unknown reads and writes, also in galpanic but particularly in
- the Comad ones.
-- fantasia and newfant have a service mode but they doesn't work well (text
- is missing or replaced by garbage). This might be just how the games are.
-- Is there a background enable register? Or a background clear. fantasia and
- newfant certainly look ugly as they are.
+The version of Gals Panic in this driver is the one using the PANDORA chip
+for sprites, other boardsets use a different sprite chip, see expro02.c
+
Notes about Gals Panic:
-----------------------
@@ -43,10 +19,7 @@ on top of each other and some ROMs on a daughterboard plugged into smaller
sized ROM sockets. It's not a pirate version. The piggybacked ROMs even have
Kaneko stickers. The silkscreen on the board says PAMERA-04.
-There is at least another version of the Gals Panic board. It's single board,
-so no daughterboard. There are only 4 IC's socketed, the rest is soldered to
-the board, and no piggybacked ROMs. Board number is MDK 321 V-0 EXPRO-02
-For this version of Gals Panic see the expro02.c driver
+
Stephh's additional notes :
@@ -68,8 +41,6 @@ Stephh's additional notes :
manual, but it appears that 00 seems to be read from in the "trap $d"
interruption. Is it because the addresses (0x53e830-0x53e84f) are also
used for 'galpanic_bgvideoram' ?
- In the Comad games, the interruption is the same, but the addresses
- which are checked are in full RAM. So the Dip Switch could be checked.
- I added the 'galpanica' romset which is in fact the same as 'galpanic',
but with the PRG ROMS which aren't overwritten and simulated the CALC1
@@ -87,32 +58,8 @@ Stephh's additional notes :
ending at 0x000976 for more infos.
-Expects watchdog to reset it- pjp
* Sound hasn't been tested.
- * The Comad games are definitively based on this version, the main
- differences being that read/writes to 0xe00000 have been replaced.
-
- - On Gals Hustler there is an extra test mode if you hold down player 2
- button 1, I have no idea if its complete or not
-
-
--- Zip Zap notes ---
-
-Bg for select screens seems to be corrupt
--- General Notes --
-Fantasia etc. games are locking up when the girl 'changes' due to not liking
-the way we handle OKI status reads.. however these reads are correct according to
-tests done with a real chip so there must be something odd going on on this hardware
-
-From Miss World 96 manual/dipswitch sheet:
-
-A/B/C Three Versions depending on nude grade
- A-Version is the extreme hottest nude models
- B-Version is the more attractive nude models
- C-Version is very beautiful bikini models
-
-An example of this can be seen in the Fantasia II sets with type A & B
-The current set of Super Model is an example of type C
***************************************************************************/
@@ -147,20 +94,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(galpanic_state::galpanic_scanline)
}
-TIMER_DEVICE_CALLBACK_MEMBER(galpanic_state::galhustl_scanline)
-{
- int scanline = param;
-
- if(scanline == 224) // vblank-out irq
- m_maincpu->set_input_line(3, HOLD_LINE);
-
- /* Pandora "sprite end dma" irq? */
- if(scanline == 32)
- m_maincpu->set_input_line(4, HOLD_LINE);
-
- if(scanline == 0) // timer irq?
- m_maincpu->set_input_line(5, HOLD_LINE);
-}
WRITE16_MEMBER(galpanic_state::galpanic_6295_bankswitch_w)
@@ -176,15 +109,6 @@ WRITE16_MEMBER(galpanic_state::galpanic_6295_bankswitch_w)
}
}
-WRITE16_MEMBER(galpanic_state::galpanica_6295_bankswitch_w)
-{
- if (ACCESSING_BITS_8_15)
- {
- UINT8 *rom = memregion("oki")->base();
-
- memcpy(&rom[0x30000],&rom[0x40000 + ((data >> 8) & 0x0f) * 0x10000],0x10000);
- }
-}
WRITE16_MEMBER(galpanic_state::galpanic_coin_w)
@@ -199,15 +123,7 @@ WRITE16_MEMBER(galpanic_state::galpanic_coin_w)
}
}
-WRITE16_MEMBER(galpanic_state::galpanic_bgvideoram_mirror_w)
-{
- int i;
- for(i = 0; i < 8; i++)
- {
- // or offset + i * 0x2000 ?
- galpanic_bgvideoram_w(space, offset * 8 + i, data, mem_mask);
- }
-}
+
static ADDRESS_MAP_START( galpanic_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
@@ -228,154 +144,7 @@ static ADDRESS_MAP_START( galpanic_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0xe00000, 0xe00015) AM_DEVREADWRITE("calc1_mcu", kaneko_hit_device, kaneko_hit_r,kaneko_hit_w)
ADDRESS_MAP_END
-READ16_MEMBER(galpanic_state::comad_timer_r)
-{
- return (m_screen->vpos() & 0x07) << 8;
-}
-
-/* a kludge! */
-READ8_MEMBER(galpanic_state::comad_okim6295_r)
-{
- UINT16 retvalue;
-// retvalue = m_oki->read_status(); // doesn't work, causes lockups when girls change..
- retvalue = machine().rand();
-
- return retvalue;
-}
-
-static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16, galpanic_state )
- AM_RANGE(0x000000, 0x4fffff) AM_ROM
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
- AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram") /* + work RAM */
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram") /* 1024 colors, but only 512 seem to be used */
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
- AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
-// AM_RANGE(0x800006, 0x800007) ??
- AM_RANGE(0x80000a, 0x80000b) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
- AM_RANGE(0x80000c, 0x80000d) AM_READ(comad_timer_r) /* missw96 bits 8-a = timer? palette update code waits for them to be 111 */
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
- AM_RANGE(0xc00000, 0xc0ffff) AM_RAM /* missw96 */
- AM_RANGE(0xc80000, 0xc8ffff) AM_RAM /* fantasia, newfant */
- AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
- AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* newfant */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, galpanic_state )
- AM_RANGE(0x000000, 0x4fffff) AM_ROM
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
- AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram") /* + work RAM */
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram") /* 1024 colors, but only 512 seem to be used */
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
- AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
-// AM_RANGE(0x800006, 0x800007) ??
- AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* coin counters, + ? */
- AM_RANGE(0xc80000, 0xc80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00)
- AM_RANGE(0xf80000, 0xf8ffff) AM_RAM
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, galpanic_state )
- AM_RANGE(0x000000, 0x0fffff) AM_ROM
-
- AM_RANGE(0x200000, 0x2fffff) AM_ROM AM_REGION("maincpudata", 0)
-
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
- AM_RANGE(0x520000, 0x53ffff) AM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w)
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram") /* 1024 colors, but only 512 seem to be used */
- AM_RANGE(0x600800, 0x600fff) AM_RAM // writes only 1?
- AM_RANGE(0x680000, 0x68001f) AM_RAM // regs?
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x780000, 0x78001f) AM_RAM // regs?
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
- AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
- AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP // ?
- AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
- AM_RANGE(0xe80000, 0xe8ffff) AM_RAM
-ADDRESS_MAP_END
-
-#ifdef UNUSED_FUNCTION
-READ16_MEMBER(galpanic_state::zipzap_random_read)
-{
- return machine().rand();
-}
-#endif
-
-static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, galpanic_state )
- AM_RANGE(0x000000, 0x4fffff) AM_ROM
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
- AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w)
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram") /* 1024 colors, but only 512 seem to be used */
- AM_RANGE(0x680000, 0x68001f) AM_RAM
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x701000, 0x71ffff) AM_RAM
- AM_RANGE(0x780000, 0x78001f) AM_RAM
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
- AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
-
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
-
- AM_RANGE(0xc00000, 0xc00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
-
- AM_RANGE(0xc80000, 0xc8ffff) AM_RAM // main ram
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, galpanic_state )
- AM_RANGE(0x000000, 0x4fffff) AM_ROM
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
- AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
-// AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w) // can't be right, causes half the display to vanish at times!
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram") /* 1024 colors, but only 512 seem to be used */
- AM_RANGE(0x680000, 0x68001f) AM_RAM
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x780000, 0x78001f) AM_RAM
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
- AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
- AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r)
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
- AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
- AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
- AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
- AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
- AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( smissw_map, AS_PROGRAM, 16, galpanic_state )
- AM_RANGE(0x000000, 0x4fffff) AM_ROM
- AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
- AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0x580000, 0x583fff) AM_RAM //_WRITE(galpanic_bgvideoram_mirror_w) // can't be right, causes half the display to vanish at times!
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram") /* 1024 colors, but only 512 seem to be used */
- AM_RANGE(0x680000, 0x68001f) AM_RAM
- AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x780000, 0x78001f) AM_RAM
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
- AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
- AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
- AM_RANGE(0x80000e, 0x80000f) AM_READ(comad_timer_r)
- AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
- AM_RANGE(0xc00000, 0xc0ffff) AM_RAM
- AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
- AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
- AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
- AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
-ADDRESS_MAP_END
static INPUT_PORTS_START( galpanic )
@@ -425,129 +194,6 @@ static INPUT_PORTS_START( galpanica )
SYSTEM_SERVICE
INPUT_PORTS_END
-static INPUT_PORTS_START( fantasia )
- PORT_START("DSW1")
- DIFFICULTY_DEMO_SOUNDS /* Unknown dip might be freeze/vblank? - code at 0x000734 ('fantasia') or 0x00075a ('newfant') - not called ? */
- GALS_PANIC_JOYSTICK_4WAY(1) /* "Shot2" is shown in "test mode" but not used by the game */
-
- PORT_START("DSW2")
- COINAGE_TEST_LOC /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
- GALS_PANIC_JOYSTICK_4WAY(2) /* "Shot2" is shown in "test mode" but not used by the game */
-
- SYSTEM_NO_SERVICE /* MAME may crash when TILT is pressed (see notes), "Service" is shown in "test mode" */
-INPUT_PORTS_END
-
-/* Same as 'fantasia', but no "Service Mode" Dip Switch (and thus no "hidden" buttons) */
-static INPUT_PORTS_START( missw96 )
- PORT_START("DSW1")
- DIFFICULTY_DEMO_SOUNDS /* Unknown dip might be freeze/vblank? - code at 0x00074e - not called ? */
- GALS_PANIC_JOYSTICK_4WAY(1)
-
- PORT_START("DSW2")
- COINAGE_NO_TEST_LOC /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
- GALS_PANIC_JOYSTICK_4WAY(2)
-
- SYSTEM_NO_SERVICE /* MAME may crash when TILT is pressed (see notes) */
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( galhustl )
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0000, "6" )
- PORT_DIPSETTING( 0x0001, "7" )
- PORT_DIPSETTING( 0x0003, "8" )
- PORT_DIPSETTING( 0x0002, "10" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
- GALS_PANIC_JOYSTICK_8WAY(1)
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,5")
- PORT_DIPSETTING( 0x0010, DEF_STR( Easy ) ) /* 5000 - 7000 */
- PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) ) /* 4000 - 6000 */
- PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) /* 6000 - 8000 */
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) /* 7000 - 9000 */
- PORT_DIPNAME( 0x0060, 0x0060, "Play Time" ) PORT_DIPLOCATION("SW1:6,7")
- PORT_DIPSETTING( 0x0040, "120 Sec" )
- PORT_DIPSETTING( 0x0060, "100 Sec" )
- PORT_DIPSETTING( 0x0020, "80 Sec" )
- PORT_DIPSETTING( 0x0000, "70 Sec" )
- PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" )
- GALS_PANIC_JOYSTICK_8WAY(2)
-
- SYSTEM_NO_TILT
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( zipzap )
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, "Additional Obsticals" ) /* Adds 4 Blocker/Bumpers to playing field */
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0008, "2" )
- PORT_DIPSETTING( 0x000c, "3" )
- PORT_DIPSETTING( 0x0004, "4" )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- GALS_PANIC_JOYSTICK_8WAY(1)
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x0004, 0x0004, "Select Player Mode" ) /* Amateur, Normal & Exelent Modes */
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- GALS_PANIC_JOYSTICK_8WAY(2)
-
- SYSTEM_NO_TILT
-INPUT_PORTS_END
static const gfx_layout spritelayout =
@@ -615,97 +261,6 @@ static MACHINE_CONFIG_DERIVED( galpanica, galpanic )
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( comad, galpanic )
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(10000000)
- MCFG_CPU_PROGRAM_MAP(comad_map)
-
- MCFG_DEVICE_REMOVE("pandora")
-
- /* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
- MCFG_SCREEN_VBLANK_NONE()
-MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( supmodel, comad )
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(12000000) /* ? */
- MCFG_CPU_PROGRAM_MAP(supmodel_map)
- //MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galpanic_state, galpanic_scanline, "screen", 0, 1)
-
- /* sound hardware */
- MCFG_OKIM6295_REPLACE("oki", 1584000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( smissw, comad ) // 951127 PCB, 12 & 16 clocks
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(12000000)
- MCFG_CPU_PROGRAM_MAP(smissw_map)
- MCFG_TIMER_MODIFY("scantimer")
- MCFG_TIMER_DRIVER_CALLBACK(galpanic_state, galhustl_scanline)
-
-MACHINE_CONFIG_END
-
-
-
-static MACHINE_CONFIG_DERIVED( fantsia2, comad )
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(12000000) /* ? */
- MCFG_CPU_PROGRAM_MAP(fantsia2_map)
-
- /* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
- MCFG_SCREEN_VBLANK_NONE()
-MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( galhustl, comad )
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(12000000) /* ? */
- MCFG_CPU_PROGRAM_MAP(galhustl_map)
- MCFG_TIMER_MODIFY("scantimer")
- MCFG_TIMER_DRIVER_CALLBACK(galpanic_state, galhustl_scanline)
-
- /* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
- MCFG_SCREEN_VBLANK_NONE()
-
- /* sound hardware */
- MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( zipzap, comad )
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_CLOCK(12000000) /* ? */
- MCFG_CPU_PROGRAM_MAP(zipzap_map)
- MCFG_TIMER_MODIFY("scantimer")
- MCFG_TIMER_DRIVER_CALLBACK(galpanic_state, galhustl_scanline)
-
- /* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
-
- /* sound hardware */
- MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
/***************************************************************************
@@ -757,445 +312,6 @@ ROM_START( galpanica ) /* PAMERA-04 PCB with the CALC1 MCU used */
ROM_LOAD( "pm007e.u", 0xc0000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) )
ROM_END
-
-/*
-Fantasia II
-Comad, 1997
-
-Game is a copy/clone of Qix etc, with the usual Comad theme.....
-The hardware looks much nicer/cleaner and more professionally made than previous
-Comad boards I've seen also.
-
-
-CPU : MC68000P12
-Sound : AD-65 (OKI M6295)
-Osc. : 12.000MHz, 16.000MHz (both near 68000 & PLCC84)
-DIP Sw: 8 position (x2)
-RAM : 62256 (x12), 6116 (x4)
-PALs : plenty .....
-OTHER : ACTEL A1020B (84 Pin PLCC)
-
-ROMs: (all type 27C040)
-
-music* - oki samples / music
-prog* - main program
-obj* - objects
-scr* - gfx
-*/
-
-
-
-// fantasy 95 - derived from new fantasia?
-ROM_START( fantsy95 )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(1e684da7) SHA1(2104a6fb5f019011009f4faa769afcada90cff97) ) // sldh
- ROM_LOAD16_BYTE( "prog1.7", 0x000001, 0x80000, CRC(dc4e4f6b) SHA1(9934121692a6d32164bef03c72c25dc727438e54) )
- ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(ab8756ff) SHA1(0a7aa977151962e67b15a7e0f819b1412ff8dbdc) )
- ROM_LOAD16_BYTE( "i-scr1.5", 0x100001, 0x80000, CRC(d8e2ef77) SHA1(ec2c1dcc13e281288b5df43fa7a0b3cdf7357459) )
- ROM_LOAD16_BYTE( "i-scr4.9", 0x200000, 0x80000, CRC(4e52eb23) SHA1(be61c0dc68c49ded2dc6e8852fd92acac4986700) )
- ROM_LOAD16_BYTE( "i-scr3.4", 0x200001, 0x80000, CRC(797731f8) SHA1(571f939a7f85bd5b75a0660621961b531f44f736) )
- ROM_LOAD16_BYTE( "i-scr6.8", 0x300000, 0x80000, CRC(6f8e5239) SHA1(a1c2ec79e80906ca18cf3532ce38a1495ab37e44) )
- ROM_LOAD16_BYTE( "i-scr5.3", 0x300001, 0x80000, CRC(85420e3f) SHA1(d29e81cb1a33dca6232e14a0df2e21c8de45ba71) )
- ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(33db8177) SHA1(9e9aa890dfa20e5aa6f1caec7d018d992217c2fe) )
- ROM_LOAD16_BYTE( "i-scr7.6", 0x400001, 0x80000, CRC(8662dd01) SHA1(a349c1cd965d3d51c20178fcce2f61ae76f4006a) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(3117e2ef) SHA1(6581a7104556d44f814c537bbd74998922927034) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(0c1109f9) SHA1(0e4ea534a32b1649e2e9bb8af7254b917ec03a90) )
-ROM_END
-
-ROM_START( fantasian ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD 940803 MADE IN KOREA */
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "prog2_12.ue17", 0x000000, 0x80000, CRC(8bb70be1) SHA1(d8854defcffa4cc1a6f4087acdaa05cc80444089) )
- ROM_LOAD16_BYTE( "prog1_7.ud17", 0x000001, 0x80000, CRC(d1616a3e) SHA1(49a647c16d3bdb895ca14871c1f5cb5abcf59c9a) )
- ROM_LOAD16_BYTE( "i-scr2_10.ue16b", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) ) /* data roms same as expro02.c sets, but different positions */
- ROM_LOAD16_BYTE( "i-scr1_5.ue16a", 0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
- ROM_LOAD16_BYTE( "i-scr4_9.ue15b", 0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
- ROM_LOAD16_BYTE( "i-scr3_4.ue15a", 0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
- ROM_LOAD16_BYTE( "i-scr6_8.ue14b", 0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
- ROM_LOAD16_BYTE( "i-scr5_3.ue14a", 0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
- ROM_LOAD16_BYTE( "i-scr8_11.ue20b", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
- ROM_LOAD16_BYTE( "i-scr7_6.ue20a", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "obj1_13.u5", 0x00000, 0x80000, CRC(f99751f5) SHA1(10f0a2e369abc36a6df2f0c9879ffb7071ee214b) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "music1_1.ub6", 0x00000, 0x80000, CRC(22955efb) SHA1(791c18d1aa0c10810da05c199108f51f99fe1d49) ) /* sample roms same as expro02.c sets, but different positions */
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "music2_2.uc6", 0xc0000, 0x80000, CRC(4cd4d6c3) SHA1(a617472a810aef6d82f5fe75ef2980c03c21c2fa) )
-ROM_END
-
-ROM_START( newfant )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
- ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
- ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
- ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
- ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
- ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
- ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
- ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
- ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
- ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "nf95obj1.13", 0x00000, 0x80000, CRC(e6d1bc71) SHA1(df0b6c1742c01991196659bab2691230323e7b8d) ) // sldh
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
-ROM_END
-
-ROM_START( newfanta )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
- ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
- ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
- ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
- ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
- ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
- ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
- ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
- ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
- ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
-ROM_END
-
-ROM_START( missw96 )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "mw96_10.bin", 0x000000, 0x80000, CRC(b1309bb1) SHA1(3cc7a903cb007d8fc0f836a33780c1c9231d1629) )
- ROM_LOAD16_BYTE( "mw96_06.bin", 0x000001, 0x80000, CRC(a5892bb3) SHA1(99130eb0af307fe66c9668414475e003f9c7d969) )
- ROM_LOAD16_BYTE( "mw96_09.bin", 0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
- ROM_LOAD16_BYTE( "mw96_05.bin", 0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
- ROM_LOAD16_BYTE( "mw96_08.bin", 0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
- ROM_LOAD16_BYTE( "mw96_04.bin", 0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
- ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
- ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
-ROM_END
-
-ROM_START( missw96a )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "mw96n2_10.prog2", 0x000000, 0x80000, CRC(563ce811) SHA1(4013b303dc7fdfcd2b5b91f12a950eb71b27714a) )
- ROM_LOAD16_BYTE( "mw96n2_6.prog1", 0x000001, 0x80000, CRC(98e91a3b) SHA1(a135458e0373b528498408ac3288a01a666f3522) )
- ROM_LOAD16_BYTE( "mw96_09.bin", 0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
- ROM_LOAD16_BYTE( "mw96_05.bin", 0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
- ROM_LOAD16_BYTE( "mw96_08.bin", 0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
- ROM_LOAD16_BYTE( "mw96_04.bin", 0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
- ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
- ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
-ROM_END
-
-ROM_START( missw96b )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "mw96n3_10.prog2", 0x000000, 0x80000, CRC(67bde86b) SHA1(7457a4c130a9ab1c75645e2a662a87af3fee8bba) )
- ROM_LOAD16_BYTE( "mw96n3_6.prog1", 0x000001, 0x80000, CRC(de99cc48) SHA1(ffa2597083c412fb943724048d8d5cc7bd9be11c) )
- ROM_LOAD16_BYTE( "mw96_09.bin", 0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
- ROM_LOAD16_BYTE( "mw96_05.bin", 0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
- ROM_LOAD16_BYTE( "mw96_08.bin", 0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
- ROM_LOAD16_BYTE( "mw96_04.bin", 0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
- ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
- ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
-ROM_END
-
-
-ROM_START( missmw96 )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "mmw96_10.bin", 0x000000, 0x80000, CRC(45ed1cd9) SHA1(a75b1b6cddde065e6d7f7355a746819c8268c24f) )
- ROM_LOAD16_BYTE( "mmw96_06.bin", 0x000001, 0x80000, CRC(52ec9e5d) SHA1(20b7cc923e9d55e391b09d96248837bb8f28a176) )
- ROM_LOAD16_BYTE( "mmw96_09.bin", 0x100000, 0x80000, CRC(6c458b05) SHA1(249490c45cdecd6496338286a9ab6a6137cefcd0) )
- ROM_LOAD16_BYTE( "mmw96_05.bin", 0x100001, 0x80000, CRC(48159555) SHA1(a7c736f9e41915d06b7242e427282c421c4a8283) )
- ROM_LOAD16_BYTE( "mmw96_08.bin", 0x200000, 0x80000, CRC(1dc72b07) SHA1(fdbdf8298fe98d74ed2a76abf60f60af1c27a65d) )
- ROM_LOAD16_BYTE( "mmw96_04.bin", 0x200001, 0x80000, CRC(fc3e18fa) SHA1(b3ad254aab982dc75a10c2cf2b3815c2fdbba914) )
- ROM_LOAD16_BYTE( "mmw96_07.bin", 0x300000, 0x80000, CRC(001572bf) SHA1(cdf59c624baaeaea70985ee6f2f2fed08a8dfa61) )
- ROM_LOAD16_BYTE( "mmw96_03.bin", 0x300001, 0x80000, CRC(22204025) SHA1(442e7f754c65c598983d6f897a60870d7759c823) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "mmw96_11.bin", 0x00000, 0x80000, CRC(7d491f8c) SHA1(63f580bd65579cac70b90eaa0e7f2413ef1597b8) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
-ROM_END
-
-ROM_START( smissw )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "10_PROG2.UE17", 0x000000, 0x80000, CRC(e99e520f) SHA1(edd06a3b0f8d30a4020e6ea452abb0afd79d426a) )
- ROM_LOAD16_BYTE( "6_PROG1.UD17", 0x000001, 0x80000, CRC(22831657) SHA1(eeabcdef543048ccceabc4c3b4b288aec959a14f) )
- ROM_LOAD16_BYTE( "9_IM1-B.UE16B", 0x100000, 0x80000, CRC(fff1eee4) SHA1(1b88d45b5cc0b5a03296d4dc950e570fa4dc19c2) )
- ROM_LOAD16_BYTE( "5_IM1-A.UE16A", 0x100001, 0x80000, CRC(2134a72d) SHA1(f907ec8a1d6e5755a821e69564074ff05e426bb1) )
- ROM_LOAD16_BYTE( "8_IM2-B.UE15B", 0x200000, 0x80000, CRC(cf44b638) SHA1(0fe5bdb62492c31c3efffa6d85f5d6a3b4ddb2e0) )
- ROM_LOAD16_BYTE( "4_IM2-A.UE15A", 0x200001, 0x80000, CRC(d22b270f) SHA1(21bd2ced1b5fb3c08687addaa890ee621a56fff0) )
- ROM_LOAD16_BYTE( "7_IM3-B.UE14B", 0x300000, 0x80000, CRC(12a9441d) SHA1(d9cd51e0c3ffac5fc561e0927c419bce0157337e) )
- ROM_LOAD16_BYTE( "3_IM3-A.UE14A", 0x300001, 0x80000, CRC(8c656fc9) SHA1(c3fe5de7cd6cd520bbd205ec62ac0dda51f71eeb) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "15_OBJ11.U5", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "1_MUSIC1.UB6", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "2_MUSIC2.UC6", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
-ROM_END
-
-
-ROM_START( fantsia2 )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "prog2.g17", 0x000000, 0x80000, CRC(57c59972) SHA1(4b1da928b537cf340a67026d07bc3dfc078b0d0f) )
- ROM_LOAD16_BYTE( "prog1.f17", 0x000001, 0x80000, CRC(bf2d9a26) SHA1(92f0c1bd32f1e5e0ede3ba847242a212dfae4986) )
- ROM_LOAD16_BYTE( "scr2.g16", 0x100000, 0x80000, CRC(887b1bc5) SHA1(b6fcdc8a56ea25758f363224d256e9b6c8e30244) )
- ROM_LOAD16_BYTE( "scr1.f16", 0x100001, 0x80000, CRC(cbba3182) SHA1(a484819940fa1ef18ce679465c31075798748bac) )
- ROM_LOAD16_BYTE( "scr4.g15", 0x200000, 0x80000, CRC(ce97e411) SHA1(be0ed41362db03f384229c708f2ba4146e5cb501) )
- ROM_LOAD16_BYTE( "scr3.f15", 0x200001, 0x80000, CRC(480cc2e8) SHA1(38fe57ba1e34537f8be65fcc023ccd43369a5d94) )
- ROM_LOAD16_BYTE( "scr6.g14", 0x300000, 0x80000, CRC(b29d49de) SHA1(854b76755acf58fb8a4648a0ce72ea6bdf26c555) )
- ROM_LOAD16_BYTE( "scr5.f14", 0x300001, 0x80000, CRC(d5f88b83) SHA1(518a1f6732149f2851bbedca61f7313c39beb91b) )
- ROM_LOAD16_BYTE( "scr8.g20", 0x400000, 0x80000, CRC(694ae2b3) SHA1(82b7a565290fce07c8393af4718fd1e6136928e9) )
- ROM_LOAD16_BYTE( "scr7.f20", 0x400001, 0x80000, CRC(6068712c) SHA1(80a136d76dca566772e34d832ac11b8c7d6ce9ab) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "obj1.1i", 0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
- ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "music2.1b", 0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "music1.1a", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
-ROM_END
-
-ROM_START( fantsia2a )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "fnt2-22.bin", 0x000000, 0x80000, CRC(a3a92c4b) SHA1(6affdcb57e1e0a77c7cc33135dafe86843e9e3d8) )
- ROM_LOAD16_BYTE( "fnt2-17.bin", 0x000001, 0x80000, CRC(d0ce4493) SHA1(9cec088e6630555b6d584df23236c279909820cf) )
- ROM_LOAD16_BYTE( "fnt2-21.bin", 0x100000, 0x80000, CRC(e989c2e7) SHA1(c9eea2a89843cdd9db4a4a0539d0315c125e3e02) )
- ROM_LOAD16_BYTE( "fnt2-16.bin", 0x100001, 0x80000, CRC(8c06d372) SHA1(14fe2c8450f0f2e11e204dd524bfe32a72ddc144) )
- ROM_LOAD16_BYTE( "fnt2-20.bin", 0x200000, 0x80000, CRC(6e9f1e65) SHA1(b6f1eb1a52de18ed5b17de3ef365e5c041d15314) )
- ROM_LOAD16_BYTE( "fnt2-15.bin", 0x200001, 0x80000, CRC(85cbeb2b) SHA1(a213b461019ddb3b319b9815a76c6fb2ecfbe937) )
- ROM_LOAD16_BYTE( "fnt2-19.bin", 0x300000, 0x80000, CRC(7953226a) SHA1(955c779eae496688be2ed416d879d6e83c888368) )
- ROM_LOAD16_BYTE( "fnt2-14.bin", 0x300001, 0x80000, CRC(10d8ccff) SHA1(bf4c49d85556edf49289631ee6178d3fb7dea2cc) )
- ROM_LOAD16_BYTE( "fnt2-18.bin", 0x400000, 0x80000, CRC(4cdaeda3) SHA1(f5b478e49b59496865982409517654f48296565d) )
- ROM_LOAD16_BYTE( "fnt2-13.bin", 0x400001, 0x80000, CRC(68c7f042) SHA1(ed3c864f3d91377fec78f19897ba0b0d2bcf0d2b) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "obj1.1i", 0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
- ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "music2.1b", 0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "music1.1a", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
-ROM_END
-
-ROM_START( wownfant)
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "ep-4001 42750001 u81.bin", 0x000000, 0x80000, CRC(9942d200) SHA1(d2f69c0949881ef4aef202b564eac069c030a497) )
- ROM_LOAD16_BYTE( "ep-4001 42750001 u80.bin", 0x000001, 0x80000, CRC(17359eeb) SHA1(90bb9da6bdf56fa9eb0ad03691750518a2a3f879) )
- ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 1.bin", 0x100000, 0x200000, CRC(c318e841) SHA1(ba7af736d3b0accca474b0de1c8299eb3c449ef9) )
- ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 2.bin", 0x300000, 0x200000, CRC(8871dc3a) SHA1(8e028f1430474df19bb9a912ee9e407fe4582558) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "ep-4001 42750001 u113.bin", 0x00000, 0x80000, CRC(3e77ca1f) SHA1(f946e65a29bc02b89c02b2a869578d38cfe7e2d0) )
- ROM_LOAD( "ep-4001 42750001 u112.bin", 0x80000, 0x80000, CRC(51f4b604) SHA1(52e8ce0a2c1b9b00f04e0c775789bc550bad8ae0) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "ep-4001 42750001 u4.bin", 0x00000, 0x80000, CRC(06dc889e) SHA1(726561ff01bbde43669293a6ff7ee22b048b4118) ) // almost the same as fantasia2, just some changes to the sample references in the header
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "ep-4001 42750001 u1.bin", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
-ROM_END
-
-ROM_START( galhustl ) // An original PCB has been seen with genuine AFEGA labels
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ue17.3", 0x00000, 0x80000, CRC(b2583dbb) SHA1(536f4aa2246ec816c4f270f9d42acc090718ee8b) ) // Also found as AFEGA 3
- ROM_LOAD16_BYTE( "ud17.4", 0x00001, 0x80000, CRC(470a3668) SHA1(ad86e96ab8f1f5da23fb1feaabfb9c757965418e) ) // Also found as AFEGA 4
-
- ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "galhstl1.ub6", 0x00000, 0x80000, CRC(23848790) SHA1(2e77fbe04f46e258daecb4c5917e383c7c06a306) ) // Also found as AFEGA 1
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "galhstl2.uc6", 0xc0000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) ) // Also found as AFEGA 2
-
- ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD( "galhstl5.u5", 0x00000, 0x80000, CRC(44a18f15) SHA1(1217cf7fbbb442358b15016099efeface5dcbd22) ) // Also found as AFEGA 5
-ROM_END
-
-ROM_START( pgalvip ) // this set has extra data roms for the gfx
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "afega_15.ue17", 0x00000, 0x20000, CRC(050060ca) SHA1(1e2a1d6aaf5038269d192baf3520f4af7a299325) )
- ROM_LOAD16_BYTE( "afega_16.ud17", 0x00001, 0x20000, CRC(d32e4052) SHA1(632d9affee92a526c0e9399230ecf485922c6df4) )
-
- ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
- ROM_LOAD16_BYTE( "afega_13.rob1", 0x00000, 0x80000, CRC(ac51ef72) SHA1(01acb29ff474c52fcb323cdb14e0d6f804c93255) )
- ROM_LOAD16_BYTE( "afega_14.roa1", 0x00001, 0x80000, CRC(0877c00f) SHA1(91c325d6c21045f08abca86a9c4d46023363dd2e) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "afega_12.ub6", 0x00000, 0x20000, CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
- ROM_RELOAD( 0x40000, 0x20000 )
- ROM_LOAD( "afega_11.uc6", 0xc0000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
-
- ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD( "afega_17.u5", 0x00000, 0x80000, CRC(a8a50745) SHA1(e51963947c7a7556b8531d172b9d7bf9f321b21b) )
-ROM_END
-
-ROM_START( pgalvipa ) // this set is more like Gals Hustler
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "pgalvip_3.ue17", 0x00000, 0x80000, CRC(a48e8255) SHA1(7e8f1747420ff0d599d340915712827ca2eb3092) )
- ROM_LOAD16_BYTE( "pgalvip_4.ud17", 0x00001, 0x80000, CRC(829a2085) SHA1(3ff5f2bb730572202cd427abd7f91dd886537ab6) )
-
- ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "pgalvip_1.ub6", 0x00000, 0x20000, CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
- ROM_RELOAD( 0x40000, 0x20000 )
- ROM_LOAD( "pgalvip_2.uc6", 0xc0000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
-
- ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD( "pgalvip_5.u5", 0x00000, 0x80000, CRC(2d6e5a90) SHA1(b5487e5764d83dfecd982a8614d213c9075fbee4) )
-ROM_END
-
-/*
-
-Zip & Zap
-
-Zip Zap (pcb marked Barko Corp 950509)
-
-1x 68k
-1x Oki m6295
-1x osc 12mhz
-1x osc 16mhz
-1x fpga
-2x dipswitch banks
-
-*/
-
-ROM_START( zipzap )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 Code */
- /* all the roms for this game could do with checking on another board, this one was in pretty bad condition
- and reads weren't always consistent */
- ROM_LOAD16_BYTE( "ud17.bin", 0x000001, 0x40000, BAD_DUMP CRC(2901fae1) SHA1(0d6ca6d48c5586c05f3c02aee51a95da38b3751f) )
- ROM_LOAD16_BYTE( "ue17.bin", 0x000000, 0x40000, BAD_DUMP CRC(da6c3fc8) SHA1(4bc01bc6f62553f6ac4f7252f7d9bf0d639f6935) )
- /* gfx bitmaps */
- ROM_LOAD16_BYTE( "938.bin", 0x400000, 0x80000, CRC(61c06b60) SHA1(b3abae020009a48b99862766e0981e1118159a47) ) // good title background
- ROM_LOAD16_BYTE( "942.bin", 0x400001, 0x80000, CRC(282413b8) SHA1(e2ecaaa3c5b2355eadc016b73d7d658f25e1e0db) ) // (and corrupt gfx on select mode screen)
-
- ROM_LOAD16_BYTE( "934.bin", 0x300000, 0x80000, CRC(1e65988a) SHA1(64d6f8cbdb28755515d9bbf52f589ce1176fed58) ) // good, girls
- ROM_LOAD16_BYTE( "939.bin", 0x300001, 0x80000, CRC(8790a6a3) SHA1(94f39e48b75144cab191e2de4284c28d18b8f1c7))
-
- ROM_LOAD16_BYTE( "936.bin", 0x200000, 0x80000, CRC(596543cc) SHA1(10a0eab4ca4a8749f1703ff6fcc80d731d07d087) ) // good, girls
- ROM_LOAD16_BYTE( "940.bin", 0x200001, 0x80000, CRC(0c9dfb53) SHA1(541bd8c79408b7415713b517eacdd565d0ac5cb8) )
-
- ROM_LOAD16_BYTE( "937.bin", 0x100000, 0x80000, CRC(61dd653f) SHA1(68b5ae3423363cc64d933836bf6881431dad021a) ) // good, girls
- ROM_LOAD16_BYTE( "941.bin", 0x100001, 0x80000, CRC(320321ed) SHA1(00b52cd34cd86c105ff6dbd0248ff239de31c851) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) // sprites
- ROM_LOAD( "u5.bin", 0x000000, 0x80000, CRC(c274d8b5) SHA1(2c45961aaf8311f027a734df7e33fe085dfdd099) )
-
- ROM_REGION( 0x140000, "oki", 0 ) /* Samples */
- ROM_LOAD( "snd.bin", 0x00000, 0x80000, CRC(bc20423e) SHA1(1f4bd52ec4f9b3b3e6b10ac2b3afaadf76a2c7c9) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_RELOAD( 0xc0000, 0x80000 )
-ROM_END
-
-ROM_START( supmodel )
- ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(714b7e74) SHA1(a4f7754a4b04729084ccb1359f9bdfbad6150222) )
- ROM_LOAD16_BYTE( "prog1.7", 0x000001, 0x80000, CRC(0bb858de) SHA1(bd2039fa46fce89289e99a790400bd567f90105e) )
- ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(d07ec0ce) SHA1(88997254ea2bffa83ab4a77087905cf646ee3c12) )
- ROM_LOAD16_BYTE( "i-scr1.5", 0x100001, 0x80000, CRC(a96a8bde) SHA1(e93de2df1391a8e94d655e1c9e148196e692e661) )
- ROM_LOAD16_BYTE( "i-scr4.9", 0x200000, 0x80000, CRC(e959cab5) SHA1(13d744aa71d9485a4530418536c38a542a269e27) )
- ROM_LOAD16_BYTE( "i-scr3.4", 0x200001, 0x80000, CRC(4bf5e082) SHA1(14ab9ebe0c7a2154275b0aeb76f99d73552d862f) )
- ROM_LOAD16_BYTE( "i-scr6.8", 0x300000, 0x80000, CRC(e71337c2) SHA1(be1b532e66e70f7d30b657a88c1f9b154187636e) )
- ROM_LOAD16_BYTE( "i-scr5.3", 0x300001, 0x80000, CRC(641ccdfb) SHA1(f48dc0461bc49cfe4adcf769e9abfe83efa077a1) )
- ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(7c1813c8) SHA1(80fe97ac640847360529edfb728955e1067b0c14) )
- ROM_LOAD16_BYTE( "i-scr7.6", 0x400001, 0x80000, CRC(19c73268) SHA1(aa6dc8c817a2e9707ea74e219ab34cf826223741) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
- ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
-
- ROM_REGION( 0x140000, "oki", 0 ) /* OKIM6295 samples */
- /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
- ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(2b1f6655) SHA1(e7b52cf4bd16590c598c375d5a97b724bc9ef631) )
- ROM_RELOAD( 0x40000, 0x80000 )
- ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(cccae65a) SHA1(5e4e2e51884eaf191f103aa189ff33371fc91d6d) )
-ROM_END
-
GAME( 1990, galpanic, 0, galpanic, galpanic, driver_device, 0, ROT90, "Kaneko", "Gals Panic (Unprotected)", GAME_NO_COCKTAIL )
GAME( 1990, galpanica,galpanic, galpanica,galpanica, driver_device, 0, ROT90, "Kaneko", "Gals Panic (MCU Protected)", GAME_NO_COCKTAIL )
-GAME( 1994, supmodel, 0, supmodel, fantasia, driver_device, 0, ROT90, "Comad & New Japan System", "Super Model",GAME_NO_COCKTAIL )
-
-GAME( 1994, fantasian,fantasia, comad, fantasia, driver_device, 0, ROT90, "Comad & New Japan System", "Fantasia (940803 PCB)", GAME_NO_COCKTAIL )
-
-GAME( 1995, newfant, 0, comad, fantasia, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1995 copyright)", GAME_NO_COCKTAIL ) // the only difference between the two is the gfx rom containing the copyright
-GAME( 1994, newfanta, newfant, comad, fantasia, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1994 copyright)", GAME_NO_COCKTAIL )
-GAME( 1995, fantsy95, newfant, comad, fantasia, driver_device, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", GAME_NO_COCKTAIL )
-
-GAME( 1996, missw96, 0, comad, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 1)", GAME_NO_COCKTAIL )
-GAME( 1996, missw96a, missw96, comad, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 2)", GAME_NO_COCKTAIL )
-GAME( 1996, missw96b, missw96, comad, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 3)", GAME_NO_COCKTAIL )
-GAME( 1996, missmw96, missw96, comad, missw96, driver_device, 0, ROT0, "Comad", "Miss Mister World '96 (Nude)", GAME_NO_COCKTAIL )
-
-GAME( 1996, smissw, 0, smissw, missw96, driver_device, 0, ROT0, "Comad", "Super Miss World", GAME_NO_COCKTAIL ) // 951127 PCB
-
-GAME( 1997, fantsia2, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Explicit)", GAME_NO_COCKTAIL )
-GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Less Explicit)", GAME_NO_COCKTAIL )
-
-GAME( 2002, wownfant, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "WOW New Fantasia", GAME_NO_COCKTAIL )
-
-GAME( 1996, pgalvip, 0, galhustl, galhustl, driver_device, 0, ROT0, "ACE International / Afega","Pocket Gals V.I.P (set 1)", GAME_IMPERFECT_GRAPHICS ) // roms were all AFEGA stickered, select screen seems wrong? maybe not a final version.
-
-GAME( 1997, pgalvipa, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "<unknown>", "Pocket Gals V.I.P (set 2)", 0 )
-GAME( 1997, galhustl, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "ACE International", "Gals Hustler", 0 ) // hack of the above?
-
-GAME( 1995, zipzap, 0, zipzap, zipzap, driver_device, 0, ROT90, "Barko Corp", "Zip & Zap", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
diff --git a/src/mame/includes/galpanic.h b/src/mame/includes/galpanic.h
index a252ac7b779..2d56d126b48 100644
--- a/src/mame/includes/galpanic.h
+++ b/src/mame/includes/galpanic.h
@@ -1,18 +1,22 @@
#include "includes/kaneko16.h"
-class galpanic_state : public kaneko16_state
+class galpanic_state : public driver_device
{
public:
galpanic_state(const machine_config &mconfig, device_type type, const char *tag)
- : kaneko16_state(mconfig, type, tag),
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
m_bgvideoram(*this, "bgvideoram"),
m_fgvideoram(*this, "fgvideoram"),
m_spriteram(*this, "spriteram"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
- m_generic_paletteram_16(*this, "paletteram") { }
+ m_generic_paletteram_16(*this, "paletteram"),
+ m_pandora(*this, "pandora")
+ { }
+ required_device<cpu_device> m_maincpu;
required_shared_ptr<UINT16> m_bgvideoram;
required_shared_ptr<UINT16> m_fgvideoram;
bitmap_ind16 m_bitmap;
@@ -22,22 +26,16 @@ public:
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
required_shared_ptr<UINT16> m_generic_paletteram_16;
+ required_device<kaneko_pandora_device> m_pandora;
DECLARE_WRITE16_MEMBER(galpanic_6295_bankswitch_w);
- DECLARE_WRITE16_MEMBER(galpanica_6295_bankswitch_w);
- DECLARE_WRITE16_MEMBER(galpanica_misc_w);
DECLARE_WRITE16_MEMBER(galpanic_coin_w);
- DECLARE_WRITE16_MEMBER(galpanic_bgvideoram_mirror_w);
- DECLARE_READ16_MEMBER(comad_timer_r);
- DECLARE_READ16_MEMBER(zipzap_random_read);
- DECLARE_READ8_MEMBER(comad_okim6295_r);
+
DECLARE_VIDEO_START(galpanic);
DECLARE_PALETTE_INIT(galpanic);
UINT32 screen_update_galpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- UINT32 screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_galpanic(screen_device &screen, bool state);
TIMER_DEVICE_CALLBACK_MEMBER(galpanic_scanline);
- TIMER_DEVICE_CALLBACK_MEMBER(galhustl_scanline);
void comad_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_fgbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
/*----------- defined in video/galpanic.c -----------*/
diff --git a/src/mame/video/galpanic.c b/src/mame/video/galpanic.c
index dfbda6567ee..db25b5e3018 100644
--- a/src/mame/video/galpanic.c
+++ b/src/mame/video/galpanic.c
@@ -6,7 +6,6 @@
VIDEO_START_MEMBER(galpanic_state,galpanic)
{
m_screen->register_screen_bitmap(m_bitmap);
- m_screen->register_screen_bitmap(m_sprites_bitmap);
}
PALETTE_INIT_MEMBER(galpanic_state,galpanic)
@@ -43,42 +42,6 @@ WRITE16_MEMBER(galpanic_state::galpanic_paletteram_w)
}
-void galpanic_state::comad_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- UINT16 *spriteram16 = m_spriteram;
- int offs;
- int sx=0, sy=0;
-
- for (offs = 0;offs < m_spriteram.bytes()/2;offs += 4)
- {
- int code,color,flipx,flipy;
-
- code = spriteram16[offs + 1] & 0x1fff;
- color = (spriteram16[offs] & 0x003c) >> 2;
- flipx = spriteram16[offs] & 0x0002;
- flipy = spriteram16[offs] & 0x0001;
-
- if((spriteram16[offs] & 0x6000) == 0x6000) /* Link bits */
- {
- sx += spriteram16[offs + 2] >> 6;
- sy += spriteram16[offs + 3] >> 6;
- }
- else
- {
- sx = spriteram16[offs + 2] >> 6;
- sy = spriteram16[offs + 3] >> 6;
- }
-
- sx = (sx&0x1ff) - (sx&0x200);
- sy = (sy&0x1ff) - (sy&0x200);
-
- m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
- code,
- color,
- flipx,flipy,
- sx,sy,0);
- }
-}
void galpanic_state::draw_fgbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
@@ -107,25 +70,3 @@ UINT32 galpanic_state::screen_update_galpanic(screen_device &screen, bitmap_ind1
return 0;
}
-
-UINT32 galpanic_state::screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- /* copy the temporary bitmap to the screen */
- copybitmap(bitmap,m_bitmap,0,0,0,0,cliprect);
-
- draw_fgbitmap(bitmap, cliprect);
-
-
-// if(galpanic_clear_sprites)
- {
- m_sprites_bitmap.fill(0, cliprect);
- comad_draw_sprites(bitmap,cliprect);
- }
-// else
-// {
-// /* keep sprites on the bitmap without clearing them */
-// comad_draw_sprites(machine(),m_sprites_bitmap,0);
-// copybitmap_trans(bitmap,m_sprites_bitmap,0,0,0,0,cliprect,0);
-// }
- return 0;
-}
diff --git a/src/mame/video/kaneko_spr.c b/src/mame/video/kaneko_spr.c
index 41eede54d8b..a55f32ddf0f 100644
--- a/src/mame/video/kaneko_spr.c
+++ b/src/mame/video/kaneko_spr.c
@@ -624,3 +624,42 @@ kaneko_kc002_sprite_device::kaneko_kc002_sprite_device(const machine_config &mco
: kaneko16_sprite_device(mconfig, tag, owner, clock, KANEKO_KC002_SPRITE)
{
}
+
+// this is a bootleg implementation, used by Gals Hustler and Zip Zap, the latter not really working at all well with the original
+// link features (assuming the bad program roms aren't the cause) it's clearly derived from this sprite system tho.
+void kaneko16_sprite_device::bootleg_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes)
+{
+// UINT16 *spriteram16 = m_spriteram;
+ int offs;
+ int sx=0, sy=0;
+
+ for (offs = 0;offs < spriteram16_bytes/2;offs += 4)
+ {
+ int code,color,flipx,flipy;
+
+ code = spriteram16[offs + 1] & 0x1fff;
+ color = (spriteram16[offs] & 0x003c) >> 2;
+ flipx = spriteram16[offs] & 0x0002;
+ flipy = spriteram16[offs] & 0x0001;
+
+ if((spriteram16[offs] & 0x6000) == 0x6000) /* Link bits */
+ {
+ sx += spriteram16[offs + 2] >> 6;
+ sy += spriteram16[offs + 3] >> 6;
+ }
+ else
+ {
+ sx = spriteram16[offs + 2] >> 6;
+ sy = spriteram16[offs + 3] >> 6;
+ }
+
+ sx = (sx&0x1ff) - (sx&0x200);
+ sy = (sy&0x1ff) - (sy&0x200);
+
+ m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ code,
+ color,
+ flipx,flipy,
+ sx,sy,0);
+ }
+} \ No newline at end of file
diff --git a/src/mame/video/kaneko_spr.h b/src/mame/video/kaneko_spr.h
index 199136e1754..69b3bc48f20 100644
--- a/src/mame/video/kaneko_spr.h
+++ b/src/mame/video/kaneko_spr.h
@@ -47,6 +47,8 @@ public:
template<class _BitmapClass>
void kaneko16_render_sprites_common(_BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT16* spriteram16, int spriteram16_bytes);
+ void bootleg_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes);
+
DECLARE_READ16_MEMBER(kaneko16_sprites_regs_r);
DECLARE_WRITE16_MEMBER(kaneko16_sprites_regs_w);