diff options
author | 2022-02-10 04:03:14 +0100 | |
---|---|---|
committer | 2022-02-09 22:03:14 -0500 | |
commit | 553c2561089b59f2cb3918be337774e9392459e8 (patch) | |
tree | fccf7e77bab1d2fe3f01d709deaa8cb1f46858d7 /src/devices/video/pc_vga.cpp | |
parent | c49b3026a12a5e7b635c10413fbde183449e53e0 (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.cpp | 13 |
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); } |