summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/matrix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/matrix.cpp')
-rw-r--r--src/mame/drivers/matrix.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/mame/drivers/matrix.cpp b/src/mame/drivers/matrix.cpp
new file mode 100644
index 00000000000..b52c599783b
--- /dev/null
+++ b/src/mame/drivers/matrix.cpp
@@ -0,0 +1,85 @@
+// license:BSD-3-Clause
+// copyright-holders:
+/*
+ 'Matrix' slot machine or poker game (the bezel has poker cards) by unidentified manufacturer
+ Game title is taken from ROM labels and cabinet. Might be incomplete.
+
+ Hardware consists of:
+
+ Motherboard (GXM-530D):
+ Cyrix MediaGX GXm-266GP 2.9V
+ Cyrix GXm Cx5530 with GCT bios
+ 128MB RAM
+ SMC FDC37C931
+ 5-dip bank
+
+ Daughter card (FLASH ROM SSD 374-525-627-33-78J54):
+ Lattice ispLSI 1032E 70LJ D980B06
+ Unpopulated spaces marked for: DS5002FP, PIC16C54, 93C56 EEPROM, a couple more unreadable
+ 8-dip bank
+ 6 ROMs
+ 1 RAM
+*/
+
+#include "emu.h"
+#include "cpu/i386/i386.h"
+#include "screen.h"
+
+class matrix_state : public driver_device
+{
+public:
+ matrix_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+ void matrix(machine_config &config);
+
+private:
+ required_device<cpu_device> m_maincpu;
+
+ void main_map(address_map &map);
+
+ uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; }
+};
+
+
+void matrix_state::main_map(address_map &map)
+{
+}
+
+static INPUT_PORTS_START( matrix )
+INPUT_PORTS_END
+
+
+void matrix_state::matrix(machine_config &config)
+{
+ // basic machine hardware
+ MEDIAGX(config, m_maincpu, 233'000'000); // Cyrix MediaGX GXm-266GP
+ m_maincpu->set_addrmap(AS_PROGRAM, &matrix_state::main_map);
+
+ // video hardware, all TBD
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_screen_update(FUNC(matrix_state::screen_update));
+}
+
+
+ROM_START( matrix )
+ ROM_REGION32_LE(0x40000, "bios", 0)
+ ROM_LOAD("d586_bios.bin", 0x00000, 0x40000, CRC(39fc093a) SHA1(3376bac4f0d6e729d5939e3078ecdf700464cba3) )
+
+ ROM_REGION(0x300000, "unsorted", 0)
+ ROM_LOAD( "matrix_031203u5.bin", 0x000000, 0x080000, CRC(95aa8fb7) SHA1(8cbfa783a887779350609d6f3ea1e88187bd21a4) )
+ ROM_LOAD( "matrix_031203u6.bin", 0x080000, 0x080000, CRC(38822bc6) SHA1(b57bd9fa44cab9fa4cef8873454c8be0dc7ab781) )
+ ROM_LOAD( "matrix_031203u7.bin", 0x100000, 0x080000, CRC(74d31f1a) SHA1(bf6eae262cab6d24276f43370f3b9e4f687b9a52) )
+ ROM_LOAD( "matrix_031203u18.bin", 0x180000, 0x080000, CRC(7b20c6cb) SHA1(51d9a442c510a60f85d9ad7b56cfe67c60f4ab1b) )
+ ROM_LOAD( "matrix_031203u19.bin", 0x200000, 0x080000, CRC(c612c80c) SHA1(ef7586369fd1f9c6b8f3e78806c3be16b5aa1a3d) )
+ ROM_LOAD( "matrix_031203u20.bin", 0x280000, 0x080000, CRC(f87ac4ae) SHA1(ef9b730a1113d36ef6a041fe36d77edfa255ad98) )
+ROM_END
+
+
+GAME( 200?, matrix, 0, matrix, matrix, matrix_state, empty_init, ROT0, "<unknown>", "Matrix", MACHINE_IS_SKELETON )