Previous 199869 Revisions Next

r34973 Sunday 8th February, 2015 at 15:07:41 UTC by Couriersud
Merge branch 'master' of https://github.com/mamedev/mame.git
[src/emu/cpu/ucom4]ucom4.c ucom4.h ucom4op.inc
[src/emu/machine]wd_fdc.c
[src/mame/drivers]mitchell.c rabbit.c segas32.c taxidriv.c tmmjprd.c
[src/mame/includes]taxidriv.h
[src/mame/video]taxidriv.c
[src/mess/drivers]pc9801.c slicer.c tmtennis.c

trunk/src/emu/cpu/ucom4/ucom4.c
r243484r243485
110110
111111void ucom4_cpu_device::device_start()
112112{
113   assert(NEC_UCOM4_PORTA == 0);
114   
113115   m_program = &space(AS_PROGRAM);
114116   m_data = &space(AS_DATA);
115117   m_prgmask = (1 << m_prgwidth) - 1;
116118   m_datamask = (1 << m_datawidth) - 1;
117119   m_dph_mask = m_datamask >> 4;
118120
119   m_read_a.resolve_safe(0);
120   m_read_b.resolve_safe(0);
121   m_read_c.resolve_safe(0);
122   m_read_d.resolve_safe(0);
121   m_read_a.resolve_safe(0xf);
122   m_read_b.resolve_safe(0xf);
123   m_read_c.resolve_safe(0xf);
124   m_read_d.resolve_safe(0xf);
123125
124126   m_write_c.resolve_safe();
125127   m_write_d.resolve_safe();
r243484r243485
131133
132134   // zerofill
133135   memset(m_stack, 0, sizeof(m_stack));
136   memset(m_port_out, 0, sizeof(m_port_out));
134137   m_op = 0;
135138   m_prev_op = 0;
136   m_arg = 0;
137139   m_skip = false;
138140   m_pc = 0;
139141   m_acc = 0;
r243484r243485
147149
148150   // register for savestates
149151   save_item(NAME(m_stack));
152   save_item(NAME(m_port_out));
150153   save_item(NAME(m_op));
151154   save_item(NAME(m_prev_op));
152   save_item(NAME(m_arg));
153155   save_item(NAME(m_skip));
154156   save_item(NAME(m_pc));
155157   save_item(NAME(m_acc));
r243484r243485
185187   m_pc = 0;
186188   m_op = 0;
187189   m_skip = false;
190
191   // clear i/o
192   for (int i = NEC_UCOM4_PORTC; i <= NEC_UCOM4_PORTI; i++)
193      output_w(i, 0xf);
188194}
189195
190196
r243484r243485
215221
216222      debugger_instruction_hook(this, m_pc);
217223      m_op = m_program->read_byte(m_pc);
224      m_bitmask = 1 << (m_op & 0x03);
218225      m_pc = (m_pc + 1) & m_prgmask;
219226      fetch_arg();
220227     
trunk/src/emu/cpu/ucom4/ucom4.h
r243484r243485
4545   ucom4_cpu_device::set_write_i_callback(*device, DEVCB_##_devcb);
4646
4747
48enum
49{
50   NEC_UCOM4_PORTA = 0,
51   NEC_UCOM4_PORTB,
52   NEC_UCOM4_PORTC,
53   NEC_UCOM4_PORTD,
54   NEC_UCOM4_PORTE,
55   NEC_UCOM4_PORTF,
56   NEC_UCOM4_PORTG,
57   NEC_UCOM4_PORTH,
58   NEC_UCOM4_PORTI
59};
4860
61
62
4963class ucom4_cpu_device : public cpu_device
5064{
5165public:
r243484r243485
117131   int m_datawidth;
118132   int m_prgmask;
119133   int m_datamask;
120   int m_family;       // MCU family (43/44/45)
121   int m_stack_levels; // number of callstack levels
122   UINT16 m_stack[3+1]; // max 3
134   int m_family;           // MCU family (43/44/45)
135   int m_stack_levels;     // number of callstack levels
136   UINT16 m_stack[3+1];    // max 3
137   UINT8 m_port_out[0x10]; // last value written to output port
123138   UINT8 m_op;
124   UINT8 m_prev_op;    // previous opcode
125   UINT8 m_arg;        // opcode argument for 2-byte opcodes
126   bool m_skip;        // skip next opcode
139   UINT8 m_prev_op;        // previous opcode
140   UINT8 m_arg;            // opcode argument for 2-byte opcodes
141   UINT8 m_bitmask;        // opcode bit argument
142   bool m_skip;            // skip next opcode
127143   int m_icount;
128144   
129   UINT16 m_pc;        // program counter
130   UINT8 m_acc;        // 4-bit accumulator
131   UINT8 m_dpl;        // 4-bit data pointer low (RAM x)
132   UINT8 m_dph;        // 4-bit(?) data pointer high (RAM y)
145   UINT16 m_pc;            // program counter
146   UINT8 m_acc;            // 4-bit accumulator
147   UINT8 m_dpl;            // 4-bit data pointer low (RAM x)
148   UINT8 m_dph;            // 4-bit(?) data pointer high (RAM y)
133149   UINT8 m_dph_mask;
134   UINT8 m_carry_f;    // carry flag
135   UINT8 m_carry_s_f;  // carry save flag
136   UINT8 m_timer_f;    // timer out flag
137   UINT8 m_int_f;      // interrupt flag
138   UINT8 m_inte_f;     // interrupt enable flag
150   UINT8 m_carry_f;        // carry flag
151   UINT8 m_carry_s_f;      // carry save flag
152   UINT8 m_timer_f;        // timer out flag
153   UINT8 m_int_f;          // interrupt flag
154   UINT8 m_inte_f;         // interrupt enable flag
139155
140156   // i/o handlers
141157   devcb_read8 m_read_a;
r243484r243485
156172   void ram_w(UINT8 data);
157173   void pop_stack();
158174   void push_stack();
175   UINT8 input_r(int index);
176   void output_w(int index, UINT8 data);
159177   void op_illegal();
160178   bool check_op_43();
161179
trunk/src/emu/cpu/ucom4/ucom4op.inc
r243484r243485
3131   m_stack[0] = m_pc;
3232}
3333
34UINT8 ucom4_cpu_device::input_r(int index)
35{
36   index &= 0xf;
37   UINT8 inp = 0xf;
38   
39   switch (index)
40   {
41      case NEC_UCOM4_PORTA: inp = m_read_a(index, 0xff); break;
42      case NEC_UCOM4_PORTB: inp = m_read_b(index, 0xff); break;
43      case NEC_UCOM4_PORTC: inp = m_read_c(index, 0xff); break;
44      case NEC_UCOM4_PORTD: inp = m_read_d(index, 0xff); break;
45
46      default:
47         logerror("%s read from unknown port %c at $%03X\n", tag(), 'A' + index, m_pc);
48         break;
49   }
50
51   return inp & 0xf;
52}
53
54void ucom4_cpu_device::output_w(int index, UINT8 data)
55{
56   index &= 0xf;
57   data &= 0xf;
58
59   switch (index)
60   {
61      case NEC_UCOM4_PORTC: m_write_c(index, data, 0xff); break;
62      case NEC_UCOM4_PORTD: m_write_d(index, data, 0xff); break;
63      case NEC_UCOM4_PORTE: m_write_e(index, data, 0xff); break;
64      case NEC_UCOM4_PORTF: m_write_f(index, data, 0xff); break;
65      case NEC_UCOM4_PORTG: m_write_g(index, data, 0xff); break;
66      case NEC_UCOM4_PORTH: m_write_h(index, data, 0xff); break;
67      case NEC_UCOM4_PORTI: m_write_i(index, data & 7, 0xff); break;
68     
69      default:
70         logerror("%s write to unknown port %c = $%X at $%03X\n", tag(), 'A' + index, data & 0xf, m_pc);
71         break;
72   }
73
74   m_port_out[index] = data;
75}
76
3477void ucom4_cpu_device::op_illegal()
3578{
3679   logerror("%s unknown opcode $%02X at $%03X\n", tag(), m_op, m_pc);
r243484r243485
240283void ucom4_cpu_device::op_rmb()
241284{
242285   // RMB B: Reset a single bit of RAM
243   ram_w(ram_r() & ~(1 << (m_op & 0x03)));
286   ram_w(ram_r() & ~m_bitmask);
244287}
245288
246289void ucom4_cpu_device::op_smb()
247290{
248291   // SMB B: Set a single bit of RAM
249   ram_w(ram_r() | (1 << (m_op & 0x03)));
292   ram_w(ram_r() | m_bitmask);
250293}
251294
252295void ucom4_cpu_device::op_reb()
253296{
254297   // REB B: Reset a single bit of output port E
255298   m_icount--;
256   op_illegal();
299   output_w(NEC_UCOM4_PORTE, m_port_out[NEC_UCOM4_PORTE] & ~m_bitmask);
257300}
258301
259302void ucom4_cpu_device::op_seb()
260303{
261304   // SEB B: Set a single bit of output port E
262305   m_icount--;
263   op_illegal();
306   output_w(NEC_UCOM4_PORTE, m_port_out[NEC_UCOM4_PORTE] | m_bitmask);
264307}
265308
266309void ucom4_cpu_device::op_rpb()
267310{
268311   // RPB B: Reset a single bit of output port (DPl)
269   op_illegal();
312   output_w(m_dpl, m_port_out[m_dpl] & ~m_bitmask);
270313}
271314
272315void ucom4_cpu_device::op_spb()
273316{
274317   // SPB B: Set a single bit of output port (DPl)
275   op_illegal();
318   output_w(m_dpl, m_port_out[m_dpl] | m_bitmask);
276319}
277320
278321
r243484r243485
340383void ucom4_cpu_device::op_cmb()
341384{
342385   // CMB B: skip next on bit(ACC) equals bit(RAM)
343   UINT8 mask = 1 << (m_op & 0x03);
344   m_skip = ((m_acc & mask) == (ram_r() & mask));
386   m_skip = ((m_acc & m_bitmask) == (ram_r() & m_bitmask));
345387}
346388
347389void ucom4_cpu_device::op_tab()
348390{
349391   // TAB B: skip next on bit(ACC)
350   m_skip = ((m_acc & (1 << (m_op & 0x03))) != 0);
392   m_skip = ((m_acc & m_bitmask) != 0);
351393}
352394
353395void ucom4_cpu_device::op_cli()
r243484r243485
362404void ucom4_cpu_device::op_tmb()
363405{
364406   // TMB B: skip next on bit(RAM)
365   m_skip = ((ram_r() & (1 << (m_op & 0x03))) != 0);
407   m_skip = ((ram_r() & m_bitmask) != 0);
366408}
367409
368410void ucom4_cpu_device::op_tpa()
369411{
370412   // TPA B: skip next on bit(input port A)
371   op_illegal();
413   m_skip = ((input_r(NEC_UCOM4_PORTA) & m_bitmask) != 0);
372414}
373415
374416void ucom4_cpu_device::op_tpb()
375417{
376418   // TPB B: skip next on bit(input port (DPl))
377   op_illegal();
419   m_skip = ((input_r(m_dpl) & m_bitmask) != 0);
378420}
379421
380422
r243484r243485
392434void ucom4_cpu_device::op_ia()
393435{
394436   // IA: Input port A to ACC
395   op_illegal();
437   m_acc = input_r(NEC_UCOM4_PORTA);
396438}
397439
398440void ucom4_cpu_device::op_ip()
399441{
400442   // IP: Input port (DPl) to ACC
401   op_illegal();
443   m_acc = input_r(m_dpl);
402444}
403445
404446void ucom4_cpu_device::op_oe()
405447{
406448   // OE: Output ACC to port E
407   m_write_e(0, m_acc, 0xff);
449   output_w(NEC_UCOM4_PORTE, m_acc);
408450}
409451
410452void ucom4_cpu_device::op_op()
411453{
412454   // OP: Output ACC to port (DPl)
413   op_illegal();
455   output_w(m_dpl, m_acc);
414456}
415457
416458void ucom4_cpu_device::op_ocd()
417459{
418460   // OCD X: Output X to ports C and D
419   op_illegal();
461   output_w(NEC_UCOM4_PORTD, m_arg >> 4);
462   output_w(NEC_UCOM4_PORTC, m_arg & 0xf);
420463}
421464
422465
trunk/src/emu/machine/wd_fdc.c
r243484r243485
887887   if(!(command & 0x0f)) {
888888      intrq_cond = 0;
889889   } else {
890      intrq_cond = (intrq_cond & I_IMM) | (command & 0x07);
890      intrq_cond = (intrq_cond & I_IMM) | (command & 0x0f);
891891   }
892892
893893   if(intrq_cond & I_IMM) {
trunk/src/mame/drivers/mitchell.c
r243484r243485
14591459   ROM_LOAD( "pko-voi2.3d",  0x20000, 0x20000, CRC(18398bf6) SHA1(9e9ab85383350d01ba597951a48f18ecee1f46c6) )
14601460ROM_END
14611461
1462
14631462ROM_START( pkladiesbl )
14641463   ROM_REGION( 0x50000*2, "maincpu", 0 )
14651464   // you would expect one half of this to be decrypted code, and the other half to be decrypted data
r243484r243485
15191518
15201519ROM_START( pang )
15211520   ROM_REGION( 0x50000, "maincpu", 0 )
1522   ROM_LOAD( "pang6.bin",    0x00000, 0x08000, CRC(68be52cd) SHA1(67b9ac15f4cbd3959c417f979beae36ae17334c1) )
1523   ROM_LOAD( "pang7.bin",    0x10000, 0x20000, CRC(4a2e70f6) SHA1(039db1b51374e5637b5c2ba8e18ccd08816613a7) )
1521   ROM_LOAD( "pwe_06.11h", 0x00000, 0x08000, CRC(68be52cd) SHA1(67b9ac15f4cbd3959c417f979beae36ae17334c1) )
1522   ROM_LOAD( "pwe_07.13h", 0x10000, 0x20000, CRC(4a2e70f6) SHA1(039db1b51374e5637b5c2ba8e18ccd08816613a7) )
15241523
15251524   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1526   ROM_LOAD( "pang_09.bin",  0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */
1527   ROM_LOAD( "bb3.bin",      0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) )
1525   ROM_LOAD( "pwe_02.1e", 0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */
1526   ROM_LOAD( "pw_03.2e",  0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) /* also found as PWJ 03 */
15281527   /* 40000-7ffff empty */
1529   ROM_LOAD( "pang_11.bin",  0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) )
1530   ROM_LOAD( "bb5.bin",      0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) )
1528   ROM_LOAD( "pwe_04.1g", 0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) )
1529   ROM_LOAD( "pw_05.2g",  0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) /* also found as PWJ 05 */
15311530   /* c0000-fffff empty */
15321531
15331532   ROM_REGION( 0x040000, "gfx2", 0 )
1534   ROM_LOAD( "bb10.bin",     0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */
1535   ROM_LOAD( "bb9.bin",      0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) )
1533   ROM_LOAD( "pw_10.2k", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */
1534   ROM_LOAD( "pw_9.1k",  0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) )
15361535
15371536   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1538   ROM_LOAD( "bb1.bin",      0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
1537   ROM_LOAD( "pw_01.1d", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
15391538ROM_END
15401539
1540ROM_START( bbros )
1541   ROM_REGION( 0x50000, "maincpu", 0 )
1542   ROM_LOAD( "pwu_06.11h", 0x00000, 0x08000, CRC(a3041ca4) SHA1(2accb2151f621e4802211efe986969ebd3acb6d4) )
1543   ROM_LOAD( "pwu_07.13h", 0x10000, 0x20000, CRC(09231c68) SHA1(9e735487a99a5eb89a6abb81d5d9a20414ad75bf) )
15411544
1545   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1546   ROM_LOAD( "pwu_02.1e", 0x000000, 0x20000, CRC(62f29992) SHA1(af4d43f76228e9908fbfbf83af2f577b84cc5e1d) ) /* chars */
1547   ROM_LOAD( "pw_03.2e",  0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) )
1548   /* 40000-7ffff empty */
1549   ROM_LOAD( "pwu_04.1g", 0x080000, 0x20000, CRC(f705aa89) SHA1(cce2d90f7b767044e84bc22a16474a2f6496292e) )
1550   ROM_LOAD( "pw_05.2g",  0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) )
1551   /* c0000-fffff empty */
15421552
1553   ROM_REGION( 0x040000, "gfx2", 0 )
1554   ROM_LOAD( "pw_10.2k", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */
1555   ROM_LOAD( "pw_9.1k",  0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) )
1556
1557   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1558   ROM_LOAD( "pw_01.1d", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
1559ROM_END
1560
1561ROM_START( pompingw )
1562   ROM_REGION( 0x50000, "maincpu", 0 )
1563   ROM_LOAD( "pwj_06.11h", 0x00000, 0x08000, CRC(4a0a6426) SHA1(c61346c5f80507bdf543e9ea32ee3f814be8e27f) )
1564   ROM_LOAD( "pwj_07.13h", 0x10000, 0x20000, CRC(a9402420) SHA1(2ca3aa59d561826477e3509fcaeeec753d64d419) )
1565
1566   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1567   ROM_LOAD( "pw_02.1e", 0x000000, 0x20000, CRC(4b5992e4) SHA1(2071a1fcfc739d7ca837c03133909101b462d5a6) ) /* chars */
1568   ROM_LOAD( "pw_03.2e", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) )
1569   /* 40000-7ffff empty */
1570   ROM_LOAD( "pwj_04.1g", 0x080000, 0x20000, CRC(01e49081) SHA1(a29ffec199f196a2b3731e4863e863bdd04e2c58) )
1571   ROM_LOAD( "pw_05.2g",  0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) )
1572   /* c0000-fffff empty */
1573
1574   ROM_REGION( 0x040000, "gfx2", 0 )
1575   ROM_LOAD( "pw_10.2k", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */
1576   ROM_LOAD( "pw_9.1k",  0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) )
1577
1578   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1579   ROM_LOAD( "pw_01.1d", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
1580ROM_END
1581
15431582ROM_START( pangb )
15441583   ROM_REGION( 2*0x50000, "maincpu", 0 )
15451584   ROM_LOAD( "pang_04.bin",  0x50000, 0x08000, CRC(f68f88a5) SHA1(6f57891d399a46d8d5a531771129552ed420d10a) )   /* Decrypted opcode + data */
r243484r243485
15481587   ROM_LOAD( "pang_03.bin",  0x10000, 0x20000, CRC(0c8477ae) SHA1(a31a8c00407dfc3017d56e29fac6114b73248030) )   /* Decrypted data */
15491588
15501589   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1551   ROM_LOAD( "pang_09.bin",  0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */
1590   ROM_LOAD( "bb9.bin",      0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */
15521591   ROM_LOAD( "bb3.bin",      0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) )
15531592   /* 40000-7ffff empty */
1554   ROM_LOAD( "pang_11.bin",  0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) )
1593   ROM_LOAD( "bb11.bin",     0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) )
15551594   ROM_LOAD( "bb5.bin",      0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) )
15561595   /* c0000-fffff empty */
15571596
r243484r243485
15711610   ROM_CONTINUE(0x10000, 0x20000 )   /* Decrypted data */
15721611
15731612   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1574   ROM_LOAD( "pang_09.bin",  0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */
1613   ROM_LOAD( "bb9.bin",      0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */
15751614   ROM_LOAD( "bb3.bin",      0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) )
15761615   /* 40000-7ffff empty */
1577   ROM_LOAD( "pang_11.bin",  0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) )
1616   ROM_LOAD( "bb11.bin",     0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) )
15781617   ROM_LOAD( "bb5.bin",      0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) )
15791618   /* c0000-fffff empty */
15801619
r243484r243485
16541693   ROM_LOAD( "pang.10",    0x010000, 0x10000, CRC(082151ee) SHA1(0857b9f7430e0fc6217eafbaf008ff9da8e7a493) )
16551694ROM_END
16561695
1657
1658ROM_START( bbros )
1659   ROM_REGION( 0x50000, "maincpu", 0 )
1660   ROM_LOAD( "bb6.bin",      0x00000, 0x08000, CRC(a3041ca4) SHA1(2accb2151f621e4802211efe986969ebd3acb6d4) )
1661   ROM_LOAD( "bb7.bin",      0x10000, 0x20000, CRC(09231c68) SHA1(9e735487a99a5eb89a6abb81d5d9a20414ad75bf) )
1662
1663   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1664   ROM_LOAD( "bb2.bin",      0x000000, 0x20000, CRC(62f29992) SHA1(af4d43f76228e9908fbfbf83af2f577b84cc5e1d) ) /* chars */
1665   ROM_LOAD( "bb3.bin",      0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) )
1666   /* 40000-7ffff empty */
1667   ROM_LOAD( "bb4.bin",      0x080000, 0x20000, CRC(f705aa89) SHA1(cce2d90f7b767044e84bc22a16474a2f6496292e) )
1668   ROM_LOAD( "bb5.bin",      0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) )
1669   /* c0000-fffff empty */
1670
1671   ROM_REGION( 0x040000, "gfx2", 0 )
1672   ROM_LOAD( "bb10.bin",     0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */
1673   ROM_LOAD( "bb9.bin",      0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) )
1674
1675   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1676   ROM_LOAD( "bb1.bin",      0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
1677ROM_END
1678
1679ROM_START( pompingw )
1680   ROM_REGION( 0x50000, "maincpu", 0 )
1681   ROM_LOAD( "pwj_06.11h",   0x00000, 0x08000, CRC(4a0a6426) SHA1(c61346c5f80507bdf543e9ea32ee3f814be8e27f) )
1682   ROM_LOAD( "pwj_07.13h",   0x10000, 0x20000, CRC(a9402420) SHA1(2ca3aa59d561826477e3509fcaeeec753d64d419) )
1683
1684   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1685   ROM_LOAD( "pw_02.1e",     0x000000, 0x20000, CRC(4b5992e4) SHA1(2071a1fcfc739d7ca837c03133909101b462d5a6) ) /* chars */
1686   ROM_LOAD( "bb3.bin",      0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) )
1687   /* 40000-7ffff empty */
1688   ROM_LOAD( "pwj_04.1g",    0x080000, 0x20000, CRC(01e49081) SHA1(a29ffec199f196a2b3731e4863e863bdd04e2c58) )
1689   ROM_LOAD( "bb5.bin",      0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) )
1690   /* c0000-fffff empty */
1691
1692   ROM_REGION( 0x040000, "gfx2", 0 )
1693   ROM_LOAD( "bb10.bin",     0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */
1694   ROM_LOAD( "bb9.bin",      0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) )
1695
1696   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1697   ROM_LOAD( "bb1.bin",      0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
1698ROM_END
1699
17001696ROM_START( cworld )
17011697   ROM_REGION( 0x50000, "maincpu", 0 )
17021698   ROM_LOAD( "cw05.bin",     0x00000, 0x08000, CRC(d3c1723d) SHA1(b67f63e39f4301909c967555222820b54e98a205) )
r243484r243485
17451741   ROM_LOAD( "q2-01.rom",    0x00000, 0x20000, CRC(149e7a89) SHA1(103ab075b92c895e9991e7ef23df2b38d6a792c6) )
17461742ROM_END
17471743
1744ROM_START( spang )
1745   ROM_REGION( 0x50000, "maincpu", 0 )
1746   ROM_LOAD( "spe_06.11h", 0x00000, 0x08000, CRC(1af106fb) SHA1(476ba5c95e090663a47d3f98451bf3b79bac7748) )
1747   ROM_LOAD( "spe_07.13h", 0x10000, 0x20000, CRC(208b5f54) SHA1(9d44f7240b56756dcb69d110036b1cb13b1bbc02) )
1748   ROM_LOAD( "spe_08.14h", 0x30000, 0x20000, CRC(2bc03ade) SHA1(3a8ee342b0556a8f6d5a417c98e5c3c43422713d) )
17481749
1750   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1751   ROM_LOAD( "spe_02.1e", 0x000000, 0x20000, CRC(63c9dfd2) SHA1(ddc8ddee336855e857fb3124c8b64af33c2d0080) ) /* chars */
1752   ROM_LOAD( "spj_03.3e", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) )
1753   /* 40000-7ffff empty */
1754   ROM_LOAD( "spe_04.1g", 0x080000, 0x20000, CRC(9d7b225b) SHA1(d949c91da6ba6b82df0b3445499761a98c7e2703) )
1755   ROM_LOAD( "spj_05.2g", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) )
1756   /* c0000-fffff empty */
17491757
1750/* seems to be the same basic hardware, but the memory map and io map are different at least.. */
1751ROM_START( mstworld )
1752   ROM_REGION( 0x50000*2, "maincpu", 0 )   /* CPU1 code */
1753   ROM_LOAD( "mw-1.rom", 0x00000, 0x080000, CRC(c4e51fb4) SHA1(60ad4ff2cec3a4d13b4aa0319dfcdab941404b1a) ) /* fixed code */
1758   ROM_REGION( 0x040000, "gfx2", 0 )
1759   ROM_LOAD( "spj_10.2k", 0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) )   /* sprites */
1760   ROM_LOAD( "spj_09.1k", 0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) )
17541761
1755   ROM_REGION( 0x10000, "audiocpu", 0 )    /* CPU2 code */
1756   ROM_LOAD( "mw-2.rom", 0x00000, 0x08000, CRC(12c4fea9) SHA1(4616f2d70022abcf89f244f3f365b39b96973368) )
1762   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1763   ROM_LOAD( "spe_01.1d",   0x00000, 0x20000, CRC(2d19c133) SHA1(b3ec226f35494dfc259e910895cec8a49dd2f846) )
17571764
1758   ROM_REGION( 0x080000, "user2", 0 )  /* Samples */
1759   ROM_LOAD( "mw-3.rom", 0x00000, 0x080000, CRC(110c6a68) SHA1(915758cd467fbcdfa18ca99df036dca40dfc4649) )
1765   ROM_REGION16_BE( 0x80, "eeprom", 0 )
1766   ROM_LOAD( "eeprom-spang.bin", 0x0000, 0x0080, CRC(deae1291) SHA1(f62f2ad99852903f1cea3f8c1f69fc11e4e7b48b) )
1767ROM_END
17601768
1761   /* $00000-$20000 stays the same in all sound banks, */
1762   /* the second half of the bank is what gets switched */
1763   ROM_REGION( 0x100000, "oki", 0 ) /* Samples */
1764   ROM_COPY( "user2", 0x000000, 0x000000, 0x020000)
1765   ROM_COPY( "user2", 0x000000, 0x020000, 0x020000)
1766   ROM_COPY( "user2", 0x000000, 0x040000, 0x020000)
1767   ROM_COPY( "user2", 0x020000, 0x060000, 0x020000)
1768   ROM_COPY( "user2", 0x000000, 0x080000, 0x020000)
1769   ROM_COPY( "user2", 0x040000, 0x0a0000, 0x020000)
1770   ROM_COPY( "user2", 0x000000, 0x0c0000, 0x020000)
1771   ROM_COPY( "user2", 0x060000, 0x0e0000, 0x020000)
1769ROM_START( sbbros )
1770   ROM_REGION( 0x50000, "maincpu", 0 )
1771   ROM_LOAD( "spu_06.11h", 0x00000, 0x08000, CRC(292eee6a) SHA1(d33368d2373a1ee9e24ada6aa045e0675c8e8160) )
1772   ROM_LOAD( "spu_07.13h", 0x10000, 0x20000, CRC(f46b698d) SHA1(6a1867f591aa0fb9e02dd472699df93f9d018793) )
1773   ROM_LOAD( "spu_08.14h", 0x30000, 0x20000, CRC(a75e7fbe) SHA1(0331d1a3e888678909f3e6d21f97896a5350e585) )
17721774
1773   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) /* GFX */
1774   ROM_LOAD( "mw-4.rom", 0x00000, 0x020000, CRC(28a3af15) SHA1(99547966b2b5e06e097c55bbbb86a1c2809fa98c) )
1775   ROM_LOAD( "mw-5.rom", 0x20000, 0x020000, CRC(ffdf7e9f) SHA1(b7732837cc5606d4a868eeaaff438b1a86bd72d7) )
1776   ROM_LOAD( "mw-6.rom", 0x40000, 0x020000, CRC(1ed773a3) SHA1(0e8517a5c9bed57ecf3bb850152b8c1e1bd3faaa) )
1777   ROM_LOAD( "mw-7.rom", 0x60000, 0x020000, CRC(8eb7525c) SHA1(9c3fa9373803e9534c1ad7063d660abe130f7b49) )
1775   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1776   ROM_LOAD( "spu_02.1e", 0x000000, 0x20000, CRC(0c22ffc6) SHA1(f95b50617ef5cd8cffffacab0b96b4bfe8dd3a1e) ) /* chars */
1777   ROM_LOAD( "spj_03.3e", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) )
1778   /* 40000-7ffff empty */
1779   ROM_LOAD( "spu_04.1g", 0x080000, 0x20000, CRC(bb3dee5b) SHA1(e81875b9d9a56e91daa66375b22a4fa6dcd14faa) )
1780   ROM_LOAD( "spj_05.2g", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) )
1781   /* c0000-fffff empty */
17781782
1779   ROM_REGION( 0x40000, "gfx2", ROMREGION_INVERT ) /* GFX */
1780   ROM_LOAD( "mw-8.rom", 0x00000, 0x020000, CRC(b9b92a3c) SHA1(97191958a539c6f2eacb3956e8371acbaaa43795) )
1781   ROM_LOAD( "mw-9.rom", 0x20000, 0x020000, CRC(75fc3375) SHA1(b2e7551bdbe2b0f1c28f6e912a8efaa5645b2ff5))
1782ROM_END
1783   ROM_REGION( 0x040000, "gfx2", 0 )
1784   ROM_LOAD( "spu_10.2k", 0x000000, 0x20000, CRC(d6675d8f) SHA1(1c65803fcce2305841e74772ae6ffb6e39edf5c6) ) /* sprites */
1785   ROM_LOAD( "spu_09.1k", 0x020000, 0x20000, CRC(8f678bc8) SHA1(66dc7c14cc012ffa9320cd63bc84977fa76ad738) )
17831786
1787   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1788   ROM_LOAD( "spj_01.1d", 0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) )
17841789
1790   ROM_REGION16_BE( 0x80, "eeprom", 0 )
1791   ROM_LOAD( "eeprom-sbbros.bin", 0x0000, 0x0080, CRC(ed69d3cd) SHA1(89eb0ca65ffe30f5cbe6427f767f1f0870c8a990) )
1792ROM_END
17851793
1786ROM_START( spang )
1794ROM_START( spangj )
17871795   ROM_REGION( 0x50000, "maincpu", 0 )
1788   ROM_LOAD( "spe_06.rom",   0x00000, 0x08000, CRC(1af106fb) SHA1(476ba5c95e090663a47d3f98451bf3b79bac7748) )
1789   ROM_LOAD( "spe_07.rom",   0x10000, 0x20000, CRC(208b5f54) SHA1(9d44f7240b56756dcb69d110036b1cb13b1bbc02) )
1790   ROM_LOAD( "spe_08.rom",   0x30000, 0x20000, CRC(2bc03ade) SHA1(3a8ee342b0556a8f6d5a417c98e5c3c43422713d) )
1796   ROM_LOAD( "spj_06.11h", 0x00000, 0x08000, CRC(1a548b0b) SHA1(3aa65028876ab6e176f5b227366e65212c944888) )
1797   ROM_LOAD( "spj_07.13h", 0x10000, 0x20000, CRC(14c2b765) SHA1(af0f965dd13d878bae7850cf8419b26511090579) )
1798   ROM_LOAD( "spj_08.14h", 0x30000, 0x20000, CRC(4be4e5b7) SHA1(6273e8bf5d9f5b100ecda20001808dcf86411d83) )
17911799
17921800   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1793   ROM_LOAD( "spe_02.rom",   0x000000, 0x20000, CRC(63c9dfd2) SHA1(ddc8ddee336855e857fb3124c8b64af33c2d0080) ) /* chars */
1794   ROM_LOAD( "03.f2",        0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) )
1801   ROM_LOAD( "spj_02.1e", 0x000000, 0x20000, CRC(419f69d7) SHA1(e3431b5ce3e687ba9a45cb6e0e0a2dfa3a9e5b29) )  /* chars */
1802   ROM_LOAD( "spj_03.3e", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) )
17951803   /* 40000-7ffff empty */
1796   ROM_LOAD( "spe_04.rom",   0x080000, 0x20000, CRC(9d7b225b) SHA1(d949c91da6ba6b82df0b3445499761a98c7e2703) )
1797   ROM_LOAD( "05.g2",        0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) )
1804   ROM_LOAD( "spj_04.1g", 0x080000, 0x20000, CRC(6870506f) SHA1(13a12c012ea2efb0c8cd9dcfb4b5757ac08ee912) )
1805   ROM_LOAD( "spj_05.2g", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) )
17981806   /* c0000-fffff empty */
17991807
18001808   ROM_REGION( 0x040000, "gfx2", 0 )
1801   ROM_LOAD( "spj10_2k.bin",   0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) )   /* sprites */
1802   ROM_LOAD( "spj09_1k.bin",   0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) )
1809   ROM_LOAD( "spj_10.2k", 0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) )   /* sprites */
1810   ROM_LOAD( "spj_09.1k", 0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) )
18031811
18041812   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1805   ROM_LOAD( "spe_01.rom",   0x00000, 0x20000, CRC(2d19c133) SHA1(b3ec226f35494dfc259e910895cec8a49dd2f846) )
1813   ROM_LOAD( "spj_01.1d", 0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) )
18061814
18071815   ROM_REGION16_BE( 0x80, "eeprom", 0 )
1808   ROM_LOAD( "eeprom-spang.bin", 0x0000, 0x0080, CRC(deae1291) SHA1(f62f2ad99852903f1cea3f8c1f69fc11e4e7b48b) )
1816   ROM_LOAD( "eeprom-spangj.bin", 0x0000, 0x0080, CRC(237c00eb) SHA1(35a7fe793186e148c163adb04433b6a55ee21502) )
18091817ROM_END
18101818
18111819/*
r243484r243485
18701878   ROM_LOAD( "ic125.14",  0x030000, 0x10000, CRC(bd5c2f4b) SHA1(3c71d63637633a98ab513e4336e2954af3f964f4) )
18711879ROM_END
18721880
1881/* seems to be the same basic hardware, but the memory map and io map are different at least.. */
1882ROM_START( mstworld )
1883   ROM_REGION( 0x50000*2, "maincpu", 0 )   /* CPU1 code */
1884   ROM_LOAD( "mw-1.rom", 0x00000, 0x080000, CRC(c4e51fb4) SHA1(60ad4ff2cec3a4d13b4aa0319dfcdab941404b1a) ) /* fixed code */
18731885
1874ROM_START( spangj )
1875   ROM_REGION( 0x50000, "maincpu", 0 )
1876   ROM_LOAD( "spj_11h.bin",    0x00000, 0x08000, CRC(1a548b0b) SHA1(3aa65028876ab6e176f5b227366e65212c944888) )
1877   ROM_LOAD( "spj7_13h.bin",   0x10000, 0x20000, CRC(14c2b765) SHA1(af0f965dd13d878bae7850cf8419b26511090579) )
1878   ROM_LOAD( "spj8_14h.bin",   0x30000, 0x20000, CRC(4be4e5b7) SHA1(6273e8bf5d9f5b100ecda20001808dcf86411d83) )
1886   ROM_REGION( 0x10000, "audiocpu", 0 )    /* CPU2 code */
1887   ROM_LOAD( "mw-2.rom", 0x00000, 0x08000, CRC(12c4fea9) SHA1(4616f2d70022abcf89f244f3f365b39b96973368) )
18791888
1880   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1881   ROM_LOAD( "spj02_1e.bin",   0x000000, 0x20000,  CRC(419f69d7) SHA1(e3431b5ce3e687ba9a45cb6e0e0a2dfa3a9e5b29) )  /* chars */
1882   ROM_LOAD( "03.f2",          0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) )   // spj03_3e.bin
1883   /* 40000-7ffff empty */
1884   ROM_LOAD( "spj04_1g.bin",   0x080000, 0x20000, CRC(6870506f) SHA1(13a12c012ea2efb0c8cd9dcfb4b5757ac08ee912) )
1885   ROM_LOAD( "05.g2",          0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) )   // spj05_2g.bin
1886   /* c0000-fffff empty */
1889   ROM_REGION( 0x080000, "user2", 0 )  /* Samples */
1890   ROM_LOAD( "mw-3.rom", 0x00000, 0x080000, CRC(110c6a68) SHA1(915758cd467fbcdfa18ca99df036dca40dfc4649) )
18871891
1888   ROM_REGION( 0x040000, "gfx2", 0 )
1889   ROM_LOAD( "spj10_2k.bin",   0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) )   /* sprites */
1890   ROM_LOAD( "spj09_1k.bin",   0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) )
1892   /* $00000-$20000 stays the same in all sound banks, */
1893   /* the second half of the bank is what gets switched */
1894   ROM_REGION( 0x100000, "oki", 0 ) /* Samples */
1895   ROM_COPY( "user2", 0x000000, 0x000000, 0x020000)
1896   ROM_COPY( "user2", 0x000000, 0x020000, 0x020000)
1897   ROM_COPY( "user2", 0x000000, 0x040000, 0x020000)
1898   ROM_COPY( "user2", 0x020000, 0x060000, 0x020000)
1899   ROM_COPY( "user2", 0x000000, 0x080000, 0x020000)
1900   ROM_COPY( "user2", 0x040000, 0x0a0000, 0x020000)
1901   ROM_COPY( "user2", 0x000000, 0x0c0000, 0x020000)
1902   ROM_COPY( "user2", 0x060000, 0x0e0000, 0x020000)
18911903
1892   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1893   ROM_LOAD( "01.d1",          0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) )    // spj01_1d.bin
1904   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) /* GFX */
1905   ROM_LOAD( "mw-4.rom", 0x00000, 0x020000, CRC(28a3af15) SHA1(99547966b2b5e06e097c55bbbb86a1c2809fa98c) )
1906   ROM_LOAD( "mw-5.rom", 0x20000, 0x020000, CRC(ffdf7e9f) SHA1(b7732837cc5606d4a868eeaaff438b1a86bd72d7) )
1907   ROM_LOAD( "mw-6.rom", 0x40000, 0x020000, CRC(1ed773a3) SHA1(0e8517a5c9bed57ecf3bb850152b8c1e1bd3faaa) )
1908   ROM_LOAD( "mw-7.rom", 0x60000, 0x020000, CRC(8eb7525c) SHA1(9c3fa9373803e9534c1ad7063d660abe130f7b49) )
18941909
1895   ROM_REGION16_BE( 0x80, "eeprom", 0 )
1896   ROM_LOAD( "eeprom-spangj.bin", 0x0000, 0x0080, CRC(237c00eb) SHA1(35a7fe793186e148c163adb04433b6a55ee21502) )
1910   ROM_REGION( 0x40000, "gfx2", ROMREGION_INVERT ) /* GFX */
1911   ROM_LOAD( "mw-8.rom", 0x00000, 0x020000, CRC(b9b92a3c) SHA1(97191958a539c6f2eacb3956e8371acbaaa43795) )
1912   ROM_LOAD( "mw-9.rom", 0x20000, 0x020000, CRC(75fc3375) SHA1(b2e7551bdbe2b0f1c28f6e912a8efaa5645b2ff5))
18971913ROM_END
18981914
1899ROM_START( sbbros )
1900   ROM_REGION( 0x50000, "maincpu", 0 )
1901   ROM_LOAD( "06.j12",       0x00000, 0x08000, CRC(292eee6a) SHA1(d33368d2373a1ee9e24ada6aa045e0675c8e8160) )
1902   ROM_LOAD( "07.j13",       0x10000, 0x20000, CRC(f46b698d) SHA1(6a1867f591aa0fb9e02dd472699df93f9d018793) )
1903   ROM_LOAD( "08.j14",       0x30000, 0x20000, CRC(a75e7fbe) SHA1(0331d1a3e888678909f3e6d21f97896a5350e585) )
1904
1905   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF )
1906   ROM_LOAD( "02.f1",        0x000000, 0x20000, CRC(0c22ffc6) SHA1(f95b50617ef5cd8cffffacab0b96b4bfe8dd3a1e) ) /* chars */
1907   ROM_LOAD( "03.f2",        0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) )
1908   /* 40000-7ffff empty */
1909   ROM_LOAD( "04.g2",        0x080000, 0x20000, CRC(bb3dee5b) SHA1(e81875b9d9a56e91daa66375b22a4fa6dcd14faa) )
1910   ROM_LOAD( "05.g2",        0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) )
1911   /* c0000-fffff empty */
1912
1913   ROM_REGION( 0x040000, "gfx2", 0 )
1914   ROM_LOAD( "10.l2",        0x000000, 0x20000, CRC(d6675d8f) SHA1(1c65803fcce2305841e74772ae6ffb6e39edf5c6) ) /* sprites */
1915   ROM_LOAD( "09.l1",        0x020000, 0x20000, CRC(8f678bc8) SHA1(66dc7c14cc012ffa9320cd63bc84977fa76ad738) )
1916
1917   ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
1918   ROM_LOAD( "01.d1",        0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) )
1919
1920   ROM_REGION16_BE( 0x80, "eeprom", 0 )
1921   ROM_LOAD( "eeprom-sbbros.bin", 0x0000, 0x0080, CRC(ed69d3cd) SHA1(89eb0ca65ffe30f5cbe6427f767f1f0870c8a990) )
1922ROM_END
1923
19241915ROM_START( marukin )
19251916   ROM_REGION( 0x50000, "maincpu", 0 )
19261917   ROM_LOAD( "mg3-01.9d",    0x00000, 0x08000, CRC(04357973) SHA1(61b0b347479126213c90ef6833c09537fab03093) )
r243484r243485
19881979   ROM_LOAD( "q4-01.rom",    0x00000, 0x20000, CRC(5d0d07d8) SHA1(d36e42852dd1ec0955d19b16e7dfe157b3d48522) )
19891980ROM_END
19901981
1991
19921982ROM_START( block )
19931983   ROM_REGION( 0x50000, "maincpu", 0 )
19941984   ROM_LOAD( "ble_05.rom",   0x00000, 0x08000, CRC(c12e7f4c) SHA1(335f4eab2323b942d5feeb3bab6f7286fabfffb4) )
r243484r243485
22892279GAME( 1989, pkladiesbl,pkladies, pkladiesbl,pkladies, mitchell_state,pkladiesbl,ROT0, "bootleg", "Poker Ladies (Censored bootleg)", GAME_NOT_WORKING ) // by Playmark? need to figure out CPU 'decryption' / ordering
22902280GAME( 1989, dokaben,   0,        pang,    pang, mitchell_state,     dokaben,  ROT0,   "Capcom", "Dokaben (Japan)", GAME_SUPPORTS_SAVE )
22912281GAME( 1989, pang,      0,        pang,    pang, mitchell_state,     pang,     ROT0,   "Mitchell", "Pang (World)", GAME_SUPPORTS_SAVE )
2282GAME( 1989, bbros,     pang,     pang,    pang, mitchell_state,     pang,     ROT0,   "Mitchell (Capcom license)", "Buster Bros. (USA)", GAME_SUPPORTS_SAVE )
2283GAME( 1989, pompingw,  pang,     pang,    pang, mitchell_state,     pang,     ROT0,   "Mitchell", "Pomping World (Japan)", GAME_SUPPORTS_SAVE )
22922284GAME( 1989, pangb,     pang,     pang,    pang, mitchell_state,     pangb,    ROT0,   "bootleg", "Pang (bootleg, set 1)", GAME_SUPPORTS_SAVE )
22932285GAME( 1989, pangbold,  pang,     pang,    pang, mitchell_state,     pangb,    ROT0,   "bootleg", "Pang (bootleg, set 2)", GAME_SUPPORTS_SAVE )
22942286GAME( 1989, pangba,    pang,     spangbl, pang, mitchell_state,     pangb,    ROT0,   "bootleg", "Pang (bootleg, set 3)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
22952287GAME( 1989, pangb2,    pang,     pang,    pang, mitchell_state,     pangb,    ROT0,   "bootleg", "Pang (bootleg, set 4)", GAME_SUPPORTS_SAVE )
2296GAME( 1989, bbros,     pang,     pang,    pang, mitchell_state,     pang,     ROT0,   "Mitchell (Capcom license)", "Buster Bros. (USA)", GAME_SUPPORTS_SAVE )
2297GAME( 1989, pompingw,  pang,     pang,    pang, mitchell_state,     pang,     ROT0,   "Mitchell", "Pomping World (Japan)", GAME_SUPPORTS_SAVE )
22982288GAME( 1989, cworld,    0,        pang,    qtono1, mitchell_state,   cworld,   ROT0,   "Capcom", "Capcom World (Japan)", GAME_SUPPORTS_SAVE )
22992289GAME( 1990, hatena,    0,        pang,    qtono1, mitchell_state,   hatena,   ROT0,   "Capcom", "Adventure Quiz 2 - Hatena? no Daibouken (Japan 900228)", GAME_SUPPORTS_SAVE )
23002290GAME( 1990, spang,     0,        pangnv,  pang, mitchell_state,     spang,    ROT0,   "Mitchell", "Super Pang (World 900914)", GAME_SUPPORTS_SAVE )
2291GAME( 1990, sbbros,    spang,    pangnv,  pang, mitchell_state,     sbbros,   ROT0,   "Mitchell (Capcom license)", "Super Buster Bros. (USA 901001)", GAME_SUPPORTS_SAVE )
23012292GAME( 1990, spangj,    spang,    pangnv,  pang, mitchell_state,     spangj,   ROT0,   "Mitchell", "Super Pang (Japan 901023)", GAME_SUPPORTS_SAVE )
23022293GAME( 1990, spangbl,   spang,    spangbl, spangbl, mitchell_state,  spangbl,  ROT0,   "bootleg", "Super Pang (World 900914, bootleg)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // different sound hardware
23032294GAME( 1994, mstworld,  0,        mstworld,mstworld, mitchell_state, mstworld, ROT0,   "bootleg (TCH)", "Monsters World (bootleg of Super Pang)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
2304GAME( 1990, sbbros,    spang,    pangnv,  pang, mitchell_state,     sbbros,   ROT0,   "Mitchell (Capcom license)", "Super Buster Bros. (USA 901001)", GAME_SUPPORTS_SAVE )
23052295GAME( 1990, marukin,   0,        marukin, marukin, mitchell_state,  marukin,  ROT0,   "Yuga", "Super Marukin-Ban (Japan 901017)", GAME_SUPPORTS_SAVE )
23062296GAME( 1991, qtono1,    0,        pang,    qtono1, mitchell_state,   qtono1,   ROT0,   "Capcom", "Quiz Tonosama no Yabou (Japan)", GAME_SUPPORTS_SAVE )
23072297GAME( 1991, qsangoku,  0,        pang,    qtono1, mitchell_state,   qsangoku, ROT0,   "Capcom", "Quiz Sangokushi (Japan)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/rabbit.c
r243484r243485
9696
9797   rabbit_state(const machine_config &mconfig, device_type type, const char *tag)
9898      : driver_device(mconfig, type, tag),
99      m_maincpu(*this, "maincpu"),
100      m_eeprom(*this, "eeprom"),
101      m_gfxdecode(*this, "gfxdecode"),
102      m_palette(*this, "palette"),
99103      m_viewregs0(*this, "viewregs0"),
100104      m_viewregs6(*this, "viewregs6"),
101105      m_viewregs7(*this, "viewregs7"),
r243484r243485
104108      m_tilemap_regs(*this, "tilemap_regs"),
105109      m_spriteregs(*this, "spriteregs"),
106110      m_blitterregs(*this, "blitterregs"),
107      m_spriteram(*this, "spriteram"),
108      m_maincpu(*this, "maincpu"),
109      m_eeprom(*this, "eeprom"),
110      m_gfxdecode(*this, "gfxdecode"),
111      m_palette(*this, "palette") { }
111      m_spriteram(*this, "spriteram") { }
112112
113   required_device<cpu_device> m_maincpu;
114   required_device<eeprom_serial_93cxx_device> m_eeprom;
115   required_device<gfxdecode_device> m_gfxdecode;
116   required_device<palette_device> m_palette;
117   
113118   required_shared_ptr<UINT32> m_viewregs0;
114119   required_shared_ptr<UINT32> m_viewregs6;
115120   required_shared_ptr<UINT32> m_viewregs7;
r243484r243485
118123   required_shared_ptr_array<UINT32, 4> m_tilemap_regs;
119124   required_shared_ptr<UINT32> m_spriteregs;
120125   required_shared_ptr<UINT32> m_blitterregs;
126   required_shared_ptr<UINT32> m_spriteram;
127   
121128   bitmap_ind16 *m_sprite_bitmap;
122129   rectangle m_sprite_clip;
123130   int m_vblirqlevel;
124131   int m_bltirqlevel;
125132   int m_banking;
126133   UINT32 *m_tilemap_ram[4];
127   required_shared_ptr<UINT32> m_spriteram;
128134   tilemap_t *m_tilemap[4];
129   DECLARE_WRITE32_MEMBER(rabbit_tilemap0_w);
130   DECLARE_WRITE32_MEMBER(rabbit_tilemap1_w);
131   DECLARE_WRITE32_MEMBER(rabbit_tilemap2_w);
132   DECLARE_WRITE32_MEMBER(rabbit_tilemap3_w);
133   DECLARE_READ32_MEMBER(rabbit_tilemap0_r);
134   DECLARE_READ32_MEMBER(rabbit_tilemap1_r);
135   DECLARE_READ32_MEMBER(rabbit_tilemap2_r);
136   DECLARE_READ32_MEMBER(rabbit_tilemap3_r);
135   
136   DECLARE_WRITE32_MEMBER(tilemap0_w);
137   DECLARE_WRITE32_MEMBER(tilemap1_w);
138   DECLARE_WRITE32_MEMBER(tilemap2_w);
139   DECLARE_WRITE32_MEMBER(tilemap3_w);
140   DECLARE_READ32_MEMBER(tilemap0_r);
141   DECLARE_READ32_MEMBER(tilemap1_r);
142   DECLARE_READ32_MEMBER(tilemap2_r);
143   DECLARE_READ32_MEMBER(tilemap3_r);
137144   DECLARE_READ32_MEMBER(randomrabbits);
138   DECLARE_WRITE32_MEMBER(rabbit_rombank_w);
139   DECLARE_WRITE32_MEMBER(rabbit_blitter_w);
140   DECLARE_WRITE32_MEMBER(rabbit_eeprom_write);
145   DECLARE_WRITE32_MEMBER(rombank_w);
146   DECLARE_WRITE32_MEMBER(blitter_w);
147   DECLARE_WRITE32_MEMBER(eeprom_write);
148   
141149   DECLARE_DRIVER_INIT(rabbit);
142   TILE_GET_INFO_MEMBER(get_rabbit_tilemap0_tile_info);
143   TILE_GET_INFO_MEMBER(get_rabbit_tilemap1_tile_info);
144   TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info);
145   TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info);
150   
151   TILE_GET_INFO_MEMBER(get_tilemap0_tile_info);
152   TILE_GET_INFO_MEMBER(get_tilemap1_tile_info);
153   TILE_GET_INFO_MEMBER(get_tilemap2_tile_info);
154   TILE_GET_INFO_MEMBER(get_tilemap3_tile_info);
155   
156   INTERRUPT_GEN_MEMBER(vblank_interrupt);
157   
146158   virtual void video_start();
147   UINT32 screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
148   INTERRUPT_GEN_MEMBER(rabbit_vblank_interrupt);
149   inline void get_rabbit_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize);
159   
160   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
161   inline void get_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize);
150162   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
151   void rabbit_clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect );
163   void clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect );
152164   void draw_sprite_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect );
153   void rabbit_drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap );
154   void rabbit_do_blit();
155   required_device<cpu_device> m_maincpu;
156   required_device<eeprom_serial_93cxx_device> m_eeprom;
157   required_device<gfxdecode_device> m_gfxdecode;
158   required_device<palette_device> m_palette;
165   void drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap );
166   void do_blit();
167
159168protected:
160169   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
161170};
162171
163172
164173/* call with tilesize = 0 for 8x8 or 1 for 16x16 */
165void rabbit_state::get_rabbit_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize)
174void rabbit_state::get_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize)
166175{
167176   /* fedcba98 76543210 fedcba98 76543210
168177      x                                    color mask? how exactly does it relate to color bits?
r243484r243485
222231   }
223232}
224233
225TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap0_tile_info)
234TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap0_tile_info)
226235{
227   get_rabbit_tilemap_info(tileinfo,tile_index,0,1);
236   get_tilemap_info(tileinfo,tile_index,0,1);
228237}
229238
230TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap1_tile_info)
239TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap1_tile_info)
231240{
232   get_rabbit_tilemap_info(tileinfo,tile_index,1,1);
241   get_tilemap_info(tileinfo,tile_index,1,1);
233242}
234243
235TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap2_tile_info)
244TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap2_tile_info)
236245{
237   get_rabbit_tilemap_info(tileinfo,tile_index,2,1);
246   get_tilemap_info(tileinfo,tile_index,2,1);
238247}
239248
240TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap3_tile_info)
249TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap3_tile_info)
241250{
242   get_rabbit_tilemap_info(tileinfo,tile_index,3,0);
251   get_tilemap_info(tileinfo,tile_index,3,0);
243252}
244253
245WRITE32_MEMBER(rabbit_state::rabbit_tilemap0_w)
254WRITE32_MEMBER(rabbit_state::tilemap0_w)
246255{
247256   COMBINE_DATA(&m_tilemap_ram[0][offset]);
248257   m_tilemap[0]->mark_tile_dirty(offset);
249258}
250259
251WRITE32_MEMBER(rabbit_state::rabbit_tilemap1_w)
260WRITE32_MEMBER(rabbit_state::tilemap1_w)
252261{
253262   COMBINE_DATA(&m_tilemap_ram[1][offset]);
254263   m_tilemap[1]->mark_tile_dirty(offset);
255264}
256265
257WRITE32_MEMBER(rabbit_state::rabbit_tilemap2_w)
266WRITE32_MEMBER(rabbit_state::tilemap2_w)
258267{
259268   COMBINE_DATA(&m_tilemap_ram[2][offset]);
260269   m_tilemap[2]->mark_tile_dirty(offset);
261270}
262271
263272
264WRITE32_MEMBER(rabbit_state::rabbit_tilemap3_w)
273WRITE32_MEMBER(rabbit_state::tilemap3_w)
265274{
266275   COMBINE_DATA(&m_tilemap_ram[3][offset]);
267276   m_tilemap[3]->mark_tile_dirty(offset);
r243484r243485
323332}
324333
325334/* the sprite bitmap can probably be handled better than this ... */
326void rabbit_state::rabbit_clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect )
335void rabbit_state::clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect )
327336{
328337   int startx, starty;
329338   int y;
r243484r243485
411420   m_tilemap_ram[2] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4);
412421   m_tilemap_ram[3] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4);
413422
414   m_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
415   m_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
416   m_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
417   m_tilemap[3] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap3_tile_info),this),TILEMAP_SCAN_ROWS, 8,  8, 128,32);
423   m_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
424   m_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
425   m_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
426   m_tilemap[3] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap3_tile_info),this),TILEMAP_SCAN_ROWS, 8,  8, 128,32);
418427
419428   /* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */
420429   m_tilemap[0]->map_pen_to_layer(0, 15,  TILEMAP_PIXEL_TRANSPARENT);
r243484r243485
428437
429438   m_sprite_bitmap = auto_bitmap_ind16_alloc(machine(),0x1000,0x1000);
430439   m_sprite_clip.set(0, 0x1000-1, 0, 0x1000-1);
440   
441   save_pointer(NAME(m_tilemap_ram[0]), 0x20000/4);
442   save_pointer(NAME(m_tilemap_ram[1]), 0x20000/4);
443   save_pointer(NAME(m_tilemap_ram[2]), 0x20000/4);
444   save_pointer(NAME(m_tilemap_ram[3]), 0x20000/4);
431445}
432446
433447/*
r243484r243485
452466
453467*/
454468
455void rabbit_state::rabbit_drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap )
469void rabbit_state::drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap )
456470{
457471   INT32 startx, starty, incxx, incxy, incyx, incyy, tran;
458472
r243484r243485
475489         tran ? 0 : TILEMAP_DRAW_OPAQUE,0);
476490}
477491
478UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
492UINT32 rabbit_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
479493{
480494   int prilevel;
481495
r243484r243485
497511   /* prio isnt certain but seems to work.. */
498512   for (prilevel = 0xf; prilevel >0; prilevel--)
499513   {
500      if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 3);
501      if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 2);
502      if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 1);
503      if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 0);
514      if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 3);
515      if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 2);
516      if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 1);
517      if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 0);
504518
505519      if (prilevel == 0x09) // should it be selectable?
506520      {
507         rabbit_clearspritebitmap(bitmap,cliprect);
521         clearspritebitmap(bitmap,cliprect);
508522         draw_sprites(bitmap,cliprect);  // render to bitmap
509523         draw_sprite_bitmap(bitmap,cliprect); // copy bitmap to screen
510524      }
r243484r243485
515529
516530
517531
518READ32_MEMBER(rabbit_state::rabbit_tilemap0_r)
532READ32_MEMBER(rabbit_state::tilemap0_r)
519533{
520534   return m_tilemap_ram[0][offset];
521535}
522536
523READ32_MEMBER(rabbit_state::rabbit_tilemap1_r)
537READ32_MEMBER(rabbit_state::tilemap1_r)
524538{
525539   return m_tilemap_ram[1][offset];
526540}
527541
528READ32_MEMBER(rabbit_state::rabbit_tilemap2_r)
542READ32_MEMBER(rabbit_state::tilemap2_r)
529543{
530544   return m_tilemap_ram[2][offset];
531545}
532546
533READ32_MEMBER(rabbit_state::rabbit_tilemap3_r)
547READ32_MEMBER(rabbit_state::tilemap3_r)
534548{
535549   return m_tilemap_ram[3][offset];
536550}
r243484r243485
541555}
542556
543557/* rom bank is used when testing roms, not currently hooked up */
544WRITE32_MEMBER(rabbit_state::rabbit_rombank_w)
558WRITE32_MEMBER(rabbit_state::rombank_w)
545559{
546560   UINT8 *dataroms = memregion("gfx1")->base();
547561#if 0
r243484r243485
572586   }
573587}
574588
575void rabbit_state::rabbit_do_blit()
589void rabbit_state::do_blit()
576590{
577591   UINT8 *blt_data = memregion("gfx1")->base();
578592   int blt_source = (m_blitterregs[0]&0x000fffff)>>0;
r243484r243485
667681
668682
669683
670WRITE32_MEMBER(rabbit_state::rabbit_blitter_w)
684WRITE32_MEMBER(rabbit_state::blitter_w)
671685{
672686   COMBINE_DATA(&m_blitterregs[offset]);
673687
674688   if (offset == 0x0c/4)
675689   {
676      rabbit_do_blit();
690      do_blit();
677691   }
678692}
679693
680WRITE32_MEMBER(rabbit_state::rabbit_eeprom_write)
694WRITE32_MEMBER(rabbit_state::eeprom_write)
681695{
682696   // don't disturb the EEPROM if we're not actually writing to it
683697   // (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog)
r243484r243485
700714   AM_RANGE(0x000010, 0x000013) AM_WRITENOP // bug in code / emulation?
701715   AM_RANGE(0x000024, 0x000027) AM_WRITENOP // bug in code / emulation?
702716   AM_RANGE(0x00719c, 0x00719f) AM_WRITENOP // bug in code / emulation?
703   AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS") AM_WRITE(rabbit_eeprom_write)
717   AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS") AM_WRITE(eeprom_write)
704718   AM_RANGE(0x400010, 0x400013) AM_READ(randomrabbits) // gfx chip status?
705719   /* this lot are probably gfxchip/blitter etc. related */
706720   AM_RANGE(0x400010, 0x400013) AM_WRITEONLY AM_SHARE("viewregs0" )
r243484r243485
709723   AM_RANGE(0x400140, 0x400157) AM_WRITEONLY AM_SHARE("tilemap_regs.2" ) // tilemap regs3
710724   AM_RANGE(0x400160, 0x400177) AM_WRITEONLY AM_SHARE("tilemap_regs.3" ) // tilemap regs4
711725   AM_RANGE(0x400200, 0x40021b) AM_WRITEONLY AM_SHARE("spriteregs" ) // sprregs?
712   AM_RANGE(0x400300, 0x400303) AM_WRITE(rabbit_rombank_w) // used during rom testing, rombank/area select + something else?
726   AM_RANGE(0x400300, 0x400303) AM_WRITE(rombank_w) // used during rom testing, rombank/area select + something else?
713727   AM_RANGE(0x400400, 0x400413) AM_WRITEONLY AM_SHARE("viewregs6" ) // some global controls? (brightness etc.?)
714728   AM_RANGE(0x400500, 0x400503) AM_WRITEONLY AM_SHARE("viewregs7" )
715   AM_RANGE(0x400700, 0x40070f) AM_WRITE(rabbit_blitter_w) AM_SHARE("blitterregs" )
729   AM_RANGE(0x400700, 0x40070f) AM_WRITE(blitter_w) AM_SHARE("blitterregs" )
716730   AM_RANGE(0x400800, 0x40080f) AM_WRITEONLY AM_SHARE("viewregs9" ) // never changes?
717731   AM_RANGE(0x400900, 0x4009ff) AM_DEVREADWRITE16("i5000snd", i5000snd_device, read, write, 0xffffffff)
718732   /* hmm */
r243484r243485
720734
721735   AM_RANGE(0x440000, 0x47ffff) AM_ROMBANK("bank1") // data (gfx / sound) rom readback for ROM testing
722736   /* tilemaps */
723   AM_RANGE(0x480000, 0x483fff) AM_READWRITE(rabbit_tilemap0_r,rabbit_tilemap0_w)
724   AM_RANGE(0x484000, 0x487fff) AM_READWRITE(rabbit_tilemap1_r,rabbit_tilemap1_w)
725   AM_RANGE(0x488000, 0x48bfff) AM_READWRITE(rabbit_tilemap2_r,rabbit_tilemap2_w)
726   AM_RANGE(0x48c000, 0x48ffff) AM_READWRITE(rabbit_tilemap3_r,rabbit_tilemap3_w)
737   AM_RANGE(0x480000, 0x483fff) AM_READWRITE(tilemap0_r,tilemap0_w)
738   AM_RANGE(0x484000, 0x487fff) AM_READWRITE(tilemap1_r,tilemap1_w)
739   AM_RANGE(0x488000, 0x48bfff) AM_READWRITE(tilemap2_r,tilemap2_w)
740   AM_RANGE(0x48c000, 0x48ffff) AM_READWRITE(tilemap3_r,tilemap3_w)
727741   AM_RANGE(0x494000, 0x497fff) AM_RAM AM_SHARE("spriteram") // sprites?
728742   AM_RANGE(0x4a0000, 0x4affff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
729743   AM_RANGE(0xff0000, 0xffffff) AM_RAM
r243484r243485
761775INPUT_PORTS_END
762776
763777
764static const gfx_layout rabbit_sprite_8x8x4_layout =
778static const gfx_layout sprite_8x8x4_layout =
765779{
766780   8,8,
767781   RGN_FRAC(1,1),
r243484r243485
772786   8*32
773787};
774788
775static const gfx_layout rabbit_sprite_8x8x8_layout =
789static const gfx_layout sprite_8x8x8_layout =
776790{
777791   8,8,
778792   RGN_FRAC(1,1),
r243484r243485
785799
786800
787801
788static const gfx_layout rabbit_sprite_16x16x4_layout =
802static const gfx_layout sprite_16x16x4_layout =
789803{
790804   16,16,
791805   RGN_FRAC(1,2),
r243484r243485
796810   16*32
797811};
798812
799static const gfx_layout rabbit_sprite_16x16x8_layout =
813static const gfx_layout sprite_16x16x8_layout =
800814{
801815   16,16,
802816   RGN_FRAC(1,2),
r243484r243485
807821   16*64
808822};
809823
810static const gfx_layout rabbit_8x8x4_layout =
824static const gfx_layout _8x8x4_layout =
811825{
812826   8,8,
813827   RGN_FRAC(1,1),
r243484r243485
818832   8*32
819833};
820834
821static const gfx_layout rabbit_16x16x4_layout =
835static const gfx_layout _16x16x4_layout =
822836{
823837   16,16,
824838   RGN_FRAC(1,1),
r243484r243485
829843   16*64
830844};
831845
832static const gfx_layout rabbit_8x8x8_layout =
846static const gfx_layout _8x8x8_layout =
833847{
834848   8,8,
835849   RGN_FRAC(1,1),
r243484r243485
840854   8*64
841855};
842856
843static const gfx_layout rabbit_16x16x8_layout =
857static const gfx_layout _16x16x8_layout =
844858{
845859   16,16,
846860   RGN_FRAC(1,1),
r243484r243485
855869
856870static GFXDECODE_START( rabbit )
857871   /* this seems to be sprites */
858   GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_8x8x4_layout,   0x0, 0x1000  )
859   GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x4_layout, 0x0, 0x1000  )
860   GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_8x8x8_layout,   0x0, 0x1000  ) // wrong
861   GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x8_layout, 0x0, 0x1000  ) // wrong
872   GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x4_layout,   0x0, 0x1000  )
873   GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x4_layout, 0x0, 0x1000  )
874   GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x8_layout,   0x0, 0x1000  ) // wrong
875   GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x8_layout, 0x0, 0x1000  ) // wrong
862876
863877   /* this seems to be backgrounds and tilemap gfx */
864   GFXDECODE_ENTRY( "gfx2", 0, rabbit_8x8x4_layout,   0x0, 0x1000  )
865   GFXDECODE_ENTRY( "gfx2", 0, rabbit_16x16x4_layout, 0x0, 0x1000  )
866   GFXDECODE_ENTRY( "gfx2", 0, rabbit_8x8x8_layout,   0x0, 0x1000  )
867   GFXDECODE_ENTRY( "gfx2", 0, rabbit_16x16x8_layout, 0x0, 0x1000  )
878   GFXDECODE_ENTRY( "gfx2", 0, _8x8x4_layout,   0x0, 0x1000  )
879   GFXDECODE_ENTRY( "gfx2", 0, _16x16x4_layout, 0x0, 0x1000  )
880   GFXDECODE_ENTRY( "gfx2", 0, _8x8x8_layout,   0x0, 0x1000  )
881   GFXDECODE_ENTRY( "gfx2", 0, _16x16x8_layout, 0x0, 0x1000  )
868882
869883GFXDECODE_END
870884
r243484r243485
875889
876890  */
877891
878INTERRUPT_GEN_MEMBER(rabbit_state::rabbit_vblank_interrupt)
892INTERRUPT_GEN_MEMBER(rabbit_state::vblank_interrupt)
879893{
880894   m_maincpu->set_input_line(m_vblirqlevel, HOLD_LINE);
881895}
r243484r243485
883897static MACHINE_CONFIG_START( rabbit, rabbit_state )
884898   MCFG_CPU_ADD("maincpu", M68EC020, XTAL_24MHz)
885899   MCFG_CPU_PROGRAM_MAP(rabbit_map)
886   MCFG_CPU_VBLANK_INT_DRIVER("screen", rabbit_state,  rabbit_vblank_interrupt)
900   MCFG_CPU_VBLANK_INT_DRIVER("screen", rabbit_state,  vblank_interrupt)
887901
888902   MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
889903
r243484r243485
896910   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
897911//  MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*16, 64*16-1)
898912//  MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1)
899   MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update_rabbit)
913   MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update)
900914   MCFG_SCREEN_PALETTE("palette")
901915
902916   MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x4000)
r243484r243485
966980ROM_END
967981
968982
969GAME( 1997, rabbit,        0, rabbit,  rabbit, rabbit_state,  rabbit,  ROT0, "Aorn / Electronic Arts", "Rabbit (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // somewhat playable
983GAME( 1997, rabbit,        0, rabbit,  rabbit, rabbit_state,  rabbit,  ROT0, "Aorn / Electronic Arts", "Rabbit (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // somewhat playable
trunk/src/mame/drivers/segas32.c
r243484r243485
32783278*/
32793279ROM_START( harddunk )
32803280   ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */
3281   ROM_LOAD32_WORD_x2( "epr-16512.37", 0x000000, 0x40000, CRC(1a7de085) SHA1(2e0dac1f7715089b7f6b1035c859ffe2d674932f) )
3282   /* the following is the same as 16509.40 but with a different name, unusual for Sega */
3283   ROM_LOAD32_WORD_x2( "epr-16513.40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) )
3281   ROM_LOAD32_WORD_x2( "epr-16512.ic37", 0x000000, 0x40000, CRC(1a7de085) SHA1(2e0dac1f7715089b7f6b1035c859ffe2d674932f) )
3282   /* the following is the same as 16509.ic40 but with a different name, unusual for Sega */
3283   ROM_LOAD32_WORD_x2( "epr-16513.ic40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) )
32843284
32853285   ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */
3286   ROM_LOAD_x4( "epr-16505", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) )
3286   ROM_LOAD_x4( "epr-16505.ic31", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) )
32873287
32883288   ROM_REGION( 0x100000, "gfx1", 0 ) /* tiles */
3289   ROM_LOAD16_BYTE( "mpr-16503", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) )
3290   ROM_LOAD16_BYTE( "mpr-16504", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) )
3289   ROM_LOAD16_BYTE( "mpr-16503.ic3", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) )
3290   ROM_LOAD16_BYTE( "mpr-16504.ic11", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) )
32913291
32923292   ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */
3293   ROMX_LOAD( "mpr-16495", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD )
3294   ROMX_LOAD( "mpr-16497", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD )
3295   ROMX_LOAD( "mpr-16499", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD )
3296   ROMX_LOAD( "mpr-16501", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD )
3297   ROMX_LOAD( "mpr-16496", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD )
3298   ROMX_LOAD( "mpr-16498", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD )
3299   ROMX_LOAD( "mpr-16500", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD )
3300   ROMX_LOAD( "mpr-16502", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD )
3293   ROMX_LOAD( "mpr-16495.ic14", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD )
3294   ROMX_LOAD( "mpr-16497.ic15", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD )
3295   ROMX_LOAD( "mpr-16499.ic10", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD )
3296   ROMX_LOAD( "mpr-16501.ic38", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD )
3297   ROMX_LOAD( "mpr-16496.ic22", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD )
3298   ROMX_LOAD( "mpr-16498.ic23", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD )
3299   ROMX_LOAD( "mpr-16500.ic18", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD )
3300   ROMX_LOAD( "mpr-16502.ic41", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD )
33013301
33023302   ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */
33033303   ROM_LOAD( "mpr-16506.1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) )
r243484r243485
33103310*/
33113311ROM_START( harddunkj )
33123312   ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */
3313   ROM_LOAD32_WORD_x2( "epr-16508.37", 0x000000, 0x40000, CRC(b3713be5) SHA1(8123638a838e41fcc0d32e14382421b521eff94f) )
3314   ROM_LOAD32_WORD_x2( "epr-16509.40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) )
3313   ROM_LOAD32_WORD_x2( "epr-16508.ic37", 0x000000, 0x40000, CRC(b3713be5) SHA1(8123638a838e41fcc0d32e14382421b521eff94f) )
3314   ROM_LOAD32_WORD_x2( "epr-16509.ic40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) )
33153315
33163316   ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */
3317   ROM_LOAD_x4( "epr-16505", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) )
3317   ROM_LOAD_x4( "epr-16505.ic31", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) )
33183318
33193319   ROM_REGION( 0x100000, "gfx1", 0 ) /* tiles */
3320   ROM_LOAD16_BYTE( "mpr-16503", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) )
3321   ROM_LOAD16_BYTE( "mpr-16504", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) )
3320   ROM_LOAD16_BYTE( "mpr-16503.ic3", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) )
3321   ROM_LOAD16_BYTE( "mpr-16504.ic11", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) )
33223322
33233323   ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */
3324   ROMX_LOAD( "mpr-16495", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD )
3325   ROMX_LOAD( "mpr-16497", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD )
3326   ROMX_LOAD( "mpr-16499", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD )
3327   ROMX_LOAD( "mpr-16501", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD )
3328   ROMX_LOAD( "mpr-16496", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD )
3329   ROMX_LOAD( "mpr-16498", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD )
3330   ROMX_LOAD( "mpr-16500", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD )
3331   ROMX_LOAD( "mpr-16502", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD )
3324   ROMX_LOAD( "mpr-16495.ic14", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD )
3325   ROMX_LOAD( "mpr-16497.ic15", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD )
3326   ROMX_LOAD( "mpr-16499.ic10", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD )
3327   ROMX_LOAD( "mpr-16501.ic38", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD )
3328   ROMX_LOAD( "mpr-16496.ic22", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD )
3329   ROMX_LOAD( "mpr-16498.ic23", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD )
3330   ROMX_LOAD( "mpr-16500.ic18", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD )
3331   ROMX_LOAD( "mpr-16502.ic41", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD )
33323332
33333333   ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */
3334   ROM_LOAD( "mpr-16506.1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) )
3335   ROM_LOAD( "mpr-16507.2", 0x200000, 0x200000, CRC(31e068d3) SHA1(9ac88b15af441fb3b31ce759c565b60a09039571) )
3334   ROM_LOAD( "mpr-16506.ic1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) )
3335   ROM_LOAD( "mpr-16507.ic2", 0x200000, 0x200000, CRC(31e068d3) SHA1(9ac88b15af441fb3b31ce759c565b60a09039571) )
33363336ROM_END
33373337
33383338
r243484r243485
35733573*/
35743574ROM_START( orunners )
35753575   ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */
3576   ROM_LOAD32_WORD_x4( "epr15620.37", 0x000000, 0x020000, CRC(84f5ad92) SHA1(1f9cb04b42b2d450be93400d9979a7910eaf05d1) )
3577   ROM_LOAD32_WORD_x4( "epr15621.40", 0x000002, 0x020000, CRC(d98b765a) SHA1(b58567e976228267a86af53de2135bc0b247a44a) )
3578   ROM_LOAD32_WORD( "mpr15538.bin",   0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) )
3579   ROM_LOAD32_WORD( "mpr15539.bin",   0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) )
3576   ROM_LOAD32_WORD_x4( "epr15620.ic37", 0x000000, 0x020000, CRC(84f5ad92) SHA1(1f9cb04b42b2d450be93400d9979a7910eaf05d1) )
3577   ROM_LOAD32_WORD_x4( "epr15621.ic40", 0x000002, 0x020000, CRC(d98b765a) SHA1(b58567e976228267a86af53de2135bc0b247a44a) )
3578   ROM_LOAD32_WORD( "mpr15538.ic36",   0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) )
3579   ROM_LOAD32_WORD( "mpr15539.ic39",   0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) )
35803580
35813581   ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */
3582   ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) )
3582   ROM_LOAD( "epr15550.ic31", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) )
35833583
35843584   ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */
3585   ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) )
3586   ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) )
3585   ROM_LOAD16_BYTE( "mpr15548.ic3", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) )
3586   ROM_LOAD16_BYTE( "mpr15549.ic11", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) )
35873587
35883588   ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */
3589   ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD )
3590   ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD )
3591   ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD )
3592   ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD )
3593   ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD )
3594   ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD )
3595   ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD )
3596   ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD )
3589   ROMX_LOAD( "mpr15540.ic14", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD )
3590   ROMX_LOAD( "mpr15542.ic15", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD )
3591   ROMX_LOAD( "mpr15544.ic10", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD )
3592   ROMX_LOAD( "mpr15546.ic38", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD )
3593   ROMX_LOAD( "mpr15541.ic22", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD )
3594   ROMX_LOAD( "mpr15543.ic23", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD )
3595   ROMX_LOAD( "mpr15545.ic18", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD )
3596   ROMX_LOAD( "mpr15547.ic41", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD )
35973597
35983598   ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */
3599   ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) )
3600   ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) )
3599   ROM_LOAD( "mpr15551.ic1", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) )
3600   ROM_LOAD( "mpr15552.ic2", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) )
36013601ROM_END
36023602
36033603/**************************************************************************************************************************
r243484r243485
36113611*/
36123612ROM_START( orunnersu )
36133613   ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */
3614   ROM_LOAD32_WORD_x4( "epr15618.37", 0x000000, 0x020000, CRC(25647f76) SHA1(9f882921ebb2f078350295c322b263f75812c053) )
3615   ROM_LOAD32_WORD_x4( "epr15619.40", 0x000002, 0x020000, CRC(2a558f95) SHA1(616ec0a7b251da61a49b933c58895b1a4d39417a) )
3616   ROM_LOAD32_WORD( "mpr15538.bin",   0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) )
3617   ROM_LOAD32_WORD( "mpr15539.bin",   0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) )
3614   ROM_LOAD32_WORD_x4( "epr15618.ic37", 0x000000, 0x020000, CRC(25647f76) SHA1(9f882921ebb2f078350295c322b263f75812c053) )
3615   ROM_LOAD32_WORD_x4( "epr15619.ic40", 0x000002, 0x020000, CRC(2a558f95) SHA1(616ec0a7b251da61a49b933c58895b1a4d39417a) )
3616   ROM_LOAD32_WORD( "mpr15538.ic36",   0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) )
3617   ROM_LOAD32_WORD( "mpr15539.ic39",   0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) )
36183618
36193619   ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */
3620   ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) )
3620   ROM_LOAD( "epr15550.ic31", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) )
36213621
36223622   ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */
3623   ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) )
3624   ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) )
3623   ROM_LOAD16_BYTE( "mpr15548.ic3", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) )
3624   ROM_LOAD16_BYTE( "mpr15549.ic11", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) )
36253625
36263626   ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */
3627   ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD )
3628   ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD )
3629   ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD )
3630   ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD )
3631   ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD )
3632   ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD )
3633   ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD )
3634   ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD )
3627   ROMX_LOAD( "mpr15540.ic14", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD )
3628   ROMX_LOAD( "mpr15542.ic15", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD )
3629   ROMX_LOAD( "mpr15544.ic10", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD )
3630   ROMX_LOAD( "mpr15546.ic38", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD )
3631   ROMX_LOAD( "mpr15541.ic22", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD )
3632   ROMX_LOAD( "mpr15543.ic23", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD )
3633   ROMX_LOAD( "mpr15545.ic18", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD )
3634   ROMX_LOAD( "mpr15547.ic41", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD )
36353635
36363636   ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */
3637   ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) )
3638   ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) )
3637   ROM_LOAD( "mpr15551.ic1", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) )
3638   ROM_LOAD( "mpr15552.ic2", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) )
36393639ROM_END
36403640
36413641/**************************************************************************************************************************
r243484r243485
36493649*/
36503650ROM_START( orunnersj )
36513651   ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */
3652   ROM_LOAD32_WORD_x4( "epr15616.37", 0x000000, 0x020000, CRC(fb550545) SHA1(2f2c36843b115f5417e1f2ccd4a34ebf91265190) ) /* Need to verify the EPR numbers */
3653   ROM_LOAD32_WORD_x4( "epr15617.40", 0x000002, 0x020000, CRC(6bb741e0) SHA1(d92087a2c0b6de4287e569eecf9758615a85d1eb) ) /* Need to verify the EPR numbers */
3654   ROM_LOAD32_WORD( "mpr15538.bin",   0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) )
3655   ROM_LOAD32_WORD( "mpr15539.bin",   0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) )
3652   ROM_LOAD32_WORD_x4( "epr15616.ic37", 0x000000, 0x020000, CRC(fb550545) SHA1(2f2c36843b115f5417e1f2ccd4a34ebf91265190) ) /* Need to verify the EPR numbers */
3653   ROM_LOAD32_WORD_x4( "epr15617.ic40", 0x000002, 0x020000, CRC(6bb741e0) SHA1(d92087a2c0b6de4287e569eecf9758615a85d1eb) ) /* Need to verify the EPR numbers */
3654   ROM_LOAD32_WORD( "mpr15538.ic36",   0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) )
3655   ROM_LOAD32_WORD( "mpr15539.ic39",   0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) )
36563656
36573657   ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */
3658   ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) )
3658   ROM_LOAD( "epr15550.ic31", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) )
36593659
36603660   ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */
3661   ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) )
3662   ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) )
3661   ROM_LOAD16_BYTE( "mpr15548.ic3", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) )
3662   ROM_LOAD16_BYTE( "mpr15549.ic11", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) )
36633663
36643664   ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */
3665   ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD )
3666   ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD )
3667   ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD )
3668   ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD )
3669   ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD )
3670   ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD )
3671   ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD )
3672   ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD )
3665   ROMX_LOAD( "mpr15540.ic14", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD )
3666   ROMX_LOAD( "mpr15542.ic15", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD )
3667   ROMX_LOAD( "mpr15544.ic10", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD )
3668   ROMX_LOAD( "mpr15546.ic38", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD )
3669   ROMX_LOAD( "mpr15541.ic22", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD )
3670   ROMX_LOAD( "mpr15543.ic23", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD )
3671   ROMX_LOAD( "mpr15545.ic18", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD )
3672   ROMX_LOAD( "mpr15547.ic41", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD )
36733673
36743674   ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */
3675   ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) )
3676   ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) )
3675   ROM_LOAD( "mpr15551.ic1", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) )
3676   ROM_LOAD( "mpr15552.ic2", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) )
36773677ROM_END
36783678
36793679
r243484r243485
41864186*/
41874187ROM_START( scross )
41884188   ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */
4189   ROM_LOAD32_WORD_x2( "epr-15093.bin", 0x000000, 0x040000, CRC(2adc7a4b) SHA1(dca71f00d94898c0758394704d819e13482bf120) )
4190   ROM_LOAD32_WORD_x2( "epr-15094.bin", 0x000002, 0x040000, CRC(bbb0ae73) SHA1(0d8837706405f301adf8fa85c8d4813d7600af98) )
4191   ROM_LOAD32_WORD( "epr-15018.bin",    0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) )
4192   ROM_LOAD32_WORD( "epr-15019.bin",    0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) )
4189   ROM_LOAD32_WORD_x2( "epr-15093.ic37", 0x000000, 0x040000, CRC(2adc7a4b) SHA1(dca71f00d94898c0758394704d819e13482bf120) )
4190   ROM_LOAD32_WORD_x2( "epr-15094.ic40", 0x000002, 0x040000, CRC(bbb0ae73) SHA1(0d8837706405f301adf8fa85c8d4813d7600af98) )
4191   ROM_LOAD32_WORD( "epr-15018.ic36",    0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) )
4192   ROM_LOAD32_WORD( "epr-15019.ic39",    0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) )
41934193
41944194   ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */
4195   ROM_LOAD_x4( "epr-15192.bin", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) )
4195   ROM_LOAD_x4( "epr-15192.ic31", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) )
41964196
41974197   ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */
41984198   /* 1ST AND 2ND HALF IDENTICAL (all roms) */
4199   ROM_LOAD16_BYTE( "epr-15020.bin", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) )
4200   ROM_LOAD16_BYTE( "epr-15021.bin", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) )
4199   ROM_LOAD16_BYTE( "epr-15020.ic3", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) )
4200   ROM_LOAD16_BYTE( "epr-15021.ic11", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) )
42014201
42024202   ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */
42034203   /* 1ST AND 2ND HALF IDENTICAL (all roms) */
4204   ROMX_LOAD( "epr-15022.bin", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD )
4205   ROMX_LOAD( "epr-15024.bin", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD )
4206   ROMX_LOAD( "epr-15026.bin", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD )
4207   ROMX_LOAD( "epr-15028.bin", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD )
4208   ROMX_LOAD( "epr-15023.bin", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD )
4209   ROMX_LOAD( "epr-15025.bin", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD )
4210   ROMX_LOAD( "epr-15027.bin", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD )
4211   ROMX_LOAD( "epr-15029.bin", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD )
4204   ROMX_LOAD( "epr-15022.ic14", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD )
4205   ROMX_LOAD( "epr-15024.ic15", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD )
4206   ROMX_LOAD( "epr-15026.ic10", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD )
4207   ROMX_LOAD( "epr-15028.ic38", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD )
4208   ROMX_LOAD( "epr-15023.ic22", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD )
4209   ROMX_LOAD( "epr-15025.ic23", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD )
4210   ROMX_LOAD( "epr-15027.ic18", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD )
4211   ROMX_LOAD( "epr-15029.ic41", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD )
42124212
42134213   ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */
42144214   /* 1ST AND 2ND HALF IDENTICAL (all roms, are these OK?) */
4215   ROM_LOAD("epr-15031.bin", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) )
4216   ROM_LOAD("epr-15032.bin", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) )
4215   ROM_LOAD("epr-15031.ic1", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) )
4216   ROM_LOAD("epr-15032.ic2", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) )
42174217
42184218   ROM_REGION( 0x20000, "user2", 0 ) /*  comms board? - might not belong to this game, just going based on epr number  */
42194219   ROM_LOAD( "epr-15033.ic17", 0x00000, 0x20000, CRC(dc19ac00) SHA1(16bbb5af034e5419673e637be30283b73ab7b290) )
r243484r243485
42264226
42274227ROM_START( scrossu )
42284228   ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */
4229   ROM_LOAD32_WORD_x2( "epr-15091.bin", 0x000000, 0x040000, CRC(2c572293) SHA1(6377a6eb6084f7332ce6eeaaf0c37200da792d0c) )
4230   ROM_LOAD32_WORD_x2( "epr-15092.bin", 0x000002, 0x040000, CRC(6e3e175a) SHA1(feaca0720646e2a4b78b376e99dc86788adb98e7) )
4231   ROM_LOAD32_WORD( "epr-15018.bin",    0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) )
4232   ROM_LOAD32_WORD( "epr-15019.bin",    0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) )
4229   ROM_LOAD32_WORD_x2( "epr-15091.ic37", 0x000000, 0x040000, CRC(2c572293) SHA1(6377a6eb6084f7332ce6eeaaf0c37200da792d0c) )
4230   ROM_LOAD32_WORD_x2( "epr-15092.ic40", 0x000002, 0x040000, CRC(6e3e175a) SHA1(feaca0720646e2a4b78b376e99dc86788adb98e7) )
4231   ROM_LOAD32_WORD( "epr-15018.ic36",    0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) )
4232   ROM_LOAD32_WORD( "epr-15019.ic39",    0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) )
42334233
42344234   ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */
4235   ROM_LOAD_x4( "epr-15192.bin", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) )
4235   ROM_LOAD_x4( "epr-15192.ic31", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) )
42364236
42374237   ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */
42384238   /* 1ST AND 2ND HALF IDENTICAL (all roms) */
4239   ROM_LOAD16_BYTE( "epr-15020.bin", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) )
4240   ROM_LOAD16_BYTE( "epr-15021.bin", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) )
4239   ROM_LOAD16_BYTE( "epr-15020.ic3", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) )
4240   ROM_LOAD16_BYTE( "epr-15021.ic11", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) )
42414241
42424242   ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */
42434243   /* 1ST AND 2ND HALF IDENTICAL (all roms) */
4244   ROMX_LOAD( "epr-15022.bin", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD )
4245   ROMX_LOAD( "epr-15024.bin", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD )
4246   ROMX_LOAD( "epr-15026.bin", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD )
4247   ROMX_LOAD( "epr-15028.bin", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD )
4248   ROMX_LOAD( "epr-15023.bin", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD )
4249   ROMX_LOAD( "epr-15025.bin", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD )
4250   ROMX_LOAD( "epr-15027.bin", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD )
4251   ROMX_LOAD( "epr-15029.bin", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD )
4244   ROMX_LOAD( "epr-15022.ic14", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD )
4245   ROMX_LOAD( "epr-15024.ic15", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD )
4246   ROMX_LOAD( "epr-15026.ic10", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD )
4247   ROMX_LOAD( "epr-15028.ic38", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD )
4248   ROMX_LOAD( "epr-15023.ic22", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD )
4249   ROMX_LOAD( "epr-15025.ic23", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD )
4250   ROMX_LOAD( "epr-15027.ic18", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD )
4251   ROMX_LOAD( "epr-15029.ic41", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD )
42524252
42534253   ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */
42544254   /* 1ST AND 2ND HALF IDENTICAL (all roms, are these OK?) */
4255   ROM_LOAD("epr-15031.bin", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) )
4256   ROM_LOAD("epr-15032.bin", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) )
4255   ROM_LOAD("epr-15031.ic1", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) )
4256   ROM_LOAD("epr-15032.ic2", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) )
42574257ROM_END
42584258
42594259
trunk/src/mame/drivers/taxidriv.c
r243484r243485
1616#include "sound/ay8910.h"
1717
1818
19void taxidriv_state::machine_start()
20{
21   save_item(NAME(m_s1));
22   save_item(NAME(m_s2));
23   save_item(NAME(m_s3));
24   save_item(NAME(m_s4));
25   save_item(NAME(m_latchA));
26   save_item(NAME(m_latchB));
27   save_item(NAME(m_bghide));
28   save_item(NAME(m_spritectrl));
29}
1930
20WRITE8_MEMBER(taxidriv_state::p2a_w){ taxidriv_spritectrl_w(space,0,data); }
21WRITE8_MEMBER(taxidriv_state::p2b_w){ taxidriv_spritectrl_w(space,1,data); }
22WRITE8_MEMBER(taxidriv_state::p2c_w){ taxidriv_spritectrl_w(space,2,data); }
23WRITE8_MEMBER(taxidriv_state::p3a_w){ taxidriv_spritectrl_w(space,3,data); }
24WRITE8_MEMBER(taxidriv_state::p3b_w){ taxidriv_spritectrl_w(space,4,data); }
25WRITE8_MEMBER(taxidriv_state::p3c_w){ taxidriv_spritectrl_w(space,5,data); }
26WRITE8_MEMBER(taxidriv_state::p4a_w){ taxidriv_spritectrl_w(space,6,data); }
27WRITE8_MEMBER(taxidriv_state::p4b_w){ taxidriv_spritectrl_w(space,7,data); }
28WRITE8_MEMBER(taxidriv_state::p4c_w){ taxidriv_spritectrl_w(space,8,data); }
31WRITE8_MEMBER(taxidriv_state::p2a_w){ spritectrl_w(space,0,data); }
32WRITE8_MEMBER(taxidriv_state::p2b_w){ spritectrl_w(space,1,data); }
33WRITE8_MEMBER(taxidriv_state::p2c_w){ spritectrl_w(space,2,data); }
34WRITE8_MEMBER(taxidriv_state::p3a_w){ spritectrl_w(space,3,data); }
35WRITE8_MEMBER(taxidriv_state::p3b_w){ spritectrl_w(space,4,data); }
36WRITE8_MEMBER(taxidriv_state::p3c_w){ spritectrl_w(space,5,data); }
37WRITE8_MEMBER(taxidriv_state::p4a_w){ spritectrl_w(space,6,data); }
38WRITE8_MEMBER(taxidriv_state::p4b_w){ spritectrl_w(space,7,data); }
39WRITE8_MEMBER(taxidriv_state::p4c_w){ spritectrl_w(space,8,data); }
2940
3041
3142READ8_MEMBER(taxidriv_state::p0a_r)
r243484r243485
366377   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
367378   MCFG_SCREEN_SIZE(32*8, 32*8)
368379   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 27*8-1)
369   MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update_taxidriv)
380   MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update)
370381   MCFG_SCREEN_PALETTE("palette")
371382
372383   MCFG_GFXDECODE_ADD("gfxdecode", "palette", taxidriv)
r243484r243485
432443ROM_END
433444
434445
435GAME( 1984, taxidriv,  0,        taxidriv, taxidriv, driver_device, 0, ROT90, "Graphic Techno", "Taxi Driver", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
446GAME( 1984, taxidriv,  0,        taxidriv, taxidriv, driver_device, 0, ROT90, "Graphic Techno", "Taxi Driver", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/tmmjprd.c
r243484r243485
3939public:
4040   tmmjprd_state(const machine_config &mconfig, device_type type, const char *tag)
4141      : driver_device(mconfig, type, tag),
42         m_tilemap_regs(*this, "tilemap_regs"),
43         m_spriteregs(*this, "spriteregs"),
44         m_spriteram(*this, "spriteram") ,
4542      m_maincpu(*this, "maincpu"),
4643      m_eeprom(*this, "eeprom"),
4744      m_gfxdecode(*this, "gfxdecode"),
48      m_palette(*this, "palette") { }
45      m_palette(*this, "palette"),
46      m_tilemap_regs(*this, "tilemap_regs"),
47      m_spriteregs(*this, "spriteregs"),
48      m_spriteram(*this, "spriteram") { }
4949
50   required_device<cpu_device> m_maincpu;
51   required_device<eeprom_serial_93cxx_device> m_eeprom;
52   required_device<gfxdecode_device> m_gfxdecode;
53   required_device<palette_device> m_palette;
54
5055   required_shared_ptr_array<UINT32, 4> m_tilemap_regs;
5156   required_shared_ptr<UINT32> m_spriteregs;
57   required_shared_ptr<UINT32> m_spriteram;
58
5259   UINT32 *m_tilemap_ram[4];
53   required_shared_ptr<UINT32> m_spriteram;
5460   UINT8 m_mux_data;
5561   UINT8 m_system_in;
5662   double m_old_brt1;
5763   double m_old_brt2;
58   DECLARE_WRITE32_MEMBER(tmmjprd_tilemap0_w);
59   DECLARE_WRITE32_MEMBER(tmmjprd_tilemap1_w);
60   DECLARE_WRITE32_MEMBER(tmmjprd_tilemap2_w);
61   DECLARE_WRITE32_MEMBER(tmmjprd_tilemap3_w);
62   DECLARE_READ32_MEMBER(tmmjprd_tilemap0_r);
63   DECLARE_READ32_MEMBER(tmmjprd_tilemap1_r);
64   DECLARE_READ32_MEMBER(tmmjprd_tilemap2_r);
65   DECLARE_READ32_MEMBER(tmmjprd_tilemap3_r);
64
65   DECLARE_WRITE32_MEMBER(tilemap0_w);
66   DECLARE_WRITE32_MEMBER(tilemap1_w);
67   DECLARE_WRITE32_MEMBER(tilemap2_w);
68   DECLARE_WRITE32_MEMBER(tilemap3_w);
69   DECLARE_READ32_MEMBER(tilemap0_r);
70   DECLARE_READ32_MEMBER(tilemap1_r);
71   DECLARE_READ32_MEMBER(tilemap2_r);
72   DECLARE_READ32_MEMBER(tilemap3_r);
6673   DECLARE_READ32_MEMBER(randomtmmjprds);
67   DECLARE_WRITE32_MEMBER(tmmjprd_blitter_w);
68   DECLARE_READ32_MEMBER(tmmjprd_mux_r);
69   DECLARE_WRITE32_MEMBER(tmmjprd_brt_1_w);
70   DECLARE_WRITE32_MEMBER(tmmjprd_brt_2_w);
71   DECLARE_WRITE32_MEMBER(tmmjprd_eeprom_write);
74   DECLARE_WRITE32_MEMBER(blitter_w);
75   DECLARE_READ32_MEMBER(mux_r);
76   DECLARE_WRITE32_MEMBER(brt_1_w);
77   DECLARE_WRITE32_MEMBER(brt_2_w);
78   DECLARE_WRITE32_MEMBER(eeprom_write);
79
80   virtual void machine_start();
7281   virtual void video_start();
73   UINT32 screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
74   UINT32 screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   TIMER_CALLBACK_MEMBER(tmmjprd_blit_done);
76   TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_scanline);
82
83   UINT32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
85
86   TIMER_CALLBACK_MEMBER(blit_done);
87   TIMER_DEVICE_CALLBACK_MEMBER(scanline);
88
7789   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int screen);
78   void ttmjprd_draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom);
79   void ttmjprd_draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom );
80   void tmmjprd_do_blit();
81   required_device<cpu_device> m_maincpu;
82   required_device<eeprom_serial_93cxx_device> m_eeprom;
83   required_device<gfxdecode_device> m_gfxdecode;
84   required_device<palette_device> m_palette;
90   void draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom);
91   void draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom );
92   void do_blit();
8593};
8694
8795
88WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap0_w)
96WRITE32_MEMBER(tmmjprd_state::tilemap0_w)
8997{
9098   COMBINE_DATA(&m_tilemap_ram[0][offset]);
9199}
92100
93101
94102
95WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap1_w)
103WRITE32_MEMBER(tmmjprd_state::tilemap1_w)
96104{
97105   COMBINE_DATA(&m_tilemap_ram[1][offset]);
98106}
99107
100WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap2_w)
108WRITE32_MEMBER(tmmjprd_state::tilemap2_w)
101109{
102110   COMBINE_DATA(&m_tilemap_ram[2][offset]);
103111}
104112
105WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap3_w)
113WRITE32_MEMBER(tmmjprd_state::tilemap3_w)
106114{
107115   COMBINE_DATA(&m_tilemap_ram[3][offset]);
108116}
r243484r243485
183191   }
184192}
185193
186void tmmjprd_state::ttmjprd_draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom)
194void tmmjprd_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom)
187195{
188196   /* note, it's tile address _NOT_ tile number, 'sub-tile' access is possible, hence using the custom rendering */
189197   int tileaddr = (tiledata&0x000fffff)>>0;
r243484r243485
262270   }
263271}
264272
265void tmmjprd_state::ttmjprd_draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom )
273void tmmjprd_state::draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom )
266274{
267275   int y,x;
268276   int count;
r243484r243485
296304      {
297305         UINT32 tiledata = tileram[count];
298306         // todo: handle wraparound
299         ttmjprd_draw_tile(bitmap,cliprect,(x*tile_sizex)-scrollx,(y*tile_sizey)-scrolly,tile_sizex,tile_sizey, tiledata, rom);
307         draw_tile(bitmap,cliprect,(x*tile_sizex)-scrollx,(y*tile_sizey)-scrolly,tile_sizex,tile_sizey, tiledata, rom);
300308         count++;
301309      }
302310   }
303311
304312}
305313
306UINT32 tmmjprd_state::screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
314UINT32 tmmjprd_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
307315{
308316   UINT8* gfxroms = memregion("gfx2")->base();
309317
310318   bitmap.fill(m_palette->black_pen(), cliprect);
311319
312   ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms );
320   draw_tilemap(bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms );
313321   draw_sprites(bitmap,cliprect, 1);
314   ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[2], m_tilemap_regs[2], gfxroms );
322   draw_tilemap(bitmap, cliprect, m_tilemap_ram[2], m_tilemap_regs[2], gfxroms );
315323
316324   /*
317325   popmessage("%08x %08x %08x %08x %08x %08x",
r243484r243485
337345   return 0;
338346}
339347
340UINT32 tmmjprd_state::screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
348UINT32 tmmjprd_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
341349{
342350   UINT8* gfxroms = memregion("gfx2")->base();
343351
344352   bitmap.fill(m_palette->black_pen(), cliprect);
345353
346   ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms );
354   draw_tilemap(bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms );
347355   draw_sprites(bitmap,cliprect, 0);
348   ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[0], m_tilemap_regs[0], gfxroms );
356   draw_tilemap(bitmap, cliprect, m_tilemap_ram[0], m_tilemap_regs[0], gfxroms );
349357
350358   return 0;
351359}
r243484r243485
358366   m_tilemap_ram[1] = auto_alloc_array_clear(machine(), UINT32, 0x8000);
359367   m_tilemap_ram[2] = auto_alloc_array_clear(machine(), UINT32, 0x8000);
360368   m_tilemap_ram[3] = auto_alloc_array_clear(machine(), UINT32, 0x8000);
369   
370   
371   save_pointer(NAME(m_tilemap_ram[0]), 0x8000);
372   save_pointer(NAME(m_tilemap_ram[1]), 0x8000);
373   save_pointer(NAME(m_tilemap_ram[2]), 0x8000);
374   save_pointer(NAME(m_tilemap_ram[3]), 0x8000);
375   
376   save_item(NAME(m_old_brt1));
377   save_item(NAME(m_old_brt2));
361378}
362379
363READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap0_r)
380READ32_MEMBER(tmmjprd_state::tilemap0_r)
364381{
365382   return m_tilemap_ram[0][offset];
366383}
367384
368READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap1_r)
385READ32_MEMBER(tmmjprd_state::tilemap1_r)
369386{
370387   return m_tilemap_ram[1][offset];
371388}
372389
373READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap2_r)
390READ32_MEMBER(tmmjprd_state::tilemap2_r)
374391{
375392   return m_tilemap_ram[2][offset];
376393}
377394
378READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap3_r)
395READ32_MEMBER(tmmjprd_state::tilemap3_r)
379396{
380397   return m_tilemap_ram[3][offset];
381398}
r243484r243485
390407#define BLITLOG 0
391408
392409#if 0
393TIMER_CALLBACK_MEMBER(tmmjprd_state::tmmjprd_blit_done)
410TIMER_CALLBACK_MEMBER(tmmjprd_state::blit_done)
394411{
395412   m_maincpu->set_input_line(3, HOLD_LINE);
396413}
397414
398void tmmjprd_state::tmmjprd_do_blit()
415void tmmjprd_state::do_blit()
399416{
400417   UINT8 *blt_data = memregion("gfx1")->base();
401   int blt_source = (tmmjprd_blitterregs[0]&0x000fffff)>>0;
402   int blt_column = (tmmjprd_blitterregs[1]&0x00ff0000)>>16;
403   int blt_line   = (tmmjprd_blitterregs[1]&0x000000ff);
404   int blt_tilemp = (tmmjprd_blitterregs[2]&0x0000e000)>>13;
405   int blt_oddflg = (tmmjprd_blitterregs[2]&0x00000001)>>0;
418   int blt_source = (m_blitterregs[0]&0x000fffff)>>0;
419   int blt_column = (m_blitterregs[1]&0x00ff0000)>>16;
420   int blt_line   = (m_blitterregs[1]&0x000000ff);
421   int blt_tilemp = (m_blitterregs[2]&0x0000e000)>>13;
422   int blt_oddflg = (m_blitterregs[2]&0x00000001)>>0;
406423   int mask,shift;
407424
408425
409   if(BLITCMDLOG) osd_printf_debug("BLIT command %08x %08x %08x\n", tmmjprd_blitterregs[0], tmmjprd_blitterregs[1], tmmjprd_blitterregs[2]);
426   if(BLITCMDLOG) osd_printf_debug("BLIT command %08x %08x %08x\n", m_blitterregs[0], m_blitterregs[1], m_blitterregs[2]);
410427
411428   if (blt_oddflg&1)
412429   {
r243484r243485
439456            if (!blt_amount)
440457            {
441458               if(BLITLOG) osd_printf_debug("end of blit list\n");
442               machine().scheduler().timer_set(attotime::from_usec(500), timer_expired_delegate(FUNC(tmmjprd_state::tmmjprd_blit_done),this));
459               machine().scheduler().timer_set(attotime::from_usec(500), timer_expired_delegate(FUNC(tmmjprd_state::blit_done),this));
443460               return;
444461            }
445462
r243484r243485
450467               blt_source+=2;
451468               writeoffs=blt_oddflg+blt_column;
452469               m_tilemap_ram[blt_tilemp][writeoffs]=(m_tilemap_ram[blt_tilemp][writeoffs]&mask)|(blt_value<<shift);
453               tmmjprd_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs);
470               m_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs);
454471
455472               blt_column++;
456473               blt_column&=0x7f;
r243484r243485
467484            {
468485               writeoffs=blt_oddflg+blt_column;
469486               m_tilemap_ram[blt_tilemp][writeoffs]=(m_tilemap_ram[blt_tilemp][writeoffs]&mask)|(blt_value<<shift);
470               tmmjprd_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs);
487               m_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs);
471488               blt_column++;
472489               blt_column&=0x7f;
473490            }
r243484r243485
476493
477494         case 0x03: /* next line */
478495            if(BLITLOG) osd_printf_debug("blit: move to next line\n");
479            blt_column = (tmmjprd_blitterregs[1]&0x00ff0000)>>16; /* --CC---- */
496            blt_column = (m_blitterregs[1]&0x00ff0000)>>16; /* --CC---- */
480497            blt_oddflg+=128;
481498            break;
482499
r243484r243485
490507
491508
492509
493WRITE32_MEMBER(tmmjprd_state::tmmjprd_blitter_w)
510WRITE32_MEMBER(tmmjprd_state::blitter_w)
494511{
495   COMBINE_DATA(&tmmjprd_blitterregs[offset]);
512   COMBINE_DATA(&m_blitterregs[offset]);
496513
497514   if (offset == 0x0c/4)
498515   {
499      tmmjprd_do_blit(machine());
516      do_blit();
500517   }
501518}
502519#endif
503520
521void tmmjprd_state::machine_start()
522{
523   save_item(NAME(m_mux_data));
524   save_item(NAME(m_system_in));
525}
504526
505WRITE32_MEMBER(tmmjprd_state::tmmjprd_eeprom_write)
527WRITE32_MEMBER(tmmjprd_state::eeprom_write)
506528{
507529   // don't disturb the EEPROM if we're not actually writing to it
508530   // (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog)
r243484r243485
522544   }
523545}
524546
525READ32_MEMBER(tmmjprd_state::tmmjprd_mux_r)
547READ32_MEMBER(tmmjprd_state::mux_r)
526548{
527549   m_system_in = ioport("SYSTEM")->read();
528550
r243484r243485
629651
630652/* notice that data & 0x4 is always cleared on brt_1 and set on brt_2.        *
631653 * My wild guess is that bits 0,1 and 2 controls what palette entries to dim. */
632WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_1_w)
654WRITE32_MEMBER(tmmjprd_state::brt_1_w)
633655{
634656   int i;
635657   double brt;
r243484r243485
647669   }
648670}
649671
650WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_2_w)
672WRITE32_MEMBER(tmmjprd_state::brt_2_w)
651673{
652674   int i;
653675   double brt;
r243484r243485
669691   AM_RANGE(0x000000, 0x1fffff) AM_ROM
670692   AM_RANGE(0x200010, 0x200013) AM_READ(randomtmmjprds) // gfx chip status?
671693   /* check these are used .. */
672//  AM_RANGE(0x200010, 0x200013) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs0")
694//  AM_RANGE(0x200010, 0x200013) AM_WRITEONLY AM_SHARE("viewregs0")
673695   AM_RANGE(0x200100, 0x200117) AM_WRITEONLY AM_SHARE("tilemap_regs.0" ) // tilemap regs1
674696   AM_RANGE(0x200120, 0x200137) AM_WRITEONLY AM_SHARE("tilemap_regs.1" ) // tilemap regs2
675697   AM_RANGE(0x200140, 0x200157) AM_WRITEONLY AM_SHARE("tilemap_regs.2" ) // tilemap regs3
676698   AM_RANGE(0x200160, 0x200177) AM_WRITEONLY AM_SHARE("tilemap_regs.3" ) // tilemap regs4
677699   AM_RANGE(0x200200, 0x20021b) AM_WRITEONLY AM_SHARE("spriteregs" ) // sprregs?
678//  AM_RANGE(0x200300, 0x200303) AM_WRITE(tmmjprd_rombank_w) // used during rom testing, rombank/area select + something else?
679   AM_RANGE(0x20040c, 0x20040f) AM_WRITE(tmmjprd_brt_1_w)
680   AM_RANGE(0x200410, 0x200413) AM_WRITE(tmmjprd_brt_2_w)
681//  AM_RANGE(0x200500, 0x200503) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs7")
682//  AM_RANGE(0x200700, 0x20070f) AM_WRITE(tmmjprd_blitter_w) AM_SHARE("tmmjprd_blitterregs")
683//  AM_RANGE(0x200800, 0x20080f) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs9") // never changes?
700//  AM_RANGE(0x200300, 0x200303) AM_WRITE(rombank_w) // used during rom testing, rombank/area select + something else?
701   AM_RANGE(0x20040c, 0x20040f) AM_WRITE(brt_1_w)
702   AM_RANGE(0x200410, 0x200413) AM_WRITE(brt_2_w)
703//  AM_RANGE(0x200500, 0x200503) AM_WRITEONLY AM_SHARE("viewregs7")
704//  AM_RANGE(0x200700, 0x20070f) AM_WRITE(blitter_w) AM_SHARE("blitterregs")
705//  AM_RANGE(0x200800, 0x20080f) AM_WRITEONLY AM_SHARE("viewregs9") // never changes?
684706   AM_RANGE(0x200900, 0x2009ff) AM_DEVREADWRITE16("i5000snd", i5000snd_device, read, write, 0xffffffff)
685707   /* hmm */
686//  AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs10")
708//  AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("viewregs10")
687709   /* tilemaps */
688   AM_RANGE(0x280000, 0x283fff) AM_READWRITE(tmmjprd_tilemap0_r,tmmjprd_tilemap0_w)
689   AM_RANGE(0x284000, 0x287fff) AM_READWRITE(tmmjprd_tilemap1_r,tmmjprd_tilemap1_w)
690   AM_RANGE(0x288000, 0x28bfff) AM_READWRITE(tmmjprd_tilemap2_r,tmmjprd_tilemap2_w)
691   AM_RANGE(0x28c000, 0x28ffff) AM_READWRITE(tmmjprd_tilemap3_r,tmmjprd_tilemap3_w)
710   AM_RANGE(0x280000, 0x283fff) AM_READWRITE(tilemap0_r,tilemap0_w)
711   AM_RANGE(0x284000, 0x287fff) AM_READWRITE(tilemap1_r,tilemap1_w)
712   AM_RANGE(0x288000, 0x28bfff) AM_READWRITE(tilemap2_r,tilemap2_w)
713   AM_RANGE(0x28c000, 0x28ffff) AM_READWRITE(tilemap3_r,tilemap3_w)
692714   /* ?? is palette ram shared with sprites in this case or just a different map */
693715   AM_RANGE(0x290000, 0x29bfff) AM_RAM AM_SHARE("spriteram")
694716   AM_RANGE(0x29c000, 0x29ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
695717
696   AM_RANGE(0x400000, 0x400003) AM_READ(tmmjprd_mux_r) AM_WRITE(tmmjprd_eeprom_write)
718   AM_RANGE(0x400000, 0x400003) AM_READ(mux_r) AM_WRITE(eeprom_write)
697719   AM_RANGE(0xf00000, 0xffffff) AM_RAM
698720ADDRESS_MAP_END
699721
700722
701723
702static const gfx_layout rabbit_sprite_16x16x8_layout =
724static const gfx_layout sprite_16x16x8_layout =
703725{
704726   16,16,
705727   RGN_FRAC(1,2),
r243484r243485
721743// gfx decoding is ugly.. 16*16 tiles can start at varying different offsets..
722744static GFXDECODE_START( tmmjprd )
723745   /* this seems to be sprites */
724//  GFXDECODE_ENTRY( "gfx1", 0, tmmjprd_sprite_8x8x4_layout,   0x0, 0x1000  )
725//  GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x4_layout, 0x0, 0x1000  )
726//  GFXDECODE_ENTRY( "gfx1", 0, tmmjprd_sprite_8x8x8_layout,   0x0, 0x1000  )
727   GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x8_layout, 0x0, 0x10  )
746//  GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x4_layout,   0x0, 0x1000  )
747//  GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x4_layout, 0x0, 0x1000  )
748//  GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x8_layout,   0x0, 0x1000  )
749   GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x8_layout, 0x0, 0x10  )
728750GFXDECODE_END
729751
730752
731TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_state::tmmjprd_scanline)
753TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_state::scanline)
732754{
733755   int scanline = param;
734756
r243484r243485
743765static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state )
744766   MCFG_CPU_ADD("maincpu",M68EC020,24000000) /* 24 MHz */
745767   MCFG_CPU_PROGRAM_MAP(tmmjprd_map)
746   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmmjprd_state, tmmjprd_scanline, "lscreen", 0, 1)
768   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmmjprd_state, scanline, "lscreen", 0, 1)
747769
748770   MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
749771   MCFG_EEPROM_SERIAL_ENABLE_STREAMING()
r243484r243485
768790   MCFG_SCREEN_SIZE(64*16, 64*16)
769791   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
770792   //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1)
771   MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_left)
793   MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_left)
772794   MCFG_SCREEN_PALETTE("palette")
773795
774796   MCFG_SCREEN_ADD("rscreen", RASTER)
r243484r243485
777799   MCFG_SCREEN_SIZE(64*16, 64*16)
778800   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
779801   //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1)
780   MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_right)
802   MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_right)
781803   MCFG_SCREEN_PALETTE("palette")
782804
783805
r243484r243485
863885ROM_END
864886
865887
866GAME( 1997, tmmjprd,       0, tmmjprd, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Dear My Love", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
867GAME( 1998, tmpdoki, tmmjprd, tmpdoki, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Doki Doki Hen", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // missing gfx due to wrong roms?
888GAME( 1997, tmmjprd,       0, tmmjprd, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Dear My Love", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
889GAME( 1998, tmpdoki, tmmjprd, tmpdoki, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Doki Doki Hen", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // missing gfx due to wrong roms?
trunk/src/mame/includes/taxidriv.h
r243484r243485
33public:
44   taxidriv_state(const machine_config &mconfig, device_type type, const char *tag)
55      : driver_device(mconfig, type, tag),
6      m_maincpu(*this, "maincpu"),
7      m_gfxdecode(*this, "gfxdecode"),
8      m_palette(*this, "palette"),
69      m_vram0(*this, "vram0"),
710      m_vram1(*this, "vram1"),
811      m_vram2(*this, "vram2"),
r243484r243485
1114      m_vram5(*this, "vram5"),
1215      m_vram6(*this, "vram6"),
1316      m_vram7(*this, "vram7"),
14      m_scroll(*this, "scroll"),
15      m_maincpu(*this, "maincpu"),
16      m_gfxdecode(*this, "gfxdecode"),
17      m_palette(*this, "palette")  { }
17      m_scroll(*this, "scroll")  { }
1818
19   int m_s1;
20   int m_s2;
21   int m_s3;
22   int m_s4;
23   int m_latchA;
24   int m_latchB;
19   required_device<cpu_device> m_maincpu;
20   required_device<gfxdecode_device> m_gfxdecode;
21   required_device<palette_device> m_palette;
22
2523   required_shared_ptr<UINT8> m_vram0;
2624   required_shared_ptr<UINT8> m_vram1;
2725   required_shared_ptr<UINT8> m_vram2;
r243484r243485
3129   required_shared_ptr<UINT8> m_vram6;
3230   required_shared_ptr<UINT8> m_vram7;
3331   required_shared_ptr<UINT8> m_scroll;
32
33   int m_s1;
34   int m_s2;
35   int m_s3;
36   int m_s4;
37   int m_latchA;
38   int m_latchB;
3439   int m_bghide;
3540   int m_spritectrl[9];
41
3642   DECLARE_WRITE8_MEMBER(p2a_w);
3743   DECLARE_WRITE8_MEMBER(p2b_w);
3844   DECLARE_WRITE8_MEMBER(p2c_w);
r243484r243485
5359   DECLARE_READ8_MEMBER(p8910_0a_r);
5460   DECLARE_READ8_MEMBER(p8910_1a_r);
5561   DECLARE_WRITE8_MEMBER(p8910_0b_w);
56   DECLARE_WRITE8_MEMBER(taxidriv_spritectrl_w);
62   DECLARE_WRITE8_MEMBER(spritectrl_w);
63
64   virtual void machine_start();
5765   DECLARE_PALETTE_INIT(taxidriv);
58   UINT32 screen_update_taxidriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
59   required_device<cpu_device> m_maincpu;
60   required_device<gfxdecode_device> m_gfxdecode;
61   required_device<palette_device> m_palette;
66
67   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6268};
trunk/src/mame/video/taxidriv.c
r243484r243485
22#include "includes/taxidriv.h"
33
44
5WRITE8_MEMBER(taxidriv_state::taxidriv_spritectrl_w)
5WRITE8_MEMBER(taxidriv_state::spritectrl_w)
66{
77   m_spritectrl[offset] = data;
88}
99
1010
1111
12UINT32 taxidriv_state::screen_update_taxidriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12UINT32 taxidriv_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1313{
1414   int offs;
1515   int sx,sy;
trunk/src/mess/drivers/pc9801.c
r243484r243485
496496
497497   virtual void video_start();
498498   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
499   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
499500
501   enum
502   {
503      TIMER_VBIRQ
504   };
505
506   emu_timer *m_vbirq;
500507   UINT8 *m_ipl_rom;
501508   UINT8 *m_char_rom;
502509   UINT8 *m_kanji_rom;
r243484r243485
504511   UINT8 m_dma_offset[4];
505512   int m_dack;
506513
507   UINT8 m_vrtc_irq_mask;
508514   UINT8 m_video_ff[8],m_gfx_ff;
509515   UINT8 m_txt_scroll_reg[8];
510516   UINT8 m_pal_clut[4];
r243484r243485
562568   DECLARE_WRITE_LINE_MEMBER( write_uart_clock );
563569   DECLARE_WRITE8_MEMBER(rtc_dmapg_w);
564570   DECLARE_WRITE8_MEMBER(nmi_ctrl_w);
565   DECLARE_WRITE8_MEMBER(vrtc_mask_w);
571   DECLARE_WRITE8_MEMBER(vrtc_clear_w);
566572   DECLARE_WRITE8_MEMBER(pc9801_video_ff_w);
567573   DECLARE_READ8_MEMBER(txt_scrl_r);
568574   DECLARE_WRITE8_MEMBER(txt_scrl_w);
r243484r243485
731737#define ANALOG_16_MODE 0
732738#define ANALOG_256_MODE 0x10
733739
740void pc9801_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
741{
742   switch(id)
743   {
744      case TIMER_VBIRQ:
745         m_pic1->ir2_w(0);
746   }
747}
748
734749void pc9801_state::video_start()
735750{
736751   m_tvram = auto_alloc_array(machine(), UINT16, 0x2000);
r243484r243485
9881003   m_nmi_ff = (offset & 2) >> 1;
9891004}
9901005
991WRITE8_MEMBER(pc9801_state::vrtc_mask_w)
1006WRITE8_MEMBER(pc9801_state::vrtc_clear_w)
9921007{
993   m_vrtc_irq_mask = 1;
1008   m_pic1->ir2_w(0);
9941009}
9951010
9961011WRITE8_MEMBER(pc9801_state::pc9801_video_ff_w)
r243484r243485
17231738   AM_RANGE(0x0050, 0x0057) AM_DEVREADWRITE8("ppi8255_fdd", i8255_device, read, write, 0xff00)
17241739   AM_RANGE(0x0050, 0x0053) AM_WRITE8(nmi_ctrl_w,0x00ff) // NMI FF / i8255 floppy port (2d?)
17251740   AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE8("upd7220_chr", upd7220_device, read, write, 0x00ff) //upd7220 character ports / <undefined>
1726   AM_RANGE(0x0064, 0x0065) AM_WRITE8(vrtc_mask_w,0x00ff)
1741   AM_RANGE(0x0064, 0x0065) AM_WRITE8(vrtc_clear_w,0x00ff)
17271742   AM_RANGE(0x0068, 0x0069) AM_WRITE8(pc9801_video_ff_w,0x00ff) //mode FF / <undefined>
17281743//  AM_RANGE(0x006c, 0x006f) border color / <undefined>
17291744   AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0xff00)
r243484r243485
24172432   AM_RANGE(0x0050, 0x0053) AM_WRITE8(pc9801rs_nmi_w, 0xffffffff)
24182433   AM_RANGE(0x005c, 0x005f) AM_READ16(pc9821_timestamp_r,0xffffffff) AM_WRITENOP // artic
24192434   AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE8("upd7220_chr", upd7220_device, read, write, 0x00ff00ff) //upd7220 character ports / <undefined>
2420   AM_RANGE(0x0064, 0x0067) AM_WRITE8(vrtc_mask_w, 0x000000ff)
2435   AM_RANGE(0x0064, 0x0067) AM_WRITE8(vrtc_clear_w, 0x000000ff)
24212436   AM_RANGE(0x0068, 0x006b) AM_WRITE8(pc9821_video_ff_w,  0x00ff00ff) //mode FF / <undefined>
24222437   AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0xff00ff00)
24232438   AM_RANGE(0x0070, 0x007f) AM_READWRITE8(grcg_r,      grcg_w,      0x00ff00ff) //display registers "GRCG" / i8253 pit
r243484r243485
29822997   m_rtc->oe_w(1);
29832998
29842999   m_ipl_rom = memregion("ipl")->base();
3000   m_vbirq = timer_alloc(TIMER_VBIRQ);
29853001
29863002   save_item(NAME(m_sasi_data));
29873003   save_item(NAME(m_sasi_data_enable));
29883004   save_item(NAME(m_sasi_ctrl));
2989   save_item(NAME(m_vrtc_irq_mask));
29903005}
29913006
29923007MACHINE_START_MEMBER(pc9801_state,pc9801f)
r243484r243485
31163131
31173132INTERRUPT_GEN_MEMBER(pc9801_state::pc9801_vrtc_irq)
31183133{
3119   if(m_vrtc_irq_mask)
3120   {
3121      m_pic1->ir2_w(0);
3122      m_pic1->ir2_w(1);
3123      m_vrtc_irq_mask = 0; // TODO: this irq auto-masks?
3124   }
3125//  else
3126//      pic8259_ir2_w(machine().device("pic8259_master"), 0);
3134   m_pic1->ir2_w(1);
3135   m_vbirq->adjust(m_screen->time_until_vblank_end());
31273136}
31283137
31293138
trunk/src/mess/drivers/slicer.c
r243484r243485
137137   ROM_LOAD("epbios.bin", 0x0000, 0x8001, CRC(96fe9dd4) SHA1(5fc43454fe7d51f2ae97aef822155dcd28eb7f23))
138138ROM_END
139139
140COMP( 1983, slicer, 0, 0, slicer, 0, driver_device, 0, "Slicer Computers", "Slicer", GAME_NOT_WORKING | GAME_NO_SOUND)
140COMP( 1983, slicer, 0, 0, slicer, 0, driver_device, 0, "Slicer Computers", "Slicer", GAME_NO_SOUND)
trunk/src/mess/drivers/tmtennis.c
r243484r243485
2828   tmtennis_state(const machine_config &mconfig, device_type type, const char *tag)
2929      : driver_device(mconfig, type, tag),
3030      m_maincpu(*this, "maincpu"),
31      m_button_matrix(*this, "IN"),
3132      m_speaker(*this, "speaker")
3233   { }
3334
3435   required_device<cpu_device> m_maincpu;
36   required_ioport_array<2> m_button_matrix;
3537   required_device<speaker_sound_device> m_speaker;
38   
39   UINT8 m_input_mux;
40   UINT16 m_plate;
41   UINT16 m_grid;
3642
43   DECLARE_READ8_MEMBER(input_r);
44   DECLARE_WRITE8_MEMBER(port_e_w);
45   DECLARE_WRITE8_MEMBER(plate_w);
46   DECLARE_WRITE8_MEMBER(grid_w);
47
3748   virtual void machine_start();
3849};
3950
r243484r243485
4556
4657***************************************************************************/
4758
59READ8_MEMBER(tmtennis_state::input_r)
60{
61   // port A/B: buttons
62   UINT8 inp = 0xff;
4863
64   // read selected button rows
65   for (int i = 0; i < 2; i++)
66      if (~m_input_mux & (1 << i))
67         inp &= m_button_matrix[i]->read();
4968
69   return inp >> (offset*4);
70}
71
72WRITE8_MEMBER(tmtennis_state::port_e_w)
73{
74   // E0/E1: input mux
75   // E2: speaker out
76   // E3: N/C
77   m_input_mux = data & 3;
78   m_speaker->level_w(data >> 2 & 1);
79}
80
81WRITE8_MEMBER(tmtennis_state::plate_w)
82{
83   // port C/D/F: vfd matrix plate
84   if (offset == NEC_UCOM4_PORTF) offset--;
85   int shift = (offset - NEC_UCOM4_PORTC) * 4;
86   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
87}
88
89WRITE8_MEMBER(tmtennis_state::grid_w)
90{
91   // port G/H/I: vfd matrix grid
92   int shift = (offset - NEC_UCOM4_PORTG) * 4;
93   m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
94}
95
96
5097/***************************************************************************
5198
5299  Inputs
r243484r243485
54101***************************************************************************/
55102
56103static INPUT_PORTS_START( tmtennis )
104   PORT_START("IN.0") // E0 port A/B
105   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
106   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
107   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
108   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
109   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
110   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
111   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(2)
112   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(2)
113
114   PORT_START("IN.1") // E1 port A/B
115   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
116   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
117   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
118   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
119   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 )
120   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 )
121   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 )
122   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 )
57123INPUT_PORTS_END
58124
59125
r243484r243485
66132
67133void tmtennis_state::machine_start()
68134{
135   // zerofill
136   m_input_mux = 0;
137   m_plate = 0;
138   m_grid = 0;
139
140   // register for savestates
141   save_item(NAME(m_input_mux));
142   save_item(NAME(m_plate));
143   save_item(NAME(m_grid));
69144}
70145
71146
r243484r243485
73148
74149   /* basic machine hardware */
75150   MCFG_CPU_ADD("maincpu", NEC_D552, MASTER_CLOCK_PRO2)
151   MCFG_UCOM4_READ_A_CB(READ8(tmtennis_state, input_r))
152   MCFG_UCOM4_READ_B_CB(READ8(tmtennis_state, input_r))
153   MCFG_UCOM4_WRITE_C_CB(WRITE8(tmtennis_state, plate_w))
154   MCFG_UCOM4_WRITE_D_CB(WRITE8(tmtennis_state, plate_w))
155   MCFG_UCOM4_WRITE_E_CB(WRITE8(tmtennis_state, port_e_w))
156   MCFG_UCOM4_WRITE_F_CB(WRITE8(tmtennis_state, plate_w))
157   MCFG_UCOM4_WRITE_G_CB(WRITE8(tmtennis_state, grid_w))
158   MCFG_UCOM4_WRITE_H_CB(WRITE8(tmtennis_state, grid_w))
159   MCFG_UCOM4_WRITE_I_CB(WRITE8(tmtennis_state, grid_w))
76160
77161   MCFG_DEFAULT_LAYOUT(layout_tmtennis)
78162


Previous 199869 Revisions Next


© 1997-2024 The MAME Team