diff options
-rw-r--r-- | language/Chinese_Simplified/strings.po | 78 | ||||
-rw-r--r-- | language/Chinese_Traditional/strings.po | 74 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/ctrl.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/irrmaze.cpp | 14 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/irrmaze.h | 3 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/joystick.cpp | 27 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/joystick.h | 10 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/kizuna4p.cpp | 63 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/kizuna4p.h | 16 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/mahjong.cpp | 19 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/mahjong.h | 5 | ||||
-rw-r--r-- | src/mame/drivers/dkong.cpp | 27 | ||||
-rw-r--r-- | src/mame/drivers/duet16.cpp | 66 | ||||
-rw-r--r-- | src/mame/drivers/fmtowns.cpp | 29 | ||||
-rw-r--r-- | src/mame/drivers/grchamp.cpp | 101 | ||||
-rw-r--r-- | src/mame/drivers/neogeo.cpp | 85 | ||||
-rw-r--r-- | src/mame/includes/neogeo.h | 3 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 |
18 files changed, 397 insertions, 228 deletions
diff --git a/language/Chinese_Simplified/strings.po b/language/Chinese_Simplified/strings.po index 8c926ab63e6..76044cebd42 100644 --- a/language/Chinese_Simplified/strings.po +++ b/language/Chinese_Simplified/strings.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: MAME\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-04-28 15:32+1000\n" -"PO-Revision-Date: 2018-03-25 00:47+0800\n" +"PO-Revision-Date: 2018-04-28 19:01+0800\n" "Last-Translator: YuiFAN\n" "Language-Team: MAME Language Team\n" "Language: zh_CN\n" @@ -693,7 +693,7 @@ msgstr "切换项目顺序" #: src/frontend/mame/ui/swlist.cpp:259 #, c-format msgid "Switched Order: entries now ordered by %s" -msgstr "切换顺序:目前项目依照 %s 排序" +msgstr "切换顺序:当前项目依照 %s 排序" #: src/frontend/mame/ui/swlist.cpp:259 msgid "shortname" @@ -2474,6 +2474,12 @@ msgid "" "\n" "The selected option enables the following items:\n" msgstr "" +"[ 此选项当前已挂载於运行中的系统 ]\n" +"\n" +"选项: %1$s\n" +"装置: %1$s\n" +"\n" +"已选用的选项启用下列项目:\n" #: src/frontend/mame/ui/devopt.cpp:40 #, c-format @@ -2485,59 +2491,65 @@ msgid "" "\n" "If you select this option, the following items will be enabled:\n" msgstr "" +"[ 此选项当前「尚未」挂载於运行中的系统 ]\n" +"\n" +"选项: %1$s\n" +"装置: %1$s\n" +"\n" +"如选用此选项,下列项目將启用:\n" #: src/frontend/mame/ui/devopt.cpp:48 msgid "* CPU:\n" -msgstr "" +msgstr "* CPU:\n" #: src/frontend/mame/ui/devopt.cpp:72 src/frontend/mame/ui/devopt.cpp:133 #, c-format msgid " %1$d×%2$s %3$d.%4$06d MHz\n" -msgstr "" +msgstr " %1$d×%2$s %3$d.%4$06d MHz\n" #: src/frontend/mame/ui/devopt.cpp:72 src/frontend/mame/ui/devopt.cpp:133 msgid " %1$d×%2$s %5$d.%6$03d kHz\n" -msgstr "" +msgstr " %1$d×%2$s %5$d.%6$03d kHz\n" #: src/frontend/mame/ui/devopt.cpp:73 src/frontend/mame/ui/devopt.cpp:134 msgid " %2$s %3$d.%4$06d MHz\n" -msgstr "" +msgstr " %2$s %3$d.%4$06d MHz\n" #: src/frontend/mame/ui/devopt.cpp:73 src/frontend/mame/ui/devopt.cpp:134 msgid " %2$s %5$d.%6$03d kHz\n" -msgstr "" +msgstr " %2$s %5$d.%6$03d kHz\n" #: src/frontend/mame/ui/devopt.cpp:85 msgid "* Video:\n" -msgstr "" +msgstr "* 視訊:\n" #: src/frontend/mame/ui/devopt.cpp:90 #, c-format msgid " Screen '%1$s': Vector\n" -msgstr "" +msgstr " 画面 '%1$s': 向量\n" #: src/frontend/mame/ui/devopt.cpp:99 #, c-format msgid " Screen '%1$s': %2$d × %3$d (V) %4$f Hz\n" -msgstr "" +msgstr " 画面 '%1$s': %2$d × %3$d (V) %4$f Hz\n" #: src/frontend/mame/ui/devopt.cpp:100 #, c-format msgid " Screen '%1$s': %2$d × %3$d (H) %4$f Hz\n" -msgstr "" +msgstr " 画面 '%1$s': %2$d × %3$d (H) %4$f Hz\n" #: src/frontend/mame/ui/devopt.cpp:113 msgid "* Sound:\n" -msgstr "" +msgstr "* 声音:\n" #: src/frontend/mame/ui/devopt.cpp:133 #, c-format msgid " %1$d×%2$s\n" -msgstr "" +msgstr " %1$d×%2$s\n" #: src/frontend/mame/ui/devopt.cpp:134 msgid " %2$s\n" -msgstr "" +msgstr " %2$s\n" #: src/frontend/mame/ui/devopt.cpp:164 #, c-format @@ -2545,90 +2557,92 @@ msgid "" "* BIOS settings:\n" " %1$d options [default: %2$s]\n" msgstr "" +"* BIOS 设定:\n" +" %1$d 选项 [缺省: %2$s]\n" #: src/frontend/mame/ui/devopt.cpp:204 src/frontend/mame/ui/devopt.cpp:220 #: src/frontend/mame/ui/devopt.cpp:265 #, c-format msgid " %1$s [default: %2$s]\n" -msgstr "" +msgstr " %1$s [缺省: %2$s]\n" #: src/frontend/mame/ui/devopt.cpp:209 src/frontend/mame/ui/devopt.cpp:225 #, c-format msgid " %1$s\n" -msgstr "" +msgstr " %1$s\n" #: src/frontend/mame/ui/devopt.cpp:230 msgid "* DIP switch settings:\n" -msgstr "" +msgstr "* 指拨开关设定:\n" #: src/frontend/mame/ui/devopt.cpp:232 msgid "* Configuration settings:\n" -msgstr "" +msgstr "* 配置设定:\n" #: src/frontend/mame/ui/devopt.cpp:234 msgid "* Input device(s):\n" -msgstr "" +msgstr "* 输入装置:" #: src/frontend/mame/ui/devopt.cpp:236 #, c-format msgid " User inputs [%1$d inputs]\n" -msgstr "" +msgstr " 使用者输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:238 #, c-format msgid " Mahjong inputs [%1$d inputs]\n" -msgstr "" +msgstr " 麻将输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:240 #, c-format msgid " Hanafuda inputs [%1$d inputs]\n" -msgstr "" +msgstr " 花牌输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:242 #, c-format msgid " Gambling inputs [%1$d inputs]\n" -msgstr "" +msgstr " 博奕输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:244 #, c-format msgid " Analog inputs [%1$d inputs]\n" -msgstr "" +msgstr " 类比输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:246 #, c-format msgid " Adjuster inputs [%1$d inputs]\n" -msgstr "" +msgstr " 调节器输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:248 #, c-format msgid " Keypad inputs [%1$d inputs]\n" -msgstr "" +msgstr " 数字键盘输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:250 #, c-format msgid " Keyboard inputs [%1$d inputs]\n" -msgstr "" +msgstr " 键盘输入 [%1$d 输入]\n" #: src/frontend/mame/ui/devopt.cpp:255 msgid "* Media Options:\n" -msgstr "" +msgstr "* 媒体选项:\n" #: src/frontend/mame/ui/devopt.cpp:257 #, c-format msgid " %1$s [tag: %2$s]\n" -msgstr "" +msgstr " %1$s [標籤: %2$s]\n" #: src/frontend/mame/ui/devopt.cpp:263 msgid "* Slot Options:\n" -msgstr "" +msgstr "* 插槽选项:\n" #: src/frontend/mame/ui/devopt.cpp:270 msgid "[None]\n" -msgstr "" +msgstr "[無]\n" #: plugins/timer/init.lua:94 msgid "Current time" -msgstr "目前时数" +msgstr "当前时数" #: plugins/timer/init.lua:96 msgid "Total time" diff --git a/language/Chinese_Traditional/strings.po b/language/Chinese_Traditional/strings.po index 42e50f054c1..35407157e40 100644 --- a/language/Chinese_Traditional/strings.po +++ b/language/Chinese_Traditional/strings.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: MAME\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-04-28 15:32+1000\n" -"PO-Revision-Date: 2018-03-25 00:48+0800\n" +"PO-Revision-Date: 2018-04-28 18:50+0800\n" "Last-Translator: YuiFAN\n" "Language-Team: MAME Language Team\n" "Language: zh_TW\n" @@ -2474,6 +2474,12 @@ msgid "" "\n" "The selected option enables the following items:\n" msgstr "" +"[ 此選項目前已掛載於執行中的系統 ]\n" +"\n" +"選項: %1$s\n" +"裝置: %1$s\n" +"\n" +"已選用的選項啟用下列項目:\n" #: src/frontend/mame/ui/devopt.cpp:40 #, c-format @@ -2485,59 +2491,65 @@ msgid "" "\n" "If you select this option, the following items will be enabled:\n" msgstr "" +"[ 此選項目前「尚未」掛載於執行中的系統 ]\n" +"\n" +"選項: %1$s\n" +"裝置: %1$s\n" +"\n" +"如選用此選項,下列項目將啟用:\n" #: src/frontend/mame/ui/devopt.cpp:48 msgid "* CPU:\n" -msgstr "" +msgstr "* CPU:\n" #: src/frontend/mame/ui/devopt.cpp:72 src/frontend/mame/ui/devopt.cpp:133 #, c-format msgid " %1$d×%2$s %3$d.%4$06d MHz\n" -msgstr "" +msgstr " %1$d×%2$s %3$d.%4$06d MHz\n" #: src/frontend/mame/ui/devopt.cpp:72 src/frontend/mame/ui/devopt.cpp:133 msgid " %1$d×%2$s %5$d.%6$03d kHz\n" -msgstr "" +msgstr " %1$d×%2$s %5$d.%6$03d kHz\n" #: src/frontend/mame/ui/devopt.cpp:73 src/frontend/mame/ui/devopt.cpp:134 msgid " %2$s %3$d.%4$06d MHz\n" -msgstr "" +msgstr " %2$s %3$d.%4$06d MHz\n" #: src/frontend/mame/ui/devopt.cpp:73 src/frontend/mame/ui/devopt.cpp:134 msgid " %2$s %5$d.%6$03d kHz\n" -msgstr "" +msgstr " %2$s %5$d.%6$03d kHz\n" #: src/frontend/mame/ui/devopt.cpp:85 msgid "* Video:\n" -msgstr "" +msgstr "* 視訊:\n" #: src/frontend/mame/ui/devopt.cpp:90 #, c-format msgid " Screen '%1$s': Vector\n" -msgstr "" +msgstr " 畫面 '%1$s': 向量\n" #: src/frontend/mame/ui/devopt.cpp:99 #, c-format msgid " Screen '%1$s': %2$d × %3$d (V) %4$f Hz\n" -msgstr "" +msgstr " 畫面 '%1$s': %2$d × %3$d (V) %4$f Hz\n" #: src/frontend/mame/ui/devopt.cpp:100 #, c-format msgid " Screen '%1$s': %2$d × %3$d (H) %4$f Hz\n" -msgstr "" +msgstr " 畫面 '%1$s': %2$d × %3$d (H) %4$f Hz\n" #: src/frontend/mame/ui/devopt.cpp:113 msgid "* Sound:\n" -msgstr "" +msgstr "* 聲音:\n" #: src/frontend/mame/ui/devopt.cpp:133 #, c-format msgid " %1$d×%2$s\n" -msgstr "" +msgstr " %1$d×%2$s\n" #: src/frontend/mame/ui/devopt.cpp:134 msgid " %2$s\n" -msgstr "" +msgstr " %2$s\n" #: src/frontend/mame/ui/devopt.cpp:164 #, c-format @@ -2545,86 +2557,88 @@ msgid "" "* BIOS settings:\n" " %1$d options [default: %2$s]\n" msgstr "" +"* BIOS 設定:\n" +" %1$d 選項 [預設值: %2$s]\n" #: src/frontend/mame/ui/devopt.cpp:204 src/frontend/mame/ui/devopt.cpp:220 #: src/frontend/mame/ui/devopt.cpp:265 #, c-format msgid " %1$s [default: %2$s]\n" -msgstr "" +msgstr " %1$s [預設值: %2$s]\n" #: src/frontend/mame/ui/devopt.cpp:209 src/frontend/mame/ui/devopt.cpp:225 #, c-format msgid " %1$s\n" -msgstr "" +msgstr " %1$s\n" #: src/frontend/mame/ui/devopt.cpp:230 msgid "* DIP switch settings:\n" -msgstr "" +msgstr "* 指撥開關設定:\n" #: src/frontend/mame/ui/devopt.cpp:232 msgid "* Configuration settings:\n" -msgstr "" +msgstr "* 配置設定:\n" #: src/frontend/mame/ui/devopt.cpp:234 msgid "* Input device(s):\n" -msgstr "" +msgstr "* 輸入裝置:" #: src/frontend/mame/ui/devopt.cpp:236 #, c-format msgid " User inputs [%1$d inputs]\n" -msgstr "" +msgstr " 使用者輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:238 #, c-format msgid " Mahjong inputs [%1$d inputs]\n" -msgstr "" +msgstr " 麻將輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:240 #, c-format msgid " Hanafuda inputs [%1$d inputs]\n" -msgstr "" +msgstr " 花牌輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:242 #, c-format msgid " Gambling inputs [%1$d inputs]\n" -msgstr "" +msgstr " 博奕輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:244 #, c-format msgid " Analog inputs [%1$d inputs]\n" -msgstr "" +msgstr " 類比輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:246 #, c-format msgid " Adjuster inputs [%1$d inputs]\n" -msgstr "" +msgstr " 調節器輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:248 #, c-format msgid " Keypad inputs [%1$d inputs]\n" -msgstr "" +msgstr " 數字鍵盤輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:250 #, c-format msgid " Keyboard inputs [%1$d inputs]\n" -msgstr "" +msgstr " 鍵盤輸入 [%1$d 輸入]\n" #: src/frontend/mame/ui/devopt.cpp:255 msgid "* Media Options:\n" -msgstr "" +msgstr "* 媒體選項:\n" #: src/frontend/mame/ui/devopt.cpp:257 #, c-format msgid " %1$s [tag: %2$s]\n" -msgstr "" +msgstr " %1$s [標籤: %2$s]\n" #: src/frontend/mame/ui/devopt.cpp:263 msgid "* Slot Options:\n" -msgstr "" +msgstr "* 插槽選項:\n" #: src/frontend/mame/ui/devopt.cpp:270 msgid "[None]\n" -msgstr "" +msgstr "[無]\n" #: plugins/timer/init.lua:94 msgid "Current time" diff --git a/src/devices/bus/neogeo_ctrl/ctrl.cpp b/src/devices/bus/neogeo_ctrl/ctrl.cpp index 1f36549fe17..745bcc58cf6 100644 --- a/src/devices/bus/neogeo_ctrl/ctrl.cpp +++ b/src/devices/bus/neogeo_ctrl/ctrl.cpp @@ -206,5 +206,5 @@ SLOT_INTERFACE_START( neogeo_arc_edge_fixed ) SLOT_INTERFACE_END SLOT_INTERFACE_START( neogeo_arc_pin15 ) - SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL) + SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL_AC) SLOT_INTERFACE_END diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.cpp b/src/devices/bus/neogeo_ctrl/irrmaze.cpp index 49379d02c47..d6020244ca7 100644 --- a/src/devices/bus/neogeo_ctrl/irrmaze.cpp +++ b/src/devices/bus/neogeo_ctrl/irrmaze.cpp @@ -25,6 +25,10 @@ static INPUT_PORTS_START( neogeo_irrmaze ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_START("START") + PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) + PORT_START("TRACK_X") PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE @@ -47,6 +51,7 @@ neogeo_irrmaze_device::neogeo_irrmaze_device(const machine_config &mconfig, cons m_tx(*this, "TRACK_X"), m_ty(*this, "TRACK_Y"), m_buttons(*this, "BUTTONS"), + m_ss(*this, "START"), m_spi_outputs(*this, "sit%u", 0U), m_spi_sr(0U), m_ctrl_sel(0U) @@ -102,6 +107,15 @@ READ8_MEMBER(neogeo_irrmaze_device::in1_r) } //------------------------------------------------- +// read_start_sel +//------------------------------------------------- + +uint8_t neogeo_irrmaze_device::read_start_sel() +{ + return m_ss->read(); +} + +//------------------------------------------------- // write_ctrlsel //------------------------------------------------- diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.h b/src/devices/bus/neogeo_ctrl/irrmaze.h index 4980a488098..bc00b4eeb2e 100644 --- a/src/devices/bus/neogeo_ctrl/irrmaze.h +++ b/src/devices/bus/neogeo_ctrl/irrmaze.h @@ -33,12 +33,14 @@ protected: // device_neogeo_control_port_interface overrides virtual DECLARE_READ8_MEMBER( in0_r ) override; virtual DECLARE_READ8_MEMBER( in1_r ) override; + virtual uint8_t read_start_sel() override; virtual void write_ctrlsel(uint8_t data) override; private: required_ioport m_tx; required_ioport m_ty; required_ioport m_buttons; + required_ioport m_ss; output_finder<16> m_spi_outputs; uint16_t m_spi_sr; uint8_t m_ctrl_sel; @@ -48,5 +50,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(NEOGEO_IRRMAZE, neogeo_irrmaze_device) - #endif // MAME_BUS_NEOGEO_CTRL_IRRMAZE_H diff --git a/src/devices/bus/neogeo_ctrl/joystick.cpp b/src/devices/bus/neogeo_ctrl/joystick.cpp index 83c0513be95..045e593895c 100644 --- a/src/devices/bus/neogeo_ctrl/joystick.cpp +++ b/src/devices/bus/neogeo_ctrl/joystick.cpp @@ -144,6 +144,11 @@ static INPUT_PORTS_START( neogeo_joy_ac ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) + + PORT_START("START") + PORT_BIT( 0xfa, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) INPUT_PORTS_END @@ -167,8 +172,8 @@ ioport_constructor neogeo_joy_ac_device::device_input_ports() const neogeo_joy_ac_device::neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, NEOGEO_JOY_AC, tag, owner, clock), device_neogeo_ctrl_edge_interface(mconfig, *this), - m_joy1(*this, "JOY1"), - m_joy2(*this, "JOY2") + m_joy(*this, "JOY%u", 1U), + m_ss(*this, "START") { } @@ -182,28 +187,28 @@ void neogeo_joy_ac_device::device_start() //------------------------------------------------- -// device_reset - device-specific reset +// in0_r //------------------------------------------------- -void neogeo_joy_ac_device::device_reset() +READ8_MEMBER(neogeo_joy_ac_device::in0_r) { + return m_joy[0]->read(); } - //------------------------------------------------- -// in0_r +// in1_r //------------------------------------------------- -READ8_MEMBER(neogeo_joy_ac_device::in0_r) +READ8_MEMBER(neogeo_joy_ac_device::in1_r) { - return m_joy1->read(); + return m_joy[1]->read(); } //------------------------------------------------- -// in1_r +// read_start_sel //------------------------------------------------- -READ8_MEMBER(neogeo_joy_ac_device::in1_r) +uint8_t neogeo_joy_ac_device::read_start_sel() { - return m_joy2->read(); + return m_ss->read(); } diff --git a/src/devices/bus/neogeo_ctrl/joystick.h b/src/devices/bus/neogeo_ctrl/joystick.h index 605ea8d8d90..bf07ec90b9b 100644 --- a/src/devices/bus/neogeo_ctrl/joystick.h +++ b/src/devices/bus/neogeo_ctrl/joystick.h @@ -50,21 +50,19 @@ public: // construction/destruction neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - protected: // device-level overrides + virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; - virtual void device_reset() override; // device_neogeo_ctrl_edge_interface overrides virtual DECLARE_READ8_MEMBER( in0_r ) override; virtual DECLARE_READ8_MEMBER( in1_r ) override; + virtual uint8_t read_start_sel() override; private: - required_ioport m_joy1; - required_ioport m_joy2; + required_ioport_array<2> m_joy; + required_ioport m_ss; }; diff --git a/src/devices/bus/neogeo_ctrl/kizuna4p.cpp b/src/devices/bus/neogeo_ctrl/kizuna4p.cpp index 0c0420b6f3a..4ef3e3d78fe 100644 --- a/src/devices/bus/neogeo_ctrl/kizuna4p.cpp +++ b/src/devices/bus/neogeo_ctrl/kizuna4p.cpp @@ -4,6 +4,14 @@ SNK Neo Geo Kizuna 4Players Controller emulation + The NEO-FTC1B board is a JAMMA splitter, including input + multiplexing, video buffering, and audio amplification. It + requires an MV-1B or MV-1C system for the output header. + There are unpopulated locations for four 15-pin D connectors, + so it could theoretically be used with AES joysticks. It + won't work with mahjong panels because the outputs aren't + demultiplexed. + **********************************************************************/ #include "emu.h" @@ -13,7 +21,7 @@ // DEVICE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(NEOGEO_KIZ4P, neogeo_kizuna4p_device, "neogeo_kiz4p", "SNK Neo Geo Kizuna 4P Controller") +DEFINE_DEVICE_TYPE(NEOGEO_KIZ4P, neogeo_kizuna4p_device, "neogeo_kiz4p", "SNK NEO-FTC1B JAMMA Splitter") static INPUT_PORTS_START( neogeo_kiz4p ) @@ -57,13 +65,15 @@ static INPUT_PORTS_START( neogeo_kiz4p ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) - PORT_START("START13") + PORT_START("START1") + PORT_BIT( 0xfa, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START3 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_START("START24") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 ) + PORT_START("START2") + PORT_BIT( 0xfa, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START4 ) INPUT_PORTS_END @@ -88,12 +98,8 @@ ioport_constructor neogeo_kizuna4p_device::device_input_ports() const neogeo_kizuna4p_device::neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, NEOGEO_KIZ4P, tag, owner, clock), device_neogeo_ctrl_edge_interface(mconfig, *this), - m_joy1(*this, "JOY1"), - m_joy2(*this, "JOY2"), - m_joy3(*this, "JOY3"), - m_joy4(*this, "JOY4"), - m_ss1(*this, "START13"), - m_ss2(*this, "START24") + m_joy(*this, "JOY%u", 1U), + m_ss(*this, "START%u", 1U) { } @@ -104,17 +110,8 @@ neogeo_kizuna4p_device::neogeo_kizuna4p_device(const machine_config &mconfig, co void neogeo_kizuna4p_device::device_start() { - save_item(NAME(m_ctrl_sel)); -} - - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void neogeo_kizuna4p_device::device_reset() -{ m_ctrl_sel = 0; + save_item(NAME(m_ctrl_sel)); } @@ -124,15 +121,7 @@ void neogeo_kizuna4p_device::device_reset() READ8_MEMBER(neogeo_kizuna4p_device::in0_r) { - uint8_t res = 0; - if (m_ctrl_sel & 0x01) - res = m_joy3->read(); - else - res = m_joy1->read(); - - if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10); - - return res; + return m_joy[BIT(m_ctrl_sel, 0) << 1]->read() & ~(BIT(m_ctrl_sel, 2) << (BIT(m_ctrl_sel, 0) | 4)); } //------------------------------------------------- @@ -141,15 +130,7 @@ READ8_MEMBER(neogeo_kizuna4p_device::in0_r) READ8_MEMBER(neogeo_kizuna4p_device::in1_r) { - uint8_t res = 0; - if (m_ctrl_sel & 0x01) - res = m_joy4->read(); - else - res = m_joy2->read(); - - if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10); - - return res; + return m_joy[(BIT(m_ctrl_sel, 0) << 1) | 1]->read() & ~(BIT(m_ctrl_sel, 2) << (BIT(m_ctrl_sel, 0) | 4)); } //------------------------------------------------- @@ -158,7 +139,7 @@ READ8_MEMBER(neogeo_kizuna4p_device::in1_r) uint8_t neogeo_kizuna4p_device::read_start_sel() { - return (BIT(m_ss1->read(), m_ctrl_sel & 0x01)) | (BIT(m_ss2->read(), m_ctrl_sel & 0x01) << 2); + return m_ss[BIT(m_ctrl_sel, 0)]->read(); } diff --git a/src/devices/bus/neogeo_ctrl/kizuna4p.h b/src/devices/bus/neogeo_ctrl/kizuna4p.h index 6f7fd6fcbb9..c48f0078a81 100644 --- a/src/devices/bus/neogeo_ctrl/kizuna4p.h +++ b/src/devices/bus/neogeo_ctrl/kizuna4p.h @@ -20,20 +20,16 @@ // ======================> neogeo_kizuna4p_device -class neogeo_kizuna4p_device : public device_t, - public device_neogeo_ctrl_edge_interface +class neogeo_kizuna4p_device : public device_t, public device_neogeo_ctrl_edge_interface { public: // construction/destruction neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - protected: // device-level overrides + virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; - virtual void device_reset() override; // device_neogeo_control_port_interface overrides virtual DECLARE_READ8_MEMBER( in0_r ) override; @@ -42,12 +38,8 @@ protected: virtual void write_ctrlsel(uint8_t data) override; private: - required_ioport m_joy1; - required_ioport m_joy2; - required_ioport m_joy3; - required_ioport m_joy4; - required_ioport m_ss1; - required_ioport m_ss2; + required_ioport_array<4> m_joy; + required_ioport_array<2> m_ss; uint8_t m_ctrl_sel; }; diff --git a/src/devices/bus/neogeo_ctrl/mahjong.cpp b/src/devices/bus/neogeo_ctrl/mahjong.cpp index 7bb111f4779..1ac8d1e2d20 100644 --- a/src/devices/bus/neogeo_ctrl/mahjong.cpp +++ b/src/devices/bus/neogeo_ctrl/mahjong.cpp @@ -46,16 +46,18 @@ static INPUT_PORTS_START( neogeo_mj_ac ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("START_SELECT") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START ) + PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( neogeo_mj ) PORT_INCLUDE( neogeo_mj_ac ) - PORT_START("START_SELECT") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START ) + PORT_MODIFY("START_SELECT") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SELECT ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -87,6 +89,7 @@ neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, : device_t(mconfig, type, tag, owner, clock) , device_neogeo_control_port_interface(mconfig, *this) , m_ctrl_sel(0x00) + , m_ss(*this, "START_SELECT") , m_mjpanel(*this, "MJ.%u", 0) { } @@ -98,7 +101,6 @@ neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, neogeo_mjctrl_device::neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL, tag, owner, clock) - , m_ss(*this, "START_SELECT") { } @@ -132,6 +134,15 @@ uint8_t neogeo_mjctrl_ac_device::read_ctrl() } //------------------------------------------------- +// read_start_sel +//------------------------------------------------- + +uint8_t neogeo_mjctrl_ac_device::read_start_sel() +{ + return m_ss->read(); +} + +//------------------------------------------------- // write_ctrlsel //------------------------------------------------- diff --git a/src/devices/bus/neogeo_ctrl/mahjong.h b/src/devices/bus/neogeo_ctrl/mahjong.h index d8f1c0ca41a..d4fd1646ece 100644 --- a/src/devices/bus/neogeo_ctrl/mahjong.h +++ b/src/devices/bus/neogeo_ctrl/mahjong.h @@ -30,6 +30,7 @@ protected: // device-level overrides virtual ioport_constructor device_input_ports() const override; + virtual uint8_t read_start_sel() override; virtual void device_start() override; // device_neogeo_control_port_interface overrides @@ -37,6 +38,7 @@ protected: virtual void write_ctrlsel(uint8_t data) override; uint8_t m_ctrl_sel; + required_ioport m_ss; private: required_ioport_array<3> m_mjpanel; @@ -56,9 +58,6 @@ protected: // device_neogeo_control_port_interface overrides virtual uint8_t read_start_sel() override; - -private: - required_ioport m_ss; }; diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp index 7a3fb34c4e1..b5d8ddb2392 100644 --- a/src/mame/drivers/dkong.cpp +++ b/src/mame/drivers/dkong.cpp @@ -2439,6 +2439,32 @@ ROM_START( dkongjr ) ROM_LOAD( "djr1-v-2n.2n", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ ROM_END +ROM_START( dkongjr2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "0", 0x0000, 0x2000, CRC(dc1f1d12) SHA1(d0faac0310b0273429ccb3387b914792d1a312eb) ) + ROM_LOAD( "1", 0x2000, 0x2000, CRC(f1f286d0) SHA1(cd87770c968d10623f312f651955ad9b1f85c6df) ) + ROM_LOAD( "2", 0x4000, 0x2000, CRC(4cb856c4) SHA1(e5ac7155b13cac2c201fa733f5061fb4a0ceafa4) ) + ROM_LOAD( "diag.bin", 0x8000, 0x1000, NO_DUMP ) + + ROM_REGION( 0x1000, "soundcpu", 0 ) /* sound */ + ROM_LOAD( "8", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "9", 0x0000, 0x1000, CRC(8d51aca9) SHA1(64887564b079d98e98aafa53835e398f34fe4e3f) ) + ROM_LOAD( "10", 0x1000, 0x1000, CRC(4ef64ba5) SHA1(41a7a4005087951f57f62c9751d62a8c495e6bb3) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) // not dumped for this set + ROM_LOAD( "v_7c.bin", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) + ROM_LOAD( "v_7d.bin", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) + ROM_LOAD( "v_7e.bin", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) + ROM_LOAD( "v_7f.bin", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) + + ROM_REGION( 0x0300, "proms", 0 ) // not dumped for this set + ROM_LOAD( "c-2e.bpr", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ + ROM_LOAD( "c-2f.bpr", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ + ROM_LOAD( "v-2n.bpr", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ +ROM_END + ROM_START( dkongjrj ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "c_5ba.bin", 0x0000, 0x1000, CRC(50a015ce) SHA1(edcafdf8f989dd25bb142817084d270a6942577a) ) @@ -3675,6 +3701,7 @@ GAME( 2006, dkongx11, dkong, dk_braze, dkongx, dkong_state, dkongx, ROT GAME( 2013, dkongpe, dkong, dkong2b, dkong, dkong_state, 0, ROT270, "hack (Clay Cowgill and Mike Mika)", "Donkey Kong: Pauline Edition Rev 5 (2013-04-22)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, dkongjr, 0, dkongjr, dkongjr, dkong_state, 0, ROT270, "Nintendo of America", "Donkey Kong Junior (US set F-2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkongjr2, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT270, "Nintendo of America", "Donkey Kong Junior (US, bootleg?)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, dkongjrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT270, "Nintendo", "Donkey Kong Jr. (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, dkongjnrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT270, "Nintendo", "Donkey Kong Junior (Japan set F-1)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, dkongjrb, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT270, "bootleg", "Donkey Kong Jr. (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp index 22c7810dff3..2ba24b6bd45 100644 --- a/src/mame/drivers/duet16.cpp +++ b/src/mame/drivers/duet16.cpp @@ -32,6 +32,7 @@ public: m_pal(*this, "palette"), m_chrpal(*this, "chrpal"), m_rtc(*this, "rtc"), + m_tmint(*this, "tmint"), m_screen(*this, "screen"), m_chrrom(*this, "char"), m_cvram(*this, "cvram"), @@ -62,7 +63,7 @@ private: DECLARE_WRITE_LINE_MEMBER(rtc_d2_w); DECLARE_WRITE_LINE_MEMBER(rtc_d3_w); DECLARE_WRITE_LINE_MEMBER(rtc_busy_w); - DECLARE_WRITE_LINE_MEMBER(itm_irq_w); + void rtc_irq_reset(); MC6845_UPDATE_ROW(crtc_update_row); void duet16_io(address_map &map); void duet16_mem(address_map &map); @@ -74,19 +75,20 @@ private: required_device<palette_device> m_pal; required_device<palette_device> m_chrpal; required_device<msm58321_device> m_rtc; + required_device<input_merger_device> m_tmint; required_device<screen_device> m_screen; required_memory_region m_chrrom; required_shared_ptr<u16> m_cvram; required_shared_ptr<u16> m_gvram; u8 m_dmapg, m_dispctrl; u8 m_rtc_d; - bool m_rtc_busy, m_rtc_irq, m_itm_irq; + bool m_rtc_busy, m_rtc_irq; }; void duet16_state::machine_reset() { m_rtc->cs1_w(ASSERT_LINE); - m_itm_irq = m_rtc_irq = false; + rtc_irq_reset(); } READ8_MEMBER(duet16_state::pic_r) @@ -234,37 +236,40 @@ MC6845_UPDATE_ROW(duet16_state::crtc_update_row) } } -WRITE_LINE_MEMBER(duet16_state::itm_irq_w) -{ - m_itm_irq = state == ASSERT_LINE ? true : false; - m_pic->ir0_w(m_rtc_irq || m_itm_irq ? ASSERT_LINE : CLEAR_LINE); -} - WRITE_LINE_MEMBER(duet16_state::rtc_d0_w) { - m_rtc_d = (m_rtc_d & ~1) | (state == ASSERT_LINE ? 1 : 0); + m_rtc_d = (m_rtc_d & ~1) | (state ? 1 : 0); } WRITE_LINE_MEMBER(duet16_state::rtc_d1_w) { - m_rtc_d = (m_rtc_d & ~2) | (state == ASSERT_LINE ? 2 : 0); + m_rtc_d = (m_rtc_d & ~2) | (state ? 2 : 0); } WRITE_LINE_MEMBER(duet16_state::rtc_d2_w) { - m_rtc_d = (m_rtc_d & ~4) | (state == ASSERT_LINE ? 4 : 0); + m_rtc_d = (m_rtc_d & ~4) | (state ? 4 : 0); } WRITE_LINE_MEMBER(duet16_state::rtc_d3_w) { - m_rtc_d = (m_rtc_d & ~8) | (state == ASSERT_LINE ? 8 : 0); + m_rtc_d = (m_rtc_d & ~8) | (state ? 8 : 0); } WRITE_LINE_MEMBER(duet16_state::rtc_busy_w) { - m_rtc_busy = state == ASSERT_LINE ? true : false; - m_rtc_irq = m_rtc_busy || m_rtc_irq; - m_pic->ir0_w(m_rtc_irq || m_itm_irq ? ASSERT_LINE : CLEAR_LINE); + if (state && !m_rtc_busy && !m_rtc_irq) + { + m_rtc_irq = true; + m_tmint->in_w<1>(1); + } + m_rtc_busy = state; +} + +void duet16_state::rtc_irq_reset() +{ + m_rtc_irq = false; + m_tmint->in_w<1>(0); } READ8_MEMBER(duet16_state::rtc_r) @@ -280,10 +285,10 @@ READ8_MEMBER(duet16_state::rtc_r) WRITE8_MEMBER(duet16_state::rtc_w) { - m_rtc->d0_w(data & 1 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d1_w(data & 2 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d2_w(data & 4 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d3_w(data & 8 ? ASSERT_LINE : CLEAR_LINE); + m_rtc->d0_w(BIT(data, 0)); + m_rtc->d1_w(BIT(data, 1)); + m_rtc->d2_w(BIT(data, 2)); + m_rtc->d3_w(BIT(data, 3)); m_rtc->cs2_w(ASSERT_LINE); m_rtc->write_w(ASSERT_LINE); m_rtc->write_w(CLEAR_LINE); @@ -292,18 +297,18 @@ WRITE8_MEMBER(duet16_state::rtc_w) READ8_MEMBER(duet16_state::rtc_stat_r) { - m_rtc_irq = false; - if(!m_itm_irq) - m_pic->ir0_w(CLEAR_LINE); - return (m_rtc_busy ? 0x80 : 0); + u8 status = m_rtc_irq ? 0x80 : 0; + if (!machine().side_effects_disabled()) + rtc_irq_reset(); + return status; } WRITE8_MEMBER(duet16_state::rtc_addr_w) { - m_rtc->d0_w(data & 1 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d1_w(data & 2 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d2_w(data & 4 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d3_w(data & 8 ? ASSERT_LINE : CLEAR_LINE); + m_rtc->d0_w(BIT(data, 0)); + m_rtc->d1_w(BIT(data, 1)); + m_rtc->d2_w(BIT(data, 2)); + m_rtc->d3_w(BIT(data, 3)); m_rtc->cs2_w(ASSERT_LINE); m_rtc->address_write_w(ASSERT_LINE); m_rtc->address_write_w(CLEAR_LINE); @@ -378,7 +383,7 @@ MACHINE_CONFIG_START(duet16_state::duet16) MCFG_PTM6840_EXTERNAL_CLOCKS(0.0, 0.0, (8_MHz_XTAL / 8).dvalue()) // C3 = 1MHz MCFG_PTM6840_O3_CB(DEVWRITELINE("itm", ptm6840_device, set_c1)) // C1 = C2 = O3 MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("itm", ptm6840_device, set_c2)) - MCFG_PTM6840_IRQ_CB(WRITELINE(duet16_state, itm_irq_w)) // INT6 + MCFG_PTM6840_IRQ_CB(DEVWRITELINE("tmint", input_merger_device, in_w<0>)) MCFG_DEVICE_ADD("sio", UPD7201_NEW, 8_MHz_XTAL / 2) MCFG_Z80SIO_OUT_INT_CB(DEVWRITELINE("pic", pic8259_device, ir1_w)) // INT5 @@ -396,6 +401,9 @@ MACHINE_CONFIG_START(duet16_state::duet16) MCFG_INPUT_MERGER_ANY_HIGH("kbint") MCFG_INPUT_MERGER_OUTPUT_HANDLER(DEVWRITELINE("pic", pic8259_device, ir5_w)) // INT2 + MCFG_INPUT_MERGER_ANY_HIGH("tmint") + MCFG_INPUT_MERGER_OUTPUT_HANDLER(DEVWRITELINE("pic", pic8259_device, ir0_w)) // INT6 + MCFG_UPD765A_ADD("fdc", true, false) MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE("dmac", am9517a_device, dreq0_w)) MCFG_UPD765_INTRQ_CALLBACK(DEVWRITELINE("pic", pic8259_device, ir3_w)) // INT4 diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp index b1567692ea2..45d2601a147 100644 --- a/src/mame/drivers/fmtowns.cpp +++ b/src/mame/drivers/fmtowns.cpp @@ -1936,44 +1936,45 @@ READ8_MEMBER(towns_state::towns_rtc_r) WRITE8_MEMBER(towns_state::towns_rtc_w) { - m_rtc->d0_w(data & 1 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d1_w(data & 2 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d2_w(data & 4 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->d3_w(data & 8 ? ASSERT_LINE : CLEAR_LINE); + m_rtc->d0_w(BIT(data, 0)); + m_rtc->d1_w(BIT(data, 1)); + m_rtc->d2_w(BIT(data, 2)); + m_rtc->d3_w(BIT(data, 3)); } WRITE8_MEMBER(towns_state::towns_rtc_select_w) { - m_rtc->cs1_w(data & 0x80 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->cs2_w(data & 0x80 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->read_w(data & 4 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->write_w(data & 2 ? ASSERT_LINE : CLEAR_LINE); - m_rtc->address_write_w(data & 1 ? ASSERT_LINE : CLEAR_LINE); + m_rtc->cs1_w(BIT(data, 7)); + m_rtc->cs2_w(BIT(data, 7)); + m_rtc->read_w(BIT(data, 2)); + m_rtc->write_w(BIT(data, 1)); + m_rtc->address_write_w(BIT(data, 0)); } WRITE_LINE_MEMBER(towns_state::rtc_d0_w) { - m_rtc_d = (m_rtc_d & ~1) | (state == ASSERT_LINE ? 1 : 0); + m_rtc_d = (m_rtc_d & ~1) | (state ? 1 : 0); } WRITE_LINE_MEMBER(towns_state::rtc_d1_w) { - m_rtc_d = (m_rtc_d & ~2) | (state == ASSERT_LINE ? 2 : 0); + m_rtc_d = (m_rtc_d & ~2) | (state ? 2 : 0); } WRITE_LINE_MEMBER(towns_state::rtc_d2_w) { - m_rtc_d = (m_rtc_d & ~4) | (state == ASSERT_LINE ? 4 : 0); + m_rtc_d = (m_rtc_d & ~4) | (state ? 4 : 0); } WRITE_LINE_MEMBER(towns_state::rtc_d3_w) { - m_rtc_d = (m_rtc_d & ~8) | (state == ASSERT_LINE ? 8 : 0); + m_rtc_d = (m_rtc_d & ~8) | (state ? 8 : 0); } WRITE_LINE_MEMBER(towns_state::rtc_busy_w) { - m_rtc_busy = state == ASSERT_LINE ? true : false; + // active low output + m_rtc_busy = !state; } // SCSI controller - I/O ports 0xc30 and 0xc32 diff --git a/src/mame/drivers/grchamp.cpp b/src/mame/drivers/grchamp.cpp index 902cae411cd..7f1e1b7180e 100644 --- a/src/mame/drivers/grchamp.cpp +++ b/src/mame/drivers/grchamp.cpp @@ -849,6 +849,103 @@ ROM_START( grchamp ) ROM_LOAD( "gr09.bpr", 0x20, 0x20, CRC(260fb2b9) SHA1(db0bf49f12a944613d113317d7dfea25bd7469fc) ) /* sprite/text colors */ ROM_END +ROM_START( grchampa ) + ROM_REGION( 0x4000, "maincpu", 0 ) + ROM_LOAD( "gr05a", 0x0000, 0x1000, CRC(4e54eeeb) SHA1(e8327e2a4596233f5f4a4dbf7cdf90f67447fc2a) ) + ROM_LOAD( "gr06", 0x1000, 0x1000, CRC(4afd9fb2) SHA1(93b6829b5196cbeb37925bda29722f02a9ef83be) ) + ROM_LOAD( "gr07-1", 0x2000, 0x1000, CRC(4deed8a1) SHA1(4616e1467bc696272117ad3f55cbff420c7e1deb) ) + ROM_LOAD( "gr08", 0x3000, 0x1000, CRC(2e0670ab) SHA1(b9a39133d60f1d8316005f9d029db63f4e486174) ) + + ROM_REGION( 0x8000, "sub", 0 ) + ROM_LOAD( "gr18", 0x0000, 0x1000, CRC(becd0e81) SHA1(a5469711efab6c4befed7a5ecdccf5d14e6e0aa9) ) + ROM_LOAD( "gr17", 0x1000, 0x1000, CRC(aeba2f28) SHA1(c3efe5fede642465d42a1317d114bddd0b961884) ) + ROM_LOAD( "gr16", 0x5000, 0x1000, CRC(885d708e) SHA1(d5d2978a0eeca167ec1fb9f6f981388de46fbf81) ) + ROM_LOAD( "gr15", 0x6000, 0x1000, CRC(a822430b) SHA1(4d29612489362d2dc3f3a9eab609902a50c34aff) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "gr24", 0x0000, 0x0800, CRC(66621fa8) SHA1(957f60fbf4bc0a36931a8c2bde05aea1f9e6671f) ) + ROM_LOAD( "gr25", 0x0800, 0x0800, CRC(9b8cdbf1) SHA1(e96af63896b8af0e2ed5a94172c6efdaaf56f678) ) + ROM_LOAD( "gr26", 0x1000, 0x0800, CRC(335b0f73) SHA1(790c31cda27efd149ddaab695852cad121fa1586) ) + ROM_LOAD( "gr27", 0x1800, 0x0800, CRC(3bad8c2e) SHA1(0a429c687f95b995979f995a44238f44c00a5a63) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) /* characters/sprites */ + ROM_LOAD( "gr04", 0x0000, 0x0800, CRC(7617e65c) SHA1(c83c15cff14a9d7acc2696807b3f0c1b83d095c8) ) + ROM_LOAD( "gr03", 0x0800, 0x0800, CRC(e7bdf2ee) SHA1(343d8a2b9e11cbe47d66f698150036f4a7d51c84) ) + ROM_LOAD( "gr02", 0x1000, 0x0800, CRC(7d60dd41) SHA1(9021ad635acc65341532280f9ba1f349ac3a5af0) ) + ROM_LOAD( "gr01", 0x1800, 0x0800, CRC(5f13ae33) SHA1(b9c05c9e3f5676c6bcd4019f6ac82277d56d253e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) /* left tiles */ + ROM_LOAD( "gr20", 0x0000, 0x1000, CRC(88ba2c03) SHA1(4dfd136f122663223043c6cd79566f8eeec72681) ) + ROM_LOAD( "gr19", 0x1000, 0x1000, CRC(ff34b444) SHA1(51c67a1691da3a2d8ddcff5fd8fa816b1f9c60c0) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) /* right tiles */ + ROM_LOAD( "gr21", 0x0000, 0x1000, CRC(2f77a9f3) SHA1(9e20a776c5e8c7577c3e8467d4f8ac7ac909901f) ) + ROM_LOAD( "gr22", 0x1000, 0x1000, CRC(31bb5fc7) SHA1(9f638e632e7c72461bedecb710ac9b30f015eebf) ) + + ROM_REGION( 0x2000, "gfx4", 0 ) /* center tiles */ + ROM_LOAD( "gr13", 0x0000, 0x1000, CRC(d5e19ebd) SHA1(d0ca553eec87619ec489f7ba6238f1fdde7c480b) ) + ROM_LOAD( "gr14", 0x1000, 0x1000, CRC(d129b8e4) SHA1(db25bfde2a48e14d38a43133d88d479c3cc1397a) ) + + ROM_REGION( 0x0800, "gfx5", 0 ) /* rain */ + ROM_LOAD( "gr10", 0x0000, 0x0800, CRC(b1f0a873) SHA1(f7ef1a16556ae3e7d70209bcb38ea3ae94208789) ) + + ROM_REGION( 0x0800, "gfx6", 0 ) /* headlights */ + ROM_LOAD( "gr12", 0x0000, 0x0800, CRC(f3bc599e) SHA1(3ec19584896a0bf10b9c5750f3c78ad3e722cc49) ) + + ROM_REGION( 0x1000, "gfx7", 0 ) /* player */ + ROM_LOAD( "gr11", 0x0000, 0x1000, CRC(54eb3ec9) SHA1(22739240f53c708d8e53094d96916778e12beeed) ) + + ROM_REGION( 0x0040, "proms", 0 ) + ROM_LOAD( "gr23.bpr", 0x00, 0x20, CRC(41c6c48d) SHA1(8bd14b5f02f9da0a68e3125955be18462b57401d) ) /* background colors */ + ROM_LOAD( "gr09.bpr", 0x20, 0x20, CRC(260fb2b9) SHA1(db0bf49f12a944613d113317d7dfea25bd7469fc) ) /* sprite/text colors */ +ROM_END + +ROM_START( grchampb ) + ROM_REGION( 0x4000, "maincpu", 0 ) + ROM_LOAD( "gg01-a", 0x0000, 0x1000, CRC(9a815139) SHA1(0f4ea577c12dd13da9fa114d6a1653cb516324f3) ) + ROM_LOAD( "gg02-a", 0x1000, 0x1000, CRC(e35ac684) SHA1(202899f1b55f68ea6017b18b149f254735661bea) ) + ROM_LOAD( "gg03", 0x2000, 0x1000, CRC(feb0ad96) SHA1(1335725d25777f9c462b4c97f7a268378dc7753d) ) + ROM_LOAD( "gg04", 0x3000, 0x1000, CRC(afabfe96) SHA1(d265595522ccf94395f2235c02d8c37f1ada9950) ) + + ROM_REGION( 0x8000, "sub", 0 ) + ROM_LOAD( "gm09", 0x0000, 0x1000, CRC(d57bd109) SHA1(d1cb5ba783eaceda45893f6404fe9dbac740a2de) ) + ROM_LOAD( "gm10", 0x1000, 0x1000, CRC(41ba07f1) SHA1(103eeacdd36b4347fc62debb6b5f4163083313f4) ) + ROM_LOAD( "gr16", 0x5000, 0x1000, CRC(885d708e) SHA1(d5d2978a0eeca167ec1fb9f6f981388de46fbf81) ) + ROM_LOAD( "gr15", 0x6000, 0x1000, CRC(a822430b) SHA1(4d29612489362d2dc3f3a9eab609902a50c34aff) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "gm07", 0x0000, 0x1000, CRC(65dcc572) SHA1(c9b19af365fa7ade2698be0bb892591ba281ecb0) ) + ROM_LOAD( "gm08", 0x1000, 0x1000, CRC(224d880c) SHA1(68aaaa0213d09cf34ba50c91d8c031d041f8a76f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) /* characters/sprites */ + ROM_LOAD( "gm02", 0x0000, 0x1000, CRC(5911948d) SHA1(6f3a9a7f8d6a04b8e6d83756764c9c4185983d9b) ) + ROM_LOAD( "gm01", 0x1000, 0x1000, CRC(846f8e89) SHA1(346bfd69268606fde27643b4d135b481536b73b1) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) /* left tiles */ + ROM_LOAD( "gr20", 0x0000, 0x1000, CRC(88ba2c03) SHA1(4dfd136f122663223043c6cd79566f8eeec72681) ) + ROM_LOAD( "gr19", 0x1000, 0x1000, CRC(ff34b444) SHA1(51c67a1691da3a2d8ddcff5fd8fa816b1f9c60c0) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) /* right tiles */ + ROM_LOAD( "gr21", 0x0000, 0x1000, CRC(2f77a9f3) SHA1(9e20a776c5e8c7577c3e8467d4f8ac7ac909901f) ) + ROM_LOAD( "gr22", 0x1000, 0x1000, CRC(31bb5fc7) SHA1(9f638e632e7c72461bedecb710ac9b30f015eebf) ) + + ROM_REGION( 0x2000, "gfx4", 0 ) /* center tiles */ + ROM_LOAD( "gr13", 0x0000, 0x1000, CRC(d5e19ebd) SHA1(d0ca553eec87619ec489f7ba6238f1fdde7c480b) ) + ROM_LOAD( "gr14", 0x1000, 0x1000, CRC(d129b8e4) SHA1(db25bfde2a48e14d38a43133d88d479c3cc1397a) ) + + ROM_REGION( 0x0800, "gfx5", 0 ) /* rain */ + ROM_LOAD( "gr10", 0x0000, 0x0800, CRC(b1f0a873) SHA1(f7ef1a16556ae3e7d70209bcb38ea3ae94208789) ) + + ROM_REGION( 0x0800, "gfx6", 0 ) /* headlights */ + ROM_LOAD( "gr12", 0x0000, 0x0800, CRC(f3bc599e) SHA1(3ec19584896a0bf10b9c5750f3c78ad3e722cc49) ) + + ROM_REGION( 0x1000, "gfx7", 0 ) /* player */ + ROM_LOAD( "gr11", 0x0000, 0x1000, CRC(54eb3ec9) SHA1(22739240f53c708d8e53094d96916778e12beeed) ) + + ROM_REGION( 0x0040, "proms", 0 ) + ROM_LOAD( "gr23.bpr", 0x00, 0x20, CRC(41c6c48d) SHA1(8bd14b5f02f9da0a68e3125955be18462b57401d) ) /* background colors */ + ROM_LOAD( "gr09.bpr", 0x20, 0x20, CRC(260fb2b9) SHA1(db0bf49f12a944613d113317d7dfea25bd7469fc) ) /* sprite/text colors */ +ROM_END /************************************* @@ -857,4 +954,6 @@ ROM_END * *************************************/ -GAMEL( 1981, grchamp, 0, grchamp, grchamp, grchamp_state, 0, ROT270, "Taito", "Grand Champion", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_grchamp ) +GAMEL( 1981, grchamp, 0, grchamp, grchamp, grchamp_state, 0, ROT270, "Taito", "Grand Champion (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_grchamp ) +GAMEL( 1981, grchampa, grchamp, grchamp, grchamp, grchamp_state, 0, ROT270, "Taito", "Grand Champion (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_grchamp ) +GAMEL( 1981, grchampb, grchamp, grchamp, grchamp, grchamp_state, 0, ROT270, "Taito", "Grand Champion (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_grchamp ) diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index 430e5267071..16a4e50a4af 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -36,7 +36,7 @@ Confirmed non-bugs: * Bad zooming in the Kof2003 bootlegs - this is what happens - if you try and use the normal bios with a pcb set, it + if you try and use the normal bios with a PCB set, it looks like the bootleggers didn't care. * Glitches at the edges of the screen - the real hardware can display 320x224 but most of the games seem designed @@ -48,12 +48,12 @@ ***************************************************************************** The Neo-Geo Multi Video System (MVS), is an arcade system board, being - the first product in the Neo-Geo family, designed by Alpha Denshi(ADK) - and released in 1990 by SNK. It was known to the coin-op industry, and + the first product in the Neo-Geo family, designed by Alpha Denshi (ADK) + and released in 1990 by SNK. It was known to the coin-op industry, and offered arcade operators the ability to put up to 6 different arcade titles into a single cabinet, a key economic consideration for operators with limited floorspace (games for the Neo-Geo are cartridge based and are - easily exchangeable). It comes in many different cabinets but basically + easily exchangeable). It comes in many different cabinets but basically consists of an add on board that can be linked to a standard Jamma system. The system was discontinued in 2004. Source (modified): http://en.wikipedia.org/wiki/Neo_Geo @@ -411,8 +411,8 @@ VCC = 30A | 30B = VCC VCC = 30A | 30B = VCC VCC = 31A | 31B = VCC VCC = 31A | 31B = VCC VCC = 32A | 32B = VCC VCC = 32A | 32B = VCC - CR20 = 33A | 33B = CR21 PORTADRS = 33A | 33B = 4MB - CR22 = 34A | 34B = CR23 NC = 34A | 34B = ROMOE + CR20 = 33A | 33B = CR21 PORTADRS = 33A | 33B = ROMOE + CR22 = 34A | 34B = CR23 NC = 34A | 34B = 4MB CR24 = 35A | 35B = CR25 NC = 35A | 35B = RESET CR26 = 36A | 36B = CR27 NC = 36A | 36B = NC CR28 = 37A | 37B = CR29 NC = 37A | 37B = NC @@ -420,21 +420,21 @@ NC = 39A | 39B = FIX00 NC = 39A | 39B = NC NC = 40A | 40B = FIX01 NC = 40A | 40B = NC NC = 41A | 41B = FIX02 NC = 41A | 41B = SDPAD0 - SYSTEMB = 42A | 42B = FIX03 SYSTEMB = 42A | 42B = SDPAD1 + SLOTCS = 42A | 42B = FIX03 SLOTCS = 42A | 42B = SDPAD1 SDA0 = 43A | 43B = FIX04 SDPA8 = 43A | 43B = SDPAD2 SDA1 = 44A | 44B = FIX05 SDPA9 = 44A | 44B = SDPAD3 SDA2 = 45A | 45B = FIX06 SDPA10 = 45A | 45B = SDPAD4 SDA3 = 46A | 46B = FIX07 SDPA11 = 46A | 46B = SDPAD5 SDA4 = 47A | 47B = SDRD0 SDPMPX = 47A | 47B = SDPAD6 SDA5 = 48A | 48B = SDRD1 SDPOE = 48A | 48B = SDPAD7 - SDA6 = 49A | 49B = SDROM SDRA8 = 49A | 49B = SDRA00 - SDA7 = 50A | 50B = SDMRD SDRA9 = 50A | 50B = SDRA01 - SDA8 = 51A | 51B = SDDO SDRA20 = 51A | 51B = SDRA02 - SDA9 = 52A | 52B = SDD1 SDRA21 = 52A | 52B = SDRA03 - SDA10 = 53A | 53B = SDD2 SDRA22 = 53A | 53B = SDRA04 - SDA11 = 54A | 54B = SDD3 SDRA23 = 54A | 54B = SDRA05 - SDA12 = 55A | 55B = SDD4 SDRMPX = 55A | 55B = SDRA06 - SDA13 = 56A | 56B = SDD5 SDROE = 56A | 56B = SDRA07 + SDA6 = 49A | 49B = SDROM SDRA8 = 49A | 49B = SDRAD0 + SDA7 = 50A | 50B = SDMRD SDRA9 = 50A | 50B = SDRAD1 + SDA8 = 51A | 51B = SDD0 SDRA20 = 51A | 51B = SDRAD2 + SDA9 = 52A | 52B = SDD1 SDRA21 = 52A | 52B = SDRAD3 + SDA10 = 53A | 53B = SDD2 SDRA22 = 53A | 53B = SDRAD4 + SDA11 = 54A | 54B = SDD3 SDRA23 = 54A | 54B = SDRAD5 + SDA12 = 55A | 55B = SDD4 SDRMPX = 55A | 55B = SDRAD6 + SDA13 = 56A | 56B = SDD5 SDROE = 56A | 56B = SDRAD7 SDA14 = 57A | 57B = SDD6 GND = 57A | 57B = GND SDA15 = 58A | 58B = SDD7 GND = 58A | 58B = GND GND = 59A | 59B = GND GND = 59A | 59B = GND @@ -553,11 +553,13 @@ public: { } - DECLARE_CUSTOM_INPUT_MEMBER(kizuna4p_start_r); - // mainboard configurations void mv1fz(machine_config &config); + // fixed software configurations + void kizuna4p(machine_config &config); + void irrmaze(machine_config &config); + protected: virtual void machine_start() override; @@ -589,10 +591,8 @@ public: // fixed software configurations void neobase(machine_config &config); void fatfur2(machine_config &config); - void kizuna4p(machine_config &config); void kof97oro(machine_config &config); void kog(machine_config &config); - void irrmaze(machine_config &config); void kof98(machine_config &config); void mslugx(machine_config &config); void kof99(machine_config &config); @@ -874,9 +874,14 @@ READ16_MEMBER(ngarcade_base_state::in1_edge_joy_r) return ((m_edge->in1_r(space, offset) & m_ctrl2->ctrl_r(space, offset)) << 8) | 0xff; } -CUSTOM_INPUT_MEMBER(mvs_state::kizuna4p_start_r) +CUSTOM_INPUT_MEMBER(ngarcade_base_state::startsel_edge_joy_r) { - return (m_edge->read_start_sel() & 0x05) | ~0x05; + uint32_t ret = m_edge->read_start_sel() | ~0x05; + if (m_ctrl1) + ret &= (m_ctrl1->read_start_sel() << 0) | ~0x01; + if (m_ctrl2) + ret &= (m_ctrl2->read_start_sel() << 0) | ~0x04; + return ret; } WRITE8_MEMBER(neogeo_base_state::io_control_w) @@ -1621,7 +1626,7 @@ void mvs_state::neogeo_postload() void neogeo_base_state::machine_reset() { - // disable audiocpu nmi + // disable audiocpu NMI m_audionmi->in_w<1>(0); m_soundlatch->acknowledge_r(machine().dummy_space(), 0); @@ -1803,13 +1808,10 @@ INPUT_PORTS_START( neogeo ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0aff, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0500, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ngarcade_base_state, startsel_edge_joy_r, nullptr) PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_base_state, get_memcard_status, nullptr) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* Hardware type (AES=0, MVS=1). Some games check this and show a piracy warning screen if the hardware and BIOS don't match */ + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_CUSTOM ) // Hardware type (AES=0, MVS=1). Some games check this and show a piracy warning screen if the hardware and BIOS don't match PORT_START("AUDIO/COIN") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) // coin 1 (combined) or P1 coin 1 (separate) for BIOS that supports it @@ -1903,8 +1905,6 @@ MACHINE_CONFIG_START(neogeo_base_state::neogeo_base) MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(NOOP) // memory card: register select enable/set to normal (what does it mean?) MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(neogeo_base_state, set_palette_bank)) - MCFG_WATCHDOG_ADD("watchdog") - /* video hardware */ MCFG_DEFAULT_LAYOUT(layout_neogeo) @@ -1953,8 +1953,9 @@ MACHINE_CONFIG_START(ngarcade_base_state::neogeo_arcade) MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(ngarcade_base_state, set_use_cart_audio)) MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(ngarcade_base_state, set_save_ram_unlock)) - MCFG_WATCHDOG_MODIFY("watchdog") + MCFG_WATCHDOG_ADD("watchdog") MCFG_WATCHDOG_TIME_INIT(attotime::from_ticks(3244030, NEOGEO_MASTER_CLOCK)) + MCFG_UPD4990A_ADD("upd4990a", XTAL(32'768), NOOP, NOOP) MCFG_NVRAM_ADD_0FILL("saveram") @@ -2422,9 +2423,10 @@ MACHINE_CONFIG_START(mvs_led_state::fatfur2) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_fatfur2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_led_state::kizuna4p) - mv1_fixed(config); - MCFG_DEVICE_REMOVE("edge") +MACHINE_CONFIG_START(mvs_state::kizuna4p) + neogeo_arcade(config); + neogeo_mono(config); + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") @@ -2440,10 +2442,10 @@ MACHINE_CONFIG_START(mvs_led_state::kog) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kog") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_led_state::irrmaze) - mv1_fixed(config); +MACHINE_CONFIG_START(mvs_state::irrmaze) + neogeo_arcade(config); + neogeo_mono(config); - MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true) MCFG_DEFAULT_LAYOUT(layout_irrmaze) @@ -2890,9 +2892,6 @@ static INPUT_PORTS_START( kizuna4p ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Players ) ) PORT_DIPLOCATION("SW:2") PORT_DIPSETTING( 0x02, "2" ) PORT_DIPSETTING( 0x00, "4" ) - - PORT_MODIFY("SYSTEM") - PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mvs_led_state, kizuna4p_start_r, nullptr) INPUT_PORTS_END static INPUT_PORTS_START( vliner ) @@ -6948,7 +6947,7 @@ ROM_START( kizuna ) ROM_END -ROM_START( kizuna4p ) /* same cartridge as kizuna - 4-player mode is enabled by an extension board that plugs into a compatible MVS */ +ROM_START( kizuna4p ) /* same cartridge as kizuna - 4-player mode is enabled by FTC1B JAMMA splitter board that plugs into MV-1B/MV-1C */ ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) /* mask rom TC5316200 */ ROM_CONTINUE( 0x000000, 0x100000 ) @@ -11490,7 +11489,7 @@ GAME( 1996, kof96, neogeo, neobase, neogeo, mvs_led_state, 0, RO GAME( 1996, kof96h, kof96, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, ssideki4, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE ) GAME( 1996, kizuna, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kizuna4p, kizuna, kizuna4p, kizuna4p, mvs_led_state, 0, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kizuna4p, kizuna, kizuna4p, kizuna4p, mvs_state, 0, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE ) GAME( 1996, samsho4, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222 ~ NGH-222)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, samsho4k, samsho4, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, rbffspec, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE ) @@ -11504,7 +11503,7 @@ GAME( 1997, kog, kof97, kog, neogeo, mvs_led_state, 0, RO GAME( 1997, lastblad, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE ) GAME( 1997, lastbladh, lastblad, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE ) GAME( 1997, lastsold, lastblad, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, irrmaze, neogeo, irrmaze, neogeo, mvs_led_state, 0, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, irrmaze, neogeo, irrmaze, neogeo, mvs_state, 0, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) GAME( 1998, rbff2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGM-2400)", MACHINE_SUPPORTS_SAVE ) GAME( 1998, rbff2h, rbff2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGH-2400)", MACHINE_SUPPORTS_SAVE ) GAME( 1998, rbff2k, rbff2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h index ab3d35d8073..c42a1fdef8b 100644 --- a/src/mame/includes/neogeo.h +++ b/src/mame/includes/neogeo.h @@ -208,6 +208,9 @@ private: class ngarcade_base_state : public neogeo_base_state { +public: + DECLARE_CUSTOM_INPUT_MEMBER(startsel_edge_joy_r); + protected: ngarcade_base_state(const machine_config &mconfig, device_type type, const char *tag) : neogeo_base_state(mconfig, type, tag) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 423534f3160..66b7a0c83f8 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -11435,6 +11435,7 @@ dkongjnrj // (c) 1982 Nintendo dkongjo // (c) 1981 Nintendo dkongjo1 // (c) 1981 Nintendo dkongjr // (c) 1982 Nintendo of America +dkongjr2 // (c) 1982 Nintendo of America / bootleg ? dkongjrb // bootleg dkongjre // (c) 1982 Nintendo of America dkongjrj // (c) 1982 Nintendo @@ -14312,6 +14313,8 @@ gradius3js // GX945 (c) 1989 (Japan, split) @source:grchamp.cpp grchamp // GM (c) 1981 Taito Corporation +grchampa // GM (c) 1981 Taito Corporation +grchampb // GM (c) 1981 Taito Corporation @source:grfd2301.cpp grfd2301 // |