summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa
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/bus/isa
parentc49b3026a12a5e7b635c10413fbde183449e53e0 (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.cpp3
-rw-r--r--src/devices/bus/isa/s3virge.cpp6
-rw-r--r--src/devices/bus/isa/svga_cirrus.cpp8
-rw-r--r--src/devices/bus/isa/svga_s3.cpp16
-rw-r--r--src/devices/bus/isa/svga_trident.cpp4
-rw-r--r--src/devices/bus/isa/svga_tseng.cpp4
-rw-r--r--src/devices/bus/isa/trident.cpp10
-rw-r--r--src/devices/bus/isa/vga.cpp4
-rw-r--r--src/devices/bus/isa/vga_ati.cpp12
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);
}