Previous 199869 Revisions Next

r35021 Saturday 14th February, 2015 at 12:25:44 UTC by David Haywood
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.
[src/mame/drivers]expro02.c galpanic.c
[src/mame/includes]galpanic.h
[src/mame/video]galpanic.c kaneko_spr.c kaneko_spr.h

trunk/src/mame/drivers/expro02.c
r243532r243533
22
33   Kaneko EXPRO-02 board
44
5  Used by the newer revisions of Gals Panic
5  Used by the newer (or possibly older/original) revisions of Gals Panic
6  also the basis of the various Comad clones
67
8   Fantasia         1994 Comad
9   Super Model      1994 Comad
10   New Fantasia     1994 Comad
11   New Fantasia     1995 Comad (set 2)
12   Fantasy '95      1995 Hi-max Technology Inc. (Running on a Comad PCB)
13   Miss World '96   1996 Comad
14   Ms/Mr World '96  1996 Comad
15   Fantasia II      1997 Comad
16   Gals Hustler     1997 Ace International
17
718 Notes:
819  - In gfx data banking function, some strange gfx are shown. Timing issue?
920
1021 TODO:
1122 - irq sources are unknown at current time
1223
24This is a single board, no daughterboard. There are only 4 IC's socketed, the
25rest is soldered to the board, and no piggybacked ROMs.
26Board number is MDK 321 V-0    EXPRO-02
1327
1428Gals Panic
1529Kaneko, 1990
r243532r243533
5266                 clock input on any of the pins of these chips. They're not ROMs either
5367                 because the pinout doesn't match any known EPROMs.
5468                 There are no markings on the chips other than 'GP-U27' & 'GP-U41'
55                 If GP-U41 is removed, on bootup the PCB gives an error 'BG ERROR' and
69                 If GP-U41 is removed, on bootup the PCB gives an error 'fg_ind8 ERROR' and
5670                 a memory address. If GP-U27 is removed, the PCB works but there are no
5771                 background graphics.
5872
r243532r243533
143157
144158the layer is misplaced however, different scroll regs?
145159
160 - On Gals Hustler there is an extra test mode if you hold down player 2
161   button 1, I have no idea if its complete or not
146162
147163
164-- Zip Zap notes ---
165
166Bg for select screens seems to be corrupt
167
168-- General Notes --
169
170Fantasia etc. games are locking up when the girl 'changes' due to not liking
171the way we handle OKI status reads.. however these reads are correct according to
172tests done with a real chip so there must be something odd going on on this hardware
173
174From Miss World 96 manual/dipswitch sheet:
175
176A/B/C Three Versions depending on nude grade
177 A-Version is the extreme hottest nude models
178 B-Version is the more attractive nude models
179 C-Version is very beautiful bikini models
180
181An example of this can be seen in the Fantasia II sets with type A & B
182The current set of Super Model is an example of type C
183
184TODO:
185- There is a vector for IRQ4. The function does nothing in galpanic but is
186  more complicated in the Comad ones. However I'm not triggering it, and
187  they seems to work anyway...
188- There was a ROM in the newfant set, obj2_14.rom, which was identical to
189  Terminator 2's t2.107. I can only assume this was a mistake of the dumper.
190- lots of unknown reads and writes, also in galpanic but particularly in
191  the Comad ones.
192- fantasia and newfant have a service mode but they doesn't work well (text
193  is missing or replaced by garbage). This might be just how the games are.
194- Is there a background enable register? Or a background clear. fantasia and
195  newfant certainly look ugly as they are.
196
148197*/
149198
150199#include "emu.h"
r243532r243533
153202#include "machine/kaneko_hit.h"
154203#include "video/kaneko_tmap.h"
155204#include "video/kaneko_spr.h"
205#include "includes/galpnipt.h"
156206
157207class expro02_state : public driver_device
158208{
159209public:
160210   expro02_state(const machine_config &mconfig, device_type type, const char *tag)
161211      : driver_device(mconfig, type, tag),
162      m_galsnew_bg_pixram(*this, "galsnew_bgram"),
163      m_galsnew_fg_pixram(*this, "galsnew_fgram"),
212      m_expro02_fg_ind8_pixram(*this, "fg_ind8ram"),
213      m_expro02_bg_rgb555_pixram(*this, "bg_rgb555ram"),
164214      m_view2_0(*this, "view2_0"),
165215      m_kaneko_spr(*this, "kan_spr"),
166216      m_spriteram(*this, "spriteram"),
167217      m_maincpu(*this, "maincpu"),
168218      m_palette(*this, "palette"),
169      m_generic_paletteram_16(*this, "paletteram") { }
219      m_generic_paletteram_16(*this, "paletteram"),
220      m_screen(*this, "screen")
221   { }
170222
171   optional_shared_ptr<UINT16> m_galsnew_bg_pixram;
172   optional_shared_ptr<UINT16> m_galsnew_fg_pixram;
223   optional_shared_ptr<UINT16> m_expro02_fg_ind8_pixram;
224   optional_shared_ptr<UINT16> m_expro02_bg_rgb555_pixram;
173225   optional_device<kaneko_view2_tilemap_device> m_view2_0;
174226   optional_device<kaneko16_sprite_device> m_kaneko_spr;
175227   optional_shared_ptr<UINT16> m_spriteram;
176228
177229   UINT16 m_vram_0_bank_num;
178230   UINT16 m_vram_1_bank_num;
179   DECLARE_WRITE16_MEMBER(galsnew_6295_bankswitch_w);
180   DECLARE_WRITE16_MEMBER(galsnew_paletteram_w);
181   DECLARE_WRITE16_MEMBER(galsnew_vram_0_bank_w);
182   DECLARE_WRITE16_MEMBER(galsnew_vram_1_bank_w);
183   DECLARE_DRIVER_INIT(galsnew);
231   DECLARE_WRITE16_MEMBER(expro02_6295_bankswitch_w);
232   DECLARE_WRITE16_MEMBER(expro02_paletteram_w);
233   DECLARE_WRITE16_MEMBER(expro02_vram_0_bank_w);
234   DECLARE_WRITE16_MEMBER(expro02_vram_1_bank_w);
235   DECLARE_DRIVER_INIT(expro02);
184236   virtual void machine_reset();
185237   virtual void video_start();
186238   DECLARE_PALETTE_INIT(expro02);
187   UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
239   UINT32 screen_update_backgrounds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
240   UINT32 screen_update_expro02(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
241   UINT32 screen_update_zipzap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
188242   TIMER_DEVICE_CALLBACK_MEMBER(expro02_scanline);
243
189244   required_device<cpu_device> m_maincpu;
190245   required_device<palette_device> m_palette;
191246   required_shared_ptr<UINT16> m_generic_paletteram_16;
247   required_device<screen_device> m_screen;
248
249   // comad
250   READ16_MEMBER(comad_timer_r);
251   READ8_MEMBER(comad_okim6295_r);
252   WRITE16_MEMBER(galpanica_6295_bankswitch_w);
192253};
193254
194255
r243532r243533
203264      palette.set_pen_color(2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
204265}
205266
206UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
267UINT32 expro02_state::screen_update_backgrounds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
207268{
208269//  kaneko16_fill_bitmap(machine(),bitmap,cliprect);
209270   int y,x;
r243532r243533
217278
218279      for (x=0;x<256;x++)
219280      {
220         UINT16 dat = (m_galsnew_fg_pixram[count] & 0xfffe)>>1;
281         UINT16 dat = (m_expro02_bg_rgb555_pixram[count] & 0xfffe)>>1;
221282         dat+=2048;
222283         dest[x] = dat;
223284         count++;
r243532r243533
231292
232293      for (x=0;x<256;x++)
233294      {
234         UINT16 dat = (m_galsnew_bg_pixram[count]);
295         UINT16 dat = (m_expro02_fg_ind8_pixram[count]);
235296         //dat &=0x3ff;
236297         if (dat)
237298            dest[x] = dat;
r243532r243533
246307
247308   screen.priority().fill(0, cliprect);
248309
249   m_view2_0->kaneko16_prepare(bitmap, cliprect);
310   if (m_view2_0)
311   {
312      m_view2_0->kaneko16_prepare(bitmap, cliprect);
250313
251   for ( i = 0; i < 8; i++ )
252   {
253      m_view2_0->render_tilemap_chip(screen,bitmap,cliprect,i);
314      for (i = 0; i < 8; i++)
315      {
316         m_view2_0->render_tilemap_chip(screen, bitmap, cliprect, i);
317      }
254318   }
319   return 0;
320}
255321
322UINT32 expro02_state::screen_update_expro02(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
323{
324   screen_update_backgrounds(screen, bitmap, cliprect);
256325   m_kaneko_spr->kaneko16_render_sprites(bitmap,cliprect, screen.priority(), m_spriteram, m_spriteram.bytes());
257326   return 0;
258327}
259328
329UINT32 expro02_state::screen_update_zipzap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
330{
331   screen_update_backgrounds(screen, bitmap, cliprect);
332   m_kaneko_spr->bootleg_draw_sprites(bitmap,cliprect, m_spriteram, m_spriteram.bytes());
333   return 0;
334}
335
336
260337void expro02_state::video_start()
261338{
262339}
r243532r243533
268345 *
269346 *************************************/
270347
271static INPUT_PORTS_START( galsnew )
348static INPUT_PORTS_START( expro02 )
272349
273350   PORT_START("DSW1")
274351   PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SWA:1,2")
r243532r243533
346423
347424
348425static INPUT_PORTS_START( galsnewa )
349   PORT_INCLUDE( galsnew )
426   PORT_INCLUDE( expro02 )
350427
351428   PORT_MODIFY("DSW1")
352429   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )  PORT_DIPLOCATION("SWA:3")
r243532r243533
398475   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
399476INPUT_PORTS_END
400477
478
479static INPUT_PORTS_START( fantasiaa )
480   PORT_START("DSW1")
481   DIFFICULTY_DEMO_SOUNDS      /* Unknown dip might be freeze/vblank? - code at 0x000734 ('fantasia') or 0x00075a ('newfant') - not called ? */
482   GALS_PANIC_JOYSTICK_4WAY(1) /* "Shot2" is shown in "test mode" but not used by the game */
483
484   PORT_START("DSW2")
485   COINAGE_TEST_LOC        /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
486   GALS_PANIC_JOYSTICK_4WAY(2) /* "Shot2" is shown in "test mode" but not used by the game */
487
488   SYSTEM_NO_SERVICE       /* MAME may crash when TILT is pressed (see notes), "Service" is shown in "test mode" */
489INPUT_PORTS_END
490
491/* Same as 'fantasia', but no "Service Mode" Dip Switch (and thus no "hidden" buttons) */
492static INPUT_PORTS_START( missw96 )
493   PORT_START("DSW1")
494   DIFFICULTY_DEMO_SOUNDS      /* Unknown dip might be freeze/vblank? - code at 0x00074e - not called ? */
495   GALS_PANIC_JOYSTICK_4WAY(1)
496
497   PORT_START("DSW2")
498   COINAGE_NO_TEST_LOC     /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
499   GALS_PANIC_JOYSTICK_4WAY(2)
500
501   SYSTEM_NO_SERVICE       /* MAME may crash when TILT is pressed (see notes) */
502INPUT_PORTS_END
503
504static INPUT_PORTS_START( galhustl )
505   PORT_START("DSW1")
506   PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) )    PORT_DIPLOCATION("SW2:1,2")
507   PORT_DIPSETTING(      0x0000, "6" )
508   PORT_DIPSETTING(      0x0001, "7" )
509   PORT_DIPSETTING(      0x0003, "8" )
510   PORT_DIPSETTING(      0x0002, "10" )
511   PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )
512   PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" )
513   PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" )
514   PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" )
515   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("SW2:7")
516   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
517   PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
518   PORT_SERVICE_DIPLOC(  0x0080, IP_ACTIVE_LOW, "SW2:8" )
519   GALS_PANIC_JOYSTICK_8WAY(1)
520
521   PORT_START("DSW2")
522   PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )  PORT_DIPLOCATION("SW1:1,2,3")
523   PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
524   PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
525   PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
526   PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
527   PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
528   PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
529   PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
530   PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
531   PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW1:4,5")
532   PORT_DIPSETTING(      0x0010, DEF_STR( Easy ) )         /* 5000 - 7000 */
533   PORT_DIPSETTING(      0x0018, DEF_STR( Normal ) )       /* 4000 - 6000 */
534   PORT_DIPSETTING(      0x0008, DEF_STR( Hard ) )         /* 6000 - 8000 */
535   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )      /* 7000 - 9000 */
536   PORT_DIPNAME( 0x0060, 0x0060, "Play Time" )     PORT_DIPLOCATION("SW1:6,7")
537   PORT_DIPSETTING(      0x0040, "120 Sec" )
538   PORT_DIPSETTING(      0x0060, "100 Sec" )
539   PORT_DIPSETTING(      0x0020, "80 Sec" )
540   PORT_DIPSETTING(      0x0000, "70 Sec" )
541   PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" )
542   GALS_PANIC_JOYSTICK_8WAY(2)
543
544   SYSTEM_NO_TILT
545INPUT_PORTS_END
546
547static INPUT_PORTS_START( zipzap )
548   PORT_START("DSW1")
549   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
550   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
551   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
552   PORT_DIPNAME( 0x0002, 0x0002, "Additional Obstacles" ) /* Adds 4 Blocker/Bumpers to playing field */
553   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
554   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
555   PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
556   PORT_DIPSETTING(      0x0000, "1" )
557   PORT_DIPSETTING(      0x0008, "2" )
558   PORT_DIPSETTING(      0x000c, "3" )
559   PORT_DIPSETTING(      0x0004, "4" )
560   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
561   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
562   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
563   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
564   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
565   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
566   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
567   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
568   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
569   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
570   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
571   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
572   GALS_PANIC_JOYSTICK_8WAY(1)
573
574   PORT_START("DSW2")
575   PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )
576   PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
577   PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
578   PORT_DIPSETTING(      0x0003, DEF_STR( 1C_1C ) )
579   PORT_DIPSETTING(      0x0002, DEF_STR( 1C_2C ) )
580   PORT_DIPNAME( 0x0004, 0x0004, "Select Player Mode" ) /* Amateur, Normal & Exelent Modes */
581   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
582   PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
583   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
584   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
585   PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
586   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
587   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
588   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
589   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
590   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
591   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
592   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
593   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
594   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
595   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
596   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
597   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
598   GALS_PANIC_JOYSTICK_8WAY(2)
599
600   SYSTEM_NO_TILT
601INPUT_PORTS_END
602
401603/*************************************
402604 *
403605 *  Sound handlers
404606 *
405607 *************************************/
406608
407WRITE16_MEMBER(expro02_state::galsnew_6295_bankswitch_w)
609WRITE16_MEMBER(expro02_state::expro02_6295_bankswitch_w)
408610{
409611   if (ACCESSING_BITS_8_15)
410612   {
r243532r243533
419621 *
420622 *************************************/
421623
422WRITE16_MEMBER(expro02_state::galsnew_paletteram_w)
624WRITE16_MEMBER(expro02_state::expro02_paletteram_w)
423625{
424626   data = COMBINE_DATA(&m_generic_paletteram_16[offset]);
425627   m_palette->set_pen_color(offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1));
r243532r243533
434636 *
435637 *************************************/
436638
437static ADDRESS_MAP_START( galsnew_map, AS_PROGRAM, 16, expro02_state )
639
640static ADDRESS_MAP_START( expro02_video_base_map, AS_PROGRAM, 16, expro02_state )
641   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fg_ind8ram")
642   AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("bg_rgb555ram")
643   AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device,  kaneko_tmap_vram_r, kaneko_tmap_vram_w )
644   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(expro02_paletteram_w) AM_SHARE("paletteram") // palette?
645   AM_RANGE(0x680000, 0x68001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device,  kaneko_tmap_regs_r, kaneko_tmap_regs_w)
646   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")    // sprites? 0x72f words tested
647   AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
648   AM_RANGE(0xd80000, 0xd80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_1_tilebank_w)   /* ??? */
649   AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_0_tilebank_w)   /* ??? */
650ADDRESS_MAP_END
651
652static ADDRESS_MAP_START( expro02_video_base_map_noview2, AS_PROGRAM, 16, expro02_state )
653   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fg_ind8ram")
654   AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("bg_rgb555ram")
655   AM_RANGE(0x580000, 0x583fff) AM_NOP // games still makes leftover accesses
656   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(expro02_paletteram_w) AM_SHARE("paletteram") // palette?
657   AM_RANGE(0x680000, 0x68001f) AM_NOP // games still makes leftover accesses
658   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")    // sprites? 0x72f words tested
659   AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
660   AM_RANGE(0xd80000, 0xd80001) AM_NOP // games still makes leftover accesses
661   AM_RANGE(0xe80000, 0xe80001) AM_NOP // games still makes leftover accesses
662ADDRESS_MAP_END
663
664static ADDRESS_MAP_START( expro02_map, AS_PROGRAM, 16, expro02_state )
665   AM_IMPORT_FROM(expro02_video_base_map)
438666   AM_RANGE(0x000000, 0x03ffff) AM_ROM // main program
439667   AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("user2",0) // other data
440668   AM_RANGE(0x100000, 0x3fffff) AM_ROM AM_REGION("user1",0) // main data
441669   AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
670   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
671   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
672   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
673   AM_RANGE(0x900000, 0x900001) AM_WRITE(expro02_6295_bankswitch_w)
674   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP    /* ??? */
675   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
676   AM_RANGE(0xe00000, 0xe00015) AM_DEVREADWRITE("calc1_mcu", kaneko_hit_device, kaneko_hit_r,kaneko_hit_w)
677ADDRESS_MAP_END
442678
443679
444   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("galsnew_bgram")
445   AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("galsnew_fgram")
680// bigger ROM space, OKI commands moved, no CALC mcu
681static ADDRESS_MAP_START( fantasia_map, AS_PROGRAM, 16, expro02_state )
682   AM_IMPORT_FROM(expro02_video_base_map)
683   AM_RANGE(0x000000, 0x4fffff) AM_ROM
684   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
685   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
686   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
687   AM_RANGE(0x800006, 0x800007) AM_NOP // ? used ?
688   AM_RANGE(0x900000, 0x900001) AM_WRITE(expro02_6295_bankswitch_w)
689   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP    /* ??? */
690   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
691   AM_RANGE(0xf00000, 0xf00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
692ADDRESS_MAP_END
446693
447   AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device,  kaneko_tmap_vram_r, kaneko_tmap_vram_w )
448694
449   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galsnew_paletteram_w) AM_SHARE("paletteram") // palette?
450695
451   AM_RANGE(0x680000, 0x68001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device,  kaneko_tmap_regs_r, kaneko_tmap_regs_w)
696static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16, expro02_state )
697   AM_IMPORT_FROM(expro02_video_base_map_noview2)
698   AM_RANGE(0x000000, 0x4fffff) AM_ROM
699   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
700   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
701   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
702//  AM_RANGE(0x800006, 0x800007)    ??
703   AM_RANGE(0x80000a, 0x80000b) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
704   AM_RANGE(0x80000c, 0x80000d) AM_READ(comad_timer_r) /* missw96 bits 8-a = timer? palette update code waits for them to be 111 */
705   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
706   AM_RANGE(0xc00000, 0xc0ffff) AM_RAM
707   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
708   AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
709   AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* newfant */
710ADDRESS_MAP_END
452711
453   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")    // sprites? 0x72f words tested
712static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, expro02_state )
713   AM_IMPORT_FROM(expro02_video_base_map_noview2)
714   AM_RANGE(0x000000, 0x4fffff) AM_ROM
715   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
716   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
717   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
718//  AM_RANGE(0x800006, 0x800007)    ??
719   AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
720   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
721   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP    /* coin counters, + ? */
722   AM_RANGE(0xc80000, 0xc80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00)
723   AM_RANGE(0xf80000, 0xf8ffff) AM_RAM
724ADDRESS_MAP_END
454725
455   AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
456726
727static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, expro02_state )
728   AM_RANGE(0x000000, 0x0fffff) AM_ROM
729   AM_RANGE(0x200000, 0x2fffff) AM_ROM AM_REGION("maincpudata", 0)
730
731   AM_RANGE(0x600800, 0x600fff) AM_RAM // writes only 1?
457732   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
458733   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
459   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
734   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
735   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
736   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP // ?
737   AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
738   AM_RANGE(0xe80000, 0xe8ffff) AM_RAM
460739
461   AM_RANGE(0x900000, 0x900001) AM_WRITE(galsnew_6295_bankswitch_w)
740   AM_RANGE(0x780000, 0x78001f) AM_NOP // prevent sprites being flipped
462741
463   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP    /* ??? */
742   AM_IMPORT_FROM(expro02_video_base_map_noview2)
464743
465   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
744ADDRESS_MAP_END
466745
467   AM_RANGE(0xd80000, 0xd80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_1_tilebank_w)   /* ??? */
746static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, expro02_state )
747   AM_RANGE(0x000000, 0x4fffff) AM_ROM
748   AM_RANGE(0x701000, 0x71ffff) AM_RAM
749   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
750   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
751   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
752   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
753   AM_RANGE(0xc00000, 0xc00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
754   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM     // main ram
468755
469   AM_RANGE(0xe00000, 0xe00015) AM_DEVREADWRITE("calc1_mcu", kaneko_hit_device, kaneko_hit_r,kaneko_hit_w)
756   AM_RANGE(0x780000, 0x78001f) AM_NOP // prevent sprites being flipped
470757
471   AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_0_tilebank_w)   /* ??? */
758   AM_IMPORT_FROM(expro02_video_base_map_noview2)
472759ADDRESS_MAP_END
473760
474
475// bigger rom space, OKI commands moved
476//  no CALC mcu
477static ADDRESS_MAP_START( fantasia_map, AS_PROGRAM, 16, expro02_state )
761static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, expro02_state )
762   AM_IMPORT_FROM(expro02_video_base_map_noview2)
478763   AM_RANGE(0x000000, 0x4fffff) AM_ROM
479   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("galsnew_bgram")
480   AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_SHARE("galsnew_fgram")
481   AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device,  kaneko_tmap_vram_r, kaneko_tmap_vram_w )
482   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galsnew_paletteram_w) AM_SHARE("paletteram") // palette?
483   AM_RANGE(0x680000, 0x68001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device,  kaneko_tmap_regs_r, kaneko_tmap_regs_w)
484   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")    // sprites? 0x72f words tested
485   AM_RANGE(0x780000, 0x78001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
764   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
486765   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
487766   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
488   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW3")
489   AM_RANGE(0x800006, 0x800007) AM_NOP // ? used ?
490   AM_RANGE(0x900000, 0x900001) AM_WRITE(galsnew_6295_bankswitch_w)
491   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP    /* ??? */
767   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
768   AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
769   AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r)
770   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
771   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
492772   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
493   AM_RANGE(0xd80000, 0xd80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_1_tilebank_w)   /* ??? */
494   AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE("view2_0",kaneko_view2_tilemap_device,galsnew_vram_0_tilebank_w)   /* ??? */
495   AM_RANGE(0xf00000, 0xf00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
773   AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
774   AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
775   AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
776   AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
496777ADDRESS_MAP_END
497778
779static ADDRESS_MAP_START( smissw_map, AS_PROGRAM, 16, expro02_state )
780   AM_IMPORT_FROM(expro02_video_base_map_noview2)
781   AM_RANGE(0x000000, 0x4fffff) AM_ROM
782   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
783   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
784   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
785   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
786   AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
787   AM_RANGE(0x80000e, 0x80000f) AM_READ(comad_timer_r)
788   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
789   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
790   AM_RANGE(0xc00000, 0xc0ffff) AM_RAM
791   AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
792   AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
793   AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
794   AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
795ADDRESS_MAP_END
796
797
498798/*************************************
499799 *
500800 *  Initialization & interrupts
r243532r243533
519819
520820/*************************************
521821 *
822 *  Comad specific (kludges?)
823 *
824 *************************************/
825
826READ16_MEMBER(expro02_state::comad_timer_r)
827{
828   return (m_screen->vpos() & 0x07) << 8;
829}
830
831/* a kludge! */
832READ8_MEMBER(expro02_state::comad_okim6295_r)
833{
834   UINT16 retvalue;
835//  retvalue = m_oki->read_status(); // doesn't work, causes lockups when girls change..
836   retvalue = machine().rand();
837   return retvalue;
838}
839
840WRITE16_MEMBER(expro02_state::galpanica_6295_bankswitch_w)
841{
842   if (ACCESSING_BITS_8_15)
843   {
844      UINT8 *rom = memregion("oki")->base();
845
846      memcpy(&rom[0x30000],&rom[0x40000 + ((data >> 8) & 0x0f) * 0x10000],0x10000);
847   }
848}
849
850
851
852
853/*************************************
854 *
522855 *  Graphics definitions
523856 *
524857 *************************************/
r243532r243533
535868};
536869
537870
538static GFXDECODE_START( 1x4bit_1x4bit )
871static GFXDECODE_START( expro02 )
539872   GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 0x100,      0x40 ) // [0] Sprites
540   GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 0x400,      0x40 ) // [0] bg tiles
873   GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 0x400,      0x40 ) // [0] View2 tiles
541874GFXDECODE_END
542875
876static GFXDECODE_START( expro02_noview2 )
877   GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 0x100,      0x40 ) // [0] Sprites
878GFXDECODE_END
879
543880/*************************************
544881 *
545882 *  Machine driver
546883 *
547884 *************************************/
548885
549static MACHINE_CONFIG_START( galsnew, expro02_state )
886static MACHINE_CONFIG_START( expro02, expro02_state )
550887
551888   /* basic machine hardware */
552889   MCFG_CPU_ADD("maincpu", M68000, 12000000)
553   MCFG_CPU_PROGRAM_MAP(galsnew_map)
890   MCFG_CPU_PROGRAM_MAP(expro02_map)
554891   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", expro02_state, expro02_scanline, "screen", 0, 1)
555892
556893   /* CALC01 MCU @ 16Mhz (unknown type, simulated) */
r243532r243533
561898   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
562899   MCFG_SCREEN_SIZE(256, 256)
563900   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-32-1)
564   MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_galsnew)
901   MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_expro02)
565902   MCFG_SCREEN_PALETTE("palette")
566903
567   MCFG_GFXDECODE_ADD("gfxdecode", "palette", 1x4bit_1x4bit)
904   MCFG_GFXDECODE_ADD("gfxdecode", "palette", expro02)
568905   MCFG_PALETTE_ADD("palette", 2048 + 32768)
569906   MCFG_PALETTE_INIT_OWNER(expro02_state, expro02)
570907
r243532r243533
595932MACHINE_CONFIG_END
596933
597934
598static MACHINE_CONFIG_DERIVED( fantasia, galsnew )
599
935static MACHINE_CONFIG_DERIVED( comad, expro02 )
600936   /* basic machine hardware */
601937   MCFG_CPU_MODIFY("maincpu")
602938   MCFG_CPU_PROGRAM_MAP(fantasia_map)
603939
940   MCFG_DEVICE_REMOVE("calc1_mcu")
941
604942   MCFG_DEVICE_MODIFY("view2_0")
605943   // these values might not be correct, behavior differs from original boards
606944   kaneko_view2_tilemap_device::set_invert_flip(*device, 1);
607945   kaneko_view2_tilemap_device::set_offset(*device, -256, -216, 256, 224);
608946
609
610947   MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(0))  /* a guess, and certainly wrong */
948MACHINE_CONFIG_END
611949
950static MACHINE_CONFIG_DERIVED( comad_noview2, comad )
951   MCFG_DEVICE_REMOVE("view2_0")
952   
953   MCFG_GFXDECODE_MODIFY("gfxdecode", expro02_noview2)
612954MACHINE_CONFIG_END
613955
956
957static MACHINE_CONFIG_DERIVED( fantasia, comad_noview2 )
958   MCFG_CPU_MODIFY("maincpu")
959   MCFG_CPU_CLOCK(10000000)
960   MCFG_CPU_PROGRAM_MAP(comad_map)
961MACHINE_CONFIG_END
962
963static MACHINE_CONFIG_DERIVED( supmodel, comad_noview2 )
964   MCFG_CPU_MODIFY("maincpu")
965   MCFG_CPU_PROGRAM_MAP(supmodel_map)
966   MCFG_OKIM6295_REPLACE("oki", 1584000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
967   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
968MACHINE_CONFIG_END
969
970static MACHINE_CONFIG_DERIVED( smissw, comad_noview2 ) // 951127 PCB, 12 & 16 clocks
971   MCFG_CPU_MODIFY("maincpu")
972   MCFG_CPU_PROGRAM_MAP(smissw_map)
973MACHINE_CONFIG_END
974
975static MACHINE_CONFIG_DERIVED( fantsia2, comad_noview2 )
976   MCFG_CPU_MODIFY("maincpu")
977   MCFG_CPU_PROGRAM_MAP(fantsia2_map)
978MACHINE_CONFIG_END
979
980static MACHINE_CONFIG_DERIVED( galhustl, comad_noview2 )
981   MCFG_CPU_MODIFY("maincpu")
982   MCFG_CPU_PROGRAM_MAP(galhustl_map)
983   MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
984   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
985
986    MCFG_SCREEN_MODIFY("screen")
987    MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_zipzap)
988MACHINE_CONFIG_END
989
990static MACHINE_CONFIG_DERIVED( zipzap, comad_noview2 )
991   /* basic machine hardware */
992   MCFG_CPU_MODIFY("maincpu")
993   MCFG_CPU_PROGRAM_MAP(zipzap_map)
994   MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
995   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
996
997    MCFG_SCREEN_MODIFY("screen") // doesn't work with original kaneko_spr implementation
998    MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_zipzap)
999MACHINE_CONFIG_END
1000
6141001/*************************************
6151002 *
6161003 *  ROM definition(s)
r243532r243533
8411228   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
8421229   ROM_LOAD16_BYTE( "16.pro2",  0x000000, 0x80000, CRC(e27c6c57) SHA1(420b66928c46e76fa2496f221691dd6c34542287) ) /* PCB location is silkscreened under EPROM sockets */
8431230   ROM_LOAD16_BYTE( "13.pro1",  0x000001, 0x80000, CRC(68d27413) SHA1(84cb7d6523325496469d621f6f4da1b719162147) )
844   ROM_LOAD16_BYTE( "9.bg7",    0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
845   ROM_LOAD16_BYTE( "5.bg3",    0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
846   ROM_LOAD16_BYTE( "8.bg6",    0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
847   ROM_LOAD16_BYTE( "4.bg2",    0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
848   ROM_LOAD16_BYTE( "7.bg5",    0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
849   ROM_LOAD16_BYTE( "3.bg1",    0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
1231   ROM_LOAD16_BYTE( "9.fg_ind87",    0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
1232   ROM_LOAD16_BYTE( "5.fg_ind83",    0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
1233   ROM_LOAD16_BYTE( "8.fg_ind86",    0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
1234   ROM_LOAD16_BYTE( "4.fg_ind82",    0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
1235   ROM_LOAD16_BYTE( "7.fg_ind85",    0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
1236   ROM_LOAD16_BYTE( "3.fg_ind81",    0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
8501237   ROM_LOAD16_BYTE( "10.imag2", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
8511238   ROM_LOAD16_BYTE( "6.imag1",  0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
8521239
r243532r243533
9061293   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
9071294   ROM_LOAD16_BYTE( "fantasia_16",  0x000000, 0x80000, CRC(c5d93077) SHA1(da615ea0704e77e888dbda664fc9f9fd873edbfa) )
9081295   ROM_LOAD16_BYTE( "fantasia_13",  0x000001, 0x80000, CRC(d88529bd) SHA1(06eb928f4aefe101140140ba7a3ce416215f9e39) )
909   ROM_LOAD16_BYTE( "9.bg7",    0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
910   ROM_LOAD16_BYTE( "5.bg3",    0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
911   ROM_LOAD16_BYTE( "8.bg6",    0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
912   ROM_LOAD16_BYTE( "4.bg2",    0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
913   ROM_LOAD16_BYTE( "7.bg5",    0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
914   ROM_LOAD16_BYTE( "3.bg1",    0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
1296   ROM_LOAD16_BYTE( "9.fg_ind87",    0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
1297   ROM_LOAD16_BYTE( "5.fg_ind83",    0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
1298   ROM_LOAD16_BYTE( "8.fg_ind86",    0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
1299   ROM_LOAD16_BYTE( "4.fg_ind82",    0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
1300   ROM_LOAD16_BYTE( "7.fg_ind85",    0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
1301   ROM_LOAD16_BYTE( "3.fg_ind81",    0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
9151302   ROM_LOAD16_BYTE( "10.imag2", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
9161303   ROM_LOAD16_BYTE( "6.imag1",  0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
9171304
r243532r243533
9341321   ROM_LOAD16_BYTE( "11.obj2", 0x100000, 0x80000, CRC(6d00a4c5) SHA1(8fc0d78200b82ab87658d364ebe2f2e7239722e7) )
9351322ROM_END
9361323
1324
1325
1326
1327/*
1328Fantasia II
1329Comad, 1997
1330
1331Game is a copy/clone of Qix etc, with the usual Comad theme.....
1332The hardware looks much nicer/cleaner and more professionally made than previous
1333Comad boards I've seen also.
1334
1335
1336CPU   : MC68000P12
1337Sound : AD-65 (OKI M6295)
1338Osc.  : 12.000MHz, 16.000MHz (both near 68000 & PLCC84)
1339DIP Sw: 8 position (x2)
1340RAM   : 62256 (x12), 6116 (x4)
1341PALs  : plenty .....
1342OTHER : ACTEL A1020B (84 Pin PLCC)
1343
1344ROMs: (all type 27C040)
1345
1346music* - oki samples / music
1347prog*  - main program
1348obj*   - objects
1349scr*   - gfx
1350*/
1351
1352
1353
1354// fantasy 95 - derived from new fantasia?
1355ROM_START( fantsy95 )
1356   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1357   ROM_LOAD16_BYTE( "prog2.12",  0x000000, 0x80000, CRC(1e684da7) SHA1(2104a6fb5f019011009f4faa769afcada90cff97) ) // sldh
1358   ROM_LOAD16_BYTE( "prog1.7",   0x000001, 0x80000, CRC(dc4e4f6b) SHA1(9934121692a6d32164bef03c72c25dc727438e54) )
1359   ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(ab8756ff) SHA1(0a7aa977151962e67b15a7e0f819b1412ff8dbdc) )
1360   ROM_LOAD16_BYTE( "i-scr1.5",  0x100001, 0x80000, CRC(d8e2ef77) SHA1(ec2c1dcc13e281288b5df43fa7a0b3cdf7357459) )
1361   ROM_LOAD16_BYTE( "i-scr4.9",  0x200000, 0x80000, CRC(4e52eb23) SHA1(be61c0dc68c49ded2dc6e8852fd92acac4986700) )
1362   ROM_LOAD16_BYTE( "i-scr3.4",  0x200001, 0x80000, CRC(797731f8) SHA1(571f939a7f85bd5b75a0660621961b531f44f736) )
1363   ROM_LOAD16_BYTE( "i-scr6.8",  0x300000, 0x80000, CRC(6f8e5239) SHA1(a1c2ec79e80906ca18cf3532ce38a1495ab37e44) )
1364   ROM_LOAD16_BYTE( "i-scr5.3",  0x300001, 0x80000, CRC(85420e3f) SHA1(d29e81cb1a33dca6232e14a0df2e21c8de45ba71) )
1365   ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(33db8177) SHA1(9e9aa890dfa20e5aa6f1caec7d018d992217c2fe) )
1366   ROM_LOAD16_BYTE( "i-scr7.6",  0x400001, 0x80000, CRC(8662dd01) SHA1(a349c1cd965d3d51c20178fcce2f61ae76f4006a) )
1367
1368   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1369   ROM_LOAD( "obj1.13",  0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
1370
1371   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1372   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1373   ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(3117e2ef) SHA1(6581a7104556d44f814c537bbd74998922927034) )
1374   ROM_RELOAD(               0x40000, 0x80000 )
1375   ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(0c1109f9) SHA1(0e4ea534a32b1649e2e9bb8af7254b917ec03a90) )
1376ROM_END
1377
1378ROM_START( fantasian ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD 940803 MADE IN KOREA */
1379   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1380   ROM_LOAD16_BYTE( "prog2_12.ue17",   0x000000, 0x80000, CRC(8bb70be1) SHA1(d8854defcffa4cc1a6f4087acdaa05cc80444089) )
1381   ROM_LOAD16_BYTE( "prog1_7.ud17",    0x000001, 0x80000, CRC(d1616a3e) SHA1(49a647c16d3bdb895ca14871c1f5cb5abcf59c9a) )
1382   ROM_LOAD16_BYTE( "i-scr2_10.ue16b", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) ) /* data roms same as expro02.c sets, but different positions */
1383   ROM_LOAD16_BYTE( "i-scr1_5.ue16a",  0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
1384   ROM_LOAD16_BYTE( "i-scr4_9.ue15b",  0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
1385   ROM_LOAD16_BYTE( "i-scr3_4.ue15a",  0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
1386   ROM_LOAD16_BYTE( "i-scr6_8.ue14b",  0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
1387   ROM_LOAD16_BYTE( "i-scr5_3.ue14a",  0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
1388   ROM_LOAD16_BYTE( "i-scr8_11.ue20b", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
1389   ROM_LOAD16_BYTE( "i-scr7_6.ue20a",  0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
1390
1391   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1392   ROM_LOAD( "obj1_13.u5",  0x00000, 0x80000, CRC(f99751f5) SHA1(10f0a2e369abc36a6df2f0c9879ffb7071ee214b) )
1393
1394   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1395   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1396   ROM_LOAD( "music1_1.ub6", 0x00000, 0x80000, CRC(22955efb) SHA1(791c18d1aa0c10810da05c199108f51f99fe1d49) ) /* sample roms same as expro02.c sets, but different positions */
1397   ROM_RELOAD(               0x40000, 0x80000 )
1398   ROM_LOAD( "music2_2.uc6", 0xc0000, 0x80000, CRC(4cd4d6c3) SHA1(a617472a810aef6d82f5fe75ef2980c03c21c2fa) )
1399ROM_END
1400
1401ROM_START( newfant )
1402   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1403   ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
1404   ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
1405   ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
1406   ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
1407   ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
1408   ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
1409   ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
1410   ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
1411   ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
1412   ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
1413
1414   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1415   ROM_LOAD( "nf95obj1.13",  0x00000, 0x80000, CRC(e6d1bc71) SHA1(df0b6c1742c01991196659bab2691230323e7b8d) ) // sldh
1416
1417   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1418   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1419   ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
1420   ROM_RELOAD(               0x40000, 0x80000 )
1421   ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
1422ROM_END
1423
1424ROM_START( newfanta )
1425   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1426   ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
1427   ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
1428   ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
1429   ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
1430   ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
1431   ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
1432   ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
1433   ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
1434   ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
1435   ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
1436
1437   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1438   ROM_LOAD( "obj1.13",  0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
1439
1440   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1441   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1442   ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
1443   ROM_RELOAD(               0x40000, 0x80000 )
1444   ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
1445ROM_END
1446
1447ROM_START( missw96 )
1448   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1449   ROM_LOAD16_BYTE( "mw96_10.bin",  0x000000, 0x80000, CRC(b1309bb1) SHA1(3cc7a903cb007d8fc0f836a33780c1c9231d1629) )
1450   ROM_LOAD16_BYTE( "mw96_06.bin",  0x000001, 0x80000, CRC(a5892bb3) SHA1(99130eb0af307fe66c9668414475e003f9c7d969) )
1451   ROM_LOAD16_BYTE( "mw96_09.bin",  0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
1452   ROM_LOAD16_BYTE( "mw96_05.bin",  0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
1453   ROM_LOAD16_BYTE( "mw96_08.bin",  0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
1454   ROM_LOAD16_BYTE( "mw96_04.bin",  0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
1455   ROM_LOAD16_BYTE( "mw96_07.bin",  0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
1456   ROM_LOAD16_BYTE( "mw96_03.bin",  0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
1457
1458   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1459   ROM_LOAD( "mw96_11.bin",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
1460
1461   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1462   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1463   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
1464   ROM_RELOAD(               0x40000, 0x80000 )
1465   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
1466ROM_END
1467
1468ROM_START( missw96a )
1469   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1470   ROM_LOAD16_BYTE( "mw96n2_10.prog2", 0x000000, 0x80000, CRC(563ce811) SHA1(4013b303dc7fdfcd2b5b91f12a950eb71b27714a) )
1471   ROM_LOAD16_BYTE( "mw96n2_6.prog1",  0x000001, 0x80000, CRC(98e91a3b) SHA1(a135458e0373b528498408ac3288a01a666f3522) )
1472   ROM_LOAD16_BYTE( "mw96_09.bin",  0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
1473   ROM_LOAD16_BYTE( "mw96_05.bin",  0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
1474   ROM_LOAD16_BYTE( "mw96_08.bin",  0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
1475   ROM_LOAD16_BYTE( "mw96_04.bin",  0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
1476   ROM_LOAD16_BYTE( "mw96_07.bin",  0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
1477   ROM_LOAD16_BYTE( "mw96_03.bin",  0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
1478
1479   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1480   ROM_LOAD( "mw96_11.bin",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
1481
1482   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1483   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1484   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
1485   ROM_RELOAD(               0x40000, 0x80000 )
1486   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
1487ROM_END
1488
1489ROM_START( missw96b )
1490   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1491   ROM_LOAD16_BYTE( "mw96n3_10.prog2", 0x000000, 0x80000, CRC(67bde86b) SHA1(7457a4c130a9ab1c75645e2a662a87af3fee8bba) )
1492   ROM_LOAD16_BYTE( "mw96n3_6.prog1",  0x000001, 0x80000, CRC(de99cc48) SHA1(ffa2597083c412fb943724048d8d5cc7bd9be11c) )
1493   ROM_LOAD16_BYTE( "mw96_09.bin",  0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
1494   ROM_LOAD16_BYTE( "mw96_05.bin",  0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
1495   ROM_LOAD16_BYTE( "mw96_08.bin",  0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
1496   ROM_LOAD16_BYTE( "mw96_04.bin",  0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
1497   ROM_LOAD16_BYTE( "mw96_07.bin",  0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
1498   ROM_LOAD16_BYTE( "mw96_03.bin",  0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
1499
1500   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1501   ROM_LOAD( "mw96_11.bin",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
1502
1503   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1504   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1505   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
1506   ROM_RELOAD(               0x40000, 0x80000 )
1507   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
1508ROM_END
1509
1510
1511ROM_START( missmw96 )
1512   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1513   ROM_LOAD16_BYTE( "mmw96_10.bin",  0x000000, 0x80000, CRC(45ed1cd9) SHA1(a75b1b6cddde065e6d7f7355a746819c8268c24f) )
1514   ROM_LOAD16_BYTE( "mmw96_06.bin",  0x000001, 0x80000, CRC(52ec9e5d) SHA1(20b7cc923e9d55e391b09d96248837bb8f28a176) )
1515   ROM_LOAD16_BYTE( "mmw96_09.bin",  0x100000, 0x80000, CRC(6c458b05) SHA1(249490c45cdecd6496338286a9ab6a6137cefcd0) )
1516   ROM_LOAD16_BYTE( "mmw96_05.bin",  0x100001, 0x80000, CRC(48159555) SHA1(a7c736f9e41915d06b7242e427282c421c4a8283) )
1517   ROM_LOAD16_BYTE( "mmw96_08.bin",  0x200000, 0x80000, CRC(1dc72b07) SHA1(fdbdf8298fe98d74ed2a76abf60f60af1c27a65d) )
1518   ROM_LOAD16_BYTE( "mmw96_04.bin",  0x200001, 0x80000, CRC(fc3e18fa) SHA1(b3ad254aab982dc75a10c2cf2b3815c2fdbba914) )
1519   ROM_LOAD16_BYTE( "mmw96_07.bin",  0x300000, 0x80000, CRC(001572bf) SHA1(cdf59c624baaeaea70985ee6f2f2fed08a8dfa61) )
1520   ROM_LOAD16_BYTE( "mmw96_03.bin",  0x300001, 0x80000, CRC(22204025) SHA1(442e7f754c65c598983d6f897a60870d7759c823) )
1521
1522   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1523   ROM_LOAD( "mmw96_11.bin",  0x00000, 0x80000, CRC(7d491f8c) SHA1(63f580bd65579cac70b90eaa0e7f2413ef1597b8) )
1524
1525   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1526   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1527   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
1528   ROM_RELOAD(               0x40000, 0x80000 )
1529   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
1530ROM_END
1531
1532ROM_START( smissw )
1533   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1534   ROM_LOAD16_BYTE( "10_PROG2.UE17",  0x000000, 0x80000, CRC(e99e520f) SHA1(edd06a3b0f8d30a4020e6ea452abb0afd79d426a) )
1535   ROM_LOAD16_BYTE( "6_PROG1.UD17",   0x000001, 0x80000, CRC(22831657) SHA1(eeabcdef543048ccceabc4c3b4b288aec959a14f) )
1536   ROM_LOAD16_BYTE( "9_IM1-B.UE16B",  0x100000, 0x80000, CRC(fff1eee4) SHA1(1b88d45b5cc0b5a03296d4dc950e570fa4dc19c2) )
1537   ROM_LOAD16_BYTE( "5_IM1-A.UE16A",  0x100001, 0x80000, CRC(2134a72d) SHA1(f907ec8a1d6e5755a821e69564074ff05e426bb1) )
1538   ROM_LOAD16_BYTE( "8_IM2-B.UE15B",  0x200000, 0x80000, CRC(cf44b638) SHA1(0fe5bdb62492c31c3efffa6d85f5d6a3b4ddb2e0) )
1539   ROM_LOAD16_BYTE( "4_IM2-A.UE15A",  0x200001, 0x80000, CRC(d22b270f) SHA1(21bd2ced1b5fb3c08687addaa890ee621a56fff0) )
1540   ROM_LOAD16_BYTE( "7_IM3-B.UE14B",  0x300000, 0x80000, CRC(12a9441d) SHA1(d9cd51e0c3ffac5fc561e0927c419bce0157337e) )
1541   ROM_LOAD16_BYTE( "3_IM3-A.UE14A",  0x300001, 0x80000, CRC(8c656fc9) SHA1(c3fe5de7cd6cd520bbd205ec62ac0dda51f71eeb) )
1542
1543   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1544   ROM_LOAD( "15_OBJ11.U5",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
1545
1546   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1547   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1548   ROM_LOAD( "1_MUSIC1.UB6",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
1549   ROM_RELOAD(               0x40000, 0x80000 )
1550   ROM_LOAD( "2_MUSIC2.UC6",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
1551ROM_END
1552
1553
1554ROM_START( fantsia2 )
1555   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1556   ROM_LOAD16_BYTE( "prog2.g17",    0x000000, 0x80000, CRC(57c59972) SHA1(4b1da928b537cf340a67026d07bc3dfc078b0d0f) )
1557   ROM_LOAD16_BYTE( "prog1.f17",    0x000001, 0x80000, CRC(bf2d9a26) SHA1(92f0c1bd32f1e5e0ede3ba847242a212dfae4986) )
1558   ROM_LOAD16_BYTE( "scr2.g16",     0x100000, 0x80000, CRC(887b1bc5) SHA1(b6fcdc8a56ea25758f363224d256e9b6c8e30244) )
1559   ROM_LOAD16_BYTE( "scr1.f16",     0x100001, 0x80000, CRC(cbba3182) SHA1(a484819940fa1ef18ce679465c31075798748bac) )
1560   ROM_LOAD16_BYTE( "scr4.g15",     0x200000, 0x80000, CRC(ce97e411) SHA1(be0ed41362db03f384229c708f2ba4146e5cb501) )
1561   ROM_LOAD16_BYTE( "scr3.f15",     0x200001, 0x80000, CRC(480cc2e8) SHA1(38fe57ba1e34537f8be65fcc023ccd43369a5d94) )
1562   ROM_LOAD16_BYTE( "scr6.g14",     0x300000, 0x80000, CRC(b29d49de) SHA1(854b76755acf58fb8a4648a0ce72ea6bdf26c555) )
1563   ROM_LOAD16_BYTE( "scr5.f14",     0x300001, 0x80000, CRC(d5f88b83) SHA1(518a1f6732149f2851bbedca61f7313c39beb91b) )
1564   ROM_LOAD16_BYTE( "scr8.g20",     0x400000, 0x80000, CRC(694ae2b3) SHA1(82b7a565290fce07c8393af4718fd1e6136928e9) )
1565   ROM_LOAD16_BYTE( "scr7.f20",     0x400001, 0x80000, CRC(6068712c) SHA1(80a136d76dca566772e34d832ac11b8c7d6ce9ab) )
1566
1567   ROM_REGION( 0x100000, "gfx1", 0 )   /* sprites */
1568   ROM_LOAD( "obj1.1i",      0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
1569   ROM_LOAD( "obj2.2i",      0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
1570
1571   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1572   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1573   ROM_LOAD( "music2.1b",    0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
1574   ROM_RELOAD(               0x40000, 0x80000 )
1575   ROM_LOAD( "music1.1a",    0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
1576ROM_END
1577
1578ROM_START( fantsia2a )
1579   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1580   ROM_LOAD16_BYTE( "fnt2-22.bin",    0x000000, 0x80000, CRC(a3a92c4b) SHA1(6affdcb57e1e0a77c7cc33135dafe86843e9e3d8) )
1581   ROM_LOAD16_BYTE( "fnt2-17.bin",    0x000001, 0x80000, CRC(d0ce4493) SHA1(9cec088e6630555b6d584df23236c279909820cf) )
1582   ROM_LOAD16_BYTE( "fnt2-21.bin",    0x100000, 0x80000, CRC(e989c2e7) SHA1(c9eea2a89843cdd9db4a4a0539d0315c125e3e02) )
1583   ROM_LOAD16_BYTE( "fnt2-16.bin",    0x100001, 0x80000, CRC(8c06d372) SHA1(14fe2c8450f0f2e11e204dd524bfe32a72ddc144) )
1584   ROM_LOAD16_BYTE( "fnt2-20.bin",    0x200000, 0x80000, CRC(6e9f1e65) SHA1(b6f1eb1a52de18ed5b17de3ef365e5c041d15314) )
1585   ROM_LOAD16_BYTE( "fnt2-15.bin",    0x200001, 0x80000, CRC(85cbeb2b) SHA1(a213b461019ddb3b319b9815a76c6fb2ecfbe937) )
1586   ROM_LOAD16_BYTE( "fnt2-19.bin",    0x300000, 0x80000, CRC(7953226a) SHA1(955c779eae496688be2ed416d879d6e83c888368) )
1587   ROM_LOAD16_BYTE( "fnt2-14.bin",    0x300001, 0x80000, CRC(10d8ccff) SHA1(bf4c49d85556edf49289631ee6178d3fb7dea2cc) )
1588   ROM_LOAD16_BYTE( "fnt2-18.bin",    0x400000, 0x80000, CRC(4cdaeda3) SHA1(f5b478e49b59496865982409517654f48296565d) )
1589   ROM_LOAD16_BYTE( "fnt2-13.bin",    0x400001, 0x80000, CRC(68c7f042) SHA1(ed3c864f3d91377fec78f19897ba0b0d2bcf0d2b) )
1590
1591   ROM_REGION( 0x100000, "gfx1", 0 )   /* sprites */
1592   ROM_LOAD( "obj1.1i",      0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
1593   ROM_LOAD( "obj2.2i",      0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
1594
1595   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1596   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1597   ROM_LOAD( "music2.1b",    0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
1598   ROM_RELOAD(               0x40000, 0x80000 )
1599   ROM_LOAD( "music1.1a",    0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
1600ROM_END
1601
1602ROM_START( wownfant)
1603   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1604   ROM_LOAD16_BYTE( "ep-4001 42750001 u81.bin",    0x000000, 0x80000, CRC(9942d200) SHA1(d2f69c0949881ef4aef202b564eac069c030a497) )
1605   ROM_LOAD16_BYTE( "ep-4001 42750001 u80.bin",    0x000001, 0x80000, CRC(17359eeb) SHA1(90bb9da6bdf56fa9eb0ad03691750518a2a3f879) )
1606   ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 1.bin",    0x100000, 0x200000, CRC(c318e841) SHA1(ba7af736d3b0accca474b0de1c8299eb3c449ef9) )
1607   ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 2.bin",    0x300000, 0x200000, CRC(8871dc3a) SHA1(8e028f1430474df19bb9a912ee9e407fe4582558) )
1608
1609   ROM_REGION( 0x100000, "gfx1", 0 )   /* sprites */
1610   ROM_LOAD( "ep-4001 42750001 u113.bin",      0x00000, 0x80000, CRC(3e77ca1f) SHA1(f946e65a29bc02b89c02b2a869578d38cfe7e2d0) )
1611   ROM_LOAD( "ep-4001 42750001 u112.bin",      0x80000, 0x80000, CRC(51f4b604) SHA1(52e8ce0a2c1b9b00f04e0c775789bc550bad8ae0) )
1612
1613   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1614   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1615   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
1616   ROM_RELOAD(               0x40000, 0x80000 )
1617   ROM_LOAD( "ep-4001 42750001 u1.bin",    0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
1618ROM_END
1619
1620ROM_START( galhustl ) // An original PCB has been seen with genuine AFEGA labels
1621   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
1622   ROM_LOAD16_BYTE( "ue17.3", 0x00000, 0x80000, CRC(b2583dbb) SHA1(536f4aa2246ec816c4f270f9d42acc090718ee8b) ) // Also found as AFEGA 3
1623   ROM_LOAD16_BYTE( "ud17.4", 0x00001, 0x80000, CRC(470a3668) SHA1(ad86e96ab8f1f5da23fb1feaabfb9c757965418e) ) // Also found as AFEGA 4
1624
1625   ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
1626
1627   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1628   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1629   ROM_LOAD( "galhstl1.ub6", 0x00000, 0x80000,  CRC(23848790) SHA1(2e77fbe04f46e258daecb4c5917e383c7c06a306) ) // Also found as AFEGA 1
1630   ROM_RELOAD(               0x40000, 0x80000 )
1631   ROM_LOAD( "galhstl2.uc6", 0xc0000, 0x80000,  CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) ) // Also found as AFEGA 2
1632
1633   ROM_REGION( 0x100000, "gfx1", 0 )
1634   ROM_LOAD( "galhstl5.u5", 0x00000, 0x80000, CRC(44a18f15) SHA1(1217cf7fbbb442358b15016099efeface5dcbd22) ) // Also found as AFEGA 5
1635ROM_END
1636
1637ROM_START( pgalvip ) // this set has extra data roms for the gfx
1638   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
1639   ROM_LOAD16_BYTE( "afega_15.ue17", 0x00000, 0x20000, CRC(050060ca) SHA1(1e2a1d6aaf5038269d192baf3520f4af7a299325) )
1640   ROM_LOAD16_BYTE( "afega_16.ud17", 0x00001, 0x20000, CRC(d32e4052) SHA1(632d9affee92a526c0e9399230ecf485922c6df4) )
1641
1642   ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
1643   ROM_LOAD16_BYTE( "afega_13.rob1", 0x00000, 0x80000, CRC(ac51ef72) SHA1(01acb29ff474c52fcb323cdb14e0d6f804c93255) )
1644   ROM_LOAD16_BYTE( "afega_14.roa1", 0x00001, 0x80000, CRC(0877c00f) SHA1(91c325d6c21045f08abca86a9c4d46023363dd2e) )
1645
1646   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1647   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1648   ROM_LOAD( "afega_12.ub6", 0x00000, 0x20000,  CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
1649   ROM_RELOAD(               0x40000, 0x20000 )
1650   ROM_LOAD( "afega_11.uc6", 0xc0000, 0x80000,  CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
1651
1652   ROM_REGION( 0x100000, "gfx1", 0 )
1653   ROM_LOAD( "afega_17.u5", 0x00000, 0x80000, CRC(a8a50745) SHA1(e51963947c7a7556b8531d172b9d7bf9f321b21b) )
1654ROM_END
1655
1656ROM_START( pgalvipa ) // this set is more like Gals Hustler
1657   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
1658   ROM_LOAD16_BYTE( "pgalvip_3.ue17", 0x00000, 0x80000, CRC(a48e8255) SHA1(7e8f1747420ff0d599d340915712827ca2eb3092) )
1659   ROM_LOAD16_BYTE( "pgalvip_4.ud17", 0x00001, 0x80000, CRC(829a2085) SHA1(3ff5f2bb730572202cd427abd7f91dd886537ab6) )
1660
1661   ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
1662
1663   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1664   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1665   ROM_LOAD( "pgalvip_1.ub6", 0x00000, 0x20000,  CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
1666   ROM_RELOAD(               0x40000, 0x20000 )
1667   ROM_LOAD( "pgalvip_2.uc6", 0xc0000, 0x80000,  CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
1668
1669   ROM_REGION( 0x100000, "gfx1", 0 )
1670   ROM_LOAD( "pgalvip_5.u5", 0x00000, 0x80000, CRC(2d6e5a90) SHA1(b5487e5764d83dfecd982a8614d213c9075fbee4) )
1671ROM_END
1672
1673
1674ROM_START( supmodel )
1675   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1676   ROM_LOAD16_BYTE( "prog2.12",  0x000000, 0x80000, CRC(714b7e74) SHA1(a4f7754a4b04729084ccb1359f9bdfbad6150222) )
1677   ROM_LOAD16_BYTE( "prog1.7",   0x000001, 0x80000, CRC(0bb858de) SHA1(bd2039fa46fce89289e99a790400bd567f90105e) )
1678   ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(d07ec0ce) SHA1(88997254ea2bffa83ab4a77087905cf646ee3c12) )
1679   ROM_LOAD16_BYTE( "i-scr1.5",  0x100001, 0x80000, CRC(a96a8bde) SHA1(e93de2df1391a8e94d655e1c9e148196e692e661) )
1680   ROM_LOAD16_BYTE( "i-scr4.9",  0x200000, 0x80000, CRC(e959cab5) SHA1(13d744aa71d9485a4530418536c38a542a269e27) )
1681   ROM_LOAD16_BYTE( "i-scr3.4",  0x200001, 0x80000, CRC(4bf5e082) SHA1(14ab9ebe0c7a2154275b0aeb76f99d73552d862f) )
1682   ROM_LOAD16_BYTE( "i-scr6.8",  0x300000, 0x80000, CRC(e71337c2) SHA1(be1b532e66e70f7d30b657a88c1f9b154187636e) )
1683   ROM_LOAD16_BYTE( "i-scr5.3",  0x300001, 0x80000, CRC(641ccdfb) SHA1(f48dc0461bc49cfe4adcf769e9abfe83efa077a1) )
1684   ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(7c1813c8) SHA1(80fe97ac640847360529edfb728955e1067b0c14) )
1685   ROM_LOAD16_BYTE( "i-scr7.6",  0x400001, 0x80000, CRC(19c73268) SHA1(aa6dc8c817a2e9707ea74e219ab34cf826223741) )
1686
1687   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1688   ROM_LOAD( "obj1.13",  0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
1689
1690   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1691   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1692   ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(2b1f6655) SHA1(e7b52cf4bd16590c598c375d5a97b724bc9ef631) )
1693   ROM_RELOAD(               0x40000, 0x80000 )
1694   ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(cccae65a) SHA1(5e4e2e51884eaf191f103aa189ff33371fc91d6d) )
1695ROM_END
1696
1697
1698/*
1699
1700Zip & Zap
1701
1702Zip Zap (pcb marked Barko Corp 950509)
1703
17041x 68k
17051x Oki m6295
17061x osc 12mhz
17071x osc 16mhz
17081x fpga
17092x dipswitch banks
1710
1711*/
1712
1713ROM_START( zipzap )
1714   ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 Code */
1715   /* all the roms for this game could do with checking on another board, this one was in pretty bad condition
1716      and reads weren't always consistent */
1717   ROM_LOAD16_BYTE( "ud17.bin", 0x000001, 0x40000, BAD_DUMP CRC(2901fae1) SHA1(0d6ca6d48c5586c05f3c02aee51a95da38b3751f) )
1718   ROM_LOAD16_BYTE( "ue17.bin", 0x000000, 0x40000, BAD_DUMP CRC(da6c3fc8) SHA1(4bc01bc6f62553f6ac4f7252f7d9bf0d639f6935) )
1719   /* gfx bitmaps */
1720   ROM_LOAD16_BYTE( "938.bin",  0x400000, 0x80000, CRC(61c06b60) SHA1(b3abae020009a48b99862766e0981e1118159a47) ) // good title background
1721   ROM_LOAD16_BYTE( "942.bin",  0x400001, 0x80000, CRC(282413b8) SHA1(e2ecaaa3c5b2355eadc016b73d7d658f25e1e0db) ) // (and corrupt gfx on select mode screen)
1722
1723   ROM_LOAD16_BYTE( "934.bin",  0x300000, 0x80000, CRC(1e65988a) SHA1(64d6f8cbdb28755515d9bbf52f589ce1176fed58) ) // good, girls
1724   ROM_LOAD16_BYTE( "939.bin",  0x300001, 0x80000, CRC(8790a6a3) SHA1(94f39e48b75144cab191e2de4284c28d18b8f1c7))
1725
1726   ROM_LOAD16_BYTE( "936.bin",  0x200000, 0x80000, CRC(596543cc) SHA1(10a0eab4ca4a8749f1703ff6fcc80d731d07d087) ) // good, girls
1727   ROM_LOAD16_BYTE( "940.bin",  0x200001, 0x80000, CRC(0c9dfb53) SHA1(541bd8c79408b7415713b517eacdd565d0ac5cb8) )
1728
1729   ROM_LOAD16_BYTE( "937.bin",  0x100000, 0x80000, CRC(61dd653f) SHA1(68b5ae3423363cc64d933836bf6881431dad021a) ) // good, girls
1730   ROM_LOAD16_BYTE( "941.bin",  0x100001, 0x80000, CRC(320321ed) SHA1(00b52cd34cd86c105ff6dbd0248ff239de31c851) )
1731
1732   ROM_REGION( 0x100000, "gfx1", 0 ) // sprites
1733   ROM_LOAD( "u5.bin",  0x000000, 0x80000,  CRC(c274d8b5) SHA1(2c45961aaf8311f027a734df7e33fe085dfdd099) )
1734
1735   ROM_REGION( 0x140000, "oki", 0 ) /* Samples */
1736   ROM_LOAD( "snd.bin", 0x00000, 0x80000,  CRC(bc20423e) SHA1(1f4bd52ec4f9b3b3e6b10ac2b3afaadf76a2c7c9) )
1737   ROM_RELOAD(          0x40000, 0x80000 )
1738   ROM_RELOAD(          0xc0000, 0x80000 )
1739ROM_END
1740
1741
9371742/*************************************
9381743 *
9391744 *  Generic driver initialization
9401745 *
9411746 *************************************/
9421747
943DRIVER_INIT_MEMBER(expro02_state,galsnew)
944{
1748DRIVER_INIT_MEMBER(expro02_state,expro02)
1749{   
9451750   UINT32 *src = (UINT32 *)memregion("gfx3" )->base();
9461751   UINT32 *dst = (UINT32 *)memregion("gfx2" )->base();
9471752   int x, offset;
9481753
949
950   for (x = 0; x < 0x80000; x++)
1754   // the VIEW2 tiledata is scrambled
1755   if (src)
9511756   {
952      offset = x;
1757      for (x = 0; x < 0x80000; x++)
1758      {
1759         offset = x;
9531760
954      // swap bits around to simplify further processing
955      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);
1761         // swap bits around to simplify further processing
1762         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);
9561763
957      // invert 8 bits
958      offset ^= 0x0528f;
1764         // invert 8 bits
1765         offset ^= 0x0528f;
9591766
960      // addition affecting 9 bits
961      offset = (offset & ~0x001ff) | ((offset + 0x00043) & 0x001ff);
1767         // addition affecting 9 bits
1768         offset = (offset & ~0x001ff) | ((offset + 0x00043) & 0x001ff);
9621769
963      // subtraction affecting 8 bits
964      offset = (offset & ~0x1fe00) | ((offset - 0x09600) & 0x1fe00);
1770         // subtraction affecting 8 bits
1771         offset = (offset & ~0x1fe00) | ((offset - 0x09600) & 0x1fe00);
9651772
966      // reverse the initial bitswap
967      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);
1773         // reverse the initial bitswap
1774         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);
9681775
969      // swap nibbles to use the same gfxdecode
970      dst[x] = (src[offset] << 4 & 0xF0F0F0F0) | (src[offset] >> 4 & 0x0F0F0F0F);
1776         // swap nibbles to use the same gfxdecode
1777         dst[x] = (src[offset] << 4 & 0xF0F0F0F0) | (src[offset] >> 4 & 0x0F0F0F0F);
1778      }
9711779   }
9721780}
9731781
r243532r243533
9771785 *
9781786 *************************************/
9791787
980GAME( 1990, galsnew,   0,        galsnew,  galsnew,  expro02_state, galsnew, ROT90, "Kaneko",                  "Gals Panic (US, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
981GAME( 1990, galsnewa,  galsnew,  galsnew,  galsnewa, expro02_state, galsnew, ROT90, "Kaneko",                  "Gals Panic (Export, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
982GAME( 1990, galsnewj,  galsnew,  galsnew,  galsnewj, expro02_state, galsnew, ROT90, "Kaneko (Taito license)",  "Gals Panic (Japan, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
983GAME( 1990, galsnewk,  galsnew,  galsnew,  galsnewj, expro02_state, galsnew, ROT90, "Kaneko (Inter license)",  "Gals Panic (Korea, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
1788GAME( 1990, galsnew,   0,        expro02,  expro02,  expro02_state, expro02, ROT90, "Kaneko",                  "Gals Panic (US, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
1789GAME( 1990, galsnewa,  galsnew,  expro02,  galsnewa, expro02_state, expro02, ROT90, "Kaneko",                  "Gals Panic (Export, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
1790GAME( 1990, galsnewj,  galsnew,  expro02,  galsnewj, expro02_state, expro02, ROT90, "Kaneko (Taito license)",  "Gals Panic (Japan, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
1791GAME( 1990, galsnewk,  galsnew,  expro02,  galsnewj, expro02_state, expro02, ROT90, "Kaneko (Inter license)",  "Gals Panic (Korea, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
1792/* the first version of Fantasia clones the EXPRO02 almost exactly, including the encrypted tiles*/
1793GAME( 1994, fantasia,  0,        fantasia,    fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
1794GAME( 1994, fantasiab, fantasia, fantasia,    fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 2)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
1795GAME( 1994, fantasiaa, fantasia, fantasia,    fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
1796/* subsequent releases remove the encrypted tile (View2 layer) but leave the unused writes to it in the program code */
1797GAME( 1994, fantasian,fantasia, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Fantasia (940803 PCB)", GAME_NO_COCKTAIL )
9841798
985GAME( 1994, fantasia,  0,        fantasia, fantasia, expro02_state, galsnew, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
986GAME( 1994, fantasiab, fantasia, fantasia, fantasia, expro02_state, galsnew, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 2)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
987GAME( 1994, fantasiaa, fantasia, fantasia, fantasia, expro02_state, galsnew, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
1799GAME( 1994, supmodel, 0,        supmodel, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Super Model",GAME_NO_COCKTAIL )
1800
1801GAME( 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
1802GAME( 1994, newfanta, newfant,  fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1994 copyright)", GAME_NO_COCKTAIL )
1803GAME( 1995, fantsy95, newfant,  fantasia, fantasiaa, driver_device, 0, ROT90, "Hi-max Technology Inc.",   "Fantasy '95", GAME_NO_COCKTAIL )
1804
1805GAME( 1996, missw96,  0,        fantasia, missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss World '96 (Nude) (set 1)", GAME_NO_COCKTAIL )
1806GAME( 1996, missw96a, missw96,  fantasia, missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss World '96 (Nude) (set 2)", GAME_NO_COCKTAIL )
1807GAME( 1996, missw96b, missw96,  fantasia, missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss World '96 (Nude) (set 3)", GAME_NO_COCKTAIL )
1808GAME( 1996, missmw96, missw96,  fantasia, missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss Mister World '96 (Nude)", GAME_NO_COCKTAIL )
1809
1810GAME( 1996, smissw,   0,        smissw,   missw96,   driver_device, 0, ROT0,  "Comad",                    "Super Miss World", GAME_NO_COCKTAIL ) // 951127 PCB
1811
1812GAME( 1997, fantsia2, 0,        fantsia2, missw96,   driver_device, 0, ROT0,  "Comad",                    "Fantasia II (Explicit)", GAME_NO_COCKTAIL )
1813GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96,   driver_device, 0, ROT0,  "Comad",                    "Fantasia II (Less Explicit)", GAME_NO_COCKTAIL )
1814
1815GAME( 2002, wownfant, 0,        fantsia2, missw96,   driver_device, 0, ROT0,  "Comad",                    "WOW New Fantasia", GAME_NO_COCKTAIL )
1816
1817GAME( 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.
1818GAME( 1997, pgalvipa, pgalvip,  galhustl, galhustl,  driver_device, 0, ROT0,  "<unknown>",                "Pocket Gals V.I.P (set 2)", 0 )
1819GAME( 1997, galhustl, pgalvip,  galhustl, galhustl,  driver_device, 0, ROT0,  "ACE International",        "Gals Hustler", 0 ) // hack of the above?
1820
1821GAME( 1995, zipzap,   0,        zipzap,   zipzap,    driver_device, 0, ROT90, "Barko Corp",               "Zip & Zap", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
trunk/src/mame/drivers/galpanic.c
r243532r243533
11/***************************************************************************
22
33Gals Panic       1990 Kaneko
4Fantasia         1994 Comad
5Super Model      1994 Comad
6New Fantasia     1994 Comad
7New Fantasia     1995 Comad (set 2)
8Fantasy '95      1995 Hi-max Technology Inc. (Running on a Comad PCB)
9Miss World '96   1996 Comad
10Ms/Mr World '96  1996 Comad
11Fantasia II      1997 Comad
12Gals Hustler     1997 Ace International
134
145driver by Nicola Salmoria
156
16The Comad games run on hardware similar to Gals Panic, with a different
17sprite system. They are not ROM swaps because the addresses of work RAM
18and of the OKI chip change from one to the other, however everything else
19is pretty much identical.
7The version of Gals Panic in this driver is the one using the PANDORA chip
8for sprites, other boardsets use a different sprite chip, see expro02.c
209
2110
22TODO:
23- There is a vector for IRQ4. The function does nothing in galpanic but is
24  more complicated in the Comad ones. However I'm not triggering it, and
25  they seems to work anyway...
26- There was a ROM in the newfant set, obj2_14.rom, which was identical to
27  Terminator 2's t2.107. I can only assume this was a mistake of the dumper.
28- lots of unknown reads and writes, also in galpanic but particularly in
29  the Comad ones.
30- fantasia and newfant have a service mode but they doesn't work well (text
31  is missing or replaced by garbage). This might be just how the games are.
32- Is there a background enable register? Or a background clear. fantasia and
33  newfant certainly look ugly as they are.
34
3511Notes about Gals Panic:
3612-----------------------
3713The current ROM set is strange because two ROMs overlap two others replacing
r243532r243533
4319sized ROM sockets. It's not a pirate version. The piggybacked ROMs even have
4420Kaneko stickers. The silkscreen on the board says PAMERA-04.
4521
46There is at least another version of the Gals Panic board. It's single board,
47so no daughterboard. There are only 4 IC's socketed, the rest is soldered to
48the board, and no piggybacked ROMs. Board number is MDK 321 V-0    EXPRO-02
49For this version of Gals Panic see the expro02.c driver
5022
5123
24
5225Stephh's additional notes :
5326
5427  - There seems to exist 3 versions of 'galpanic' (Japan, US and World),
r243532r243533
6841    manual, but it appears that 00 seems to be read from in the "trap $d"
6942    interruption. Is it because the addresses (0x53e830-0x53e84f) are also
7043    used for 'galpanic_bgvideoram' ?
71    In the Comad games, the interruption is the same, but the addresses
72    which are checked are in full RAM. So the Dip Switch could be checked.
7344
7445  - I added the 'galpanica' romset which is in fact the same as 'galpanic',
7546    but with the PRG ROMS which aren't overwritten and simulated the CALC1
r243532r243533
8758        ending at 0x000976 for more infos.
8859          -Expects watchdog to reset it- pjp
8960      * Sound hasn't been tested.
90      * The Comad games are definitively based on this version, the main
91        differences being that read/writes to 0xe00000 have been replaced.
9261
93 - On Gals Hustler there is an extra test mode if you hold down player 2
94   button 1, I have no idea if its complete or not
9562
9663
97-- Zip Zap notes ---
98
99Bg for select screens seems to be corrupt
100
101-- General Notes --
102
103Fantasia etc. games are locking up when the girl 'changes' due to not liking
104the way we handle OKI status reads.. however these reads are correct according to
105tests done with a real chip so there must be something odd going on on this hardware
106
107From Miss World 96 manual/dipswitch sheet:
108
109A/B/C Three Versions depending on nude grade
110 A-Version is the extreme hottest nude models
111 B-Version is the more attractive nude models
112 C-Version is very beautiful bikini models
113
114An example of this can be seen in the Fantasia II sets with type A & B
115The current set of Super Model is an example of type C
116
11764***************************************************************************/
11865
11966#include "emu.h"
r243532r243533
14794}
14895
14996
150TIMER_DEVICE_CALLBACK_MEMBER(galpanic_state::galhustl_scanline)
151{
152   int scanline = param;
15397
154   if(scanline == 224) // vblank-out irq
155      m_maincpu->set_input_line(3, HOLD_LINE);
15698
157   /* Pandora "sprite end dma" irq? */
158   if(scanline == 32)
159      m_maincpu->set_input_line(4, HOLD_LINE);
160
161   if(scanline == 0) // timer irq?
162      m_maincpu->set_input_line(5, HOLD_LINE);
163}
164
165
16699WRITE16_MEMBER(galpanic_state::galpanic_6295_bankswitch_w)
167100{
168101   if (ACCESSING_BITS_8_15)
r243532r243533
176109   }
177110}
178111
179WRITE16_MEMBER(galpanic_state::galpanica_6295_bankswitch_w)
180{
181   if (ACCESSING_BITS_8_15)
182   {
183      UINT8 *rom = memregion("oki")->base();
184112
185      memcpy(&rom[0x30000],&rom[0x40000 + ((data >> 8) & 0x0f) * 0x10000],0x10000);
186   }
187}
188113
189
190114WRITE16_MEMBER(galpanic_state::galpanic_coin_w)
191115{
192116   if (ACCESSING_BITS_8_15)
r243532r243533
199123   }
200124}
201125
202WRITE16_MEMBER(galpanic_state::galpanic_bgvideoram_mirror_w)
203{
204   int i;
205   for(i = 0; i < 8; i++)
206   {
207      // or offset + i * 0x2000 ?
208      galpanic_bgvideoram_w(space, offset * 8 + i, data, mem_mask);
209   }
210}
211126
127
212128static ADDRESS_MAP_START( galpanic_map, AS_PROGRAM, 16, galpanic_state )
213129   AM_RANGE(0x000000, 0x3fffff) AM_ROM
214130   AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
r243532r243533
228144   AM_RANGE(0xe00000, 0xe00015) AM_DEVREADWRITE("calc1_mcu", kaneko_hit_device, kaneko_hit_r,kaneko_hit_w)
229145ADDRESS_MAP_END
230146
231READ16_MEMBER(galpanic_state::comad_timer_r)
232{
233   return (m_screen->vpos() & 0x07) << 8;
234}
235147
236/* a kludge! */
237READ8_MEMBER(galpanic_state::comad_okim6295_r)
238{
239   UINT16 retvalue;
240148
241//  retvalue = m_oki->read_status(); // doesn't work, causes lockups when girls change..
242   retvalue = machine().rand();
243149
244   return retvalue;
245}
246
247static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16, galpanic_state )
248   AM_RANGE(0x000000, 0x4fffff) AM_ROM
249   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
250   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
251   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
252   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
253   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
254   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
255   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
256//  AM_RANGE(0x800006, 0x800007)    ??
257   AM_RANGE(0x80000a, 0x80000b) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
258   AM_RANGE(0x80000c, 0x80000d) AM_READ(comad_timer_r) /* missw96 bits 8-a = timer? palette update code waits for them to be 111 */
259   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
260   AM_RANGE(0xc00000, 0xc0ffff) AM_RAM             /* missw96 */
261   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM             /* fantasia, newfant */
262   AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
263   AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* newfant */
264ADDRESS_MAP_END
265
266static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, galpanic_state )
267   AM_RANGE(0x000000, 0x4fffff) AM_ROM
268   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
269   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
270   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
271   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
272   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
273   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
274   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
275//  AM_RANGE(0x800006, 0x800007)    ??
276   AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
277   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
278   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP    /* coin counters, + ? */
279   AM_RANGE(0xc80000, 0xc80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00)
280   AM_RANGE(0xf80000, 0xf8ffff) AM_RAM
281ADDRESS_MAP_END
282
283
284static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, galpanic_state )
285   AM_RANGE(0x000000, 0x0fffff) AM_ROM
286
287   AM_RANGE(0x200000, 0x2fffff) AM_ROM AM_REGION("maincpudata", 0)
288
289   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
290   AM_RANGE(0x520000, 0x53ffff) AM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
291   AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w)
292   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
293   AM_RANGE(0x600800, 0x600fff) AM_RAM // writes only 1?
294   AM_RANGE(0x680000, 0x68001f) AM_RAM // regs?
295   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
296   AM_RANGE(0x780000, 0x78001f) AM_RAM // regs?
297   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
298   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
299   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
300   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
301   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP // ?
302   AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
303   AM_RANGE(0xe80000, 0xe8ffff) AM_RAM
304ADDRESS_MAP_END
305
306#ifdef UNUSED_FUNCTION
307READ16_MEMBER(galpanic_state::zipzap_random_read)
308{
309   return machine().rand();
310}
311#endif
312
313static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, galpanic_state )
314   AM_RANGE(0x000000, 0x4fffff) AM_ROM
315   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
316   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
317   AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w)
318   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
319   AM_RANGE(0x680000, 0x68001f) AM_RAM
320   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
321   AM_RANGE(0x701000, 0x71ffff) AM_RAM
322   AM_RANGE(0x780000, 0x78001f) AM_RAM
323   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
324   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
325   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
326
327   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
328
329   AM_RANGE(0xc00000, 0xc00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
330
331   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM     // main ram
332ADDRESS_MAP_END
333
334static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, galpanic_state )
335   AM_RANGE(0x000000, 0x4fffff) AM_ROM
336   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
337   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
338//  AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w) // can't be right, causes half the display to vanish at times!
339   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
340   AM_RANGE(0x680000, 0x68001f) AM_RAM
341   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
342   AM_RANGE(0x780000, 0x78001f) AM_RAM
343   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
344   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
345   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
346   AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
347   AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r)
348   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
349   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
350   AM_RANGE(0xc80000, 0xc8ffff) AM_RAM
351   AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
352   AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
353   AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
354   AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
355ADDRESS_MAP_END
356
357static ADDRESS_MAP_START( smissw_map, AS_PROGRAM, 16, galpanic_state )
358   AM_RANGE(0x000000, 0x4fffff) AM_ROM
359   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
360    AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
361    AM_RANGE(0x580000, 0x583fff) AM_RAM //_WRITE(galpanic_bgvideoram_mirror_w) // can't be right, causes half the display to vanish at times!
362   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
363   AM_RANGE(0x680000, 0x68001f) AM_RAM
364   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
365   AM_RANGE(0x780000, 0x78001f) AM_RAM
366   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
367   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
368   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
369   AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r)
370   AM_RANGE(0x80000e, 0x80000f) AM_READ(comad_timer_r)
371   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)  /* not sure */
372   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
373   AM_RANGE(0xc00000, 0xc0ffff) AM_RAM
374   AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
375   AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
376   AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
377   AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
378ADDRESS_MAP_END
379
380
381150static INPUT_PORTS_START( galpanic )
382151   PORT_START("DSW1")
383152   PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" )
r243532r243533
425194   SYSTEM_SERVICE
426195INPUT_PORTS_END
427196
428static INPUT_PORTS_START( fantasia )
429   PORT_START("DSW1")
430   DIFFICULTY_DEMO_SOUNDS      /* Unknown dip might be freeze/vblank? - code at 0x000734 ('fantasia') or 0x00075a ('newfant') - not called ? */
431   GALS_PANIC_JOYSTICK_4WAY(1) /* "Shot2" is shown in "test mode" but not used by the game */
432197
433   PORT_START("DSW2")
434   COINAGE_TEST_LOC        /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
435   GALS_PANIC_JOYSTICK_4WAY(2) /* "Shot2" is shown in "test mode" but not used by the game */
436198
437   SYSTEM_NO_SERVICE       /* MAME may crash when TILT is pressed (see notes), "Service" is shown in "test mode" */
438INPUT_PORTS_END
439
440/* Same as 'fantasia', but no "Service Mode" Dip Switch (and thus no "hidden" buttons) */
441static INPUT_PORTS_START( missw96 )
442   PORT_START("DSW1")
443   DIFFICULTY_DEMO_SOUNDS      /* Unknown dip might be freeze/vblank? - code at 0x00074e - not called ? */
444   GALS_PANIC_JOYSTICK_4WAY(1)
445
446   PORT_START("DSW2")
447   COINAGE_NO_TEST_LOC     /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */
448   GALS_PANIC_JOYSTICK_4WAY(2)
449
450   SYSTEM_NO_SERVICE       /* MAME may crash when TILT is pressed (see notes) */
451INPUT_PORTS_END
452
453static INPUT_PORTS_START( galhustl )
454   PORT_START("DSW1")
455   PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) )    PORT_DIPLOCATION("SW2:1,2")
456   PORT_DIPSETTING(      0x0000, "6" )
457   PORT_DIPSETTING(      0x0001, "7" )
458   PORT_DIPSETTING(      0x0003, "8" )
459   PORT_DIPSETTING(      0x0002, "10" )
460   PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )
461   PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" )
462   PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" )
463   PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" )
464   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("SW2:7")
465   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
466   PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
467   PORT_SERVICE_DIPLOC(  0x0080, IP_ACTIVE_LOW, "SW2:8" )
468   GALS_PANIC_JOYSTICK_8WAY(1)
469
470   PORT_START("DSW2")
471   PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )  PORT_DIPLOCATION("SW1:1,2,3")
472   PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
473   PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
474   PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
475   PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
476   PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
477   PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
478   PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
479   PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
480   PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW1:4,5")
481   PORT_DIPSETTING(      0x0010, DEF_STR( Easy ) )         /* 5000 - 7000 */
482   PORT_DIPSETTING(      0x0018, DEF_STR( Normal ) )       /* 4000 - 6000 */
483   PORT_DIPSETTING(      0x0008, DEF_STR( Hard ) )         /* 6000 - 8000 */
484   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )      /* 7000 - 9000 */
485   PORT_DIPNAME( 0x0060, 0x0060, "Play Time" )     PORT_DIPLOCATION("SW1:6,7")
486   PORT_DIPSETTING(      0x0040, "120 Sec" )
487   PORT_DIPSETTING(      0x0060, "100 Sec" )
488   PORT_DIPSETTING(      0x0020, "80 Sec" )
489   PORT_DIPSETTING(      0x0000, "70 Sec" )
490   PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" )
491   GALS_PANIC_JOYSTICK_8WAY(2)
492
493   SYSTEM_NO_TILT
494INPUT_PORTS_END
495
496static INPUT_PORTS_START( zipzap )
497   PORT_START("DSW1")
498   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
499   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
500   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
501   PORT_DIPNAME( 0x0002, 0x0002, "Additional Obsticals" ) /* Adds 4 Blocker/Bumpers to playing field */
502   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
503   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
504   PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
505   PORT_DIPSETTING(      0x0000, "1" )
506   PORT_DIPSETTING(      0x0008, "2" )
507   PORT_DIPSETTING(      0x000c, "3" )
508   PORT_DIPSETTING(      0x0004, "4" )
509   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
510   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
511   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
512   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
513   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
514   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
515   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
516   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
517   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
518   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
519   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
520   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
521   GALS_PANIC_JOYSTICK_8WAY(1)
522
523   PORT_START("DSW2")
524   PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )
525   PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
526   PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
527   PORT_DIPSETTING(      0x0003, DEF_STR( 1C_1C ) )
528   PORT_DIPSETTING(      0x0002, DEF_STR( 1C_2C ) )
529   PORT_DIPNAME( 0x0004, 0x0004, "Select Player Mode" ) /* Amateur, Normal & Exelent Modes */
530   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
531   PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
532   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
533   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
534   PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
535   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
536   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
537   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
538   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
539   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
540   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
541   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
542   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
543   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
544   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
545   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
546   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
547   GALS_PANIC_JOYSTICK_8WAY(2)
548
549   SYSTEM_NO_TILT
550INPUT_PORTS_END
551
552
553199static const gfx_layout spritelayout =
554200{
555201   16,16,
r243532r243533
615261   MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3))  /* a guess, and certainly wrong */
616262MACHINE_CONFIG_END
617263
618static MACHINE_CONFIG_DERIVED( comad, galpanic )
619264
620   /* basic machine hardware */
621   MCFG_CPU_MODIFY("maincpu")
622   MCFG_CPU_CLOCK(10000000)
623   MCFG_CPU_PROGRAM_MAP(comad_map)
624
625   MCFG_DEVICE_REMOVE("pandora")
626
627   /* video hardware */
628   MCFG_SCREEN_MODIFY("screen")
629   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
630   MCFG_SCREEN_VBLANK_NONE()
631MACHINE_CONFIG_END
632
633static MACHINE_CONFIG_DERIVED( supmodel, comad )
634
635   /* basic machine hardware */
636   MCFG_CPU_MODIFY("maincpu")
637   MCFG_CPU_CLOCK(12000000)    /* ? */
638   MCFG_CPU_PROGRAM_MAP(supmodel_map)
639   //MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galpanic_state, galpanic_scanline, "screen", 0, 1)
640
641   /* sound hardware */
642   MCFG_OKIM6295_REPLACE("oki", 1584000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
643   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
644MACHINE_CONFIG_END
645
646static MACHINE_CONFIG_DERIVED( smissw, comad ) // 951127 PCB, 12 & 16 clocks
647
648   /* basic machine hardware */
649   MCFG_CPU_MODIFY("maincpu")
650   MCFG_CPU_CLOCK(12000000)
651   MCFG_CPU_PROGRAM_MAP(smissw_map)
652   MCFG_TIMER_MODIFY("scantimer")
653   MCFG_TIMER_DRIVER_CALLBACK(galpanic_state, galhustl_scanline)
654
655MACHINE_CONFIG_END
656
657
658
659static MACHINE_CONFIG_DERIVED( fantsia2, comad )
660
661   /* basic machine hardware */
662   MCFG_CPU_MODIFY("maincpu")
663   MCFG_CPU_CLOCK(12000000)    /* ? */
664   MCFG_CPU_PROGRAM_MAP(fantsia2_map)
665
666   /* video hardware */
667   MCFG_SCREEN_MODIFY("screen")
668   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
669   MCFG_SCREEN_VBLANK_NONE()
670MACHINE_CONFIG_END
671
672static MACHINE_CONFIG_DERIVED( galhustl, comad )
673
674   /* basic machine hardware */
675   MCFG_CPU_MODIFY("maincpu")
676   MCFG_CPU_CLOCK(12000000)    /* ? */
677   MCFG_CPU_PROGRAM_MAP(galhustl_map)
678   MCFG_TIMER_MODIFY("scantimer")
679   MCFG_TIMER_DRIVER_CALLBACK(galpanic_state, galhustl_scanline)
680
681   /* video hardware */
682   MCFG_SCREEN_MODIFY("screen")
683   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
684   MCFG_SCREEN_VBLANK_NONE()
685
686   /* sound hardware */
687   MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
688   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
689MACHINE_CONFIG_END
690
691static MACHINE_CONFIG_DERIVED( zipzap, comad )
692
693   /* basic machine hardware */
694   MCFG_CPU_MODIFY("maincpu")
695   MCFG_CPU_CLOCK(12000000)    /* ? */
696   MCFG_CPU_PROGRAM_MAP(zipzap_map)
697   MCFG_TIMER_MODIFY("scantimer")
698   MCFG_TIMER_DRIVER_CALLBACK(galpanic_state, galhustl_scanline)
699
700   /* video hardware */
701   MCFG_SCREEN_MODIFY("screen")
702   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
703
704   /* sound hardware */
705   MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
706   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
707MACHINE_CONFIG_END
708
709
710265/***************************************************************************
711266
712267  Game driver(s)
r243532r243533
757312   ROM_LOAD( "pm007e.u",     0xc0000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) )
758313ROM_END
759314
760
761/*
762Fantasia II
763Comad, 1997
764
765Game is a copy/clone of Qix etc, with the usual Comad theme.....
766The hardware looks much nicer/cleaner and more professionally made than previous
767Comad boards I've seen also.
768
769
770CPU   : MC68000P12
771Sound : AD-65 (OKI M6295)
772Osc.  : 12.000MHz, 16.000MHz (both near 68000 & PLCC84)
773DIP Sw: 8 position (x2)
774RAM   : 62256 (x12), 6116 (x4)
775PALs  : plenty .....
776OTHER : ACTEL A1020B (84 Pin PLCC)
777
778ROMs: (all type 27C040)
779
780music* - oki samples / music
781prog*  - main program
782obj*   - objects
783scr*   - gfx
784*/
785
786
787
788// fantasy 95 - derived from new fantasia?
789ROM_START( fantsy95 )
790   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
791   ROM_LOAD16_BYTE( "prog2.12",  0x000000, 0x80000, CRC(1e684da7) SHA1(2104a6fb5f019011009f4faa769afcada90cff97) ) // sldh
792   ROM_LOAD16_BYTE( "prog1.7",   0x000001, 0x80000, CRC(dc4e4f6b) SHA1(9934121692a6d32164bef03c72c25dc727438e54) )
793   ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(ab8756ff) SHA1(0a7aa977151962e67b15a7e0f819b1412ff8dbdc) )
794   ROM_LOAD16_BYTE( "i-scr1.5",  0x100001, 0x80000, CRC(d8e2ef77) SHA1(ec2c1dcc13e281288b5df43fa7a0b3cdf7357459) )
795   ROM_LOAD16_BYTE( "i-scr4.9",  0x200000, 0x80000, CRC(4e52eb23) SHA1(be61c0dc68c49ded2dc6e8852fd92acac4986700) )
796   ROM_LOAD16_BYTE( "i-scr3.4",  0x200001, 0x80000, CRC(797731f8) SHA1(571f939a7f85bd5b75a0660621961b531f44f736) )
797   ROM_LOAD16_BYTE( "i-scr6.8",  0x300000, 0x80000, CRC(6f8e5239) SHA1(a1c2ec79e80906ca18cf3532ce38a1495ab37e44) )
798   ROM_LOAD16_BYTE( "i-scr5.3",  0x300001, 0x80000, CRC(85420e3f) SHA1(d29e81cb1a33dca6232e14a0df2e21c8de45ba71) )
799   ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(33db8177) SHA1(9e9aa890dfa20e5aa6f1caec7d018d992217c2fe) )
800   ROM_LOAD16_BYTE( "i-scr7.6",  0x400001, 0x80000, CRC(8662dd01) SHA1(a349c1cd965d3d51c20178fcce2f61ae76f4006a) )
801
802   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
803   ROM_LOAD( "obj1.13",  0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
804
805   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
806   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
807   ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(3117e2ef) SHA1(6581a7104556d44f814c537bbd74998922927034) )
808   ROM_RELOAD(               0x40000, 0x80000 )
809   ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(0c1109f9) SHA1(0e4ea534a32b1649e2e9bb8af7254b917ec03a90) )
810ROM_END
811
812ROM_START( fantasian ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD 940803 MADE IN KOREA */
813   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
814   ROM_LOAD16_BYTE( "prog2_12.ue17",   0x000000, 0x80000, CRC(8bb70be1) SHA1(d8854defcffa4cc1a6f4087acdaa05cc80444089) )
815   ROM_LOAD16_BYTE( "prog1_7.ud17",    0x000001, 0x80000, CRC(d1616a3e) SHA1(49a647c16d3bdb895ca14871c1f5cb5abcf59c9a) )
816   ROM_LOAD16_BYTE( "i-scr2_10.ue16b", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) ) /* data roms same as expro02.c sets, but different positions */
817   ROM_LOAD16_BYTE( "i-scr1_5.ue16a",  0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
818   ROM_LOAD16_BYTE( "i-scr4_9.ue15b",  0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
819   ROM_LOAD16_BYTE( "i-scr3_4.ue15a",  0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
820   ROM_LOAD16_BYTE( "i-scr6_8.ue14b",  0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
821   ROM_LOAD16_BYTE( "i-scr5_3.ue14a",  0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
822   ROM_LOAD16_BYTE( "i-scr8_11.ue20b", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
823   ROM_LOAD16_BYTE( "i-scr7_6.ue20a",  0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
824
825   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
826   ROM_LOAD( "obj1_13.u5",  0x00000, 0x80000, CRC(f99751f5) SHA1(10f0a2e369abc36a6df2f0c9879ffb7071ee214b) )
827
828   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
829   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
830   ROM_LOAD( "music1_1.ub6", 0x00000, 0x80000, CRC(22955efb) SHA1(791c18d1aa0c10810da05c199108f51f99fe1d49) ) /* sample roms same as expro02.c sets, but different positions */
831   ROM_RELOAD(               0x40000, 0x80000 )
832   ROM_LOAD( "music2_2.uc6", 0xc0000, 0x80000, CRC(4cd4d6c3) SHA1(a617472a810aef6d82f5fe75ef2980c03c21c2fa) )
833ROM_END
834
835ROM_START( newfant )
836   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
837   ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
838   ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
839   ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
840   ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
841   ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
842   ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
843   ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
844   ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
845   ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
846   ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
847
848   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
849   ROM_LOAD( "nf95obj1.13",  0x00000, 0x80000, CRC(e6d1bc71) SHA1(df0b6c1742c01991196659bab2691230323e7b8d) ) // sldh
850
851   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
852   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
853   ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
854   ROM_RELOAD(               0x40000, 0x80000 )
855   ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
856ROM_END
857
858ROM_START( newfanta )
859   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
860   ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
861   ROM_LOAD16_BYTE( "prog1.07", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
862   ROM_LOAD16_BYTE( "iscr2.10", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
863   ROM_LOAD16_BYTE( "iscr1.05", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
864   ROM_LOAD16_BYTE( "iscr4.09", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
865   ROM_LOAD16_BYTE( "iscr3.04", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
866   ROM_LOAD16_BYTE( "iscr6.08", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
867   ROM_LOAD16_BYTE( "iscr5.03", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
868   ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
869   ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
870
871   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
872   ROM_LOAD( "obj1.13",  0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
873
874   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
875   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
876   ROM_LOAD( "musc1.01", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
877   ROM_RELOAD(               0x40000, 0x80000 )
878   ROM_LOAD( "musc2.02", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
879ROM_END
880
881ROM_START( missw96 )
882   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
883   ROM_LOAD16_BYTE( "mw96_10.bin",  0x000000, 0x80000, CRC(b1309bb1) SHA1(3cc7a903cb007d8fc0f836a33780c1c9231d1629) )
884   ROM_LOAD16_BYTE( "mw96_06.bin",  0x000001, 0x80000, CRC(a5892bb3) SHA1(99130eb0af307fe66c9668414475e003f9c7d969) )
885   ROM_LOAD16_BYTE( "mw96_09.bin",  0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
886   ROM_LOAD16_BYTE( "mw96_05.bin",  0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
887   ROM_LOAD16_BYTE( "mw96_08.bin",  0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
888   ROM_LOAD16_BYTE( "mw96_04.bin",  0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
889   ROM_LOAD16_BYTE( "mw96_07.bin",  0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
890   ROM_LOAD16_BYTE( "mw96_03.bin",  0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
891
892   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
893   ROM_LOAD( "mw96_11.bin",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
894
895   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
896   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
897   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
898   ROM_RELOAD(               0x40000, 0x80000 )
899   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
900ROM_END
901
902ROM_START( missw96a )
903   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
904   ROM_LOAD16_BYTE( "mw96n2_10.prog2", 0x000000, 0x80000, CRC(563ce811) SHA1(4013b303dc7fdfcd2b5b91f12a950eb71b27714a) )
905   ROM_LOAD16_BYTE( "mw96n2_6.prog1",  0x000001, 0x80000, CRC(98e91a3b) SHA1(a135458e0373b528498408ac3288a01a666f3522) )
906   ROM_LOAD16_BYTE( "mw96_09.bin",  0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
907   ROM_LOAD16_BYTE( "mw96_05.bin",  0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
908   ROM_LOAD16_BYTE( "mw96_08.bin",  0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
909   ROM_LOAD16_BYTE( "mw96_04.bin",  0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
910   ROM_LOAD16_BYTE( "mw96_07.bin",  0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
911   ROM_LOAD16_BYTE( "mw96_03.bin",  0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
912
913   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
914   ROM_LOAD( "mw96_11.bin",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
915
916   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
917   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
918   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
919   ROM_RELOAD(               0x40000, 0x80000 )
920   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
921ROM_END
922
923ROM_START( missw96b )
924   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
925   ROM_LOAD16_BYTE( "mw96n3_10.prog2", 0x000000, 0x80000, CRC(67bde86b) SHA1(7457a4c130a9ab1c75645e2a662a87af3fee8bba) )
926   ROM_LOAD16_BYTE( "mw96n3_6.prog1",  0x000001, 0x80000, CRC(de99cc48) SHA1(ffa2597083c412fb943724048d8d5cc7bd9be11c) )
927   ROM_LOAD16_BYTE( "mw96_09.bin",  0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
928   ROM_LOAD16_BYTE( "mw96_05.bin",  0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
929   ROM_LOAD16_BYTE( "mw96_08.bin",  0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
930   ROM_LOAD16_BYTE( "mw96_04.bin",  0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
931   ROM_LOAD16_BYTE( "mw96_07.bin",  0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
932   ROM_LOAD16_BYTE( "mw96_03.bin",  0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
933
934   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
935   ROM_LOAD( "mw96_11.bin",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
936
937   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
938   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
939   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
940   ROM_RELOAD(               0x40000, 0x80000 )
941   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
942ROM_END
943
944
945ROM_START( missmw96 )
946   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
947   ROM_LOAD16_BYTE( "mmw96_10.bin",  0x000000, 0x80000, CRC(45ed1cd9) SHA1(a75b1b6cddde065e6d7f7355a746819c8268c24f) )
948   ROM_LOAD16_BYTE( "mmw96_06.bin",  0x000001, 0x80000, CRC(52ec9e5d) SHA1(20b7cc923e9d55e391b09d96248837bb8f28a176) )
949   ROM_LOAD16_BYTE( "mmw96_09.bin",  0x100000, 0x80000, CRC(6c458b05) SHA1(249490c45cdecd6496338286a9ab6a6137cefcd0) )
950   ROM_LOAD16_BYTE( "mmw96_05.bin",  0x100001, 0x80000, CRC(48159555) SHA1(a7c736f9e41915d06b7242e427282c421c4a8283) )
951   ROM_LOAD16_BYTE( "mmw96_08.bin",  0x200000, 0x80000, CRC(1dc72b07) SHA1(fdbdf8298fe98d74ed2a76abf60f60af1c27a65d) )
952   ROM_LOAD16_BYTE( "mmw96_04.bin",  0x200001, 0x80000, CRC(fc3e18fa) SHA1(b3ad254aab982dc75a10c2cf2b3815c2fdbba914) )
953   ROM_LOAD16_BYTE( "mmw96_07.bin",  0x300000, 0x80000, CRC(001572bf) SHA1(cdf59c624baaeaea70985ee6f2f2fed08a8dfa61) )
954   ROM_LOAD16_BYTE( "mmw96_03.bin",  0x300001, 0x80000, CRC(22204025) SHA1(442e7f754c65c598983d6f897a60870d7759c823) )
955
956   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
957   ROM_LOAD( "mmw96_11.bin",  0x00000, 0x80000, CRC(7d491f8c) SHA1(63f580bd65579cac70b90eaa0e7f2413ef1597b8) )
958
959   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
960   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
961   ROM_LOAD( "mw96_01.bin",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
962   ROM_RELOAD(               0x40000, 0x80000 )
963   ROM_LOAD( "mw96_02.bin",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
964ROM_END
965
966ROM_START( smissw )
967   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
968   ROM_LOAD16_BYTE( "10_PROG2.UE17",  0x000000, 0x80000, CRC(e99e520f) SHA1(edd06a3b0f8d30a4020e6ea452abb0afd79d426a) )
969   ROM_LOAD16_BYTE( "6_PROG1.UD17",   0x000001, 0x80000, CRC(22831657) SHA1(eeabcdef543048ccceabc4c3b4b288aec959a14f) )
970   ROM_LOAD16_BYTE( "9_IM1-B.UE16B",  0x100000, 0x80000, CRC(fff1eee4) SHA1(1b88d45b5cc0b5a03296d4dc950e570fa4dc19c2) )
971   ROM_LOAD16_BYTE( "5_IM1-A.UE16A",  0x100001, 0x80000, CRC(2134a72d) SHA1(f907ec8a1d6e5755a821e69564074ff05e426bb1) )
972   ROM_LOAD16_BYTE( "8_IM2-B.UE15B",  0x200000, 0x80000, CRC(cf44b638) SHA1(0fe5bdb62492c31c3efffa6d85f5d6a3b4ddb2e0) )
973   ROM_LOAD16_BYTE( "4_IM2-A.UE15A",  0x200001, 0x80000, CRC(d22b270f) SHA1(21bd2ced1b5fb3c08687addaa890ee621a56fff0) )
974   ROM_LOAD16_BYTE( "7_IM3-B.UE14B",  0x300000, 0x80000, CRC(12a9441d) SHA1(d9cd51e0c3ffac5fc561e0927c419bce0157337e) )
975   ROM_LOAD16_BYTE( "3_IM3-A.UE14A",  0x300001, 0x80000, CRC(8c656fc9) SHA1(c3fe5de7cd6cd520bbd205ec62ac0dda51f71eeb) )
976
977   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
978   ROM_LOAD( "15_OBJ11.U5",  0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
979
980   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
981   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
982   ROM_LOAD( "1_MUSIC1.UB6",  0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
983   ROM_RELOAD(               0x40000, 0x80000 )
984   ROM_LOAD( "2_MUSIC2.UC6",  0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
985ROM_END
986
987
988ROM_START( fantsia2 )
989   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
990   ROM_LOAD16_BYTE( "prog2.g17",    0x000000, 0x80000, CRC(57c59972) SHA1(4b1da928b537cf340a67026d07bc3dfc078b0d0f) )
991   ROM_LOAD16_BYTE( "prog1.f17",    0x000001, 0x80000, CRC(bf2d9a26) SHA1(92f0c1bd32f1e5e0ede3ba847242a212dfae4986) )
992   ROM_LOAD16_BYTE( "scr2.g16",     0x100000, 0x80000, CRC(887b1bc5) SHA1(b6fcdc8a56ea25758f363224d256e9b6c8e30244) )
993   ROM_LOAD16_BYTE( "scr1.f16",     0x100001, 0x80000, CRC(cbba3182) SHA1(a484819940fa1ef18ce679465c31075798748bac) )
994   ROM_LOAD16_BYTE( "scr4.g15",     0x200000, 0x80000, CRC(ce97e411) SHA1(be0ed41362db03f384229c708f2ba4146e5cb501) )
995   ROM_LOAD16_BYTE( "scr3.f15",     0x200001, 0x80000, CRC(480cc2e8) SHA1(38fe57ba1e34537f8be65fcc023ccd43369a5d94) )
996   ROM_LOAD16_BYTE( "scr6.g14",     0x300000, 0x80000, CRC(b29d49de) SHA1(854b76755acf58fb8a4648a0ce72ea6bdf26c555) )
997   ROM_LOAD16_BYTE( "scr5.f14",     0x300001, 0x80000, CRC(d5f88b83) SHA1(518a1f6732149f2851bbedca61f7313c39beb91b) )
998   ROM_LOAD16_BYTE( "scr8.g20",     0x400000, 0x80000, CRC(694ae2b3) SHA1(82b7a565290fce07c8393af4718fd1e6136928e9) )
999   ROM_LOAD16_BYTE( "scr7.f20",     0x400001, 0x80000, CRC(6068712c) SHA1(80a136d76dca566772e34d832ac11b8c7d6ce9ab) )
1000
1001   ROM_REGION( 0x100000, "gfx1", 0 )   /* sprites */
1002   ROM_LOAD( "obj1.1i",      0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
1003   ROM_LOAD( "obj2.2i",      0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
1004
1005   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1006   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1007   ROM_LOAD( "music2.1b",    0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
1008   ROM_RELOAD(               0x40000, 0x80000 )
1009   ROM_LOAD( "music1.1a",    0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
1010ROM_END
1011
1012ROM_START( fantsia2a )
1013   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1014   ROM_LOAD16_BYTE( "fnt2-22.bin",    0x000000, 0x80000, CRC(a3a92c4b) SHA1(6affdcb57e1e0a77c7cc33135dafe86843e9e3d8) )
1015   ROM_LOAD16_BYTE( "fnt2-17.bin",    0x000001, 0x80000, CRC(d0ce4493) SHA1(9cec088e6630555b6d584df23236c279909820cf) )
1016   ROM_LOAD16_BYTE( "fnt2-21.bin",    0x100000, 0x80000, CRC(e989c2e7) SHA1(c9eea2a89843cdd9db4a4a0539d0315c125e3e02) )
1017   ROM_LOAD16_BYTE( "fnt2-16.bin",    0x100001, 0x80000, CRC(8c06d372) SHA1(14fe2c8450f0f2e11e204dd524bfe32a72ddc144) )
1018   ROM_LOAD16_BYTE( "fnt2-20.bin",    0x200000, 0x80000, CRC(6e9f1e65) SHA1(b6f1eb1a52de18ed5b17de3ef365e5c041d15314) )
1019   ROM_LOAD16_BYTE( "fnt2-15.bin",    0x200001, 0x80000, CRC(85cbeb2b) SHA1(a213b461019ddb3b319b9815a76c6fb2ecfbe937) )
1020   ROM_LOAD16_BYTE( "fnt2-19.bin",    0x300000, 0x80000, CRC(7953226a) SHA1(955c779eae496688be2ed416d879d6e83c888368) )
1021   ROM_LOAD16_BYTE( "fnt2-14.bin",    0x300001, 0x80000, CRC(10d8ccff) SHA1(bf4c49d85556edf49289631ee6178d3fb7dea2cc) )
1022   ROM_LOAD16_BYTE( "fnt2-18.bin",    0x400000, 0x80000, CRC(4cdaeda3) SHA1(f5b478e49b59496865982409517654f48296565d) )
1023   ROM_LOAD16_BYTE( "fnt2-13.bin",    0x400001, 0x80000, CRC(68c7f042) SHA1(ed3c864f3d91377fec78f19897ba0b0d2bcf0d2b) )
1024
1025   ROM_REGION( 0x100000, "gfx1", 0 )   /* sprites */
1026   ROM_LOAD( "obj1.1i",      0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
1027   ROM_LOAD( "obj2.2i",      0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
1028
1029   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1030   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1031   ROM_LOAD( "music2.1b",    0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
1032   ROM_RELOAD(               0x40000, 0x80000 )
1033   ROM_LOAD( "music1.1a",    0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
1034ROM_END
1035
1036ROM_START( wownfant)
1037   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1038   ROM_LOAD16_BYTE( "ep-4001 42750001 u81.bin",    0x000000, 0x80000, CRC(9942d200) SHA1(d2f69c0949881ef4aef202b564eac069c030a497) )
1039   ROM_LOAD16_BYTE( "ep-4001 42750001 u80.bin",    0x000001, 0x80000, CRC(17359eeb) SHA1(90bb9da6bdf56fa9eb0ad03691750518a2a3f879) )
1040   ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 1.bin",    0x100000, 0x200000, CRC(c318e841) SHA1(ba7af736d3b0accca474b0de1c8299eb3c449ef9) )
1041   ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 2.bin",    0x300000, 0x200000, CRC(8871dc3a) SHA1(8e028f1430474df19bb9a912ee9e407fe4582558) )
1042
1043   ROM_REGION( 0x100000, "gfx1", 0 )   /* sprites */
1044   ROM_LOAD( "ep-4001 42750001 u113.bin",      0x00000, 0x80000, CRC(3e77ca1f) SHA1(f946e65a29bc02b89c02b2a869578d38cfe7e2d0) )
1045   ROM_LOAD( "ep-4001 42750001 u112.bin",      0x80000, 0x80000, CRC(51f4b604) SHA1(52e8ce0a2c1b9b00f04e0c775789bc550bad8ae0) )
1046
1047   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1048   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1049   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
1050   ROM_RELOAD(               0x40000, 0x80000 )
1051   ROM_LOAD( "ep-4001 42750001 u1.bin",    0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
1052ROM_END
1053
1054ROM_START( galhustl ) // An original PCB has been seen with genuine AFEGA labels
1055   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
1056   ROM_LOAD16_BYTE( "ue17.3", 0x00000, 0x80000, CRC(b2583dbb) SHA1(536f4aa2246ec816c4f270f9d42acc090718ee8b) ) // Also found as AFEGA 3
1057   ROM_LOAD16_BYTE( "ud17.4", 0x00001, 0x80000, CRC(470a3668) SHA1(ad86e96ab8f1f5da23fb1feaabfb9c757965418e) ) // Also found as AFEGA 4
1058
1059   ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
1060
1061   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1062   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1063   ROM_LOAD( "galhstl1.ub6", 0x00000, 0x80000,  CRC(23848790) SHA1(2e77fbe04f46e258daecb4c5917e383c7c06a306) ) // Also found as AFEGA 1
1064   ROM_RELOAD(               0x40000, 0x80000 )
1065   ROM_LOAD( "galhstl2.uc6", 0xc0000, 0x80000,  CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) ) // Also found as AFEGA 2
1066
1067   ROM_REGION( 0x100000, "gfx1", 0 )
1068   ROM_LOAD( "galhstl5.u5", 0x00000, 0x80000, CRC(44a18f15) SHA1(1217cf7fbbb442358b15016099efeface5dcbd22) ) // Also found as AFEGA 5
1069ROM_END
1070
1071ROM_START( pgalvip ) // this set has extra data roms for the gfx
1072   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
1073   ROM_LOAD16_BYTE( "afega_15.ue17", 0x00000, 0x20000, CRC(050060ca) SHA1(1e2a1d6aaf5038269d192baf3520f4af7a299325) )
1074   ROM_LOAD16_BYTE( "afega_16.ud17", 0x00001, 0x20000, CRC(d32e4052) SHA1(632d9affee92a526c0e9399230ecf485922c6df4) )
1075
1076   ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
1077   ROM_LOAD16_BYTE( "afega_13.rob1", 0x00000, 0x80000, CRC(ac51ef72) SHA1(01acb29ff474c52fcb323cdb14e0d6f804c93255) )
1078   ROM_LOAD16_BYTE( "afega_14.roa1", 0x00001, 0x80000, CRC(0877c00f) SHA1(91c325d6c21045f08abca86a9c4d46023363dd2e) )
1079
1080   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1081   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1082   ROM_LOAD( "afega_12.ub6", 0x00000, 0x20000,  CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
1083   ROM_RELOAD(               0x40000, 0x20000 )
1084   ROM_LOAD( "afega_11.uc6", 0xc0000, 0x80000,  CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
1085
1086   ROM_REGION( 0x100000, "gfx1", 0 )
1087   ROM_LOAD( "afega_17.u5", 0x00000, 0x80000, CRC(a8a50745) SHA1(e51963947c7a7556b8531d172b9d7bf9f321b21b) )
1088ROM_END
1089
1090ROM_START( pgalvipa ) // this set is more like Gals Hustler
1091   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
1092   ROM_LOAD16_BYTE( "pgalvip_3.ue17", 0x00000, 0x80000, CRC(a48e8255) SHA1(7e8f1747420ff0d599d340915712827ca2eb3092) )
1093   ROM_LOAD16_BYTE( "pgalvip_4.ud17", 0x00001, 0x80000, CRC(829a2085) SHA1(3ff5f2bb730572202cd427abd7f91dd886537ab6) )
1094
1095   ROM_REGION16_BE( 0x100000, "maincpudata", ROMREGION_ERASEFF ) /* 68000 Data */
1096
1097   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1098   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1099   ROM_LOAD( "pgalvip_1.ub6", 0x00000, 0x20000,  CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
1100   ROM_RELOAD(               0x40000, 0x20000 )
1101   ROM_LOAD( "pgalvip_2.uc6", 0xc0000, 0x80000,  CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
1102
1103   ROM_REGION( 0x100000, "gfx1", 0 )
1104   ROM_LOAD( "pgalvip_5.u5", 0x00000, 0x80000, CRC(2d6e5a90) SHA1(b5487e5764d83dfecd982a8614d213c9075fbee4) )
1105ROM_END
1106
1107/*
1108
1109Zip & Zap
1110
1111Zip Zap (pcb marked Barko Corp 950509)
1112
11131x 68k
11141x Oki m6295
11151x osc 12mhz
11161x osc 16mhz
11171x fpga
11182x dipswitch banks
1119
1120*/
1121
1122ROM_START( zipzap )
1123   ROM_REGION( 0x500000, "maincpu", 0 ) /* 68000 Code */
1124   /* all the roms for this game could do with checking on another board, this one was in pretty bad condition
1125      and reads weren't always consistent */
1126   ROM_LOAD16_BYTE( "ud17.bin", 0x000001, 0x40000, BAD_DUMP CRC(2901fae1) SHA1(0d6ca6d48c5586c05f3c02aee51a95da38b3751f) )
1127   ROM_LOAD16_BYTE( "ue17.bin", 0x000000, 0x40000, BAD_DUMP CRC(da6c3fc8) SHA1(4bc01bc6f62553f6ac4f7252f7d9bf0d639f6935) )
1128   /* gfx bitmaps */
1129   ROM_LOAD16_BYTE( "938.bin",  0x400000, 0x80000, CRC(61c06b60) SHA1(b3abae020009a48b99862766e0981e1118159a47) ) // good title background
1130   ROM_LOAD16_BYTE( "942.bin",  0x400001, 0x80000, CRC(282413b8) SHA1(e2ecaaa3c5b2355eadc016b73d7d658f25e1e0db) ) // (and corrupt gfx on select mode screen)
1131
1132   ROM_LOAD16_BYTE( "934.bin",  0x300000, 0x80000, CRC(1e65988a) SHA1(64d6f8cbdb28755515d9bbf52f589ce1176fed58) ) // good, girls
1133   ROM_LOAD16_BYTE( "939.bin",  0x300001, 0x80000, CRC(8790a6a3) SHA1(94f39e48b75144cab191e2de4284c28d18b8f1c7))
1134
1135   ROM_LOAD16_BYTE( "936.bin",  0x200000, 0x80000, CRC(596543cc) SHA1(10a0eab4ca4a8749f1703ff6fcc80d731d07d087) ) // good, girls
1136   ROM_LOAD16_BYTE( "940.bin",  0x200001, 0x80000, CRC(0c9dfb53) SHA1(541bd8c79408b7415713b517eacdd565d0ac5cb8) )
1137
1138   ROM_LOAD16_BYTE( "937.bin",  0x100000, 0x80000, CRC(61dd653f) SHA1(68b5ae3423363cc64d933836bf6881431dad021a) ) // good, girls
1139   ROM_LOAD16_BYTE( "941.bin",  0x100001, 0x80000, CRC(320321ed) SHA1(00b52cd34cd86c105ff6dbd0248ff239de31c851) )
1140
1141   ROM_REGION( 0x100000, "gfx1", 0 ) // sprites
1142   ROM_LOAD( "u5.bin",  0x000000, 0x80000,  CRC(c274d8b5) SHA1(2c45961aaf8311f027a734df7e33fe085dfdd099) )
1143
1144   ROM_REGION( 0x140000, "oki", 0 ) /* Samples */
1145   ROM_LOAD( "snd.bin", 0x00000, 0x80000,  CRC(bc20423e) SHA1(1f4bd52ec4f9b3b3e6b10ac2b3afaadf76a2c7c9) )
1146   ROM_RELOAD(          0x40000, 0x80000 )
1147   ROM_RELOAD(          0xc0000, 0x80000 )
1148ROM_END
1149
1150ROM_START( supmodel )
1151   ROM_REGION( 0x500000, "maincpu", 0 )    /* 68000 code */
1152   ROM_LOAD16_BYTE( "prog2.12",  0x000000, 0x80000, CRC(714b7e74) SHA1(a4f7754a4b04729084ccb1359f9bdfbad6150222) )
1153   ROM_LOAD16_BYTE( "prog1.7",   0x000001, 0x80000, CRC(0bb858de) SHA1(bd2039fa46fce89289e99a790400bd567f90105e) )
1154   ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(d07ec0ce) SHA1(88997254ea2bffa83ab4a77087905cf646ee3c12) )
1155   ROM_LOAD16_BYTE( "i-scr1.5",  0x100001, 0x80000, CRC(a96a8bde) SHA1(e93de2df1391a8e94d655e1c9e148196e692e661) )
1156   ROM_LOAD16_BYTE( "i-scr4.9",  0x200000, 0x80000, CRC(e959cab5) SHA1(13d744aa71d9485a4530418536c38a542a269e27) )
1157   ROM_LOAD16_BYTE( "i-scr3.4",  0x200001, 0x80000, CRC(4bf5e082) SHA1(14ab9ebe0c7a2154275b0aeb76f99d73552d862f) )
1158   ROM_LOAD16_BYTE( "i-scr6.8",  0x300000, 0x80000, CRC(e71337c2) SHA1(be1b532e66e70f7d30b657a88c1f9b154187636e) )
1159   ROM_LOAD16_BYTE( "i-scr5.3",  0x300001, 0x80000, CRC(641ccdfb) SHA1(f48dc0461bc49cfe4adcf769e9abfe83efa077a1) )
1160   ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(7c1813c8) SHA1(80fe97ac640847360529edfb728955e1067b0c14) )
1161   ROM_LOAD16_BYTE( "i-scr7.6",  0x400001, 0x80000, CRC(19c73268) SHA1(aa6dc8c817a2e9707ea74e219ab34cf826223741) )
1162
1163   ROM_REGION( 0x80000, "gfx1", 0 )    /* sprites */
1164   ROM_LOAD( "obj1.13",  0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
1165
1166   ROM_REGION( 0x140000, "oki", 0 )    /* OKIM6295 samples */
1167   /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1168   ROM_LOAD( "music1.1", 0x00000, 0x80000, CRC(2b1f6655) SHA1(e7b52cf4bd16590c598c375d5a97b724bc9ef631) )
1169   ROM_RELOAD(               0x40000, 0x80000 )
1170   ROM_LOAD( "music2.2", 0xc0000, 0x80000, CRC(cccae65a) SHA1(5e4e2e51884eaf191f103aa189ff33371fc91d6d) )
1171ROM_END
1172
1173315GAME( 1990, galpanic, 0,        galpanic, galpanic,  driver_device, 0, ROT90, "Kaneko",                   "Gals Panic (Unprotected)", GAME_NO_COCKTAIL )
1174316GAME( 1990, galpanica,galpanic, galpanica,galpanica, driver_device, 0, ROT90, "Kaneko",                   "Gals Panic (MCU Protected)", GAME_NO_COCKTAIL )
1175317
1176GAME( 1994, supmodel, 0,        supmodel, fantasia,  driver_device, 0, ROT90, "Comad & New Japan System", "Super Model",GAME_NO_COCKTAIL )
1177
1178GAME( 1994, fantasian,fantasia, comad,    fantasia,  driver_device, 0, ROT90, "Comad & New Japan System", "Fantasia (940803 PCB)", GAME_NO_COCKTAIL )
1179
1180GAME( 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
1181GAME( 1994, newfanta, newfant,  comad,    fantasia,  driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1994 copyright)", GAME_NO_COCKTAIL )
1182GAME( 1995, fantsy95, newfant,  comad,    fantasia,  driver_device, 0, ROT90, "Hi-max Technology Inc.",   "Fantasy '95", GAME_NO_COCKTAIL )
1183
1184GAME( 1996, missw96,  0,        comad,    missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss World '96 (Nude) (set 1)", GAME_NO_COCKTAIL )
1185GAME( 1996, missw96a, missw96,  comad,    missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss World '96 (Nude) (set 2)", GAME_NO_COCKTAIL )
1186GAME( 1996, missw96b, missw96,  comad,    missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss World '96 (Nude) (set 3)", GAME_NO_COCKTAIL )
1187GAME( 1996, missmw96, missw96,  comad,    missw96,   driver_device, 0, ROT0,  "Comad",                    "Miss Mister World '96 (Nude)", GAME_NO_COCKTAIL )
1188
1189GAME( 1996, smissw,   0,        smissw,   missw96,   driver_device, 0, ROT0,  "Comad",                    "Super Miss World", GAME_NO_COCKTAIL ) // 951127 PCB
1190
1191GAME( 1997, fantsia2, 0,        fantsia2, missw96,   driver_device, 0, ROT0,  "Comad",                    "Fantasia II (Explicit)", GAME_NO_COCKTAIL )
1192GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96,   driver_device, 0, ROT0,  "Comad",                    "Fantasia II (Less Explicit)", GAME_NO_COCKTAIL )
1193
1194GAME( 2002, wownfant, 0,        fantsia2, missw96,   driver_device, 0, ROT0,  "Comad",                    "WOW New Fantasia", GAME_NO_COCKTAIL )
1195
1196GAME( 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.
1197
1198GAME( 1997, pgalvipa, pgalvip,  galhustl, galhustl,  driver_device, 0, ROT0,  "<unknown>",                "Pocket Gals V.I.P (set 2)", 0 )
1199GAME( 1997, galhustl, pgalvip,  galhustl, galhustl,  driver_device, 0, ROT0,  "ACE International",        "Gals Hustler", 0 ) // hack of the above?
1200
1201GAME( 1995, zipzap,   0,        zipzap,   zipzap,    driver_device, 0, ROT90, "Barko Corp",               "Zip & Zap", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
trunk/src/mame/includes/galpanic.h
r243532r243533
11#include "includes/kaneko16.h"
22
3class galpanic_state : public kaneko16_state
3class galpanic_state : public driver_device
44{
55public:
66   galpanic_state(const machine_config &mconfig, device_type type, const char *tag)
7      : kaneko16_state(mconfig, type, tag),
7      : driver_device(mconfig, type, tag),
8         m_maincpu(*this, "maincpu"),
89         m_bgvideoram(*this, "bgvideoram"),
910         m_fgvideoram(*this, "fgvideoram"),
1011         m_spriteram(*this, "spriteram"),
1112         m_gfxdecode(*this, "gfxdecode"),
1213         m_screen(*this, "screen"),
1314         m_palette(*this, "palette"),
14         m_generic_paletteram_16(*this, "paletteram") { }
15         m_generic_paletteram_16(*this, "paletteram"),
16         m_pandora(*this, "pandora")
17   { }
1518
19   required_device<cpu_device> m_maincpu;
1620   required_shared_ptr<UINT16> m_bgvideoram;
1721   required_shared_ptr<UINT16> m_fgvideoram;
1822   bitmap_ind16 m_bitmap;
r243532r243533
2226   required_device<screen_device> m_screen;
2327   required_device<palette_device> m_palette;
2428   required_shared_ptr<UINT16> m_generic_paletteram_16;
29   required_device<kaneko_pandora_device> m_pandora;
2530
2631   DECLARE_WRITE16_MEMBER(galpanic_6295_bankswitch_w);
27   DECLARE_WRITE16_MEMBER(galpanica_6295_bankswitch_w);
28   DECLARE_WRITE16_MEMBER(galpanica_misc_w);
2932   DECLARE_WRITE16_MEMBER(galpanic_coin_w);
30   DECLARE_WRITE16_MEMBER(galpanic_bgvideoram_mirror_w);
31   DECLARE_READ16_MEMBER(comad_timer_r);
32   DECLARE_READ16_MEMBER(zipzap_random_read);
33   DECLARE_READ8_MEMBER(comad_okim6295_r);
33
3434   DECLARE_VIDEO_START(galpanic);
3535   DECLARE_PALETTE_INIT(galpanic);
3636   UINT32 screen_update_galpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
37   UINT32 screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3837   void screen_eof_galpanic(screen_device &screen, bool state);
3938   TIMER_DEVICE_CALLBACK_MEMBER(galpanic_scanline);
40   TIMER_DEVICE_CALLBACK_MEMBER(galhustl_scanline);
4139   void comad_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
4240   void draw_fgbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
4341   /*----------- defined in video/galpanic.c -----------*/
trunk/src/mame/video/galpanic.c
r243532r243533
66VIDEO_START_MEMBER(galpanic_state,galpanic)
77{
88   m_screen->register_screen_bitmap(m_bitmap);
9   m_screen->register_screen_bitmap(m_sprites_bitmap);
109}
1110
1211PALETTE_INIT_MEMBER(galpanic_state,galpanic)
r243532r243533
4342}
4443
4544
46void galpanic_state::comad_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
47{
48   UINT16 *spriteram16 = m_spriteram;
49   int offs;
50   int sx=0, sy=0;
5145
52   for (offs = 0;offs < m_spriteram.bytes()/2;offs += 4)
53   {
54      int code,color,flipx,flipy;
55
56      code = spriteram16[offs + 1] & 0x1fff;
57      color = (spriteram16[offs] & 0x003c) >> 2;
58      flipx = spriteram16[offs] & 0x0002;
59      flipy = spriteram16[offs] & 0x0001;
60
61      if((spriteram16[offs] & 0x6000) == 0x6000) /* Link bits */
62      {
63         sx += spriteram16[offs + 2] >> 6;
64         sy += spriteram16[offs + 3] >> 6;
65      }
66      else
67      {
68         sx = spriteram16[offs + 2] >> 6;
69         sy = spriteram16[offs + 3] >> 6;
70      }
71
72      sx = (sx&0x1ff) - (sx&0x200);
73      sy = (sy&0x1ff) - (sy&0x200);
74
75      m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
76            code,
77            color,
78            flipx,flipy,
79            sx,sy,0);
80   }
81}
82
8346void galpanic_state::draw_fgbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect)
8447{
8548   int offs;
r243532r243533
10770
10871   return 0;
10972}
110
111UINT32 galpanic_state::screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
112{
113   /* copy the temporary bitmap to the screen */
114   copybitmap(bitmap,m_bitmap,0,0,0,0,cliprect);
115
116   draw_fgbitmap(bitmap, cliprect);
117
118
119//  if(galpanic_clear_sprites)
120   {
121      m_sprites_bitmap.fill(0, cliprect);
122      comad_draw_sprites(bitmap,cliprect);
123   }
124//  else
125//  {
126//      /* keep sprites on the bitmap without clearing them */
127//      comad_draw_sprites(machine(),m_sprites_bitmap,0);
128//      copybitmap_trans(bitmap,m_sprites_bitmap,0,0,0,0,cliprect,0);
129//  }
130   return 0;
131}
trunk/src/mame/video/kaneko_spr.c
r243532r243533
624624   : kaneko16_sprite_device(mconfig, tag, owner, clock, KANEKO_KC002_SPRITE)
625625{
626626}
627
628// this is a bootleg implementation, used by Gals Hustler and Zip Zap, the latter not really working at all well with the original
629// link features (assuming the bad program roms aren't the cause)  it's clearly derived from this sprite system tho.
630void kaneko16_sprite_device::bootleg_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes)
631{
632//   UINT16 *spriteram16 = m_spriteram;
633   int offs;
634   int sx=0, sy=0;
635
636   for (offs = 0;offs < spriteram16_bytes/2;offs += 4)
637   {
638      int code,color,flipx,flipy;
639
640      code = spriteram16[offs + 1] & 0x1fff;
641      color = (spriteram16[offs] & 0x003c) >> 2;
642      flipx = spriteram16[offs] & 0x0002;
643      flipy = spriteram16[offs] & 0x0001;
644
645      if((spriteram16[offs] & 0x6000) == 0x6000) /* Link bits */
646      {
647         sx += spriteram16[offs + 2] >> 6;
648         sy += spriteram16[offs + 3] >> 6;
649      }
650      else
651      {
652         sx = spriteram16[offs + 2] >> 6;
653         sy = spriteram16[offs + 3] >> 6;
654      }
655
656      sx = (sx&0x1ff) - (sx&0x200);
657      sy = (sy&0x1ff) - (sy&0x200);
658
659      m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
660            code,
661            color,
662            flipx,flipy,
663            sx,sy,0);
664   }
665}
No newline at end of file
trunk/src/mame/video/kaneko_spr.h
r243532r243533
4747   template<class _BitmapClass>
4848   void kaneko16_render_sprites_common(_BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT16* spriteram16, int spriteram16_bytes);
4949
50   void bootleg_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes);
5051
52
5153   DECLARE_READ16_MEMBER(kaneko16_sprites_regs_r);
5254   DECLARE_WRITE16_MEMBER(kaneko16_sprites_regs_w);
5355


Previous 199869 Revisions Next


© 1997-2024 The MAME Team