mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
fidelity/csc: improve irq active duration
This commit is contained in:
parent
f0b4be4142
commit
f1e6f4a07b
3 changed files with 13 additions and 16 deletions
|
@ -13,9 +13,7 @@ TODO:
|
|||
- do ca1_w/cb1_w better, it's annoying since it's going through sensorboard_device
|
||||
(it works fine though, since PIA interrupts are not connected)
|
||||
- hook up csce I/O properly, it doesn't have PIAs
|
||||
- verify csc/super9cc irq duration, it was measured 73.425us but that's too long,
|
||||
so it's using the one from csce for now instead
|
||||
- is super9cc 101-1024B03 really 2KB? rom chip looks the same as the other ones
|
||||
- verify super9cc maskrom dump
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
|
@ -619,12 +617,12 @@ INPUT_PORTS_END
|
|||
|
||||
void csc_state::csc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
// basic machine hardware
|
||||
M6502(config, m_maincpu, 3.9_MHz_XTAL/2); // from 3.9MHz resonator
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &csc_state::csc_map);
|
||||
|
||||
auto &irq_clock(CLOCK(config, "irq_clock", 38.4_kHz_XTAL/64)); // through 4060 IC, 600Hz
|
||||
irq_clock.set_pulse_width(attotime::from_nsec(10480)); // 74LS221 (4.7K, 5nF), measured ~10.48us
|
||||
irq_clock.set_pulse_width(attotime::from_nsec(42750)); // measured ~42.75us
|
||||
irq_clock.signal_handler().set_inputline(m_maincpu, M6502_IRQ_LINE);
|
||||
|
||||
PIA6821(config, m_pia[0], 0);
|
||||
|
@ -644,12 +642,12 @@ void csc_state::csc(machine_config &config)
|
|||
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
|
||||
m_board->set_delay(attotime::from_msec(200));
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
PWM_DISPLAY(config, m_display).set_size(9, 16);
|
||||
m_display->set_segmask(0xf, 0x7f);
|
||||
config.set_default_layout(layout_fidel_csc);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
|
||||
m_speech->ext_read().set(FUNC(csc_state::speech_r));
|
||||
|
@ -662,30 +660,28 @@ void csc_state::csce(machine_config &config)
|
|||
{
|
||||
csc(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_clock(4_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &csc_state::csce_map);
|
||||
|
||||
// shorter irq, 74LS221 (4.7K, 5nF), measured ~10.48us
|
||||
subdevice<clock_device>("irq_clock")->set_pulse_width(attotime::from_nsec(10480));
|
||||
}
|
||||
|
||||
void csc_state::cscet(machine_config &config)
|
||||
{
|
||||
csce(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_clock(5_MHz_XTAL);
|
||||
}
|
||||
|
||||
void su9_state::su9(machine_config &config)
|
||||
{
|
||||
csc(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
config.set_default_layout(layout_fidel_su9);
|
||||
}
|
||||
|
||||
void csc_state::rsc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
// basic machine hardware
|
||||
M6502(config, m_maincpu, 1800000); // measured approx 1.81MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &csc_state::rsc_map);
|
||||
|
||||
|
@ -704,11 +700,11 @@ void csc_state::rsc(machine_config &config)
|
|||
m_board->set_spawnpoints(2);
|
||||
m_board->set_delay(attotime::from_msec(300));
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
PWM_DISPLAY(config, m_display).set_size(9, 16);
|
||||
config.set_default_layout(layout_fidel_rsc);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ TODO:
|
|||
- remove memory pointers for video attribute RAM area (r/w handlers instead?),
|
||||
then the workaround at the end of starforb_map isn't needed, and m_scrollhack
|
||||
can probably be removed too
|
||||
- lowpass filter on DAC?
|
||||
|
||||
Note:
|
||||
- Star Force shows default MAME palette at POST. Flipped to all_black for now.
|
||||
|
|
|
@ -15,7 +15,7 @@ Notes:
|
|||
TODO:
|
||||
- Colors are not right. In zerohour P1 score should be white, the top score green,
|
||||
and "TOP" should be magenta. How is this determined? It's as if only the top part
|
||||
of the screen has this exception. Sprite colors look ok.
|
||||
of the screen has this exception. Maybe via the unknown PROM? Sprite colors look ok.
|
||||
- Some graphical problems in both games
|
||||
- redclash supports more background layer effects: white+mixed with other colors,
|
||||
used in canyon parts and during the big ufo explosion
|
||||
|
|
Loading…
Reference in a new issue