summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2026-04-27 16:04:34 +0300
committer Curt Coder <curtcoder@mail.com>2026-04-27 16:04:34 +0300
commitebfb8a5eb7b4bfab786e445eb8d02fbb3833f4e4 (patch)
tree624d18e8e3d187735c3bc8ecbab8e75bb7a74b46
parent9783c10eadb8301e167cecc30fbb8ebf717844da (diff)
New working software list items
------------------------------- plus4_quik: Axis, Arkanoid +4 [Curt Coder] New software list items marked not working ------------------------------------------ plus4_flop: Hidden Wonders [Curt Coder]
-rw-r--r--hash/plus4_flop.xml11
-rw-r--r--hash/plus4_quik.xml33
-rw-r--r--src/mame/commodore/plus4.cpp44
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 )