summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/pc_vga.cpp
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2022-02-10 04:03:14 +0100
committer GitHub <noreply@github.com>2022-02-09 22:03:14 -0500
commit553c2561089b59f2cb3918be337774e9392459e8 (patch)
treefccf7e77bab1d2fe3f01d709deaa8cb1f46858d7 /src/devices/video/pc_vga.cpp
parentc49b3026a12a5e7b635c10413fbde183449e53e0 (diff)
vga: made video RAM size configurable at machine configuration (#9289)
Diffstat (limited to 'src/devices/video/pc_vga.cpp')
-rw-r--r--src/devices/video/pc_vga.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/devices/video/pc_vga.cpp b/src/devices/video/pc_vga.cpp
index 67746edd407..d1d20c70c14 100644
--- a/src/devices/video/pc_vga.cpp
+++ b/src/devices/video/pc_vga.cpp
@@ -204,8 +204,8 @@ mach8_device::mach8_device(const machine_config &mconfig, const char *tag, devic
// zero everything, keep vtbls
void vga_device::zero()
{
- memset(&vga.svga_intf, 0, sizeof(vga.svga_intf));
- vga.memory.resize(0);
+ vga.svga_intf.seq_regcount = 0;
+ vga.svga_intf.crtc_regcount = 0;
memset(vga.pens, 0, sizeof(vga.pens));
vga.miscellaneous_output = 0;
vga.feature_control = 0;
@@ -246,8 +246,7 @@ void vga_device::device_start()
{
zero();
- int i;
- for (i = 0; i < 0x100; i++)
+ for (int i = 0; i < 0x100; i++)
set_pen_color(i, 0, 0, 0);
// Avoid an infinite loop when displaying. 0 is not possible anyway.
@@ -258,11 +257,10 @@ void vga_device::device_start()
vga.read_dipswitch.set(nullptr); //read_dipswitch;
vga.svga_intf.seq_regcount = 0x05;
vga.svga_intf.crtc_regcount = 0x19;
- vga.svga_intf.vram_size = 0x100000;
- vga.memory.resize(vga.svga_intf.vram_size);
+ vga.memory = std::make_unique<uint8_t []>(vga.svga_intf.vram_size);
memset(&vga.memory[0], 0, vga.svga_intf.vram_size);
- save_item(NAME(vga.memory));
+ save_pointer(NAME(vga.memory), vga.svga_intf.vram_size);
save_item(NAME(vga.pens));
save_item(NAME(vga.miscellaneous_output));
@@ -6621,7 +6619,6 @@ void oak_oti111_vga_device::xga_write(offs_t offset, u8 data)
void oak_oti111_vga_device::device_start()
{
svga_device::device_start();
- vga.svga_intf.vram_size = 0x100000;
std::fill(std::begin(m_oak_regs), std::end(m_oak_regs), 0);
}