nec/pc88va_v.cpp: hookup TSP Maximum Raster Address (line height per char)

Software list items promoted to working
---------------------------------------
pc88va.xml: Abunai Tengu Densetsu, Crescent Moon Girl, D.P.S - Dream Program System, Pac-Man
This commit is contained in:
angelosa 2025-03-10 20:04:49 +01:00
parent 67a8ba074c
commit 4c14cd4c25
2 changed files with 19 additions and 27 deletions

View File

@ -213,7 +213,6 @@ Incomplete MIF-201 [MIDI] emulation
Has HDFORM.COM utility Has HDFORM.COM utility
JTERM.BAT is for connecting to a PC-VAN or ANSI [terminal] JTERM.BAT is for connecting to a PC-VAN or ANSI [terminal]
PCALC.BAT requires [keyboard] PC+V press to bring up PCALC.BAT requires [keyboard] PC+V press to bring up
PLAYR.BAT has offset [IDP] text display
SKYBD.BAT wants a radio cassette player and a PC-KD861 color monitor for audio sampling thru OPNA EOS SKYBD.BAT wants a radio cassette player and a PC-KD861 color monitor for audio sampling thru OPNA EOS
VIDEO.BAT has various superimpose effects, requires dedicated board VIDEO.BAT has various superimpose effects, requires dedicated board
]]></notes> ]]></notes>
@ -873,7 +872,6 @@ Has unemulated [MIDI] options
<year>1990</year> <year>1990</year>
<publisher>マイクロキャビン (Micro Cabin)</publisher> <publisher>マイクロキャビン (Micro Cabin)</publisher>
<notes><![CDATA[ <notes><![CDATA[
Offset [IDP] text display on setup mode and opening
Optionally wants kana lock enabled for entering a name for new game [keyboard] irq Optionally wants kana lock enabled for entering a name for new game [keyboard] irq
]]></notes> ]]></notes>
<info name="release" value="19901102"/> <info name="release" value="19901102"/>
@ -947,13 +945,10 @@ Ugly pitch for [OPNA] voice samples on intro
<!-- TODO: move to a shared SW list --> <!-- TODO: move to a shared SW list -->
<!-- TODO: all these .xdf entries wants Disk B as drive A: for 88VA, annoyingly --> <!-- TODO: all these .xdf entries wants Disk B as drive A: for 88VA, annoyingly -->
<software name="abunaten" supported="no"> <software name="abunaten" supported="partial">
<description>Abunai Tengu Densetsu</description> <description>Abunai Tengu Densetsu</description>
<year>1989</year> <year>1989</year>
<publisher>アリスソフト (Alicesoft)</publisher> <publisher>アリスソフト (Alicesoft)</publisher>
<notes><![CDATA[
Offset [IDP] display
]]></notes>
<info name="release" value="198910xx"/> <info name="release" value="198910xx"/>
<info name="alt_title" value="あぶない天狗伝説 (or あぶないてんぐ伝説 )"/> <info name="alt_title" value="あぶない天狗伝説 (or あぶないてんぐ伝説 )"/>
@ -979,13 +974,10 @@ Offset [IDP] display
</part> </part>
</software> </software>
<software name="cresmoon" supported="no"> <software name="cresmoon" supported="partial">
<description>Crescent Moon Girl</description> <description>Crescent Moon Girl</description>
<year>1989</year> <year>1989</year>
<publisher>アリスソフト (Alicesoft)</publisher> <publisher>アリスソフト (Alicesoft)</publisher>
<notes><![CDATA[
Offset [IDP] display
]]></notes>
<info name="release" value="198908xx"/> <info name="release" value="198908xx"/>
<info name="alt_title" value="クレセントムーンがぁる"/> <info name="alt_title" value="クレセントムーンがぁる"/>
<info name="usage" value="Mount Disk B in drive A to boot" /> <info name="usage" value="Mount Disk B in drive A to boot" />
@ -1012,13 +1004,10 @@ Offset [IDP] display
</part> </part>
</software> </software>
<software name="dps" supported="no"> <software name="dps" supported="partial">
<description>D.P.S - Dream Program System</description> <description>D.P.S - Dream Program System</description>
<year>1989</year> <year>1989</year>
<publisher>アリスソフト (Alicesoft)</publisher> <publisher>アリスソフト (Alicesoft)</publisher>
<notes><![CDATA[
Offset [IDP] display
]]></notes>
<info name="release" value="198912xx"/> <info name="release" value="198912xx"/>
<info name="alt_title" value="ディー・ピー・エス - ドリームプログラムシステム"/> <info name="alt_title" value="ディー・ピー・エス - ドリームプログラムシステム"/>
@ -1153,8 +1142,7 @@ Offset [IDP] display
<year>1989</year> <year>1989</year>
<publisher>アリスソフト (Alicesoft)</publisher> <publisher>アリスソフト (Alicesoft)</publisher>
<notes><![CDATA[ <notes><![CDATA[
Throws "ERR=7 8550, Break in 60050" when after prologue Throws "ERR=7 8550, Break in 60050" after prologue
Offset [IDP] text display
]]></notes> ]]></notes>
<info name="release" value="198907xx"/> <info name="release" value="198907xx"/>
<info name="alt_title" value="ランス 光を求めて"/> <info name="alt_title" value="ランス 光を求めて"/>
@ -1319,12 +1307,12 @@ Needs [OFX/OFY] on gameplay
</part> </part>
</software> </software>
<software name="pacman" supported="no"> <software name="pacman" supported="partial">
<description>Pac-Man</description> <description>Pac-Man</description>
<year>19??</year> <year>19??</year>
<publisher>&lt;doujin&gt;</publisher> <publisher>&lt;doujin&gt;</publisher>
<notes><![CDATA[ <notes><![CDATA[
[SGP] and [ROP] issues on gameplay [SGP] start_dot hookup shifts lives counter
]]></notes> ]]></notes>
<info name="developer" value="Shinra" /> <info name="developer" value="Shinra" />
<info name="usage" value="Boot a PC-Engine OS disk, then swap with this disk and type BASIC PACMAN.BAS to load" /> <info name="usage" value="Boot a PC-Engine OS disk, then swap with this disk and type BASIC PACMAN.BAS to load" />
@ -1336,12 +1324,12 @@ Needs [OFX/OFY] on gameplay
</software> </software>
<!-- autobootable version of above, with PC-Engine OS embedded --> <!-- autobootable version of above, with PC-Engine OS embedded -->
<software name="pacmana" cloneof="pacman" supported="no"> <software name="pacmana" cloneof="pacman" supported="partial">
<description>Pac-Man (auto-bootable)</description> <description>Pac-Man (auto-bootable)</description>
<year>19??</year> <year>19??</year>
<publisher>&lt;doujin&gt;</publisher> <publisher>&lt;doujin&gt;</publisher>
<notes><![CDATA[ <notes><![CDATA[
[SGP] and [ROP] issues on gameplay [SGP] start_dot hookup shifts lives counter
]]></notes> ]]></notes>
<info name="developer" value="Shinra" /> <info name="developer" value="Shinra" />
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
@ -1356,7 +1344,7 @@ Needs [OFX/OFY] on gameplay
<year>1992</year> <year>1992</year>
<publisher>&lt;doujin&gt;</publisher> <publisher>&lt;doujin&gt;</publisher>
<notes><![CDATA[ <notes><![CDATA[
Broken Upyolic logo [ROP] Broken Upyolic logo, needs [gfx] DSA hooked up for double buffering
Needs joystick in otherwise it loops on title screen Needs joystick in otherwise it loops on title screen
Gameplay don't mask bullets on right side, [cliprect] Gameplay don't mask bullets on right side, [cliprect]
]]></notes> ]]></notes>
@ -1376,7 +1364,7 @@ Gameplay don't mask bullets on right side, [cliprect]
<year>2023</year> <year>2023</year>
<publisher>Inufuto</publisher> <publisher>Inufuto</publisher>
<notes><![CDATA[ <notes><![CDATA[
[gfx] Requires fractional scrolling (horizontal) [gfx] Requires fractional DOT scrolling (horizontal)
[gfx] Should require primask for right panel score display [gfx] Should require primask for right panel score display
https://youtu.be/7ltdrUPz91w https://youtu.be/7ltdrUPz91w
]]></notes> ]]></notes>

View File

@ -442,20 +442,24 @@ void pc88va_state::draw_text(bitmap_rgb32 &bitmap, const rectangle &cliprect)
rectangle split_cliprect(rxp, rxp + rw - 1, ryp, ryp + rh - 1); rectangle split_cliprect(rxp, rxp + rw - 1, ryp, ryp + rh - 1);
split_cliprect &= cliprect; split_cliprect &= cliprect;
const int line_height = m_tsp.line_height;
if (line_height < 8)
continue;
for(int y = 0; y < vh; y++) for(int y = 0; y < vh; y++)
{ {
int y_base = y * 16 + ryp - raster_offset; int y_base = y * line_height + ryp - raster_offset;
// TODO: consult with OG
if (!split_cliprect.contains(rxp, y_base) && if (!split_cliprect.contains(rxp, y_base) &&
!split_cliprect.contains(rxp, y_base + 16)) !split_cliprect.contains(rxp, y_base + line_height))
continue; continue;
for(int x = 0; x < vw; x++) for(int x = 0; x < vw; x++)
{ {
int x_base = x * 8; int x_base = x * 8;
if (!split_cliprect.contains(x_base, y_base) && if (!split_cliprect.contains(x_base, y_base) &&
!split_cliprect.contains(x_base, y_base + 16)) !split_cliprect.contains(x_base, y_base + line_height))
continue; continue;
// TODO: understand where VSA comes into equation // TODO: understand where VSA comes into equation
@ -1310,7 +1314,7 @@ void pc88va_state::execute_dspdef_cmd()
m_tsp.blink = (m_buf_ram[5] & 0xf8); m_tsp.blink = (m_buf_ram[5] & 0xf8);
if (m_tsp.blink == 0) if (m_tsp.blink == 0)
m_tsp.blink = 0x100; m_tsp.blink = 0x100;
LOGIDP("DSPDEF (%02x %02x %02x %02x %02x %02x) %05x ATTR | %02x pitch | %02x line height| %02x hline | %d blink rate\n" LOGIDP("DSPDEF (%02x %02x %02x %02x %02x %02x) %05x ATTR | %d pitch | %d line height| %d hline | %d blink rate\n"
, m_buf_ram[0], m_buf_ram[1], m_buf_ram[2], m_buf_ram[3], m_buf_ram[4], m_buf_ram[5] , m_buf_ram[0], m_buf_ram[1], m_buf_ram[2], m_buf_ram[3], m_buf_ram[4], m_buf_ram[5]
, m_tsp.attr_offset | 0x40000 , m_tsp.attr_offset | 0x40000
, m_tsp.pitch , m_tsp.pitch