mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-22 13:55:38 +00:00
Skichamp Driveboard error fix.
This commit is contained in:
parent
08d4735ee8
commit
e4998f57fd
|
@ -1646,10 +1646,6 @@
|
||||||
</inputs>
|
</inputs>
|
||||||
</hardware>
|
</hardware>
|
||||||
<roms>
|
<roms>
|
||||||
<patches>
|
|
||||||
<!-- remove driveboard error -->
|
|
||||||
<patch region="crom" bits="32" offset="0x4d06f4" value="0x41860030" />
|
|
||||||
</patches>
|
|
||||||
<region name="crom" stride="8" chunk_size="2" byte_swap="true">
|
<region name="crom" stride="8" chunk_size="2" byte_swap="true">
|
||||||
<file offset="0" name="epr-20355.20" crc32="0x7A784E67" />
|
<file offset="0" name="epr-20355.20" crc32="0x7A784E67" />
|
||||||
<file offset="2" name="epr-20354.18" crc32="0xACA62BF8" />
|
<file offset="2" name="epr-20354.18" crc32="0xACA62BF8" />
|
||||||
|
|
|
@ -119,14 +119,14 @@ UINT8 CSkiBoard::SimulateRead(void)
|
||||||
{
|
{
|
||||||
switch (m_readMode)
|
switch (m_readMode)
|
||||||
{
|
{
|
||||||
case 0x0: return m_statusFlags; // Status flags
|
// Note about Driveboard error :
|
||||||
|
// The value returned by case 0x0 is the error value displayed when error occurs.
|
||||||
|
// In service menu->output test, you will see "foot ctrl clutch" occilating free/lock due to
|
||||||
|
// the incrementation of m_statusFlags (000x0000 : x=1=lock x=0=free)
|
||||||
|
|
||||||
|
case 0x0: return m_statusFlags++; // Status flags - Increment every time to bypass driveboard error
|
||||||
case 0x1: return m_dip1; // DIP switch 1 value
|
case 0x1: return m_dip1; // DIP switch 1 value
|
||||||
case 0x2: return m_dip2; // DIP switch 2 value
|
case 0x4: return 0xFF; // Foot sensor Left=0xf0 Right=0x0f Both=0xff
|
||||||
case 0x3: return m_wheelCenter; // Wheel center
|
|
||||||
case 0x4: return 0x80; // Cockpit banking center
|
|
||||||
case 0x5: return m_inputs->skiX->value; // Wheel position
|
|
||||||
case 0x6: return 0x80; // Cockpit banking position
|
|
||||||
case 0x7: return m_echoVal; // Init status/echo test
|
|
||||||
default: return 0xFF;
|
default: return 0xFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,6 @@ CSkiBoard::CSkiBoard(const Util::Config::Node& config)
|
||||||
m_simulated = false;
|
m_simulated = false;
|
||||||
m_initialized = false;
|
m_initialized = false;
|
||||||
m_dip1 = 0xCF;
|
m_dip1 = 0xCF;
|
||||||
m_dip2 = 0xFF;
|
|
||||||
|
|
||||||
DebugLog("Built Drive Board (ski pad)\n");
|
DebugLog("Built Drive Board (ski pad)\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -535,14 +535,6 @@ UINT8 CModel3::ReadInputs(unsigned reg)
|
||||||
if ((m_game.inputs & Game::INPUT_MAGTRUCK))
|
if ((m_game.inputs & Game::INPUT_MAGTRUCK))
|
||||||
data &= ~(Inputs->magicalPedal2->value << 0);
|
data &= ~(Inputs->magicalPedal2->value << 0);
|
||||||
|
|
||||||
if ((m_game.inputs & Game::INPUT_SKI))
|
|
||||||
{
|
|
||||||
data = 0xff;
|
|
||||||
// foot sensor Left=0xf0 Right=0x0f Both=0xff
|
|
||||||
// rumble skipad is tested here at boot. The rom is patched to avoid driveboard error
|
|
||||||
// note : there is no driveboard error if sensor value slide slowly from 0x80 to 0xff then set to 0xff when test passed (tested with assigning an axis to this value)
|
|
||||||
}
|
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
|
||||||
case 0x18: // swtrilgy and getbass. Remove IO board error on getbass. Not sure, but may be related to device feedback ?
|
case 0x18: // swtrilgy and getbass. Remove IO board error on getbass. Not sure, but may be related to device feedback ?
|
||||||
|
|
Loading…
Reference in a new issue