video/upd7220.cpp: return 0xff on FIFO underflows

* fix pc9821:skinpan intro hang
This commit is contained in:
angelosa 2024-10-18 00:40:49 +02:00
parent eb7c20d231
commit 0f0e16becd
2 changed files with 9 additions and 1 deletions

View File

@ -6767,8 +6767,10 @@ Never output any sound
<year>1993</year>
<publisher>ガイナックス (Gainax)</publisher>
<notes><![CDATA[
Hangs during the intro (first dialogue)
Hangs during the intro (first dialogue), [7220] FIFO underflows, worked around.
Several [7220] invalid commands 0x05
Draws Gainax logo with half height
Title screen oddly keeps scrolling (verify)
]]></notes>
<info name="alt_title" value="バトルスキンパニック " />
<info name="release" value="19930921" />

View File

@ -320,6 +320,12 @@ inline void upd7220_device::dequeue(uint8_t *data, int *flag)
if (m_fifo_ptr == -1)
m_sr &= ~UPD7220_SR_DATA_READY;
}
else
{
// TODO: underflow details
// pc9821:skinpan does SR checks over the wrong port during intro ...
*data = 0xff;
}
}