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/bus/isa | |
parent | c49b3026a12a5e7b635c10413fbde183449e53e0 (diff) |
vga: made video RAM size configurable at machine configuration (#9289)
Diffstat (limited to 'src/devices/bus/isa')
-rw-r--r-- | src/devices/bus/isa/mach32.cpp | 3 | ||||
-rw-r--r-- | src/devices/bus/isa/s3virge.cpp | 6 | ||||
-rw-r--r-- | src/devices/bus/isa/svga_cirrus.cpp | 8 | ||||
-rw-r--r-- | src/devices/bus/isa/svga_s3.cpp | 16 | ||||
-rw-r--r-- | src/devices/bus/isa/svga_trident.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/isa/svga_tseng.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/isa/trident.cpp | 10 | ||||
-rw-r--r-- | src/devices/bus/isa/vga.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/isa/vga_ati.cpp | 12 |
9 files changed, 43 insertions, 24 deletions
diff --git a/src/devices/bus/isa/mach32.cpp b/src/devices/bus/isa/mach32.cpp index 178556918a8..064947d5c7c 100644 --- a/src/devices/bus/isa/mach32.cpp +++ b/src/devices/bus/isa/mach32.cpp @@ -115,9 +115,6 @@ void mach32_device::device_start() { ati_vga_device::device_start(); ati.vga_chip_id = 0x00; // correct? - vga.svga_intf.vram_size = 0x400000; - vga.memory.resize(vga.svga_intf.vram_size); - memset(&vga.memory[0], 0, vga.svga_intf.vram_size); } void mach32_device::device_reset() diff --git a/src/devices/bus/isa/s3virge.cpp b/src/devices/bus/isa/s3virge.cpp index 070bf320a42..0f6edd65976 100644 --- a/src/devices/bus/isa/s3virge.cpp +++ b/src/devices/bus/isa/s3virge.cpp @@ -75,10 +75,10 @@ void s3virge_vga_device::device_start() vga.read_dipswitch.set(nullptr); //read_dipswitch; vga.svga_intf.seq_regcount = 0x1c; vga.svga_intf.crtc_regcount = 0x19; - vga.svga_intf.vram_size = 0x400000; - 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(vga.memory,"Video RAM"); + + save_pointer(vga.memory, "Video RAM", vga.svga_intf.vram_size); save_item(vga.crtc.data,"CRTC Registers"); save_item(vga.sequencer.data,"Sequencer Registers"); save_item(vga.attribute.data,"Attribute Registers"); diff --git a/src/devices/bus/isa/svga_cirrus.cpp b/src/devices/bus/isa/svga_cirrus.cpp index 943606e9be4..750d0f41142 100644 --- a/src/devices/bus/isa/svga_cirrus.cpp +++ b/src/devices/bus/isa/svga_cirrus.cpp @@ -36,7 +36,9 @@ void isa16_svga_cirrus_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update("vga", FUNC(cirrus_gd5430_device::screen_update)); - CIRRUS_GD5430(config, m_vga, 0).set_screen("screen"); + CIRRUS_GD5430(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x200000); } //------------------------------------------------- @@ -114,7 +116,9 @@ void isa16_svga_cirrus_gd542x_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update)); - CIRRUS_GD5428(config, m_vga, 0).set_screen("screen"); + CIRRUS_GD5428(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x200000); } //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_s3.cpp b/src/devices/bus/isa/svga_s3.cpp index 9cbc72b078f..58984396d86 100644 --- a/src/devices/bus/isa/svga_s3.cpp +++ b/src/devices/bus/isa/svga_s3.cpp @@ -57,7 +57,9 @@ void isa16_svga_s3_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(s3_vga_device::screen_update)); - S3_VGA(config, m_vga, 0).set_screen("screen"); + S3_VGA(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x100000); } //------------------------------------------------- @@ -160,7 +162,9 @@ void isa16_s3virge_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(s3virge_vga_device::screen_update)); - S3VIRGE(config, m_vga, 0).set_screen("screen"); + S3VIRGE(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x400000); m_vga->linear_config_changed().set(FUNC(isa16_s3virge_device::linear_config_changed_w)); } @@ -250,7 +254,9 @@ void isa16_s3virgedx_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(s3virgedx_vga_device::screen_update)); - S3VIRGEDX(config, m_vga, 0).set_screen("screen"); + S3VIRGEDX(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x400000); m_vga->linear_config_changed().set(FUNC(isa16_s3virgedx_device::linear_config_changed_w)); } @@ -364,7 +370,9 @@ void isa16_stealth3d2kpro_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(s3virgedx_rev1_vga_device::screen_update)); - S3VIRGEDX1(config, m_vga, 0).set_screen("screen"); + S3VIRGEDX1(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x400000); m_vga->linear_config_changed().set(FUNC(isa16_stealth3d2kpro_device::linear_config_changed_w)); } diff --git a/src/devices/bus/isa/svga_trident.cpp b/src/devices/bus/isa/svga_trident.cpp index 7eda60d2446..f3b4e0f9a6f 100644 --- a/src/devices/bus/isa/svga_trident.cpp +++ b/src/devices/bus/isa/svga_trident.cpp @@ -36,7 +36,9 @@ void isa16_svga_tgui9680_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(trident_vga_device::screen_update)); - TRIDENT_VGA(config, m_vga, 0).set_screen("screen"); + TRIDENT_VGA(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x200000); } //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_tseng.cpp b/src/devices/bus/isa/svga_tseng.cpp index ab5bbb755f0..0d1485ad17d 100644 --- a/src/devices/bus/isa/svga_tseng.cpp +++ b/src/devices/bus/isa/svga_tseng.cpp @@ -35,7 +35,9 @@ void isa8_svga_et4k_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(tseng_vga_device::screen_update)); - TSENG_VGA(config, m_vga, 0).set_screen("screen"); + TSENG_VGA(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x100000); } //------------------------------------------------- diff --git a/src/devices/bus/isa/trident.cpp b/src/devices/bus/isa/trident.cpp index 5fc2d2d6d19..693aaf5e991 100644 --- a/src/devices/bus/isa/trident.cpp +++ b/src/devices/bus/isa/trident.cpp @@ -160,8 +160,7 @@ void trident_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. @@ -170,11 +169,10 @@ void trident_vga_device::device_start() // copy over interfaces vga.read_dipswitch.set(nullptr); //read_dipswitch; - vga.svga_intf.vram_size = 0x200000; - - 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_pointer(vga.crtc.data,"CRTC Registers",0x100); save_pointer(vga.sequencer.data,"Sequencer Registers",0x100); save_pointer(vga.attribute.data,"Attribute Registers", 0x15); diff --git a/src/devices/bus/isa/vga.cpp b/src/devices/bus/isa/vga.cpp index 11d94d7fbdd..b573f4c5701 100644 --- a/src/devices/bus/isa/vga.cpp +++ b/src/devices/bus/isa/vga.cpp @@ -33,7 +33,9 @@ void isa8_vga_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(vga_device::screen_update)); - VGA(config, m_vga, 0).set_screen("screen"); + VGA(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x100000); } //------------------------------------------------- diff --git a/src/devices/bus/isa/vga_ati.cpp b/src/devices/bus/isa/vga_ati.cpp index d6ce586a9fd..aaebcf3969b 100644 --- a/src/devices/bus/isa/vga_ati.cpp +++ b/src/devices/bus/isa/vga_ati.cpp @@ -82,7 +82,9 @@ void isa16_vga_gfxultra_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(ati_vga_device::screen_update)); - ATI_VGA(config, m_vga, 0).set_screen("screen"); + ATI_VGA(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x100000); } void isa16_vga_gfxultrapro_device::device_add_mconfig(machine_config &config) @@ -91,7 +93,9 @@ void isa16_vga_gfxultrapro_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(mach32_device::screen_update)); - ATIMACH32(config, m_vga, 0).set_screen("screen"); + ATIMACH32(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x400000); } void isa16_vga_mach64_device::device_add_mconfig(machine_config &config) @@ -100,7 +104,9 @@ void isa16_vga_mach64_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update(m_vga, FUNC(mach64_device::screen_update)); - ATIMACH64(config, m_vga, 0).set_screen("screen"); + ATIMACH64(config, m_vga, 0); + m_vga->set_screen("screen"); + m_vga->set_vram_size(0x400000); } |