diff options
| -rw-r--r-- | hash/plus4_flop.xml | 11 | ||||
| -rw-r--r-- | hash/plus4_quik.xml | 33 | ||||
| -rw-r--r-- | src/mame/commodore/plus4.cpp | 44 |
3 files changed, 66 insertions, 22 deletions
diff --git a/hash/plus4_flop.xml b/hash/plus4_flop.xml index deee7930b68..06f6e7713a9 100644 --- a/hash/plus4_flop.xml +++ b/hash/plus4_flop.xml @@ -50,4 +50,15 @@ license:CC0-1.0 </part> </software> + <software name="hdnwndrs" supported="no"> + <description>Hidden Wonders</description> + <year>2026</year> + <publisher>Desire</publisher> + <part name="flop1" interface="floppy_5_25"> + <dataarea name="flop" size="174848"> + <rom name="hidden_wonders.d64" size="174848" crc="ae113f13" sha1="7c1182931d6f92a5abd207aef44efeb7f4325656"/> + </dataarea> + </part> + </software> + </softwarelist> diff --git a/hash/plus4_quik.xml b/hash/plus4_quik.xml new file mode 100644 index 00000000000..382ca1a1d06 --- /dev/null +++ b/hash/plus4_quik.xml @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> +<!-- +license:CC0-1.0 +--> +<softwarelist name="plus4_quik" description="Commodore Plus/4 / C16 / C116 quickload"> + + <software name="axis"> + <description>Axis</description> + <year>2026</year> + <publisher>AnyStone Games</publisher> + + <part name="quik" interface="cbm_quik"> + <dataarea name="quik" size="26236"> + <rom name="axis.prg" size="26236" crc="3b3f6889" sha1="6a8c3f3b85757f0c923b2556fecd325a6f290c04"/> + </dataarea> + </part> + </software> + + <software name="arkanoid"> + <description>Arkanoid +4</description> + <year>2021</year> + <publisher>Assassins</publisher> + <sharedfeat name="compatibility" value="PAL" /> + + <part name="quik" interface="cbm_quik"> + <dataarea name="quik" size="31014"> + <rom name="arkanoid_plus4.prg" size="31014" crc="21149e6f" sha1="11d3bfcc6b11c13def176ee53dff0910985a5f46"/> + </dataarea> + </part> + </software> + +</softwarelist> diff --git a/src/mame/commodore/plus4.cpp b/src/mame/commodore/plus4.cpp index eba76d58ba3..1c69a43ebe5 100644 --- a/src/mame/commodore/plus4.cpp +++ b/src/mame/commodore/plus4.cpp @@ -78,6 +78,8 @@ public: { } void plus4(machine_config &config); + void plus4p(machine_config &config); + void plus4n(machine_config &config); void cpu_w(uint8_t data); @@ -126,7 +128,7 @@ protected: void write_kb6(int state) { if (state) m_kb |= 64; else m_kb &= ~64; } void write_kb7(int state) { if (state) m_kb |= 128; else m_kb &= ~128; } - DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_c16); + DECLARE_QUICKLOAD_LOAD_MEMBER(quickload) { return general_cbm_loadsnap(image, m_maincpu->space(AS_PROGRAM), 0, cbm_quick_sethiaddress); } enum { @@ -166,8 +168,6 @@ public: void c16n(machine_config &config); void c16p(machine_config &config); void c232(machine_config &config); - void plus4p(machine_config &config); - void plus4n(machine_config &config); private: uint8_t cpu_r(); @@ -193,12 +193,6 @@ private: #define BA4 BIT(offset, 4) - -QUICKLOAD_LOAD_MEMBER(plus4_state::quickload_c16) -{ - return general_cbm_loadsnap(image, m_maincpu->space(AS_PROGRAM), 0, cbm_quick_sethiaddress); -} - //************************************************************************** // MEMORY MANAGEMENT //************************************************************************** @@ -929,7 +923,9 @@ void plus4_state::plus4(machine_config &config) m_exp->cd_wr_callback().set(FUNC(plus4_state::write)); m_exp->aec_wr_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); - QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(plus4_state::quickload_c16)); + quickload_image_device &quickload(QUICKLOAD(config, "quickload", "p00,prg", attotime::from_msec(100))); + quickload.set_load_callback(FUNC(plus4_state::quickload)); + quickload.set_interface("cbm_quik"); // internal ram RAM(config, m_ram).set_default_size("64K"); @@ -940,7 +936,7 @@ void plus4_state::plus4(machine_config &config) // machine_config( plus4p ) //------------------------------------------------- -void c16_state::plus4p(machine_config &config) +void plus4_state::plus4p(machine_config &config) { plus4(config); m_maincpu->set_clock(XTAL(17'734'470)/20); @@ -950,16 +946,18 @@ void c16_state::plus4p(machine_config &config) SOFTWARE_LIST(config, "cart_list").set_original("plus4_cart"); SOFTWARE_LIST(config, "cass_list").set_original("plus4_cass"); SOFTWARE_LIST(config, "flop_list").set_original("plus4_flop"); + SOFTWARE_LIST(config, "quik_list").set_original("plus4_quik"); subdevice<software_list_device>("cart_list")->set_filter("PAL"); subdevice<software_list_device>("cass_list")->set_filter("PAL"); subdevice<software_list_device>("flop_list")->set_filter("PAL"); + subdevice<software_list_device>("quik_list")->set_filter("PAL"); } //------------------------------------------------- // machine_config( plus4n ) //------------------------------------------------- -void c16_state::plus4n(machine_config &config) +void plus4_state::plus4n(machine_config &config) { plus4(config); m_maincpu->set_clock(XTAL(14'318'181)/16); @@ -969,9 +967,11 @@ void c16_state::plus4n(machine_config &config) SOFTWARE_LIST(config, "cart_list").set_original("plus4_cart"); SOFTWARE_LIST(config, "cass_list").set_original("plus4_cass"); SOFTWARE_LIST(config, "flop_list").set_original("plus4_flop"); + SOFTWARE_LIST(config, "quik_list").set_original("plus4_quik"); subdevice<software_list_device>("cart_list")->set_filter("NTSC"); subdevice<software_list_device>("cass_list")->set_filter("NTSC"); subdevice<software_list_device>("flop_list")->set_filter("NTSC"); + subdevice<software_list_device>("quik_list")->set_filter("NTSC"); } @@ -1233,13 +1233,13 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1984, c264, 0, 0, plus4n, plus4, c16_state, empty_init, "Commodore Business Machines", "Commodore 264 (Prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c232, c264, 0, c232, plus4, c16_state, empty_init, "Commodore Business Machines", "Commodore 232 (Prototype)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, v364, c264, 0, v364, plus4, c16_state, empty_init, "Commodore Business Machines", "Commodore V364 (Prototype)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, plus4, c264, 0, plus4n, plus4, c16_state, empty_init, "Commodore Business Machines", "Plus/4 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, plus4p, c264, 0, plus4p, plus4, c16_state, empty_init, "Commodore Business Machines", "Plus/4 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c16, c264, 0, c16n, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 16 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c16p, c264, 0, c16p, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 16 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c16_hu, c264, 0, c16p, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 16 (Hungary)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c116, c264, 0, c16p, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 116", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1984, c264, 0, 0, plus4n, plus4, plus4_state, empty_init, "Commodore Business Machines", "Commodore 264 (Prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c232, c264, 0, c232, plus4, c16_state, empty_init, "Commodore Business Machines", "Commodore 232 (Prototype)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, v364, c264, 0, v364, plus4, c16_state, empty_init, "Commodore Business Machines", "Commodore V364 (Prototype)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, plus4, c264, 0, plus4n, plus4, plus4_state, empty_init, "Commodore Business Machines", "Plus/4 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, plus4p, c264, 0, plus4p, plus4, plus4_state, empty_init, "Commodore Business Machines", "Plus/4 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c16, c264, 0, c16n, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 16 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c16p, c264, 0, c16p, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 16 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c16_hu, c264, 0, c16p, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 16 (Hungary)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c116, c264, 0, c16p, c16, c16_state, empty_init, "Commodore Business Machines", "Commodore 116", MACHINE_SUPPORTS_SAVE ) |
