Previous 199869 Revisions Next

r36417 Saturday 14th March, 2015 at 11:52:58 UTC by David Haywood
new clones
Puzznic (bootleg) [cmonkey]
[src/mame]mame.lst
[src/mame/audio]hng64.c
[src/mame/drivers]taito_l.c

trunk/src/mame/audio/hng64.c
r244928r244929
2323
2424so levels 0,1,2,5 are unmasked
2525
26returning random values / triggering random interrupts eventually results in a situation
27where the CPU stops writing to the sound related addresses and starts reading / masking the
28serial comms register.
29
2630*/
2731
2832
r244928r244929
191195
192196READ16_MEMBER(hng64_state::hng64_sound_port_0004_r)
193197{
198   // it writes the channel select before reading this.. so either it works on channels, or the command..
194199   // read in irq5
195   logerror("%08x: hng64_sound_port_0004_r mask (%04x)\n", space.device().safe_pc(), mem_mask);
200   printf("%08x: hng64_sound_port_0004_r mask (%04x) chn %04x\n", space.device().safe_pc(), mem_mask, m_audiochannel);
196201   return rand();
197202}
198203
199204READ16_MEMBER(hng64_state::hng64_sound_port_0006_r)
200205{
206   // it writes the channel select before reading this.. so either it works on channels, or the command..
201207   // read in irq5
202   logerror("%08x: hng64_sound_port_0006_r mask (%04x)\n", space.device().safe_pc(), mem_mask);
208   printf("%08x: hng64_sound_port_0006_r mask (%04x)  chn %04x\n", space.device().safe_pc(), mem_mask, m_audiochannel);
203209   return rand();
204210}
205211
r244928r244929
212218
213219WRITE16_MEMBER(hng64_state::hng64_sound_select_w)
214220{
215   // seems to write values in the format xxyy where yy is 0x00-0x1f and xx is oten 00/01/0a
216   // there are said to be 32 audio channels, so maybe the lower byte is the channel?
221   // I'm guessing these addresses are the sound chip / DSP?
217222
218//   logerror("hng64_sound_select_w")
223   // ---- ---- 000c cccc
224   // c = channel
225
226   if (data & 0x00e0) printf("hng64_sound_select_w unknown channel %02x\n", data & 0x00ff);
227
228   UINT8 command = data >> 8;
229
230   switch (command)
231   {
232   case 0x00:
233   case 0x01:
234   case 0x02:
235   case 0x03: // 00003fffffff (startup only?)
236   case 0x04: // doesn't use 6
237   case 0x05: // 00003fffffff (mostly, often)
238   case 0x06: // 00007ff0ffff mostly
239   case 0x07: // 0000000f0708 etc. (low values)
240   case 0x08: // doesn't write to 2/4/6 with this set??
241   case 0x09: // doesn't write to 2/4/6 with this set??
242   case 0x0a: // random looking values
243
244      break;
245
246   default:
247      printf("hng64_sound_select_w unrecognized command %02x\n", command);
248      break;
249   }
250
219251   COMBINE_DATA(&m_audiochannel);
220252}
221253
222254WRITE16_MEMBER(hng64_state::hng64_sound_data_02_w)
223255{
224256   m_audiodat[m_audiochannel].dat[2] = data;
225//   logerror("write port 0x0002 chansel %04x data %04x (%04x%04x%04x)\n", m_audiochannel, data, m_audiodat[m_audiochannel].dat[0], m_audiodat[m_audiochannel].dat[1], m_audiodat[m_audiochannel].dat[2]);
257
258//   if ((m_audiochannel & 0xff00) == 0x0a00)
259//      printf("write port 0x0002 chansel %04x data %04x (%04x%04x%04x)\n", m_audiochannel, data, m_audiodat[m_audiochannel].dat[0], m_audiodat[m_audiochannel].dat[1], m_audiodat[m_audiochannel].dat[2]);
226260}
227261
228262WRITE16_MEMBER(hng64_state::hng64_sound_data_04_w)
229263{
230264   m_audiodat[m_audiochannel].dat[1] = data;
231//   logerror("write port 0x0004 chansel %04x data %04x (%04x%04x%04x)\n", m_audiochannel, data, m_audiodat[m_audiochannel].dat[0], m_audiodat[m_audiochannel].dat[1], m_audiodat[m_audiochannel].dat[2]);
265
266//   if ((m_audiochannel & 0xff00) == 0x0a00)
267//      printf("write port 0x0004 chansel %04x data %04x (%04x%04x%04x)\n", m_audiochannel, data, m_audiodat[m_audiochannel].dat[0], m_audiodat[m_audiochannel].dat[1], m_audiodat[m_audiochannel].dat[2]);
232268}
233269WRITE16_MEMBER(hng64_state::hng64_sound_data_06_w)
234270{
235271   m_audiodat[m_audiochannel].dat[0] = data;
236//   logerror("write port 0x0006 chansel %04x data %04x (%04x%04x%04x)\n", m_audiochannel, data, m_audiodat[m_audiochannel].dat[0], m_audiodat[m_audiochannel].dat[1], m_audiodat[m_audiochannel].dat[2]);
272
273//   if ((m_audiochannel & 0xff00) == 0x0a00)
274//      printf("write port 0x0006 chansel %04x data %04x (%04x%04x%04x)\n", m_audiochannel, data, m_audiodat[m_audiochannel].dat[0], m_audiodat[m_audiochannel].dat[1], m_audiodat[m_audiochannel].dat[2]);
237275}
238276
239277// but why not just use the V33/V53 XA mode??
r244928r244929
377415{
378416   // these are very active, maybe they feed back into the v53 via one of the IRQ pins?  TM2 toggles more rapidly than TM1
379417//   logerror("tcu_tm2_cb %02x\n", state);
380   m_audiocpu->set_input_line(2, state? ASSERT_LINE:CLEAR_LINE); // not accurate, just so we have a trigger
418
419   // NOT ACCURATE, just so that all the interrupts get triggered for now.
420   static int i = 0;
421   m_audiocpu->set_input_line(i, state? ASSERT_LINE:CLEAR_LINE);
422   i++;
423   if (i == 3) i = 0;
381424}
382425
383426
trunk/src/mame/drivers/taito_l.c
r244928r244929
23522352   ROM_LOAD( "c20-05.ic3", 0x0000, 0x0144, CRC(f90e5594) SHA1(6181bb25b77028bb150c84bdc073f0457efd7eaa) ) // Confirmed/Matches Japan Set
23532353ROM_END
23542354
2355ROM_START( puzznici ) /* bootleg */
2355ROM_START( puzznici ) /* bootleg (original main board, bootleg sub-board without MCU) */
23562356   ROM_REGION( 0x20000, "maincpu", 0 )
23572357   ROM_LOAD( "1.ic11",  0x00000, 0x20000, CRC(4612f5e0) SHA1(dc07a365414666568537d31ef01b58f2362cadaf) )
23582358
r244928r244929
23612361   ROM_LOAD16_BYTE( "3.ic9",     0x00001, 0x20000, CRC(2bf5232a) SHA1(a8fc06bb8bae2ca6bd21e3a96c9ed38bb356d5d7) )
23622362ROM_END
23632363
2364ROM_START( puzznicb ) /* bootleg (original main board, bootleg sub-board without MCU) */
2365   ROM_REGION( 0x20000, "maincpu", 0 )
2366   ROM_LOAD( "ic11.bin",  0x00000, 0x20000, CRC(2510df4d) SHA1(534327e3d7f847b6c0effc5fd0fb9f5da9b0d3b1) )
2367
2368   ROM_REGION( 0x20000, "gfx1", 0 ) // this has the bad line in tile 1 fixed (unused I believe) are we sure the roms used in the original sets are a good dump?
2369   ROM_LOAD16_BYTE( "ic10.bin",  0x00000, 0x10000, CRC(be12749a) SHA1(c67d1a434486843a6776d89e905362b7db595d8d) )
2370   ROM_LOAD16_BYTE( "ic9.bin",   0x00001, 0x10000, CRC(0f183340) SHA1(9eef7de801eb9763313f55a38e567b92fca3bfa6) )
2371ROM_END
2372
23642373/*
23652374
23662375Taito's Horse Shoe
r244928r244929
25882597GAME( 1989, puzznic,   0,        puzznic,   puzznic,   driver_device, 0,         ROT0,   "Taito Corporation Japan", "Puzznic (World)", 0 )
25892598GAME( 1989, puzznicj,  puzznic,  puzznic,   puzznic,   driver_device, 0,         ROT0,   "Taito Corporation", "Puzznic (Japan)", 0 )
25902599GAME( 1989, puzznici,  puzznic,  puzznici,  puzznic,   driver_device, 0,         ROT0,   "bootleg", "Puzznic (Italian bootleg)", 0 )
2600GAME( 1989, puzznicb,  puzznic,  puzznici,  puzznic,   driver_device, 0,         ROT0,   "bootleg", "Puzznic (bootleg)", 0 )
25912601
25922602GAME( 1990, horshoes,  0,        horshoes,  horshoes,  driver_device, 0,         ROT270, "Taito America Corporation", "American Horseshoes (US)", 0 )
25932603
25942604GAME( 1990, palamed,   0,        palamed,   palamed,   driver_device, 0,         ROT0,   "Taito Corporation", "Palamedes (Japan)", 0 )
25952605
25962606GAME( 1993, cachat,    0,        cachat,    cachat,    driver_device, 0,         ROT0,   "Taito Corporation", "Cachat (Japan)", 0 )
2597
25982607GAME( 1993, tubeit,    cachat,   cachat,    tubeit,    driver_device, 0,         ROT0,   "bootleg", "Tube-It", 0 ) // No (c) message
25992608
26002609GAME( 199?, cubybop,   0,        cachat,    cubybop,   driver_device, 0,         ROT0,   "Hot-B", "Cuby Bop (location test)", 0 ) // No (c) message, but Hot-B company logo in tile gfx
r244928r244929
26032612GAME( 1992, lagirl,    plgirls,  cachat,    plgirls,   driver_device, 0,         ROT270, "bootleg", "LA Girl", 0 ) // bootleg hardware with changed title & backgrounds
26042613
26052614GAME( 1993, plgirls2,  0,        cachat,    plgirls2,  driver_device, 0,         ROT270, "Hot-B", "Play Girls 2", 0 )
2606GAME( 1993, plgirls2b, plgirls2, cachat,    plgirls2,  driver_device, 0,         ROT270, "bootleg", "Play Girls 2 (bootleg)", 0 ) // bootleg hardware (regular Z80 etc. instead of TC0090LVC, but acts the same)
2615GAME( 1993, plgirls2b, plgirls2, cachat,    plgirls2,  driver_device, 0,         ROT270, "bootleg", "Play Girls 2 (bootleg)", GAME_IMPERFECT_GRAPHICS ) // bootleg hardware (regular Z80 etc. instead of TC0090LVC, but acts almost the same - scroll offset problems)
26072616
26082617GAME( 1990, evilston,  0,        evilston,  evilston,  driver_device, 0,         ROT270, "Spacy Industrial, Ltd.", "Evil Stone", GAME_IMPERFECT_SOUND ) // not Taito PCB, just uses TC0090LVC
trunk/src/mame/mame.lst
r244928r244929
22832283champwrj        // C01 (c) 1989 Taito Corporation (Japan)
22842284puzznic         // C20 (c) 1989 Taito Corporation (Japan)
22852285puzznicj        // C20 (c) 1989 Taito Corporation (Japan)
2286puzznici        // C20 (c) 1989 Taito Corporation (Japan)
2286puzznici        // bootleg
2287puzznicb        // bootleg
22872288horshoes        // C47 (c) 1990 Taito America Corporation (US)
22882289palamed         // C63 (c) 1990 Taito Corporation (Japan)
22892290cachat          // ??? (c) 1993 Taito Corporation (Japan)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team