mirror of
https://github.com/holub/mame
synced 2025-07-03 00:56:03 +03:00
Notes for Phil and fixed Cross Shooter sound regression, not going to touch it further
This commit is contained in:
parent
13f03740d2
commit
538fa484db
@ -218,8 +218,8 @@ conventional RAM. See the memory map for sprite data format.
|
|||||||
****************************************************************************
|
****************************************************************************
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- MCU is identical between Empire City and Cross Shooter, I guess it's coinage
|
- MCU is identical between Empire City and Cross Shooter, it's ADPCM and
|
||||||
related.
|
perhaps coinage related too.
|
||||||
- palette is incorporated - fix!!!
|
- palette is incorporated - fix!!!
|
||||||
- handle transparency in text layer properly (how?)
|
- handle transparency in text layer properly (how?)
|
||||||
- second bank of sf02 is this used? (probably NOT)
|
- second bank of sf02 is this used? (probably NOT)
|
||||||
@ -263,6 +263,7 @@ ADDRESS_MAP_END
|
|||||||
static ADDRESS_MAP_START( cshooter_cpu1_map, AS_PROGRAM, 8, stfight_state )
|
static ADDRESS_MAP_START( cshooter_cpu1_map, AS_PROGRAM, 8, stfight_state )
|
||||||
/* wants 0xff at PC=0x9a otherwise it won't boot, MCU related? */
|
/* wants 0xff at PC=0x9a otherwise it won't boot, MCU related? */
|
||||||
AM_RANGE(0x0007, 0x0007) AM_READ(cshooter_mcu_unk1_r)
|
AM_RANGE(0x0007, 0x0007) AM_READ(cshooter_mcu_unk1_r)
|
||||||
|
AM_RANGE(0xc500, 0xc500) AM_WRITE(cshooter_fm_w) /* play fm sound */
|
||||||
AM_RANGE(0xc801, 0xc801) AM_WRITE(stfight_bank_w)
|
AM_RANGE(0xc801, 0xc801) AM_WRITE(stfight_bank_w)
|
||||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(cshooter_text_w) AM_SHARE("tx_vram")
|
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(cshooter_text_w) AM_SHARE("tx_vram")
|
||||||
AM_RANGE(0xe000, 0xfdff) AM_RAM
|
AM_RANGE(0xe000, 0xfdff) AM_RAM
|
||||||
@ -533,8 +534,10 @@ static MACHINE_CONFIG_START( stfight, stfight_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(cpu2_map)
|
MCFG_CPU_PROGRAM_MAP(cpu2_map)
|
||||||
MCFG_CPU_PERIODIC_INT_DRIVER(stfight_state, irq0_line_hold, 120)
|
MCFG_CPU_PERIODIC_INT_DRIVER(stfight_state, irq0_line_hold, 120)
|
||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
MCFG_CPU_ADD("mcu", M68705, 6000000) /* 6 MHz? */
|
||||||
|
MCFG_CPU_PROGRAM_MAP(cshooter_mcu_map)
|
||||||
|
|
||||||
|
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -580,9 +583,6 @@ static MACHINE_CONFIG_DERIVED( cshooter, stfight )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
||||||
|
|
||||||
MCFG_CPU_ADD("mcu", M68705, 6000000) /* 6 MHz? */
|
|
||||||
MCFG_CPU_PROGRAM_MAP(cshooter_mcu_map)
|
|
||||||
|
|
||||||
MCFG_SCREEN_MODIFY("screen")
|
MCFG_SCREEN_MODIFY("screen")
|
||||||
MCFG_SCREEN_UPDATE_DRIVER(stfight_state, screen_update_cshooter)
|
MCFG_SCREEN_UPDATE_DRIVER(stfight_state, screen_update_cshooter)
|
||||||
|
|
||||||
@ -660,6 +660,10 @@ ROM_START( empcityu )
|
|||||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
||||||
ROM_LOAD( "ec_04.rom", 0x0000, 0x8000, CRC(aa3e7d1e) SHA1(da350384d55f011253d19ce17fc327cd2604257f) )
|
ROM_LOAD( "ec_04.rom", 0x0000, 0x8000, CRC(aa3e7d1e) SHA1(da350384d55f011253d19ce17fc327cd2604257f) )
|
||||||
|
|
||||||
|
// not hooked up yet, what's it for, coinage?
|
||||||
|
ROM_REGION( 0x0800, "mcu", 0 )
|
||||||
|
ROM_LOAD( "empirecity_68705.bin", 0x0000, 0x0800, CRC(182f7616) SHA1(38b4f23a559ae13f8ca1b974407a2a40fc52879f) )
|
||||||
|
|
||||||
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
||||||
ROM_LOAD( "vid.2p", 0x0000, 0x2000, CRC(15593793) SHA1(ac9ca8a0aa0ce3810f45aa41e74d4946ecced245) )
|
ROM_LOAD( "vid.2p", 0x0000, 0x2000, CRC(15593793) SHA1(ac9ca8a0aa0ce3810f45aa41e74d4946ecced245) )
|
||||||
|
|
||||||
@ -714,6 +718,10 @@ ROM_START( empcityj )
|
|||||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
||||||
ROM_LOAD( "ec_04.rom", 0x0000, 0x8000, CRC(aa3e7d1e) SHA1(da350384d55f011253d19ce17fc327cd2604257f) )
|
ROM_LOAD( "ec_04.rom", 0x0000, 0x8000, CRC(aa3e7d1e) SHA1(da350384d55f011253d19ce17fc327cd2604257f) )
|
||||||
|
|
||||||
|
// not hooked up yet, what's it for, coinage?
|
||||||
|
ROM_REGION( 0x0800, "mcu", 0 )
|
||||||
|
ROM_LOAD( "empirecity_68705.bin", 0x0000, 0x0800, CRC(182f7616) SHA1(38b4f23a559ae13f8ca1b974407a2a40fc52879f) )
|
||||||
|
|
||||||
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
||||||
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
||||||
|
|
||||||
@ -765,6 +773,10 @@ ROM_START( stfight )
|
|||||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
||||||
ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) )
|
ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) )
|
||||||
|
|
||||||
|
// not hooked up yet, what's it for, coinage?
|
||||||
|
ROM_REGION( 0x0800, "mcu", 0 )
|
||||||
|
ROM_LOAD( "empirecity_68705.bin", 0x0000, 0x0800, CRC(182f7616) SHA1(38b4f23a559ae13f8ca1b974407a2a40fc52879f) )
|
||||||
|
|
||||||
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
||||||
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
||||||
|
|
||||||
@ -818,6 +830,10 @@ ROM_START( stfighta )
|
|||||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
||||||
ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) )
|
ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) )
|
||||||
|
|
||||||
|
// not hooked up yet, what's it for, coinage?
|
||||||
|
ROM_REGION( 0x0800, "mcu", 0 )
|
||||||
|
ROM_LOAD( "empirecity_68705.bin", 0x0000, 0x0800, CRC(182f7616) SHA1(38b4f23a559ae13f8ca1b974407a2a40fc52879f) )
|
||||||
|
|
||||||
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
||||||
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
||||||
|
|
||||||
@ -869,6 +885,10 @@ ROM_START( empcityi ) // very similar to above set
|
|||||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
||||||
ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) )
|
ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) )
|
||||||
|
|
||||||
|
// not hooked up yet, what's it for, coinage?
|
||||||
|
ROM_REGION( 0x0800, "mcu", 0 )
|
||||||
|
ROM_LOAD( "empirecity_68705.bin", 0x0000, 0x0800, CRC(182f7616) SHA1(38b4f23a559ae13f8ca1b974407a2a40fc52879f) )
|
||||||
|
|
||||||
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
ROM_REGION( 0x02000, "gfx1", 0 ) /* character data */
|
||||||
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) )
|
||||||
|
|
||||||
|
@ -45,6 +45,7 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER(stfight_coin_w);
|
DECLARE_WRITE8_MEMBER(stfight_coin_w);
|
||||||
DECLARE_WRITE8_MEMBER(stfight_e800_w);
|
DECLARE_WRITE8_MEMBER(stfight_e800_w);
|
||||||
DECLARE_WRITE8_MEMBER(stfight_fm_w);
|
DECLARE_WRITE8_MEMBER(stfight_fm_w);
|
||||||
|
DECLARE_WRITE8_MEMBER(cshooter_fm_w);
|
||||||
DECLARE_READ8_MEMBER(stfight_fm_r);
|
DECLARE_READ8_MEMBER(stfight_fm_r);
|
||||||
DECLARE_WRITE8_MEMBER(stfight_bank_w);
|
DECLARE_WRITE8_MEMBER(stfight_bank_w);
|
||||||
DECLARE_WRITE8_MEMBER(stfight_text_char_w);
|
DECLARE_WRITE8_MEMBER(stfight_text_char_w);
|
||||||
|
@ -245,6 +245,11 @@ WRITE8_MEMBER(stfight_state::stfight_adpcm_control_w)
|
|||||||
m_adpcm_data_end = sampleLimits[data+1];
|
m_adpcm_data_end = sampleLimits[data+1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_mcu->set_input_line(0, HOLD_LINE);
|
||||||
|
m_from_main = data;
|
||||||
|
m_main_sent = 1;
|
||||||
|
// m_maincpu->set_input_line(INPUT_LINE_NMI,PULSE_LINE);
|
||||||
|
|
||||||
m_msm->reset_w(BIT(data, 3));
|
m_msm->reset_w(BIT(data, 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,6 +267,11 @@ WRITE8_MEMBER(stfight_state::stfight_fm_w)
|
|||||||
m_fm_data = 0x80 ^ data;
|
m_fm_data = 0x80 ^ data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(stfight_state::cshooter_fm_w)
|
||||||
|
{
|
||||||
|
m_fm_data = data;
|
||||||
|
}
|
||||||
|
|
||||||
READ8_MEMBER(stfight_state::stfight_fm_r)
|
READ8_MEMBER(stfight_state::stfight_fm_r)
|
||||||
{
|
{
|
||||||
int data = m_fm_data;
|
int data = m_fm_data;
|
||||||
@ -307,6 +317,8 @@ READ8_MEMBER(stfight_state::cshooter_68705_port_a_r)
|
|||||||
|
|
||||||
WRITE8_MEMBER(stfight_state::cshooter_68705_port_a_w)
|
WRITE8_MEMBER(stfight_state::cshooter_68705_port_a_w)
|
||||||
{
|
{
|
||||||
|
// ADPCM start offset goes there
|
||||||
|
// TODO: where's end offset?
|
||||||
m_portA_out = data;
|
m_portA_out = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,10 +351,13 @@ WRITE8_MEMBER(stfight_state::cshooter_68705_port_b_w)
|
|||||||
}
|
}
|
||||||
if ((m_ddrB & 0x20) && (data & 0x20) && (~m_portB_out & 0x20))
|
if ((m_ddrB & 0x20) && (data & 0x20) && (~m_portB_out & 0x20))
|
||||||
{
|
{
|
||||||
m_portA_in = m_from_main;
|
//printf("bit 5\n");
|
||||||
|
m_portB_in = m_from_main;
|
||||||
|
|
||||||
//if (m_main_sent)
|
if (m_main_sent)
|
||||||
// m_mcu->set_input_line(0, CLEAR_LINE);
|
{
|
||||||
|
//m_mcu->set_input_line(0, CLEAR_LINE);
|
||||||
|
}
|
||||||
|
|
||||||
m_main_sent = 0;
|
m_main_sent = 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user