mirror of
https://github.com/holub/mame
synced 2025-04-19 07:00:31 +03:00
nec/pc88va_sgp.cpp: add RGB565 ROPs
nec/pc88va_v.cpp: use DSA in draw_packed_gfx_4bpp, halve pitch for draw_direct_gfx_rgb565 hash/pc88va.xml: update QA, and use saner defaults where applicable
This commit is contained in:
parent
b8de24c775
commit
631a761aba
111
hash/pc88va.xml
111
hash/pc88va.xml
@ -90,8 +90,8 @@ Operating Systems
|
||||
<year>19??</year>
|
||||
<publisher>NEC</publisher>
|
||||
<notes><![CDATA[
|
||||
1st sequence should [OFX/OFY] scroll, half height [gfx] layer
|
||||
3rd sequence has half height [gfx] layer
|
||||
1st sequence should [OFX/OFY] scroll
|
||||
3rd sequence looks slow, [SGP]?
|
||||
Transition fades out too late, sprite should supposedly fade out before reaching top of screen, requires [IDP] IBF flag
|
||||
Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
]]></notes>
|
||||
@ -110,10 +110,7 @@ Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
<year>19??</year>
|
||||
<publisher>NEC</publisher>
|
||||
<notes><![CDATA[
|
||||
1st sequence should [OFX/OFY] scroll, half height [gfx] layer
|
||||
3rd sequence has half height [gfx] layer
|
||||
Transition fades out too late, sprite should supposedly fade out before reaching top of screen, requires [IDP] IBF flag
|
||||
Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
(same as pc88vad)
|
||||
]]></notes>
|
||||
<info name="alt_title" value="88VA1 店頭デモ" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -128,10 +125,7 @@ Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
<year>19??</year>
|
||||
<publisher>NEC</publisher>
|
||||
<notes><![CDATA[
|
||||
1st sequence should [OFX/OFY] scroll, half height [gfx] layer
|
||||
3rd sequence has half height [gfx] layer
|
||||
Transition fades out too late, sprite should supposedly fade out before reaching top of screen, requires [IDP] IBF flag
|
||||
Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
(same as pc88vad)
|
||||
]]></notes>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="1331888">
|
||||
@ -150,6 +144,7 @@ Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
<notes><![CDATA[
|
||||
[gfx] status bar has wrong colors [OFX/OFY]
|
||||
]]></notes>
|
||||
<sharedfeat name="mouseport_default" value="mouse"/>
|
||||
<info name="alt_title" value="アニメフレーマー" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Program Disk" />
|
||||
@ -175,6 +170,7 @@ Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
<notes><![CDATA[
|
||||
[gfx] status bar has wrong colors [OFX/OFY]
|
||||
]]></notes>
|
||||
<sharedfeat name="mouseport_default" value="mouse"/>
|
||||
<!-- labels were swapped -->
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Program Disk" />
|
||||
@ -196,8 +192,8 @@ Transition between 3rd and 4th sequences don't look right, [IDP]
|
||||
<year>1989</year>
|
||||
<publisher>Music Network</publisher>
|
||||
<notes><![CDATA[
|
||||
Very broken GFXs with extensive $510 [ROP] writes
|
||||
Has unsupported MIF-201 [MIDI] interface cfr. http://www.pc88.gr.jp/vafaq/view.php/article/88va/vafaq/71
|
||||
Uses opaque pen for [gfx] layer (white on black)
|
||||
Incomplete MIF-201 [MIDI] emulation
|
||||
]]></notes>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="1331888">
|
||||
@ -214,9 +210,13 @@ Has unsupported MIF-201 [MIDI] interface cfr. http://www.pc88.gr.jp/vafaq/view.p
|
||||
<publisher>NEC</publisher>
|
||||
<notes><![CDATA[
|
||||
Has HDFORM.COM utility
|
||||
Unsupported features in batch files
|
||||
Untested directory NEC_SAMP (cannot type [keyboard] underscore char)
|
||||
JTERM.BAT is for connecting to a PC-VAN or ANSI [terminal]
|
||||
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
|
||||
VIDEO.BAT has various superimpose effects, requires dedicated board
|
||||
]]></notes>
|
||||
<sharedfeat name="mouseport_default" value="mouse"/>
|
||||
<info name="alt_title" value="PC-Engine(VA2添付版)" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="1338960">
|
||||
@ -230,11 +230,10 @@ Untested directory NEC_SAMP (cannot type [keyboard] underscore char)
|
||||
<year>1988</year>
|
||||
<publisher>NEC</publisher>
|
||||
<notes><![CDATA[
|
||||
Has HDFORM.COM utility
|
||||
Unsupported features in batch files
|
||||
Untested directory NEC_SAMP (cannot type [keyboard] underscore char)
|
||||
(same as pceva2tb)
|
||||
]]></notes>
|
||||
<!-- baddump: NEC_SAMP directory edited in 2010 -->
|
||||
<sharedfeat name="mouseport_default" value="mouse"/>
|
||||
<!-- baddump: NEC_SAMP directory edited in 2010 (no active changes inside, remnants of a deleted file?) -->
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="1331888">
|
||||
<rom name="pc-engine 1.1 os.d88" size="1331888" crc="17d2e121" sha1="b88095cae4238a68833435ac0e3414081cb5a13b" status="baddump"/>
|
||||
@ -290,7 +289,6 @@ Lists dual port 1/2 as a unsupported [DE-9] input method
|
||||
Winning newspaper screen has [OFX/OFY] bug
|
||||
How to exit from attract mode once you enter it?
|
||||
]]></notes>
|
||||
|
||||
<info name="alt_title" value="ファミリースタジアム" />
|
||||
<info name="usage" value="Menuing works with keyboard only until game prompts you to use a joystick"/>
|
||||
<!--combined image-->
|
||||
@ -349,7 +347,7 @@ Winning newspaper screen has [OFX/OFY] bug
|
||||
<year>198?</year>
|
||||
<publisher>スタークラフト (Starcraft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Currently conceals/wipes out [GVRAM] display
|
||||
Needs [IDP] text display to go off for bottommost row
|
||||
]]></notes>
|
||||
<info name="alt_title" value="マイトアンドマジック" />
|
||||
<info name="usage" value="Boot with Disk C in drive 1"/>
|
||||
@ -383,6 +381,7 @@ Currently conceals/wipes out [GVRAM] display
|
||||
<notes><![CDATA[
|
||||
Burps on [FDC] access after disk swap with program and player disks, trying to scan chrn=(4, 0, 1, 256)
|
||||
]]></notes>
|
||||
<sharedfeat name="mouseport_default" value="mouse"/>
|
||||
<info name="alt_title" value="マイトアンドマジック2" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Boot Disk" />
|
||||
@ -418,7 +417,7 @@ Burps on [FDC] access after disk swap with program and player disks, trying to s
|
||||
<year>1987</year>
|
||||
<publisher>ウインキーソフト (Winky Soft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Map select uses [ROP]
|
||||
Display off in places during intro
|
||||
Needs graphic [OFX/OFY] scroll on gameplay
|
||||
Unplayable with [keyboard]
|
||||
Gameplay start with [cliprect] mask effect
|
||||
@ -460,10 +459,7 @@ Gameplay start with [cliprect] mask effect
|
||||
<year>1987</year>
|
||||
<publisher>ウインキーソフト (Winky Soft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Map select uses [ROP]
|
||||
Needs graphic [OFX/OFY] scroll on gameplay
|
||||
Unplayable with [keyboard]
|
||||
Gameplay start with [cliprect] mask effect
|
||||
(same as olteus)
|
||||
]]></notes>
|
||||
<info name="alt_title" value="オルテウス" />
|
||||
<info name="usage" value="Kana Lock on pauses the game"/>
|
||||
@ -524,9 +520,9 @@ Needs graphic [OFX/OFY] scroll
|
||||
<year>198?</year>
|
||||
<publisher>スタークラフト (Starcraft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Currently conceals/wipes out [GVRAM] display
|
||||
Burps on [FDC] access after disk swap with program and player disks, trying to scan chrn=(38, 0, 1, 256)
|
||||
]]></notes>
|
||||
<sharedfeat name="mouseport_default" value="mouse"/>
|
||||
<info name="alt_title" value="ローグアライアンス" />
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -557,11 +553,11 @@ Burps on [FDC] access after disk swap with program and player disks, trying to s
|
||||
<publisher>システムソフト (System Soft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Needs [dac1bit] clicks on gameplay
|
||||
[mouse] is a requirement?
|
||||
May crash with disk error when entering winning animation (verify)
|
||||
Winning animation is glitchy [OFX/OFY]?, uses [IDP] text transpen with upper bits set (for flame effect?), press mouse left button to return to game
|
||||
[OPNA] seems to cut off shortly on intro and winning screen compared to VAEG
|
||||
]]></notes>
|
||||
<sharedfeat name="mouseport_default" value="mouse"/>
|
||||
<info name="alt_title" value="上海" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="1296112">
|
||||
@ -576,7 +572,7 @@ Winning animation is glitchy [OFX/OFY]?, uses [IDP] text transpen with upper bit
|
||||
<publisher>日本テレネット (Nihon Telenet)</publisher>
|
||||
<notes><![CDATA[
|
||||
Opening has a few weird places for [gfx] priority and half height [gfx]
|
||||
Has [SGP] and [ROP] artifacts
|
||||
Missing player shot and enemy sprites [gfx] during gameplay
|
||||
Omake: if sound irqs don't run then needs to press key 0 pad to move on
|
||||
]]></notes>
|
||||
<info name="alt_title" value="神羅万象"/>
|
||||
@ -872,8 +868,7 @@ Has unemulated [MIDI] options
|
||||
<year>1990</year>
|
||||
<publisher>マイクロキャビン (Micro Cabin)</publisher>
|
||||
<notes><![CDATA[
|
||||
Half height [gfx]s
|
||||
Heavy [ROP] artifacts during gameplay
|
||||
Offset [IDP] text display on setup mode and opening
|
||||
Optionally wants kana lock enabled for entering a name for new game [keyboard] irq
|
||||
]]></notes>
|
||||
<info name="release" value="19901102"/>
|
||||
@ -907,10 +902,8 @@ Optionally wants kana lock enabled for entering a name for new game [keyboard] i
|
||||
<year>1991</year>
|
||||
<publisher>マイクロキャビン (Micro Cabin)</publisher>
|
||||
<notes><![CDATA[
|
||||
Heavy [ROP] artifacts on intro, runs incredibly slow
|
||||
Sprites don't draw properly during gameplay [ROP]
|
||||
Runs too slow, [SGP]?
|
||||
Ugly pitch for [OPNA] voice samples on intro
|
||||
[gfx]s have halved height
|
||||
]]></notes>
|
||||
<info name="release" value="19911220"/>
|
||||
<info name="alt_title" value="フレイ"/>
|
||||
@ -947,29 +940,29 @@ Ugly pitch for [OPNA] voice samples on intro
|
||||
|
||||
<!-- Dual floppies, should work both on the PC88VA and on the X68000 (usually you just have to switch the first two disks depending on the system) -->
|
||||
<!-- TODO: move to a shared SW list -->
|
||||
<!-- TODO: all these .xdf entries wants Disk B as drive A: for 88VA -->
|
||||
<!-- TODO: all these .xdf entries wants Disk B as drive A: for 88VA, annoyingly -->
|
||||
|
||||
<software name="abunaten" supported="no">
|
||||
<description>Abunai Tengu Densetsu</description>
|
||||
<year>1989</year>
|
||||
<publisher>アリスソフト (Alicesoft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Loads N88 BASIC then jumps to lalaland [FDC]
|
||||
Offset [IDP] display
|
||||
]]></notes>
|
||||
<info name="release" value="198910xx"/>
|
||||
<info name="alt_title" value="あぶない天狗伝説 (or あぶないてんぐ伝説 )"/>
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk a.xdf" size="1261568" crc="7614c8af" sha1="eeea190cf882eb91b55965553cf3bac64f09dee0"/>
|
||||
<rom name="disk b.xdf" size="1261568" crc="9e83829f" sha1="e171236054d08b78b30657a3f7132e179de9a0cf"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk b.xdf" size="1261568" crc="9e83829f" sha1="e171236054d08b78b30657a3f7132e179de9a0cf"/>
|
||||
<rom name="disk a.xdf" size="1261568" crc="7614c8af" sha1="eeea190cf882eb91b55965553cf3bac64f09dee0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
@ -986,22 +979,23 @@ Loads N88 BASIC then jumps to lalaland [FDC]
|
||||
<year>1989</year>
|
||||
<publisher>アリスソフト (Alicesoft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Loads N88 BASIC then jumps to lalaland [FDC]
|
||||
Offset [IDP] display
|
||||
]]></notes>
|
||||
<info name="release" value="198908xx"/>
|
||||
<info name="alt_title" value="クレセントムーンがぁる"/>
|
||||
<info name="usage" value="Mount Disk B in drive A to boot" />
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk a.xdf" size="1261568" crc="ccebcb01" sha1="fc6c8913c9e0fc70b0983d0d2dc8837e441ae567"/>
|
||||
<rom name="disk b.xdf" size="1261568" crc="702de57e" sha1="1d7bfbcb3a2543abfadec1a5d999386994763384"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk b.xdf" size="1261568" crc="702de57e" sha1="1d7bfbcb3a2543abfadec1a5d999386994763384"/>
|
||||
<rom name="disk a.xdf" size="1261568" crc="ccebcb01" sha1="fc6c8913c9e0fc70b0983d0d2dc8837e441ae567"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
@ -1018,22 +1012,22 @@ Loads N88 BASIC then jumps to lalaland [FDC]
|
||||
<year>1989</year>
|
||||
<publisher>アリスソフト (Alicesoft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Loads N88 BASIC then jumps to lalaland [FDC]
|
||||
Offset [IDP] display
|
||||
]]></notes>
|
||||
<info name="release" value="198912xx"/>
|
||||
<info name="alt_title" value="ディー・ピー・エス - ドリームプログラムシステム"/>
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk a.xdf" size="1261568" crc="f6078845" sha1="f1695e9b313daba8a93ee2d74aefe833262078f4"/>
|
||||
<rom name="disk b.xdf" size="1261568" crc="224d3faf" sha1="300cf05020e91069c0fd54d2d992e5b7acccd1c9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk b.xdf" size="1261568" crc="224d3faf" sha1="300cf05020e91069c0fd54d2d992e5b7acccd1c9"/>
|
||||
<rom name="disk a.xdf" size="1261568" crc="f6078845" sha1="f1695e9b313daba8a93ee2d74aefe833262078f4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -1154,22 +1148,23 @@ Loads N88 BASIC then jumps to lalaland [FDC]
|
||||
<year>1989</year>
|
||||
<publisher>アリスソフト (Alicesoft)</publisher>
|
||||
<notes><![CDATA[
|
||||
Loads N88 BASIC then jumps to lalaland [FDC]
|
||||
Throws "ERR=7 8550, Break in 60050" when after prologue
|
||||
Offset [IDP] text display
|
||||
]]></notes>
|
||||
<info name="release" value="198907xx"/>
|
||||
<info name="alt_title" value="ランス 光を求めて"/>
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk a.xdf" size="1261568" crc="7512d4ff" sha1="a442213bf7330548ef012f3e0623b1df5fb2142e"/>
|
||||
<rom name="disk b.xdf" size="1261568" crc="fa088a6f" sha1="7ddcace8d5e42a75b0ca30f262f71159844ee69d"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk B" />
|
||||
<feature name="part_id" value="Disk A" />
|
||||
<dataarea name="flop" size="1261568">
|
||||
<rom name="disk b.xdf" size="1261568" crc="fa088a6f" sha1="7ddcace8d5e42a75b0ca30f262f71159844ee69d"/>
|
||||
<rom name="disk a.xdf" size="1261568" crc="7512d4ff" sha1="a442213bf7330548ef012f3e0623b1df5fb2142e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
@ -1248,10 +1243,9 @@ All disks fail initial bootstrap [FDC]
|
||||
<year>1996</year>
|
||||
<publisher><doujin></publisher>
|
||||
<notes><![CDATA[
|
||||
Requires [ROP] for intro and title screen
|
||||
Has glitchy [gfx] after starting a game
|
||||
Has badly colored sprites on character select
|
||||
Doesn't draw background in gameplay, uses direct color layers
|
||||
Has unemulated [SGP] operand for shot 1
|
||||
[SGP] leaves trails during gameplay
|
||||
]]></notes>
|
||||
<info name="developer" value="Fredia" />
|
||||
<info name="alt_title" value="ばる〜んぶ れ〜か〜" />
|
||||
@ -1522,8 +1516,7 @@ https://youtu.be/zxy8lTZ_w_k
|
||||
<year>2023</year>
|
||||
<publisher>Inufuto</publisher>
|
||||
<notes><![CDATA[
|
||||
[gfx] wrong palette bank
|
||||
[gfx] Requires fractional scrolling (vertical)
|
||||
Randomly draws with the wrong [gfx] wrong palette bank
|
||||
https://youtu.be/JIK3ruhURG4
|
||||
]]></notes>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
|
@ -264,7 +264,7 @@ private:
|
||||
|
||||
void draw_indexed_gfx_1bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u8 pal_base);
|
||||
void draw_indexed_gfx_4bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u32 display_start_offset, u8 pal_base, u16 fb_width, u16 fb_height);
|
||||
void draw_direct_gfx_8bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u16 fb_width, u16 fb_height);
|
||||
void draw_direct_gfx_8bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u32 display_start_offset, u16 fb_width, u16 fb_height);
|
||||
void draw_direct_gfx_rgb565(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u16 fb_width, u16 fb_height);
|
||||
|
||||
void draw_packed_gfx_4bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u32 display_start_offset, u8 pal_base, u16 fb_width, u16 fb_height);
|
||||
|
@ -21,10 +21,10 @@ TODO:
|
||||
#include "emu.h"
|
||||
#include "pc88va_sgp.h"
|
||||
|
||||
//#include <iostream>
|
||||
|
||||
#define LOG_COMMAND (1U << 1)
|
||||
|
||||
//#include <iostream>
|
||||
|
||||
#define VERBOSE (LOG_GENERAL)
|
||||
//#define LOG_OUTPUT_STREAM std::cout
|
||||
|
||||
@ -420,9 +420,12 @@ void pc88va_sgp_device::execute_blit(u16 draw_mode, bool is_patblt)
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_src.pixel_mode == 0 || m_src.pixel_mode == 3 || m_src.pixel_mode != m_dst.pixel_mode)
|
||||
// TODO: pceva2tb:SKYBD.BAT wants a 1bpp to 4bpp translation
|
||||
if (m_src.pixel_mode == 0 || m_src.pixel_mode != m_dst.pixel_mode)
|
||||
{
|
||||
LOG("SGP: Warning BITBLT pixel mode %d x %d\n", m_src.pixel_mode, m_dst.pixel_mode);
|
||||
static const char *const pixel_mode[] = { "1bpp", "4bpp", "8bpp", "rgb565" };
|
||||
|
||||
LOG("SGP: Warning BITBLT pixel mode src %s against dst %s\n", pixel_mode[m_src.pixel_mode], pixel_mode[m_dst.pixel_mode]);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -472,6 +475,24 @@ void pc88va_sgp_device::execute_blit(u16 draw_mode, bool is_patblt)
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
// RGB565 (ballbrkr title)
|
||||
case 3:
|
||||
{
|
||||
const u32 dst_offset = dst_address + ((xi + m_dst.start_dot) << 1);
|
||||
|
||||
u16 src = m_data->read_word(src_address + (xi << 1)) & 0xffff;
|
||||
u16 dst = m_data->read_word(dst_offset) & 0xffff;
|
||||
u16 result = dst;
|
||||
|
||||
if ((this->*tpmod_table[tp_mod])(src, dst))
|
||||
{
|
||||
result = (this->*rop_table[logical_op])(src, dst);
|
||||
m_data->write_word(dst_offset, result);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,6 @@
|
||||
#include "emu.h"
|
||||
#include "pc88va.h"
|
||||
|
||||
//#include <iostream>
|
||||
|
||||
|
||||
#define LOG_IDP (1U << 1) // TSP data
|
||||
#define LOG_FB (1U << 2) // framebuffer strips (verbose)
|
||||
@ -14,6 +12,8 @@
|
||||
#define LOG_COLOR (1U << 5) // current color mode
|
||||
#define LOG_TEXT (1U << 6) // text strips (verbose)
|
||||
|
||||
//#include <iostream>
|
||||
|
||||
#define VERBOSE (LOG_GENERAL | LOG_IDP)
|
||||
//#define LOG_OUTPUT_STREAM std::cout
|
||||
|
||||
@ -29,11 +29,11 @@
|
||||
void pc88va_state::video_start()
|
||||
{
|
||||
const u32 gvram_size = 0x40000;
|
||||
m_gvram = std::make_unique<uint8_t[]>(gvram_size);
|
||||
m_gvram = make_unique_clear<uint8_t[]>(gvram_size);
|
||||
std::fill_n(m_gvram.get(), gvram_size, 0);
|
||||
|
||||
const u32 kanjiram_size = 0x4000;
|
||||
m_kanji_ram = std::make_unique<uint8_t[]>(kanjiram_size);
|
||||
m_kanji_ram = make_unique_clear<uint8_t[]>(kanjiram_size);
|
||||
m_gfxdecode->gfx(2)->set_source(m_kanji_ram.get());
|
||||
m_gfxdecode->gfx(3)->set_source(m_kanji_ram.get());
|
||||
m_vrtc_irq_line = 432;
|
||||
@ -55,6 +55,7 @@ void pc88va_state::video_start()
|
||||
save_item(NAME(m_vrtc_irq_line));
|
||||
}
|
||||
|
||||
// TODO: all needs to be verified
|
||||
void pc88va_state::video_reset()
|
||||
{
|
||||
m_gden0 = false;
|
||||
@ -63,6 +64,7 @@ void pc88va_state::video_reset()
|
||||
m_color_mode = 0;
|
||||
m_pltm = 0;
|
||||
m_pltp = 0;
|
||||
m_video_pri_reg[0] = m_video_pri_reg[1] = 0;
|
||||
}
|
||||
|
||||
void pc88va_state::palette_init(palette_device &palette) const
|
||||
@ -810,7 +812,7 @@ void pc88va_state::draw_graphic_layer(bitmap_rgb32 &bitmap, const rectangle &cli
|
||||
draw_packed_gfx_5bpp(m_graphic_bitmap[which], split_cliprect, fsa, dsa, layer_pal_bank, fbw, fbl);
|
||||
}
|
||||
else
|
||||
draw_direct_gfx_8bpp(m_graphic_bitmap[which], split_cliprect, fsa, fbw, fbl);
|
||||
draw_direct_gfx_8bpp(m_graphic_bitmap[which], split_cliprect, fsa, dsa, fbw, fbl);
|
||||
break;
|
||||
case 3: draw_direct_gfx_rgb565(m_graphic_bitmap[which], split_cliprect, fsa, fbw, fbl); break;
|
||||
default:
|
||||
@ -902,7 +904,7 @@ void pc88va_state::draw_packed_gfx_5bpp(bitmap_rgb32 &bitmap, const rectangle &c
|
||||
}
|
||||
}
|
||||
|
||||
void pc88va_state::draw_direct_gfx_8bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u16 fb_width, u16 fb_height)
|
||||
void pc88va_state::draw_direct_gfx_8bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u32 display_start_offset, u16 fb_width, u16 fb_height)
|
||||
{
|
||||
// const u16 y_min = std::max(cliprect.min_y, y_start);
|
||||
// const u16 y_max = std::min(cliprect.max_y, y_min + fb_height);
|
||||
@ -913,7 +915,7 @@ void pc88va_state::draw_direct_gfx_8bpp(bitmap_rgb32 &bitmap, const rectangle &c
|
||||
|
||||
for(int x = cliprect.min_x; x <= cliprect.max_x; x++)
|
||||
{
|
||||
u32 bitmap_offset = line_offset + x;
|
||||
u32 bitmap_offset = (line_offset + x) & 0x3ffff;
|
||||
|
||||
uint32_t color = (m_gvram[bitmap_offset] & 0xff);
|
||||
|
||||
@ -937,7 +939,8 @@ void pc88va_state::draw_direct_gfx_rgb565(bitmap_rgb32 &bitmap, const rectangle
|
||||
|
||||
for(int y = cliprect.min_y; y <= cliprect.max_y; y++)
|
||||
{
|
||||
const u32 line_offset = ((y * fb_width) + fb_start_offset) & 0x3ffff;
|
||||
// pc88vad requires halved pitch for first screen
|
||||
const u32 line_offset = ((y * fb_width >> 1) + fb_start_offset) & 0x3ffff;
|
||||
|
||||
for(int x = cliprect.min_x; x <= cliprect.max_x; x++)
|
||||
{
|
||||
@ -956,6 +959,7 @@ void pc88va_state::draw_direct_gfx_rgb565(bitmap_rgb32 &bitmap, const rectangle
|
||||
}
|
||||
}
|
||||
|
||||
// famista, probably all inufuto games
|
||||
void pc88va_state::draw_packed_gfx_4bpp(bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 fb_start_offset, u32 display_start_offset, u8 pal_base, u16 fb_width, u16 fb_height)
|
||||
{
|
||||
// const u16 y_min = std::max(cliprect.min_y, y_start);
|
||||
@ -968,7 +972,7 @@ void pc88va_state::draw_packed_gfx_4bpp(bitmap_rgb32 &bitmap, const rectangle &c
|
||||
for(int x = cliprect.min_x; x <= cliprect.max_x; x += 8)
|
||||
{
|
||||
u16 x_char = (x >> 3);
|
||||
u32 bitmap_offset = line_offset + x_char;
|
||||
u32 bitmap_offset = (line_offset + x_char + (display_start_offset >> 2)) & 0x0ffff;
|
||||
|
||||
for (int xi = 0; xi < 8; xi ++)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user