diff options
author | 2020-09-13 12:44:05 +0200 | |
---|---|---|
committer | 2020-09-13 12:44:05 +0200 | |
commit | 8fb35bf34f8ffb7cf1931384d3877f071e2a87d1 (patch) | |
tree | cd06f31e93478c1ccbd2729f5a113c2306ea0b7b | |
parent | e05a9000911481f48922e86a9bb36310dbfdb6fb (diff) | |
parent | 06c504f651478074ad87a4b90047f29fb8598420 (diff) |
Merge remote-tracking branch 'origin/master' into netlist-generated
57 files changed, 1394 insertions, 455 deletions
diff --git a/hash/apple2_flop_clcracked.xml b/hash/apple2_flop_clcracked.xml index 462f8c3acf3..46132902d01 100644 --- a/hash/apple2_flop_clcracked.xml +++ b/hash/apple2_flop_clcracked.xml @@ -5441,31 +5441,37 @@ license:CC0 <info name="release" value="2017-01-17"/> <part name="flop1" interface="floppy_5_25"> + <feature name="part_id" value="Disk 1 Side A - Program"/> <dataarea name="flop" size="143360"> <rom name="centauri alliance (4am crack) boot.dsk" size="143360" crc="6575734c" sha1="91de6b82846f547963388541a1b9472d81c41219" /> </dataarea> </part> <part name="flop2" interface="floppy_5_25"> + <feature name="part_id" value="Disk 1 Side B - Roster"/> <dataarea name="flop" size="143360"> <rom name="centauri alliance (4am crack) roster.dsk" size="143360" crc="e258fb1e" sha1="daf12471584e5a6c3fc3e501e9334adb35c38ea7" /> </dataarea> </part> <part name="flop3" interface="floppy_5_25"> + <feature name="part_id" value="Disk 2 Side A - Scenario 1"/> <dataarea name="flop" size="143360"> <rom name="centauri alliance (4am crack) scenery 1.dsk" size="143360" crc="4d026cd8" sha1="c9f610fd2a6d08a4ee5bf3fa46f260ed56984121" /> </dataarea> </part> <part name="flop4" interface="floppy_5_25"> + <feature name="part_id" value="Disk 2 Side B - Scenario 2"/> <dataarea name="flop" size="143360"> <rom name="centauri alliance (4am crack) scenery 2.dsk" size="143360" crc="0d976331" sha1="b6830cb95028bce75ca509964eb701ff5b96f7c2" /> </dataarea> </part> <part name="flop5" interface="floppy_5_25"> + <feature name="part_id" value="Disk 3 Side A - Scenario 3"/> <dataarea name="flop" size="143360"> <rom name="centauri alliance (4am crack) scenery 3.dsk" size="143360" crc="5ed890de" sha1="518301730baaef9fa2cbde4cecf73bd3c35b6353" /> </dataarea> </part> <part name="flop6" interface="floppy_5_25"> + <feature name="part_id" value="Disk 3 Side B - Scenario 4"/> <dataarea name="flop" size="143360"> <rom name="centauri alliance (4am crack) scenery 4.dsk" size="143360" crc="f0926edf" sha1="8bf06e1dc19fcc9be58e0bf0b5c24819a688b64d" /> </dataarea> diff --git a/hash/apple2_flop_orig.xml b/hash/apple2_flop_orig.xml index 4a1700e2a6e..4db5193c683 100644 --- a/hash/apple2_flop_orig.xml +++ b/hash/apple2_flop_orig.xml @@ -14593,4 +14593,104 @@ license:CC0 </part> </software> + <software name="lstninja"> + <description>The Last Ninja</description> + <year>1989</year> + <publisher>Activision</publisher> + <info name="release" value="2020-09-09"/> + <sharedfeat name="compatibility" value="A2E,A2EE,A2C,A2GS"/> + <!-- It requires a 128K Apple //e or later. --> + + <part name="flop1" interface="floppy_5_25"> + <feature name="part_id" value="Side A"/> + <dataarea name="flop" size="241963"> + <rom name="the last ninja side a.woz" size="241963" crc="4d69494d" sha1="97257c4b5442ee755af32e63882bd45cb157e320"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_5_25"> + <feature name="part_id" value="Side B"/> + <dataarea name="flop" size="241963"> + <rom name="the last ninja side b.woz" size="241963" crc="30b9cde9" sha1="4dea3ed244c8ecf2ffc44e796b643d83c5d8b974"/> + </dataarea> + </part> + </software> + + <software name="cntralnc"> + <description>Centauri Alliance</description> + <year>1989</year> + <publisher>Broderbund Software</publisher> + <info name="release" value="2020-09-10"/> + <sharedfeat name="compatibility" value="A2P,A2E,A2EE,A2C,A2GS"/> + <!-- It requires a 64K Apple II+ or later. --> + + <part name="flop1" interface="floppy_5_25"> + <feature name="part_id" value="Disk 1 Side A - Program"/> + <dataarea name="flop" size="234852"> + <rom name="centauri alliance disk 1a - program.woz" size="234852" crc="fa11e457" sha1="45b56d9fc178334c47f0ea2947f8ec184a9d002b"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_5_25"> + <feature name="part_id" value="Disk 1 Side B - Roster"/> + <dataarea name="flop" size="234851"> + <rom name="centauri alliance disk 1b - roster.woz" size="234851" crc="5ef9c3ea" sha1="3e6b47520a9acd70805a32b8dda47df7f12c9ec6"/> + </dataarea> + </part> + <part name="flop3" interface="floppy_5_25"> + <feature name="part_id" value="Disk 2 Side A - Scenario 1"/> + <dataarea name="flop" size="234855"> + <rom name="centauri alliance disk 2a - scenario 1.woz" size="234855" crc="c06b5bdb" sha1="9b100db35d8288bc37ffd442b06166f7a460ff14"/> + </dataarea> + </part> + <part name="flop4" interface="floppy_5_25"> + <feature name="part_id" value="Disk 2 Side B - Scenario 2"/> + <dataarea name="flop" size="234855"> + <rom name="centauri alliance disk 2b - scenario 2.woz" size="234855" crc="e1c88f5b" sha1="a15e0d8f55218b3ccb4419a893f43af11acb8a0a"/> + </dataarea> + </part> + <part name="flop5" interface="floppy_5_25"> + <feature name="part_id" value="Disk 3 Side A - Scenario 3"/> + <dataarea name="flop" size="234855"> + <rom name="centauri alliance disk 3a - scenario 3.woz" size="234855" crc="7b09e5bc" sha1="ae559226790a2be8368d165dd7940b761c77f35c"/> + </dataarea> + </part> + <part name="flop6" interface="floppy_5_25"> + <feature name="part_id" value="Disk 3 Side B - Scenario 4"/> + <dataarea name="flop" size="234855"> + <rom name="centauri alliance disk 3b - scenario 4.woz" size="234855" crc="f3d9a9f9" sha1="1f9a1511f334e2a4db6e286e558f328e1e32a196"/> + </dataarea> + </part> + </software> + + <software name="agalxsc"> + <description>Apple Galaxian (StarCraft)</description> + <year>1980</year> + <publisher>StarCraft</publisher> + <info name="release" value="2020-09-10"/> + <sharedfeat name="compatibility" value="A2,A2P,A2E,A2EE,A2C,A2GS"/> + <!-- It runs on any Apple II with 48K. --> + <!-- The game was later re-released by Broderbund Software. --> + + <part name="flop1" interface="floppy_5_25"> + <dataarea name="flop" size="95008"> + <rom name="apple galaxian (starcraft).woz" size="95008" crc="146cab96" sha1="895197a33636e2a9f38a35bddc9ebc9b43963f08"/> + </dataarea> + </part> + </software> + + <software name="applwrld"> + <description>Apple World</description> + <year>1980</year> + <publisher>United Software of America</publisher> + <info name="release" value="2020-09-10"/> + <sharedfeat name="compatibility" value="A2,A2P,A2E,A2EE,A2C,A2GS"/> + <!-- It runs on any Apple II with 48K. --> + <!-- It requires a 13-sector drive. --> + + <part name="flop1" interface="floppy_5_25"> + <dataarea name="flop" size="241458"> + <rom name="apple world.woz" size="241458" crc="46bbd2e3" sha1="83fdc389c10a68a8d27a0719bbd4a54c2c678e81"/> + </dataarea> + </part> + </software> + </softwarelist> diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua index a4751370c7d..600c22f2746 100644 --- a/scripts/src/machine.lua +++ b/scripts/src/machine.lua @@ -4535,3 +4535,14 @@ if (MACHINES["SWIM3"]~=null) then MAME_DIR .. "src/devices/machine/swim3.h", } end + +--------------------------------------------------- +-- +--@src/devices/machine/alpha_8921.h,MACHINES["ALPHA_8921"] = true +--------------------------------------------------- +if (MACHINES["ALPHA_8921"]~=null) then + files { + MAME_DIR .. "src/devices/machine/alpha_8921.cpp", + MAME_DIR .. "src/devices/machine/alpha_8921.h", + } +end diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 1a295e77378..3ecc8b0f72f 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -388,6 +388,7 @@ VIDEOS["VRENDER0"] = true MACHINES["ACORN_VIDC"] = true MACHINES["AKIKO"] = true +MACHINES["ALPHA_8921"] = true --MACHINES["AM2901B"] = true MACHINES["ARM_IOMD"] = true MACHINES["AUTOCONFIG"] = true diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index cd6242983a0..e01532fb463 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -426,6 +426,7 @@ VIDEOS["BT431"] = true -------------------------------------------------- MACHINES["AKIKO"] = true +MACHINES["ALPHA_8921"] = true MACHINES["AM2901B"] = true MACHINES["AUTOCONFIG"] = true MACHINES["BUSMOUSE"] = true @@ -3631,6 +3632,7 @@ files { createMESSProjects(_target, _subtarget, "sony") files { + MAME_DIR .. "src/mame/drivers/bvm.cpp", MAME_DIR .. "src/mame/drivers/pockstat.cpp", MAME_DIR .. "src/mame/drivers/psx.cpp", MAME_DIR .. "src/mame/machine/psxcd.cpp", diff --git a/src/devices/bus/neogeo/prot_fatfury2.cpp b/src/devices/bus/neogeo/prot_fatfury2.cpp index bd7af9247db..c8e7151e6e8 100644 --- a/src/devices/bus/neogeo/prot_fatfury2.cpp +++ b/src/devices/bus/neogeo/prot_fatfury2.cpp @@ -11,14 +11,18 @@ DEFINE_DEVICE_TYPE(NG_FATFURY2_PROT, fatfury2_prot_device, "ng_fatfury_prot", "N fatfury2_prot_device::fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, NG_FATFURY2_PROT, tag, owner, clock), - m_prot_data(0) + m_pro_ct0(*this, "pro_ct0") { } +void fatfury2_prot_device::device_add_mconfig(machine_config &config) +{ + ALPHA_8921(config, m_pro_ct0, 0); // PRO-CT0 or SNK-9201 +} + void fatfury2_prot_device::device_start() { - save_item(NAME(m_prot_data)); } void fatfury2_prot_device::device_reset() @@ -33,69 +37,27 @@ void fatfury2_prot_device::device_reset() /* 0x2xxxxx range. There are several checks all around the code. */ uint16_t fatfury2_prot_device::protection_r(offs_t offset) { - uint16_t res = m_prot_data >> 24; - - switch (offset) - { - case 0x55550/2: - case 0xffff0/2: - case 0x00000/2: - case 0xff000/2: - case 0x36000/2: - case 0x36008/2: - return res; - - case 0x36004/2: - case 0x3600c/2: - return ((res & 0xf0) >> 4) | ((res & 0x0f) << 4); - - default: - logerror("unknown protection read at %s, offset %08x\n", machine().describe_context(), offset << 1); - return 0; - } + m_pro_ct0->even_w(BIT(offset, 1)); + m_pro_ct0->h_w(BIT(offset, 2)); + u8 gad = m_pro_ct0->gad_r(); + u8 gbd = m_pro_ct0->gbd_r(); + return (BIT(gbd, 0, 2) << 6) | (BIT(gbd, 2, 2) << 4) | (BIT(gad, 0, 2) << 6) | (BIT(gad, 2, 2) << 4); } void fatfury2_prot_device::protection_w(offs_t offset, uint16_t data) { - switch (offset) - { - case 0x11112/2: /* data == 0x1111; expects 0xff000000 back */ - m_prot_data = 0xff000000; - break; - - case 0x33332/2: /* data == 0x3333; expects 0x0000ffff back */ - m_prot_data = 0x0000ffff; - break; - - case 0x44442/2: /* data == 0x4444; expects 0x00ff0000 back */ - m_prot_data = 0x00ff0000; - break; - - case 0x55552/2: /* data == 0x5555; read back from 55550, ffff0, 00000, ff000 */ - m_prot_data = 0xff00ff00; - break; - - case 0x56782/2: /* data == 0x1234; read back from 36000 *or* 36004 */ - m_prot_data = 0xf05a3601; - break; - - case 0x42812/2: /* data == 0x1824; read back from 36008 *or* 3600c */ - m_prot_data = 0x81422418; - break; - - case 0x55550/2: - case 0xffff0/2: - case 0xff000/2: - case 0x36000/2: - case 0x36004/2: - case 0x36008/2: - case 0x3600c/2: - m_prot_data <<= 8; - break; - - default: - logerror("unknown protection write at %s, offset %08x, data %02x\n", machine().describe_context(), offset, data); - break; - } + // /PORTOEL connected into PRO-CT0 CLK pin + m_pro_ct0->clk_w(true); + + m_pro_ct0->load_w(BIT(offset, 0)); // A1 + m_pro_ct0->even_w(BIT(offset, 1)); // A2 + m_pro_ct0->h_w(BIT(offset, 2)); // A3 + + // C16-31 = A4-A19, C0-C15 = D0-D15 + m_pro_ct0->c_w((u32(bitswap<16>(BIT(offset, 3, 16), 15, 13, 11, 9, 14, 12, 10, 8, 7, 5, 3, 1, 6, 4, 2, 0)) << 16) | + bitswap<16>(data, 15, 13, 11, 9, 14, 12, 10, 8, 7, 5, 3, 1, 6, 4, 2, 0)); + + // release /PORTOEL + m_pro_ct0->clk_w(false); } diff --git a/src/devices/bus/neogeo/prot_fatfury2.h b/src/devices/bus/neogeo/prot_fatfury2.h index 111b9f7388b..1cab87cb26a 100644 --- a/src/devices/bus/neogeo/prot_fatfury2.h +++ b/src/devices/bus/neogeo/prot_fatfury2.h @@ -6,6 +6,8 @@ #pragma once +#include "machine/alpha_8921.h" + DECLARE_DEVICE_TYPE(NG_FATFURY2_PROT, fatfury2_prot_device) @@ -19,10 +21,12 @@ public: void protection_w(offs_t offset, uint16_t data); protected: + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; - uint32_t m_prot_data; +private: + required_device<alpha_8921_device> m_pro_ct0; // PRO-CT0 or SNK-9201 }; #endif // MAME_BUS_NEOGEO_PROT_FATFURY2_H diff --git a/src/devices/cpu/h8500/h8534.cpp b/src/devices/cpu/h8500/h8534.cpp index 065d83adc5e..dd33af71128 100644 --- a/src/devices/cpu/h8500/h8534.cpp +++ b/src/devices/cpu/h8500/h8534.cpp @@ -2,7 +2,7 @@ // copyright-holders:AJR /*************************************************************************** - Hitachi H8/534 + Hitachi H8/534 & H8/536 ***************************************************************************/ @@ -10,9 +10,15 @@ #include "h8534.h" DEFINE_DEVICE_TYPE(HD6475348, hd6475348_device, "hd6475348", "Hitachi HD6475348 (H8/534)") +DEFINE_DEVICE_TYPE(HD6435368, hd6435368_device, "hd6435368", "Hitachi HD6435368 (H8/536)") + +h8534_device::h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map) + : h8500_device(mconfig, type, tag, owner, clock, 20, 8, 11, map) +{ +} h8534_device::h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) - : h8500_device(mconfig, type, tag, owner, clock, 20, 8, 11, address_map_constructor(FUNC(h8534_device::internal_map), this)) + : h8534_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(h8534_device::internal_map), this)) { } @@ -21,9 +27,31 @@ hd6475348_device::hd6475348_device(const machine_config &mconfig, const char *ta { } +h8536_device::h8536_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : h8534_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(h8536_device::internal_map), this)) +{ +} + +hd6435368_device::hd6435368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : h8536_device(mconfig, HD6435368, tag, owner, clock) +{ +} + void h8534_device::internal_map(address_map &map) { map(0x0000, 0x7fff).rom().region(DEVICE_SELF, 0); // modes 2, 4, 7 + register_field_map(map); +} + +void h8536_device::internal_map(address_map &map) +{ + //map(0x0000, 0xee7f).rom().region(DEVICE_SELF, 0); // mode 2? + //map(0x0000, 0xf67f).rom().region(DEVICE_SELF, 0); // modes 4, 7 + register_field_map(map); +} + +void h8534_device::register_field_map(address_map &map) +{ #if 0 map(0xfe80, 0xfe80).w(FUNC(h8534_device::p1ddr_w)); map(0xfe81, 0xfe81).w(FUNC(h8534_device::p2ddr_w)); diff --git a/src/devices/cpu/h8500/h8534.h b/src/devices/cpu/h8500/h8534.h index 7b375ba8351..8e5c357ff1b 100644 --- a/src/devices/cpu/h8500/h8534.h +++ b/src/devices/cpu/h8500/h8534.h @@ -11,8 +11,13 @@ class h8534_device : public h8500_device { protected: + // delegating constructor h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map); + + void register_field_map(address_map &map); + private: void internal_map(address_map &map); }; @@ -24,6 +29,23 @@ public: hd6475348_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; +class h8536_device : public h8534_device +{ +protected: + h8536_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + +private: + void internal_map(address_map &map); +}; + +class hd6435368_device : public h8536_device +{ +public: + // device type constructor + hd6435368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); +}; + DECLARE_DEVICE_TYPE(HD6475348, hd6475348_device) +DECLARE_DEVICE_TYPE(HD6435368, hd6435368_device) -#endif // MAME_CPU_H8500_H8532_H +#endif // MAME_CPU_H8500_H8534_H diff --git a/src/devices/machine/alpha_8921.cpp b/src/devices/machine/alpha_8921.cpp new file mode 100644 index 00000000000..1157b061f28 --- /dev/null +++ b/src/devices/machine/alpha_8921.cpp @@ -0,0 +1,213 @@ +// license:BSD-3-Clause +// copyright-holders:cam900 +/*************************************************************************** + + Alpha denshi ALPHA-8921 emulation + + Also known as + SNK PRO-CT0 + SNK-9201 + + This chip is sprite ROM data serializer, or optional security device. + used in some later 80s Alpha Denshi hardware(ex: Gang Wars), + Some early Neogeo MVS motherboards, AES cartridges. + also integrated in NEO-ZMC2, NEO-CMC. + + reference: https://wiki.neogeodev.org/index.php?title=PRO-CT0 + +***************************************************************************/ + +#include "emu.h" +#include "alpha_8921.h" +#include <algorithm> + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE(ALPHA_8921, alpha_8921_device, "alpha_8921", "Alpha denshi ALPHA-8921") + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// alpha_8921_device - constructor +//------------------------------------------------- + +alpha_8921_device::alpha_8921_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, ALPHA_8921, tag, owner, clock) +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void alpha_8921_device::device_start() +{ + // save states + save_item(NAME(m_clk)); + save_item(NAME(m_load)); + save_item(NAME(m_even)); + save_item(NAME(m_h)); + save_item(NAME(m_c)); + save_item(NAME(m_gad)); + save_item(NAME(m_gbd)); + save_item(NAME(m_dota)); + save_item(NAME(m_dotb)); + save_item(NAME(m_sr)); + save_item(NAME(m_old_sr)); + save_item(NAME(m_old_even)); + save_item(NAME(m_old_h)); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void alpha_8921_device::device_reset() +{ + // force update outputs + m_old_sr = ~m_sr; + m_old_even = !m_even; + m_old_h = !m_h; + update_output(); +} + + +//************************************************************************** +// READ/WRITE HANDLERS +//************************************************************************** + +//------------------------------------------------- +// clk_w - Change clock pin status +//------------------------------------------------- + +WRITE_LINE_MEMBER(alpha_8921_device::clk_w) +{ + if (m_clk != state) + { + m_clk = state; + if (!m_clk) // falling edge + { + if (m_load) + m_sr = m_c; + else if (m_h) + m_sr = (BIT(m_sr, 24, 6) << 26) | (BIT(m_sr, 16, 6) << 18) | (BIT(m_sr, 8, 6) << 10) | (BIT(m_sr, 0, 6) << 2); + else + m_sr = ((BIT(m_sr, 26, 6)) << 24) | ((BIT(m_sr, 18, 6)) << 16) | ((BIT(m_sr, 10, 6)) << 8) | (BIT(m_sr, 2, 6)); + } + } +} + +//------------------------------------------------- +// load_w - Change LOAD pin status +//------------------------------------------------- + +WRITE_LINE_MEMBER(alpha_8921_device::load_w) +{ + m_load = state; +} + +//------------------------------------------------- +// even_w - Change EVEN pin status +//------------------------------------------------- + +WRITE_LINE_MEMBER(alpha_8921_device::even_w) +{ + m_even = state; +} + +//------------------------------------------------- +// h_w - Change H pin status +//------------------------------------------------- + +WRITE_LINE_MEMBER(alpha_8921_device::h_w) +{ + m_h = state; +} + +//------------------------------------------------- +// c_w - Change C data +//------------------------------------------------- + +void alpha_8921_device::c_w(u32 data) +{ + m_c = data; +} + +//------------------------------------------------- +// update_output - Update output results +//------------------------------------------------- + +void alpha_8921_device::update_output() +{ + if ((m_old_sr != m_sr) || (m_old_even != m_even) || (m_old_h != m_h)) + { + switch (m_h) + { + case 1: + m_gbd = bitswap<4>(m_sr, 30, 22, 14, 6); + m_gad = bitswap<4>(m_sr, 31, 23, 15, 7); + break; + case 0: + m_gbd = bitswap<4>(m_sr, 25, 17, 9, 1); + m_gad = bitswap<4>(m_sr, 24, 16, 8, 0); + break; + } + if (m_even) + std::swap<u8>(m_gad, m_gbd); + + m_dota = m_gad ? true : false; + m_dotb = m_gbd ? true : false; + m_old_sr = m_sr; + m_old_even = m_even; + m_old_h = m_h; + } +} + +//------------------------------------------------- +// gad_r - Read GAD data +//------------------------------------------------- + +u8 alpha_8921_device::gad_r() +{ + update_output(); + return m_gad & 0xf; +} + +//------------------------------------------------- +// gbd_r - Read GBD data +//------------------------------------------------- + +u8 alpha_8921_device::gbd_r() +{ + update_output(); + return m_gbd & 0xf; +} + +//------------------------------------------------- +// dota_r - Read DOTA pin data (GAD isn't 0) +//------------------------------------------------- + +READ_LINE_MEMBER(alpha_8921_device::dota_r) +{ + update_output(); + return m_dota; +} + +//------------------------------------------------- +// dotb_r - Read DOTB pin data (GBD isn't 0) +//------------------------------------------------- + +READ_LINE_MEMBER(alpha_8921_device::dotb_r) +{ + update_output(); + return m_dotb; +} diff --git a/src/devices/machine/alpha_8921.h b/src/devices/machine/alpha_8921.h new file mode 100644 index 00000000000..88ecd850eb9 --- /dev/null +++ b/src/devices/machine/alpha_8921.h @@ -0,0 +1,67 @@ +// license:BSD-3-Clause +// copyright-holders:cam900 +/*************************************************************************** + + Alpha denshi ALPHA-8921 emulation + +***************************************************************************/ + +#ifndef MAME_MACHINE_ALPHA_8921_H +#define MAME_MACHINE_ALPHA_8921_H + +#pragma once + + +// ======================> alpha_8921_device + +class alpha_8921_device : public device_t +{ +public: + // construction/destruction + alpha_8921_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // inputs + DECLARE_WRITE_LINE_MEMBER(clk_w); + DECLARE_WRITE_LINE_MEMBER(load_w); + DECLARE_WRITE_LINE_MEMBER(even_w); + DECLARE_WRITE_LINE_MEMBER(h_w); + void c_w(u32 data); + + // outputs + u8 gad_r(); + u8 gbd_r(); + DECLARE_READ_LINE_MEMBER(dota_r); + DECLARE_READ_LINE_MEMBER(dotb_r); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + +private: + // inputs + bool m_clk = false; // CLK pin + bool m_load = false; // LOAD pin + bool m_even = false; // EVEN pin + bool m_h = false; // H pin + u32 m_c = 0; // C data (32 bit) + + // outputs + u8 m_gad = 0; // GAD data (4 bit) + u8 m_gbd = 0; // GBD data (4 bit) + bool m_dota = false; // DOTA pin + bool m_dotb = false; // DOTB pin + + // internal status + u32 m_sr = 0; + u32 m_old_sr = ~0; + bool m_old_even = true; + bool m_old_h = true; + void update_output(); +}; + + +// device type definition +DECLARE_DEVICE_TYPE(ALPHA_8921, alpha_8921_device) + +#endif // MAME_MACHINE_ALPHA_8921_H diff --git a/src/devices/machine/intelfsh.cpp b/src/devices/machine/intelfsh.cpp index 77281819bdf..af8e50dc2d0 100644 --- a/src/devices/machine/intelfsh.cpp +++ b/src/devices/machine/intelfsh.cpp @@ -120,6 +120,8 @@ DEFINE_DEVICE_TYPE(SST_39VF400A, sst_39vf400a_device, "sst_39v DEFINE_DEVICE_TYPE(ATMEL_49F4096, atmel_49f4096_device, "atmel_49f4096", "Atmel AT49F4096 Flash") +DEFINE_DEVICE_TYPE(CAT28F020, cat28f020_device, "cat28f020", "CSI CAT28F020 Flash") + //************************************************************************** @@ -226,6 +228,12 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type m_maker_id = MFG_AMD; m_device_id = 0x3b; break; + case FLASH_CAT28F020: + m_bits = 8; + m_size = 0x40000; + m_maker_id = MFG_CATALYST; + m_device_id = 0xbd; + break; case FLASH_INTEL_28F320J3D: m_bits = 16; m_size = 0x400000; @@ -450,6 +458,9 @@ amd_29f800b_16bit_device::amd_29f800b_16bit_device(const machine_config &mconfig amd_29lv200t_device::amd_29lv200t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : intelfsh8_device(mconfig, AMD_29LV200T, tag, owner, clock, FLASH_AMD_29LV200T) { } +cat28f020_device::cat28f020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : intelfsh8_device(mconfig, CAT28F020, tag, owner, clock, FLASH_CAT28F020) { } + intel_e28f008sa_device::intel_e28f008sa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : intelfsh8_device(mconfig, INTEL_E28F008SA, tag, owner, clock, FLASH_INTEL_E28F008SA) { } diff --git a/src/devices/machine/intelfsh.h b/src/devices/machine/intelfsh.h index bde0b0d4c61..8001b2fc5ce 100644 --- a/src/devices/machine/intelfsh.h +++ b/src/devices/machine/intelfsh.h @@ -30,6 +30,7 @@ public: FLASH_AMD_29F800T, FLASH_AMD_29F800B_16BIT, FLASH_AMD_29LV200T, + FLASH_CAT28F020, FLASH_SHARP_LH28F016S, FLASH_SHARP_LH28F016S_16BIT, FLASH_INTEL_E28F008SA, @@ -365,6 +366,12 @@ public: atmel_49f4096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); }; +class cat28f020_device : public intelfsh8_device +{ +public: + cat28f020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); +}; + // device type definition DECLARE_DEVICE_TYPE(INTEL_28F016S5, intel_28f016s5_device) @@ -406,5 +413,6 @@ DECLARE_DEVICE_TYPE(INTEL_28F320J3D, intel_28f320j3d_device) DECLARE_DEVICE_TYPE(INTEL_28F320J5, intel_28f320j5_device) DECLARE_DEVICE_TYPE(SST_39VF400A, sst_39vf400a_device) DECLARE_DEVICE_TYPE(ATMEL_49F4096, atmel_49f4096_device) +DECLARE_DEVICE_TYPE(CAT28F020, cat28f020_device) #endif // MAME_MACHINE_INTELFSH_H diff --git a/src/devices/video/pwm.cpp b/src/devices/video/pwm.cpp index 50b608759ef..d192c93a633 100644 --- a/src/devices/video/pwm.cpp +++ b/src/devices/video/pwm.cpp @@ -6,7 +6,7 @@ This thing is a generic helper for PWM(strobed) display elements, to prevent fli and optionally handle perceived brightness levels. Common usecase is to call matrix(selmask, datamask), a collision between the 2 masks -implies a powered-on display element (eg, a LED, or VFD sprite). The maximum matrix +implies a powered-on display element (eg. a LED, or VFD sprite). The maximum matrix size is 64 by 64, simply due to uint64_t constraints. If a larger size is needed, create an array of pwm_display_device. diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 022d88f6515..8e7ad2665be 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -1949,6 +1949,7 @@ void lua_engine::initialize() * * ioport:count_players() - get count of player controllers * ioport:type_group(type, player) + * ioport:type_seq(type, player, seqtype) - get input sequence for ioport type/player * * ioport.ports[] - ioports table (k=tag, v=ioport_port) */ @@ -1965,6 +1966,9 @@ void lua_engine::initialize() port_table[port.second->tag()] = port.second.get(); return port_table; })); + ioport_manager_type.set("type_seq", [](ioport_manager &m, ioport_type type, int player, input_seq_type seqtype) { + return sol::make_user(m.type_seq(type, player, seqtype)); + }); sol().registry().set_usertype("ioport", ioport_manager_type); diff --git a/src/lib/netlist/macro/nlm_base_lib.cpp b/src/lib/netlist/macro/nlm_base_lib.cpp index 2e634b29e2c..b9c4165a46b 100644 --- a/src/lib/netlist/macro/nlm_base_lib.cpp +++ b/src/lib/netlist/macro/nlm_base_lib.cpp @@ -13,8 +13,10 @@ static NETLIST_START(diode_models) // FIXME: 1N916 currently only a copy of 1N914! NET_MODEL("1N916 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") NET_MODEL("1N4001 D(Is=14.11n N=1.984 Rs=33.89m Ikf=94.81 Xti=3 Eg=1.11 Cjo=25.89p M=.44 Vj=.3245 Fc=.5 Bv=75 Ibv=10u Tt=5.7u Iave=1 Vpk=50 mfg=GI type=silicon)") + NET_MODEL("1N4002 D(IS=65.4p RS=42.2m BV=100 IBV=5.00u CJO=14.8p M=0.333 N=1.36 TT=2.88u)") NET_MODEL("1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") NET_MODEL("1N4154 D(Is=0.1n Rs=4 N=1.67 Cjo=2p M=.333 tt=3n Iave=150m Vpk=35 Bv=60 Ibv=0.1p mfg=Vishay type=silicon)") + NET_MODEL("1N4454 D(Is=168.1e-21 Rs=.1 N=1 Cjo=2p M=.333 tt=5.771n Iave=400m Vpk=35 Bv=75 Ibv=100u mfg=OnSemi type=silicon)") NET_MODEL("1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75)") NET_MODEL("1N34A D( Bv=75 Cjo=0.5e-12 Eg=0.67 Ibv=18e-3 Is=2e-7 Rs=7 N=1.3 Vj=0.1 M=0.27 type=germanium)") @@ -24,6 +26,15 @@ static NETLIST_START(diode_models) NET_MODEL("LedBlue D(IS=93.2p RS=42M N=7.47 BV=5 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=5 type=LED)") NET_MODEL("LedWhite D(Is=0.27n Rs=5.65 N=6.79 Cjo=42p Iave=30m Vpk=5 type=LED)") + // Zdiodes ... + + // not really found anywhere, just took the 5239 and changed the + // breakdown voltage to 5.1 according to the datasheet + NET_MODEL("1N5231 D(BV=5.1 IBV=0.020 NBV=1)") + NET_MODEL("1N5236B D(BV=7.5 IS=27.5p RS=33.8 N=1.10 CJO=58.2p VJ=0.750 M=0.330 TT=50.1n)") + NET_MODEL("1N5240 D(BV=10 IS=14.4p RS=32.0 N=1.10 CJO=24.1p VJ=0.750 M=0.330 TT=50.1n)") + NET_MODEL("1N5240B D(BV=10 IS=14.4p RS=32.0 N=1.10 CJO=24.1p VJ=0.750 M=0.330 TT=50.1n)") + NETLIST_END() /* ---------------------------------------------------------------------------- @@ -55,12 +66,26 @@ static NETLIST_START(bjt_models) NET_MODEL("2N3645 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)") // 3644 = 3645 Difference between 3644 and 3645 is voltage rating. 3644: VCBO=45, 3645: VCBO=60 NET_MODEL("2N3644 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)") + NET_MODEL("2N3702 PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=133.8 Ne=1.832 Ise=97.16f Ikf=1.081 Xtb=1.5 Br=3.73 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=114.1n Tf=761.3p Itf=.65 Vtf=5 Xtf=1.7 Rb=10 mfg=National)") + NET_MODEL("2N3704 NPN(IS=26.03f VAF=90.7 Bf=736.1K IKF=.1983 XTB=1.5 BR=1.024 CJC=11.01p CJE=24.07p RB=10 RC=.5 RE=.5 TR=233.8n TF=1.03n ITF=0 VTF=0 XTF=0 mfg=Motorola)") + // SPICE model parameters taken from Fairchild Semiconductor datasheet + NET_MODEL("2N3904 NPN(IS=1E-14 VAF=100 Bf=300 IKF=0.4 XTB=1.5 BR=4 CJC=4E-12 CJE=8E-12 RB=20 RC=0.1 RE=0.1 TR=250E-9 TF=350E-12 ITF=1 VTF=2 XTF=3 Vceo=40 Icrating=200m mfg=Philips)") + // SPICE model parameters taken from Fairchild Semiconductor datasheet + NET_MODEL("2N3906 PNP(Is=1.41f Xti=3 Eg=1.11 Vaf=18.7 Bf=180.7 Ne=1.5 Ise=0 Ikf=80m Xtb=1.5 Br=4.977 Nc=2 Isc=0 Ikr=0 Rc=2.5 Cjc=9.728p Mjc=.5776 Vjc=.75 Fc=.5 Cje=8.063p Mje=.3677 Vje=.75 Tr=33.42n Tf=179.3p Itf=.4 Vtf=4 Xtf=6 Rb=10)") // 2N5190 = BC817-25 NET_MODEL("2N5190 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)") NET_MODEL("2N4401 NPN(IS=26.03f XTI=3 EG=1.11 VAF=90.7 BF=4.292K NE=1.244 ISE=26.03f IKF=0.2061 XTB=1.5 BR=1.01 NC=2 ISC=0 IKR=0 RC=0.5 CJC=11.01p MJC=0.3763 VJC=0.75 FC=0.5 CJE=24.07p MJE=0.3641 VJE=0.75 TR=233.7n TF=466.5p ITF=0 VTF=0 XTF=0 RB=10 VCEO=40)") + NET_MODEL("2N4403 PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=216.2 Ne=1.829 Ise=58.72f Ikf=1.079 Xtb=1.5 Br=3.578 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=111.6n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)") NET_MODEL("2N4124 NPN(IS=6.734f XTI=3 EG=1.11 VAF=74.03 BF=495 NE=1.28 ISE=6.734f IKF=69.35m XTB=1.5 BR=0.7214 NC=2 ISC=0 IKR=0 RC=1 CJC=3.638p MJC=0.3085 VJC=0.75 FC=0.5 CJE=4.493p MJE=0.2593 VJE=0.75 TR=238.3n TF=301.3p ITF=.4 VTF=4 XTF=2 RB=10 VCEO=25)") NET_MODEL("2N4126 PNP(IS=1.41f XTI=3 EG=1.11 VAF=18.7 BF=203.7 NE=1.5 ISE=0 IKF=80m XTB=1.5 BR=4.924 NC=2 ISC=0 IKR=0 RC=2.5 CJC=9.728p MJC=0.5776 VJC=0.75 FC=0.5 CJE=8.063p MJE=0.3677 VJE=0.75 TR=33.23n TF=179.3p ITF=.4 VTF=4 XTF=6 RB=10 VCEO=25)") + // SPICE model parameters taken from http://ltwiki.org/files/LTspiceIV/Vendor%20List/Fairchild/2N/index.html + NET_MODEL("2N5210 NPN(Is=5.911f Xti=3 Eg=1.11 Vaf=62.37 Bf=809.9 Ne=1.358 Ise=5.911f Ikf=14.26m Xtb=1.5 Br=1.287 Nc=2 Isc=0 Ikr=0 Rc=1.61 Cjc=4.017p Mjc=.3174 Vjc=.75 Fc=.5 Cje=4.973p Mje=.4146 Vje=.75 Tr=4.68n Tf=820.9p Itf=.35 Vtf=4 Xtf=7 Rb=10)") + // SPICE model parameters taken from https://www.onsemi.com/support/design-resources/models?rpn=2N6107 + NET_MODEL("2N6107 PNP(IS=7.62308e-14 BF=6692.56 NF=0.85 VAF=10 IKF=0.032192 ISE=2.07832e-13 NE=2.41828 BR=15.6629 NR=1.5 VAR=1.44572 IKR=0.32192 ISC=4.75e-16 NC=3.9375 RB=7.19824 IRB=0.1 RBM=0.1 RE=0.0001 RC=0.355458 XTB=0.1 XTI=2.97595 EG=1.206 CJE=1.84157e-10 VJE=0.99 MJE=0.347177 TF=6.63757e-09 XTF=1.50003 VTF=1.0001 ITF=1 CJC=1.06717e-10 VJC=0.942679 MJC=0.245405 XCJC=0.8 FC=0.533334 CJS=0 VJS=0.75 MJS=0.5 TR=1.32755e-07 PTF=0 KF=0 AF=1)") + // SPICE model parameters taken from https://www.onsemi.com/support/design-resources/models?rpn=2N6292 + NET_MODEL("2N6292 NPN(IS=9.3092e-13 BF=2021.8 NF=0.85 VAF=63.2399 IKF=1 ISE=1.92869e-13 NE=1.97024 BR=40.0703 NR=1.5 VAR=0.89955 IKR=10 ISC=4.92338e-16 NC=3.9992 RB=6.98677 IRB=0.1 RBM=0.1 RE=0.0001 RC=0.326141 XTB=0.1 XTI=2.86739 EG=1.206 CJE=1.84157e-10 VJE=0.99 MJE=0.347174 TF=6.73756e-09 XTF=1.49917 VTF=0.997395 ITF=0.998426 CJC=1.06717e-10 VJC=0.942694 MJC=0.245406 XCJC=0.8 FC=0.533405 CJS=0 VJS=0.75 MJS=0.5 TR=6.0671e-08 PTF=0 KF=0 AF=1)") + NET_MODEL("2SC945 NPN(IS=3.577E-14 BF=2.382E+02 NF=1.01 VAF=1.206E+02 IKF=3.332E-01 ISE=3.038E-16 NE=1.205 BR=1.289E+01 NR=1.015 VAR=1.533E+01 IKR=2.037E-01 ISC=3.972E-14 NC=1.115 RB=3.680E+01 IRB=1.004E-04 RBM=1 RE=8.338E-01 RC=1.557E+00 CJE=1.877E-11 VJE=7.211E-01 MJE=3.486E-01 TF=4.149E-10 XTF=1.000E+02 VTF=9.956 ITF=5.118E-01 PTF=0 CJC=6.876p VJC=3.645E-01 MJC=3.074E-01 TR=5.145E-08 XTB=1.5 EG=1.11 XTI=3 FC=0.5 Vceo=50 Icrating=100m MFG=NEC)") NET_MODEL("BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45 ICRATING=100M MFG=ZETEX)") diff --git a/src/lib/netlist/macro/nlm_opamp_lib.cpp b/src/lib/netlist/macro/nlm_opamp_lib.cpp index 40f2abd176b..0d1a77a87b8 100644 --- a/src/lib/netlist/macro/nlm_opamp_lib.cpp +++ b/src/lib/netlist/macro/nlm_opamp_lib.cpp @@ -616,7 +616,7 @@ NETLIST_START(opamp_lib) NET_MODEL("UA741 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=75 DAB=0.0017)") NET_MODEL("LM747 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=50 DAB=0.0017)") NET_MODEL("LM747A OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=1000k SLEW=0.7M RI=6000k RO=50 DAB=0.0015)") - // FIXME: LM748 values are calculated based on a documented schematic of the part and may be wrong. + NET_MODEL("LM748 OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=800k SLEW=0.7M RI=800k RO=60 DAB=0.001)") // TI and Motorola Datasheets differ - below are Motorola values, SLEW is average of LH and HL NET_MODEL("LM3900 OPAMP(TYPE=3 VLH=1.0 VLL=0.03 FPF=2k UGF=4M SLEW=10M RI=10M RO=2k DAB=0.0015)") diff --git a/src/lib/netlist/nl_parser.cpp b/src/lib/netlist/nl_parser.cpp index d5823d2e930..32a5c542a16 100644 --- a/src/lib/netlist/nl_parser.cpp +++ b/src/lib/netlist/nl_parser.cpp @@ -120,7 +120,7 @@ bool parser_t::parse(const token_store &tokstor, const pstring &nlname) if (token.is(m_tok_NETLIST_START) && (name.str() == nlname || nlname.empty())) { require_token(m_tok_paren_right); - parse_netlist(name.str()); + parse_netlist(); return true; } if (token.is(m_tok_TRUTHTABLE_START) && name.str() == nlname) @@ -165,7 +165,7 @@ bool parser_t::parse(const token_store &tokstor, const pstring &nlname) } } -void parser_t::parse_netlist(const pstring &nlname) +void parser_t::parse_netlist() { while (true) { diff --git a/src/lib/netlist/nl_parser.h b/src/lib/netlist/nl_parser.h index aafe0911a2e..077f1b10792 100644 --- a/src/lib/netlist/nl_parser.h +++ b/src/lib/netlist/nl_parser.h @@ -30,7 +30,7 @@ namespace netlist void parse_tokens(plib::istream_uptr &&strm, token_store &tokstor); protected: - void parse_netlist(const pstring &nlname); + void parse_netlist(); void net_alias(); void dippins(); void netdev_param(); diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index b2ade9d48ce..fcea082a036 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -1282,7 +1282,10 @@ void models_t::model_parse(const pstring &model_in, map_t &map) key = plib::ucase(model); auto i = m_models.find(key); if (i == m_models.end()) - throw nl_exception(MF_MODEL_NOT_FOUND("xx" + model)); + { + throw nl_exception(MF_MODEL_NOT_FOUND(pstring("xx") + model)); + } + model = i->second; } pstring xmodel = plib::left(model, pos); diff --git a/src/lib/netlist/plib/pexception.h b/src/lib/netlist/plib/pexception.h index 2023fb91c38..709f8810b83 100644 --- a/src/lib/netlist/plib/pexception.h +++ b/src/lib/netlist/plib/pexception.h @@ -40,10 +40,10 @@ namespace plib { explicit pexception(const pstring &text); const pstring &text() const noexcept { return m_text; } - const char* what() const noexcept override { return putf8string(m_text).c_str(); } + const char* what() const noexcept override { return m_text.c_str(); } private: - pstring m_text; + putf8string m_text; }; class file_e : public plib::pexception diff --git a/src/mame/audio/nl_astrob.cpp b/src/mame/audio/nl_astrob.cpp index ba966702284..ee158301c29 100644 --- a/src/mame/audio/nl_astrob.cpp +++ b/src/mame/audio/nl_astrob.cpp @@ -44,13 +44,10 @@ -// not really found anywhere, just took the 5239 and changed the -// breakdown voltage to 5.1 according to the datasheet -#define D_1N5231(name) ZDIODE(name, "D(BV=5.1 IBV=0.020 NBV=1)") +#define D_1N5231(name) ZDIODE(name, "1N5231") #define D_1N914(name) DIODE(name, "1N914") -// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4403 -#define Q_2N4403(name) QBJT_EB(name, "PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=216.2 Ne=1.829 Ise=58.72f Ikf=1.079 Xtb=1.5 Br=3.578 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=111.6n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)") +#define Q_2N4403(name) QBJT_EB(name, "2N4403") // JFET transistors not supported, but this should do the trick #define Q_2N4093(name) MOSFET(name, "NMOS(VTO=-1 CAPMOD=0)") diff --git a/src/mame/audio/nl_carpolo.cpp b/src/mame/audio/nl_carpolo.cpp index cef3eb79346..21ffe0b9175 100644 --- a/src/mame/audio/nl_carpolo.cpp +++ b/src/mame/audio/nl_carpolo.cpp @@ -71,9 +71,6 @@ NETLIST_END() // NETLIST_START(carpolo) - NET_MODEL("1N4454 D(Is=168.1e-21 Rs=.1 N=1 Cjo=2p M=.333 tt=5.771n Iave=400m Vpk=35 Bv=75 Ibv=100u mfg=OnSemi type=silicon)") - NET_MODEL("2N3904 NPN(IS=1E-14 VAF=100 Bf=300 IKF=0.4 XTB=1.5 BR=4 CJC=4E-12 CJE=8E-12 RB=20 RC=0.1 RE=0.1 TR=250E-9 TF=350E-12 ITF=1 VTF=2 XTF=3 Vceo=40 Icrating=200m mfg=Philips)") - NET_MODEL("LM748 OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=800k SLEW=0.7M RI=800k RO=60 DAB=0.001)") SOLVER(Solver, 48000) ANALOG_INPUT(V15, 15) diff --git a/src/mame/audio/nl_cinemat_common.h b/src/mame/audio/nl_cinemat_common.h index 7533acd56da..cfdd16820aa 100644 --- a/src/mame/audio/nl_cinemat_common.h +++ b/src/mame/audio/nl_cinemat_common.h @@ -68,33 +68,27 @@ // Diode models // -// models copied from https://www.diodes.com/assets/Spice-Models/Discrete-Prodcut-Groups/Zener-Diodes.txt #define D_1N914(name) DIODE(name, "1N914") #define D_1N914B(name) DIODE(name, "1N914") -#define D_1N5236B(name) ZDIODE(name, "D(BV=7.5 IS=27.5p RS=33.8 N=1.10 CJO=58.2p VJ=0.750 M=0.330 TT=50.1n)") -#define D_1N5240(name) ZDIODE(name, "D(BV=10 IS=14.4p RS=32.0 N=1.10 CJO=24.1p VJ=0.750 M=0.330 TT=50.1n)") -#define D_1N5240B(name) ZDIODE(name, "D(BV=10 IS=14.4p RS=32.0 N=1.10 CJO=24.1p VJ=0.750 M=0.330 TT=50.1n)") +#define D_1N5236B(name) ZDIODE(name, "1N5236B") +#define D_1N5240(name) ZDIODE(name, "1N5240") +#define D_1N5240B(name) ZDIODE(name, "1N5240B") // -// Op-amp models +// Transistor models // -// SPICE model taken directly from Fairchild Semiconductor datasheet -#define Q_2N3904(name) QBJT_EB(name, "NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 Bf=416.4 Ne=1.259 Ise=6.734 Ikf=66.78m Xtb=1.5 Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=3.638p Mjc=.3085 Vjc=.75 Fc=.5 Cje=4.493p Mje=.2593 Vje=.75 Tr=239.5n f=301.2p Itf=.4 Vtf=4 Xtf=2 Rb=10)") +#define Q_2N3904(name) QBJT_EB(name, "2N3904") -// SPICE model taken directly from Fairchild Semiconductor datasheet -#define Q_2N3906(name) QBJT_EB(name, "PNP(Is=1.41f Xti=3 Eg=1.11 Vaf=18.7 Bf=180.7 Ne=1.5 Ise=0 Ikf=80m Xtb=1.5 Br=4.977 Nc=2 Isc=0 Ikr=0 Rc=2.5 Cjc=9.728p Mjc=.5776 Vjc=.75 Fc=.5 Cje=8.063p Mje=.3677 Vje=.75 Tr=33.42n Tf=179.3p Itf=.4 Vtf=4 Xtf=6 Rb=10)") +#define Q_2N3906(name) QBJT_EB(name, "2N3906") -// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N6107 -#define Q_2N6107(name) QBJT_EB(name, "PNP(IS=7.62308e-14 BF=6692.56 NF=0.85 VAF=10 IKF=0.032192 ISE=2.07832e-13 NE=2.41828 BR=15.6629 NR=1.5 VAR=1.44572 IKR=0.32192 ISC=4.75e-16 NC=3.9375 RB=7.19824 IRB=0.1 RBM=0.1 RE=0.0001 RC=0.355458 XTB=0.1 XTI=2.97595 EG=1.206 CJE=1.84157e-10 VJE=0.99 MJE=0.347177 TF=6.63757e-09 XTF=1.50003 VTF=1.0001 ITF=1 CJC=1.06717e-10 VJC=0.942679 MJC=0.245405 XCJC=0.8 FC=0.533334 CJS=0 VJS=0.75 MJS=0.5 TR=1.32755e-07 PTF=0 KF=0 AF=1)") +#define Q_2N6107(name) QBJT_EB(name, "2N6107") -// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N6292 -#define Q_2N6292(name) QBJT_EB(name, "NPN(IS=9.3092e-13 BF=2021.8 NF=0.85 VAF=63.2399 IKF=1 ISE=1.92869e-13 NE=1.97024 BR=40.0703 NR=1.5 VAR=0.89955 IKR=10 ISC=4.92338e-16 NC=3.9992 RB=6.98677 IRB=0.1 RBM=0.1 RE=0.0001 RC=0.326141 XTB=0.1 XTI=2.86739 EG=1.206 CJE=1.84157e-10 VJE=0.99 MJE=0.347174 TF=6.73756e-09 XTF=1.49917 VTF=0.997395 ITF=0.998426 CJC=1.06717e-10 VJC=0.942694 MJC=0.245406 XCJC=0.8 FC=0.533405 CJS=0 VJS=0.75 MJS=0.5 TR=6.0671e-08 PTF=0 KF=0 AF=1)") +#define Q_2N6292(name) QBJT_EB(name, "2N6292") -// SPICE model taken from http://ltwiki.org/files/LTspiceIV/Vendor%20List/Fairchild/2N/index.html -#define Q_2N5210(name) QBJT_EB(name, "NPN(Is=5.911f Xti=3 Eg=1.11 Vaf=62.37 Bf=809.9 Ne=1.358 Ise=5.911f Ikf=14.26m Xtb=1.5 Br=1.287 Nc=2 Isc=0 Ikr=0 Rc=1.61 Cjc=4.017p Mjc=.3174 Vjc=.75 Fc=.5 Cje=4.973p Mje=.4146 Vje=.75 Tr=4.68n Tf=820.9p Itf=.35 Vtf=4 Xtf=7 Rb=10)") +#define Q_2N5210(name) QBJT_EB(name, "2N5210") diff --git a/src/mame/audio/nl_elim.cpp b/src/mame/audio/nl_elim.cpp index d027cd1a244..834f84ffce1 100644 --- a/src/mame/audio/nl_elim.cpp +++ b/src/mame/audio/nl_elim.cpp @@ -53,10 +53,9 @@ #define D_1N914(name) DIODE(name, "1N914") -#define D_1N4002(name) DIODE(name, "D(IS=65.4p RS=42.2m BV=100 IBV=5.00u CJO=14.8p M=0.333 N=1.36 TT=2.88u)") +#define D_1N4002(name) DIODE(name, "1N4002") -// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4403 -#define Q_2N4403(name) QBJT_EB(name, "PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=216.2 Ne=1.829 Ise=58.72f Ikf=1.079 Xtb=1.5 Br=3.578 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=111.6n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)") +#define Q_2N4403(name) QBJT_EB(name, "2N4403") #define LM555_DIP NE555_DIP #define LM566_DIP NE566_DIP diff --git a/src/mame/audio/nl_fireone.cpp b/src/mame/audio/nl_fireone.cpp index 9b2c405535c..5bca887402e 100644 --- a/src/mame/audio/nl_fireone.cpp +++ b/src/mame/audio/nl_fireone.cpp @@ -98,8 +98,6 @@ NETLIST_END() // NETLIST_START(fireone) - NET_MODEL("2N3704 NPN(IS=26.03f VAF=90.7 Bf=736.1K IKF=.1983 XTB=1.5 BR=1.024 CJC=11.01p CJE=24.07p RB=10 RC=.5 RE=.5 TR=233.8n TF=1.03n ITF=0 VTF=0 XTF=0 mfg=Motorola)") - SOLVER(Solver, 48000) ANALOG_INPUT(V12, 12) diff --git a/src/mame/audio/nl_spacfury.cpp b/src/mame/audio/nl_spacfury.cpp index 5114b1a4c9c..b66b842915c 100644 --- a/src/mame/audio/nl_spacfury.cpp +++ b/src/mame/audio/nl_spacfury.cpp @@ -47,13 +47,11 @@ // #define D_1N914(name) DIODE(name, "1N914") -#define D_1N4002(name) DIODE(name, "D(IS=65.4p RS=42.2m BV=100 IBV=5.00u CJO=14.8p M=0.333 N=1.36 TT=2.88u)") +#define D_1N4002(name) DIODE(name, "1N4002") -// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4401 -#define Q_2N4401(name) QBJT_EB(name, "NPN(Is=26.03f Xti=3 Eg=1.11 Vaf=90.7 Bf=4.292K Ne=1.244 Ise=26.03f Ikf=.2061 Xtb=1.5 Br=1.01 Nc=2 Isc=0 Ikr=0 Rc=.5 Cjc=11.01p Mjc=.3763 Vjc=.75 Fc=.5 Cje=24.07p Mje=.3641 Vje=.75 Tr=233.7n Tf=466.5p Itf=0 Vtf=0 Xtf=0 Rb=10)") +#define Q_2N4401(name) QBJT_EB(name, "2N4401") -// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4403 -#define Q_2N4403(name) QBJT_EB(name, "PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=216.2 Ne=1.829 Ise=58.72f Ikf=1.079 Xtb=1.5 Br=3.578 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=111.6n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)") +#define Q_2N4403(name) QBJT_EB(name, "2N4403") // JFET transistors not supported, but this should do the trick //#define Q_2N4093(name) MOSFET(name, "NMOS(VTO=-1.0)") diff --git a/src/mame/audio/nl_starfire.cpp b/src/mame/audio/nl_starfire.cpp index cf071f08e52..bae260e7ad1 100644 --- a/src/mame/audio/nl_starfire.cpp +++ b/src/mame/audio/nl_starfire.cpp @@ -94,7 +94,6 @@ NETLIST_END() // NETLIST_START(starfire) - NET_MODEL("2N3702 PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=133.8 Ne=1.832 Ise=97.16f Ikf=1.081 Xtb=1.5 Br=3.73 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=114.1n Tf=761.3p Itf=.65 Vtf=5 Xtf=1.7 Rb=10 mfg=National)") NET_MODEL("LM324_12V OPAMP(TYPE=3 VLH=1.6 VLL=0.16 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") NET_MODEL("LM324_5V OPAMP(TYPE=3 VLH=0.667 VLL=0.0667 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") diff --git a/src/mame/drivers/alphatpx.cpp b/src/mame/drivers/alphatpx.cpp index 4cab2c7cdfa..08a9c361569 100644 --- a/src/mame/drivers/alphatpx.cpp +++ b/src/mame/drivers/alphatpx.cpp @@ -595,7 +595,7 @@ PORT_START("COL.3") PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') PORT_START("COL.4") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Y) PORT_CHAR('z') PORT_CHAR('Z') PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN) @@ -607,7 +607,7 @@ PORT_START("COL.5") PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // 0x89 - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') + PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Z) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_START("COL.6") @@ -628,27 +628,27 @@ PORT_START("COL.7") PORT_START("COL.8") PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ö Ö") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ö Ö") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6) PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_') PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_CTRL") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) // 44h ->84h clear ? PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER Pad") PORT_CODE(KEYCODE_ENTER_PAD)PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_START("COL.9") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ü Ü") PORT_CODE(KEYCODE_OPENBRACE)PORT_CHAR(0x00fc) PORT_CHAR(0x00dc) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ä Ä") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4) + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ü Ü") PORT_CODE(KEYCODE_OPENBRACE)PORT_CHAR(0x00fc) PORT_CHAR(0x00dc) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ä Ä") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4) PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 Pad") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN) PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') PORT_START("COL.10") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ *") PORT_CODE(KEYCODE_CLOSEBRACE)PORT_CHAR('+') PORT_CHAR('*') + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ *") PORT_CODE(KEYCODE_CLOSEBRACE)PORT_CHAR('+') PORT_CHAR('*') PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("# ^") PORT_CODE(KEYCODE_BACKSLASH)PORT_CHAR('#') PORT_CHAR('^') PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[][]/ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) // Esc test this work ?! PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL Pad") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ß ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß and ? + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ß ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß and ? PORT_START("COL.11") PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') // TAB key @@ -656,7 +656,7 @@ PORT_START("COL.11") PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 Pad") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ Pad") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("´ `") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(0x00b4) PORT_CHAR(0x0060) + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"´ `") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(0x00b4,'\'') PORT_CHAR(0x0060) PORT_START("COL.12") PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 Pad") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) @@ -769,7 +769,7 @@ PORT_START("COL.3") PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') PORT_START("COL.4") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Y) PORT_CHAR('z') PORT_CHAR('Z') PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN) @@ -781,7 +781,7 @@ PORT_START("COL.5") PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // 0x89 - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') + PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Z) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_START("COL.6") @@ -802,27 +802,27 @@ PORT_START("COL.7") PORT_START("COL.8") PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ö Ö") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ö Ö") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6) PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_') PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_CTRL") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) // 44h ->84h clear ? PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER Pad") PORT_CODE(KEYCODE_ENTER_PAD)PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_START("COL.9") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ü Ü") PORT_CODE(KEYCODE_OPENBRACE)PORT_CHAR(0x00fc) PORT_CHAR(0x00dc) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ä Ä") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4) + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ü Ü") PORT_CODE(KEYCODE_OPENBRACE)PORT_CHAR(0x00fc) PORT_CHAR(0x00dc) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ä Ä") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4) PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 Pad") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN) PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') PORT_START("COL.10") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ *") PORT_CODE(KEYCODE_CLOSEBRACE)PORT_CHAR('+') PORT_CHAR('*') + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ *") PORT_CODE(KEYCODE_CLOSEBRACE)PORT_CHAR('+') PORT_CHAR('*') PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("# ^") PORT_CODE(KEYCODE_BACKSLASH)PORT_CHAR('#') PORT_CHAR('^') PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[][]/ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) // Esc test this work ?! PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL Pad") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ß ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß and ? + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"ß ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß and ? PORT_START("COL.11") PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') // TAB key @@ -830,7 +830,7 @@ PORT_START("COL.11") PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 Pad") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ Pad") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("´ `") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(39) PORT_CHAR(0x0060) // quote and tic + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"´ `") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(0x00b4,'\'') PORT_CHAR(0x0060) PORT_START("COL.12") PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 Pad") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) diff --git a/src/mame/drivers/bingor.cpp b/src/mame/drivers/bingor.cpp index cb5522cafbb..63a39cc8c05 100644 --- a/src/mame/drivers/bingor.cpp +++ b/src/mame/drivers/bingor.cpp @@ -912,8 +912,8 @@ ROM_START( bingor6 ) // Strings: 1988-1992 AWR Hard & Soft Austria. ROM_LOAD16_BYTE( "turbo_l.bin", 0x000000, 0x10000, CRC(86b10566) SHA1(5f74b250ced3574feffdc40b6ed013ec5a0c2c97) ) ROM_LOAD16_BYTE( "turbo_h.bin", 0x000001, 0x10000, CRC(7e18f9d7) SHA1(519b65d6812a3762e3215f4918c834d5a444b28a) ) - ROM_REGION( 0x20000, "pic", 0 ) // protection? - ROM_LOAD( "pic16c54rc.bin", 0x000, 0x400, NO_DUMP ) + ROM_REGION( 0x1fff, "pic", 0 ) // decapped, protection? + ROM_LOAD( "pic16c54rc.bin", 0x0000, 0x1fff, CRC(857e8f5a) SHA1(59666b76ec87f3a736f6c7c8f43e63913f53fbfd) ) ROM_REGION( 0x20000, "eeprom", 0 ) // eeprom ROM_LOAD( "bingor6_24c04a.bin", 0x000000, 0x200, CRC(9d271c5f) SHA1(8ac5c4848fb8d9a156ba760324022839fefcbb72) ) diff --git a/src/mame/drivers/bublbobl.cpp b/src/mame/drivers/bublbobl.cpp index 8c2326bb255..77e839790b8 100644 --- a/src/mame/drivers/bublbobl.cpp +++ b/src/mame/drivers/bublbobl.cpp @@ -1082,6 +1082,16 @@ void bub68705_state::bub68705(machine_config &config) MCFG_MACHINE_RESET_OVERRIDE(bub68705_state, bub68705) } +void bub8749_state::bub8749(machine_config &config) +{ + bublbobl_nomcu(config); + + // basic machine hardware + I8749(config, m_mcu, 3.579545_MHz_XTAL); // TODO: hook this up + + MCFG_MACHINE_START_OVERRIDE(bub8749_state, common) // for now + MCFG_MACHINE_RESET_OVERRIDE(bub8749_state, common) +} /************************************* @@ -1854,6 +1864,48 @@ ROM_START( bub68705 ) ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ ROM_END +ROM_START( bub8749 ) // all ROMs match bublbobl1 but for the MCU, which is different. 2-PCB set probably comes from Italy + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "6-27256.bin", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) ) + // ROMs banked at 8000-bfff + ROM_LOAD( "5-27512.bin", 0x10000, 0x10000, CRC(53f4bc6e) SHA1(15a2e6d83438d4136b154b3d90dd2cf9f1ce572c) ) + // 20000-2ffff empty + + ROM_REGION( 0x10000, "subcpu", 0 ) + ROM_LOAD( "8-27256.bin", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "7-27256.bin", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x800, "mcu", 0 ) // P8749H, on a small riser board + ROM_LOAD( "p8749h.bin", 0x000, 0x800, CRC(4912c847) SHA1(9296a5c5c4cb478571a92b4e6224ce5e2048cd07) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "9-27256.bin", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) // 1st plane + ROM_LOAD( "10-27256.bin", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "11-27256.bin", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "12-27256.bin", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "13-27256.bin", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "14-27256.bin", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + // 0x30000-0x3ffff empty + ROM_LOAD( "15-27256.bin", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) // 2nd plane + ROM_LOAD( "16-27256.bin", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "17-27256.bin", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "18-27256.bin", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "19-27256.bin", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "20-27256.bin", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + // 0x70000-0x7ffff empty + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "6301-in", 0x0000, 0x0100, BAD_DUMP CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) // video timing, not dumped for this set + + // Located on CPU/Sound Board + ROM_REGION( 0x0003, "plds", 0 ) + ROM_LOAD( "pal16l6nc.bin", 0x0000, 0x0001, NO_DUMP ) // Located at PAL1 + ROM_LOAD( "pal--.bin", 0x0000, 0x0001, NO_DUMP ) // Located at PAL2, type not readable + ROM_LOAD( "pal16r4cn.bin", 0x0000, 0x0001, NO_DUMP ) // Located at PAL3 +ROM_END + ROM_START( dland ) ROM_REGION( 0x30000, "maincpu", 0 ) @@ -2106,14 +2158,15 @@ GAME( 1986, bublboblr, bublbobl, bublbobl, bublbobl, bublbobl_state, init_co GAME( 1986, bublboblr1, bublbobl, bublbobl, bublbobl, bublbobl_state, init_common, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US, Ver 1.0)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, boblbobl, bublbobl, boblbobl, boblbobl, bublbobl_state, init_common, ROT0, "bootleg", "Bobble Bobble (bootleg of Bubble Bobble)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblbobl, bublbobl, boblbobl, sboblbobl, bublbobl_state, init_common, ROT0, "bootleg (Datsu)", "Super Bobble Bobble (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblbobla, bublbobl, boblbobl, boblbobl, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblboblb, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblbobld, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblboble, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblboblf, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblboblc, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bubble Bobble (bootleg)", MACHINE_SUPPORTS_SAVE ) // the title screen on this one isn't hacked -GAME( 1986, bub68705, bublbobl, bub68705, bublbobl, bub68705_state, init_common, ROT0, "bootleg", "Bubble Bobble (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblbobl, bublbobl, boblbobl, sboblbobl, bublbobl_state, init_common, ROT0, "bootleg (Datsu)", "Super Bobble Bobble (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblbobla, bublbobl, boblbobl, boblbobl, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblboblb, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblbobld, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblboble, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblboblf, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblboblc, bublbobl, boblbobl, sboblboblb, bublbobl_state, init_common, ROT0, "bootleg", "Super Bubble Bobble (bootleg)", MACHINE_SUPPORTS_SAVE ) // the title screen on this one isn't hacked +GAME( 1986, bub68705, bublbobl, bub68705, bublbobl, bub68705_state, init_common, ROT0, "bootleg", "Bubble Bobble (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bub8749, bublbobl, bub8749, bublbobl, bub8749_state, init_common, ROT0, "bootleg", "Bubble Bobble (bootleg of Japan Ver 0.0 with 8749)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // MCU not hooked up GAME( 1987, dland, bublbobl, boblbobl, dland, bublbobl_state, init_dland, ROT0, "bootleg", "Dream Land / Super Dream Land (bootleg of Bubble Bobble)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bvm.cpp b/src/mame/drivers/bvm.cpp new file mode 100644 index 00000000000..af931fefd7b --- /dev/null +++ b/src/mame/drivers/bvm.cpp @@ -0,0 +1,88 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Sony BVM-{14|20}{E|F}1{E|U} series monitors. + + List of major ICs: + - Hitachi HD6435368CP10 H8/536 [IC1] + or: Hitachi HD6475368CP10 C764 + or: Hitachi HD6435368CP10 W51 + near 20 MHz XTAL + - CSI CAT28F020P-15 2 Megabit CMOS Flash Memory [IC3] + - Sony CXK58257AP-10 [IC4] + or: Sanyo LC35256D-10 + next to: Sony CR2025 3V Lithium Cell [BAT1] + - Sony CXD1095Q [IC5, IC6] + - NEC D6453GT-101 On-Screen Character Display [IC7] + - Sony CXA1727Q [IC102] + - Sony CXD2343S [IC105] + - Hitachi HN27C256AG-10 [IC107, IC108] + - Sony CXD1171M 8-Bit D/A Converter [IC109] + - Sony CXD1030M Sync Signal Generator [IC120] + - Zilog Z8622812PSC Line 21 Closed-Caption Controller [IC124] + - Sony CXD1132Q Time Code Generator/Reader [IC126] + +****************************************************************************/ + +#include "emu.h" +#include "cpu/h8500/h8534.h" +#include "machine/cxd1095.h" +#include "machine/intelfsh.h" +#include "machine/nvram.h" + +class bvm_state : public driver_device +{ +public: + bvm_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } + + void bvm(machine_config &config); + +private: + void mem_map(address_map &map); + + required_device<h8536_device> m_maincpu; +}; + + +void bvm_state::mem_map(address_map &map) +{ + // internal ROM not used here? + map(0x00000, 0x0f67f).rw("flash", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)); + map(0x10000, 0x17fff).ram().share("nvram"); + map(0x18000, 0x18007).rw("cxdio0", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)); + map(0x18020, 0x18027).rw("cxdio1", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)); + map(0x40000, 0x7ffff).rw("flash", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)); +} + + +static INPUT_PORTS_START(bvm) +INPUT_PORTS_END + +void bvm_state::bvm(machine_config &config) +{ + HD6435368(config, m_maincpu, 20_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &bvm_state::mem_map); + + CAT28F020(config, "flash"); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); + + CXD1095(config, "cxdio0"); + CXD1095(config, "cxdio1"); +} + +ROM_START(bvm20f1e) + ROM_REGION(0x40000, "flash", 0) + ROM_LOAD("cat28f020p-15.ic3", 0x00000, 0x40000, CRC(43a1bdf8) SHA1(65cf61921ac86a8baa3a3da4ed0b3e61aa2f03b3)) + + ROM_REGION(0x10000, "eproms", 0) + ROM_LOAD("cd93-27c256.ic107", 0x0000, 0x8000, CRC(f8da1f2f) SHA1(b2f5a730d0f26f2a12fd62a111ee429da8426877)) + ROM_LOAD("541d-27c256.ic108", 0x8000, 0x8000, CRC(9da347f9) SHA1(413096830bdcae6404e9d686abb56e60d58bdc2f)) +ROM_END + +SYST(1998, bvm20f1e, 0, 0, bvm, bvm, bvm_state, empty_init, "Sony", "Trinitron Color Video Monitor BVM-20F1E", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/cps3.cpp b/src/mame/drivers/cps3.cpp index c13f757e69d..ce0a55bc62c 100644 --- a/src/mame/drivers/cps3.cpp +++ b/src/mame/drivers/cps3.cpp @@ -120,6 +120,8 @@ Street Fighter III 3rd Strike: Fight for the Future 33S994A0F CP3000U0G JoJo no Kimyou na Bouken: Mirai e no Isan 1999 JJM99900F CP300000G JAPAN X CAP-JJM000 CAP-JJM-0 CAP-JJM-110 990913 JoJo no Kimyou na Bouken: Mirai e no Isan JJM99900F CP300000G JAPAN X CAP-JJM000 CAP-JJM-1 CAP-JJM-120 990927 +JoJo's Bizarre Adventure JJM999A0F CP3000B0G EUROPE X CAP-JJM0A0 CAP-JJM-0 CAP-JJM-110 990913 +JoJo's Bizarre Adventure JJM999A0F CP3000B0G EUROPE X CAP-JJM0A0 CAP-JJM-1 CAP-JJM-120 990927 JoJo no Kimyou na Bouken: Mirai e no Isan JJM99900F CP300000G JAPAN X 990913 JoJo no Kimyou na Bouken: Mirai e no Isan JJM99900F CP300000G JAPAN X 990927 JoJo's Bizarre Adventure JJM999A0F CP3000B0G EUROPE X 990913 @@ -2820,6 +2822,14 @@ ROM_END ROM_START( jojoba ) ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */ + ROM_LOAD( "jojoba_euro.29f400.u2", 0x000000, 0x080000, CRC(63cc8800) SHA1(f0c7e6abb205a16dab7a114e017b193521071a4b) ) + + DISK_REGION( "scsi:1:cdrom" ) + DISK_IMAGE_READONLY( "cap-jjm-1", 0, SHA1(8628d3fa555fbd5f4121082e925c1834b76c5e65) ) +ROM_END + +ROM_START( jojobaj ) + ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */ ROM_LOAD( "jojoba_japan.29f400.u2", 0x000000, 0x080000, CRC(3085478c) SHA1(055eab1fc42816f370a44b17fd7e87ffcb10e8b7) ) DISK_REGION( "scsi:1:cdrom" ) @@ -2828,6 +2838,14 @@ ROM_END ROM_START( jojobar1 ) ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */ + ROM_LOAD( "jojoba_euro.29f400.u2", 0x000000, 0x080000, CRC(63cc8800) SHA1(f0c7e6abb205a16dab7a114e017b193521071a4b) ) + + DISK_REGION( "scsi:1:cdrom" ) + DISK_IMAGE_READONLY( "cap-jjm-0", 0, SHA1(1651896d127dbf32af99175ae91227cd90675aaa) ) +ROM_END + +ROM_START( jojobajr1 ) + ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */ ROM_LOAD( "jojoba_japan.29f400.u2", 0x000000, 0x080000, CRC(3085478c) SHA1(055eab1fc42816f370a44b17fd7e87ffcb10e8b7) ) DISK_REGION( "scsi:1:cdrom" ) @@ -3968,12 +3986,14 @@ GAME( 1999, sfiii3nr1, sfiii3, sfiii3, cps3, cps3_state, init_sfiii3, /* JoJo's Bizarre Adventure / JoJo no Kimyou na Bouken: Mirai e no Isan */ // 990927 -GAME( 1999, jojoba, 0, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927)", GAME_FLAGS ) +GAME( 1999, jojoba, 0, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990927)", GAME_FLAGS ) +GAME( 1999, jojobaj, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927)", GAME_FLAGS ) GAME( 1999, jojoban, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927, NO CD)", GAME_FLAGS ) GAME( 1999, jojobane, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990927, NO CD)", GAME_FLAGS ) // 990913 -GAME( 1999, jojobar1, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913)", GAME_FLAGS ) +GAME( 1999, jojobar1, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990913)", GAME_FLAGS ) +GAME( 1999, jojobajr1, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913)", GAME_FLAGS ) GAME( 1999, jojobanr1, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913, NO CD)", GAME_FLAGS ) GAME( 1999, jojobaner1, jojoba, jojoba, cps3_jojo, cps3_state, init_jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990913, NO CD)", GAME_FLAGS ) diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index 5dc70924960..f4741f3cfa6 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -1925,24 +1925,24 @@ void dec0_automat_state::automat(machine_config &config) } // this seems very similar to the automat bootleg -void dec0_automat_state::secretab(machine_config &config) +void dec0_automat_state::secretab(machine_config &config) // all clocks verified on PCB { - /* basic machine hardware */ - M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ + // basic machine hardware + M68000(config, m_maincpu, 20_MHz_XTAL / 2); // verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz m_maincpu->set_addrmap(AS_PROGRAM, &dec0_automat_state::secretab_map); - m_maincpu->set_vblank_int("screen", FUNC(dec0_state::irq6_line_hold)); /* VBL */ + m_maincpu->set_vblank_int("screen", FUNC(dec0_state::irq6_line_hold)); // VBL - Z80(config, m_audiocpu, 3000000); // ? + Z80(config, m_audiocpu, 20_MHz_XTAL / 4); m_audiocpu->set_addrmap(AS_PROGRAM, &dec0_automat_state::secretab_s_map); - /* video hardware */ + // video hardware MCFG_VIDEO_START_OVERRIDE(dec0_automat_state,slyspy) BUFFERED_SPRITERAM16(config, m_spriteram); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); // m_screen->set_refresh_hz(57.41); -// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); /* 57.41 Hz, 529us Vblank */ +// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); // 57.41 Hz, 529us Vblank set_screen_raw_params_data_east(config); m_screen->set_screen_update(FUNC(dec0_automat_state::screen_update_secretab)); m_screen->set_palette(m_palette); @@ -1966,19 +1966,19 @@ void dec0_automat_state::secretab(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfx_secretab); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - ym2203_device &ym2203a(YM2203(config, "2203a", 1250000)); + ym2203_device &ym2203a(YM2203(config, "2203a", 20_MHz_XTAL / 16)); ym2203a.add_route(0, "mono", 0.90); ym2203a.add_route(1, "mono", 0.90); ym2203a.add_route(2, "mono", 0.90); ym2203a.add_route(3, "mono", 0.35); - ym3812_device &ym3812(YM3812(config, "ym3812", 2500000)); + ym3812_device &ym3812(YM3812(config, "ym3812", 20_MHz_XTAL / 8)); ym3812.add_route(ALL_OUTPUTS, "mono", 0.80); LS157(config, m_adpcm_select[0], 0); @@ -1987,12 +1987,12 @@ void dec0_automat_state::secretab(machine_config &config) LS157(config, m_adpcm_select[1], 0); m_adpcm_select[1]->out_callback().set("msm2", FUNC(msm5205_device::data_w)); - msm5205_device &msm1(MSM5205(config, "msm1", 384000)); + msm5205_device &msm1(MSM5205(config, "msm1", 400_kHz_XTAL)); msm1.vck_legacy_callback().set(FUNC(dec0_automat_state::msm1_vclk_cb)); msm1.set_prescaler_selector(msm5205_device::S96_4B); msm1.add_route(ALL_OUTPUTS, "mono", 1.0); - msm5205_device &msm2(MSM5205(config, "msm2", 384000)); + msm5205_device &msm2(MSM5205(config, "msm2", 400_kHz_XTAL)); msm2.vck_legacy_callback().set(FUNC(dec0_automat_state::msm2_vclk_cb)); msm2.set_prescaler_selector(msm5205_device::S96_4B); msm2.add_route(ALL_OUTPUTS, "mono", 1.0); @@ -3686,10 +3686,10 @@ ROM_START( secretab ) ROM_LOAD( "sa_02.ic40", 0x10000, 0x10000, CRC(439eb5a9) SHA1(8d6baad8a1e89279ef0a378941d3d9b49a606864) ) // both halves identical ROM_REGION( 0x40000, "charset", 0 ) - ROM_LOAD( "sa_08.ic105", 0x00000, 0x10000,CRC(4806b951) SHA1(a2fa5b8587132747067d7d64ccfd14129a34ef58) ) - ROM_LOAD( "sa_12.ic156", 0x10000, 0x10000,CRC(f9e2cd5f) SHA1(f2c3f6e763c6f80307e9daee533d316b05cd02c5) ) - ROM_LOAD( "sa_10.ic138", 0x20000, 0x10000,CRC(843c4679) SHA1(871f3e77aa7e628e924a40d06ddec700487e23fb) ) - ROM_LOAD( "sa_14.ic188", 0x30000, 0x10000,CRC(3dac9128) SHA1(f3a2068e90973c1f04f1bbaa209111e3f9669ee0) ) + ROM_LOAD( "sa_08.ic105", 0x00000, 0x10000, CRC(4806b951) SHA1(a2fa5b8587132747067d7d64ccfd14129a34ef58) ) + ROM_LOAD( "sa_12.ic156", 0x10000, 0x10000, CRC(f9e2cd5f) SHA1(f2c3f6e763c6f80307e9daee533d316b05cd02c5) ) + ROM_LOAD( "sa_10.ic138", 0x20000, 0x10000, CRC(843c4679) SHA1(871f3e77aa7e628e924a40d06ddec700487e23fb) ) + ROM_LOAD( "sa_14.ic188", 0x30000, 0x10000, CRC(3dac9128) SHA1(f3a2068e90973c1f04f1bbaa209111e3f9669ee0) ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) /* chars */ ROM_COPY( "charset", 0x00000, 0x00000, 0x8000 ) @@ -3704,20 +3704,72 @@ ROM_START( secretab ) ROM_COPY( "charset", 0x38000, 0x18000, 0x8000 ) ROM_REGION( 0x40000, "gfx3", ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "sa_09.ic139", 0x00000, 0x10000,CRC(9e412267) SHA1(482cd6e772fa21f15db66c27acf85e8f97f7c5a5) ) - ROM_LOAD( "sa_11.ic157", 0x10000, 0x10000,CRC(e87650db) SHA1(381352428b12fd4a8cd13270009ff7602aa41a0b) ) - ROM_LOAD( "sa_07.ic106", 0x20000, 0x10000,CRC(6ad2e575) SHA1(b6b159cb36e222fe62fc10271602226f027440e4) ) - ROM_LOAD( "sa_13.ic189", 0x30000, 0x10000,CRC(e8601057) SHA1(fd73a36fb84049154248d250ffea68b1ee39a43f) ) + ROM_LOAD( "sa_09.ic139", 0x00000, 0x10000, CRC(9e412267) SHA1(482cd6e772fa21f15db66c27acf85e8f97f7c5a5) ) + ROM_LOAD( "sa_11.ic157", 0x10000, 0x10000, CRC(e87650db) SHA1(381352428b12fd4a8cd13270009ff7602aa41a0b) ) + ROM_LOAD( "sa_07.ic106", 0x20000, 0x10000, CRC(6ad2e575) SHA1(b6b159cb36e222fe62fc10271602226f027440e4) ) + ROM_LOAD( "sa_13.ic189", 0x30000, 0x10000, CRC(e8601057) SHA1(fd73a36fb84049154248d250ffea68b1ee39a43f) ) ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */ - ROM_LOAD( "sa_20.ic176", 0x00000, 0x10000,CRC(447e4f0b) SHA1(97db103e505a6e11eb9bdb3622e4aa3b796a9714) ) - ROM_LOAD( "sa_19.ic177", 0x10000, 0x10000,CRC(d29bc22e) SHA1(ce0935d09f7e94fa32247c86e14a74b73514b29e) ) - ROM_LOAD( "sa_16.ic180", 0x20000, 0x10000,CRC(ff72b838) SHA1(fdc48ecdd2225fc69472313f34973f6add8fb558) ) - ROM_LOAD( "sa_15.ic181", 0x30000, 0x10000,CRC(54fcbc39) SHA1(293a6799193b01424c3eac86cf90cc023aa771db) ) - ROM_LOAD( "sa_22.ic174", 0x40000, 0x10000,CRC(d234cae5) SHA1(0cd07bf087a4da19a5da29785385de9eee52d0fb) ) - ROM_LOAD( "sa_21.ic175", 0x50000, 0x10000,CRC(dc6a38df) SHA1(9043df911389d3f085299f2f2202cab356473a32) ) - ROM_LOAD( "sa_18.ic178", 0x60000, 0x10000,CRC(4f989f00) SHA1(ae7ae6e62e6a516ae3c8ebbeb5e39887c1961add) ) - ROM_LOAD( "sa_17.ic179", 0x70000, 0x10000,CRC(f61972c8) SHA1(fa9ddca3473091b4879171d8f3b302e8f2b45149) ) + ROM_LOAD( "sa_20.ic176", 0x00000, 0x10000, CRC(447e4f0b) SHA1(97db103e505a6e11eb9bdb3622e4aa3b796a9714) ) + ROM_LOAD( "sa_19.ic177", 0x10000, 0x10000, CRC(d29bc22e) SHA1(ce0935d09f7e94fa32247c86e14a74b73514b29e) ) + ROM_LOAD( "sa_16.ic180", 0x20000, 0x10000, CRC(ff72b838) SHA1(fdc48ecdd2225fc69472313f34973f6add8fb558) ) + ROM_LOAD( "sa_15.ic181", 0x30000, 0x10000, CRC(54fcbc39) SHA1(293a6799193b01424c3eac86cf90cc023aa771db) ) + ROM_LOAD( "sa_22.ic174", 0x40000, 0x10000, CRC(d234cae5) SHA1(0cd07bf087a4da19a5da29785385de9eee52d0fb) ) + ROM_LOAD( "sa_21.ic175", 0x50000, 0x10000, CRC(dc6a38df) SHA1(9043df911389d3f085299f2f2202cab356473a32) ) + ROM_LOAD( "sa_18.ic178", 0x60000, 0x10000, CRC(4f989f00) SHA1(ae7ae6e62e6a516ae3c8ebbeb5e39887c1961add) ) + ROM_LOAD( "sa_17.ic179", 0x70000, 0x10000, CRC(f61972c8) SHA1(fa9ddca3473091b4879171d8f3b302e8f2b45149) ) +ROM_END + + +ROM_START( mastbond ) // same as secretab, but for the charset ROMs. Just a hack to change the title to Master Bond. PCB marked 19 89 N. All ROMs are 27C512. + ROM_REGION( 0x60000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "5.ic84", 0x00000, 0x10000, CRC(54869474) SHA1(88c1894d1b6d8dd3d37e97d566aafef9c9409d6e) ) + ROM_LOAD16_BYTE( "3.ic67", 0x00001, 0x10000, CRC(36ab1874) SHA1(baa47c466ab13ac792761531f77ee8e639d19203) ) + ROM_LOAD16_BYTE( "6.ic83", 0x20000, 0x10000, CRC(8e691f23) SHA1(eb08c9539b699af124fcf87be07a33d2d5a71ada) ) + ROM_LOAD16_BYTE( "4.ic66", 0x20001, 0x10000, CRC(c838b205) SHA1(8c7a453ec7a00d4f5bbf9fadba6d551909647ed8) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "1.ic41", 0x00000, 0x10000, CRC(9fdc503b) SHA1(7b258e0734ca88a7d3f574d75116f0fe3b628898) ) + ROM_LOAD( "2.ic40", 0x10000, 0x10000, CRC(439eb5a9) SHA1(8d6baad8a1e89279ef0a378941d3d9b49a606864) ) // both halves identical + + ROM_REGION( 0x40000, "charset", 0 ) + ROM_LOAD( "8.ic105", 0x00000, 0x10000, CRC(3cfc2960) SHA1(495aad53d00cf569094a5d8084a829d0647ba9dd) ) + ROM_LOAD( "12.ic156", 0x10000, 0x10000, CRC(62476ba2) SHA1(5a025d11502f35896a40e33d7a487ed4c933135b) ) + ROM_LOAD( "10.ic138", 0x20000, 0x10000, CRC(16df8be2) SHA1(3d5e63933dc151caca56536dce67407a8bacb761) ) + ROM_LOAD( "14.ic188", 0x30000, 0x10000, CRC(f1803c03) SHA1(d6504db6d98d838025b6ba68d5b5b5e3999b1c13) ) + + ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) // chars + ROM_COPY( "charset", 0x00000, 0x00000, 0x8000 ) + ROM_COPY( "charset", 0x10000, 0x08000, 0x8000 ) + ROM_COPY( "charset", 0x20000, 0x10000, 0x8000 ) + ROM_COPY( "charset", 0x30000, 0x18000, 0x8000 ) + + ROM_REGION( 0x20000, "gfx2", ROMREGION_INVERT ) // tiles + ROM_COPY( "charset", 0x08000, 0x00000, 0x8000 ) + ROM_COPY( "charset", 0x18000, 0x08000, 0x8000 ) + ROM_COPY( "charset", 0x28000, 0x10000, 0x8000 ) + ROM_COPY( "charset", 0x38000, 0x18000, 0x8000 ) + + ROM_REGION( 0x40000, "gfx3", ROMREGION_INVERT ) // tiles + ROM_LOAD( "9.ic139", 0x00000, 0x10000, CRC(9e412267) SHA1(482cd6e772fa21f15db66c27acf85e8f97f7c5a5) ) + ROM_LOAD( "11.ic157", 0x10000, 0x10000, CRC(e87650db) SHA1(381352428b12fd4a8cd13270009ff7602aa41a0b) ) + ROM_LOAD( "7.ic106", 0x20000, 0x10000, CRC(6ad2e575) SHA1(b6b159cb36e222fe62fc10271602226f027440e4) ) + ROM_LOAD( "13.ic189", 0x30000, 0x10000, CRC(e8601057) SHA1(fd73a36fb84049154248d250ffea68b1ee39a43f) ) + + ROM_REGION( 0x80000, "gfx4", 0 ) // sprites + ROM_LOAD( "20.ic176", 0x00000, 0x10000, CRC(447e4f0b) SHA1(97db103e505a6e11eb9bdb3622e4aa3b796a9714) ) + ROM_LOAD( "19.ic177", 0x10000, 0x10000, CRC(d29bc22e) SHA1(ce0935d09f7e94fa32247c86e14a74b73514b29e) ) + ROM_LOAD( "16.ic180", 0x20000, 0x10000, CRC(ff72b838) SHA1(fdc48ecdd2225fc69472313f34973f6add8fb558) ) + ROM_LOAD( "15.ic181", 0x30000, 0x10000, CRC(54fcbc39) SHA1(293a6799193b01424c3eac86cf90cc023aa771db) ) + ROM_LOAD( "22.ic174", 0x40000, 0x10000, CRC(d234cae5) SHA1(0cd07bf087a4da19a5da29785385de9eee52d0fb) ) + ROM_LOAD( "21.ic175", 0x50000, 0x10000, CRC(dc6a38df) SHA1(9043df911389d3f085299f2f2202cab356473a32) ) + ROM_LOAD( "18.ic178", 0x60000, 0x10000, CRC(4f989f00) SHA1(ae7ae6e62e6a516ae3c8ebbeb5e39887c1961add) ) + ROM_LOAD( "17.ic179", 0x70000, 0x10000, CRC(f61972c8) SHA1(fa9ddca3473091b4879171d8f3b302e8f2b45149) ) + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "gal16v8.ic43", 0x0000, 0x0117, CRC(01cdc0bf) SHA1(df47ba4b3d0cf1b3acef2c4a7ba3bd1433aa9bf3) ) // brute-forced + ROM_LOAD( "gal16v8.ic48", 0x0200, 0x0117, CRC(cfb99386) SHA1(62f6befd34de85bbc76f3f115593ec72c7474303) ) // brute-forced + ROM_LOAD( "gal16v8.ic141", 0x0400, 0x0117, NO_DUMP ) // registered ROM_END @@ -4136,3 +4188,4 @@ GAME( 1988, drgninjab2, baddudes, drgninjab, drgninja, dec0_state, init_drgni // these are different to the above but quite similar to each other GAME( 1988, automat, robocop, automat, robocop, dec0_automat_state, empty_init, ROT0, "bootleg", "Automat (bootleg of Robocop)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM? GAME( 1989, secretab, secretag, secretab, slyspy, dec0_automat_state, empty_init, ROT0, "bootleg", "Secret Agent (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mastbond, secretag, secretab, slyspy, dec0_automat_state, empty_init, ROT0, "bootleg", "Master Bond (bootleg of Secret Agent)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fitfight.cpp b/src/mame/drivers/fitfight.cpp index cab55d89fb8..07715ac1191 100644 --- a/src/mame/drivers/fitfight.cpp +++ b/src/mame/drivers/fitfight.cpp @@ -3,16 +3,16 @@ /* Fit of Fighting / The History of Martial Arts / 'BB' */ /* NIX or Novatecnia (both spanish) may have produced these - its probably NIX due to somes similarities with Pirates + its probably NIX due to some similarities with Pirates Supported Games Rip-off of - Fit of Fighting Art of Fighting (neogeo.c) - The History of Martial Arts Fighter's History (deco32.c) + Fit of Fighting Art of Fighting (neogeo.cpp) + The History of Martial Arts Fighter's History (deco32.cpp) 'BB' Untitled Prototype -none, original- 'BB' Prototype isn't a game as such, 'BB' was the label on - the prototype board. which appears to have been used simply + the prototype board, which appears to have been used simply for testings / practice. There is no 'game' to it, no title screen, simply 3 characters, 1 portrait, 1 background, the characters don't appear to have any moves other than @@ -42,7 +42,7 @@ todo: fix scrolling sound -fix s7prite colour problems. +fix sprite colour problems. should these be considered clones or not since the game has been rewritten, they just use the gfx ... @@ -148,7 +148,7 @@ void fitfight_state::fitfight_main_map(address_map &map) // @0x000031ae/0x00002b3a: 0xF000, once, during POST // 0xe001ae/0xe00096 holds the address (0x600000), 0xe001b2/0xe0009a holds the word to output // @0x00003294/0x00002c1a: word content of 0xe001b2 - // @0x000032cc/?: 0xF0dd byte from 0xe001b5, dd seems to be allways 0xFD + // @0x000032cc/?: 0xF0dd byte from 0xe001b5, dd seems to be always 0xFD // @0x000036bc/?: 0xF0FD when inserting coin // @0x000037a6/0x000030e6: 0x??dd byte from 0xe08c05, 0xF101 then 0xF001/0xF157 then 0xF057 @@ -780,8 +780,8 @@ void fitfight_state::bbprot(machine_config &config) Here's the info about this dump: Name: Fit of Fighting -Manufacturer: Unknow (There are chances that was produced by NIX, but it's not possible to verify) -Year: Unknow +Manufacturer: Unknown (There are chances that was produced by NIX, but it's not possible to verify) +Year: Unknown Date Dumped: 16-07-2002 (DD-MM-YYYY) CPU: 68000, possibly at 12mhz @@ -833,8 +833,8 @@ ROM_END /*** Name: The History of Martial Arts -Manufacturer: Unknow, maybe NIX / Novatecnia -Year: Unknow +Manufacturer: Unknown, maybe NIX / Novatecnia +Year: Unknown Date Dumped: 18-07-2002 (DD-MM-YYYY) CPU: 68000 @@ -845,9 +845,9 @@ Country: Maybe Spain About the game: -This is a Karnov's revenge ripp off like Fit of Fighting with Art of Fighting. +This is a Karnov's revenge rip-off like Fit of Fighting with Art of Fighting. Same GFX, but reprogrammed from 0, and with FM music... Another nice bootleg! -It was dumped from a faulty board, wich doesn't boot, but with intact eproms :) +It was dumped from a faulty board, which doesn't boot, but with intact eproms :) ***/ @@ -884,13 +884,46 @@ ROM_START( histryma ) ROM_LOAD( "s8h_th.bin", 0x080000, 0x080000, CRC(cd7bd0de) SHA1(2cd0f41e2575e667aa971f2f5716694dee203ab3) ) ROM_END +ROM_START( histryma2 ) // only the program ROMs were dumped (no PCB available, only those 2 loose ROMs), so the rest are marked as BAD_DUMP even if they could be correct + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "27c4001.5", 0x000001, 0x080000, CRC(9479f8b9) SHA1(576ad1394212ae46c728150a1fe304518360fd69) ) + ROM_LOAD16_BYTE( "27c4001.4", 0x000000, 0x080000, CRC(268f3648) SHA1(5defd9cae46384774b919894643a959b414b0d57) ) + + ROM_REGION( 0x01c000, "audiocpu", 0 ) + ROM_LOAD( "y61f.bin", 0x000000, 0x004000, BAD_DUMP CRC(b588525a) SHA1(b768bd75d6351430f9656289146119e9c0308554) ) + ROM_CONTINUE( 0x010000, 0x00c000 ) + + ROM_REGION( 0x100000, "oki", 0 ) // OKI Samples? + ROM_LOAD( "u7_th.bin", 0x000000, 0x080000, BAD_DUMP CRC(88b41ef5) SHA1(565e2c4554dde79cd2da8b8a181b3378818223cc) ) //seems to be a merge of 2 0x040000 roms + ROM_LOAD( "u18_th.bin", 0x080000, 0x080000, BAD_DUMP CRC(a734cd77) SHA1(3fe4cba6f6d691dfc4775de634e6e39bf4bb08b8) ) //seems to be a merge of 2 0x040000 roms + + ROM_REGION( 0x100000, "gfx1", 0 ) + ROM_LOAD( "p1_th.bin", 0x0c0000, 0x040000, BAD_DUMP CRC(501c5336) SHA1(1743221d73d59ba40ddad3f69bc4aa1a51c29962) ) + ROM_LOAD( "p2_th.bin", 0x080000, 0x040000, BAD_DUMP CRC(f50666c7) SHA1(46856e70426388c9704eed94d4dbbbe5674b9be6) ) + ROM_LOAD( "p4_th.bin", 0x040000, 0x040000, BAD_DUMP CRC(c70223cf) SHA1(d3ee1b73a22a0aaab909141b32696c6b48f2b7ee) ) + ROM_LOAD( "p8_th.bin", 0x000000, 0x040000, BAD_DUMP CRC(8104b963) SHA1(ed02c3be16b8e94d9316391fe0f9fcf39679c1de) ) + + ROM_REGION( 0x400000, "gfx2", 0 ) // Sprites + ROM_LOAD( "s1_th.bin", 0x300000, 0x080000, BAD_DUMP CRC(e9c2d27a) SHA1(f47cc318f4a3db84858b4d302be4063f3bb1b071) ) + ROM_LOAD( "s1h_th.bin", 0x380000, 0x080000, BAD_DUMP CRC(d806c92e) SHA1(4781dd08755cd91f3d09ff418a9d13744d888922) ) + + ROM_LOAD( "s2_th.bin", 0x200000, 0x080000, BAD_DUMP CRC(fa011056) SHA1(8f896d248c74faae5f320e0ef1730681fb7af57b) ) + ROM_LOAD( "s2h_th.bin", 0x280000, 0x080000, BAD_DUMP CRC(ef5f2268) SHA1(d2f13e6a393256cba24a70f1f85c7aeec93d0c51) ) + + ROM_LOAD( "s4_th.bin", 0x100000, 0x080000, BAD_DUMP CRC(fa80fdec) SHA1(590dd27d727d1910b5935dbcb8f958c435b6077a) ) + ROM_LOAD( "s4h_th.bin", 0x180000, 0x080000, BAD_DUMP CRC(0fd3b43e) SHA1(971e8813e3a3d7735a96f31d557c28b9bbcf91d1) ) + + ROM_LOAD( "s8_th.bin", 0x000000, 0x080000, BAD_DUMP CRC(57fd170f) SHA1(2b8cc688de894bbb7d44f9458b3d012a64f79b20) ) + ROM_LOAD( "s8h_th.bin", 0x080000, 0x080000, BAD_DUMP CRC(cd7bd0de) SHA1(2cd0f41e2575e667aa971f2f5716694dee203ab3) ) +ROM_END + /*** Here's the info about this dump: Name: "BB" (Protoype name in some of the EPROM stickers) -Manufacturer: Unknow (There are chances that was produced by NIX, but it's not possible to verify, same as Fit of Fighting ) -Year: Unknow +Manufacturer: Unknown (There are chances that was produced by NIX, but it's not possible to verify, same as Fit of Fighting ) +Year: Unknown Date Dumped: 17-07-2002 (DD-MM-YYYY) CPU: 68000, possibly at 12mhz @@ -909,7 +942,7 @@ dramatically lame fight)... Character selection just shows garbage, maybe stage selection shows rubbish, and the game itself is all the time displaying a lot of garbage.. But this is VERY nice! :) The most funny thing about this game is that the three visible fighter characters can be based on some of the NIX workers, but -i really can't verify this :) +I really can't verify this :) Some of the eproms seem to be two times inserted in different slots of the board, but with a different date wrote on the stickers, those are the ??_DD_MM.bin files. @@ -1010,7 +1043,8 @@ void fitfight_state::init_hotmindff() /* GAME */ -GAME( 199?, fitfight, 0, fitfight, fitfight, fitfight_state, init_fitfight, ROT0, "bootleg", "Fit of Fighting", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, histryma, 0, fitfight, histryma, fitfight_state, init_histryma, ROT0, "bootleg", "The History of Martial Arts", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, bbprot, 0, bbprot, bbprot, fitfight_state, init_bbprot, ROT0, "<unknown>", "unknown fighting game 'BB' (prototype)", MACHINE_IS_INCOMPLETE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, hotmindff, hotmind, fitfight, fitfight, fitfight_state, init_hotmindff, ROT0, "Playmark", "Hot Mind (Fit of Fighting hardware)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // need to fix scroll offsets + inputs +GAME( 199?, fitfight, 0, fitfight, fitfight, fitfight_state, init_fitfight, ROT0, "bootleg", "Fit of Fighting", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, histryma, 0, fitfight, histryma, fitfight_state, init_histryma, ROT0, "bootleg", "The History of Martial Arts (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, histryma2, histryma, fitfight, histryma, fitfight_state, init_histryma, ROT0, "bootleg", "The History of Martial Arts (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, bbprot, 0, bbprot, bbprot, fitfight_state, init_bbprot, ROT0, "<unknown>", "unknown fighting game 'BB' (prototype)", MACHINE_IS_INCOMPLETE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, hotmindff, hotmind, fitfight, fitfight, fitfight_state, init_hotmindff, ROT0, "Playmark", "Hot Mind (Fit of Fighting hardware)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // need to fix scroll offsets + inputs diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp index d9e0566a658..36c1b343066 100644 --- a/src/mame/drivers/gaelco3d.cpp +++ b/src/mame/drivers/gaelco3d.cpp @@ -174,7 +174,7 @@ WRITE_LINE_MEMBER(gaelco3d_state::ser_irq) void gaelco3d_state::machine_start() { - /* Save state support */ + // Save state support save_item(NAME(m_sound_status)); save_item(NAME(m_analog_ports)); save_item(NAME(m_framenum)); @@ -193,7 +193,7 @@ MACHINE_RESET_MEMBER(gaelco3d_state,common) { m_framenum = 0; - /* boot the ADSP chip */ + // Boot the ADSP chip uint16_t *src = (uint16_t *)memregion("user1")->base(); for (int i = 0; i < (src[3] & 0xff) * 8; i++) { @@ -204,7 +204,7 @@ MACHINE_RESET_MEMBER(gaelco3d_state,common) m_adsp_bank->configure_entries(0, 256, memregion("user1")->base(), 0x4000); m_adsp_bank->set_entry(0); - /* keep the TMS32031 halted until the code is ready to go */ + // Keep the TMS32031 halted until the code is ready to go m_tms->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } @@ -259,8 +259,8 @@ uint16_t gaelco3d_state::eeprom_data_r(offs_t offset, uint16_t mem_mask) if (ACCESSING_BITS_0_7) { - /* bit 0 is clock */ - /* bit 1 active */ + // bit 0 is clock + // bit 1 active result &= ~uint32_t(gaelco_serial_device::EXT_STATUS_MASK); result |= m_serial->status_r(); } @@ -314,7 +314,7 @@ READ_LINE_MEMBER(gaelco3d_state::analog_bit_r) WRITE_LINE_MEMBER(gaelco3d_state::analog_port_clock_w) { - /* a zero/one combo is written here to clock the next analog port bit */ + // A zero/one combo is written here to clock the next analog port bit if (!state) { m_analog_ports[0] <<= 1; @@ -327,7 +327,7 @@ WRITE_LINE_MEMBER(gaelco3d_state::analog_port_clock_w) WRITE_LINE_MEMBER(gaelco3d_state::analog_port_latch_w) { - /* a zero is written here to read the analog ports, and a one is written when finished */ + // A zero is written here to read the analog ports, and a one is written when finished if (!state) { m_analog_ports[0] = m_analog[0].read_safe(0); @@ -405,8 +405,8 @@ void gaelco3d_state::tms_iack_w(offs_t offset, uint8_t data) WRITE_LINE_MEMBER(gaelco3d_state::tms_reset_w) { - /* this is set to 0 while data is uploaded, then set to $ffff after it is done */ - /* it does not ever appear to be touched after that */ + /* this is set to 0 while data is uploaded, then set to $ffff after it is done. + It does not ever appear to be touched after that */ if (LOG) logerror("%06X:tms_reset_w = %d\n", m_maincpu->pc(), state); m_tms->set_input_line(INPUT_LINE_RESET, state ? CLEAR_LINE : ASSERT_LINE); @@ -415,8 +415,8 @@ WRITE_LINE_MEMBER(gaelco3d_state::tms_reset_w) WRITE_LINE_MEMBER(gaelco3d_state::tms_irq_w) { - /* this is written twice, 0,1, in quick succession */ - /* done after uploading, and after modifying the comm area */ + /* This is written twice, 0,1, in quick succession. + Done after uploading, and after modifying the comm area */ if (LOG) logerror("%06X:tms_irq_w = %d\n", m_maincpu->pc(), state); m_tms->set_input_line(0, state ? CLEAR_LINE : ASSERT_LINE); @@ -435,7 +435,7 @@ WRITE_LINE_MEMBER(gaelco3d_state::tms_control3_w) * *************************************/ -/* These are some of the control registers. We don't use them all */ +// These are some of the control registers. We don't use them all enum { S1_AUTOBUF_REG = 15, @@ -475,7 +475,7 @@ void gaelco3d_state::adsp_control_w(offs_t offset, uint16_t data) switch (offset) { case SYSCONTROL_REG: - /* see if SPORT1 got disabled */ + // See if SPORT1 got disabled if ((data & 0x0800) == 0) { for (uint8_t i = 0; i < SOUND_CHANNELS; i++) @@ -486,7 +486,7 @@ void gaelco3d_state::adsp_control_w(offs_t offset, uint16_t data) break; case S1_AUTOBUF_REG: - /* autobuffer off: nuke the timer, and disable the DAC */ + // Autobuffer off: nuke the timer, and disable the DAC if ((data & 0x0002) == 0) { for (uint8_t i = 0; i < SOUND_CHANNELS; i++) @@ -523,10 +523,10 @@ void gaelco3d_state::adsp_rombank_w(offs_t offset, uint16_t data) TIMER_DEVICE_CALLBACK_MEMBER(gaelco3d_state::adsp_autobuffer_irq) { - /* get the index register */ + // Get the index register int reg = m_adsp->state_int(ADSP2100_I0 + m_adsp_ireg); - /* copy the current data into the buffer */ + // Copy the current data into the buffer // logerror("ADSP buffer: I%d=%04X incs=%04X size=%04X\n", m_adsp_ireg, reg, m_adsp_incs, m_adsp_size); if (m_adsp_incs) { @@ -534,66 +534,66 @@ TIMER_DEVICE_CALLBACK_MEMBER(gaelco3d_state::adsp_autobuffer_irq) m_dmadac[i]->transfer(i, m_adsp_incs, SOUND_CHANNELS * m_adsp_incs, m_adsp_size / (SOUND_CHANNELS * m_adsp_incs), (int16_t *)&m_adsp_fastram_base[reg - 0x3800]); } - /* increment it */ + // Increment it reg += m_adsp_size; - /* check for wrapping */ + // Check for wrapping if (reg >= m_adsp_ireg_base + m_adsp_size) { - /* reset the base pointer */ + // Reset the base pointer reg = m_adsp_ireg_base; - /* generate the (internal, thats why the pulse) irq */ + // Generate the (internal, thats why the pulse) IRQ m_adsp->pulse_input_line(ADSP2105_IRQ1, m_adsp->minimum_quantum_time()); } - /* store it */ + // Store it m_adsp->set_state_int(ADSP2100_I0 + m_adsp_ireg, reg); } void gaelco3d_state::adsp_tx_callback(offs_t offset, uint32_t data) { - /* check if it's for SPORT1 */ + // Check if it's for SPORT1 if (offset != 1) return; - /* check if SPORT1 is enabled */ - if (m_adsp_control_regs[SYSCONTROL_REG] & 0x0800) /* bit 11 */ + // Check if SPORT1 is enabled + if (m_adsp_control_regs[SYSCONTROL_REG] & 0x0800) // bit 11 { - /* we only support autobuffer here (which is what this thing uses), bail if not enabled */ - if (m_adsp_control_regs[S1_AUTOBUF_REG] & 0x0002) /* bit 1 */ + // We only support autobuffer here (which is what this thing uses), bail if not enabled + if (m_adsp_control_regs[S1_AUTOBUF_REG] & 0x0002) // bit 1 { - /* get the autobuffer registers */ + // Get the autobuffer registers int mreg, lreg; uint16_t source; attotime sample_period; m_adsp_ireg = (m_adsp_control_regs[S1_AUTOBUF_REG] >> 9) & 7; mreg = (m_adsp_control_regs[S1_AUTOBUF_REG] >> 7) & 3; - mreg |= m_adsp_ireg & 0x04; /* msb comes from ireg */ + mreg |= m_adsp_ireg & 0x04; // msb comes from ireg lreg = m_adsp_ireg; - /* now get the register contents in a more legible format */ - /* we depend on register indexes to be continuous (which is the case in our core) */ + /* Now get the register contents in a more legible format. + We depend on register indexes to be continuous (which is the case in our core) */ source = m_adsp->state_int(ADSP2100_I0 + m_adsp_ireg); m_adsp_incs = m_adsp->state_int(ADSP2100_M0 + mreg); m_adsp_size = m_adsp->state_int(ADSP2100_L0 + lreg); - /* get the base value, since we need to keep it around for wrapping */ + // Get the base value, since we need to keep it around for wrapping source -= m_adsp_incs; - /* make it go back one so we don't lose the first sample */ + // Make it go back one so we don't lose the first sample m_adsp->set_state_int(ADSP2100_I0 + m_adsp_ireg, source); - /* save it as it is now */ + // Save it as it is now m_adsp_ireg_base = source; - /* calculate how long until we generate an interrupt */ + // Calculate how long until we generate an interrupt - /* period per each bit sent */ + // Period per each bit sent sample_period = attotime::from_hz(m_adsp->clock()) * (2 * (m_adsp_control_regs[S1_SCLKDIV_REG] + 1)); - /* now put it down to samples, so we know what the channel frequency has to be */ + // Now put it down to samples, so we know what the channel frequency has to be sample_period *= 16 * SOUND_CHANNELS; for (uint8_t i = 0; i < SOUND_CHANNELS; i++) @@ -602,7 +602,7 @@ void gaelco3d_state::adsp_tx_callback(offs_t offset, uint32_t data) m_dmadac[i]->enable(1); } - /* fire off a timer which will hit every half-buffer */ + // Fire off a timer which will hit every half-buffer sample_period = (sample_period * m_adsp_size) / (SOUND_CHANNELS * m_adsp_incs); m_adsp_autobuffer_timer->adjust(sample_period, 0, sample_period); @@ -613,11 +613,11 @@ void gaelco3d_state::adsp_tx_callback(offs_t offset, uint32_t data) logerror( "ADSP SPORT1: trying to transmit and autobuffer not enabled!\n" ); } - /* if we get there, something went wrong. Disable playing */ + // If we get there, something went wrong. Disable playing for (uint8_t i = 0; i < SOUND_CHANNELS; i++) m_dmadac[i]->enable(0); - /* remove timer */ + // Remove timer m_adsp_autobuffer_timer->reset(); } @@ -632,19 +632,19 @@ void gaelco3d_state::adsp_tx_callback(offs_t offset, uint32_t data) WRITE_LINE_MEMBER(gaelco3d_state::radikalb_lamp_w) { - /* arbitrary data written */ + // Arbitrary data written logerror("%06X:unknown_127_w = %d\n", m_maincpu->pc(), state); } WRITE_LINE_MEMBER(gaelco3d_state::unknown_137_w) { - /* only written $00 or $ff */ + // Only written $00 or $ff logerror("%06X:unknown_137_w = %d\n", m_maincpu->pc(), state); } WRITE_LINE_MEMBER(gaelco3d_state::unknown_13a_w) { - /* only written $0000 or $0001 */ + // Only written $0000 or $0001 logerror("%06X:unknown_13a_w = %04X\n", m_maincpu->pc(), state); } @@ -704,8 +704,8 @@ void gaelco3d_state::tms_map(address_map &map) void gaelco3d_state::adsp_program_map(address_map &map) { - map(0x0000, 0x03ff).ram().share("adsp_ram_base"); /* 1k words internal RAM */ - map(0x37ff, 0x37ff).nopr(); /* speedup hammers this for no apparent reason */ + map(0x0000, 0x03ff).ram().share("adsp_ram_base"); // 1k words internal RAM + map(0x37ff, 0x37ff).nopr(); // speedup hammers this for no apparent reason } void gaelco3d_state::adsp_data_map(address_map &map) @@ -714,7 +714,7 @@ void gaelco3d_state::adsp_data_map(address_map &map) map(0x0000, 0x1fff).bankr("adspbank"); map(0x2000, 0x2000).r(m_soundlatch, FUNC(generic_latch_8_device::read)).umask16(0x00ff); map(0x2000, 0x2000).w(FUNC(gaelco3d_state::sound_status_w)); - map(0x3800, 0x39ff).ram().share("adsp_fastram"); /* 512 words internal RAM */ + map(0x3800, 0x39ff).ram().share("adsp_fastram"); // 512 words internal RAM map(0x3fe0, 0x3fff).w(FUNC(gaelco3d_state::adsp_control_w)).share("adsp_regs"); } @@ -899,7 +899,7 @@ INPUT_PORTS_END void gaelco3d_state::gaelco3d(machine_config &config) { - /* basic machine hardware */ + // Basic machine hardware M68000(config, m_maincpu, 15000000); m_maincpu->set_addrmap(AS_PROGRAM, &gaelco3d_state::main_map); m_maincpu->set_vblank_int("screen", FUNC(gaelco3d_state::vblank_gen)); @@ -944,10 +944,10 @@ void gaelco3d_state::gaelco3d(machine_config &config) GENERIC_LATCH_8(config, m_soundlatch).data_pending_callback().set_inputline(m_adsp, ADSP2115_IRQ2); - /* video hardware */ + // Video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not accurate m_screen->set_size(576, 432); m_screen->set_visarea(0, 575, 0, 431); m_screen->set_screen_update(FUNC(gaelco3d_state::screen_update)); @@ -955,7 +955,7 @@ void gaelco3d_state::gaelco3d(machine_config &config) PALETTE(config, "palette", palette_device::RGB_555); - /* sound hardware */ + // Sound hardware SPEAKER(config, "mono").front_center(); DMADAC(config, m_dmadac[0]).add_route(ALL_OUTPUTS, "mono", 1.0); // speedup: front mono @@ -969,7 +969,7 @@ void gaelco3d_state::gaelco3d2(machine_config &config) { gaelco3d(config); - /* basic machine hardware */ + // Basic machine hardware M68EC020(config.replace(), m_maincpu, 25000000); m_maincpu->set_addrmap(AS_PROGRAM, &gaelco3d_state::main020_map); m_maincpu->set_vblank_int("screen", FUNC(gaelco3d_state::vblank_gen)); @@ -993,11 +993,37 @@ void gaelco3d_state::footbpow(machine_config &config) *************************************/ ROM_START( speedup ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "sup_10_2.2.ic10", 0x000000, 0x80000, CRC(ee781e64) SHA1(d90fa9319982fa389c2032e13d59850971078006) ) + ROM_LOAD16_BYTE( "sup_15_2.2.ic15", 0x000001, 0x80000, CRC(1b8ff9d2) SHA1(4939b45844de962d2b93be058b44c09e366cf8db) ) + + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data + ROM_LOAD( "sup25.bin", 0x0000000, 0x400000, CRC(284c7cd1) SHA1(58fbe73195aac9808a347c543423593e17ad3a10) ) + + ROM_REGION32_LE( 0x1000000, "user2", 0 ) + ROM_LOAD32_WORD( "sup32.bin", 0x000000, 0x200000, CRC(aed151de) SHA1(a139d4451d3758aa70621a25289d64c98c26d5c0) ) + ROM_LOAD32_WORD( "sup33.bin", 0x000002, 0x200000, CRC(9be6ab7d) SHA1(8bb07f2a096d1f8989a5a409f87b35b7d771de88) ) + + ROM_REGION( 0x1000000, "gfx1", 0 ) + ROM_LOAD( "sup12.bin", 0x0000000, 0x400000, CRC(311f3247) SHA1(95014ea177011521a01df85fb511e5e6673dbdcb) ) + ROM_LOAD( "sup14.bin", 0x0400000, 0x400000, CRC(3ad3c089) SHA1(1bd577679ed436251995a100aece2c26c0214fd8) ) + ROM_LOAD( "sup11.bin", 0x0800000, 0x400000, CRC(b993e65a) SHA1(b95bd4c1eac7fba1d2429250446b58f741350bb3) ) + ROM_LOAD( "sup13.bin", 0x0c00000, 0x400000, CRC(ad00023c) SHA1(9d7cce280fff38d7e0dac21e7a1774809d9758bd) ) + + ROM_REGION( 0x0080000, "gfx2", 0 ) + ROM_LOAD( "ic35.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) + ROM_LOAD( "ic34.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) + // These 2 are copies of the previous 2 +// ROM_LOAD( "ic43.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) +// ROM_LOAD( "ic42.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) +ROM_END + +ROM_START( speedup12 ) + ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "sup10.bin", 0x000000, 0x80000, CRC(07e70bae) SHA1(17013d859ec075e12518b094040a056d850b3271) ) ROM_LOAD16_BYTE( "sup15.bin", 0x000001, 0x80000, CRC(7947c28d) SHA1(46efb56d0f7fe2e92d0d04dcd2f130aef3be436d) ) - ROM_REGION16_LE( 0x400000, "user1", 0 ) /* ADSP-2115 code & data */ + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data ROM_LOAD( "sup25.bin", 0x0000000, 0x400000, CRC(284c7cd1) SHA1(58fbe73195aac9808a347c543423593e17ad3a10) ) ROM_REGION32_LE( 0x1000000, "user2", 0 ) @@ -1013,17 +1039,17 @@ ROM_START( speedup ) ROM_REGION( 0x0080000, "gfx2", 0 ) ROM_LOAD( "ic35.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) ROM_LOAD( "ic34.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) - /* these 2 are copies of the previous 2 */ + // These 2 are copies of the previous 2 // ROM_LOAD( "ic43.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) // ROM_LOAD( "ic42.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) ROM_END ROM_START( speedup10 ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "ic10_1.00", 0x000000, 0x80000, CRC(24ed8f48) SHA1(59d59e2a0b2fb7aed5320167960129819adedd9a) ) /* hand written labels IC10 1.00 */ - ROM_LOAD16_BYTE( "ic15_1.00", 0x000001, 0x80000, CRC(b3fda7f1) SHA1(e77ef3cb46be0767476f65dcc8d4fc12550be4a3) ) /* hand written labels IC50 1.00 */ + ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "ic10_1.00", 0x000000, 0x80000, CRC(24ed8f48) SHA1(59d59e2a0b2fb7aed5320167960129819adedd9a) ) // Handwritten labels IC10 1.00 + ROM_LOAD16_BYTE( "ic15_1.00", 0x000001, 0x80000, CRC(b3fda7f1) SHA1(e77ef3cb46be0767476f65dcc8d4fc12550be4a3) ) // Handwritten labels IC50 1.00 - ROM_REGION16_LE( 0x400000, "user1", 0 ) /* ADSP-2115 code & data */ + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data ROM_LOAD( "sup25.bin", 0x0000000, 0x400000, CRC(284c7cd1) SHA1(58fbe73195aac9808a347c543423593e17ad3a10) ) ROM_REGION32_LE( 0x1000000, "user2", 0 ) @@ -1039,20 +1065,20 @@ ROM_START( speedup10 ) ROM_REGION( 0x0080000, "gfx2", 0 ) ROM_LOAD( "ic35.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) ROM_LOAD( "ic34.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) - /* these 2 are copies of the previous 2 */ + // These 2 are copies of the previous 2 // ROM_LOAD( "ic43.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) // ROM_LOAD( "ic42.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) ROM_END ROM_START( surfplnt ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "surfplnt.u5", 0x000000, 0x80000, CRC(c96e0a18) SHA1(b313d02d1d1bff8717b3d798e6ae681baefc1061) ) ROM_LOAD16_BYTE( "surfplnt.u11", 0x000001, 0x80000, CRC(99211d2d) SHA1(dee5b157489ce9c6988c8eec92fa91fff60d521c) ) ROM_LOAD16_BYTE( "surfplnt.u8", 0x100000, 0x80000, CRC(aef9e1d0) SHA1(15258e62fbf61e21e7d77aa7a81fdbf842fd4560) ) ROM_LOAD16_BYTE( "surfplnt.u13", 0x100001, 0x80000, CRC(d9754369) SHA1(0d82569cb925402a9f4634e52f15435112ec4878) ) - ROM_REGION16_LE( 0x400000, "user1", 0 ) /* ADSP-2115 code & data */ + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data ROM_LOAD( "pls.18", 0x0000000, 0x400000, CRC(a1b64695) SHA1(7487cd51305e30a5b55aada0bae9161fcb3fcd19) ) ROM_REGION32_LE( 0x1000000, "user2", 0 ) @@ -1070,7 +1096,7 @@ ROM_START( surfplnt ) ROM_LOAD( "surfplnt.u20", 0x0020000, 0x020000, CRC(fb293318) SHA1(d255fe3db1b91ec7cc744b0158e70503bca5ceab) ) ROM_LOAD( "surfplnt.u21", 0x0040000, 0x020000, CRC(b80611fb) SHA1(70d6767ddfb04e94cf2796e3f7090f89fd36fe8c) ) ROM_LOAD( "surfplnt.u22", 0x0060000, 0x020000, CRC(ccf88f7e) SHA1(c6a3bb9d6cf14a93a36ed20a47b7c068ccd630aa) ) - /* these 4 are copies of the previous 4 */ + // These 4 are copies of the previous 4 // ROM_LOAD( "surfplnt.u27", 0x0000000, 0x020000, CRC(691bd7a7) SHA1(2ff404b3974a64097372ed15fb5fbbe52c503265) ) // ROM_LOAD( "surfplnt.u28", 0x0020000, 0x020000, CRC(fb293318) SHA1(d255fe3db1b91ec7cc744b0158e70503bca5ceab) ) // ROM_LOAD( "surfplnt.u29", 0x0040000, 0x020000, CRC(b80611fb) SHA1(70d6767ddfb04e94cf2796e3f7090f89fd36fe8c) ) @@ -1078,13 +1104,13 @@ ROM_START( surfplnt ) ROM_END ROM_START( surfplnt40 ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "surfpl40.u5", 0x000000, 0x80000, CRC(572e0343) SHA1(badb08a5a495611b5fd2d821d4299348b2c9f308) ) ROM_LOAD16_BYTE( "surfpl40.u11", 0x000001, 0x80000, CRC(6056edaa) SHA1(9bc2df54d1367b9d58272a8f506e523e74110361) ) ROM_LOAD16_BYTE( "surfplnt.u8", 0x100000, 0x80000, CRC(aef9e1d0) SHA1(15258e62fbf61e21e7d77aa7a81fdbf842fd4560) ) ROM_LOAD16_BYTE( "surfplnt.u13", 0x100001, 0x80000, CRC(d9754369) SHA1(0d82569cb925402a9f4634e52f15435112ec4878) ) - ROM_REGION16_LE( 0x400000, "user1", 0 ) /* ADSP-2115 code & data */ + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data ROM_LOAD( "pls.18", 0x0000000, 0x400000, CRC(a1b64695) SHA1(7487cd51305e30a5b55aada0bae9161fcb3fcd19) ) ROM_REGION32_LE( 0x1000000, "user2", 0 ) @@ -1102,7 +1128,7 @@ ROM_START( surfplnt40 ) ROM_LOAD( "surfplnt.u20", 0x0020000, 0x020000, CRC(fb293318) SHA1(d255fe3db1b91ec7cc744b0158e70503bca5ceab) ) ROM_LOAD( "surfplnt.u21", 0x0040000, 0x020000, CRC(b80611fb) SHA1(70d6767ddfb04e94cf2796e3f7090f89fd36fe8c) ) ROM_LOAD( "surfplnt.u22", 0x0060000, 0x020000, CRC(ccf88f7e) SHA1(c6a3bb9d6cf14a93a36ed20a47b7c068ccd630aa) ) - /* these 4 are copies of the previous 4 */ + // These 4 are copies of the previous 4 // ROM_LOAD( "surfplnt.u27", 0x0000000, 0x020000, CRC(691bd7a7) SHA1(2ff404b3974a64097372ed15fb5fbbe52c503265) ) // ROM_LOAD( "surfplnt.u28", 0x0020000, 0x020000, CRC(fb293318) SHA1(d255fe3db1b91ec7cc744b0158e70503bca5ceab) ) // ROM_LOAD( "surfplnt.u29", 0x0040000, 0x020000, CRC(b80611fb) SHA1(70d6767ddfb04e94cf2796e3f7090f89fd36fe8c) ) @@ -1111,13 +1137,13 @@ ROM_END ROM_START( radikalb ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) // 68020 code ROM_LOAD32_BYTE( "rab.6", 0x000000, 0x80000, CRC(ccac98c5) SHA1(43a30caf9880f48aba79676f9e746fdc6258139d) ) ROM_LOAD32_BYTE( "rab.12", 0x000001, 0x80000, CRC(26199506) SHA1(1b7b44895aa296eab8061ae85cbb5b0d30119dc7) ) ROM_LOAD32_BYTE( "rab.14", 0x000002, 0x80000, CRC(4a0ac8cb) SHA1(4883e5eddb833dcd39376be435aa8e8e2ec47ab5) ) ROM_LOAD32_BYTE( "rab19.ic19", 0x000003, 0x80000, CRC(c2d4fcb2) SHA1(8e389d1479ba084e5363aef9c797c65ca7f355d2) ) - ROM_REGION16_LE( 0x400000, "user1", 0 ) /* ADSP-2115 code & data */ + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data */ ROM_LOAD( "rab.23", 0x0000000, 0x400000, CRC(dcf52520) SHA1(ab54421c182436660d2a56a334c1aa335424644a) ) ROM_REGION32_LE( 0x1000000, "user2", 0 ) @@ -1140,7 +1166,7 @@ ROM_START( radikalb ) ROM_LOAD( "rab.25", 0x0020000, 0x020000, CRC(777758e3) SHA1(bd334b1ba46189ac8509eee3a4ab295c121400fd) ) ROM_LOAD( "rab.26", 0x0040000, 0x020000, CRC(bd9c1b54) SHA1(c9ef679cf7eca9ed315ea62a7ada452bc85f7a6a) ) ROM_LOAD( "rab.27", 0x0060000, 0x020000, CRC(bbcf6977) SHA1(0282c8ba79c35ed1240711d5812bfb590d151738) ) - /* these 4 are copies of the previous 4 */ + // These 4 are copies of the previous 4 // ROM_LOAD( "rab.32", 0x0000000, 0x020000, CRC(2984bc1d) SHA1(1f62bdaa86feeff96640e325f8241b9c5f383a44) ) // ROM_LOAD( "rab.33", 0x0020000, 0x020000, CRC(777758e3) SHA1(bd334b1ba46189ac8509eee3a4ab295c121400fd) ) // ROM_LOAD( "rab.34", 0x0040000, 0x020000, CRC(bd9c1b54) SHA1(c9ef679cf7eca9ed315ea62a7ada452bc85f7a6a) ) @@ -1148,13 +1174,13 @@ ROM_START( radikalb ) ROM_END ROM_START( radikalba ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) // 68020 code ROM_LOAD32_BYTE( "rab.6", 0x000000, 0x80000, CRC(ccac98c5) SHA1(43a30caf9880f48aba79676f9e746fdc6258139d) ) ROM_LOAD32_BYTE( "rab.12", 0x000001, 0x80000, CRC(26199506) SHA1(1b7b44895aa296eab8061ae85cbb5b0d30119dc7) ) ROM_LOAD32_BYTE( "rab.14", 0x000002, 0x80000, CRC(4a0ac8cb) SHA1(4883e5eddb833dcd39376be435aa8e8e2ec47ab5) ) ROM_LOAD32_BYTE( "rab.19", 0x000003, 0x80000, CRC(2631bd61) SHA1(57331ad49e7284b82073f696049de109b7683b03) ) - ROM_REGION16_LE( 0x400000, "user1", 0 ) /* ADSP-2115 code & data */ + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data ROM_LOAD( "rab.23", 0x0000000, 0x400000, CRC(dcf52520) SHA1(ab54421c182436660d2a56a334c1aa335424644a) ) ROM_REGION32_LE( 0x1000000, "user2", 0 ) @@ -1177,7 +1203,7 @@ ROM_START( radikalba ) ROM_LOAD( "rab.25", 0x0020000, 0x020000, CRC(777758e3) SHA1(bd334b1ba46189ac8509eee3a4ab295c121400fd) ) ROM_LOAD( "rab.26", 0x0040000, 0x020000, CRC(bd9c1b54) SHA1(c9ef679cf7eca9ed315ea62a7ada452bc85f7a6a) ) ROM_LOAD( "rab.27", 0x0060000, 0x020000, CRC(bbcf6977) SHA1(0282c8ba79c35ed1240711d5812bfb590d151738) ) - /* these 4 are copies of the previous 4 */ + // These 4 are copies of the previous 4 // ROM_LOAD( "rab.32", 0x0000000, 0x020000, CRC(2984bc1d) SHA1(1f62bdaa86feeff96640e325f8241b9c5f383a44) ) // ROM_LOAD( "rab.33", 0x0020000, 0x020000, CRC(777758e3) SHA1(bd334b1ba46189ac8509eee3a4ab295c121400fd) ) // ROM_LOAD( "rab.34", 0x0040000, 0x020000, CRC(bd9c1b54) SHA1(c9ef679cf7eca9ed315ea62a7ada452bc85f7a6a) ) @@ -1186,13 +1212,13 @@ ROM_END ROM_START( footbpow ) - ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) // 68020 code ROM_LOAD32_BYTE( "fop_7.ic7", 0x000000, 0x80000, CRC(a2d7ec69) SHA1(27e4f3d27882152244c0f9d5a984e0f1bd7b7d3f) ) ROM_LOAD32_BYTE( "fop_12.ic12", 0x000001, 0x80000, CRC(443caf77) SHA1(2b0c6dccee28fb3caa0b2493f59ddbd29897aed9) ) ROM_LOAD32_BYTE( "fop_13.ic13", 0x000002, 0x80000, CRC(57723eda) SHA1(09972b09444b6704dcc966033bfab61ea57d0cd0) ) ROM_LOAD32_BYTE( "fop_19.ic19", 0x000003, 0x80000, CRC(aa59cd2d) SHA1(7cc6edfd0896e4d2c881b16d5ad07361bdeff11d) ) - ROM_REGION16_LE( 0x400000, "user1", 0 ) /* ADSP-2115 code & data */ + ROM_REGION16_LE( 0x400000, "user1", 0 ) // ADSP-2115 code & data ROM_LOAD( "fop_ic23.ic23", 0x0000000, 0x400000, CRC(3c02f7c6) SHA1(2325f2a1b260ac60929c82640ced481ad67bb2e0) ) ROM_REGION32_LE( 0x1000000, "user2", 0 ) @@ -1210,7 +1236,7 @@ ROM_START( footbpow ) ROM_LOAD( "fop_25.ic25", 0x0020000, 0x020000, CRC(69a8734c) SHA1(835db85371d8fbf0c1a2bc0c6109286f12c95794) ) ROM_LOAD( "fop_26.ic26", 0x0040000, 0x020000, CRC(b5877b68) SHA1(6f6f00da84d6d84895691266c2022fd4cd92f228) ) ROM_LOAD( "fop_27.ic27", 0x0060000, 0x020000, CRC(58309912) SHA1(eb62ccfd75fc168338d30bc30214e6f9f62e5e70) ) - /* these 4 are copies of the previous 4 */ + // These 4 are copies of the previous 4 // ROM_LOAD( "fop_34.ic34", 0x0000000, 0x020000, CRC(3214ae1b) SHA1(3ae2fa28ef603b34b3c72313c513f200e2750b85) ) // ROM_LOAD( "fop_35.ic35", 0x0020000, 0x020000, CRC(69a8734c) SHA1(835db85371d8fbf0c1a2bc0c6109286f12c95794) ) // ROM_LOAD( "fop_36.ic36", 0x0040000, 0x020000, CRC(b5877b68) SHA1(6f6f00da84d6d84895691266c2022fd4cd92f228) ) @@ -1224,13 +1250,14 @@ ROM_END * *************************************/ -GAME( 1996, speedup, 0, gaelco3d, speedup, gaelco3d_state, empty_init, ROT0, "Gaelco", "Speed Up (Version 1.20)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, speedup10, speedup, gaelco3d, speedup, gaelco3d_state, empty_init, ROT0, "Gaelco", "Speed Up (Version 1.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, speedup, 0, gaelco3d, speedup, gaelco3d_state, empty_init, ROT0, "Gaelco", "Speed Up (Version 2.20)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, speedup12, speedup, gaelco3d, speedup, gaelco3d_state, empty_init, ROT0, "Gaelco", "Speed Up (Version 1.20)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, speedup10, speedup, gaelco3d, speedup, gaelco3d_state, empty_init, ROT0, "Gaelco", "Speed Up (Version 1.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, surfplnt, 0, gaelco3d, surfplnt, gaelco3d_state, empty_init, ROT0, "Gaelco (Atari license)", "Surf Planet (Version 4.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) -GAME( 1997, surfplnt40, surfplnt, gaelco3d, surfplnt, gaelco3d_state, empty_init, ROT0, "Gaelco (Atari license)", "Surf Planet (Version 4.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) +GAME( 1997, surfplnt, 0, gaelco3d, surfplnt, gaelco3d_state, empty_init, ROT0, "Gaelco (Atari license)", "Surf Planet (Version 4.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) +GAME( 1997, surfplnt40, surfplnt, gaelco3d, surfplnt, gaelco3d_state, empty_init, ROT0, "Gaelco (Atari license)", "Surf Planet (Version 4.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) GAME( 1998, radikalb, 0, gaelco3d2, radikalb, gaelco3d_state, empty_init, ROT0, "Gaelco", "Radikal Bikers (Version 2.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) GAME( 1998, radikalba, radikalb, gaelco3d2, radikalb, gaelco3d_state, empty_init, ROT0, "Gaelco (Atari license)", "Radikal Bikers (Version 2.02, Atari license)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) -GAME( 1999, footbpow, 0, footbpow, footbpow, gaelco3d_state, empty_init, ROT0, "Gaelco", "Football Power (Version 1.2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_CONTROLS ) +GAME( 1999, footbpow, 0, footbpow, footbpow, gaelco3d_state, empty_init, ROT0, "Gaelco", "Football Power (Version 1.2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/drivers/gaelcof3.cpp b/src/mame/drivers/gaelcof3.cpp index 9eddeb9cc27..379ad789beb 100644 --- a/src/mame/drivers/gaelcof3.cpp +++ b/src/mame/drivers/gaelcof3.cpp @@ -34,10 +34,16 @@ The PCBs were inside two "Coche de Bomberos" kiddie rides from CMC Cresmatic (https://www.recreativas.org/coche-de-bomberos-6022-cresmatic). Anyway, the hardware is generic enough to serve any basic kiddie ride. - The only dumped ROM on the PCB is the Oki sound samples. There are three different versions dumped (from different machines): + There are three different versions dumped (from different machines): -"Susanita" - Based on the song composed by Rafael Pérez Botija. -"El auto feo" - Based on the song composed by Enrique Fischer 'Pipo Pescador'. -"Hola Don Pepito" - Based on the song composed by Ramón del Rivero. + + The PIC16C56 from Hola Don Pepito has been decapped. It is believed it has the same contents for all games. + + TODO: + inputs; + Oki hook up is possibly more complex. */ #include "emu.h" @@ -57,40 +63,47 @@ public: void gaelcof3(machine_config &config); private: - required_device<cpu_device> m_maincpu; + required_device<pic16c56_device> m_maincpu; }; -static INPUT_PORTS_START( gaelcof3 ) +static INPUT_PORTS_START( gaelcof3 ) // defined as buttons only for easier testing PORT_START("IN0") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_START("DSW1") // only 6 switches - PORT_DIPNAME( 0x01, 0x01, "DSW1-1" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,1") + PORT_DIPSETTING( 0x30, "25 Pesetas" ) + PORT_DIPSETTING( 0x20, "100 Pesetas" ) + PORT_DIPSETTING( 0x10, "50 Pesetas" ) + PORT_DIPSETTING( 0x00, "200 Pesetas" ) + PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("SW1:5,4,3") + PORT_DIPSETTING( 0x0e, "42 seconds" ) + PORT_DIPSETTING( 0x0c, "56 seconds" ) + PORT_DIPSETTING( 0x0a, "70 seconds" ) + PORT_DIPSETTING( 0x08, "84 seconds" ) + PORT_DIPSETTING( 0x06, "98 seconds" ) + PORT_DIPSETTING( 0x04, "112 seconds" ) + PORT_DIPSETTING( 0x02, "126 seconds" ) + PORT_DIPSETTING( 0x00, "140 seconds" ) + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "DSW1-2" ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "DSW1-3" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "DSW1-4" ) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "DSW1-5" ) PORT_DIPLOCATION("SW1:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "DSW1-6" ) PORT_DIPLOCATION("SW1:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON5 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) INPUT_PORTS_END void gaelcof3_state::gaelcof3(machine_config &config) { PIC16C56(config, m_maincpu, 4000000); // clock not confirmed + m_maincpu->read_a().set_ioport("IN0"); + m_maincpu->write_a().set([this] (uint8_t data) { logerror("port A write: %02x\n", data); }); + m_maincpu->read_b().set_ioport("DSW1"); + m_maincpu->write_b().set("oki", FUNC(okim6295_device::write)); SPEAKER(config, "mono").front_center(); @@ -99,24 +112,26 @@ void gaelcof3_state::gaelcof3(machine_config &config) ROM_START( autopapa ) - ROM_REGION( 0x800, "maincpu", 0 ) - ROM_LOAD( "pic16c56.u3", 0x000, 0x800, NO_DUMP ) + ROM_REGION( 0x2000, "maincpu", 0 ) + // this was decapped and dumped for donpepito, should be the same but marking it as bad dump for overcautiousness + ROM_LOAD( "pic16c56.u3", 0x0000, 0x1fff, BAD_DUMP CRC(a2c24ec3) SHA1(e87520c6de714b1638c9b156411522e0209fb06e) ) ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "autopapa.u1", 0x00000, 0x40000, CRC(a3e5607e) SHA1(24a9c79edec7b2f7f64b622240f2ad8f3ffa29ca) ) ROM_END ROM_START( donpepito ) - ROM_REGION( 0x800, "maincpu", 0 ) - ROM_LOAD( "pic16c56.u3", 0x000, 0x800, NO_DUMP ) + ROM_REGION( 0x2000, "maincpu", 0 ) + ROM_LOAD( "pic16c56.u3", 0x0000, 0x1fff, CRC(a2c24ec3) SHA1(e87520c6de714b1638c9b156411522e0209fb06e) ) ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "don_pepito.u1", 0x00000, 0x40000, CRC(574fcd14) SHA1(a23f1eb6d2cef5aa07df3a553fe1d33803648f43) ) ROM_END ROM_START( susanita ) - ROM_REGION( 0x800, "maincpu", 0 ) - ROM_LOAD( "pic16c56.u3", 0x000, 0x800, NO_DUMP ) + ROM_REGION( 0x2000, "maincpu", 0 ) + // this was decapped and dumped for donpepito, should be the same but marking it as bad dump for overcautiousness + ROM_LOAD( "pic16c56.u3", 0x0000, 0x1fff, BAD_DUMP CRC(a2c24ec3) SHA1(e87520c6de714b1638c9b156411522e0209fb06e) ) ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "susanita.u1", 0x00000, 0x40000, CRC(766868cb) SHA1(eb42dc46b865bc448052d9d67c840e51c49ce49a) ) diff --git a/src/mame/drivers/hp80.cpp b/src/mame/drivers/hp80.cpp index e4b67eaab56..6fa046d2822 100644 --- a/src/mame/drivers/hp80.cpp +++ b/src/mame/drivers/hp80.cpp @@ -1499,9 +1499,9 @@ static INPUT_PORTS_START(hp85) PORT_BIT(IOP_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') // 5,2: / ? PORT_BIT(IOP_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("PAUSE STEP") // 5,3: PAUSE / STEP PORT_BIT(IOP_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("RUN") // 5,4: RUN - PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("KP +") // 5,5: KP + - PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("KP -") // 5,6: KP - - PORT_BIT(IOP_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("KP *") // 5,7: KP * (not sure) + PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) PORT_NAME("KP +") // 5,5: KP + + PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_NAME("KP -") // 5,6: KP - + PORT_BIT(IOP_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) PORT_NAME("KP *") // 5,7: KP * (not sure) PORT_BIT(IOP_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') // 6,0: L PORT_BIT(IOP_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') // 6,1: ; PORT_BIT(IOP_MASK(18) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"') // 6,2: ' " @@ -1509,7 +1509,7 @@ static INPUT_PORTS_START(hp85) PORT_BIT(IOP_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("LIST P LST") // 6,4: LIST / P LST PORT_BIT(IOP_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) // 6,5: N/U PORT_BIT(IOP_MASK(22) , IP_ACTIVE_HIGH , IPT_UNUSED) // 6,6: N/U - PORT_BIT(IOP_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("KP /") // 6,7: KP / + PORT_BIT(IOP_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD)) PORT_NAME("KP /") // 6,7: KP / PORT_BIT(IOP_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o') // 7,0: O PORT_BIT(IOP_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p') // 7,1: P PORT_BIT(IOP_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('(') PORT_CHAR('[') // 7,2: ( [ @@ -1520,8 +1520,8 @@ static INPUT_PORTS_START(hp85) PORT_BIT(IOP_MASK(31) , IP_ACTIVE_HIGH , IPT_UNUSED) // 7,7: N/U PORT_START("KEY2") - PORT_BIT(IOP_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') // 8,0: 9 - PORT_BIT(IOP_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') // 8,1: 0 + PORT_BIT(IOP_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') // 8,0: 9 + PORT_BIT(IOP_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') // 8,1: 0 PORT_BIT(IOP_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') // 8,2: - _ PORT_BIT(IOP_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') // 8,3: = + PORT_BIT(IOP_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\\') PORT_CHAR('|') // 8,4: \ | @@ -2172,8 +2172,8 @@ static INPUT_PORTS_START(hp86) PORT_BIT(IOP_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') // 5,2: / ? PORT_BIT(IOP_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("PAUSE STEP") // 5,3: PAUSE / STEP PORT_BIT(IOP_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("RUN") // 5,4: RUN - PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("KP +") // 5,5: KP + - PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("KP -") // 5,6: KP - + PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) PORT_NAME("KP +") // 5,5: KP + + PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_NAME("KP -") // 5,6: KP - PORT_BIT(IOP_MASK(15) , IP_ACTIVE_HIGH , IPT_UNUSED) // 5,7: N/U PORT_BIT(IOP_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') // 6,0: L PORT_BIT(IOP_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') // 6,1: ; @@ -2181,8 +2181,8 @@ static INPUT_PORTS_START(hp86) PORT_BIT(IOP_MASK(19) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("END LINE") // 6,3: END LINE PORT_BIT(IOP_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("LIST P LST") // 6,4: LIST / P LST PORT_BIT(IOP_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) // 6,5: N/U - PORT_BIT(IOP_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("KP *") // 6,6: KP * - PORT_BIT(IOP_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("KP /") // 6,7: KP / + PORT_BIT(IOP_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) PORT_NAME("KP *") // 6,6: KP * + PORT_BIT(IOP_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD)) PORT_NAME("KP /") // 6,7: KP / PORT_BIT(IOP_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o') // 7,0: O PORT_BIT(IOP_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p') // 7,1: P PORT_BIT(IOP_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('(') PORT_CHAR('[') // 7,2: ( [ @@ -2193,8 +2193,8 @@ static INPUT_PORTS_START(hp86) PORT_BIT(IOP_MASK(31) , IP_ACTIVE_HIGH , IPT_UNUSED) // 7,7: N/U PORT_START("KEY2") - PORT_BIT(IOP_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') // 8,0: 9 - PORT_BIT(IOP_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') // 8,1: 0 + PORT_BIT(IOP_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') // 8,0: 9 + PORT_BIT(IOP_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') // 8,1: 0 PORT_BIT(IOP_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') // 8,2: - _ PORT_BIT(IOP_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') // 8,3: = + PORT_BIT(IOP_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\\') PORT_CHAR('|') // 8,4: \ | @@ -2319,18 +2319,18 @@ static INPUT_PORTS_START(hp86_int) PORT_BIT(IOP_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') // 5,1: ; : PORT_BIT(IOP_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"') // 5,2: ' " PORT_BIT(IOP_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("END LINE") // 5,3: END LINE - PORT_BIT(IOP_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_4_PAD) // 5,4: KP 4 - PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("KP *") // 5,5: KP * - PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR('^') // 5,6: KP 6 - PORT_BIT(IOP_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR('%') // 5,7: KP 5 + PORT_BIT(IOP_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) // 5,4: KP 4 + PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) PORT_NAME("KP *") // 5,5: KP * + PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) // 5,6: KP 6 + PORT_BIT(IOP_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) // 5,7: KP 5 PORT_BIT(IOP_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') // 6,0: L PORT_BIT(IOP_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') // 6,1: . PORT_BIT(IOP_MASK(18) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') // 6,2: / ? PORT_BIT(IOP_MASK(19) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("LIST P LST") // 6,3: LIST / P LST - PORT_BIT(IOP_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_1_PAD) // 6,4: KP 1 - PORT_BIT(IOP_MASK(21) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("KP -") // 6,5: KP - - PORT_BIT(IOP_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_3_PAD) // 6,6: KP 3 - PORT_BIT(IOP_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_2_PAD) // 6,7: KP 2 + PORT_BIT(IOP_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) // 6,4: KP 1 + PORT_BIT(IOP_MASK(21) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_NAME("KP -") // 6,5: KP - + PORT_BIT(IOP_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) // 6,6: KP 3 + PORT_BIT(IOP_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) // 6,7: KP 2 PORT_BIT(IOP_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o') // 7,0: O PORT_BIT(IOP_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') // 7,1: 7 PORT_BIT(IOP_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') // 7,2: 6 @@ -2345,18 +2345,18 @@ static INPUT_PORTS_START(hp86_int) PORT_BIT(IOP_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('(') PORT_CHAR('[') // 8,1: ( [ PORT_BIT(IOP_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(')') PORT_CHAR(']') // 8,2: ) ] PORT_BIT(IOP_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("CONT TR/NORM") // 8,3: CONT / TR/NORM - PORT_BIT(IOP_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_7_PAD) // 8,4: KP 7 - PORT_BIT(IOP_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("KP /") // 8,5: KP / - PORT_BIT(IOP_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9_PAD) // 8,6: KP 9 - PORT_BIT(IOP_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_8_PAD) // 8,7: KP 8 + PORT_BIT(IOP_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) // 8,4: KP 7 + PORT_BIT(IOP_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD)) PORT_NAME("KP /") // 8,5: KP / + PORT_BIT(IOP_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) // 8,6: KP 9 + PORT_BIT(IOP_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) // 8,7: KP 8 PORT_BIT(IOP_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') // 9,0: , PORT_BIT(IOP_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') // 9,1: Space PORT_BIT(IOP_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("PAUSE STEP") // 9,2: PAUSE / STEP PORT_BIT(IOP_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("RUN") // 9,3: RUN - PORT_BIT(IOP_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) // 9,4: KP 0 - PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("KP +") // 9,5: KP + - PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA_PAD) // 9,6: KP , - PORT_BIT(IOP_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_NAME("KP .") // 9,7: KP . + PORT_BIT(IOP_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) // 9,4: KP 0 + PORT_BIT(IOP_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) PORT_NAME("KP +") // 9,5: KP + + PORT_BIT(IOP_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA_PAD) PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD)) PORT_CHAR('<') PORT_NAME("KP ,") // 9,6: KP , + PORT_BIT(IOP_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_CHAR('>') PORT_NAME("KP .") // 9,7: KP . PORT_BIT(IOP_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) PORT_NAME("k6 k13") // 10,0: k6 / k13 PORT_BIT(IOP_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7)) PORT_NAME("k7 k14") // 10,1: k7 / k14 PORT_BIT(IOP_MASK(18) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("-LINE CLEAR") // 10,2: -LINE / CLEAR diff --git a/src/mame/drivers/informer_207_376.cpp b/src/mame/drivers/informer_207_376.cpp index 964363dc0e8..011cbb1987e 100644 --- a/src/mame/drivers/informer_207_376.cpp +++ b/src/mame/drivers/informer_207_376.cpp @@ -13,7 +13,6 @@ - X2212P NVRAM TODO: - - Redump bad ROMs - Dump keyboard controller and emulate it (currently HLE'd) - Problably needs improvements to at least the Z80SCC to properly support synchrous modes @@ -88,11 +87,13 @@ private: void mem_map(address_map &map); MC6845_UPDATE_ROW(crtc_update_row); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void vsync_w(int state); void nmi_control_w(uint8_t data); void unk_8400_w(uint8_t data); + bool m_display_enabled; bool m_nmi_enabled; }; @@ -150,6 +151,10 @@ MC6845_UPDATE_ROW( informer_207_376_state::crtc_update_row ) if (x == cursor_x) data = 0xff; + // the line above the status bar seems to be hardcoded + if (y == 274) + data = 0xff; + // draw 8 pixels of the character bitmap.pix32(y, x * 8 + 7) = pen[BIT(data, 0)]; bitmap.pix32(y, x * 8 + 6) = pen[BIT(data, 1)]; @@ -162,6 +167,16 @@ MC6845_UPDATE_ROW( informer_207_376_state::crtc_update_row ) } } +uint32_t informer_207_376_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + if (m_display_enabled) + m_crtc->screen_update(screen, bitmap, cliprect); + else + bitmap.fill(rgb_t::black(), cliprect); + + return 0; +} + static const gfx_layout char_layout = { 8,11, @@ -196,19 +211,24 @@ void informer_207_376_state::unk_8400_w(uint8_t data) // 7------- beeper // -6------ unknown // --5----- 1=internal modem, 0=host rs232 - // ---43210 unknown + // ---43--- unknown + // -----2-- display enabled? + // ------10 unknown m_beep->set_state(BIT(data, 7)); + m_display_enabled = bool(BIT(data, 2)); } void informer_207_376_state::machine_start() { // register for save states + save_item(NAME(m_display_enabled)); save_item(NAME(m_nmi_enabled)); } void informer_207_376_state::machine_reset() { + m_display_enabled = false; m_nmi_enabled = false; } @@ -224,7 +244,7 @@ void printer_devices(device_slot_interface &device) void informer_207_376_state::informer_207_376(machine_config &config) { - MC6809(config, m_maincpu, 36_MHz_XTAL / 4); // unknown clock + MC6809(config, m_maincpu, 36_MHz_XTAL / 4); // unknown clock divisor m_maincpu->set_addrmap(AS_PROGRAM, &informer_207_376_state::mem_map); input_merger_device &cpu_irq(INPUT_MERGER_ANY_HIGH(config, "cpu_irq")); @@ -233,14 +253,14 @@ void informer_207_376_state::informer_207_376(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // 2x X2212P PIT8253(config, m_pit); - m_pit->set_clk<0>(4915200 / 2); + m_pit->set_clk<0>(2.457600_MHz_XTAL); m_pit->out_handler<0>().set(m_acia[1], FUNC(acia6850_device::write_txc)); m_pit->out_handler<0>().append(m_acia[1], FUNC(acia6850_device::write_rxc)); - m_pit->set_clk<1>(4915200 / 2); + m_pit->set_clk<1>(2.457600_MHz_XTAL); m_pit->out_handler<1>().set(m_acia[0], FUNC(acia6850_device::write_txc)); m_pit->out_handler<1>().append(m_acia[0], FUNC(acia6850_device::write_rxc)); - SCC85C30(config, m_scc, 4915200); + SCC85C30(config, m_scc, 0); // externally clocked? m_scc->out_txda_callback().set("com1", FUNC(rs232_port_device::write_txd)); m_scc->out_dtra_callback().set("com1", FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsa_callback().set("com1", FUNC(rs232_port_device::write_rts)); @@ -249,11 +269,11 @@ void informer_207_376_state::informer_207_376(machine_config &config) m_scc->out_rtsb_callback().set("com2", FUNC(rs232_port_device::write_rts)); m_scc->out_int_callback().set("cpu_irq", FUNC(input_merger_device::in_w<0>)); - ACIA6850(config, m_acia[0], 0); // unknown clock + ACIA6850(config, m_acia[0]); m_acia[0]->txd_handler().set("kbd", FUNC(informer_207_376_kbd_hle_device::rx_w)); m_acia[0]->irq_handler().set("cpu_irq", FUNC(input_merger_device::in_w<1>)); - ACIA6850(config, m_acia[1], 0); // unknown clock + ACIA6850(config, m_acia[1]); m_acia[1]->txd_handler().set("printer", FUNC(rs232_port_device::write_txd)); rs232_port_device &com1(RS232_PORT(config, "com1", default_rs232_devices, nullptr)); @@ -274,14 +294,14 @@ void informer_207_376_state::informer_207_376(machine_config &config) // video SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_color(rgb_t::green()); - m_screen->set_raw(14400000, 800, 0, 640, 300, 0, 286); // unknown clock - m_screen->set_screen_update("crtc", FUNC(mc6845_device::screen_update)); + m_screen->set_raw(36_MHz_XTAL / 2.5, 800, 0, 640, 300, 0, 286); + m_screen->set_screen_update(FUNC(informer_207_376_state::screen_update)); PALETTE(config, m_palette, palette_device::MONOCHROME); GFXDECODE(config, "gfxdecode", m_palette, chars); - MC6845(config, m_crtc, 1800000); // unknown clock + MC6845(config, m_crtc, 36_MHz_XTAL / 20); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); @@ -301,15 +321,15 @@ void informer_207_376_state::informer_207_376(machine_config &config) ROM_START( in207376 ) ROM_REGION(0x6000, "maincpu", 0) // M2764A F1 - // 79590-023 376SNA V1.00 201C 7224 (our checksum: 7264) - ROM_LOAD("79590-023.z37", 0x0000, 0x2000, BAD_DUMP CRC(ed4ff488) SHA1(fdd95c520d0288ea483b5d2e8e6c8eecb04063c1)) + // 79590-023 376SNA V1.00 201C 7224 (checksum matches) + ROM_LOAD("79590-023.z37", 0x0000, 0x2000, CRC(61d49637) SHA1(aabcd55af88ff0b6a198eef04a88f58cc8f65dcc)) // M27128AF1 // 79589-023 376 SNAV1.00 201C E86F (checksum matches) ROM_LOAD("79589-023.z36", 0x2000, 0x4000, CRC(cdfaf629) SHA1(1f21ef6848020726ef3d7ab05166ac8590d58476)) ROM_REGION(0x1000, "chargen", 0) // TMS2732AGL-25 - // 79573-001 V1.00 376/8 CHAR. GEN. + // 79573-001 V1.00 376/8 CHAR. GEN. ROM_LOAD("79573-001.z6", 0x0000, 0x1000, CRC(f704b827) SHA1(bcc56eeb8681c2bebe3a9f4b6b78c0373c06d875)) ROM_END diff --git a/src/mame/drivers/konmedal68k.cpp b/src/mame/drivers/konmedal68k.cpp index b32b631b737..dce2553a8f6 100644 --- a/src/mame/drivers/konmedal68k.cpp +++ b/src/mame/drivers/konmedal68k.cpp @@ -458,8 +458,23 @@ ROM_START( dobouchn ) ROM_LOAD( "640-a02-4f.bin", 0x080000, 0x080000, CRC(ab6593f5) SHA1(95907ee4a2cdf3bf27b7c0c1283b2bc36b868d9d) ) ROM_END +// GS562 PCB with no K056766 color DAC and no IC 20D 8Kbyte SRAM (palette RAM?), possible have no video output or have it implemented in some unusual way. +// at 1st boot press Service1 to initialise NVRAM +ROM_START( konslot ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "669-a05-2n.bin", 0x000000, 0x080000, CRC(3330848e) SHA1(24c2ac03fe5d099659081d1f9611c707c746c768) ) + + ROM_REGION( 0x80000, "k056832", 0 ) + ROM_LOAD( "669-a06-14n.bin", 0x000000, 0x080000, CRC(b058fa04) SHA1(b277e814f1814d8892ccc5279f75bff0eec678b5) ) + + ROM_REGION( 0x80000, "ymz", 0 ) + ROM_LOAD( "669-a01-2d.bin", 0x000000, 0x080000, CRC(08438dad) SHA1(b4ef8fc37deca5b6537cc581fc99968c86e6ec2c) ) +ROM_END + + GAME( 1995, kzaurus, 0, kzaurus, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Pittanko Zaurus", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, dobouchn, 0, kzaurus, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Dobou-Chan (ver JAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 199?, konslot, 0, kzaurus, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Unknown Konami slot medal game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, koropens, 0, koropens, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Korokoro Pensuke", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1998, kattobas, 0, koropens, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Kattobase Power Pro Kun", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1999, pwrchanc, 0, koropens, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Powerful Chance", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/lkage.cpp b/src/mame/drivers/lkage.cpp index f31e3a104a1..009cda07e1d 100644 --- a/src/mame/drivers/lkage.cpp +++ b/src/mame/drivers/lkage.cpp @@ -731,6 +731,24 @@ ROM_START( lkageb3 ) ROM_LOAD( "a54-10.2", 0x0000, 0x0200, CRC(17dfbd14) SHA1(f8f0b6dfedd4ba108dad43ccc7697ef4ab9cbf86) ) /* unknown */ ROM_END +ROM_START( lkageb4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "1.ic37", 0x0000, 0x8000, CRC(fa20e863) SHA1(0edba6014e8d7cdd7f6ad1bb5eb65338a3a91243) ) + ROM_LOAD( "2.ic38", 0x8000, 0x8000, CRC(a5bdd3b4) SHA1(4f691ea8b75fae0dd92f827998e97e40791d24b2) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "4.ic54", 0x0000, 0x8000, CRC(541faf9a) SHA1(b142ff3bd198f700697ec06ea92db3109ab5818e) ) + + ROM_REGION( 0x4000, "user1", 0 ) + ROM_LOAD( "a54-03.51", 0x0000, 0x4000, CRC(493e76d8) SHA1(13c6160edd94ba2801fd89bb33bcae3a1e3454ff) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "5.ic84", 0x0000, 0x4000, CRC(0033c06a) SHA1(89964503fc338817c6511fd15942741996b7037a) ) + ROM_LOAD( "6.ic85", 0x4000, 0x4000, CRC(9f04d9ad) SHA1(3b9a4d30348fd02e5c8ae94655548bd4a02dd65d) ) + ROM_LOAD( "7.ic86", 0x8000, 0x4000, CRC(b20561a4) SHA1(0d6d83dfae79ea133e37704ca47426b4c978fb36) ) + ROM_LOAD( "8.ic87", 0xc000, 0x4000, CRC(3ff3b230) SHA1(ffcd964efb0af32b5d7a70305dfda615ea95acbe) ) +ROM_END + /* Bygone Taito, 1985? @@ -919,4 +937,5 @@ GAME( 1984, lkageoo, lkage, lkage, lkage, lkage_state, init_lkage, ROT0, "Tai GAME( 1984, lkageb, lkage, lkageb, lkageb, lkage_state, init_lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkage_state, init_lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkage_state, init_lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, lkageb4, lkage, lkageb, lkageb, lkage_state, init_lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 4)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1985, bygone, 0, lkage, bygone, lkage_state, init_bygone, ROT0, "Taito Corporation", "Bygone (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/magicard.cpp b/src/mame/drivers/magicard.cpp index c4d741e5b29..20a74fe5b1e 100644 --- a/src/mame/drivers/magicard.cpp +++ b/src/mame/drivers/magicard.cpp @@ -941,8 +941,8 @@ ROM_START( magicarde ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68070 Code & GFX */ ROM_LOAD16_WORD_SWAP( "27c4002.ic21", 0x00000, 0x80000, CRC(b5f24412) SHA1(73ff05c19132932a419fef0d5dc985440ce70e83) ) - ROM_REGION( 0x0200, "pic16c54", 0 ) /* protected */ - ROM_LOAD("pic16c54.ic29", 0x0000, 0x0200, BAD_DUMP CRC(73224200) SHA1(c9a1038146647430759d570bb5626047a476a05b) ) + ROM_REGION( 0x2000, "pic16c54", 0 ) /* decapped */ + ROM_LOAD("pic16c54.ic29", 0x0000, 0x1fff, CRC(9c225a49) SHA1(249c12d23d1a85de828652c55a1a19ef8ec378ef) ) ROM_REGION( 0x0100, "sereeprom", 0 ) /* Serial EPROM */ ROM_LOAD("st24c02.ic26", 0x0000, 0x0100, CRC(98287c67) SHA1(ad34e55c1ce4f77c27049dac88050ed3c94af1a0) ) @@ -987,8 +987,8 @@ ROM_START( magicardw ) ROM_REGION( 0x80000, "maincpu", 0 ) // 68070 Code & GFX ROM_LOAD16_WORD_SWAP( "am27c4096.bin", 0x00000, 0x80000, CRC(d9e2a4ec) SHA1(b3000ded242fa25709c90b9b2541c9d1d5cabebb) ) - ROM_REGION( 0x0200, "pic16c54", 0 ) // protected - ROM_LOAD("pic16c54a.bin", 0x0000, 0x0200, NO_DUMP ) + ROM_REGION( 0x1fff, "pic16c54", 0 ) // decapped + ROM_LOAD("pic16c54a.bin", 0x0000, 0x1fff, CRC(e777e814) SHA1(e0440be76fa1f3c7ae7d31e1b29a2ba73552231c) ) ROM_END @@ -1097,8 +1097,8 @@ ROM_START( puzzleme ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68070 Code & GFX */ ROM_LOAD16_WORD_SWAP( "27c4002.ic21", 0x00000, 0x80000, CRC(cd3bc5a9) SHA1(682f62eba454f4f00212b2a8dabb05d6747f22fd) ) - ROM_REGION( 0x0200, "pic16c54", 0 ) /* protected */ - ROM_LOAD("pic16c54.ic29", 0x0000, 0x0200, NO_DUMP ) + ROM_REGION( 0x1fff, "pic16c54", 0 ) /* decapped */ + ROM_LOAD("pic16c54.ic29", 0x0000, 0x1fff, CRC(6dd2bd8e) SHA1(380f6b952ddd3183e9ab5404866c30be015b3773) ) ROM_REGION( 0x0100, "sereeprom", 0 ) /* Serial EPROM */ ROM_LOAD("x24c02p.ic26", 0x0000, 0x0100, CRC(bc940f53) SHA1(6b870019752ba5c446a5ad5155e4a81dfbf6e523) ) @@ -1114,8 +1114,8 @@ ROM_START( unkte06 ) ROM_REGION( 0x80000, "maincpu", 0 ) // 68070 Code & GFX ROM_LOAD16_WORD_SWAP( "m27c4002.bin", 0x00000, 0x80000, CRC(229a504f) SHA1(8033e9b4cb55f2364bf4606375ef9ac05fc715fe) ) - ROM_REGION( 0x0200, "pic16c54", 0 ) // protected - ROM_LOAD("pic16c54.bin", 0x0000, 0x0200, NO_DUMP ) + ROM_REGION( 0x1fff, "pic16c56", 0 ) // decapped + ROM_LOAD("pic16c56.bin", 0x0000, 0x1fff, CRC(b5655603) SHA1(d9126c36f3fca7e769ea60aaa711bb304b4b6a11) ) ROM_END /* diff --git a/src/mame/drivers/missbamby.cpp b/src/mame/drivers/missbamby.cpp index 3c8655a9f30..6a1e10b1428 100644 --- a/src/mame/drivers/missbamby.cpp +++ b/src/mame/drivers/missbamby.cpp @@ -208,7 +208,18 @@ ROM_START( gwinner ) ROM_LOAD( "dm74s188n.bin", 0x00, 0x20, NO_DUMP ) ROM_END +ROM_START( unkslot ) + ROM_REGION(0x4000, "maincpu", 0) + ROM_LOAD( "tms2564jl.bin", 0x0000, 0x2000, CRC(43fa54fb) SHA1(2e0d0883deb20d68e46d3c5c5c98508c9b5d5411) ) + ROM_LOAD( "d2764d.bin", 0x2000, 0x1000, CRC(b7c55fc2) SHA1(2dfcc35821971c27178522afe9db1d18e12b3a42) ) // 1xxxxxxxxxxx = 0xFF + + ROM_REGION(0x20, "prom", 0) + ROM_LOAD( "n83s23n.bin", 0x00, 0x20, CRC(ea598b2c) SHA1(c0d6367ed2381a4a0f22780773ff4777569e88ab) ) +ROM_END + + GAME( 1981, minisupf, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Cirsa", "Mini Super Fruits", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1981, luckyplr, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Cirsa", "Lucky Player", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 198?, msbamby, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Automatics Pasqual", "Miss Bamby", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 198?, unkslot, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "<unknown>", "unknown MGA or Costa Net slot machine", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1983, gwinner, 0, gldwinner, missbamby, missbamby_state, empty_init, ROT0, "Reben SA", "Golden Winner", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp index 73de0bfebc8..ca4b2eda839 100644 --- a/src/mame/drivers/namcos23.cpp +++ b/src/mame/drivers/namcos23.cpp @@ -3551,6 +3551,7 @@ void namcos23_state::init_s23() if((!strcmp(machine().system().name, "motoxgo")) || (!strcmp(machine().system().name, "panicprk")) || (!strcmp(machine().system().name, "panicprkj")) || + (!strcmp(machine().system().name, "panicprkj2")) || (!strcmp(machine().system().name, "rapidrvr")) || (!strcmp(machine().system().name, "rapidrvrv2c")) || (!strcmp(machine().system().name, "rapidrvrp")) || @@ -3832,7 +3833,9 @@ void namcos23_state::ss23e2(machine_config &config) m_subcpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); } - +// a note about "user1" ROMs: +// serial number data is at offset 0x201 (interleaved) and it's the only difference between sets marked as 'set 1' and 'set 2' +// TODO: verify if it's better to just keep one set and note the alternate serial numbers ROM_START( rapidrvr ) ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */ @@ -4853,6 +4856,53 @@ ROM_START( panicprkj ) ROM_END +ROM_START( panicprkj2 ) + ROM_REGION32_BE( 0x400000, "user1", 0 ) // 4 megs for main R4650 code + ROM_LOAD16_BYTE( "pnp1verb.ic2", 0x000000, 0x200000, CRC(59748d7d) SHA1(f7677ec9027439a7352c88494873861e78ae9a41) ) + ROM_LOAD16_BYTE( "pnp1verb.ic1", 0x000001, 0x200000, CRC(718ff346) SHA1(0f631fe32e864623455d9bc39cdfa80b34c6dbb0) ) + + ROM_REGION( 0x80000, "subcpu", 0 ) // Hitachi H8/3002 MCU code + ROM_LOAD16_WORD_SWAP( "pnp1vera.ic3", 0x000000, 0x080000, CRC(fe4bc6f4) SHA1(2114dc4bc63d589e6c3b26a73dbc60924f3b1765) ) + + ROM_REGION( 0x40000, "iocpu", 0 ) // I/O board HD643334 H8/3334 MCU code + ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) ) + + ROM_REGION32_BE( 0x2000000, "data", 0 ) + ROM_LOAD16_BYTE( "pnp1mtah.2j", 0x000000, 0x800000, CRC(37addddd) SHA1(3032989653304417df80606bc3fde6e9425d8cbb) ) + ROM_LOAD16_BYTE( "pnp1mtal.2h", 0x000001, 0x800000, CRC(6490faaa) SHA1(03443746009b434e5d4074ea6314910418907360) ) + + ROM_REGION( 0x2000000, "textile", 0 ) + ROM_LOAD( "pnp1cgll.4m", 0x0000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) ) + ROM_LOAD( "pnp1cglm.5k", 0x0800000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) ) + ROM_LOAD( "pnp1cgum.4j", 0x1000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) ) + ROM_LOAD( "pnp1cguu.5f", 0x1800000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) ) + + ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) + ROM_LOAD( "pnp1ccrl.7f", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) ) + + ROM_REGION( 0x200000, "textilemaph", 0 ) + ROM_LOAD( "pnp1ccrh.7e", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) ) + + ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) + ROM_LOAD32_WORD_SWAP( "pnp1pt0h.7a", 0x000000, 0x400000, CRC(43fc2246) SHA1(301d321cd4a01ebd7ccfa6f295d6c3daf0a19efe) ) + ROM_LOAD32_WORD_SWAP( "pnp1pt0l.7c", 0x000002, 0x400000, CRC(26af5fa1) SHA1(12fcf98c2a59643e0fdfdd7186f9f16baf54a9cf) ) + ROM_LOAD32_WORD_SWAP( "pnp1pt1h.5a", 0x800000, 0x400000, CRC(1ff470c0) SHA1(ca8fad90743589744939d681b0ce94f368337b3f) ) + ROM_LOAD32_WORD_SWAP( "pnp1pt1l.5c", 0x800002, 0x400000, CRC(15c6f236) SHA1(e8c393359a91cdce6e9110a48c0a80708f8fc132) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "pnp1wavel.2c", 0x000000, 0x800000, CRC(35c6a9bd) SHA1(4b56fdc37525c15e57d93091e6609d6a6905fc5c) ) + ROM_LOAD( "pnp1waveh.2a", 0x800000, 0x800000, CRC(6fa1826a) SHA1(20a5af49e65ae2bc57c016b5cd9bafa5a5220d35) ) + + ROM_REGION( 0x800000, "dups", 0 ) // duplicate ROMs + ROM_LOAD( "pnp1cguu.4f", 0x000000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) ) + ROM_LOAD( "pnp1cgum.5j", 0x000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) ) + ROM_LOAD( "pnp1cgll.5m", 0x000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) ) + ROM_LOAD( "pnp1cglm.4k", 0x000000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) ) + ROM_LOAD( "pnp1ccrl.7m", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) ) + ROM_LOAD( "pnp1ccrh.7k", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) ) +ROM_END + + ROM_START( gunwars ) ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */ ROM_LOAD16_BYTE( "gm1verb.ic2", 0x000000, 0x200000, CRC(401f8264) SHA1(281f245ae0fbc2b82248c7aacaa5dfcdb114e2ee) ) @@ -5330,8 +5380,9 @@ GAME( 1997, timecrs2v2b, timecrs2, timecrs2, timecrs2, namcos23_state, init_ GAME( 1997, timecrs2v1b, timecrs2, timecrs2, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (Japan, TSS1 Ver. B)", GAME_FLAGS | MACHINE_NODEVICE_LAN ) GAME( 1997, timecrs2v4a, timecrs2, timecrs2v4a, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (World, TSS4 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN ) GAME( 1997, timecrs2v5a, timecrs2, timecrs2v4a, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (US, TSS5 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN ) -GAME( 1997, panicprk, 0, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (World, PNP2 Ver. A)", GAME_FLAGS ) -GAME( 1997, panicprkj, panicprk, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (Japan, PNP1 Ver. B)", GAME_FLAGS ) +GAME( 1997, panicprk, 0, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (World, PNP2 Ver. A)", GAME_FLAGS ) +GAME( 1997, panicprkj, panicprk, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (Japan, PNP1 Ver. B, set 1)", GAME_FLAGS ) +GAME( 1997, panicprkj2, panicprk, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (Japan, PNP1 Ver. B, set 2)", GAME_FLAGS ) GAME( 1998, gunwars, 0, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Gunmen Wars (Japan, GM1 Ver. B)", GAME_FLAGS | MACHINE_NODEVICE_LAN ) GAME( 1998, gunwarsa, gunwars, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Gunmen Wars (Japan, GM1 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN ) GAME( 1998, raceon, 0, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Race On! (World, RO2 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN ) diff --git a/src/mame/drivers/neptunp2.cpp b/src/mame/drivers/neptunp2.cpp index 7b2d8a8b53f..ba8c375a379 100644 --- a/src/mame/drivers/neptunp2.cpp +++ b/src/mame/drivers/neptunp2.cpp @@ -247,5 +247,27 @@ ROM_START( rockroll ) // PCB serigraphed 'CB1 (CS4)' and '960606-5 CPU'. It was ROM_LOAD( "pat_063_tibpal16l8-25cn.bin", 0x000, 0x104, NO_DUMP ) // Protected ROM_END -GAME( 199?, neptunp2, 0, neptunp2, neptunp2, neptunp2_state, empty_init, ROT0, "Unidesa?", "Neptune's Pearls 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1999, rockroll, 0, neptunp2, neptunp2, neptunp2_state, empty_init, ROT0, "Unidesa / Cirsa", "Rock 'n' Roll", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // year taken from parts' manual and sticker on PCB +ROM_START( mexlindo ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD( "m27c801.u2", 0x000000, 0x100000, CRC(b3269247) SHA1(85911f130325e3082a83cd46b65c270c33e94d3f) ) + + ROM_REGION( 0x100000, "prg_data", 0 ) // dunno how this maps ... + ROM_LOAD( "m27c801.u3", 0x000000, 0x100000, CRC(7f08dade) SHA1(be320cdd0c1de5d5524878ebcd9779e48cf98b1d) ) + + ROM_REGION( 0x200000, "oki", 0 ) + ROM_LOAD( "m27c801.u14", 0x000000, 0x100000, CRC(418bffcd) SHA1(267e5bf4d06b05902a030949149d56f37459292c) ) + ROM_LOAD( "m27c801.u15", 0x100000, 0x100000, CRC(8932660c) SHA1(800fe27a74c0adaeebcddcbf5e0cd29767c7a4b3) ) + + ROM_REGION( 0x1000000, "gfx", 0 ) + ROM_LOAD( "m29f032b.u1", 0x000000, 0x400000, CRC(0edf4c06) SHA1(12d625e7fbac19666df16c298864dcb203acd32b) ) + ROM_LOAD( "m29f032b.u2", 0x400000, 0x400000, CRC(3b082f34) SHA1(ec1668656a885c96ea1946a58a065a56eb3ec60f) ) + ROM_LOAD( "m29f032b.u3", 0x800000, 0x400000, CRC(caf0dc06) SHA1(8defcb5d83464068a10ba0d45be21fb03ec2155e) ) + ROM_LOAD( "m29f032b.u4", 0xc00000, 0x400000, CRC(bd623e3c) SHA1(e42743fd1dab83c3de604c347793bb6cfc69e78e) ) + + ROM_REGION( 0x0800, "eeprom", 0 ) + ROM_LOAD( "24c16_it7_0,05.u10", 0x000, 0x800, CRC(d84a3fae) SHA1(56e743a74d1934a6c6d99dc3dbbf6172c30e58a9) ) +ROM_END + +GAME( 2003, neptunp2, 0, neptunp2, neptunp2, neptunp2_state, empty_init, ROT0, "Unidesa / Cirsa", "Neptune's Pearls 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Year from legal registry date +GAME( 2004, mexlindo, 0, neptunp2, neptunp2, neptunp2_state, empty_init, ROT0, "Unidesa / Cirsa", "Mexico Lindo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Year from legal registry date +GAME( 1999, rockroll, 0, neptunp2, neptunp2, neptunp2_state, empty_init, ROT0, "Unidesa / Cirsa", "Rock 'n' Roll", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Year taken from parts' manual and sticker on PCB diff --git a/src/mame/drivers/pencil2.cpp b/src/mame/drivers/pencil2.cpp index 95ab2dfe571..c534360fa0f 100644 --- a/src/mame/drivers/pencil2.cpp +++ b/src/mame/drivers/pencil2.cpp @@ -64,6 +64,10 @@ All commands must be in uppercase, which is the default at boot. The 'capslock' is done by pressing Shift and Esc together, and the cursor will change to a checkerboard pattern. +The above key combination is not available to natural keyboard, so +press ~ instead. Natural keyboard & Paste assume this has been done, +to enable lowercase. + MEMORY MAP 0000-1FFF bios rom @@ -212,50 +216,50 @@ READ_LINE_MEMBER( pencil2_state::printer_ack_r ) static INPUT_PORTS_START( pencil2 ) PORT_START("E0") // port_custom MUST be ACTIVE_HIGH to work - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DOWN) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LEFT) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(pencil2_state, printer_ready_r) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Break") PORT_CODE(KEYCODE_END) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(pencil2_state, printer_ack_r) PORT_START("E1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j') PORT_CHAR('@') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('>') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('<') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m') + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_CHAR('@') + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("E3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) PORT_CHAR('~') // natural keyboard: press ~ to enable lowercase PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(32) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c') + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h') + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("E4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i') + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHAR('t') + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("E6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHAR('q') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHAR('w') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('e') + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR(39) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') @@ -263,22 +267,22 @@ static INPUT_PORTS_START( pencil2 ) PORT_START("E8") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') PORT_CHAR('/') + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_CHAR('/') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k') PORT_CHAR('?') + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_CHAR('?') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHAR('r') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g') + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("EA") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('u') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('y') + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("F0") @@ -287,18 +291,18 @@ static INPUT_PORTS_START( pencil2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('^') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("F2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F5) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp index 708b108a555..dcc51357c52 100644 --- a/src/mame/drivers/rx78.cpp +++ b/src/mame/drivers/rx78.cpp @@ -356,22 +356,22 @@ static INPUT_PORTS_START( rx78 ) PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') - PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Up Down Arrow") PORT_CODE(KEYCODE_PGUP) + PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Up Down Arrow") PORT_CODE(KEYCODE_PGUP) PORT_CHAR('^') PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Right Left Arrow") PORT_CODE(KEYCODE_PGDN) PORT_START("KEY6") PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) + PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) + PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) + PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) + PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("CLR / HOME") PORT_CODE(KEYCODE_HOME) PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_UNUSED ) - PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("INST / DEL") PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("INST / DEL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_START("KEY7") PORT_BIT(0x07,IP_ACTIVE_HIGH,IPT_UNUSED ) - PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("STOP") PORT_CODE(KEYCODE_END) + PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("STOP") PORT_CODE(KEYCODE_END) PORT_CHAR(0xff) PORT_CHAR(3) PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_UNUSED ) PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_UNUSED ) diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp index f0215e2b933..923ce4a9ac4 100644 --- a/src/mame/drivers/squale.cpp +++ b/src/mame/drivers/squale.cpp @@ -52,6 +52,30 @@ 3) VID_RD2 : [7..0] = I2,R2,G2,B2,I3,R3,G3,B3 (I=Intensity,R=Red,G=Green,B=Blue) 3) REG1 : [7..0] = EPROM Bank,-,Modem,K7,I,R,G,B (I=Intensity,R=Red,V=Green,B=Blue) + +LIST OF MONITOR COMMANDS (all addresses must be 4 characters) +C Load a file from tape +D Load DOS from floppy +E Load a file from tape and run it +G a Go (a = address) +M a Memory dump (a = start address) Use the arrow keys to move around. +R Reset then load DOS from floppy +S a b c Save memory to tape (a = start, b = end, c = exec) + +KEYBOARD +- When started, the Lock is engaged, so numbers appear as symbols. Hitting + Shift will unlock this and return the keyboard to normal. +- To use the natural keyboard, hit > (or some other shifted character), + then proceed as normal. +- To paste, use the emulated keyboard and hit Shift, then do the paste. +- The monitor command-line cannot handle the arrow keys or Del correctly. +- It is thought that the BASIC cartridge has better keyboard handling. + +TODO +- Cassette +- ACIA + + ****************************************************************************/ #include "emu.h" @@ -649,7 +673,7 @@ static INPUT_PORTS_START( squale ) PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // 0x0b PORT_START("X1") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) @@ -658,28 +682,28 @@ static INPUT_PORTS_START( squale ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("BackS Delete") PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(DEL)) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(DEL)) // 0x7f + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') PORT_START("X2") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ret") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_START("X3") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('-') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR(39) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR(':') PORT_CHAR('*') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('=') PORT_START("X4") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) @@ -687,8 +711,8 @@ static INPUT_PORTS_START( squale ) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('[') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(']') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_START("X5") @@ -699,7 +723,7 @@ static INPUT_PORTS_START( squale ) PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("BS") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) // 0x08 PORT_START("X6") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) @@ -709,7 +733,7 @@ static INPUT_PORTS_START( squale ) PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(TAB)) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // 0x09 PORT_START("X7") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) @@ -718,12 +742,12 @@ static INPUT_PORTS_START( squale ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LF") PORT_CODE(KEYCODE_RALT) PORT_CHAR(10) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) // 0x0a PORT_START("ay_keys") - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift Lck") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Lock") PORT_CODE(KEYCODE_LALT) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) PORT_START("ay_joy_1") @@ -837,7 +861,7 @@ void squale_state::squale(machine_config &config) WD1770(config, m_fdc, 8_MHz_XTAL); FLOPPY_CONNECTOR(config, "wd1770:0", squale_floppies, "525qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, "wd1770:1", squale_floppies, "525qd", floppy_image_device::default_floppy_formats); - SOFTWARE_LIST(config, "flop525_list").set_original("squale"); + //SOFTWARE_LIST(config, "flop525_list").set_original("squale_flop"); // list does not exist /* Cartridge slot */ GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "squale_cart").set_device_load(FUNC(squale_state::cart_load)); diff --git a/src/mame/drivers/tutor.cpp b/src/mame/drivers/tutor.cpp index 5ffa51a24d3..5261578d882 100644 --- a/src/mame/drivers/tutor.cpp +++ b/src/mame/drivers/tutor.cpp @@ -676,7 +676,7 @@ static INPUT_PORTS_START(tutor) /* Unused? */ PORT_BIT(0x03, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("o ^") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("o ^") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(186) PORT_CHAR('^') PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('_') PORT_CHAR('@') PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('[') PORT_CHAR('{') diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp index 78e89ec5052..6a4f4115112 100644 --- a/src/mame/drivers/vic20.cpp +++ b/src/mame/drivers/vic20.cpp @@ -464,7 +464,7 @@ static INPUT_PORTS_START( vic20 ) PORT_START( "ROW6" ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CHAR(UCHAR_MAMEKEY(F6)) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x91 Pi") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0x2191) PORT_CHAR(0x03C0) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x91 Pi") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0x2191,'^') PORT_CHAR(0x03C0) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U') diff --git a/src/mame/includes/bublbobl.h b/src/mame/includes/bublbobl.h index 2dfb75c3fd9..018cae9812e 100644 --- a/src/mame/includes/bublbobl.h +++ b/src/mame/includes/bublbobl.h @@ -6,6 +6,7 @@ #pragma once #include "cpu/m6805/m68705.h" +#include "cpu/mcs48/mcs48.h" #include "machine/input_merger.h" #include "machine/gen_latch.h" #include "sound/2203intf.h" @@ -187,4 +188,20 @@ protected: uint8_t m_latch; }; + +class bub8749_state : public bublbobl_state +{ +public: + bub8749_state(const machine_config &mconfig, device_type type, const char *tag) + : bublbobl_state(mconfig, type, tag) + , m_mcu(*this, "mcu") + { + } + + void bub8749(machine_config &config); + +protected: + required_device<i8749_device> m_mcu; +}; + #endif // MAME_INCLUDES_BUBLBOBL_H diff --git a/src/mame/layout/microvision.lay b/src/mame/layout/microvision.lay index 68aee4b8847..34c266c700d 100644 --- a/src/mame/layout/microvision.lay +++ b/src/mame/layout/microvision.lay @@ -37,10 +37,12 @@ license:CC0 <element ref="lcdm" blend="multiply"><bounds x="0" y="0" width="18" height="18" /></element> <element ref="lcda" blend="add"><bounds x="0" y="0" width="18" height="18" /></element> - <!-- show paddle position --> - <element ref="text_p1" blend="add"><bounds x="10.75" y="0.1" width="5" height="0.75" /></element> - <element ref="nothing" blend="add" inputtag="PADDLE" inputmask="0x00" inputraw="1"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element> <!-- block clickable input --> - <element ref="text_p2" blend="add" inputtag="PADDLE" inputmask="0xff" inputraw="1"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element> + <collection name="Paddle State"> + <!-- show live paddle position --> + <element ref="text_p1" blend="add"><bounds x="10.75" y="0.1" width="5" height="0.75" /></element> + <element ref="nothing" blend="add" inputtag="PADDLE" inputmask="0x00" inputraw="1"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element> <!-- block clickable input --> + <element ref="text_p2" blend="add" inputtag="PADDLE" inputmask="0xff" inputraw="1"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element> + </collection> </view> </mamelayout> diff --git a/src/mame/machine/kb_poisk1.h b/src/mame/machine/kb_poisk1.h index 87b9eb8f044..21e206059f0 100644 --- a/src/mame/machine/kb_poisk1.h +++ b/src/mame/machine/kb_poisk1.h @@ -18,8 +18,8 @@ INPUT_PORTS_START( poisk1_keyboard_v89 ) PORT_BIT( 0x008, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?56?") // 0x56 PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT( 0x020, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\r') - PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) - PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) + PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP),UCHAR_MAMEKEY(8_PAD)) + PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN),UCHAR_MAMEKEY(2_PAD)) /*-12*/ PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?-12 - ?") /* PORT_CODE(KEYCODE_SLASH) PORT_CHAR('?') PORT_CHAR('/') */ PORT_BIT( 0x200, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') /*-11*/ PORT_BIT( 0x400, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?-11 - %") /* PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') */ @@ -27,7 +27,7 @@ INPUT_PORTS_START( poisk1_keyboard_v89 ) PORT_START("Y2") /*-15*/ PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?-15 - !") /* PORT_CODE(KEYCODE_1) PORT_CHAR('!') PORT_CHAR('1') */ - PORT_BIT( 0x002, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) + PORT_BIT( 0x002, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT),UCHAR_MAMEKEY(4_PAD)) PORT_BIT( 0x004, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) /* ??? */ PORT_BIT( 0x008, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7)) /*-13*/ PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?-13 - ;") /* PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') */ @@ -103,7 +103,7 @@ INPUT_PORTS_START( poisk1_keyboard_v89 ) PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') PORT_BIT( 0x020, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F10") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10)) PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad +") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) - PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) + PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT),UCHAR_MAMEKEY(6_PAD)) PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x200, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8)) PORT_BIT( 0x400, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?5a?") // 0x5a @@ -132,8 +132,8 @@ INPUT_PORTS_START( poisk1_keyboard_v91 ) PORT_BIT( 0x008, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad + \xd0\x81") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) // Cyrillic Yo PORT_BIT( 0x020, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\r') - PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) - PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) + PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP),UCHAR_MAMEKEY(8_PAD)) + PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN),UCHAR_MAMEKEY(2_PAD)) PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') PORT_BIT( 0x200, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_BIT( 0x400, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') @@ -141,7 +141,7 @@ INPUT_PORTS_START( poisk1_keyboard_v91 ) PORT_START("Y2") PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') - PORT_BIT( 0x002, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) + PORT_BIT( 0x002, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT),UCHAR_MAMEKEY(4_PAD)) PORT_BIT( 0x004, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_BIT( 0x008, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') @@ -217,7 +217,7 @@ INPUT_PORTS_START( poisk1_keyboard_v91 ) PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad - \xd0\x84") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) // Cyrillic Ukrainian Ie PORT_BIT( 0x020, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9)) PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SCRLOCK) PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK)) - PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) + PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT),UCHAR_MAMEKEY(6_PAD)) PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x200, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7)) PORT_BIT( 0x400, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') diff --git a/src/mame/machine/octo_kbd.cpp b/src/mame/machine/octo_kbd.cpp index 8398078dad9..3129cdc5d61 100644 --- a/src/mame/machine/octo_kbd.cpp +++ b/src/mame/machine/octo_kbd.cpp @@ -82,7 +82,7 @@ static INPUT_PORTS_START( octopus_keyboard ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F23") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F26") PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT) // 0x20 PORT_START("LINE4") @@ -108,7 +108,7 @@ static INPUT_PORTS_START( octopus_keyboard ) // 0x30 PORT_START("LINE6") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("@ \\") PORT_CHAR('@') PORT_CHAR('\\') + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("@ \\") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_CHAR('`') // keytop shows backslash but it produces tic PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F12") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) @@ -172,7 +172,7 @@ static INPUT_PORTS_START( octopus_keyboard ) PORT_START("LINEC") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Del") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("_") PORT_CHAR('_') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F14") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Numpad .") PORT_CODE(KEYCODE_DEL_PAD) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Numpad 3") PORT_CODE(KEYCODE_3_PAD) @@ -182,7 +182,7 @@ static INPUT_PORTS_START( octopus_keyboard ) PORT_START("LINED") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 \xE2\x82\xA4") PORT_CODE(KEYCODE_3) PORT_CHAR('3') + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 \xE2\x82\xA4") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR(0xA3) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F21") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4924eccd9f1..c2562d8765c 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9481,6 +9481,7 @@ bbredux // bootleg / hack boblbobl // bootleg boblcave // hack bub68705 // bootleg +bub8749 // bootleg bublboblp // Prototype (c) 1986 Taito Corporation bublbobl // A78 (c) 1986 Taito Corporation bublbobl1 // A78 (c) 1986 Taito Corporation @@ -9517,6 +9518,9 @@ busicom // @source:buster.cpp buster // (c) 1987 Marian Electronics Ltd. +@source:bvm.cpp +bvm20f1e // + @source:bw12.cpp bw12 // bw14 // @@ -11233,12 +11237,14 @@ cps3booto2 // bootleg cps3bs32 // cps3bs32a // jojo // 28/01/1999 (c) 1998 (Euro) -jojoba // 27/09/1999 (c) 1999 (Japan) +jojoba // 27/09/1999 (c) 1999 (Euro) +jojobaj // 27/09/1999 (c) 1999 (Japan) +jojobajr1 // 13/09/1999 (c) 1999 (Japan) jojoban // 27/09/1999 (c) 1999 (Japan) jojobane // 27/09/1999 (c) 1999 (Euro) jojobaner1 // 13/09/1999 (c) 1999 (Euro) jojobanr1 // 13/09/1999 (c) 1999 (Japan) -jojobar1 // 13/09/1999 (c) 1999 (Japan) +jojobar1 // 13/09/1999 (c) 1999 (Euro) jojoj // 28/01/1999 (c) 1998 (Japan) jojojr1 // 08/01/1999 (c) 1998 (Japan) jojojr2 // 02/12/1998 (c) 1998 (Japan) @@ -11878,6 +11884,7 @@ debutm @source:dec0.cpp automat // bootleg baddudes // EI (c) 1988 Data East USA (US) +bandit // (c) 1989 Data East USA (US) birdtry // EK (c) 1988 Data East Corporation (Japan) birdtrya // EK (c) 1988 Data East Corporation (Japan) bouldash // (c) 1990 Data East Corporation (World) @@ -11892,8 +11899,8 @@ ffantasyb // EX (c) 1989 Data East Corporation (World) ffantasybl // bootleg hbarrel // EC (c) 1987 Data East Corporation (World) hbarrelu // (c) 1987 Data East USA (US) -bandit // (c) 1989 Data East USA (US) hippodrm // EW (c) 1989 Data East USA (US) +mastbond // bootleg midres // (c) 1989 Data East Corporation (World) midresb // bootleg midresbj // bootleg @@ -13686,6 +13693,7 @@ superbug // 009115-009467 1977/09 [6800] bbprot // unfinished prototype fitfight // bootleg of Art of Fighting histryma // bootleg of Fighter's History +histryma2 // bootleg of Fighter's History hotmindff // (c) Playmark @source:fk1.cpp @@ -14015,7 +14023,8 @@ wrally2a // (c) 1995 - Ref 950510 footbpow // (c) 1999 - Ref 000208 radikalb // (c) 1998 - Ref ??? radikalba // (c) 1998 - Ref ??? -speedup // (c) 1996 - Ref ??? +speedup // (c) 1996 - Ref 961022 (main) + 961029 (ROMs) +speedup12 // (c) 1996 - Ref ??? speedup10 // (c) 1996 - Ref ??? surfplnt // (c) 1997 - Ref 971223 surfplnt40 // (c) 1997 - Ref 970514 @@ -18990,6 +18999,7 @@ mariorou @source:konmedal68k.cpp dobouchn kattobas +konslot koropens kzaurus pwrchanc @@ -19509,6 +19519,7 @@ lkage // A54 (c) 1984 Taito Corporation lkageb // bootleg lkageb2 // bootleg lkageb3 // bootleg +lkageb4 // bootleg lkageo // A54 (c) 1984 Taito Corporation lkageoo // A54 (c) 1984 Taito Corporation @@ -22999,6 +23010,7 @@ gwinner // (c) 1983 Reben luckyplr // (c) 1981 Cirsa minisupf // (c) 1981 Cirsa msbamby // (c) 198? Automatics Pasqual +unkslot // (c) 198? MGA or Costa Net? @source:missile.cpp mcombat // bootleg @@ -31232,6 +31244,7 @@ motoxgov2a // November 1997 motoxgov2a2 // November 1997 panicprk // May 1998 panicprkj // May 1998 +panicprkj2 // May 1998 raceon // Race On - September 1998 rapidrvr // December 1997 rapidrvrp // December 1997 (prototype) @@ -32097,6 +32110,7 @@ npssr2 // npusagif // @source:neptunp2.cpp +mexlindo // neptunp2 // rockroll // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 5bc0b7d10c1..8ab3ca34c44 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -128,6 +128,7 @@ br8641.cpp braiplus.cpp bullet.cpp busicom.cpp +bvm.cpp bw12.cpp bw2.cpp c10.cpp diff --git a/src/osd/windows/window.cpp b/src/osd/windows/window.cpp index ac4349cf36b..6f8dc3671c9 100644 --- a/src/osd/windows/window.cpp +++ b/src/osd/windows/window.cpp @@ -1763,6 +1763,26 @@ void win_window_info::adjust_window_position_after_major_change() // constrain the existing size to the aspect ratio if (video_config.keepaspect) newrect = constrain_to_aspect_ratio(newrect, WMSZ_BOTTOMRIGHT); + + // restrict the window to one monitor and avoid toolbars if possible + HMONITOR const nearest_monitor = MonitorFromWindow(platform_window(), MONITOR_DEFAULTTONEAREST); + if (NULL != nearest_monitor) + { + MONITORINFO info; + std::memset(&info, 0, sizeof(info)); + info.cbSize = sizeof(info); + if (GetMonitorInfo(nearest_monitor, &info)) + { + if (newrect.right() > info.rcWork.right) + newrect = newrect.move_by(info.rcWork.right - newrect.right(), 0); + if (newrect.bottom() > info.rcWork.bottom) + newrect = newrect.move_by(0, info.rcWork.bottom - newrect.bottom()); + if (newrect.left() < info.rcWork.left) + newrect = newrect.move_by(info.rcWork.left - newrect.left(), 0); + if (newrect.top() < info.rcWork.top) + newrect = newrect.move_by(0, info.rcWork.top - newrect.top()); + } + } } else { @@ -1771,26 +1791,6 @@ void win_window_info::adjust_window_position_after_major_change() newrect = monitor->position_size(); } - // restrict the window to one monitor and avoid toolbars if possible - HMONITOR const nearest_monitor = MonitorFromWindow(platform_window(), MONITOR_DEFAULTTONEAREST); - if (NULL != nearest_monitor) - { - MONITORINFO info; - std::memset(&info, 0, sizeof(info)); - info.cbSize = sizeof(info); - if (GetMonitorInfo(nearest_monitor, &info)) - { - if (newrect.right() > info.rcWork.right) - newrect = newrect.move_by(info.rcWork.right - newrect.right(), 0); - if (newrect.bottom() > info.rcWork.bottom) - newrect = newrect.move_by(0, info.rcWork.bottom - newrect.bottom()); - if (newrect.left() < info.rcWork.left) - newrect = newrect.move_by(info.rcWork.left - newrect.left(), 0); - if (newrect.top() < info.rcWork.top) - newrect = newrect.move_by(0, info.rcWork.top - newrect.top()); - } - } - // adjust the position if different if (RECT_to_osd_rect(oldrect) != newrect) SetWindowPos(platform_window(), fullscreen() ? HWND_TOPMOST : HWND_TOP, |