mirror of
https://github.com/holub/mame
synced 2025-07-01 08:18:59 +03:00
funtech/supracan.cpp: fine tune FRC a bit
This commit is contained in:
parent
eefd9b2f85
commit
8e15a98d09
@ -1570,6 +1570,8 @@ void supracan_state::update_frc_state()
|
|||||||
{
|
{
|
||||||
if ((m_frc_control & 0xff00) == 0xa200)
|
if ((m_frc_control & 0xff00) == 0xa200)
|
||||||
{
|
{
|
||||||
|
const u32 period = ((m_frc_control & 0xff << 16) | (m_frc_frequency));
|
||||||
|
|
||||||
// HACK: handle case by case until we resolve the equation
|
// HACK: handle case by case until we resolve the equation
|
||||||
// (particularly with variable frequencies)
|
// (particularly with variable frequencies)
|
||||||
switch(m_frc_control & 0xf)
|
switch(m_frc_control & 0xf)
|
||||||
@ -1585,7 +1587,7 @@ void supracan_state::update_frc_state()
|
|||||||
// - causes a crash at boot if too fast;
|
// - causes a crash at boot if too fast;
|
||||||
// - takes roughly 6 seconds for a title screen individual kanji to move right-to-left;
|
// - takes roughly 6 seconds for a title screen individual kanji to move right-to-left;
|
||||||
case 1:
|
case 1:
|
||||||
m_frc_timer->adjust(attotime::from_hz(30));
|
m_frc_timer->adjust(m_maincpu->cycles_to_attotime(1024 * period), 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// gamblord: sets 0xa20f normally, plays with frequency register a lot.
|
// gamblord: sets 0xa20f normally, plays with frequency register a lot.
|
||||||
@ -1593,8 +1595,9 @@ void supracan_state::update_frc_state()
|
|||||||
// - takes ~1 second for character screen to switch;
|
// - takes ~1 second for character screen to switch;
|
||||||
// - during gameplay sometimes switches to 0xa200 / 0xffff;
|
// - during gameplay sometimes switches to 0xa200 / 0xffff;
|
||||||
case 0xf:
|
case 0xf:
|
||||||
m_frc_timer->adjust(attotime::from_hz(120));
|
m_frc_timer->adjust(m_maincpu->cycles_to_attotime(8192 * period), 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
popmessage("Attempt to fire up FRC with %04x %04x", m_frc_control, m_frc_frequency);
|
popmessage("Attempt to fire up FRC with %04x %04x", m_frc_control, m_frc_frequency);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user