Previous 199869 Revisions Next

r18127 Tuesday 25th September, 2012 at 02:21:15 UTC by hap
cleanup
[src/mame/drivers]jack.c
[src/mame/includes]jack.h
[src/mame/video]jack.c

trunk/src/mame/includes/jack.h
r18126r18127
2020   /* device- and memory pointers */
2121   required_device<cpu_device> m_maincpu;
2222   required_device<cpu_device> m_audiocpu;
23   required_shared_ptr<UINT8> m_spriteram;
23   optional_shared_ptr<UINT8> m_spriteram;
2424   optional_shared_ptr<UINT8> m_scrollram;
2525   required_shared_ptr<UINT8> m_videoram;
2626   required_shared_ptr<UINT8> m_colorram;
r18126r18127
5858   TILE_GET_INFO_MEMBER(joinem_get_bg_tile_info);
5959   DECLARE_VIDEO_START(joinem);
6060   DECLARE_PALETTE_INIT(joinem);
61   DECLARE_MACHINE_START(striv);
62   DECLARE_MACHINE_RESET(striv);
63   DECLARE_MACHINE_START(joinem);
64   DECLARE_MACHINE_RESET(joinem);
6165
6266   UINT32 screen_update_jack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
67   UINT32 screen_update_striv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6368   UINT32 screen_update_joinem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6469
6570   virtual void machine_start();
trunk/src/mame/video/jack.c
r18126r18127
1010#include "includes/jack.h"
1111
1212
13
1314WRITE8_MEMBER(jack_state::jack_videoram_w)
1415{
1516   m_videoram[offset] = data;
r18126r18127
3940   flip_screen_set(offset);
4041}
4142
43
44/**************************************************************************/
45
4246TILE_GET_INFO_MEMBER(jack_state::get_bg_tile_info)
4347{
4448   int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x18) << 5);
r18126r18127
6064   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jack_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),this), 8, 8, 32, 32);
6165}
6266
67
68/**************************************************************************/
69
6370static void jack_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
6471{
6572   jack_state *state = machine.driver_data<jack_state>();
r18126r18127
98105   return 0;
99106}
100107
101/*
108
109UINT32 jack_state::screen_update_striv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
110{
111   // no sprites
112   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
113   return 0;
114}
115
116
117
118
119
120
121/***************************************************************************
122
102123   Joinem has a bit different video hardware with proms based palette,
103124   3bpp gfx and different banking / colors bits
104*/
105125
126***************************************************************************/
127
106128WRITE8_MEMBER(jack_state::joinem_scroll_w)
107129{
108130   switch (offset & 3)
r18126r18127
120142   m_scrollram[offset] = data;
121143}
122144
145
146/**************************************************************************/
147
123148PALETTE_INIT_MEMBER(jack_state,joinem)
124149{
125150   const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
r18126r18127
145170   }
146171}
147172
173
148174TILE_GET_INFO_MEMBER(jack_state::joinem_get_bg_tile_info)
149175{
150176   int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x03) << 8);
r18126r18127
159185   m_bg_tilemap->set_scroll_cols(32);
160186}
161187
188
189/**************************************************************************/
190
162191static void joinem_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
163192{
164193   jack_state *state = machine.driver_data<jack_state>();
trunk/src/mame/drivers/jack.c
r18126r18127
3434
3535The 2 ay-8910 read ports are responsible for reading the sound commands.
3636
37    Notes:
38        * "Jack to Mame no Ki (Jack the Giant Killer)" and
39          "Pro Billiard (Tri Pool)" is developed by Noma Trading
40          (distributed via SNK).  Hara Industries probably a bootlegger.
4137
38Notes:
39  - "Jack to Mame no Ki (Jack the Giant Killer)" and
40    "Pro Billiard (Tri Pool)" is developed by Noma Trading
41    (distributed via SNK).  Hara Industries probably a bootlegger.
42
43Todo:
44  - fix striv hanging notes
45  - fix tripool palette problems (see attract)
46    The tripool driver used to have a hack making the vblank interrupt go off
47    twice per frame, this made the game run way too fast, but no palette bug.
48  - what's the correct irq0 frequency of joinem/unclepoo/loverboy?
49
4250***************************************************************************/
4351
4452#include "emu.h"
r18126r18127
4755#include "includes/jack.h"
4856
4957
58
5059/*************************************
5160 *
5261 *  Memory handlers
r18126r18127
6069   return m_audiocpu->total_cycles() / m_timer_rate;
6170}
6271
63
6472WRITE8_MEMBER(jack_state::jack_sh_command_w)
6573{
6674   soundlatch_byte_w(space, 0, data);
r18126r18127
6876}
6977
7078
79/***************************************************************/
7180
72
73WRITE8_MEMBER(jack_state::joinem_control_w)
74{
75   // d0: related to test mode?
76   // d1: unused?
77   // d2: ?
78   
79   // d3-d4: palette bank
80   int palette_bank = data & (machine().total_colors() - 1) >> 3 & 0x18;
81   if (m_joinem_palette_bank != palette_bank)
82   {
83      m_joinem_palette_bank = palette_bank;
84      m_bg_tilemap->mark_all_dirty();
85   }
86
87   // d5: assume nmi enable
88   m_joinem_nmi_enable = data & 0x20;
89   
90   // d6: unused?
91
92   // d7: flip screen
93   flip_screen_set(data & 0x80);
94}
95
96
97/*
98    Super Triv questions read handler
99*/
100
10181READ8_MEMBER(jack_state::striv_question_r)
10282{
10383   // Set-up the remap table for every 16 bytes
r18126r18127
131111   return 0; // the value read from the configuration reads is discarded
132112}
133113
114
115WRITE8_MEMBER(jack_state::joinem_control_w)
116{
117   // d0: related to test mode?
118   // d1: unused?
119   // d2: ?
120   
121   // d3-d4: palette bank
122   int palette_bank = data & (machine().total_colors() - 1) >> 3 & 0x18;
123   if (m_joinem_palette_bank != palette_bank)
124   {
125      m_joinem_palette_bank = palette_bank;
126      m_bg_tilemap->mark_all_dirty();
127   }
128
129   // d5: assume nmi enable
130   m_joinem_nmi_enable = data & 0x20;
131   
132   // d6: unused?
133
134   // d7: flip screen
135   flip_screen_set(data & 0x80);
136}
137
138
139
134140/*************************************
135141 *
136142 *  Address maps
r18126r18127
155161   AM_RANGE(0xc000, 0xffff) AM_ROM
156162ADDRESS_MAP_END
157163
164static ADDRESS_MAP_START( striv_map, AS_PROGRAM, 8, jack_state )
165   AM_RANGE(0xb000, 0xb0ff) AM_WRITENOP
166   AM_RANGE(0xc000, 0xcfff) AM_READ(striv_question_r)
167   AM_IMPORT_FROM( jack_map )
168ADDRESS_MAP_END
169
170
158171static ADDRESS_MAP_START( joinem_map, AS_PROGRAM, 8, jack_state )
159172   AM_RANGE(0x0000, 0x7fff) AM_ROM
160173   AM_RANGE(0x8000, 0x8fff) AM_RAM
r18126r18127
191204ADDRESS_MAP_END
192205
193206
207
194208/*************************************
195209 *
196210 *  Input ports
r18126r18127
230244   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "SW2:!3" )
231245   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "SW2:!4" )
232246   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW2:!5" )
233   PORT_SERVICE( 0x20, IP_ACTIVE_HIGH )         PORT_DIPLOCATION("SW2:!6")
247   PORT_SERVICE( 0x20, IP_ACTIVE_HIGH )            PORT_DIPLOCATION("SW2:!6")
234248   PORT_DIPNAME( 0x40, 0x00, "Invulnerability (Cheat)")   PORT_DIPLOCATION("SW2:!7")
235249   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
236250   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
r18126r18127
247261   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
248262
249263   PORT_START("IN1")
250   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
251   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
264   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    ) PORT_8WAY
265   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  ) PORT_8WAY
252266   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
253   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
254   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
255   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
267   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  ) PORT_8WAY
268   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_COCKTAIL
269   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  ) PORT_8WAY PORT_COCKTAIL
256270   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
257   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
271   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
258272
259273   PORT_START("IN2")
260274   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
r18126r18127
267281   PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )
268282INPUT_PORTS_END
269283
284
270285/* Same as 'jack', but different coinage */
271286static INPUT_PORTS_START( jack2 )
272287   PORT_INCLUDE( jack )
r18126r18127
284299   PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
285300INPUT_PORTS_END
286301
302
287303/* Same as 'jack', but another different coinage */
288304static INPUT_PORTS_START( jack3 )
289305   PORT_INCLUDE( jack )
r18126r18127
301317   PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
302318INPUT_PORTS_END
303319
320
304321/* Same as 'jack', but different "Bullets per Bean Collected" and "Difficulty" Dip Switches */
305322static INPUT_PORTS_START( treahunt )
306323   PORT_INCLUDE( jack )
r18126r18127
314331   PORT_DIPSETTING(    0x80, "20" )
315332INPUT_PORTS_END
316333
334
317335static INPUT_PORTS_START( zzyzzyxx )
318336   PORT_START("DSW1")
319337   PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) )      PORT_DIPLOCATION("SW1:!1,!2")
r18126r18127
333351   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SW1:!6")
334352   PORT_DIPSETTING(    0x20, DEF_STR( Upright ) )
335353   PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
336   PORT_SERVICE( 0x40, IP_ACTIVE_HIGH )         PORT_DIPLOCATION("SW1:!7")
354   PORT_SERVICE( 0x40, IP_ACTIVE_HIGH )            PORT_DIPLOCATION("SW1:!7")
337355   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Free_Play ) )   PORT_DIPLOCATION("SW1:!8")
338356   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
339357   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
r18126r18127
347365   PORT_DIPNAME( 0x04, 0x04, "2nd Bonus Given" )      PORT_DIPLOCATION("SW2:!3")
348366   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
349367   PORT_DIPSETTING(    0x04, DEF_STR( Yes ) )
350   PORT_DIPNAME( 0x08, 0x00, "Starting Laps" )      PORT_DIPLOCATION("SW2:!4")
368   PORT_DIPNAME( 0x08, 0x00, "Starting Laps" )         PORT_DIPLOCATION("SW2:!4")
351369   PORT_DIPSETTING(    0x00, "2" )
352370   PORT_DIPSETTING(    0x08, "3" )
353371   PORT_DIPNAME( 0x10, 0x00, "Difficulty of Pleasing Lola" )   PORT_DIPLOCATION("SW2:!5")
r18126r18127
356374   PORT_DIPNAME( 0x20, 0x00, "Show Intermissions" )   PORT_DIPLOCATION("SW2:!6")
357375   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
358376   PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
359   PORT_DIPNAME( 0xc0, 0x40, "Extra Lives" )      PORT_DIPLOCATION("SW2:!7,!8")
377   PORT_DIPNAME( 0xc0, 0x40, "Extra Lives" )         PORT_DIPLOCATION("SW2:!7,!8")
360378   PORT_DIPSETTING(    0x00, "3 under 4000 pts" )
361379   PORT_DIPSETTING(    0x80, "5 under 4000 pts" )
362380   PORT_DIPSETTING(    0x40, DEF_STR( None ) )         // 3 under 0 pts
r18126r18127
370388   PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
371389
372390   PORT_START("IN1")
373   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY
391   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP   ) PORT_2WAY
374392   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_2WAY
375393   PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
376   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY PORT_COCKTAIL
394   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP   ) PORT_2WAY PORT_COCKTAIL
377395   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_COCKTAIL
378396   PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
379397
r18126r18127
386404   PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED )
387405INPUT_PORTS_END
388406
407
389408static INPUT_PORTS_START( freeze )
390409   PORT_START("DSW1")
391410   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )   PORT_DIPLOCATION("SW1:!1")
392411   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
393412   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
394   PORT_SERVICE( 0x02, IP_ACTIVE_HIGH )         PORT_DIPLOCATION("SW1:!2")
413   PORT_SERVICE( 0x02, IP_ACTIVE_HIGH )            PORT_DIPLOCATION("SW1:!2")
395414   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW1:!3")
396415   PORT_DIPSETTING(    0x00, DEF_STR( Easy ) )
397416   PORT_DIPSETTING(    0x04, DEF_STR( Hard ) )
r18126r18127
425444
426445   PORT_START("IN1")
427446   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
428   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
447   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
429448   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
430449   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
431450   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
r18126r18127
454473   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
455474INPUT_PORTS_END
456475
476
457477static INPUT_PORTS_START( sucasino )
458478   PORT_START("DSW1")
459479   PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) )      PORT_DIPLOCATION("SW1:!1,!2")
r18126r18127
485505   PORT_START("IN1")
486506   PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
487507   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
488   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
508   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
489509   PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_UNUSED )
490510   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
491   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
511   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
492512
493513   PORT_START("IN2")
494514   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
r18126r18127
499519   PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED )
500520INPUT_PORTS_END
501521
522
502523static INPUT_PORTS_START( tripool )
503524   PORT_START("DSW1")
504525   PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:!1,!2")
r18126r18127
537558   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
538559
539560   PORT_START("IN1")
540   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
541   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
561   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    ) PORT_8WAY
562   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  ) PORT_8WAY
542563   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
543   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
544   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
545   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
564   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  ) PORT_8WAY
565   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_COCKTAIL
566   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  ) PORT_8WAY PORT_COCKTAIL
546567   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
547   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
568   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
548569
549570   PORT_START("IN2")
550571   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
r18126r18127
557578   PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )
558579INPUT_PORTS_END
559580
581
582static INPUT_PORTS_START( striv )
583   PORT_START("DSW1")
584   PORT_DIPNAME( 0x02, 0x00, "Monitor" )            PORT_DIPLOCATION("SW1:!2")
585   PORT_DIPSETTING(    0x02, "Horizontal" )
586   PORT_DIPSETTING(    0x00, "Vertical" )
587   PORT_DIPNAME( 0x05, 0x05, "Gaming Option Number" )   PORT_DIPLOCATION("SW1:!1,!3")
588   PORT_DIPSETTING(    0x01, "2" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
589   PORT_DIPSETTING(    0x05, "3" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
590   PORT_DIPSETTING(    0x00, "4" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
591   PORT_DIPSETTING(    0x04, "5" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
592   PORT_DIPSETTING(    0x01, "4" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
593   PORT_DIPSETTING(    0x05, "5" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
594   PORT_DIPSETTING(    0x00, "6" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
595   PORT_DIPSETTING(    0x04, "7" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
596   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SW1:!4")
597   PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
598   PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
599   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Coinage ) )      PORT_DIPLOCATION("SW1:!5")
600   PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
601   PORT_DIPSETTING(    0x10, DEF_STR( 1C_1C ) )
602   PORT_DIPNAME( 0x20, 0x20, "Gaming Option" )         PORT_DIPLOCATION("SW1:!6")
603   PORT_DIPSETTING(    0x20, "Number of Wrong Answer" )
604   PORT_DIPSETTING(    0x00, "Number of Questions" )
605   PORT_DIPNAME( 0x40, 0x40, "Show Correct Answer" )   PORT_DIPLOCATION("SW1:!7")
606   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
607   PORT_DIPSETTING(    0x40, DEF_STR( Yes ) )
608   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )               PORT_DIPLOCATION("SW1:!8")
609
610   PORT_START("DSW2")
611   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW2:!1" )
612   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "SW2:!2" )
613   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "SW2:!3" )
614   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "SW2:!4" )
615   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW2:!5" )
616   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x00, "SW2:!6" )
617   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x00, "SW2:!7" )
618   PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW2:!8" )
619//   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //?
620
621   PORT_START("IN0")
622   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
623   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
624   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )
625   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 )
626   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 )
627   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
628   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
629   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
630
631   PORT_START("IN1")
632   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
633   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
634   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
635   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
636   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2)
637   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
638   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
639   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
640
641   PORT_START("IN2")
642   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(2)
643   PORT_BIT( 0xfd, IP_ACTIVE_HIGH, IPT_UNUSED )
644
645   PORT_START("IN3")
646   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //?
647INPUT_PORTS_END
648
649
560650static INPUT_PORTS_START( joinem )
561651   PORT_START("DSW1")
562652   PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:!1,!2")
r18126r18127
586676   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW2:!5" )
587677   PORT_SERVICE_DIPLOC( 0x20, IP_ACTIVE_HIGH, "SW2:!6" )
588678   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x00, "SW2:!7" )
589   PORT_DIPNAME( 0x80, 0x00, "Infinite Lives (Cheat)" )      PORT_DIPLOCATION("SW2:!8")
679   PORT_DIPNAME( 0x80, 0x00, "Infinite Lives (Cheat)" )   PORT_DIPLOCATION("SW2:!8")
590680   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
591681   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
592682
r18126r18127
621711   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // ?
622712INPUT_PORTS_END
623713
714
624715static INPUT_PORTS_START( unclepoo )
625716   PORT_INCLUDE( joinem )
626717
r18126r18127
633724   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
634725INPUT_PORTS_END
635726
727
636728static INPUT_PORTS_START( loverboy )
637   PORT_START("DSW1")
729   PORT_INCLUDE( joinem )
730
731   PORT_MODIFY("DSW1")
638732   PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coinage ) )      PORT_DIPLOCATION("SW1:!1,!2,!3,!4")
639733   PORT_DIPSETTING(    0x0c, DEF_STR( 4C_1C ) )
640734   PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
r18126r18127
653747   PORT_DIPSETTING(    0x02, DEF_STR( 1C_3C ) )
654748   PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
655749   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW1:!5" )
656   PORT_DIPNAME( 0x20, 0x00, "Bonus" )         PORT_DIPLOCATION("SW1:!6")
750   PORT_DIPNAME( 0x20, 0x00, "Bonus" )               PORT_DIPLOCATION("SW1:!6")
657751   PORT_DIPSETTING(    0x00, "20000" )
658752   PORT_DIPSETTING(    0x20, "30000" )
659753   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW1:!7")
r18126r18127
663757   PORT_DIPSETTING(    0x80, DEF_STR( Upright ) )
664758   PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
665759
666   PORT_START("DSW2")
760   PORT_MODIFY("DSW2")
667761   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW2:!1" )
668762   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "SW2:!2" )
669763   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "SW2:!3" )
r18126r18127
673767   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x00, "SW2:!7" )
674768   PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW2:!8" )
675769
676   PORT_START("IN0")
677   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
678   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
679   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
680   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
770   PORT_MODIFY("IN0")
681771   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
682   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
683   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
684   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
685772
686   PORT_START("IN1")
687   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
688   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
689   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
690   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
773   PORT_MODIFY("IN1")
691774   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
692   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
693   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
694   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
695
696   PORT_START("IN2")
697   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
698   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
699   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
700   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
701   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
702   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
703   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) // otherwise it doesn't boot because the code is buggy
704   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
705775INPUT_PORTS_END
706776
707static INPUT_PORTS_START( striv )
708   PORT_START("DSW1")
709   PORT_DIPNAME( 0x02, 0x00, "Monitor" )         PORT_DIPLOCATION("SW1:!2")
710   PORT_DIPSETTING(    0x02, "Horizontal" )
711   PORT_DIPSETTING(    0x00, "Vertical" )
712   PORT_DIPNAME( 0x05, 0x05, "Gaming Option Number" )   PORT_DIPLOCATION("SW1:!1,!3")
713   PORT_DIPSETTING(    0x01, "2" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
714   PORT_DIPSETTING(    0x05, "3" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
715   PORT_DIPSETTING(    0x00, "4" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
716   PORT_DIPSETTING(    0x04, "5" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20)
717   PORT_DIPSETTING(    0x01, "4" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
718   PORT_DIPSETTING(    0x05, "5" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
719   PORT_DIPSETTING(    0x00, "6" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
720   PORT_DIPSETTING(    0x04, "7" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20)
721   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SW1:!4")
722   PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
723   PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
724   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Coinage ) )      PORT_DIPLOCATION("SW1:!5")
725   PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
726   PORT_DIPSETTING(    0x10, DEF_STR( 1C_1C ) )
727   PORT_DIPNAME( 0x20, 0x20, "Gaming Option" )      PORT_DIPLOCATION("SW1:!6")
728   PORT_DIPSETTING(    0x20, "Number of Wrong Answer" )
729   PORT_DIPSETTING(    0x00, "Number of Questions" )
730   PORT_DIPNAME( 0x40, 0x40, "Show Correct Answer" )   PORT_DIPLOCATION("SW1:!7")
731   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
732   PORT_DIPSETTING(    0x40, DEF_STR( Yes ) )
733   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )         PORT_DIPLOCATION("SW1:!8")
734777
735   PORT_START("DSW2")
736   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //?
737778
738   PORT_START("IN0")
739   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
740   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
741   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )
742   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 )
743   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 )
744   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
745   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
746   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
747
748   PORT_START("IN1")
749   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
750   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
751   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
752   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
753   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2)
754   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
755   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
756   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
757
758   PORT_START("IN2")
759   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(2)
760   PORT_BIT( 0xfd, IP_ACTIVE_HIGH, IPT_UNUSED )
761
762   PORT_START("IN3")
763   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //?
764INPUT_PORTS_END
765
766
767779/*************************************
768780 *
769 *  Graphics definitions
781 *  Machine configs
770782 *
771783 *************************************/
772784
773785static const gfx_layout charlayout =
774786{
775   8,8,   /* 8*8 characters */
776   RGN_FRAC(1,2),   /* 1024 characters */
777   2,   /* 2 bits per pixel */
778   { RGN_FRAC(0,2), RGN_FRAC(1,2) },   /* the two bitplanes are separated */
787   8,8,
788   RGN_FRAC(1,2),
789   2,
790   { RGN_FRAC(0,2), RGN_FRAC(1,2) },
779791   { 0, 1, 2, 3, 4, 5, 6, 7 },
780792   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
781   8*8   /* every char takes 16 bytes */
793   8*8
782794};
783795
784796static GFXDECODE_START( jack )
785797   GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 )
786798GFXDECODE_END
787799
800
788801static const gfx_layout joinem_charlayout =
789802{
790803   8,8,
r18126r18127
800813   GFXDECODE_ENTRY( "gfx1", 0, joinem_charlayout, 0, 32 )
801814GFXDECODE_END
802815
816
803817static const ay8910_interface ay8910_config =
804818{
805819   AY8910_LEGACY_OUTPUT,
806820   AY8910_DEFAULT_LOADS,
807821   DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
808   DEVCB_DRIVER_MEMBER(jack_state,timer_r)
822   DEVCB_DRIVER_MEMBER(jack_state, timer_r)
809823};
810824
811825
812/*************************************
813 *
814 *  Machine driver
815 *
816 *************************************/
826/***************************************************************/
817827
818828void jack_state::machine_start()
819829{
830}
831
832void jack_state::machine_reset()
833{
834}
835
836
837MACHINE_START_MEMBER(jack_state,striv)
838{
820839   save_item(NAME(m_question_address));
821840   save_item(NAME(m_question_rom));
822841   save_item(NAME(m_remap_address));
823842}
824843
825void jack_state::machine_reset()
844MACHINE_RESET_MEMBER(jack_state,striv)
826845{
827   joinem_control_w(m_maincpu->space(AS_PROGRAM), 0, 0, 0xff);
828   int i;
829
830846   m_question_address = 0;
831847   m_question_rom = 0;
832848
833   for (i = 0; i < 16; i++)
849   for (int i = 0; i < 16; i++)
834850      m_remap_address[i] = 0;
835851}
836852
853
854MACHINE_START_MEMBER(jack_state,joinem)
855{
856   save_item(NAME(m_joinem_nmi_enable));
857   save_item(NAME(m_joinem_palette_bank));
858}
859
860MACHINE_RESET_MEMBER(jack_state,joinem)
861{
862   joinem_control_w(m_maincpu->space(AS_PROGRAM), 0, 0, 0xff);
863}
864
865
866/***************************************************************/
867
837868static MACHINE_CONFIG_START( jack, jack_state )
838869
839870   /* basic machine hardware */
840   MCFG_CPU_ADD("maincpu", Z80, 18000000/6)   /* 3 MHz */
871   MCFG_CPU_ADD("maincpu", Z80, XTAL_18MHz/6)
841872   MCFG_CPU_PROGRAM_MAP(jack_map)
842873   MCFG_CPU_VBLANK_INT_DRIVER("screen", jack_state, irq0_line_hold)
843874
844   MCFG_CPU_ADD("audiocpu", Z80,18000000/12)   /* 1.5 MHz */
875   MCFG_CPU_ADD("audiocpu", Z80, XTAL_18MHz/6)
845876   MCFG_CPU_PROGRAM_MAP(sound_map)
846877   MCFG_CPU_IO_MAP(sound_io_map)
847878
r18126r18127
859890   /* sound hardware */
860891   MCFG_SPEAKER_STANDARD_MONO("mono")
861892
862   MCFG_SOUND_ADD("aysnd", AY8910, 18000000/12)
893   MCFG_SOUND_ADD("aysnd", AY8910, XTAL_18MHz/12)
863894   MCFG_SOUND_CONFIG(ay8910_config)
864895   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
865896MACHINE_CONFIG_END
866897
867static MACHINE_CONFIG_DERIVED( tripool, jack )
868898
899static MACHINE_CONFIG_DERIVED( striv, jack )
900
869901   /* basic machine hardware */
870902   MCFG_CPU_MODIFY("maincpu")
871   MCFG_CPU_PERIODIC_INT_DRIVER(jack_state, irq0_line_hold, 2*60) /* tripool needs 2 or the palette is broken */
903   MCFG_CPU_PROGRAM_MAP(striv_map)
904
905   MCFG_MACHINE_START_OVERRIDE(jack_state,striv)
906   MCFG_MACHINE_RESET_OVERRIDE(jack_state,striv)
907
908   /* video hardware */
909   MCFG_SCREEN_MODIFY("screen")
910   MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_striv)
872911MACHINE_CONFIG_END
873912
913
914/***************************************************************/
915
874916INTERRUPT_GEN_MEMBER(jack_state::joinem_vblank_irq)
875917{
876918   if (m_joinem_nmi_enable)
r18126r18127
883925   MCFG_CPU_MODIFY("maincpu")
884926   MCFG_CPU_PROGRAM_MAP(joinem_map)
885927   MCFG_CPU_VBLANK_INT_DRIVER("screen", jack_state, joinem_vblank_irq)
886   MCFG_CPU_PERIODIC_INT_DRIVER(jack_state, irq0_line_hold, 2*60)
928   MCFG_CPU_PERIODIC_INT_DRIVER(jack_state, irq0_line_hold, 250) // ??? controls game speed
887929
930   MCFG_MACHINE_START_OVERRIDE(jack_state,joinem)
931   MCFG_MACHINE_RESET_OVERRIDE(jack_state,joinem)
932
888933   /* video hardware */
889934   MCFG_SCREEN_MODIFY("screen")
890935   MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem)
r18126r18127
892937   MCFG_GFXDECODE(joinem)
893938   MCFG_PALETTE_LENGTH(0x40)
894939
895   MCFG_PALETTE_INIT_OVERRIDE(jack_state, joinem)
896   MCFG_VIDEO_START_OVERRIDE(jack_state, joinem)
940   MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
941   MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
897942MACHINE_CONFIG_END
898943
899944
r18126r18127
911956MACHINE_CONFIG_END
912957
913958
959
914960/*************************************
915961 *
916962 *  ROM definition(s)
r18126r18127
938984   ROM_LOAD( "jgk.j10",      0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) )
939985ROM_END
940986
987
941988ROM_START( jack2 )
942989   ROM_REGION( 0x10000, "maincpu", 0 )
943990   ROM_LOAD( "jgk.j8",       0x0000, 0x1000, CRC(fe229e20) SHA1(191cfb7bb08d46cab713e23abd69f27db1685346) )
r18126r18127
9591006   ROM_LOAD( "jgk.j10",      0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) )
9601007ROM_END
9611008
1009
9621010ROM_START( jack3 )
9631011   ROM_REGION( 0x10000, "maincpu", 0 )
9641012   ROM_LOAD( "jack8",        0x0000, 0x1000, CRC(632151d2) SHA1(080f29818d537474c821b9920427bda47f5a7254) )
r18126r18127
9801028   ROM_LOAD( "jgk.j10",      0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) )
9811029ROM_END
9821030
1031
9831032ROM_START( treahunt )
9841033   ROM_REGION( 0x10000, "maincpu", 0 )   /* 64k for code + 64k for decrypted opcodes */
9851034   ROM_LOAD( "thunt-1.f2",   0x0000, 0x1000, CRC(0b35858c) SHA1(b8f80c69fcbce71e1b85c8f39599f8bebfeb2585) )
r18126r18127
10011050   ROM_LOAD( "thunt-11.a2",  0x3000, 0x1000, CRC(f9781143) SHA1(f168648a78240fdf02063d39f324838f4dfe9a56) )
10021051ROM_END
10031052
1053
10041054ROM_START( zzyzzyxx )
10051055   ROM_REGION( 0x10000, "maincpu", 0 )
10061056   ROM_LOAD( "a.2f",         0x0000, 0x1000, CRC(a9102e34) SHA1(80d71df7d235980603f35aa3f474aaf58fb39946) )
r18126r18127
10231073   ROM_LOAD( "l.1a",         0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) )
10241074ROM_END
10251075
1076
10261077ROM_START( zzyzzyxx2 )
10271078   ROM_REGION( 0x10000, "maincpu", 0 )
10281079   ROM_LOAD( "a.2f",         0x0000, 0x1000, CRC(a9102e34) SHA1(80d71df7d235980603f35aa3f474aaf58fb39946) )
r18126r18127
10451096   ROM_LOAD( "l.1a",         0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) )
10461097ROM_END
10471098
1099
10481100ROM_START( brix )
10491101   ROM_REGION( 0x10000, "maincpu", 0 )
10501102   ROM_LOAD( "a",            0x0000, 0x1000, CRC(050e0d70) SHA1(f5e0ed0845443701233de194d9ce24ec35e03a27) )
r18126r18127
10671119   ROM_LOAD( "l.1a",         0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) )
10681120ROM_END
10691121
1122
10701123ROM_START( freeze )
10711124   ROM_REGION( 0x10000, "maincpu", 0 )
10721125   ROM_LOAD( "freeze.f2",    0x0000, 0x1000, CRC(0a431665) SHA1(57b7fc72c7e3b0d09b4a0676a4e7094657e2b742) )
r18126r18127
10881141   ROM_LOAD( "freeze.2a",    0x3000, 0x1000, CRC(dd70ddd6) SHA1(d03cac0b4248da5d49ffac6ee57a3f8dd368731b) )
10891142ROM_END
10901143
1144
10911145ROM_START( sucasino )
10921146   ROM_REGION( 0x10000, "maincpu", 0 )
10931147   ROM_LOAD( "1",           0x0000, 0x1000, CRC(e116e979) SHA1(99b0c783ace93e643738a1a924cafb690d2c1127) )
r18126r18127
11091163   /* 3000-3fff empty */
11101164ROM_END
11111165
1166
11121167ROM_START( tripool )
11131168   ROM_REGION( 0x10000, "maincpu", 0 )
11141169   ROM_LOAD( "tri73a.bin",   0x0000, 0x1000, CRC(96893aa7) SHA1(ea1dc5824d89c1bb131850625a65d018a9127179) )
r18126r18127
11201175   ROM_LOAD( "tri13d.bin",   0xf000, 0x1000, CRC(ad268e9b) SHA1(5d8d9b1c57b332b5a28b01d6a4f4885239d80b00) )
11211176
11221177   ROM_REGION( 0x10000, "audiocpu", 0 )
1123   ROM_LOAD( "trisnd.bin",       0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) )
1178   ROM_LOAD( "trisnd.bin",   0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) )
11241179
11251180   ROM_REGION( 0x4000, "gfx1", 0 )
11261181   ROM_LOAD( "tri93a.bin",   0x2000, 0x1000, CRC(35213782) SHA1(05d5a67ffa3d26377c54777917d3ba51677ebd28) )
11271182   ROM_LOAD( "tri105a.bin",  0x0000, 0x1000, CRC(366a753c) SHA1(30fa8d80e42287e3e8677aefd15beab384265728) )
11281183ROM_END
11291184
1185
11301186ROM_START( tripoola )
11311187   ROM_REGION( 0x10000, "maincpu", 0 )
11321188   ROM_LOAD( "tri73a.bin",   0x0000, 0x1000, CRC(96893aa7) SHA1(ea1dc5824d89c1bb131850625a65d018a9127179) )
r18126r18127
11381194   ROM_LOAD( "tp1ckt",       0xf000, 0x1000, CRC(72ec43a3) SHA1(a4f5b20872e41845340db627321e0dbcad4b964e) )
11391195
11401196   ROM_REGION( 0x10000, "audiocpu", 0 )
1141   ROM_LOAD( "trisnd.bin",       0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) )
1197   ROM_LOAD( "trisnd.bin",   0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) )
11421198
11431199   ROM_REGION( 0x4000, "gfx1", 0 )
11441200   ROM_LOAD( "tri93a.bin",   0x2000, 0x1000, CRC(35213782) SHA1(05d5a67ffa3d26377c54777917d3ba51677ebd28) )
11451201   ROM_LOAD( "tri105a.bin",  0x0000, 0x1000, CRC(366a753c) SHA1(30fa8d80e42287e3e8677aefd15beab384265728) )
11461202ROM_END
11471203
1148ROM_START( joinem )
1149   ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */
1150   ROM_LOAD( "join1.r0", 0x0000, 0x2000, CRC(b5b2e2cc) SHA1(e939478d19ac27807ba4180835c512b5fcb8d0c5) )
1151   ROM_LOAD( "join2.r2", 0x2000, 0x2000, CRC(bcf140e6) SHA1(3fb4fbb758518d8ae26abbe76f12678cf988bd0e) )
1152   ROM_LOAD( "join3.r4", 0x4000, 0x2000, CRC(fe04e4d4) SHA1(9b34cc5915dd78340d1cedb34f5d397d3b39ca14) )
11531204
1154   ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */
1155   ROM_LOAD( "join7.s0", 0x0000, 0x1000, CRC(bb8a7814) SHA1(cfb85408827b96a81401223256e23082b7e9598f) )
1156
1157   ROM_REGION( 0x3000, "gfx1", 0 ) /* gfx - 8x8x3bpp */
1158   ROM_LOAD( "join4.p3", 0x0000, 0x1000, CRC(4964c82c) SHA1(7a45399db20f9bbdb2de58243732e3951ffe358c) )
1159   ROM_LOAD( "join5.p2", 0x1000, 0x1000, CRC(ae78fa89) SHA1(8f43fd2ec037185a1b9bd9c61c49ad891c504d4d) )
1160   ROM_LOAD( "join6.p1", 0x2000, 0x1000, CRC(2b533261) SHA1(ce6c1fa833b34aeb401f430d212415c33beb2922) )
1161
1162   ROM_REGION( 0x100, "proms", 0 ) /* colours */
1163   ROM_LOAD_NIB_LOW(  "l82s129.11n", 0x000, 0x100, CRC(7b724211) SHA1(7396c773e8d48dea856d9482d6c48de966616c83) )
1164   ROM_LOAD_NIB_HIGH( "h82s129.12n", 0x000, 0x100, CRC(2e81c5ff) SHA1(e103c8813af704d5de11fe705de5105ff3a691c3) )
1165ROM_END
1166
1167
1168ROM_START( unclepoop )
1169   ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */
1170   ROM_LOAD( "01.f17", 0x00000, 0x2000, CRC(92fb238c) SHA1(e9476c5c1a0bf9e8c6c364ac022ed1d97ae66d2e) )
1171   ROM_LOAD( "02.f14", 0x02000, 0x2000, CRC(b99214ef) SHA1(c8e4af0efbc5ea543277b2764dc6f119aae477ca) )
1172   ROM_LOAD( "03.f11", 0x04000, 0x2000, CRC(a136af97) SHA1(cfa610bf357870053617fed8aef6bb30bd996422) )
1173   ROM_LOAD( "04.f09", 0x06000, 0x2000, CRC(c4bcd414) SHA1(df3125358530f5fb8d202bddcb0ef5e322fabb7b) )
1174
1175   ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */
1176   ROM_LOAD( "08.c15", 0x00000, 0x1000, CRC(fd84106b) SHA1(891853d2b39850a981016108b74ca20337d2cdd8) )
1177
1178   ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */
1179   ROM_LOAD( "07.h04", 0x0000, 0x2000, CRC(e2f73e99) SHA1(61cb09ff424ba63b892b4822e7ed916af73412f1) )
1180   ROM_LOAD( "06.j04", 0x2000, 0x2000, CRC(94b5f676) SHA1(32c27854726636c4ce03bb6a83b32d04ed6c42af) )
1181   ROM_LOAD( "05.k04", 0x4000, 0x2000, CRC(64026934) SHA1(a5342335d02d34fa6ba2b29484ed71ecc96292f2) )
1182
1183   ROM_REGION( 0x200, "proms", 0 ) /* colours */
1184   ROM_LOAD_NIB_LOW(  "diatec_l.bin", 0x000, 0x100, CRC(b04d466a) SHA1(1438abeae76ef807ba34bd6d3e4c44f707dbde6e) )
1185   ROM_LOAD_NIB_HIGH( "diatec_h.bin", 0x000, 0x100, CRC(938601b1) SHA1(8213284989bebb5f7375878181840de8079dc1f3) )
1186ROM_END
1187
1188
1189ROM_START( loverboy )
1190   ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */
1191   ROM_LOAD( "lover.r0", 0x0000, 0x2000, CRC(ffec4e41) SHA1(65428ebcb3af47071fef70a35388e070a019f692) )
1192   ROM_LOAD( "lover.r2", 0x2000, 0x2000, CRC(04052262) SHA1(056a225c8625e53881753b0b0330f9b277d14a7d) )
1193   ROM_LOAD( "lover.r4", 0x4000, 0x2000, CRC(ce5f3b49) SHA1(cb55e1f7c3df59389ac14b7da4f584ae054abca3) )
1194   ROM_LOAD( "lover.r6", 0x6000, 0x1000, CRC(839d79b7) SHA1(ac1c0fbf23e7d1a53b47dae16170857c55e6ae48) )
1195
1196   ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */
1197   ROM_LOAD( "lover.s0", 0x0000, 0x1000, CRC(ec38111c) SHA1(09efded9e905658bdbcde4ad4f0b4cb9585bdb33) )
1198
1199   ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */
1200   ROM_LOAD( "lover.p3", 0x0000, 0x2000, CRC(1a519c8f) SHA1(36f546deaf36e8cd3bd113d84fd5e5f6e98d5de5) )
1201   ROM_LOAD( "lover.p2", 0x2000, 0x2000, CRC(e465372f) SHA1(345b769ebc33f60daa9692b64e8ef43062552a33) )
1202   ROM_LOAD( "lover.p1", 0x4000, 0x2000, CRC(cda0d87e) SHA1(efff230e994e21705902f252e50ee40a20444c0f) )
1203
1204   ROM_REGION( 0x200, "proms", 0 )
1205   ROM_LOAD_NIB_LOW(  "color.n11", 0x000, 0x200, CRC(cf4a16ae) SHA1(e17c5dfd73c5bc55c0a929cf65ee5b516c9776a5) )
1206   ROM_LOAD_NIB_HIGH( "color.n12", 0x000, 0x200, CRC(4b11ac21) SHA1(d9e7cecfb7237335288ab6f94bb35696d8291bdf) )
1207ROM_END
1208
1209
12101205/*
12111206
12121207Super Triv
r18126r18127
12801275|PR1.F2  TBFD2.U8   TBFD1.U15 |
12811276|-----------------------------|
12821277
1283
12841278*/
12851279
12861280ROM_START( striv )
r18126r18127
13211315ROM_END
13221316
13231317
1318ROM_START( joinem )
1319   ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */
1320   ROM_LOAD( "join1.r0", 0x0000, 0x2000, CRC(b5b2e2cc) SHA1(e939478d19ac27807ba4180835c512b5fcb8d0c5) )
1321   ROM_LOAD( "join2.r2", 0x2000, 0x2000, CRC(bcf140e6) SHA1(3fb4fbb758518d8ae26abbe76f12678cf988bd0e) )
1322   ROM_LOAD( "join3.r4", 0x4000, 0x2000, CRC(fe04e4d4) SHA1(9b34cc5915dd78340d1cedb34f5d397d3b39ca14) )
1323
1324   ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */
1325   ROM_LOAD( "join7.s0", 0x0000, 0x1000, CRC(bb8a7814) SHA1(cfb85408827b96a81401223256e23082b7e9598f) )
1326
1327   ROM_REGION( 0x3000, "gfx1", 0 ) /* gfx - 8x8x3bpp */
1328   ROM_LOAD( "join4.p3", 0x0000, 0x1000, CRC(4964c82c) SHA1(7a45399db20f9bbdb2de58243732e3951ffe358c) )
1329   ROM_LOAD( "join5.p2", 0x1000, 0x1000, CRC(ae78fa89) SHA1(8f43fd2ec037185a1b9bd9c61c49ad891c504d4d) )
1330   ROM_LOAD( "join6.p1", 0x2000, 0x1000, CRC(2b533261) SHA1(ce6c1fa833b34aeb401f430d212415c33beb2922) )
1331
1332   ROM_REGION( 0x100, "proms", 0 ) /* colours */
1333   ROM_LOAD_NIB_LOW(  "l82s129.11n", 0x000, 0x100, CRC(7b724211) SHA1(7396c773e8d48dea856d9482d6c48de966616c83) )
1334   ROM_LOAD_NIB_HIGH( "h82s129.12n", 0x000, 0x100, CRC(2e81c5ff) SHA1(e103c8813af704d5de11fe705de5105ff3a691c3) )
1335ROM_END
1336
1337
1338ROM_START( unclepoop )
1339   ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */
1340   ROM_LOAD( "01.f17", 0x0000, 0x2000, CRC(92fb238c) SHA1(e9476c5c1a0bf9e8c6c364ac022ed1d97ae66d2e) )
1341   ROM_LOAD( "02.f14", 0x2000, 0x2000, CRC(b99214ef) SHA1(c8e4af0efbc5ea543277b2764dc6f119aae477ca) )
1342   ROM_LOAD( "03.f11", 0x4000, 0x2000, CRC(a136af97) SHA1(cfa610bf357870053617fed8aef6bb30bd996422) )
1343   ROM_LOAD( "04.f09", 0x6000, 0x2000, CRC(c4bcd414) SHA1(df3125358530f5fb8d202bddcb0ef5e322fabb7b) )
1344
1345   ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */
1346   ROM_LOAD( "08.c15", 0x0000, 0x1000, CRC(fd84106b) SHA1(891853d2b39850a981016108b74ca20337d2cdd8) )
1347
1348   ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */
1349   ROM_LOAD( "07.h04", 0x0000, 0x2000, CRC(e2f73e99) SHA1(61cb09ff424ba63b892b4822e7ed916af73412f1) )
1350   ROM_LOAD( "06.j04", 0x2000, 0x2000, CRC(94b5f676) SHA1(32c27854726636c4ce03bb6a83b32d04ed6c42af) )
1351   ROM_LOAD( "05.k04", 0x4000, 0x2000, CRC(64026934) SHA1(a5342335d02d34fa6ba2b29484ed71ecc96292f2) )
1352
1353   ROM_REGION( 0x200, "proms", 0 ) /* colours */
1354   ROM_LOAD_NIB_LOW(  "diatec_l.bin", 0x000, 0x100, CRC(b04d466a) SHA1(1438abeae76ef807ba34bd6d3e4c44f707dbde6e) )
1355   ROM_LOAD_NIB_HIGH( "diatec_h.bin", 0x000, 0x100, CRC(938601b1) SHA1(8213284989bebb5f7375878181840de8079dc1f3) )
1356ROM_END
1357
1358
1359ROM_START( loverboy )
1360   ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */
1361   ROM_LOAD( "lover.r0", 0x0000, 0x2000, CRC(ffec4e41) SHA1(65428ebcb3af47071fef70a35388e070a019f692) )
1362   ROM_LOAD( "lover.r2", 0x2000, 0x2000, CRC(04052262) SHA1(056a225c8625e53881753b0b0330f9b277d14a7d) )
1363   ROM_LOAD( "lover.r4", 0x4000, 0x2000, CRC(ce5f3b49) SHA1(cb55e1f7c3df59389ac14b7da4f584ae054abca3) )
1364   ROM_LOAD( "lover.r6", 0x6000, 0x1000, CRC(839d79b7) SHA1(ac1c0fbf23e7d1a53b47dae16170857c55e6ae48) )
1365
1366   ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */
1367   ROM_LOAD( "lover.s0", 0x0000, 0x1000, CRC(ec38111c) SHA1(09efded9e905658bdbcde4ad4f0b4cb9585bdb33) )
1368
1369   ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */
1370   ROM_LOAD( "lover.p3", 0x0000, 0x2000, CRC(1a519c8f) SHA1(36f546deaf36e8cd3bd113d84fd5e5f6e98d5de5) )
1371   ROM_LOAD( "lover.p2", 0x2000, 0x2000, CRC(e465372f) SHA1(345b769ebc33f60daa9692b64e8ef43062552a33) )
1372   ROM_LOAD( "lover.p1", 0x4000, 0x2000, CRC(cda0d87e) SHA1(efff230e994e21705902f252e50ee40a20444c0f) )
1373
1374   ROM_REGION( 0x200, "proms", 0 )
1375   ROM_LOAD_NIB_LOW(  "color.n11", 0x000, 0x200, CRC(cf4a16ae) SHA1(e17c5dfd73c5bc55c0a929cf65ee5b516c9776a5) )
1376   ROM_LOAD_NIB_HIGH( "color.n12", 0x000, 0x200, CRC(4b11ac21) SHA1(d9e7cecfb7237335288ab6f94bb35696d8291bdf) )
1377ROM_END
1378
1379
1380
13241381/*************************************
13251382 *
13261383 *  Driver initialization
13271384 *
13281385 *************************************/
13291386
1387DRIVER_INIT_MEMBER(jack_state,jack)
1388{
1389   m_timer_rate = 256;
1390}
1391
1392
1393DRIVER_INIT_MEMBER(jack_state,zzyzzyxx)
1394{
1395   m_timer_rate = 32;
1396}
1397
1398
13301399static void treahunt_decode( running_machine &machine )
13311400{
13321401   int A;
r18126r18127
13721441   }
13731442}
13741443
1375DRIVER_INIT_MEMBER(jack_state,jack)
1376{
1377   m_timer_rate = 128;
1378}
1379
13801444DRIVER_INIT_MEMBER(jack_state,treahunt)
13811445{
1382   m_timer_rate = 128;
1446   m_timer_rate = 256;
13831447   treahunt_decode(machine());
13841448}
13851449
1386DRIVER_INIT_MEMBER(jack_state,zzyzzyxx)
1387{
1388   m_timer_rate = 16;
1389}
13901450
13911451DRIVER_INIT_MEMBER(jack_state,loverboy)
13921452{
r18126r18127
14001460       sends a custom irq (either ld hl,$019d or jp $019d). After the initial
14011461       code, the protection device is disabled or changes behaviour via
14021462       writes at 0xf000 and 0xf008. -AS
1403       */
1463    */
14041464   UINT8 *ROM = memregion("maincpu")->base();
14051465   ROM[0x13] = 0x01;
14061466   ROM[0x12] = 0x9d;
14071467
1408   m_timer_rate = 16;
1468   m_timer_rate = 32;
14091469}
14101470
14111471
r18126r18127
14371497      }
14381498   }
14391499
1440   // Set-up the weirdest questions read ever done
1441   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xc000, 0xcfff, read8_delegate(FUNC(jack_state::striv_question_r),this));
1500   m_timer_rate = 256;
1501}
14421502
1443   // Nop out unused sprites writes
1444   machine().device("maincpu")->memory().space(AS_PROGRAM).nop_write(0xb000, 0xb0ff);
14451503
1446   m_timer_rate = 128;
1447}
14481504
14491505/*************************************
14501506 *
r18126r18127
14521508 *
14531509 *************************************/
14541510
1455GAME( 1982, jack,     0,        jack,    jack, jack_state,     jack,     ROT90,  "Cinematronics",               "Jack the Giantkiller (set 1)", GAME_SUPPORTS_SAVE )
1456GAME( 1982, jack2,    jack,     jack,    jack2, jack_state,    jack,     ROT90,  "Cinematronics",               "Jack the Giantkiller (set 2)", GAME_SUPPORTS_SAVE )
1457GAME( 1982, jack3,    jack,     jack,    jack3, jack_state,    jack,     ROT90,  "Cinematronics",               "Jack the Giantkiller (set 3)", GAME_SUPPORTS_SAVE )
1458GAME( 1982, treahunt, jack,     jack,    treahunt, jack_state, treahunt, ROT90,  "bootleg? (Hara Industries)",  "Treasure Hunt (bootleg?)", GAME_SUPPORTS_SAVE )
1459GAME( 1982, zzyzzyxx, 0,        jack,    zzyzzyxx, jack_state, zzyzzyxx, ROT90,  "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 1)", GAME_SUPPORTS_SAVE )
1460GAME( 1982, zzyzzyxx2,zzyzzyxx, jack,    zzyzzyxx, jack_state, zzyzzyxx, ROT90,  "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 2)", GAME_SUPPORTS_SAVE )
1461GAME( 1982, brix,     zzyzzyxx, jack,    zzyzzyxx, jack_state, zzyzzyxx, ROT90,  "Cinematronics / Advanced Microcomputer Systems", "Brix", GAME_SUPPORTS_SAVE )
1462GAME( 1984, freeze,   0,        jack,    freeze, jack_state,   jack,     ROT90,  "Cinematronics",               "Freeze", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
1463GAME( 1984, sucasino, 0,        jack,    sucasino, jack_state, jack,     ROT90,  "Data Amusement",              "Super Casino", GAME_SUPPORTS_SAVE )
1464GAME( 1981, tripool,  0,        tripool, tripool, jack_state,  jack,     ROT90,  "Noma (Casino Tech license)",  "Tri-Pool (Casino Tech)", GAME_SUPPORTS_SAVE )
1465GAME( 1981, tripoola, tripool,  tripool, tripool, jack_state,  jack,     ROT90,  "Noma (Costal Games license)", "Tri-Pool (Costal Games)", GAME_SUPPORTS_SAVE )
1466GAME( 1983, joinem,   0,        joinem,  joinem, jack_state,   zzyzzyxx, ROT90,  "Global Corporation",          "Joinem", GAME_SUPPORTS_SAVE )
1467GAME( 1983, unclepoop, unclepoo, unclepoo, unclepoo, jack_state, zzyzzyxx, ROT90, "Diatec", "Uncle Poo (nincompoop version)", GAME_NOT_WORKING )
1468GAME( 1983, loverboy, 0,        joinem,loverboy, jack_state, loverboy, ROT90,  "G.T Enterprise Inc",          "Lover Boy", GAME_SUPPORTS_SAVE )
1469GAME( 1985, striv,    0,        jack,    striv, jack_state,    striv,    ROT270, "Hara Industries",             "Super Triv", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1511GAME( 1982, jack,      0,        jack,     jack,     jack_state, jack,     ROT90,  "Cinematronics",               "Jack the Giantkiller (set 1)", GAME_SUPPORTS_SAVE )
1512GAME( 1982, jack2,     jack,     jack,     jack2,    jack_state, jack,     ROT90,  "Cinematronics",               "Jack the Giantkiller (set 2)", GAME_SUPPORTS_SAVE )
1513GAME( 1982, jack3,     jack,     jack,     jack3,    jack_state, jack,     ROT90,  "Cinematronics",               "Jack the Giantkiller (set 3)", GAME_SUPPORTS_SAVE )
1514GAME( 1982, treahunt,  jack,     jack,     treahunt, jack_state, treahunt, ROT90,  "bootleg? (Hara Industries)",  "Treasure Hunt (bootleg?)", GAME_SUPPORTS_SAVE )
1515GAME( 1982, zzyzzyxx,  0,        jack,     zzyzzyxx, jack_state, zzyzzyxx, ROT90,  "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 1)", GAME_SUPPORTS_SAVE )
1516GAME( 1982, zzyzzyxx2, zzyzzyxx, jack,     zzyzzyxx, jack_state, zzyzzyxx, ROT90,  "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 2)", GAME_SUPPORTS_SAVE )
1517GAME( 1982, brix,      zzyzzyxx, jack,     zzyzzyxx, jack_state, zzyzzyxx, ROT90,  "Cinematronics / Advanced Microcomputer Systems", "Brix", GAME_SUPPORTS_SAVE )
1518GAME( 1984, freeze,    0,        jack,     freeze,   jack_state, jack,     ROT90,  "Cinematronics",               "Freeze", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
1519GAME( 1981, tripool,   0,        jack,     tripool,  jack_state, jack,     ROT90,  "Noma (Casino Tech license)",  "Tri-Pool (Casino Tech)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
1520GAME( 1981, tripoola,  tripool,  jack,     tripool,  jack_state, jack,     ROT90,  "Noma (Costal Games license)", "Tri-Pool (Costal Games)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
1521GAME( 1984, sucasino,  0,        jack,     sucasino, jack_state, jack,     ROT90,  "Data Amusement",              "Super Casino", GAME_SUPPORTS_SAVE )
1522GAME( 1985, striv,     0,        striv,    striv,    jack_state, striv,    ROT270, "Nova du Canada",              "Super Triv", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // Hara Industries PCB
1523GAME( 1983, joinem,    0,        joinem,   joinem,   jack_state, zzyzzyxx, ROT90,  "Global Corporation",          "Joinem", GAME_SUPPORTS_SAVE )
1524GAME( 1983, unclepoop, unclepoo, unclepoo, unclepoo, jack_state, zzyzzyxx, ROT90,  "Diatec", "Uncle Poo (nincompoop version)", GAME_NOT_WORKING ) // based on Joinem?
1525GAME( 1983, loverboy,  0,        joinem,   loverboy, jack_state, loverboy, ROT90,  "G.T Enterprise Inc.",         "Lover Boy", GAME_SUPPORTS_SAVE )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team