summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/jackpool.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/jackpool.c')
-rw-r--r--src/mame/drivers/jackpool.c234
1 files changed, 234 insertions, 0 deletions
diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c
new file mode 100644
index 00000000000..e0290ce44fa
--- /dev/null
+++ b/src/mame/drivers/jackpool.c
@@ -0,0 +1,234 @@
+/*
+
+Poker game
+
+Copyright (C) 1992 HI-TECH Software..Brisbane, QLD Australia
+ is present in the ROMs, although the game is in Italian
+ and has a 1997 copyright, its probably a bootleg
+
+*/
+
+#include "driver.h"
+#include "sound/okim6295.h"
+
+
+static tilemap *jackpool_layer0_tilemap;
+static UINT16 *jackpool_layer0_videoram;
+static tilemap *jackpool_layer1_tilemap;
+static UINT16 *jackpool_layer1_videoram;
+static tilemap *jackpool_layer2_tilemap;
+static UINT16 *jackpool_layer2_videoram;
+
+
+static TILE_GET_INFO( get_jackpool_layer0_tile_info )
+{
+ int tileno,attr;
+
+ tileno = jackpool_layer0_videoram[tile_index]&0x7fff;
+ attr = jackpool_layer0_videoram[tile_index+0x800]&0x1f;
+
+ SET_TILE_INFO(0,tileno,attr,0);
+}
+
+static WRITE16_HANDLER( jackpool_layer0_videoram_w )
+{
+ COMBINE_DATA(&jackpool_layer0_videoram[offset]);
+
+ tilemap_mark_tile_dirty(jackpool_layer0_tilemap,offset&0x07ff);
+}
+
+static TILE_GET_INFO( get_jackpool_layer1_tile_info )
+{
+ int tileno,attr;
+
+ tileno = jackpool_layer1_videoram[tile_index]&0x7fff;
+ attr = jackpool_layer1_videoram[tile_index+0x800]&0x1f;
+
+ SET_TILE_INFO(0,tileno,attr,0);
+}
+
+static WRITE16_HANDLER( jackpool_layer1_videoram_w )
+{
+ COMBINE_DATA(&jackpool_layer1_videoram[offset]);
+
+ tilemap_mark_tile_dirty(jackpool_layer1_tilemap,offset&0x07ff);
+}
+
+static TILE_GET_INFO( get_jackpool_layer2_tile_info )
+{
+ int tileno,attr;
+
+ tileno = jackpool_layer2_videoram[tile_index]&0x7fff;
+ attr = jackpool_layer2_videoram[tile_index+0x800]&0x1f;
+
+ SET_TILE_INFO(0,tileno,attr,0);
+}
+
+static WRITE16_HANDLER( jackpool_layer2_videoram_w )
+{
+ COMBINE_DATA(&jackpool_layer2_videoram[offset]);
+
+ tilemap_mark_tile_dirty(jackpool_layer2_tilemap,offset&0x07ff);
+}
+
+
+
+static READ16_HANDLER( jackpool_io_r )
+{
+// return mame_rand(Machine);
+ return 0xffff;
+}
+
+static ADDRESS_MAP_START( jackpool_readmem, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
+ AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM)
+
+ AM_RANGE(0x120000, 0x1200ff) AM_READ(MRA16_RAM) // maybe nvram?
+
+ AM_RANGE(0x340000, 0x34ffff) AM_READ(MRA16_RAM)
+ AM_RANGE(0x360000, 0x3603ff) AM_READ(MRA16_RAM)
+ AM_RANGE(0x380000, 0x38005f) AM_READ(MRA16_RAM)
+
+ AM_RANGE(0x800000, 0x80000f) AM_READ(jackpool_io_r)
+
+
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( jackpool_writemem, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
+ AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM)
+
+ AM_RANGE(0x120000, 0x1200ff) AM_WRITE(MWA16_RAM)
+
+ AM_RANGE(0x340000, 0x341fff) AM_WRITE(jackpool_layer0_videoram_w) AM_BASE(&jackpool_layer0_videoram)
+ AM_RANGE(0x342000, 0x343fff) AM_WRITE(jackpool_layer1_videoram_w) AM_BASE(&jackpool_layer1_videoram)
+ AM_RANGE(0x344000, 0x345fff) AM_WRITE(jackpool_layer2_videoram_w) AM_BASE(&jackpool_layer2_videoram) // is this the same screen?
+ /* are the ones below used? */
+ AM_RANGE(0x346000, 0x347fff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0x348000, 0x349fff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0x34a000, 0x34bfff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0x34c000, 0x34dfff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0x34e000, 0x34ffff) AM_WRITE(MWA16_RAM)
+
+ AM_RANGE(0x360000, 0x3603ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0x380000, 0x38005f) AM_WRITE(MWA16_RAM)
+ADDRESS_MAP_END
+
+#if 0
+static ADDRESS_MAP_START( roulette_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ADDRESS_MAP_END
+#endif
+
+
+
+static INPUT_PORTS_START( jackpool )
+INPUT_PORTS_END
+
+
+static const gfx_layout tiles8x8_layout =
+{
+ 8,8,
+ RGN_FRAC(1,4),
+ 4,
+ { RGN_FRAC(3,4),RGN_FRAC(2,4),RGN_FRAC(1,4),RGN_FRAC(0,4) },
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
+ 8*8
+};
+
+
+
+
+static VIDEO_START(jackpool)
+{
+ jackpool_layer0_tilemap = tilemap_create(get_jackpool_layer0_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN, 8, 8,64,32);
+ jackpool_layer1_tilemap = tilemap_create(get_jackpool_layer1_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN, 8, 8,64,32);
+ jackpool_layer2_tilemap = tilemap_create(get_jackpool_layer2_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN, 8, 8,64,32);
+
+ tilemap_set_transparent_pen(jackpool_layer0_tilemap,0);
+ tilemap_set_transparent_pen(jackpool_layer2_tilemap,0);
+}
+
+static VIDEO_UPDATE(jackpool)
+{
+ tilemap_draw(bitmap,cliprect,jackpool_layer1_tilemap,0,0);
+ tilemap_draw(bitmap,cliprect,jackpool_layer0_tilemap,0,0);
+
+// tilemap_draw(bitmap,cliprect,jackpool_layer2_tilemap,0,0); // is this actually a second display?
+
+ return 0;
+}
+
+
+static GFXDECODE_START( jackpool )
+ GFXDECODE_ENTRY( REGION_GFX1, 0, tiles8x8_layout, 0x000, 256 ) /* sprites */
+GFXDECODE_END
+
+/* verify */
+static INTERRUPT_GEN( jackpool_interrupt )
+{
+ cpunum_set_input_line(0, cpu_getiloops()+1, HOLD_LINE); /* IRQs 3, 2, and 1 */
+}
+
+
+static MACHINE_DRIVER_START( jackpool )
+ MDRV_CPU_ADD(M68000, 12000000) // ?
+ MDRV_CPU_PROGRAM_MAP(jackpool_readmem,jackpool_writemem)
+ MDRV_CPU_VBLANK_INT(jackpool_interrupt,3) // ?
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
+
+ MDRV_GFXDECODE(jackpool)
+
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(64*8, 64*8)
+ MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
+ MDRV_PALETTE_LENGTH(0x200)
+
+ MDRV_VIDEO_START(jackpool)
+ MDRV_VIDEO_UPDATE(jackpool)
+
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(OKIM6295, 1056000)
+ MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+MACHINE_DRIVER_END
+
+
+ROM_START( jackpool )
+ ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "jpc2", 0x00001, 0x20000,CRC(5aad51ff) SHA1(af504d15c356c241efb6410a5dad09494d693eca) )
+ ROM_LOAD16_BYTE( "jpc3", 0x00000, 0x20000,CRC(249c7073) SHA1(e654232d5f454932a108591deacadc9da9fd8055) )
+
+ ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Samples */
+ ROM_LOAD( "jpc1", 0x00000, 0x40000, CRC(0f1372a1) SHA1(cec8a9bfb03945af4e1e2d2b916b9ded52a8d0bd) )
+
+ ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* Sprites */
+ ROM_LOAD( "jpc4", 0x00000, 0x40000, CRC(b719f138) SHA1(82799cbccab4e39627e48855f6003917602b42c7) )
+ ROM_LOAD( "jpc5", 0x40000, 0x40000, CRC(09661ed9) SHA1(fb298252c95a9040441c12c9d0e9280843d56a0d) )
+ ROM_LOAD( "jpc6", 0x80000, 0x40000, CRC(c3117411) SHA1(8ed044beb1d6ab7ac48595f7d6bf879f1264454a) )
+ ROM_LOAD( "jpc7", 0xc0000, 0x40000, CRC(b1d40623) SHA1(fb76ae6b53474bd4bee19dbce9537da0f2b63ff4) )
+ROM_END
+
+ROM_START( suprpool )
+ ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "3-1.22a.u2", 0x00001, 0x20000,CRC(c762cd1c) SHA1(ee05a9e8147d613eb14333e6e7b743fc05982e7c) )
+ ROM_LOAD16_BYTE( "2-1.22a.u3", 0x00000, 0x20000,CRC(5d15037a) SHA1(74cab79a1b08910267262a4c6b501126a4df6cda) )
+
+ ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Samples */
+ ROM_LOAD( "1.u32", 0x00000, 0x40000, CRC(47804af7) SHA1(602dc0361869b52532e2adcb0de3cbdd042761b3) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* Sprites */
+ ROM_LOAD( "4.u38", 0x00000, 0x20000, CRC(0660a169) SHA1(1cb34b3da4b144028519a3c5b32ef7da44af0624) )
+ ROM_LOAD( "5.u37", 0x20000, 0x20000, CRC(6e99af07) SHA1(85e7a76724fd9ce8d07b5088cb6e0d933fd95692) )
+ ROM_LOAD( "6.u36", 0x40000, 0x20000, CRC(c4448813) SHA1(6e168eb8503b852179f2d743f1cba935592e0a60) )
+ ROM_LOAD( "7.u35", 0x60000, 0x20000, CRC(357d145f) SHA1(9fea0d0c5d6c27bf520c4f81eb0f48a65ff60142) )
+ROM_END
+
+GAME( 1997, jackpool, 0, jackpool, jackpool, 0, ROT0, "Electronic Projects", "Jackpot Pool (Italy, bootleg)",GAME_NOT_WORKING )
+GAME( 1997, suprpool, 0, jackpool, jackpool, 0, ROT0, "Nazionale Elettronica Giochi S.A.S.", "Super Pool (Italy)",GAME_NOT_WORKING )