summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2022-12-25 02:25:32 +0100
committer angelosa <lordkale4@gmail.com>2022-12-25 02:25:32 +0100
commitec64e9200e5103511e96b4e5e1f2ad2a63eb5a5e (patch)
tree73fbfac3c51f3e683b45c50f8c81e690d6de259d /src
parent0ce06a9d748f59455655f004a1d92f5e03d1ee5c (diff)
misc/gamtor.cpp: rearrange SVGA map layout, allow beetlem to show video
Diffstat (limited to 'src')
-rw-r--r--src/devices/video/pc_vga.cpp4
-rw-r--r--src/devices/video/pc_vga.h6
-rw-r--r--src/mame/misc/gamtor.cpp8
3 files changed, 11 insertions, 7 deletions
diff --git a/src/devices/video/pc_vga.cpp b/src/devices/video/pc_vga.cpp
index f5d39a839cf..e21651bf479 100644
--- a/src/devices/video/pc_vga.cpp
+++ b/src/devices/video/pc_vga.cpp
@@ -5004,14 +5004,14 @@ gamtor.cpp implementation
// 65550 is used by Apple PowerBook 2400c
// 65535 is used by IBM PC-110
-uint8_t gamtor_vga_device::mem_r(offs_t offset)
+uint8_t gamtor_vga_device::mem_linear_r(offs_t offset)
{
if (!machine().side_effects_disabled())
logerror("Reading gamtor SVGA memory %08x\n", offset);
return vga.memory[offset];
}
-void gamtor_vga_device::mem_w(offs_t offset, uint8_t data)
+void gamtor_vga_device::mem_linear_w(offs_t offset, uint8_t data)
{
if (offset & 2)
vga.memory[(offset >> 2) + 0x20000] = data;
diff --git a/src/devices/video/pc_vga.h b/src/devices/video/pc_vga.h
index 1d470821ec7..cde088a8b8d 100644
--- a/src/devices/video/pc_vga.h
+++ b/src/devices/video/pc_vga.h
@@ -689,8 +689,10 @@ public:
virtual void port_03c0_w(offs_t offset, uint8_t data) override;
virtual uint8_t port_03d0_r(offs_t offset) override;
virtual void port_03d0_w(offs_t offset, uint8_t data) override;
- virtual uint8_t mem_r(offs_t offset) override;
- virtual void mem_w(offs_t offset, uint8_t data) override;
+// virtual uint8_t mem_r(offs_t offset) override;
+// virtual void mem_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t mem_linear_r(offs_t offset) override;
+ virtual void mem_linear_w(offs_t offset,uint8_t data) override;
protected:
virtual uint16_t offset() override;
diff --git a/src/mame/misc/gamtor.cpp b/src/mame/misc/gamtor.cpp
index e6f5b87bc3f..6d25e78a259 100644
--- a/src/mame/misc/gamtor.cpp
+++ b/src/mame/misc/gamtor.cpp
@@ -72,9 +72,11 @@ void gaminator_state::gaminator_map(address_map &map)
map(0x400003c0, 0x400003cf).rw("vga", FUNC(gamtor_vga_device::port_03c0_r), FUNC(gamtor_vga_device::port_03c0_w));
map(0x400003d0, 0x400003df).rw("vga", FUNC(gamtor_vga_device::port_03d0_r), FUNC(gamtor_vga_device::port_03d0_w));
- map(0x44000000, 0x4401ffff).rw("vga", FUNC(gamtor_vga_device::mem_r), FUNC(gamtor_vga_device::mem_w)); // VRAM
-// map(0x44000000, 0x44007fff).ram().share("tmapram1"); // puts strings here, looks almost like a tilemap, but where are the tiles?
-// map(0x440a0000, 0x440a1fff).ram().share("tmapram2"); // beetlem (like above, mirror?)
+ // TODO: revisit mapping in VGA core once it enters non-text mode
+ map(0x44000000, 0x4401ffff).rw("vga", FUNC(gamtor_vga_device::mem_linear_r), FUNC(gamtor_vga_device::mem_linear_w));
+
+ // beetlem accesses here, standard layout unlike later games
+ map(0x440a0000, 0x440bffff).rw("vga", FUNC(gamtor_vga_device::mem_r), FUNC(gamtor_vga_device::mem_w));
map(0xe0000000, 0xe00001ff).ram(); // nvram?
map(0xf0000000, 0xf00003ff).rw("maincpu_onboard", FUNC(mcf5206e_peripheral_device::dev_r), FUNC(mcf5206e_peripheral_device::dev_w)); // technically this can be moved with MBAR