summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/cpu/gigatron/gigatron.cpp138
-rw-r--r--src/devices/cpu/gigatron/gigatron.h69
-rw-r--r--src/devices/cpu/gigatron/gigatrondasm.cpp17
-rw-r--r--src/devices/cpu/gigatron/gigatrondasm.h24
-rw-r--r--src/mame/drivers/ffantasy_ms.cpp4
-rw-r--r--src/mame/drivers/gigatron.cpp50
-rw-r--r--src/mame/drivers/legionna.cpp91
-rw-r--r--src/mame/drivers/m72.cpp8
-rw-r--r--src/mame/drivers/model1.cpp18
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
11 files changed, 371 insertions, 52 deletions
diff --git a/src/devices/cpu/gigatron/gigatron.cpp b/src/devices/cpu/gigatron/gigatron.cpp
new file mode 100644
index 00000000000..4a56be8ef41
--- /dev/null
+++ b/src/devices/cpu/gigatron/gigatron.cpp
@@ -0,0 +1,138 @@
+// license:BSD-3-Clause
+// copyright-holders:Sterophonick
+/*****************************************************************************
+ *
+ * Skeleton device for Gigatron CPU Core
+ *
+ *****************************************************************************/
+
+#include "emu.h"
+#include "gigatron.h"
+#include "gigatrondasm.h"
+
+
+DEFINE_DEVICE_TYPE(GTRON, gigatron_cpu_device, "gigatron", "GTRON")
+
+
+/* FLAGS */
+#if 0
+#define S 0x80
+#define Z 0x40
+#define OV 0x20
+#define C 0x10
+#endif
+
+
+#define gigatron_readop(A) m_program->read_dword(A)
+#define gigatron_readmem16(A) m_data->read_dword(A)
+#define gigatron_writemem16(A,B) m_data->write_dword((A),B)
+
+
+/***********************************
+ * illegal opcodes
+ ***********************************/
+void gigatron_cpu_device::gigatron_illegal()
+{
+ logerror("gigatron illegal opcode at 0x%04x\n", m_pc);
+ m_icount -= 1;
+}
+
+/* Execute cycles */
+void gigatron_cpu_device::execute_run()
+{
+ uint16_t opcode;
+
+ do
+ {
+ debugger_instruction_hook(m_pc);
+
+ opcode = gigatron_readop(m_pc);
+ m_pc++;
+
+ switch( opcode )
+ {
+ default:
+ gigatron_illegal();
+ break;
+ }
+
+ } while( m_icount > 0 );
+}
+
+
+void gigatron_cpu_device::device_start()
+{
+ m_program = &space(AS_PROGRAM);
+ m_data = &space(AS_DATA);
+
+ save_item(NAME(m_pc));
+ save_item(NAME(m_flags));
+
+ // Register state for debugger
+ state_add( GTRON_R0, "PC", m_pc ).formatstr("%02X");
+ state_add( STATE_GENPC, "GENPC", m_r[7] ).noshow();
+ state_add( STATE_GENPCBASE, "CURPC", m_r[7] ).noshow();
+ state_add( STATE_GENFLAGS, "GENFLAGS", m_flags ).noshow();
+
+ set_icountptr(m_icount);
+}
+
+#if 0
+void gigatron_cpu_device::execute_set_input(int irqline, int state)
+{
+ switch(irqline)
+ {
+ case GTRON_INT_INTRM: // level-sensitive
+ m_intrm_pending = ((ASSERT_LINE == state) || (HOLD_LINE == state));
+ m_intrm_state = (ASSERT_LINE == state);
+ break;
+ case GTRON_RESET: // edge-sensitive
+ if (CLEAR_LINE != state)
+ m_reset_pending = 1;
+ m_reset_state = (ASSERT_LINE == state);
+ break;
+ case GTRON_INT_INTR: // edge-sensitive
+ if (CLEAR_LINE != state)
+ m_intr_pending = 1;
+ m_intr_state = (ASSERT_LINE == state);
+ break;
+ }
+}
+#endif
+
+gigatron_cpu_device::gigatron_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : cpu_device(mconfig, GTRON, tag, owner, clock)
+ , m_program_config("program", ENDIANNESS_BIG, 8, 32, -1)
+ , m_data_config("data", ENDIANNESS_BIG, 8, 32, 0)
+{
+}
+
+
+void gigatron_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const
+{
+ switch (entry.index())
+ {
+ case STATE_GENFLAGS:
+ str = util::string_format("%c%c%c%c",
+ m_flags & 0x80 ? 'S':'.',
+ m_flags & 0x40 ? 'Z':'.',
+ m_flags & 0x20 ? 'V':'.',
+ m_flags & 0x10 ? 'C':'.');
+ break;
+ }
+}
+
+
+std::unique_ptr<util::disasm_interface> gigatron_cpu_device::create_disassembler()
+{
+ return std::make_unique<gigatron_disassembler>();
+}
+
+
+device_memory_interface::space_config_vector gigatron_cpu_device::memory_space_config() const
+{
+ return space_config_vector {
+ std::make_pair(AS_PROGRAM, &m_program_config),
+ std::make_pair(AS_DATA, &m_data_config)
+ };
+}
diff --git a/src/devices/cpu/gigatron/gigatron.h b/src/devices/cpu/gigatron/gigatron.h
new file mode 100644
index 00000000000..27099efa572
--- /dev/null
+++ b/src/devices/cpu/gigatron/gigatron.h
@@ -0,0 +1,69 @@
+// license:BSD-3-Clause
+// copyright-holders:Sterophonick
+/*****************************************************************************
+ *
+ * Skeleton Device for Gigatron CPU Core
+ *
+ *****************************************************************************/
+
+#ifndef MAME_CPU_GTRON_H
+#define MAME_CPU_GTRON_H
+
+#pragma once
+
+enum
+{
+ GTRON_R0=1, GTRON_R1, GTRON_R2, GTRON_R3,
+ GTRON_R4, GTRON_R5, GTRON_R6, GTRON_R7
+};
+
+
+class gigatron_cpu_device : public cpu_device
+{
+public:
+ // construction/destruction
+ gigatron_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_execute_interface overrides
+ virtual uint32_t execute_min_cycles() const noexcept override { return 1; }
+ virtual uint32_t execute_max_cycles() const noexcept override { return 7; }
+ virtual uint32_t execute_input_lines() const noexcept override { return 0; }
+ virtual void execute_run() override;
+ virtual void execute_set_input(int inputnum, int state) override;
+
+ // device_state_interface overrides
+ virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
+
+ // device_disasm_interface overrides
+ virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
+
+ // device_memory_interface overrides
+ virtual space_config_vector memory_space_config() const override;
+
+private:
+ address_space_config m_program_config;
+ address_space_config m_data_config;
+
+ uint8_t m_pc; /* registers */
+ uint8_t m_flags; /* flags */
+ address_space *m_program;
+ address_space *m_data;
+ int m_icount;
+
+ uint32_t m_r[8];
+
+ void gigatron_illegal();
+};
+
+
+DECLARE_DEVICE_TYPE(GTRON, gigatron_cpu_device)
+
+
+
+#endif // MAME_CPU_GTRON_H
+
diff --git a/src/devices/cpu/gigatron/gigatrondasm.cpp b/src/devices/cpu/gigatron/gigatrondasm.cpp
new file mode 100644
index 00000000000..100f8d7e984
--- /dev/null
+++ b/src/devices/cpu/gigatron/gigatrondasm.cpp
@@ -0,0 +1,17 @@
+// license:BSD-3-Clause
+// copyright-holders:Sterophonick
+
+// Gigatron Disassembler
+
+#include "emu.h"
+#include "gigatrondasm.h"
+
+u32 gigatron_disassembler::opcode_alignment() const
+{
+ return 0;
+}
+
+offs_t gigatron_disassembler::disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer &params)
+{
+ return 0;
+}
diff --git a/src/devices/cpu/gigatron/gigatrondasm.h b/src/devices/cpu/gigatron/gigatrondasm.h
new file mode 100644
index 00000000000..a1e590c0be8
--- /dev/null
+++ b/src/devices/cpu/gigatron/gigatrondasm.h
@@ -0,0 +1,24 @@
+// license:BSD-3-Clause
+// copyright-holders:Sterophonick
+
+// Gigatron disassembler
+
+#ifndef MAME_CPU_GIGATRON_GIGATRONDASM_H
+#define MAME_CPU_GIGATRON_GIGATRONDASM_H
+
+#pragma once
+
+class gigatron_disassembler : public util::disasm_interface
+{
+public:
+ gigatron_disassembler() = default;
+ virtual ~gigatron_disassembler() = default;
+
+ virtual u32 opcode_alignment() const override;
+ virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer &params) override;
+
+private:
+};
+
+#endif
+
diff --git a/src/mame/drivers/ffantasy_ms.cpp b/src/mame/drivers/ffantasy_ms.cpp
index 3057a01af10..2ff31f205a7 100644
--- a/src/mame/drivers/ffantasy_ms.cpp
+++ b/src/mame/drivers/ffantasy_ms.cpp
@@ -76,7 +76,7 @@ uint32_t ffantasy_ms_state::screen_update(screen_device &screen, bitmap_ind16 &b
static INPUT_PORTS_START( ffantasym )
INPUT_PORTS_END
-static GFXDECODE_START( gfx_bloodbro_ms )
+static GFXDECODE_START( gfx_ffantasy_ms )
GFXDECODE_END
void ffantasy_ms_state::ffantasym(machine_config &config)
@@ -98,7 +98,7 @@ void ffantasy_ms_state::ffantasym(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBRG_444, 1024);
- GFXDECODE(config, "gfxdecode", "palette", gfx_bloodbro_ms);
+ GFXDECODE(config, "gfxdecode", "palette", gfx_ffantasy_ms);
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/gigatron.cpp b/src/mame/drivers/gigatron.cpp
new file mode 100644
index 00000000000..c14df7cbafd
--- /dev/null
+++ b/src/mame/drivers/gigatron.cpp
@@ -0,0 +1,50 @@
+// license:BSD-3-Clause
+// copyright-holders:Sterophonick
+/***************************************************************************
+
+ Skeleton driver for Gigatron TTL Microcomputer
+ Driver by Sterophonick
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6502/m6502.h"
+//#include "cpu/gigatron/gigatron.h"
+#include "machine/nvram.h"
+#include "speaker.h"
+
+#define MAIN_CLOCK 6250000
+
+class gigatron_state : public driver_device
+{
+public:
+ gigatron_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ {
+ }
+
+ void gigatron(machine_config &config);
+
+private:
+
+ required_device<cpu_device> m_maincpu;
+};
+
+static INPUT_PORTS_START(gigatron)
+INPUT_PORTS_END
+
+void gigatron_state::gigatron(machine_config &config)
+{
+ M6502(config, m_maincpu, MAIN_CLOCK); // actually its own custom cpu but i cant get it to work
+ //GTRON(config, m_maincpu, MAIN_CLOCK);
+ SPEAKER(config, "mono").front_center();
+
+}
+
+ROM_START( gigatron )
+ ROM_REGION( 0x00000, "maincpu", 0 )
+ ROM_LOAD( "gigatron.rom", 0x0000, 0x20000, CRC(78995109) SHA1(2395fc48e64099836111f5aeca39ddbf4650ea4e) )
+ROM_END
+
+GAME(199?, gigatron, 0, gigatron, gigatron, gigatron_state, empty_init, ROT0, "Marcel van Kervinck", "Gigatron TTL Microcomputer", MACHINE_IS_SKELETON_MECHANICAL) \ No newline at end of file
diff --git a/src/mame/drivers/legionna.cpp b/src/mame/drivers/legionna.cpp
index 97f537de9f4..fd8677564f4 100644
--- a/src/mame/drivers/legionna.cpp
+++ b/src/mame/drivers/legionna.cpp
@@ -1941,6 +1941,55 @@ ROM_START( godzilla )
ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) )
ROM_END
+/*
+
+Denjin Makai newer set
+PCB labeled BP942KS
+All "denjin" ROM labels from this set are actually written in kanji chars.
+
+*/
+
+ROM_START( denjinmk )
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD32_BYTE( "denjin_1.u025", 0x000000, 0x040000, CRC(b23a6e6f) SHA1(73ab330dfc0d2799984874f02da51deb8323b9e2) )
+ ROM_LOAD32_BYTE( "denjin_2.u024", 0x000001, 0x040000, CRC(4fde59e7) SHA1(1618db14a18acc2acabdd93b8e2563d7221e643d) )
+ ROM_LOAD32_BYTE( "denjin_3.u026", 0x000002, 0x040000, CRC(4f10292b) SHA1(c61c88cacc433bb9af6a4225ce5959dd0fefd084) )
+ ROM_LOAD32_BYTE( "denjin_4.u023", 0x000003, 0x040000, CRC(209f1f6b) SHA1(3f6709dc79fae47ef4181d405d3aa94c2df5963a) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code, banked data */
+ ROM_LOAD( "denjin_7.u1016", 0x000000, 0x08000, CRC(970f36dd) SHA1(010a9edeaedb9e258cd02b3e9294264d00ec7c45) )
+ ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */
+ ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
+
+ ROM_REGION( 0x020000, "char", 0 )
+ ROM_LOAD16_BYTE( "denjin_6.u0620", 0x000000, 0x010000, CRC(e1f759b1) SHA1(ddc60e78e7791a59c59403dd4089b3f6e1ecf8cb) )
+ ROM_LOAD16_BYTE( "denjin_5.u0615", 0x000001, 0x010000, CRC(cc36af0d) SHA1(69c2ae38f03be79be4d138fcc73a6a86407eb285) )
+
+ ROM_REGION( 0x500000, "sprite", 0 )
+ ROM_LOAD16_WORD_SWAP( "obj-0-3.748", 0x000000, 0x200000, CRC(67c26a67) SHA1(20543ca9dcf3fed0884968b5249b34b59a14b791) ) /* banks 0,1,2,3 */
+ ROM_LOAD16_WORD_SWAP( "obj-4-5.756", 0x200000, 0x100000, CRC(01f8d4e6) SHA1(25b69da693be8c3404f750b419c330a7a56e88ec) ) /* 4,5 */
+ ROM_LOAD16_WORD_SWAP( "obj-6-7.743", 0x300000, 0x100000, CRC(e5805757) SHA1(9d392c27eef7c1fcda560dac17ba9d7ae2287ac8) ) /* 6,7 */
+ ROM_LOAD16_WORD_SWAP( "obj-8-9.757", 0x400000, 0x100000, CRC(c8f7e1c9) SHA1(a746d187b50a0ecdd5a7f687a2601e5dc8bfe272) ) /* 8,9 */
+
+ ROM_REGION( 0x100000, "back", 0 ) /* MBK tiles */
+ ROM_LOAD16_WORD_SWAP( "bg-1-ab.618", 0x000000, 0x100000, CRC(eaad151a) SHA1(bdd1d83ee8497efe20f21baf873e786446372bcb) )
+
+ ROM_REGION( 0x100000, "mid", 0 ) /* BK2 used (or LBK; just identification string differs?) */
+ ROM_LOAD16_WORD_SWAP( "bg-2-ab.617", 0x000000, 0x100000, CRC(40938f74) SHA1(d68b0f8245a8b390ad5d4e6ebc7514a939b8ac51) )
+
+ ROM_REGION( 0x100000, "fore", 0 ) /* BK3 tiles */
+ ROM_LOAD16_WORD_SWAP( "bg-3-ab.619", 0x000000, 0x100000, CRC(de7366ee) SHA1(0c3969d15f3cd963e579d4164b6e0a6b4012c9c6) )
+
+ ROM_REGION( 0x080000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "denjin_8.u0922", 0x000000, 0x040000, CRC(a11adb8f) SHA1(50e1158767b506d962bff861c2a6609246d764c4) )
+
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "s68e08.844", 0x000000, 0x000200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */
+
+ ROM_REGION( 0x080000, "user1", 0 )
+ ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) )
+ROM_END
+
/*
Denjin Makai
@@ -2013,50 +2062,8 @@ Notes:
S68E08 : PROM type 82S147, labelled 'S68E08'
-
*/
-ROM_START( denjinmk ) /* PCB labled BP942KS */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD32_BYTE( "denjin_1.u025", 0x000000, 0x040000, CRC(b23a6e6f) SHA1(73ab330dfc0d2799984874f02da51deb8323b9e2) ) /* "Denjin" written in Kanji on label */
- ROM_LOAD32_BYTE( "denjin_2.u024", 0x000001, 0x040000, CRC(4fde59e7) SHA1(1618db14a18acc2acabdd93b8e2563d7221e643d) ) /* "Denjin" written in Kanji on label */
- ROM_LOAD32_BYTE( "denjin_3.u026", 0x000002, 0x040000, CRC(4f10292b) SHA1(c61c88cacc433bb9af6a4225ce5959dd0fefd084) ) /* "Denjin" written in Kanji on label */
- ROM_LOAD32_BYTE( "denjin_4.u023", 0x000003, 0x040000, CRC(209f1f6b) SHA1(3f6709dc79fae47ef4181d405d3aa94c2df5963a) ) /* "Denjin" written in Kanji on label */
-
- ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code, banked data */
- ROM_LOAD( "denjin_7.u1016", 0x000000, 0x08000, CRC(970f36dd) SHA1(010a9edeaedb9e258cd02b3e9294264d00ec7c45) ) /* "Denjin" written in Kanji on label */
- ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */
- ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
-
- ROM_REGION( 0x020000, "char", 0 )
- ROM_LOAD16_BYTE( "denjin_6.u0620", 0x000000, 0x010000, CRC(e1f759b1) SHA1(ddc60e78e7791a59c59403dd4089b3f6e1ecf8cb) ) /* "Denjin" written in Kanji on label */
- ROM_LOAD16_BYTE( "denjin_5.u0615", 0x000001, 0x010000, CRC(cc36af0d) SHA1(69c2ae38f03be79be4d138fcc73a6a86407eb285) ) /* "Denjin" written in Kanji on label */
-
- ROM_REGION( 0x500000, "sprite", 0 )
- ROM_LOAD16_WORD_SWAP( "obj-0-3.748", 0x000000, 0x200000, CRC(67c26a67) SHA1(20543ca9dcf3fed0884968b5249b34b59a14b791) ) /* banks 0,1,2,3 */
- ROM_LOAD16_WORD_SWAP( "obj-4-5.756", 0x200000, 0x100000, CRC(01f8d4e6) SHA1(25b69da693be8c3404f750b419c330a7a56e88ec) ) /* 4,5 */
- ROM_LOAD16_WORD_SWAP( "obj-6-7.743", 0x300000, 0x100000, CRC(e5805757) SHA1(9d392c27eef7c1fcda560dac17ba9d7ae2287ac8) ) /* 6,7 */
- ROM_LOAD16_WORD_SWAP( "obj-8-9.757", 0x400000, 0x100000, CRC(c8f7e1c9) SHA1(a746d187b50a0ecdd5a7f687a2601e5dc8bfe272) ) /* 8,9 */
-
- ROM_REGION( 0x100000, "back", 0 ) /* MBK tiles */
- ROM_LOAD16_WORD_SWAP( "bg-1-ab.618", 0x000000, 0x100000, CRC(eaad151a) SHA1(bdd1d83ee8497efe20f21baf873e786446372bcb) )
-
- ROM_REGION( 0x100000, "mid", 0 ) /* BK2 used (or LBK; just identification string differs?) */
- ROM_LOAD16_WORD_SWAP( "bg-2-ab.617", 0x000000, 0x100000, CRC(40938f74) SHA1(d68b0f8245a8b390ad5d4e6ebc7514a939b8ac51) )
-
- ROM_REGION( 0x100000, "fore", 0 ) /* BK3 tiles */
- ROM_LOAD16_WORD_SWAP( "bg-3-ab.619", 0x000000, 0x100000, CRC(de7366ee) SHA1(0c3969d15f3cd963e579d4164b6e0a6b4012c9c6) )
-
- ROM_REGION( 0x080000, "oki", 0 ) /* ADPCM samples */
- ROM_LOAD( "denjin_8.u0922", 0x000000, 0x040000, CRC(a11adb8f) SHA1(50e1158767b506d962bff861c2a6609246d764c4) ) /* "Denjin" written in Kanji on label */
-
- ROM_REGION( 0x200, "proms", 0 )
- ROM_LOAD( "s68e08.844", 0x000000, 0x000200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */
-
- ROM_REGION( 0x080000, "user1", 0 )
- ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) )
-ROM_END
-
ROM_START( denjinmka )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD32_BYTE( "rom1.025", 0x000000, 0x040000, CRC(44a648e8) SHA1(a3c1721e89ac6b9fc16f80682b2f701cb24b5d76) )
diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp
index 589353cc1ba..e8c0516153d 100644
--- a/src/mame/drivers/m72.cpp
+++ b/src/mame/drivers/m72.cpp
@@ -3209,7 +3209,7 @@ ROM_END
| |74S74N XTAL 74LS368AN 74LS132N | | |___|
|__________20.000MHz_________________________| |_____________________________________________|
- Board 5 Sound Board (1/3)
+ Board 5 Sound Board 1/3
_____________________________________________ ______________________________________________
| | | |
| __________ ________ ________ ________ | | ________ ________ ________ |
@@ -3253,7 +3253,7 @@ IC64->PAL16R6A 74LS393N 74LS368AN 74LS377N |U|| | |
|__| | |___| __________________________ |
|____________________________________________| |__________| |_|_|_|_|_|_|_|_|_|_|_| |________|
PRE-JAMMA
- Board (6)
+ Board 7/4
__________________________________________________________
| _________ _________ __________ _________ _________ __|_
| 74LS163AP| 74LS163AP||_GAL20V8_| |74S174N_| |74S189N_|| |
@@ -3269,10 +3269,10 @@ IC64->PAL16R6A 74LS393N 74LS368AN 74LS377N |U|| | |
| 7536 |____________| _________ | |
| _________ __________ _____________ |74S174N_| | |
| |74LS283N| |74LS245P_| |KM62256AP-10| __________ | |
- | |____________| |74LS245P_| | |
+ | _________ __________ |____________| |74LS245P_| | |
+ | |74LS20B1| |74LS245P_| | |
| _________ __________ __________ _________ | |
| |74LS20B1| |74LS374N_| |74LS273P_| |74LS74AP| | |
- | | |
| _________ __________ __________ _________ |___|
| |74LS04N_| |_GAL16V8_| |74LS374N_| |74LS157N| |
| 7336 |
diff --git a/src/mame/drivers/model1.cpp b/src/mame/drivers/model1.cpp
index 2bb45614ea9..c9a793e1034 100644
--- a/src/mame/drivers/model1.cpp
+++ b/src/mame/drivers/model1.cpp
@@ -2,10 +2,20 @@
// copyright-holders:Olivier Galibert
/*
+Known functional issues:
+- Star Wars Arcade
+ * After recent changes, ship models periodically disappear for a frame or two during attract mode
+ and while in-game.
+ * There are indeterminate issues with the analog controls in-game.
+- Virtua Fighter
+ * Gameplay mecahnics - specifically, collision detection - are significantly broken due to
+ imperfect TGP RAM port emulation or hookup. This is observable in both attract mode and
+ in-game.
+
Sega Model 1 Hardware Overview
------------------------------
-Note! This document is a Work-In-Progress and covers all the dumped Sega Model 1 games, including....
+Note! This document is a Work-In-Progress and covers all the dumped Sega Model 1 games, including...
Star Wars Arcade (C) Sega, 1994
Virtua Fighter (C) Sega, 1993
@@ -1874,11 +1884,11 @@ void model1_state::netmerc(machine_config &config)
//**************************************************************************
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS
-GAME( 1993, vf, 0, vf, vf, model1_state, empty_init, ROT0, "Sega", "Virtua Fighter", 0 )
+GAME( 1993, vf, 0, vf, vf, model1_state, empty_init, ROT0, "Sega", "Virtua Fighter", MACHINE_NOT_WORKING )
GAMEL(1992, vr, 0, vr, vr, model1_state, empty_init, ROT0, "Sega", "Virtua Racing", 0, layout_vr )
GAME( 1993, vformula, vr, vformula, vr, model1_state, empty_init, ROT0, "Sega", "Virtua Formula", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1993, swa, 0, swa, swa, model1_state, empty_init, ROT0, "Sega", "Star Wars Arcade (US)", 0 )
-GAME( 1993, swaj, swa, swa, swa, model1_state, empty_init, ROT0, "Sega", "Star Wars Arcade (Japan)", 0 )
+GAME( 1993, swa, 0, swa, swa, model1_state, empty_init, ROT0, "Sega", "Star Wars Arcade (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_CONTROLS )
+GAME( 1993, swaj, swa, swa, swa, model1_state, empty_init, ROT0, "Sega", "Star Wars Arcade (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_CONTROLS )
GAME( 1994, wingwar, 0, wingwar, wingwar, model1_state, empty_init, ROT0, "Sega", "Wing War (World)", 0 )
GAME( 1994, wingwaru, wingwar, wingwar, wingwar, model1_state, empty_init, ROT0, "Sega", "Wing War (US)", 0 )
GAME( 1994, wingwarj, wingwar, wingwar, wingwar, model1_state, empty_init, ROT0, "Sega", "Wing War (Japan)", 0 )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 9544e385a91..4ebeb7f1368 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14620,6 +14620,9 @@ touryuu // (c) 200? Yuki Enterprise
giclasex
giclassvr
+@source:gigatron.cpp
+gigatron // (c) 2018 Marcel van Kervinck
+
@source:gijoe.cpp
gijoe // GX069 (c) 1991 (World)
gijoea // GX069 (c) 1991 (Asia)
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 6e93f240a99..7d393b43b05 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -315,6 +315,7 @@ geneve.cpp
geniusiq.cpp
geniusjr.cpp
genpc.cpp
+gigatron.cpp
gimix.cpp
gkidabc.cpp
gizmondo.cpp