Previous 15994 Revisions Next

r4239 Friday 6th February, 2009 at 21:27:29 UTC by Firewave
Removed obsolete files
[src/mame/drivers]csk.c gtipoker.c igs_ncs.c
[src/mame/video]csk.c goodejan.c sengokmj.c

src/mame/video/goodejan.c
r4238r4239
1#include "driver.h"
2
3static tilemap *bg_tilemap, *tx_tilemap;
4UINT16 *goodejan_bgvram,*goodejan_txvram;
5static UINT16 goodejan_layer_en;
6static UINT16 goodejan_gfx_bank;
7
8WRITE16_HANDLER( goodejan_bgvram_w )
9{
10   COMBINE_DATA(&goodejan_bgvram[offset]);
11   tilemap_mark_tile_dirty(bg_tilemap,offset);
12}
13
14WRITE16_HANDLER( goodejan_txvram_w )
15{
16   COMBINE_DATA(&goodejan_txvram[offset]);
17   tilemap_mark_tile_dirty(tx_tilemap,offset);
18}
19
20WRITE16_HANDLER( goodejan_layer_en_w )
21{
22   /*---- ---- ---x ---- enable sprites*/
23   /*---- ---- ---- xxxx enable layers*/
24   goodejan_layer_en = data;
25}
26
27/*Not from the Seibu CRTC,it's an external ROM banking.*/
28WRITE16_HANDLER( goodejan_gfxbank_w )
29{
30   goodejan_gfx_bank = (data & 0x100)>>8;
31   tilemap_mark_all_tiles_dirty(bg_tilemap);
32}
33
34static TILE_GET_INFO( goodejan_bg_tile_info )
35{
36   int tile = goodejan_bgvram[tile_index]&0x0fff;
37   int color = (goodejan_bgvram[tile_index]&0xf000)>>12;
38
39   tile|= goodejan_gfx_bank<<12;
40//  if ((goodejan_bgvram[tile_index]&0x8000)==0x0000) tile+=0x1000;
41
42   SET_TILE_INFO(1, tile, color, 0);
43}
44
45static TILE_GET_INFO( goodejan_tx_tile_info )
46{
47   int tile = goodejan_txvram[tile_index];
48   int color = (tile >> 12) & 0x0f;
49   SET_TILE_INFO(2, (tile & 0xfff) + 0x3000, color, 0);
50}
51
52static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,int pri)
53{
54   int offs,fx,fy,x,y,color,sprite;
55   int dx,dy,ax,ay;
56
57   for (offs = 0x400-4;offs >= 0;offs -= 4)
58   {
59      if ((spriteram16[offs+0]&0x8000)!=0x8000) continue;
60      sprite = spriteram16[offs+1];
61      if ((sprite>>14)!=pri) continue;
62      sprite &= 0x1fff;
63
64      y = spriteram16[offs+3];//&0x1ff;
65      x = spriteram16[offs+2];//&0x1ff;
66
67      if (x&0x8000) x=0-(0x200-(x&0x1ff));
68      //else x&=0x1ff;
69      if (y&0x8000) y=0-(0x200-(y&0x1ff));
70      //else y&=0x1ff;
71
72      color = spriteram16[offs+0]&0x3f;
73      fx = spriteram16[offs+0]&0x4000;
74      fy = 0; /* To do - probably 0x2000 */
75      dy = ((spriteram16[offs+0]&0x0380)>>7) + 1;
76      dx = ((spriteram16[offs+0]&0x1c00)>>10) + 1;
77
78      for (ax=0; ax<dx; ax++)
79         for (ay=0; ay<dy; ay++) {
80            if (!fx)
81               drawgfx(bitmap,machine->gfx[0],
82                  sprite++,
83                  color,fx,fy,x+ax*16,y+ay*16,
84                  cliprect,TRANSPARENCY_PEN,15);
85            else
86               drawgfx(bitmap,machine->gfx[0],
87                  sprite++,
88                  color,fx,fy,x+(dx-1-ax)*16,y+ay*16,
89                  cliprect,TRANSPARENCY_PEN,15);
90         }
91   }
92}
93
94
95WRITE16_HANDLER( goodejan_bg_scrollx_w )
96{
97   tilemap_set_scrollx(bg_tilemap,0, data);
98}
99
100WRITE16_HANDLER( goodejan_bg_scrolly_w )
101{
102   tilemap_set_scrolly(bg_tilemap,0, data);
103}
104
105VIDEO_START( goodejan )
106{
107   bg_tilemap = tilemap_create(machine, goodejan_bg_tile_info,tilemap_scan_rows, 16,16,32,32);
108   tx_tilemap = tilemap_create(machine, goodejan_tx_tile_info,tilemap_scan_rows, 8, 8,32,32);
109   tilemap_set_transparent_pen(tx_tilemap,15);
110}
111
112VIDEO_UPDATE( goodejan )
113{
114   bitmap_fill(bitmap, cliprect, screen->machine->pens[0]); //black pen,likely to be selectable by a crt register
115
116   if(!(goodejan_layer_en & 1))    { tilemap_draw(bitmap,cliprect,bg_tilemap,0,0); }
117   if(!(goodejan_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 2); }
118   if(!(goodejan_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 1); }
119   if(!(goodejan_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 0); }
120   if(!(goodejan_layer_en & 8))    { tilemap_draw(bitmap,cliprect,tx_tilemap,0,0); }
121   if(!(goodejan_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 3); }
122
123   return 0;
124}
src/mame/video/csk.c
r4238r4239
1/***************************************************************************
2
3  video.c
4
5  Functions to emulate the video hardware of the machine.
6
7***************************************************************************/
8
9#include "driver.h"
10#include "deprecat.h"
11
12#define CPK_VIDEO_SIZE   0x800
13
14UINT8 * cpk_colorram;
15UINT8 * cpk_videoram;
16UINT8 * cpk_expram;
17static UINT8 * cpk_palette;
18static UINT8 * cpk_palette2;
19
20static int hopperOK = 0;
21static int intstate1 = 0;   /* unknown */
22static int intstate2 = 0;   /* unknown */
23static int oldstate = 0;
24static int machinestate = 0;
25static int abilityflag = 0;
26static int sleepcountdown = 0;
27
28
29
30/* Palette handling */
31
32WRITE8_HANDLER( cpk_palette_w )
33{
34   cpk_palette[offset] = data;
35}
36
37WRITE8_HANDLER( cpk_palette2_w )
38{
39   int newword;
40
41   cpk_palette2[offset] = data;
42
43   newword = cpk_palette[offset] + 256 * cpk_palette2[offset];
44   palette_set_color_rgb(space->machine,offset,pal5bit(newword >> 0),pal5bit(newword >> 5),pal5bit(newword >> 10));
45}
46
47/* Video handling */
48
49READ8_HANDLER( cpk_expansion_r )
50{
51   UINT8 * RAM = memory_region(space->machine, "gfx3");
52   return RAM[offset];
53}
54
55
56/* Machine init/deinit  */
57
58VIDEO_START( cska )
59{
60   int i;
61
62   cpk_palette  = auto_malloc(0x800 * sizeof(UINT8));
63   cpk_palette2 = auto_malloc(0x800 * sizeof(UINT8));
64
65   /* leave everything at the default, but map all foreground 0 pens as transparent */
66   for (i = 0;i < 16;i++)
67        {
68//               palette_used_colors[64 * i] = PALETTE_COLOR_TRANSPARENT;
69        }
70}
71
72
73
74static void init_csk227_internals(void)
75{
76   hopperOK = 0xf9d0;
77   machinestate = 0xf6b0;
78   intstate1 = 0xf08c;
79   intstate2 = 0xf08d;
80   sleepcountdown = 0xf994;
81}
82
83static void init_csk234_internals(void)
84{
85   hopperOK = 0xf9ca;
86   machinestate = 0xf6ad;
87   intstate1 = 0xf088;
88   intstate2 = 0xf089;
89   sleepcountdown = 0xf98e;
90}
91
92MACHINE_RESET (cpk)
93{
94   static int initonce = 0;
95
96   memset(cpk_videoram, 0, CPK_VIDEO_SIZE);
97   memset(cpk_colorram, 0, CPK_VIDEO_SIZE);
98   memset(cpk_expram, 0, CPK_VIDEO_SIZE);
99   memset(cpk_palette, 0, 0x800);
100   memset(cpk_palette2, 0, 0x800);
101
102   if (!initonce)
103   {
104      initonce = 1;
105
106      if (strcmp(machine->gamedrv->name,"csk227it") == 0)
107         init_csk227_internals();
108      else if (strcmp(machine->gamedrv->name,"csk234it") == 0)
109         init_csk234_internals();
110   }
111}
112
113INTERRUPT_GEN( cpoker_interrupt )
114{
115   if (cpu_getiloops(device) % 2)
116      cpu_set_input_line(device, 0, HOLD_LINE);
117   else
118      cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
119}
120
121INTERRUPT_GEN( cska_interrupt )
122{
123   UINT8 * RAM = memory_region(device->machine, "main");
124
125   RAM[ hopperOK ] = 1;   /* simulate hopper working! */
126
127   if (oldstate == 5)
128   {
129      if (RAM[sleepcountdown] == 0 && RAM[sleepcountdown+1] == 0)
130         oldstate = RAM[ machinestate ];
131   }
132   else oldstate = RAM[ machinestate ];
133
134   abilityflag = (oldstate == 5 || (RAM[ intstate1 ] == 1 && RAM[ intstate2 ] == 5)) ? 1 : 0;
135
136   if (cpu_getiloops(device) % 2)
137      cpu_set_input_line(device, 0, HOLD_LINE);
138   else
139      cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
140
141}
142
143
144
145/* Screen refresh section */
146
147VIDEO_UPDATE( cska )
148{
149   int offs;
150
151//     palette_init_used_colors();
152
153   for (offs = CPK_VIDEO_SIZE-1; offs >= 0; offs--)
154   {
155//             int color = ((cpk_colorram[offs] & 0xe0) >> 4) + 1;
156//             memset(&palette_used_colors[64 * color + 1],PALETTE_COLOR_USED,63);
157   }
158
159#if 0
160   if (keyboard_pressed(KEYCODE_9))
161   {
162      FILE * f = fopen("dump.bin", "wb");
163      if (f)
164      {
165         fwrite(&cpk_videoram[0], 1, CPK_VIDEO_SIZE, f);
166         fwrite(&cpk_colorram[0], 1, CPK_VIDEO_SIZE, f);
167         fclose(f);
168      }
169   }
170#endif
171
172   if (abilityflag)
173   {
174      for (offs = (CPK_VIDEO_SIZE)-1; offs >= 0; offs--)
175      {
176         int sx,sy;
177
178
179         sx = offs % 64;
180         sy = offs / 64;
181
182         drawgfx(bitmap,screen->machine->gfx[1+(offs % 4)],
183               cpk_expram[offs],
184               0,
185               0,0,
186               8*sx,32*sy,
187               cliprect,TRANSPARENCY_NONE,0);
188      }
189   }
190
191   for (offs = CPK_VIDEO_SIZE-1; offs >= 0; offs--)
192   {
193      int tile = cpk_videoram[offs] + ((cpk_colorram[offs] & 0x1f) << 8);
194      int color = (tile != 0x1fff) ? (((cpk_colorram[offs] & 0xe0) >> 4) + 1) : 0;
195
196      int sx,sy;
197
198
199      sx = offs % 64;
200      sy = offs / 64;
201
202      drawgfx(bitmap,screen->machine->gfx[0],
203            tile,
204            color,
205            0,0,
206            8*sx,8*sy,
207            cliprect,
208            (abilityflag) ? TRANSPARENCY_PEN : TRANSPARENCY_NONE, 0);
209   }
210
211   return 0;
212}
src/mame/video/sengokmj.c
r4238r4239
1/******************************************************************************************
2
3Sengoku Mahjong Video Hardware section
4
5*******************************************************************************************/
6
7#include "driver.h"
8
9static tilemap *bg_tilemap,*md_tilemap,*fg_tilemap,*tx_tilemap;
10UINT16 *sengokmj_bgvram,*sengokmj_mdvram,*sengokmj_fgvram,*sengokmj_txvram;
11static UINT16 sengokmj_layer_en;
12static UINT16 sengokmj_scrolly;
13
14WRITE16_HANDLER( sengokmj_bgvram_w )
15{
16   COMBINE_DATA(&sengokmj_bgvram[offset]);
17   tilemap_mark_tile_dirty(bg_tilemap,offset);
18}
19
20WRITE16_HANDLER( sengokmj_mdvram_w )
21{
22   COMBINE_DATA(&sengokmj_mdvram[offset]);
23   tilemap_mark_tile_dirty(md_tilemap,offset);
24}
25
26WRITE16_HANDLER( sengokmj_fgvram_w )
27{
28   COMBINE_DATA(&sengokmj_fgvram[offset]);
29   tilemap_mark_tile_dirty(fg_tilemap,offset);
30}
31
32WRITE16_HANDLER( sengokmj_txvram_w )
33{
34   COMBINE_DATA(&sengokmj_txvram[offset]);
35   tilemap_mark_tile_dirty(tx_tilemap,offset);
36}
37
38WRITE16_HANDLER( sengokmj_layer_enable_w )
39{
40   /*---- ---- ---x ---- enable sprites?*/
41   /*---- ---- ---- xxxx enable layers*/
42   sengokmj_layer_en = data;
43}
44
45WRITE16_HANDLER( sengokmj_bg_scrolly_w )
46{
47   sengokmj_scrolly = data;
48}
49
50static TILE_GET_INFO( sengoku_bg_tile_info )
51{
52   int tile = sengokmj_bgvram[tile_index];
53   int color = (tile >> 12) & 0x0f;
54   SET_TILE_INFO(1, tile & 0xfff, color, 0);
55}
56
57static TILE_GET_INFO( sengoku_md_tile_info )
58{
59   int tile = sengokmj_mdvram[tile_index];
60   int color = (tile >> 12) & 0x0f;
61   SET_TILE_INFO(2, (tile & 0xfff), color, 0);
62}
63
64static TILE_GET_INFO( sengoku_fg_tile_info )
65{
66   int tile = sengokmj_fgvram[tile_index];
67   int color = (tile >> 12) & 0x0f;
68   SET_TILE_INFO(3, (tile & 0xfff), color, 0);
69}
70
71static TILE_GET_INFO( sengoku_tx_tile_info )
72{
73   int tile = sengokmj_txvram[tile_index];
74   int color = (tile >> 12) & 0x0f;
75   SET_TILE_INFO(4, (tile & 0xfff), color, 0);
76}
77
78static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,int pri)
79{
80   int offs,fx,fy,x,y,color,sprite;
81   int dx,dy,ax,ay;
82
83   for (offs = 0x400-4;offs >= 0;offs -= 4)
84   {
85      if ((spriteram16[offs+0]&0x8000)!=0x8000) continue;
86      sprite = spriteram16[offs+1];
87      if ((sprite>>14)!=pri) continue;
88      sprite &= 0x1fff;
89
90      y = spriteram16[offs+3];
91      x = 128 + spriteram16[offs+2];
92
93      if (x&0x8000) x=0-(0x200-(x&0x1ff));
94      //else x&=0x1ff;
95      if (y&0x8000) y=0-(0x200-(y&0x1ff));
96      //else y&=0x1ff;
97
98      color = spriteram16[offs+0]&0x3f;
99      fx = spriteram16[offs+0]&0x40;
100      fy = 0; /* To do - probably 0x2000 */
101      dy = ((spriteram16[offs+0]&0x0380)>>7) + 1;
102      dx = ((spriteram16[offs+0]&0x1c00)>>10) + 1;
103
104      for (ax=0; ax<dx; ax++)
105         for (ay=0; ay<dy; ay++) {
106            if (!fx)
107               drawgfx(bitmap,machine->gfx[0],
108                  sprite++,
109                  color,fx,fy,x+ax*16,y+ay*16,
110                  cliprect,TRANSPARENCY_PEN,15);
111            else
112               drawgfx(bitmap,machine->gfx[0],
113                  sprite++,
114                  color,fx,fy,x+(dx-1-ax)*16,y+ay*16,
115                  cliprect,TRANSPARENCY_PEN,15);
116         }
117   }
118}
119
120VIDEO_START( sengokmj )
121{
122   bg_tilemap = tilemap_create(machine, sengoku_bg_tile_info,tilemap_scan_rows,16,16,32,32);
123   md_tilemap = tilemap_create(machine, sengoku_md_tile_info,tilemap_scan_rows,16,16,32,32);
124   fg_tilemap = tilemap_create(machine, sengoku_fg_tile_info,tilemap_scan_rows,16,16,32,32);
125   tx_tilemap = tilemap_create(machine, sengoku_tx_tile_info,tilemap_scan_rows, 8, 8,64,32);
126
127   tilemap_set_transparent_pen(md_tilemap,15);
128   tilemap_set_transparent_pen(fg_tilemap,15);
129   tilemap_set_transparent_pen(tx_tilemap,15);
130}
131
132VIDEO_UPDATE( sengokmj )
133{
134   bitmap_fill(bitmap, cliprect, screen->machine->pens[0x7ff]); //black pen
135   tilemap_set_scrolly( bg_tilemap,0, sengokmj_scrolly );
136
137   if(!(sengokmj_layer_en & 1))    { tilemap_draw(bitmap,cliprect,bg_tilemap,0,0); }
138   if(!(sengokmj_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 2); }
139   if(!(sengokmj_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 1); }
140   if(!(sengokmj_layer_en & 2))    { tilemap_draw(bitmap,cliprect,md_tilemap,0,0); }
141   if(!(sengokmj_layer_en & 4))    { tilemap_draw(bitmap,cliprect,fg_tilemap,0,0); }
142   if(!(sengokmj_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 0); }
143   if(!(sengokmj_layer_en & 0x10)) { draw_sprites(screen->machine, bitmap,cliprect, 3); }
144   if(!(sengokmj_layer_en & 8))   { tilemap_draw(bitmap,cliprect,tx_tilemap,0,0); }
145
146//  popmessage("%04x",sengokmj_layer_en);
147   return 0;
148}
src/mame/drivers/gtipoker.c
r4238r4239
1/* Has (c)1983 GTI in the roms, and was called 'Poker.zip'  GFX roms contain 16x16 tiles of cards */
2/* Nothing else is known about this set / game */
3
4#include "driver.h"
5#include "cpu/z80/z80.h"
6
7static VIDEO_START(gtipoker)
8{
9
10}
11
12static VIDEO_UPDATE(gtipoker)
13{
14   return 0;
15}
16
17static READ8_HANDLER( gtipoker_unk_r )
18{
19   return mame_rand(space->machine);
20}
21
22static ADDRESS_MAP_START( gtipoker_memmap, ADDRESS_SPACE_PROGRAM, 8 )
23   AM_RANGE(0x0000, 0x1fff) AM_ROM
24   AM_RANGE(0xd000, 0xdfff) AM_RAM
25ADDRESS_MAP_END
26
27static ADDRESS_MAP_START( gtipoker_iomap, ADDRESS_SPACE_IO, 8 )
28   ADDRESS_MAP_GLOBAL_MASK(0xff)
29   AM_RANGE(0xbc, 0xbc) AM_READ(gtipoker_unk_r)
30   AM_RANGE(0xbe, 0xbe) AM_READ(gtipoker_unk_r)
31   AM_RANGE(0xde, 0xde) AM_READ(gtipoker_unk_r)
32   AM_RANGE(0xef, 0xef) AM_READ(gtipoker_unk_r)
33   AM_RANGE(0xfd, 0xfd) AM_READ(gtipoker_unk_r)
34ADDRESS_MAP_END
35
36
37static INPUT_PORTS_START( gtipoker )
38INPUT_PORTS_END
39
40static const gfx_layout tiles8x8_layout =
41{
42   16,16,
43   RGN_FRAC(1,1),
44   1,
45   { 0 },
46   { 0, 1, 2, 3, 4, 5, 6, 7,8,9,10,11,12,13,14,15 },
47   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,8*16,9*16,10*16,11*16,12*16,13*16,14*16,15*16 },
48   16*16
49};
50
51static GFXDECODE_START( gtipoker )
52   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 )
53GFXDECODE_END
54
55
56static MACHINE_DRIVER_START( gtipoker )
57   /* basic machine hardware */
58   MDRV_CPU_ADD("main", Z80,4000000)       /* ? MHz */
59   MDRV_CPU_PROGRAM_MAP(gtipoker_memmap,0)
60   MDRV_CPU_IO_MAP(gtipoker_iomap,0)
61   MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
62
63   /* video hardware */
64   MDRV_SCREEN_ADD("main", RASTER)
65   MDRV_SCREEN_REFRESH_RATE(60)
66   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
67   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
68   MDRV_SCREEN_SIZE(256, 256)
69   MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
70
71   MDRV_GFXDECODE(gtipoker)
72   MDRV_PALETTE_LENGTH(0x100)
73
74   MDRV_VIDEO_START(gtipoker)
75   MDRV_VIDEO_UPDATE(gtipoker)
76MACHINE_DRIVER_END
77
78
79ROM_START( gtipoker )
80   ROM_REGION( 0x10000, "main", 0 )
81   ROM_LOAD( "u12.rom", 0x0000, 0x1000, CRC(abaa257a) SHA1(f830213ae0aaad5a9a44ec77c5a186e9e02fa041) )
82   ROM_LOAD( "u18.rom", 0x1000, 0x1000, CRC(1b7e2877) SHA1(717fb70889804baa468203f20b1e7f73b55cc21e) )
83
84   ROM_REGION( 0x1000, "gfx1", 0 )
85   ROM_LOAD( "u31.rom", 0x0000, 0x1000, CRC(2028db2c) SHA1(0f81bb71e88c60df3817f58c28715ce2ea01ad4d) )
86ROM_END
87
88GAME( 1983, gtipoker,  0,    gtipoker, gtipoker,  0, ROT0, "GTI Inc", "GTI Poker", GAME_NOT_WORKING|GAME_NO_SOUND )
src/mame/drivers/igs_ncs.c
r4238r4239
1/* New Champion Skill by IGS
2 -- the dump MAY be incomplete, there were 3 empty positions on the PCB near
3    the gfx roms
4
5Chips of Note
6
7IGS 003C (near chip with TEST OK E0069281 label)
8IGS 002
9IGA 001A
10
11
12'file'
13KC8255A
149941
15(near CPU roms)
16
17UM3567 9946
18
195x 8 switch dips
20
21Clocks
223.579545Mhz (near sound)
2312Mhz
24
25
26--- what is the CPU, it looks like either Z80 or Z180 based
27 -- CPU rom is lightly encrypted (usual IGS style, some xors)
28
29*/
30
31#include "driver.h"
32#include "cpu/z180/z180.h"
33#include "sound/2413intf.h"
34#include "deprecat.h"
35
36static UINT8*ncs_video;
37static UINT8*ncs_video2;
38
39VIDEO_START(igs_ncs)
40{
41
42}
43
44VIDEO_UPDATE(igs_ncs)
45{
46   const gfx_element *gfx = screen->machine->gfx[0];
47   int count = 0;
48
49   int y,x;
50
51
52   for (y=0;y<32;y++)
53   {
54      for (x=0;x<64;x++)
55      {
56         int tile = ncs_video[count] | (ncs_video[count+0x800]<<8);
57         int colour = (tile >> 12) & 0x7;
58
59         drawgfx(bitmap,gfx,tile&0x1fff,colour+1,0,0,x*8,y*8,cliprect,TRANSPARENCY_NONE,0);
60
61         count++;
62      }
63   }
64
65
66   return 0;
67}
68
69static const gfx_layout layout_8x8x6 =
70{
71   8, 8,
72   RGN_FRAC(1, 3),
73   6,
74   { RGN_FRAC(0,3)+8,RGN_FRAC(0,3)+0,
75     RGN_FRAC(1,3)+8,RGN_FRAC(1,3)+0,
76     RGN_FRAC(2,3)+8,RGN_FRAC(2,3)+0 },
77   { STEP8(0,1) },
78   { STEP8(0,2*8) },
79   8*8*2
80};
81
82static GFXDECODE_START( igs_ncs )
83   GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x6,  0, 16 )
84GFXDECODE_END
85
86static INPUT_PORTS_START( igs_ncs )
87INPUT_PORTS_END
88
89static ADDRESS_MAP_START( igs_ncs_map, ADDRESS_SPACE_PROGRAM, 8 )
90   AM_RANGE( 0x00000, 0x0efff ) AM_ROM
91   AM_RANGE( 0x0f000, 0x0ffff ) AM_RAM
92ADDRESS_MAP_END
93
94static READ8_HANDLER( ncs_random_r )
95{
96   return 0xff;// mame_rand(space->machine);
97}
98
99static ADDRESS_MAP_START( igs_ncs_portmap, ADDRESS_SPACE_IO, 8 )
100   AM_RANGE( 0x2000, 0x23ff ) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE( &paletteram )
101   AM_RANGE( 0x2800, 0x2cff ) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split2_w ) AM_BASE( &paletteram_2 )
102
103
104   AM_RANGE( 0x4000, 0x4000 ) AM_READ(ncs_random_r)
105   AM_RANGE( 0x4001, 0x4001 ) AM_READ(ncs_random_r)
106   AM_RANGE( 0x4002, 0x4002 ) AM_READ(ncs_random_r)
107   AM_RANGE( 0x4003, 0x4003 ) AM_READ(ncs_random_r)
108   AM_RANGE( 0x4004, 0x4004 ) AM_READ(ncs_random_r)
109
110
111   AM_RANGE( 0x5081, 0x5081 ) AM_READ(ncs_random_r)
112   AM_RANGE( 0x5082, 0x5082 ) AM_READ(ncs_random_r)
113
114   AM_RANGE( 0x5082, 0x5091 ) AM_READ(ncs_random_r)
115
116   AM_RANGE( 0x50a0, 0x50a0 ) AM_READ(ncs_random_r)
117   AM_RANGE( 0x50c0, 0x50c0 ) AM_READ(ncs_random_r)
118
119   AM_RANGE( 0x6000, 0x6fff ) AM_RAM AM_BASE(&ncs_video2) // 'reels' layer -- we're missing the gfx
120
121   AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE(&ncs_video)
122
123
124   AM_RANGE( 0x8000, 0xffff ) AM_ROM AM_REGION("data", 0)
125
126ADDRESS_MAP_END
127
128static INTERRUPT_GEN( igs_ncs_interrupt )
129{
130   // wrong!!
131   if (cpu_getiloops(device)&1)
132      cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
133   else
134      cpu_set_input_line(device, INPUT_LINE_IRQ0, HOLD_LINE);
135}
136
137
138static MACHINE_DRIVER_START( igs_ncs )
139   /* basic machine hardware */
140   MDRV_CPU_ADD("main", Z180, XTAL_12MHz / 2)   /* CPU is..?? 6 MHz? */
141   MDRV_CPU_PROGRAM_MAP(igs_ncs_map,0)
142   MDRV_CPU_IO_MAP(igs_ncs_portmap,0)
143   MDRV_CPU_VBLANK_INT_HACK(igs_ncs_interrupt,2)
144//  MDRV_CPU_VBLANK_INT("main",igs_ncs_interrupt)
145
146   /* video hardware */
147   MDRV_SCREEN_ADD("main", RASTER)
148   MDRV_SCREEN_REFRESH_RATE(60)
149   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
150   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
151   MDRV_SCREEN_SIZE(512, 256)
152   MDRV_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
153
154   MDRV_GFXDECODE(igs_ncs)
155   MDRV_PALETTE_LENGTH(0x400)
156
157   MDRV_VIDEO_START(igs_ncs)
158   MDRV_VIDEO_UPDATE(igs_ncs)
159
160   /* sound hardware */
161   MDRV_SPEAKER_STANDARD_MONO("mono")
162   MDRV_SOUND_ADD("ym", YM2413, XTAL_3_579545MHz)
163   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
164
165MACHINE_DRIVER_END
166
167
168
169ROM_START( igs_ncs )
170   ROM_REGION( 0x10000, "main", 0 )
171   ROM_LOAD( "ncs_v100n.u20", 0x00000, 0x10000, CRC(2bb91de5) SHA1(b0b7b3b9cee1ce4da10cf78ef1c8079f3d9cafbf) )
172
173   ROM_REGION( 0x10000, "data", 0 )
174   ROM_LOAD( "ncs_v100n.u21", 0x00000, 0x10000, CRC(678e412c) SHA1(dba031d3576d098d314d6589dd1aeda44d17c650) )
175
176   ROM_REGION( 0xc0000, "gfx1", ROMREGION_DISPOSE )
177   ROM_LOAD( "ncs_v100n.u50", 0x00000, 0x40000, CRC(ff2bb3dc) SHA1(364c948504003b4230fbdac74227842c802d4c12) )
178   ROM_LOAD( "ncs_v100n.u51", 0x40000, 0x40000, CRC(f8530313) SHA1(b21d6de7d5d4b902008ceea7e1227545e0d1701b) )
179   ROM_LOAD( "ncs_v100n.u52", 0x80000, 0x40000, CRC(2fa5b6df) SHA1(5bfc651297440f73692079f1806b1e40b457b7b8) )
180
181   ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASEFF | ROMREGION_DISPOSE )
182   // looks like these are needed for pre-game screens, sockets were empty
183   ROM_LOAD( "ncs_v100n.u55", 0x00000, 0x10000, NO_DUMP )
184   ROM_LOAD( "ncs_v100n.u56", 0x10000, 0x10000, NO_DUMP )
185   ROM_LOAD( "ncs_v100n.u57", 0x20000, 0x10000, NO_DUMP )
186ROM_END
187
188
189DRIVER_INIT( igs_ncs )
190{
191   UINT8 *src = (UINT8 *) (memory_region(machine, "main"));
192   int i;
193
194   for(i = 0; i < 0x10000; i++)
195   {
196      /* bit 0 xor layer */
197      if(i & 0x200)
198      {
199         if(i & 0x80)
200         {
201            if(~i & 0x02)
202            {
203               src[i] ^= 0x01;
204            }
205         }
206         else
207         {
208            src[i] ^= 0x01;
209         }
210      }
211      else
212      {
213         src[i] ^= 0x01;
214      }
215
216      /* bit 1 xor layer */
217      if(i & 0x800)
218      {
219         if(i & 0x100)
220         {
221            if(i & 0x40)
222            {
223               src[i] ^= 0x02;
224            }
225         }
226      }
227
228      /* bit 5 xor layer */
229      if(i & 0x100)
230      {
231         if(i & 0x40)
232         {
233            src[i] ^= 0x20;
234         }
235      }
236      else
237      {
238         src[i] ^= 0x20;
239      }
240   }
241
242}
243
244GAME( 2000, igs_ncs, 0, igs_ncs, igs_ncs, igs_ncs, ROT0, "IGS", "New Champion Skill (v100n)", GAME_NOT_WORKING )
245
src/mame/drivers/csk.c
r4238r4239
1/*****************************************************************************
2
3Champion Poker by IGS   (documented by Mirko Buffoni)
4---
5
6Memory Layout (refers to CSK227IT.  Others may have different addresses)
7
8ROM:        0000-efff
9RAM:        f000-ffff
10
11f950-f951:  DSW1-2
12f952-f953:  DSW3-4
13f954-f955:  DSW5-6   (6 not used, but optionally addable to board)
14
15f9c7-f9c8:  Ports 50a0 and 5081 values are written here
16f9c9-f9ca:  Ports 5082 and 5091 values are written here
17
18             0  1  2  3  4  5  6  7
19f9a7-f9ae:  xx xx xx xx xx xx xx xx     Port 50a0 bit stream
20f9af-f9b6:  xx xx xx xx xx xx xx xx     Port 5081 bit stream
21f9b7-f9be:  xx xx xx xx xx xx xx xx     Port 5082 bit stream
22f9bf-f9c6:  xx xx xx xx xx xx xx xx     Port 5091 bit stream
23            |
24            xYYYYYYY ====>  Bit 7 set = Nth bit for port is set
25                            Bit 6-0   = counts for how may frames Nth bit
26                                        has been in that state, recently.
27
28f065:       Double up type
29                0 = None
30                1 = High/Low
31                2 = Red/Black
32
33f68f:       Errorcode
34                0 = Coin Error
35                1 = Hopper Error
36                2 = Limite Max
37                3 = System Error
38                4 = Punti Error
39                5 = Hopper Vuoto
40                6 = Limite Record
41
42f69a:        Winning combination for current card set
43                 0 = Nothing
44                 1 = Coppia
45                 2 = DoppiaCoppia
46                 3 = Tris
47                 4 = Scala
48                 5 = Flush
49                 6 = FullHouse
50                 7 = Poker
51                 8 = ScalaMinima
52                 9 = Bingo
53                10 = ScalaMassima
54                11 = FiveJokers
55
56f69b:       Vblank flag.  Reset during NMI.
57
58f6a4:       MaxBet
59f6a5:       MinBet to start
60f070:       MinBet to play Fever
61
62f9a3:       CoinErrorFlag
63            0 = no problem
64            1 = coin error
65            2 = hopper error
66
67f98a:       Hopper timeout counter.  Decremented during NMI.
68
69f022:       ???
70f023:       ???
71f024:       ???
72f025:       ???
73f026:       ???
74
75---
76
77I/O Ports
78
79Palette:    2000-27ff   (low byte)
80            2800-2fff   (high byte)
81VideoRAM:   7000-77ff
82ColorRAM:   7800-7fff
83DSW1-5:     4000-4004   (see input ports section below)
84InputPorts: 50a0   (unused in this game)
85            5081-5082   (Coins and Keyboard)
86            5091   (Keyboard)
87Expansion:  8000-ffff   (R)     Used to read from an expansion rom
88
89Unknown:    5080        (RW)    (possibly related to ticket/hopper)
90            5090-5091   (RW)    (possibly related to eprom counters)
91            50b0-50b1   (W)     (OPL2 compatible chip)
92            5083        (W)     (used only at reset, maybe)
93            1000-10ff   (W) ???
94            6000-67ff   (W) ???
95            6800-6fff   (W)     Expansion video layer (used with ability)
96
97---
98
99Timing:
100
101Game is synchronized with VBLANK. It uses IRQ & NMI interrupts.
102During a frame, there must be 4 IRQs and 4 NMIs in order to play
103to the correct speed.
104
105---
106
107Notes about palette:
108Charset is 6 bit depth (thus 64 colors of granularity)
109Colortable is made up of 2 entries of 64 bytes for each palette,
110splitted, and colorinfo is stored to form the following word:
111
112xBBBBBGGGGGRRRRR    (Bit 15 is never used)
113
114The game uses 8 palettes, located at the following addresses:
115
116Palette1:   54CD (low), 5509 (high), len = 60   (colorentry: 1-63)
117Palette2:   5545 (low), 5581 (high), len = 60   (colorentry: 1-63)
118Palette3:   55BD (low), 55F9 (high), len = 60   (colorentry: 1-63)
119Palette4:   5635 (low), 5671 (high), len = 60   (colorentry: 1-63)
120Palette5:   56AD (low), 56DD (high), len = 48   (colorentry: 1-47)
121Palette6:   570D (low), 5749 (high), len = 60   (colorentry: 1-63)
122Palette7:   5785 (low), 57C1 (high), len = 60   (colorentry: 1-63)
123Palette8:   57FD (low), 582D (high), len = 48   (colorentry: 1-47)
124
125Palette3*:  585D (low), 5899 (high), len = 60   (used alternatively with pal3)
126
127*****************************************************************************/
128
129
130#include "driver.h"
131#include "deprecat.h"
132#include "cpu/z80/z80.h"
133#include "sound/2413intf.h"
134
135
136extern UINT8 * cpk_colorram;
137extern UINT8 * cpk_videoram;
138extern UINT8 * cpk_expram;
139
140
141MACHINE_RESET (cpk);
142INTERRUPT_GEN( cpoker_interrupt );
143INTERRUPT_GEN( cska_interrupt );
144VIDEO_UPDATE( cska );
145VIDEO_START( cska );
146
147WRITE8_HANDLER( cpk_palette_w );
148WRITE8_HANDLER( cpk_palette2_w );
149READ8_HANDLER( cpk_expansion_r );
150
151
152
153static size_t protection_res = 0;
154
155static READ8_HANDLER( custom_io_r )
156{
157   return protection_res;
158}
159
160static WRITE8_HANDLER( custom_io_w )
161{
162   switch (data)
163   {
164      case 0x00: protection_res = input_port_read(space->machine, "5091"); break;
165      case 0x20: protection_res = 0x49; break;
166      case 0x21: protection_res = 0x47; break;
167      case 0x22: protection_res = 0x53; break;
168      case 0x24: protection_res = 0x41; break;
169      case 0x25: protection_res = 0x41; break;
170      case 0x26: protection_res = 0x7f; break;
171      case 0x27: protection_res = 0x41; break;
172      case 0x28: protection_res = 0x41; break;
173      case 0x2a: protection_res = 0x3e; break;
174      case 0x2b: protection_res = 0x41; break;
175      case 0x2c: protection_res = 0x49; break;
176      case 0x2d: protection_res = 0xf9; break;
177      case 0x2e: protection_res = 0x0a; break;
178      case 0x30: protection_res = 0x26; break;
179      case 0x31: protection_res = 0x49; break;
180      case 0x32: protection_res = 0x49; break;
181      case 0x33: protection_res = 0x49; break;
182      case 0x34: protection_res = 0x32; break;
183      default:
184         protection_res = data;
185   }
186}
187
188
189static ADDRESS_MAP_START( map, ADDRESS_SPACE_PROGRAM, 8 )
190   AM_RANGE(0x0000, 0xefff) AM_ROM
191   AM_RANGE(0xf000, 0xffff) AM_RAM AM_REGION("main", 0xf000)
192ADDRESS_MAP_END
193
194static ADDRESS_MAP_START( cpoker_map, ADDRESS_SPACE_IO, 8 )
195   AM_RANGE(0x2000, 0x27ff) AM_WRITE(cpk_palette_w)
196   AM_RANGE(0x2800, 0x2fff) AM_WRITE(cpk_palette2_w)
197   AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1")         /* DSW1 */
198   AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2")         /* DSW2 */
199   AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3")         /* DSW3 */
200   AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW4")         /* DSW4 */
201   AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW5")         /* DSW5 */
202   AM_RANGE(0x5081, 0x5081) AM_READ_PORT("5081")         /* Services */
203   AM_RANGE(0x5082, 0x5082) AM_READ_PORT("5082")         /* Coing & Kbd */
204   AM_RANGE(0x5090, 0x5090) AM_WRITE(custom_io_w)
205   AM_RANGE(0x5091, 0x5091) AM_READ(custom_io_r)         /* Keyboard */
206   AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("50A0")         /* Not connected */
207   AM_RANGE(0x50b0, 0x50b0) AM_WRITE(ym2413_register_port_0_w)
208   AM_RANGE(0x50b1, 0x50b1) AM_WRITE(ym2413_data_port_0_w)
209   AM_RANGE(0x6800, 0x6fff) AM_WRITE(SMH_RAM) AM_BASE(&cpk_expram)
210   AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&cpk_videoram)
211   AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE(&cpk_colorram)
212   AM_RANGE(0x8000, 0xffff) AM_READ(cpk_expansion_r)
213ADDRESS_MAP_END
214
215static ADDRESS_MAP_START( csk227_map, ADDRESS_SPACE_IO, 8 )
216   AM_RANGE(0x2000, 0x27ff) AM_WRITE(cpk_palette_w)
217   AM_RANGE(0x2800, 0x2fff) AM_WRITE(cpk_palette2_w)
218   AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1")         /* DSW1 */
219   AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2")         /* DSW2 */
220   AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3")         /* DSW3 */
221   AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW4")         /* DSW4 */
222   AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW5")         /* DSW5 */
223   AM_RANGE(0x5081, 0x5081) AM_READ_PORT("5081")         /* Services */
224   AM_RANGE(0x5082, 0x5082) AM_READ_PORT("5082")         /* Coing & Kbd */
225   AM_RANGE(0x5091, 0x5091) AM_READ_PORT("5091")         /* Keyboard */
226   AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("50A0")         /* Not connected */
227   AM_RANGE(0x50b0, 0x50b0) AM_WRITE(ym2413_register_port_0_w)
228   AM_RANGE(0x50b1, 0x50b1) AM_WRITE(ym2413_data_port_0_w)
229   AM_RANGE(0x6800, 0x6fff) AM_WRITE(SMH_RAM) AM_BASE(&cpk_expram)
230   AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&cpk_videoram)
231   AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE(&cpk_colorram)
232   AM_RANGE(0x8000, 0xffff) AM_READ(cpk_expansion_r)
233ADDRESS_MAP_END
234
235static ADDRESS_MAP_START( csk234_map, ADDRESS_SPACE_IO, 8 )
236   AM_RANGE(0x2000, 0x27ff) AM_WRITE(cpk_palette_w)
237   AM_RANGE(0x2800, 0x2fff) AM_WRITE(cpk_palette2_w)
238   AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1")         /* DSW1 */
239   AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2")         /* DSW2 */
240   AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3")         /* DSW3 */
241   AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW4")         /* DSW4 */
242   AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW5")         /* DSW5 */
243   AM_RANGE(0x5081, 0x5081) AM_READ_PORT("5081")         /* Services */
244   AM_RANGE(0x5082, 0x5082) AM_READ_PORT("5082")         /* Coing & Kbd */
245   AM_RANGE(0x5090, 0x5090) AM_WRITE(custom_io_w)
246   AM_RANGE(0x5091, 0x5091) AM_READ(custom_io_r)         /* used for protection and other */
247   AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("50A0")         /* Not connected */
248   AM_RANGE(0x50b0, 0x50b0) AM_WRITE(ym2413_register_port_0_w)
249   AM_RANGE(0x50b1, 0x50b1) AM_WRITE(ym2413_data_port_0_w)
250   AM_RANGE(0x6800, 0x6fff) AM_WRITE(SMH_RAM) AM_BASE(&cpk_expram)
251   AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&cpk_videoram)
252   AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE(&cpk_colorram)
253   AM_RANGE(0x8000, 0xffff) AM_READ(cpk_expansion_r)
254ADDRESS_MAP_END
255
256
257/* MB: 05 Jun 99  Input ports and Dip switches are all verified! */
258
259static INPUT_PORTS_START( csk227 )
260
261   PORT_START("DSW1")
262   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8")
263   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
264   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
265   PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:6,7")
266   PORT_DIPSETTING(    0x06, "1" )
267   PORT_DIPSETTING(    0x04, "3" )
268   PORT_DIPSETTING(    0x02, "5" )
269   PORT_DIPSETTING(    0x00, "10" )
270   PORT_DIPNAME( 0x18, 0x18, "Max Bet" ) PORT_DIPLOCATION("SWA:4,5")
271   PORT_DIPSETTING(    0x18, "10" )
272   PORT_DIPSETTING(    0x10, "20" )
273   PORT_DIPSETTING(    0x08, "50" )
274   PORT_DIPSETTING(    0x00, "100" )
275   PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:2,3")
276   PORT_DIPSETTING(    0x60, "1" )
277   PORT_DIPSETTING(    0x40, "5" )
278   PORT_DIPSETTING(    0x20, "10" )
279   PORT_DIPSETTING(    0x00, "20" )
280   PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1")
281   PORT_DIPSETTING(    0x80, "100000" )
282   PORT_DIPSETTING(    0x00, "Unlimited" )
283
284   PORT_START("DSW2")
285   PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6")
286   PORT_DIPSETTING(    0x07, "1" )
287   PORT_DIPSETTING(    0x06, "2" )
288   PORT_DIPSETTING(    0x05, "5" )
289   PORT_DIPSETTING(    0x04, "10" )
290   PORT_DIPSETTING(    0x03, "20" )
291   PORT_DIPSETTING(    0x02, "40" )
292   PORT_DIPSETTING(    0x01, "50" )
293   PORT_DIPSETTING(    0x00, "100" )
294   PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4")
295   PORT_DIPSETTING(    0x18, "10" )
296   PORT_DIPSETTING(    0x10, "20" )
297   PORT_DIPSETTING(    0x08, "50" )
298   PORT_DIPSETTING(    0x00, "100" )
299   PORT_DIPNAME( 0x60, 0x60, "W-UP Bonus Target" ) PORT_DIPLOCATION("SWB:3,2")
300   PORT_DIPSETTING(    0x60, "1500" )
301   PORT_DIPSETTING(    0x40, "3000" )
302   PORT_DIPSETTING(    0x20, "5000" )
303   PORT_DIPSETTING(    0x00, "7500" )
304   PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1")
305   PORT_DIPSETTING(    0x80, "Manual" )
306   PORT_DIPSETTING(    0x00, "Auto" )
307
308   PORT_START("DSW3")
309   PORT_DIPNAME( 0x03, 0x03, "W-UP Bonus Rate" ) PORT_DIPLOCATION("SWC:8,7")
310   PORT_DIPSETTING(    0x03, "200" )
311   PORT_DIPSETTING(    0x02, "300" )
312   PORT_DIPSETTING(    0x01, "500" )
313   PORT_DIPSETTING(    0x00, "800" )
314   PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5")
315   PORT_DIPSETTING(    0x0c, "94%" )
316   PORT_DIPSETTING(    0x08, "96%" )
317   PORT_DIPSETTING(    0x04, "98%" )
318   PORT_DIPSETTING(    0x00, "100%" )
319   PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3")
320   PORT_DIPSETTING(    0x30, DEF_STR( None ) )
321   PORT_DIPSETTING(    0x20, "High-Low" )
322   PORT_DIPSETTING(    0x10, "Red-Black" )      /* Bit 4 is equal for ON/OFF */
323   PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2")
324   PORT_DIPSETTING(    0x40, DEF_STR( No ) )
325   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
326   PORT_DIPNAME( 0x80, 0x00, "Ability" ) PORT_DIPLOCATION("SWC:1")
327   PORT_DIPSETTING(    0x80, DEF_STR( No ) )
328   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
329
330   PORT_START("DSW4")
331   PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5")
332   PORT_DIPSETTING(    0x0f, "69%" )
333   PORT_DIPSETTING(    0x0e, "72%" )
334   PORT_DIPSETTING(    0x0d, "75%" )
335   PORT_DIPSETTING(    0x0c, "78%" )
336   PORT_DIPSETTING(    0x0b, "81%" )
337   PORT_DIPSETTING(    0x0a, "83%" )
338   PORT_DIPSETTING(    0x09, "85%" )
339   PORT_DIPSETTING(    0x08, "87%" )
340   PORT_DIPSETTING(    0x07, "89%" )
341   PORT_DIPSETTING(    0x06, "91%" )
342   PORT_DIPSETTING(    0x05, "93%" )
343   PORT_DIPSETTING(    0x04, "95%" )
344   PORT_DIPSETTING(    0x03, "97%" )
345   PORT_DIPSETTING(    0x02, "99%" )
346   PORT_DIPSETTING(    0x01, "101%" )
347   PORT_DIPSETTING(    0x00, "103%" )
348   PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4")
349   PORT_DIPSETTING(    0x10, DEF_STR( No ) )
350   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
351   PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3")
352   PORT_DIPSETTING(    0x20, DEF_STR( No ) )
353   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
354   PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2")
355   PORT_DIPSETTING(    0x40, DEF_STR( No ) )
356   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
357   PORT_DIPNAME( 0x80, 0x80, "Payout Select" ) PORT_DIPLOCATION("SWD:1")
358   PORT_DIPSETTING(    0x80, "Ticket" )
359   PORT_DIPSETTING(    0x00, "Hopper" )
360
361   PORT_START("DSW5")
362   PORT_DIPNAME( 0x07, 0x07, "Key Out Rate" ) PORT_DIPLOCATION("SWE:8,7,6")
363   PORT_DIPSETTING(    0x07, "1:1" )
364   PORT_DIPSETTING(    0x06, "10:1" )
365   PORT_DIPSETTING(    0x05, "20:1" )
366   PORT_DIPSETTING(    0x04, "50:1" )
367   PORT_DIPSETTING(    0x03, "100:1" )      /* Bits 1-0 are all equivalents */
368   PORT_DIPNAME( 0x08, 0x00, "Card Select" ) PORT_DIPLOCATION("SWE:5")
369   PORT_DIPSETTING(    0x08, "Poker" )
370   PORT_DIPSETTING(    0x00, "Tetris" )
371   PORT_DIPNAME( 0x70, 0x70, "Ticket Rate" ) PORT_DIPLOCATION("SWE:4,3,2")
372   PORT_DIPSETTING(    0x70, "1:1" )
373   PORT_DIPSETTING(    0x60, "5:1" )
374   PORT_DIPSETTING(    0x50, "10:1" )
375   PORT_DIPSETTING(    0x40, "20:1" )
376   PORT_DIPSETTING(    0x30, "25:1" )
377   PORT_DIPSETTING(    0x20, "50:1" )
378   PORT_DIPSETTING(    0x10, "100:1" )
379   PORT_DIPSETTING(    0x00, "200:1" )
380   PORT_DIPNAME( 0x80, 0x80, "Win Table" ) PORT_DIPLOCATION("SWE:1")
381   PORT_DIPSETTING(    0x80, "Change" )
382   PORT_DIPSETTING(    0x00, "Fixed" )
383
384   PORT_START("5081")
385   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
386   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
387   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
388   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_E) PORT_NAME("HPSW")
389   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_NAME("Payout")
390   PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW )
391   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F1) PORT_NAME("Statistics")
392   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Hold5/Bet")
393
394   PORT_START("5082")
395   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1     )
396   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
397   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2     )
398   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE  ) PORT_CODE(KEYCODE_Q) PORT_NAME("Key In")
399   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_SERVICE  ) PORT_CODE(KEYCODE_W) PORT_NAME("Key Down")
400   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
401   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Hold4/Take")
402   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Hold3/W-Up")
403
404   PORT_START("5091")
405   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
406   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
407   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
408   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
409   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
410   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START1)
411   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Hold1/High/Low")
412   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Hold2/Red/Black")
413
414   PORT_START("50A0")
415   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
416
417INPUT_PORTS_END
418
419
420static INPUT_PORTS_START( csk234 )
421
422   PORT_START("DSW1")
423   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8")
424   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
425   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
426   PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6")
427   PORT_DIPSETTING(    0x06, "1" )
428   PORT_DIPSETTING(    0x04, "3" )
429   PORT_DIPSETTING(    0x02, "5" )
430   PORT_DIPSETTING(    0x00, "10" )
431   PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4")
432   PORT_DIPSETTING(    0x18, "3" )
433   PORT_DIPSETTING(    0x10, "5" )
434   PORT_DIPSETTING(    0x08, "20" )
435   PORT_DIPSETTING(    0x00, "40" )
436   PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2")
437   PORT_DIPSETTING(    0x60, "1" )
438   PORT_DIPSETTING(    0x40, "5" )
439   PORT_DIPSETTING(    0x20, "10" )
440   PORT_DIPSETTING(    0x00, "20" )
441   PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1")
442   PORT_DIPSETTING(    0x80, "5000" )
443   PORT_DIPSETTING(    0x00, "10000" )
444
445   PORT_START("DSW2")
446   PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6")
447   PORT_DIPSETTING(    0x07, "1" )
448   PORT_DIPSETTING(    0x06, "2" )
449   PORT_DIPSETTING(    0x05, "5" )
450   PORT_DIPSETTING(    0x04, "10" )
451   PORT_DIPSETTING(    0x03, "20" )
452   PORT_DIPSETTING(    0x02, "40" )
453   PORT_DIPSETTING(    0x01, "50" )
454   PORT_DIPSETTING(    0x00, "100" )
455   PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4")
456   PORT_DIPSETTING(    0x18, "10" )
457   PORT_DIPSETTING(    0x10, "20" )
458   PORT_DIPSETTING(    0x08, "50" )
459   PORT_DIPSETTING(    0x00, "100" )
460   PORT_DIPNAME( 0x60, 0x60, "Key Out Rate" ) PORT_DIPLOCATION("SWB:3,2")
461   PORT_DIPSETTING(    0x60, "1:1" )
462   PORT_DIPSETTING(    0x40, "10:1" )
463   PORT_DIPSETTING(    0x20, "100:1" )
464   PORT_DIPSETTING(    0x00, "100:1" )
465   PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1")
466   PORT_DIPSETTING(    0x80, "Manual" )
467   PORT_DIPSETTING(    0x00, "Auto" )
468
469   PORT_START("DSW3")
470   PORT_DIPNAME( 0x01, 0x01, "W-UP Bonus Target" ) PORT_DIPLOCATION("SWC:8")
471   PORT_DIPSETTING(    0x01, "3000" )
472   PORT_DIPSETTING(    0x00, "5000" )
473   PORT_DIPNAME( 0x02, 0x02, "W-UP Bonus Rate" ) PORT_DIPLOCATION("SWC:7")
474   PORT_DIPSETTING(    0x02, "300" )
475   PORT_DIPSETTING(    0x00, "500" )
476   PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5")
477   PORT_DIPSETTING(    0x0c, "94%" )
478   PORT_DIPSETTING(    0x08, "96%" )
479   PORT_DIPSETTING(    0x04, "98%" )
480   PORT_DIPSETTING(    0x00, "100%" )
481   PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3")
482   PORT_DIPSETTING(    0x30, DEF_STR( None ) )
483   PORT_DIPSETTING(    0x20, "High-Low" )
484   PORT_DIPSETTING(    0x10, "Red-Black" )      /* Bit 4 is equal for ON/OFF */
485   PORT_DIPNAME( 0x40, 0x40, "Card Select" ) PORT_DIPLOCATION("SWC:2")
486   PORT_DIPSETTING(    0x40, "Poker" )
487   PORT_DIPSETTING(    0x00, "Symbols" )
488   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
489
490   PORT_START("DSW4")
491   PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5")
492   PORT_DIPSETTING(    0x0f, "69%" )
493   PORT_DIPSETTING(    0x0e, "72%" )
494   PORT_DIPSETTING(    0x0d, "75%" )
495   PORT_DIPSETTING(    0x0c, "78%" )
496   PORT_DIPSETTING(    0x0b, "81%" )
497   PORT_DIPSETTING(    0x0a, "83%" )
498   PORT_DIPSETTING(    0x09, "85%" )
499   PORT_DIPSETTING(    0x08, "87%" )
500   PORT_DIPSETTING(    0x07, "89%" )
501   PORT_DIPSETTING(    0x06, "91%" )
502   PORT_DIPSETTING(    0x05, "93%" )
503   PORT_DIPSETTING(    0x04, "95%" )
504   PORT_DIPSETTING(    0x03, "97%" )
505   PORT_DIPSETTING(    0x02, "99%" )
506   PORT_DIPSETTING(    0x01, "101%" )
507   PORT_DIPSETTING(    0x00, "103%" )
508   PORT_DIPNAME( 0x10, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:4")
509   PORT_DIPSETTING(    0x10, DEF_STR( No ) )
510   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
511   PORT_DIPNAME( 0x20, 0x00, "Anytime Key-in" ) PORT_DIPLOCATION("SWD:3")
512   PORT_DIPSETTING(    0x20, DEF_STR( No ) )
513   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
514   PORT_BIT( 0xC0, IP_ACTIVE_LOW, IPT_UNUSED )         /* Joker and Royal Flush are always enabled */
515
516   PORT_START("DSW5")
517   PORT_DIPNAME( 0x01, 0x00, "Hopper" ) PORT_DIPLOCATION("SWE:8")
518   PORT_DIPSETTING(    0x01, DEF_STR( No ) )
519   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
520   PORT_DIPNAME( 0x02, 0x00, "Payout Select" ) PORT_DIPLOCATION("SWE:7")
521   PORT_DIPSETTING(    0x02, "Hopper" )
522   PORT_DIPSETTING(    0x00, "Ticket" )
523   PORT_DIPNAME( 0x0c, 0x0c, "Ticket Rate" ) PORT_DIPLOCATION("SWE:6,5")
524   PORT_DIPSETTING(    0x0c, "10:1" )
525   PORT_DIPSETTING(    0x08, "20:1" )
526   PORT_DIPSETTING(    0x04, "50:1" )
527   PORT_DIPSETTING(    0x00, "100:1" )
528   PORT_DIPNAME( 0x10, 0x00, "Ability" ) PORT_DIPLOCATION("SWE:4")
529   PORT_DIPSETTING(    0x10, DEF_STR( No ) )
530   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
531   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
532
533   PORT_START("5081")
534   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_E) PORT_NAME("HPSW")
535   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_NAME("Payout")
536   PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW )
537   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F1) PORT_NAME("Statistics")
538
539   PORT_START("5082")
540   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
541   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
542   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
543   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_Q) PORT_NAME("Key In")
544   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_W) PORT_NAME("Key Down")
545   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
546
547   PORT_START("5091")   /* Custom IO */
548   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
549
550   PORT_START("50A0")
551   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_START1 )
552   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Hold1/High/Low")
553   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Hold5/Bet")
554   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Hold4/Take")
555   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Hold3/W-Up")
556   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Hold2/Red/Black")
557   PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
558
559INPUT_PORTS_END
560
561static INPUT_PORTS_START( cpoker )
562
563   PORT_START("DSW1")
564   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8")
565   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
566   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
567   PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6")
568   PORT_DIPSETTING(    0x06, "1" )
569   PORT_DIPSETTING(    0x04, "3" )
570   PORT_DIPSETTING(    0x02, "5" )
571   PORT_DIPSETTING(    0x00, "10" )
572   PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4")
573   PORT_DIPSETTING(    0x18, "3" )
574   PORT_DIPSETTING(    0x10, "5" )
575   PORT_DIPSETTING(    0x08, "20" )
576   PORT_DIPSETTING(    0x00, "40" )
577   PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2")
578   PORT_DIPSETTING(    0x60, "1" )
579   PORT_DIPSETTING(    0x40, "5" )
580   PORT_DIPSETTING(    0x20, "10" )
581   PORT_DIPSETTING(    0x00, "20" )
582   PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1")
583   PORT_DIPSETTING(    0x80, "5000" )
584   PORT_DIPSETTING(    0x00, "10000" )
585
586   PORT_START("DSW2")
587   PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6")
588   PORT_DIPSETTING(    0x07, "1" )
589   PORT_DIPSETTING(    0x06, "2" )
590   PORT_DIPSETTING(    0x05, "5" )
591   PORT_DIPSETTING(    0x04, "10" )
592   PORT_DIPSETTING(    0x03, "20" )
593   PORT_DIPSETTING(    0x02, "40" )
594   PORT_DIPSETTING(    0x01, "50" )
595   PORT_DIPSETTING(    0x00, "100" )
596   PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4")
597   PORT_DIPSETTING(    0x18, "10" )
598   PORT_DIPSETTING(    0x10, "20" )
599   PORT_DIPSETTING(    0x08, "50" )
600   PORT_DIPSETTING(    0x00, "100" )
601   PORT_DIPNAME( 0x60, 0x60, "Key Out Rate" ) PORT_DIPLOCATION("SWB:3,2")
602   PORT_DIPSETTING(    0x60, "1:1" )
603   PORT_DIPSETTING(    0x40, "10:1" )
604   PORT_DIPSETTING(    0x20, "100:1" )
605   PORT_DIPSETTING(    0x00, "100:1" )
606   PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1")
607   PORT_DIPSETTING(    0x80, "Manual" )
608   PORT_DIPSETTING(    0x00, "Auto" )
609
610   PORT_START("DSW3")
611   PORT_DIPNAME( 0x01, 0x01, "W-UP Bonus Target" ) PORT_DIPLOCATION("SWC:8")
612   PORT_DIPSETTING(    0x01, "3000" )
613   PORT_DIPSETTING(    0x00, "5000" )
614   PORT_DIPNAME( 0x02, 0x02, "W-UP Bonus Rate" ) PORT_DIPLOCATION("SWC:7")
615   PORT_DIPSETTING(    0x02, "300" )
616   PORT_DIPSETTING(    0x00, "500" )
617   PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5")
618   PORT_DIPSETTING(    0x0c, "94%" )
619   PORT_DIPSETTING(    0x08, "96%" )
620   PORT_DIPSETTING(    0x04, "98%" )
621   PORT_DIPSETTING(    0x00, "100%" )
622   PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3")
623   PORT_DIPSETTING(    0x30, DEF_STR( None ) )
624   PORT_DIPSETTING(    0x20, "High-Low" )
625   PORT_DIPSETTING(    0x10, "Red-Black" )      /* Bit 4 is equal for ON/OFF */
626   PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2")
627   PORT_DIPSETTING(    0x40, DEF_STR( No ) )
628   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
629   PORT_DIPNAME( 0x80, 0x00, "Anytime Key-in" ) PORT_DIPLOCATION("SWC:1")
630   PORT_DIPSETTING(    0x80, DEF_STR( No ) )
631   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
632
633   PORT_START("DSW4")
634   PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5")
635   PORT_DIPSETTING(    0x0f, "69%" )
636   PORT_DIPSETTING(    0x0e, "72%" )
637   PORT_DIPSETTING(    0x0d, "75%" )
638   PORT_DIPSETTING(    0x0c, "78%" )
639   PORT_DIPSETTING(    0x0b, "81%" )
640   PORT_DIPSETTING(    0x0a, "83%" )
641   PORT_DIPSETTING(    0x09, "85%" )
642   PORT_DIPSETTING(    0x08, "87%" )
643   PORT_DIPSETTING(    0x07, "89%" )
644   PORT_DIPSETTING(    0x06, "91%" )
645   PORT_DIPSETTING(    0x05, "93%" )
646   PORT_DIPSETTING(    0x04, "95%" )
647   PORT_DIPSETTING(    0x03, "97%" )
648   PORT_DIPSETTING(    0x02, "99%" )
649   PORT_DIPSETTING(    0x01, "101%" )
650   PORT_DIPSETTING(    0x00, "103%" )
651   PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4")
652   PORT_DIPSETTING(    0x10, DEF_STR( No ) )
653   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
654   PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3")
655   PORT_DIPSETTING(    0x20, DEF_STR( No ) )
656   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
657   PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2")
658   PORT_DIPSETTING(    0x40, DEF_STR( No ) )
659   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
660   PORT_DIPNAME( 0x80, 0x00, "Hopper" ) PORT_DIPLOCATION("SWD:1")
661   PORT_DIPSETTING(    0x80, DEF_STR( No ) )
662   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
663
664   PORT_START("DSW5")
665   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
666
667   PORT_START("5081")
668   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_E) PORT_NAME("HPSW")
669   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_NAME("Payout")
670   PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW )
671   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F1) PORT_NAME("Statistics")
672
673   PORT_START("5082")
674   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
675   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
676   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
677   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_Q) PORT_NAME("Key In")
678   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_W) PORT_NAME("Key Down")
679   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
680
681   PORT_START("5091")   /* Custom IO */
682   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
683
684   PORT_START("50A0")
685   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_START1 )
686   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Hold1/High/Low")
687   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Hold5/Bet")
688   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Hold4/Take")
689   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Hold3/W-Up")
690   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Hold2/Red/Black")
691   PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
692
693INPUT_PORTS_END
694
695
696
697static const gfx_layout charlayout =
698{
699   8,8,    /* 8*8 characters */
700   8192,   /* 8192 characters */
701   6,      /* 6 bits per pixel */
702   { 8, 0, 0x20000*8+8, 0x20000*8+0, 0x40000*8+8, 0x40000*8+0 }, /* the bitplanes are packed in one byte */
703   { 0, 1, 2, 3, 4, 5, 6, 7 },
704   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
705   16*8   /* every char takes 32 consecutive bytes */
706};
707
708static const gfx_layout charlayout2 =
709{
710   8,32,   /* 8*32 characters */
711   256,    /* 256 characters */
712   6,      /* 6 bits per pixel */
713   { 8, 0, 0x10000*8+8, 0x10000*8+0, 0x20000*8+8, 0x20000*8+0 }, /* the bitplanes are packed in one byte */
714   {
715      0, 1, 2, 3, 4, 5, 6, 7,
716   },
717   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
718      8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16,
719      16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16,
720      24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 },
721   4*16*8   /* every char takes 32 consecutive bytes */
722};
723
724static GFXDECODE_START( cpoker )
725   GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout,   0, 16 )
726GFXDECODE_END
727
728static GFXDECODE_START( csk )
729   GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout,   0, 16 )
730   GFXDECODE_ENTRY( "gfx2", 0x04000, charlayout2,  0, 16 )
731   GFXDECODE_ENTRY( "gfx2", 0x08000, charlayout2,  0, 16 )
732   GFXDECODE_ENTRY( "gfx2", 0x0c000, charlayout2,  0, 16 )
733   GFXDECODE_ENTRY( "gfx2", 0x00000, charlayout2,  0, 16 )
734GFXDECODE_END
735
736static MACHINE_DRIVER_START( cpoker )
737
738   /* basic machine hardware */
739   MDRV_CPU_ADD("main",Z80, 3579545)
740   MDRV_CPU_PROGRAM_MAP(map,0)
741   MDRV_CPU_IO_MAP(cpoker_map,0)
742   MDRV_CPU_VBLANK_INT_HACK(cpoker_interrupt,8)
743
744   MDRV_MACHINE_RESET(cpk)
745
746   /* video hardware */
747   MDRV_SCREEN_ADD("main", RASTER)
748   MDRV_SCREEN_REFRESH_RATE(57)
749   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
750   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
751   MDRV_SCREEN_SIZE(64*8, 32*8)
752   MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1)
753
754   MDRV_GFXDECODE(cpoker)
755   MDRV_PALETTE_LENGTH(2048)
756
757   MDRV_VIDEO_START(cska)
758   MDRV_VIDEO_UPDATE(cska)
759
760   /* sound hardware */
761   MDRV_SPEAKER_STANDARD_MONO("mono")
762   MDRV_SOUND_ADD("ym", YM2413, 3579545)
763   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
764
765MACHINE_DRIVER_END
766
767static MACHINE_DRIVER_START( csk227it )
768
769   MDRV_IMPORT_FROM(cpoker)
770   MDRV_CPU_MODIFY("main")
771   /* basic machine hardware */
772   MDRV_CPU_IO_MAP(csk227_map,0)
773   MDRV_CPU_VBLANK_INT_HACK(cska_interrupt,8)
774   MDRV_GFXDECODE(csk)
775
776MACHINE_DRIVER_END
777
778static MACHINE_DRIVER_START( csk234it )
779
780   MDRV_IMPORT_FROM(cpoker)
781   MDRV_CPU_MODIFY("main")
782   /* basic machine hardware */
783   MDRV_CPU_IO_MAP(csk234_map,0)
784   MDRV_CPU_VBLANK_INT_HACK(cska_interrupt,8)
785   MDRV_GFXDECODE(csk)
786
787MACHINE_DRIVER_END
788
789/*  ROM Regions definition
790 */
791
792ROM_START( cpoker )
793   ROM_REGION( 0x10000, "main", 0 )
794   ROM_LOAD( "v220i1.bin",  0x0000, 0x8000, CRC(b7cae556) SHA1(bb43ee48634879029ed1a7cd4133d7f12413e2ac) )
795   ROM_LOAD( "v220i2.bin",  0x8000, 0x8000, CRC(8245e42c) SHA1(b7e7b9f643e6dc2f4d5aaf7d50d0a9154ed9a4e7) )
796
797   ROM_REGION( 0x60000, "gfx1", ROMREGION_DISPOSE )
798   ROM_LOAD( "220i1.bin",  0x40000, 0x20000, CRC(9c4c0af1) SHA1(7a9808b3093b23bde7ecc7405689b2a28ae34e61) )
799   ROM_LOAD( "220i2.bin",  0x20000, 0x20000, CRC(331fa4b8) SHA1(ddac57251fa5dfecc0988a2ca01eec016ef47f20) )
800   ROM_LOAD( "220i3.bin",  0x00000, 0x20000, CRC(bd2f797c) SHA1(5ca5adae44490dd109f630213a09a68c12f9bd1a) )
801
802   ROM_REGION( 0x10000, "gfx3", 0 )   /* expansion rom - contains backgrounds and pictures charmaps */
803   ROM_LOAD( "220i7.bin",   0x0000, 0x8000, CRC(8a2ff310) SHA1(a415a99dbb1448b4b2b94e17a3973e6347e3be18) )
804ROM_END
805
806ROM_START( csk227it )
807   ROM_REGION( 0x10000, "main", 0 )
808   ROM_LOAD( "v227i.bin",   0x0000, 0x10000, CRC(df1ebf49) SHA1(829c7575d3d3780557405b3a61859901df6dbe4f) )
809
810   ROM_REGION( 0x60000, "gfx1", ROMREGION_DISPOSE )
811   ROM_LOAD( "6.227",  0x00000, 0x20000, CRC(e9aad93b) SHA1(72116759cd8ddd9828f534e8f8a3f9f96ad2e002) )
812   ROM_LOAD( "5.227",  0x20000, 0x20000, CRC(e4c4c8da) SHA1(0442b0de68f3b69e613506348e00c3cf9139edcf) )
813   ROM_LOAD( "4.227",  0x40000, 0x20000, CRC(afb365dd) SHA1(930a4cd516258e703a75afc25ef6b2655b8b696a) )
814
815   ROM_REGION( 0x30000, "gfx2", ROMREGION_DISPOSE )
816   ROM_LOAD( "3.bin",  0x00000, 0x10000, CRC(fcb115ac) SHA1(a9f2b9762413840669cd44f8e54b47a7c4350d11) )   /* extension charset, used for ability game */
817   ROM_LOAD( "2.bin",  0x10000, 0x10000, CRC(848343a3) SHA1(b12f9bc2feb470d2fa8b085621fa60c0895109d4) )
818   ROM_LOAD( "1.bin",  0x20000, 0x10000, CRC(921ad5de) SHA1(b06ab2e63b31361dcb0367110f47bf2453ecdca6) )
819
820   ROM_REGION( 0x10000, "gfx3", 0 )   /* expansion rom - contains backgrounds and pictures charmaps */
821   ROM_LOAD( "7.227",   0x0000, 0x10000, CRC(a10786ad) SHA1(82f5f81808ca70d67a2710cc66fbbf78588b33b5) )
822ROM_END
823
824ROM_START( csk234it )
825   ROM_REGION( 0x10000, "main", 0 )
826   ROM_LOAD( "v234it.bin",   0x0000, 0x10000, CRC(344b7059)  SHA1(990cb84e35c0c50d3be9fbb76a11395114dc6c9b) )
827
828   ROM_REGION( 0x60000, "gfx1", ROMREGION_DISPOSE )
829   ROM_LOAD( "6.234",  0x00000, 0x20000, CRC(23b855a4) SHA1(8217bac61ad09483d8789113cf394d0e525ab28a) )
830   ROM_LOAD( "5.234",  0x20000, 0x20000, CRC(189039d7) SHA1(146fd1ddb23ceaa4192e0382b0ab82f5cfbdabfe) )
831   ROM_LOAD( "4.234",  0x40000, 0x20000, CRC(c82b0ffc) SHA1(5ebd7da76d402b7111cbe9012cfa3b8a8ff1a86e) )
832
833   ROM_REGION( 0x30000, "gfx2", ROMREGION_DISPOSE )
834   ROM_LOAD( "3.bin",  0x00000, 0x10000, CRC(fcb115ac) SHA1(a9f2b9762413840669cd44f8e54b47a7c4350d11) )   /* extension charset, used for ability game */
835   ROM_LOAD( "2.bin",  0x10000, 0x10000, CRC(848343a3) SHA1(b12f9bc2feb470d2fa8b085621fa60c0895109d4) )
836   ROM_LOAD( "1.bin",  0x20000, 0x10000, CRC(921ad5de) SHA1(b06ab2e63b31361dcb0367110f47bf2453ecdca6) )
837
838   ROM_REGION( 0x10000, "gfx3", 0 )   /* expansion rom - contains backgrounds and pictures charmaps */
839   ROM_LOAD( "7.234",   0x0000, 0x10000, CRC(ae6dd4ad) SHA1(4772d5c150d64d1ef3b68e16214f594eea0b3c1b) )
840ROM_END
841
842/*
843
844Anno    199x
845Produttore  IGS
846N.revisione
847
848CPU
849
8501x Z0840006PSC (main)
8512x D8255AC
8521x unknown AMT001
8531x unknown IGS002
8541x UM3567 (sound)
8551x oscillator 12.000MHz
8561x oscillator 3.579645
857
858ROMs
859
8602x D27128A (1,3)
8611x MBM27128 (2)
8623x 27C010 (4,5,6)
8631x D27512 (7sv)
8641x MBM27C512 (v110)
8651x unknown (DIP20 mil300)(jack3)
8663x PEEL18CV8PC (read protected)
8671x TIBPAL16L8 (read protected)
868
869Note
870
8711x 36x2 edge connector
8721x 10x2 edge connector (payout system)
8731x trimmer (volume)
8741x pushbutton
8751x battery
8765x 8x2 switches dip
877
878*/
879ROM_START( jackie )
880   ROM_REGION( 0x10000, "main", 0 )
881   ROM_LOAD( "jackiev110.u23",   0x0000, 0x10000, CRC(1b78a619) SHA1(a6eb6b6e544efa55225f2e947483614afb6ece3b) )
882
883   ROM_REGION( 0x60000, "gfx1", ROMREGION_DISPOSE )
884   ROM_LOAD( "6.u6",  0x00000, 0x20000, CRC(d2ed60a9) SHA1(40e2280384aa5c9e72e87a3b9e673172ff695676) )
885   ROM_LOAD( "5.u5",  0x20000, 0x20000, CRC(dc01fe7c) SHA1(683834ce2f13a923c0467209b93fef693d9c3e38) )
886   ROM_LOAD( "4.u4",  0x40000, 0x20000, CRC(38a42dcd) SHA1(8cc08ff4143281d9022210d6577146d725df9044) )
887
888   ROM_REGION( 0x30000, "gfx2", ROMREGION_DISPOSE )
889   ROM_LOAD( "3.u3",  0x00000, 0x4000, CRC(c69e962b) SHA1(492427ad1ac959cdf22d23439e0eb5932b60ec88) )
890   ROM_LOAD( "2.u2",  0x10000, 0x4000, CRC(8900ffba) SHA1(065cf1810ec9738718e4c94613f726e85ba4314d) )
891   ROM_LOAD( "1.u1",  0x20000, 0x4000, CRC(071d20f0) SHA1(77c87486803dccaa63732ff959c223b1313820e3) )
892
893   ROM_REGION( 0x10000, "gfx3", 0 )
894   ROM_LOAD( "jackie7sv.u22",   0x0000, 0x10000, CRC(8b4eb6da) SHA1(480784917dfaf9a0343c1d56eb590b32bf5e94fd) )
895
896   ROM_REGION( 0x10000, "misc", 0 )
897   ROM_LOAD( "16l8.u31",   0x0000, 0x104, BAD_DUMP CRC(e9cd78fb) SHA1(557d3e7ef3b25c1338b24722cac91bca788c02b8) )
898   ROM_LOAD( "18cv8.u14",  0x0000, 0x155, BAD_DUMP CRC(996e8f59) SHA1(630d9b91f6e8eda781061e2a8ff6fb0fecaf034c) )
899   ROM_LOAD( "18cv8.u8",   0x0000, 0x155, BAD_DUMP CRC(996e8f59) SHA1(630d9b91f6e8eda781061e2a8ff6fb0fecaf034c) )
900   ROM_LOAD( "18cv8.u9",   0x0000, 0x155, BAD_DUMP CRC(996e8f59) SHA1(630d9b91f6e8eda781061e2a8ff6fb0fecaf034c) )
901ROM_END
902
903/*
904
905Stelle e Cubi
906
907-- most of the roms on this seem to be the wrong size / missing data
908   but its appears to be a hack based on Champion Skill
909
9101x Z84c0006
9111x 12mhz OSC
9121x U6295 sound chip
9131x Actel FPGA (gfx chip)
914
915ROMs
916Note    1x Battery
9175x banks of dipswitch
918
919
920--
921
922This doesn't attempt to decode the gfx.
923
924*/
925ROM_START( stellecu )
926   ROM_REGION( 0x20000, "main", 0 )
927   /* there is data at 0x18000 which is probably mapped somewhere */
928   ROM_LOAD( "u35.bin",   0x0000, 0x20000, CRC(914b7c59) SHA1(3275b5016524467199f32d653c757bfe4f9cfc60) )
929
930   ROM_REGION( 0x60000, "gfx1", ROMREGION_DISPOSE )
931   /* seems to be missing half the gfx */
932   ROM_LOAD( "u23.bin",   0x0000, 0x40000, BAD_DUMP CRC(9d95757d) SHA1(f7f44d684f1f3a5b1e9c0a82f4377c6d79eb4214) )
933
934   ROM_REGION( 0x40000, "gfx2", ROMREGION_DISPOSE )
935   /* seems to be missing half the gfx */
936   ROM_LOAD( "u25.bin",   0x0000, 0x40000, BAD_DUMP CRC(63094010) SHA1(a781f1c529167dd0ab411c66b72105fc19e32f02) )
937
938   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 )
939
940   ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */
941   /* missing sample tables at start of rom */
942   ROM_LOAD( "u15.bin",   0x0000, 0x40000, BAD_DUMP CRC(72e3e9c1) SHA1(6a8fb93059bee5a4e4b4deb9fee4b5869e53983b) )
943ROM_END
944
945/*  Decode a simple PAL encryption
946 */
947
948static DRIVER_INIT( cpoker )
949{
950   int A;
951   UINT8 *rom = memory_region(machine, "main");
952
953
954   for (A = 0;A < 0x10000;A++)
955   {
956      rom[A] ^= 0x21;
957      if ((A & 0x0030) == 0x0010) rom[A] ^= 0x20;
958      if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01;
959      if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02;
960   }
961}
962
963static DRIVER_INIT( cpokert )
964{
965   UINT8 *rom = memory_region(machine, "main");
966   int i;
967
968   /* decrypt the program ROM */
969   for (i = 0;i < 0x10000;i++)
970   {
971      if((i & 0x200) && (i & 0x80))
972      {
973         rom[i] ^= ((~i & 2) >> 1);
974      }
975      else
976      {
977         rom[i] ^= 0x01;
978      }
979
980      if((i & 0x30) != 0x10)
981      {
982         rom[i] ^= 0x20;
983      }
984
985      if((i & 0x900) == 0x900 && ((i & 0xc0) == 0x40 || (i & 0xc0) == 0xc0))
986      {
987         rom[i] ^= 0x02;
988      }
989   }
990}
991
992static DRIVER_INIT( cska )
993{
994   int A;
995   UINT8 *rom = memory_region(machine, "main");
996
997
998   for (A = 0;A < 0x10000;A++)
999   {
1000      if ((A & 0x0020) == 0x0000) rom[A] ^= 0x01;
1001      if ((A & 0x0020) == 0x0020) rom[A] ^= 0x21;
1002      if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01;
1003      if ((A & 0x0028) == 0x0028) rom[A] ^= 0x20;
1004      if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02;
1005   }
1006}
1007
1008static DRIVER_INIT( jackie )
1009{
1010
1011   int A;
1012   UINT8 *rom = memory_region(machine, "main");
1013
1014   for (A = 0;A < 0x10000;A++)
1015   {
1016      rom[A] = rom[A] ^ 0x21;
1017
1018      if (((A & 0x0080) == 0x0000) && ((A & 0x0008) == 0x0000))
1019         rom[A] = rom[A] ^ 0x20;
1020
1021
1022      // there are      00 00 01 01 00 00 01 01 00 00 01 01 patterns
1023      // and additional 02 02 02 02 02 02 02 02 02 02 02 02 overlays
1024      //
1025      // e.g 1f80
1026      //     CB80
1027      //     CE80
1028      //     CF80
1029      //     D080
1030      //     DF80
1031
1032      // taken from cpoker, is it right?
1033
1034
1035      if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01;
1036      if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02;
1037   }
1038
1039
1040
1041   {
1042      FILE *fp;
1043      char filename[256];
1044      sprintf(filename,"igs_%s.decrypted", machine->gamedrv->name);
1045      fp=fopen(filename, "w+b");
1046      if (fp)
1047      {
1048         fwrite(rom, 0x10000, 1, fp);
1049         fclose(fp);
1050      }
1051   }
1052
1053}
1054
1055/*
1056
10571x ZILOG Z0840006PSC-Z80CPU (main)
10581x YM2413 (sound)
10591x NEC D8255AC (label: ORIGINAL BY IGS 102986)
10601x oscillator 12.000MHz (main)
10611x oscillator 3.579545MHz (sound)
1062
10631x custom QFP80 label AMT001
10641x custom QFP80 label IGS002
10651x custom DIP40 label IGS003 (under chip label 8255)
1066
1067ROMs
1068
10693x MX27C1000DC (4,5,6)
10701x NM27C256Q (7)
10711x 27C512 (200)
10722x PEEL18CV8P (8,9)
10731x PAL16L8ACN (31)
10742x PEEL18CV8P (12,14) <-> UNREADABLE, protected!
1075
1076Note
1077
10781x 10x2 edge connector (con1) (looks like a coin payout)
10791x 36x2 edge connector (con2)
10801x pushbutton (sw6)
10815x 8 switches dips (sw1-5)
10821x trimmer (volume)
1083----------------------
1084IGS PCB NO-T0039-8
1085
1086*/
1087
1088ROM_START( cpokert )
1089   ROM_REGION( 0x10000, "main", 0 )
1090   ROM_LOAD( "champingv-200g.u23", 0x00000, 0x10000, CRC(696cb684) SHA1(ce9e5bed83d0bd3b115f556cc89e3293ac6b69c3) )
1091
1092   ROM_REGION( 0x60000, "gfx1", ROMREGION_DISPOSE )
1093   ROM_LOAD( "cpoker6.u6", 0x00000, 0x20000, CRC(f3e61b24) SHA1(b18998defb6e51daef4ac5a5865674565ffb9029) )
1094   ROM_LOAD( "cpoker5.u5", 0x20000, 0x20000, CRC(a68b305f) SHA1(f872d2bf7ab194145dffe6b254ae0ad66aa6a497) )
1095   ROM_LOAD( "cpoker4.u4", 0x40000, 0x20000, CRC(860be7c9) SHA1(41bc58713076276aeefc44c7ea903549692b0224) )
1096
1097   //copy?
1098   ROM_REGION( 0x60000, "gfx2", ROMREGION_DISPOSE )
1099   ROM_COPY( "gfx1", 0, 0, 0x60000 )
1100
1101   ROM_REGION( 0x10000, "gfx3", 0 )   /* expansion rom - contains backgrounds and pictures charmaps */
1102   ROM_LOAD( "cpoker7.u22", 0x0000, 0x8000, CRC(dae3ecda) SHA1(c881e143ec600c5a931f26cd097da6353e1da7c3) )
1103
1104   // convert them to the pld format
1105   ROM_REGION( 0x2000, "plds", ROMREGION_DISPOSE )
1106   ROM_LOAD( "ag-u31.u31", 0x00000, 0x000b60, CRC(fd36baf2) SHA1(caac8bf47bc958395f97b6191569196efe3b3eaa) )
1107   ROM_LOAD( "ag-u8.u8",   0x00000, 0x0015e2, CRC(c0308c63) SHA1(16819a5c147fef38a235675fa4442da9fa8a6618) )
1108   ROM_LOAD( "ag-u9.u9",   0x00000, 0x0015e2, CRC(2e8039a3) SHA1(e39635ee9485a5ccd28526f1af7ec2e3294b0aec) )
1109ROM_END
1110
1111
1112GAME( 1993?, cpoker,   0,        cpoker,   cpoker, cpoker,  ROT0, "IGS",    "Champion Poker (v220I)",                    0 )
1113GAME( 1993?, cpokert,  cpoker,   cpoker,   cpoker, cpokert, ROT0, "Tuning", "Champion Poker (v200G)",                    0 )
1114GAME( 198?,  csk227it, 0,        csk227it, csk227, cska,    ROT0, "IGS",    "Champion Skill (with Ability)",             0 ) /* SU 062 */
1115GAME( 198?,  csk234it, csk227it, csk234it, csk234, cska,    ROT0, "IGS",    "Champion Skill (Ability, Poker & Symbols)", 0 ) /* SU 062 */
1116GAME( 199?,  jackie,   0,        cpoker,   cpoker, jackie,  ROT0, "IGS",    "Jackie (v110U)",                    GAME_NOT_WORKING )
1117
1118GAME( 1998, stellecu, 0,        csk234it, csk234, 0,       ROT0, "Sure",   "Stelle e Cubi (Italy)",                     GAME_NOT_WORKING )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team