mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
secretab: Incremental sound improvements
- Replace one YM2203 with a YM3812 - Add extra samples ROM to banked sound CPU region - Hook up sound latch, enabling music and sound effects (still very imperfect) - A little more PCB documentation
This commit is contained in:
parent
f846ba2895
commit
a3c0760433
@ -44,7 +44,8 @@ Original Service Manuals and Service Mode (when available).
|
||||
ToDo:
|
||||
- Fix protection simulation in Birdie Try (that part needs at least comparison with a real board);
|
||||
- Fix remaining graphical problems in Automat (bootleg);
|
||||
- graphics and sound are completely broken in Secret Agent (bootleg);
|
||||
- Fix remaining sound problems in Secret Agent (bootleg);
|
||||
- graphics are completely broken in Secret Agent (bootleg);
|
||||
- Fighting Fantasy (bootleg) doesn't boot at all;
|
||||
- Hook up the 68705 in Midnight Resistance (bootleg) (it might not be used, leftover from the Fighting Fantasy bootleg on the same PCB?)
|
||||
- Get rid of ROM patches in Sly Spy and Hippodrome;
|
||||
@ -281,6 +282,15 @@ WRITE16_MEMBER(dec0_state::midres_sound_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(dec0_automat_state::secretab_sound_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_soundlatch->write(space, 0, data & 0xff);
|
||||
m_audiocpu->set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( dec0_map, AS_PROGRAM, 16, dec0_state )
|
||||
@ -538,7 +548,7 @@ void dec0_automat_state::machine_start()
|
||||
save_item(NAME(m_adpcm_toggle2));
|
||||
save_item(NAME(m_automat_scroll_regs));
|
||||
|
||||
m_soundbank->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
|
||||
m_soundbank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
|
||||
m_soundbank->set_entry(0);
|
||||
}
|
||||
|
||||
@ -611,7 +621,7 @@ static ADDRESS_MAP_START( secretab_map, AS_PROGRAM, 16, dec0_automat_state )
|
||||
// AM_RANGE(0x340400, 0x3407ff) AM_DEVREADWRITE("tilegen1", deco_bac06_device, pf_rowscroll_r, pf_rowscroll_w)
|
||||
|
||||
AM_RANGE(0x314008, 0x31400f) AM_READ(slyspy_controls_r)
|
||||
// AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w)
|
||||
AM_RANGE(0x314000, 0x314001) AM_WRITE(secretab_sound_w)
|
||||
|
||||
AM_RANGE(0x300000, 0x300007) AM_RAM
|
||||
AM_RANGE(0x300010, 0x300017) AM_RAM
|
||||
@ -636,6 +646,18 @@ static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8, dec0_automat_state )
|
||||
AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("adpcm_select1", ls157_device, ba_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( secretab_s_map, AS_PROGRAM, 8, dec0_automat_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("soundbank")
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("2203a", ym2203_device, read, write)
|
||||
AM_RANGE(0xd000, 0xd001) AM_DEVREADWRITE("ym3812", ym3812_device, read, write)
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ(sound_command_r)
|
||||
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("adpcm_select2", ls157_device, ba_w)
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITE(sound_bankswitch_w)
|
||||
AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("adpcm_select1", ls157_device, ba_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, dec0_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(dec0_mcu_port_r, dec0_mcu_port_w)
|
||||
@ -1374,7 +1396,7 @@ WRITE8_MEMBER(dec0_automat_state::sound_bankswitch_w)
|
||||
m_msm1->reset_w(BIT(data, 3));
|
||||
m_msm2->reset_w(BIT(data, 4));
|
||||
|
||||
m_soundbank->set_entry(data & 3);
|
||||
m_soundbank->set_entry(data & 7);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(dec0_automat_state::msm1_vclk_cb)
|
||||
@ -1479,7 +1501,7 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state, irq6_line_hold)/* VBL */
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 3000000)// ?
|
||||
MCFG_CPU_PROGRAM_MAP(automat_s_map)
|
||||
MCFG_CPU_PROGRAM_MAP(secretab_s_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
|
||||
@ -1521,11 +1543,8 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state )
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.90)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.35)
|
||||
|
||||
MCFG_SOUND_ADD("2203b", YM2203, 1250000)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.90)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.90)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.90)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.35)
|
||||
MCFG_SOUND_ADD("ym3812", YM3812, 2500000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
|
||||
MCFG_DEVICE_ADD("adpcm_select1", LS157, 0)
|
||||
MCFG_74LS157_OUT_CB(DEVWRITE8("msm1", msm5205_device, data_w))
|
||||
@ -2376,13 +2395,14 @@ enjoy..
|
||||
|
||||
ROM_START( automat )
|
||||
ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
|
||||
ROM_LOAD16_BYTE( "5.bin", 0x00000, 0x10000, CRC(fb6faa74) SHA1(0af03c06193b5ba1422571b9504a7f655c608d94) )
|
||||
ROM_LOAD16_BYTE( "2.bin", 0x00001, 0x10000, CRC(7ecf8309) SHA1(59dd50bcb528ece42a67154bcc4f432770420986) )
|
||||
ROM_LOAD16_BYTE( "4.bin", 0x20000, 0x10000, CRC(9d7b79e0) SHA1(e0d901b9b3cd62f7c947da04f7447ebfa88bf44a) )
|
||||
ROM_LOAD16_BYTE( "3.bin", 0x20001, 0x10000, CRC(e655f9c3) SHA1(d5e99d542303d009277ccfc245f877e4e28603c9) )
|
||||
ROM_LOAD16_BYTE( "5.bin", 0x00000, 0x10000, CRC(fb6faa74) SHA1(0af03c06193b5ba1422571b9504a7f655c608d94) ) // IC50
|
||||
ROM_LOAD16_BYTE( "2.bin", 0x00001, 0x10000, CRC(7ecf8309) SHA1(59dd50bcb528ece42a67154bcc4f432770420986) ) // IC54
|
||||
ROM_LOAD16_BYTE( "4.bin", 0x20000, 0x10000, CRC(9d7b79e0) SHA1(e0d901b9b3cd62f7c947da04f7447ebfa88bf44a) ) // IC51
|
||||
ROM_LOAD16_BYTE( "3.bin", 0x20001, 0x10000, CRC(e655f9c3) SHA1(d5e99d542303d009277ccfc245f877e4e28603c9) ) // IC53
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Sound */
|
||||
ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(72ea6024) SHA1(debd30219879ec01f43cc116a6cfa17209940ecc) )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 Sound */
|
||||
ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(72ea6024) SHA1(debd30219879ec01f43cc116a6cfa17209940ecc) ) // IC26
|
||||
ROM_RELOAD( 0x10000, 0x10000 ) // IC25 - socket unpopulated
|
||||
|
||||
ROM_REGION( 0x40000, "gfxload1", 0 ) /* chars */
|
||||
ROM_LOAD( "8.bin", 0x00000, 0x10000, CRC(dcfffc7a) SHA1(e250626473917d397381210ef536efbc93c46474) ) // y?
|
||||
@ -2914,19 +2934,20 @@ from sa_15 to sa_22
|
||||
|
||||
ROM_START( secretab )
|
||||
ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
|
||||
ROM_LOAD16_BYTE( "sa_05.bin", 0x00000, 0x10000, CRC(54869474) SHA1(88c1894d1b6d8dd3d37e97d566aafef9c9409d6e) )
|
||||
ROM_LOAD16_BYTE( "sa_03.bin", 0x00001, 0x10000, CRC(36ab1874) SHA1(baa47c466ab13ac792761531f77ee8e639d19203) )
|
||||
ROM_LOAD16_BYTE( "sa_06.bin", 0x20000, 0x10000, CRC(8e691f23) SHA1(eb08c9539b699af124fcf87be07a33d2d5a71ada) )
|
||||
ROM_LOAD16_BYTE( "sa_04.bin", 0x20001, 0x10000, CRC(c838b205) SHA1(8c7a453ec7a00d4f5bbf9fadba6d551909647ed8) )
|
||||
ROM_LOAD16_BYTE( "sa_05.bin", 0x00000, 0x10000, CRC(54869474) SHA1(88c1894d1b6d8dd3d37e97d566aafef9c9409d6e) ) // IC94
|
||||
ROM_LOAD16_BYTE( "sa_03.bin", 0x00001, 0x10000, CRC(36ab1874) SHA1(baa47c466ab13ac792761531f77ee8e639d19203) ) // IC67
|
||||
ROM_LOAD16_BYTE( "sa_06.bin", 0x20000, 0x10000, CRC(8e691f23) SHA1(eb08c9539b699af124fcf87be07a33d2d5a71ada) ) // IC83
|
||||
ROM_LOAD16_BYTE( "sa_04.bin", 0x20001, 0x10000, CRC(c838b205) SHA1(8c7a453ec7a00d4f5bbf9fadba6d551909647ed8) ) // IC66
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */
|
||||
ROM_LOAD( "sa_01.bin", 0x00000, 0x10000, CRC(9fdc503b) SHA1(7b258e0734ca88a7d3f574d75116f0fe3b628898) )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound CPU */
|
||||
ROM_LOAD( "sa_01.bin", 0x00000, 0x10000, CRC(9fdc503b) SHA1(7b258e0734ca88a7d3f574d75116f0fe3b628898) ) // IC41
|
||||
ROM_LOAD( "sa_02.bin", 0x10000, 0x10000, CRC(439eb5a9) SHA1(8d6baad8a1e89279ef0a378941d3d9b49a606864) ) // IC40 - both halves identical
|
||||
|
||||
ROM_REGION( 0x40000, "charset", 0 )
|
||||
ROM_LOAD( "sa_08.bin", 0x00000, 0x10000,CRC(4806b951) SHA1(a2fa5b8587132747067d7d64ccfd14129a34ef58) )
|
||||
ROM_LOAD( "sa_12.bin", 0x10000, 0x10000,CRC(f9e2cd5f) SHA1(f2c3f6e763c6f80307e9daee533d316b05cd02c5) )
|
||||
ROM_LOAD( "sa_10.bin", 0x20000, 0x10000,CRC(843c4679) SHA1(871f3e77aa7e628e924a40d06ddec700487e23fb) )
|
||||
ROM_LOAD( "sa_14.bin", 0x30000, 0x10000,CRC(3dac9128) SHA1(f3a2068e90973c1f04f1bbaa209111e3f9669ee0) )
|
||||
ROM_LOAD( "sa_08.bin", 0x00000, 0x10000,CRC(4806b951) SHA1(a2fa5b8587132747067d7d64ccfd14129a34ef58) ) // IC105
|
||||
ROM_LOAD( "sa_12.bin", 0x10000, 0x10000,CRC(f9e2cd5f) SHA1(f2c3f6e763c6f80307e9daee533d316b05cd02c5) ) // IC156
|
||||
ROM_LOAD( "sa_10.bin", 0x20000, 0x10000,CRC(843c4679) SHA1(871f3e77aa7e628e924a40d06ddec700487e23fb) ) // IC138
|
||||
ROM_LOAD( "sa_14.bin", 0x30000, 0x10000,CRC(3dac9128) SHA1(f3a2068e90973c1f04f1bbaa209111e3f9669ee0) ) // IC188
|
||||
|
||||
ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) /* chars */
|
||||
ROM_COPY( "charset", 0x00000, 0x00000, 0x8000 )
|
||||
@ -2941,23 +2962,20 @@ ROM_START( secretab )
|
||||
ROM_COPY( "charset", 0x38000, 0x18000, 0x8000 )
|
||||
|
||||
ROM_REGION( 0x40000, "gfx3", ROMREGION_INVERT ) /* tiles */
|
||||
ROM_LOAD( "sa_09.bin", 0x00000, 0x10000,CRC(9e412267) SHA1(482cd6e772fa21f15db66c27acf85e8f97f7c5a5) )
|
||||
ROM_LOAD( "sa_11.bin", 0x10000, 0x10000,CRC(e87650db) SHA1(381352428b12fd4a8cd13270009ff7602aa41a0b) )
|
||||
ROM_LOAD( "sa_07.bin", 0x20000, 0x10000,CRC(6ad2e575) SHA1(b6b159cb36e222fe62fc10271602226f027440e4) )
|
||||
ROM_LOAD( "sa_13.bin", 0x30000, 0x10000,CRC(e8601057) SHA1(fd73a36fb84049154248d250ffea68b1ee39a43f) )
|
||||
ROM_LOAD( "sa_09.bin", 0x00000, 0x10000,CRC(9e412267) SHA1(482cd6e772fa21f15db66c27acf85e8f97f7c5a5) ) // IC139
|
||||
ROM_LOAD( "sa_11.bin", 0x10000, 0x10000,CRC(e87650db) SHA1(381352428b12fd4a8cd13270009ff7602aa41a0b) ) // IC157
|
||||
ROM_LOAD( "sa_07.bin", 0x20000, 0x10000,CRC(6ad2e575) SHA1(b6b159cb36e222fe62fc10271602226f027440e4) ) // IC106
|
||||
ROM_LOAD( "sa_13.bin", 0x30000, 0x10000,CRC(e8601057) SHA1(fd73a36fb84049154248d250ffea68b1ee39a43f) ) // IC189?
|
||||
|
||||
ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
|
||||
ROM_LOAD( "sa_20.bin", 0x00000, 0x10000,CRC(447e4f0b) SHA1(97db103e505a6e11eb9bdb3622e4aa3b796a9714) )
|
||||
ROM_LOAD( "sa_19.bin", 0x10000, 0x10000,CRC(d29bc22e) SHA1(ce0935d09f7e94fa32247c86e14a74b73514b29e) )
|
||||
ROM_LOAD( "sa_16.bin", 0x20000, 0x10000,CRC(ff72b838) SHA1(fdc48ecdd2225fc69472313f34973f6add8fb558) )
|
||||
ROM_LOAD( "sa_15.bin", 0x30000, 0x10000,CRC(54fcbc39) SHA1(293a6799193b01424c3eac86cf90cc023aa771db) )
|
||||
ROM_LOAD( "sa_22.bin", 0x40000, 0x10000,CRC(d234cae5) SHA1(0cd07bf087a4da19a5da29785385de9eee52d0fb) )
|
||||
ROM_LOAD( "sa_21.bin", 0x50000, 0x10000,CRC(dc6a38df) SHA1(9043df911389d3f085299f2f2202cab356473a32) )
|
||||
ROM_LOAD( "sa_18.bin", 0x60000, 0x10000,CRC(4f989f00) SHA1(ae7ae6e62e6a516ae3c8ebbeb5e39887c1961add) )
|
||||
ROM_LOAD( "sa_17.bin", 0x70000, 0x10000,CRC(f61972c8) SHA1(fa9ddca3473091b4879171d8f3b302e8f2b45149) )
|
||||
|
||||
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "sa_02.bin", 0x00000, 0x10000,CRC(439eb5a9) SHA1(8d6baad8a1e89279ef0a378941d3d9b49a606864) ) // both halves identical
|
||||
ROM_LOAD( "sa_20.bin", 0x00000, 0x10000,CRC(447e4f0b) SHA1(97db103e505a6e11eb9bdb3622e4aa3b796a9714) ) // IC176
|
||||
ROM_LOAD( "sa_19.bin", 0x10000, 0x10000,CRC(d29bc22e) SHA1(ce0935d09f7e94fa32247c86e14a74b73514b29e) ) // IC177
|
||||
ROM_LOAD( "sa_16.bin", 0x20000, 0x10000,CRC(ff72b838) SHA1(fdc48ecdd2225fc69472313f34973f6add8fb558) ) // IC180
|
||||
ROM_LOAD( "sa_15.bin", 0x30000, 0x10000,CRC(54fcbc39) SHA1(293a6799193b01424c3eac86cf90cc023aa771db) ) // IC181?
|
||||
ROM_LOAD( "sa_22.bin", 0x40000, 0x10000,CRC(d234cae5) SHA1(0cd07bf087a4da19a5da29785385de9eee52d0fb) ) // IC174?
|
||||
ROM_LOAD( "sa_21.bin", 0x50000, 0x10000,CRC(dc6a38df) SHA1(9043df911389d3f085299f2f2202cab356473a32) ) // IC175?
|
||||
ROM_LOAD( "sa_18.bin", 0x60000, 0x10000,CRC(4f989f00) SHA1(ae7ae6e62e6a516ae3c8ebbeb5e39887c1961add) ) // IC178
|
||||
ROM_LOAD( "sa_17.bin", 0x70000, 0x10000,CRC(f61972c8) SHA1(fa9ddca3473091b4879171d8f3b302e8f2b45149) ) // IC179
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3375,5 +3393,5 @@ GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, ffantasybl
|
||||
GAME( 1988, drgninjab2, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "bootleg", "Dragonninja (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) // is this the same board as above? (region warning hacked to World, but still shows Japanese text)
|
||||
|
||||
// these are different to the above but quite similar to each other
|
||||
GAME( 1988, automat, robocop, automat, robocop, dec0_state, robocop, ROT0, "bootleg", "Automat (bootleg of Robocop)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM?
|
||||
GAME( 1989, secretab, secretag, secretab, slyspy, driver_device, 0, ROT0, "bootleg", "Secret Agent (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, automat, robocop, automat, robocop, dec0_state, robocop, ROT0, "bootleg", "Automat (bootleg of Robocop)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM?
|
||||
GAME( 1989, secretab, secretag, secretab, slyspy, driver_device, 0, ROT0, "bootleg", "Secret Agent (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -134,6 +134,7 @@ public:
|
||||
uint16_t m_automat_scroll_regs[4];
|
||||
|
||||
DECLARE_WRITE16_MEMBER(automat_control_w);
|
||||
DECLARE_WRITE16_MEMBER(secretab_sound_w);
|
||||
DECLARE_READ16_MEMBER( automat_palette_r );
|
||||
DECLARE_WRITE16_MEMBER( automat_palette_w );
|
||||
DECLARE_WRITE16_MEMBER( automat_scroll_w )
|
||||
|
Loading…
Reference in New Issue
Block a user