pntnpuzl: fix display

This commit is contained in:
cracyc 2022-12-08 09:04:58 -06:00
parent 4f4dddd044
commit b0656a3201
4 changed files with 5 additions and 2 deletions

View File

@ -182,6 +182,7 @@ void trident_vga_device::device_start()
m_vblank_timer = timer_alloc(FUNC(vga_device::vblank_timer_cb), this); m_vblank_timer = timer_alloc(FUNC(vga_device::vblank_timer_cb), this);
vga.svga_intf.seq_regcount = 0x0f; vga.svga_intf.seq_regcount = 0x0f;
vga.svga_intf.crtc_regcount = 0x60; vga.svga_intf.crtc_regcount = 0x60;
svga.ignore_chain4 = true;
memset(&tri, 0, sizeof(tri)); memset(&tri, 0, sizeof(tri));
} }
@ -621,6 +622,7 @@ void trident_vga_device::trident_crtc_reg_write(uint8_t index, uint8_t data)
case 0x1e: // Module Testing Register case 0x1e: // Module Testing Register
tri.cr1e = data; tri.cr1e = data;
vga.crtc.start_addr = (vga.crtc.start_addr & 0xfffeffff) | ((data & 0x20)<<11); vga.crtc.start_addr = (vga.crtc.start_addr & 0xfffeffff) | ((data & 0x20)<<11);
trident_define_video_mode();
break; break;
case 0x1f: case 0x1f:
tri.cr1f = data; // "Software Programming Register" written to by the BIOS tri.cr1f = data; // "Software Programming Register" written to by the BIOS

View File

@ -711,7 +711,7 @@ void svga_device::svga_vh_rgb8(bitmap_rgb32 &bitmap, const rectangle &cliprect)
// line_length = vga.crtc.offset << 4; // line_length = vga.crtc.offset << 4;
// } // }
uint8_t start_shift = (!(vga.sequencer.data[4] & 0x08)) ? 2 : 0; uint8_t start_shift = (!(vga.sequencer.data[4] & 0x08) || svga.ignore_chain4) ? 2 : 0;
for (int addr = VGA_START_ADDRESS << start_shift, line=0; line<LINES; line+=height, addr+=offset(), curr_addr+=offset()) for (int addr = VGA_START_ADDRESS << start_shift, line=0; line<LINES; line+=height, addr+=offset(), curr_addr+=offset())
{ {
for (int yi = 0;yi < height; yi++) for (int yi = 0;yi < height; yi++)

View File

@ -273,6 +273,7 @@ protected:
uint8_t rgb24_en; uint8_t rgb24_en;
uint8_t rgb32_en; uint8_t rgb32_en;
uint8_t id; uint8_t id;
bool ignore_chain4;
} svga; } svga;
}; };

View File

@ -392,7 +392,7 @@ void pntnpuzl_state::pntnpuzl(machine_config &config)
TVGA9000_VGA(config, m_svga, 0); TVGA9000_VGA(config, m_svga, 0);
m_svga->set_screen(m_screen); m_svga->set_screen(m_screen);
m_svga->set_vram_size(0x200000); m_svga->set_vram_size(0x100000);
// TODO: runs in external clock mode, needs setter to pc_vga. ~70 Hz is best guess // TODO: runs in external clock mode, needs setter to pc_vga. ~70 Hz is best guess
SCREEN(config, m_screen, SCREEN_TYPE_RASTER); SCREEN(config, m_screen, SCREEN_TYPE_RASTER);