From 1ab5b69499a9d0901ff53cd63660596d7c38014e Mon Sep 17 00:00:00 2001 From: wilbertpol Date: Sat, 29 Jul 2023 19:42:25 +0100 Subject: msx1_cart.xml: Added 81 items, 80 working. (#11448) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New working software list items (msx1_cart.xml) ------------------------------- C_So! (Japan, alt) [file-hunter] Campeón de Conductores (Spain) [file-hunter] Cannon Fighter (Japan, The Link) [file-hunter] Cannon Turbo (Japan, alt) [file-hunter] Circus Charlie (Japan, The Link) [file-hunter] Custar (Japan) [file-hunter] Midway (Japan, alt) [file-hunter] Video Hustler (Japan, alt 3) [file-hunter] C.C.R. Anexo 1 El Algoritmo (v1.2) [MSXDev] C.C.R. Anexo 1 El Algoritmo (v1.1) [file-hunter] C.C.R. Anexo 1 El Algoritmo (v1.0) [file-hunter] Cacorm [inufuto] Caos Begins [MSXDev] Caos Begins (alt) [file-hunter] Caos Begins (alt 2) [file-hunter] Cardwork Orange (unlicensed) [file-hunter] Casio GPM-Collection Volumen 1 (unlicensed) [file-hunter] Casio GPM-Collection Volumen 2 (unlicensed) [file-hunter] Castle Tomb [MSXDev] Caverns of Titan [MSXDev] Caverns of Titan (alt) [MSXDev] Cavit [inufuto] Chambers of Thyrea [MSXDev] Champion Billiards [mastropiero] Cheating Wives [MSXDev] Chocobo Racing [MSXDev] Classic Minesweeper [file-hunter] Classic Pong [file-hunter] CMJN [MSXDev] Cocoa and the Time Machine [file-hunter] Cold Blood [file-hunter] Cold Blood (demo) [file-hunter] Computer Wars (English) [MSXDev] Computer Wars (Spanish) [MSXDev] Corona's Spree [file-hunter] Corridor Runner (v1.1.2) [aburi6800] Corridor Runner (v1.1.1) [aburi6800] Corridor Runner (v1.1.0) [aburi6800] Corridor Runner (v1.0.1) [aburi6800] Corridor Runner (v1.0.0) [aburi6800] Corridor Runner (v0.3.1) [aburi6800] Corridor Runner (v0.3.0) [aburi6800] Corridor Runner (v0.2.2) [aburi6800] Corridor Runner (v0.2.0) [aburi6800] Corridor Runner (v0.1.0) [aburi6800] Cosmic Battle (beta) [MSXDev] Cow Abductors [MSXDev] Cow Abductors (older) [file-hunter] Crappy Olympics [Orazio Cacciola] Crazy Buggy [MSXDev] Crazy MSX Frenchies [MSXDev] Cross Bomber (2022-07-20) [Fabrizio Caruso] Cross Bomber (alt) [file-hunter] Cross Bomber (2020-09-25) [Fabrizio Caruso] Cross Chase (2021-05-13) [Fabrizio Caruso] Cross Chase (alt) [file-hunter] Cross Chase (2020-04-02) [Fabrizio Caruso] Cross Chase (2018-11-13) [Fabrizio Caruso] Cross Chase (2018-08-10) [Fabrizio Caruso] Cross Chase (2018-07-19) [Fabrizio Caruso] Cross Chase (2018-05-19) [Fabrizio Caruso] Cross Chase (2018-04-15) [Fabrizio Caruso] Cross Chase (2018-02-03) [Fabrizio Caruso] Cross Chase (2017-12-16) [Fabrizio Caruso] Cross Chase (2017-10-30) [Fabrizio Caruso] Cross Chase (2017-10-11) [Fabrizio Caruso] Cross Horde (2021-05-12) [Fabrizio Caruso] Cross Horde (2021-05-01) [Fabrizio Caruso] Cross Horde (2021-04-25) [Fabrizio Caruso] Cross Shoot (2022-02-26) [Fabrizio Caruso] Cross Shoot (alt) [file-hunter] Cross Shoot (2021-05-12) [Fabrizio Caruso] Cross Snake (v2.0) [Fabrizio Caruso] Cross Snake (v2.0, alt) [file-hunter] Cross Snake (v1.0) [Fabrizio Caruso] Cross Snake (preview) [Fabrizio Caruso] Cryptogram - Anagrams Crosswords (v1.1) [MSXDev] Cryptogram - Anagrams Crosswords (v1.0) [MSXDev] Cuncuna [MSXDev] Cuncuna (older) [file-hunter] New NOT_WORKING software list additions (msx1_cart.xml) ------------------------------------------ Codename: INTRUDER [file-hunter] --- hash/msx1_cart.xml | 1025 +++++++++++++++++++++++++++++- scripts/src/bus.lua | 2 + src/devices/bus/msx/cart/cartridge.cpp | 2 + src/devices/bus/msx/cart/matra.cpp | 102 +++ src/devices/bus/msx/cart/matra.h | 14 + src/devices/bus/msx/cart/slotoptions.cpp | 1 + src/devices/bus/msx/cart/slotoptions.h | 1 + 7 files changed, 1143 insertions(+), 4 deletions(-) create mode 100644 src/devices/bus/msx/cart/matra.cpp create mode 100644 src/devices/bus/msx/cart/matra.h diff --git a/hash/msx1_cart.xml b/hash/msx1_cart.xml index d70597efea9..d82a264eb95 100644 --- a/hash/msx1_cart.xml +++ b/hash/msx1_cart.xml @@ -2961,6 +2961,20 @@ kept for now until finding out what those bytes affect... + + C_So! (Japan, alt) + 1985 + Pony Canyon + + + + + + + + + + C_So! (Korea) 198? @@ -2973,6 +2987,30 @@ kept for now until finding out what those bytes affect... + + Campeón de Conductores (Spain) + 1986 + Toshiba Spain + + + + + + + + + + Cannon Fighter (Japan, The Link) + 198? + Policy + + + + + + + + Cannon Turbo (Japan) 198? @@ -2986,6 +3024,19 @@ kept for now until finding out what those bytes affect... + + Cannon Turbo (Japan, alt) + 198? + Brother Kougyou + + + + + + + + + Cabbage Patch Kids (Japan) 1984 @@ -3588,6 +3639,20 @@ kept for now until finding out what those bytes affect... + + Circus Charlie (Japan, The Link) + 1984 + Konami + + + + + + + + + + City Connection (Japan) 1986 @@ -4021,12 +4086,16 @@ kept for now until finding out what those bytes affect... - - + + + + + + @@ -4039,12 +4108,16 @@ kept for now until finding out what those bytes affect... - - + + + + + + @@ -4118,6 +4191,21 @@ kept for now until finding out what those bytes affect... + + Custar (Japan) + 1985 + HAL Laboratory + + + + + + + + + + + Cyborg Z (Korea) @@ -8855,6 +8943,20 @@ Character creation does not write the new character data. + + Midway (Japan, alt) + 1983 + National + + + + + + + + + + Mil Caras (Spain) 1985 @@ -13698,6 +13800,20 @@ Right/left cursor keys select tape baud rate 1200/2400 respectively. + + Video Hustler (Japan, alt 3) + 1984 + Konami + + + + + + + + + + Vifam (Japan) 1984 @@ -18955,6 +19071,907 @@ legacy FM implementations cannot find it. + + C.C.R. Anexo 1 El Algoritmo (v1.2) + 2018 + MSXDev + + + + + + + + + + + C.C.R. Anexo 1 El Algoritmo (v1.1) + 2018 + MSXDev + + + + + + + + + + + C.C.R. Anexo 1 El Algoritmo (v1.0) + 2018 + MSXDev + + + + + + + + + + + Cacorm + 2022 + Inufuto + + + + + + + + + + Caos Begins + 2007 + MSXDev + + + + + + + + + + + Caos Begins (alt) + 2007 + MSXDev + + + + + + + + + + + Caos Begins (alt 2) + 2007 + MSXDev + + + + + + + + + + + Cardwork Orange (unlicensed) + 2010 + Matra + + + + + + + + + + Casio GPM-Collection Volumen 1 (unlicensed) + 2010 + Matra + + + + + + + + + + Casio GPM-Collection Volumen 2 (unlicensed) + 2010 + Matra + + + + + + + + + + Castle Tomb + 2009 + MSXDev + + + + + + + + + + + Caverns of Titan + 2005 + MSXDev + + + + + + + + + + + Caverns of Titan (alt) + 2005 + MSXDev + + + + + + + + + + + Cavit + 2021 + Inufuto + + + + + + + + + + Chambers of Thyrea + 2020 + MSXDev + + + + + + + + + + + Champion Billiards + 2020 + Mastropiero + + + + + + + + + + Cheating Wives + 2005 + MSXDev + + + + + + + + + + + Chocobo Racing + 2004 + MSXDev + + + + + + + + + + + Classic Minesweeper + 2004 + Karoshi Corporation + + + + + + + + + + Classic Pong + 2004 + Karoshi Corporation + + + + + + + + + + CMJN + 2014 + MSXDev + + + + + + + + + + + Cocoa and the Time Machine + 2020 + Minilop + + + + + + + + + + + Codename: INTRUDER + 2018 + Repro Factory + + + + + + + + + + + Cold Blood + 2009 + MSX Cartridge Shop + + + + + + + + + + Cold Blood (demo) + 2009 + Paxanga Soft + + + + + + + + + + Computer Wars (English) + 2004 + MSXDev + + + + + + + + + + + Computer Wars (Spanish) + 2004 + MSXDev + + + + + + + + + + + Corona's Spree + 2020 + Arnauri Calcalho + + + + + + + + + + Corridor Runner (v1.1.2) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v1.1.1) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v1.1.0) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v1.0.1) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v1.0.0) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v0.3.1) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v0.3.0) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v0.2.2) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v0.2.0) + 2022 + Aburi Games + + + + + + + + + + Corridor Runner (v0.1.0) + 2022 + Aburi Games + + + + + + + + + + Cosmic Battle (beta) + 2005 + MSXDev + + + + + + + + + + + Cow Abductors + 2009 + MSXDev + + + + + + + + + + + Cow Abductors (older) + 2009 + MSXDev + + + + + + + + + + + Crappy Olympics + 2021 + Orazio Cacciola + + + + + + + + + + Crazy Buggy + 2005 + MSXDev + + + + + + + + + + + Crazy MSX Frenchies + 2007 + MSXDev + + + + + + + + + + + Cross Bomber (2022-07-20) + 2022 + Fabrizio Caruso + + + + + + + + + + Cross Bomber (alt) + 2022 + Fabrizio Caruso + + + + + + + + + + Cross Bomber (2020-09-25) + 2020 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2021-05-13) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Chase (alt) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2020-04-02) + 2020 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2018-11-13) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2018-08-10) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2018-07-19) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2018-05-19) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2018-04-15) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2018-02-03) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2017-12-16) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2017-10-30) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Chase (2017-10-11) + 2018 + Fabrizio Caruso + + + + + + + + + + Cross Horde (2021-05-12) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Horde (2021-05-01) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Horde (2021-04-25) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Shoot (2022-02-26) + 2022 + Fabrizio Caruso + + + + + + + + + + Cross Shoot (alt) + 2022 + Fabrizio Caruso + + + + + + + + + + Cross Shoot (2021-05-12) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Snake (v2.0) + 2020 + Fabrizio Caruso + + + + + + + + + + Cross Snake (v2.0, alt) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Snake (v1.0) + 2021 + Fabrizio Caruso + + + + + + + + + + Cross Snake (preview) + 2021 + Fabrizio Caruso + + + + + + + + + + Cryptogram - Anagrams Crosswords (v1.1) + 2022 + MSXDev + + + + + + + + + + + Cryptogram - Anagrams Crosswords (v1.0) + 2022 + MSXDev + + + + + + + + + + + Cuncuna + 2020 + MSXDev + + + + + + + + + + + Cuncuna (older) + 1991 + Christian Córdova + + + + + + + + Daedalian Opus 2006 diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 7a70aa86ea5..c369983f01a 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -1953,6 +1953,8 @@ if (BUSES["MSX_SLOT"]~=null) then MAME_DIR .. "src/devices/bus/msx/cart/loveplus.h", MAME_DIR .. "src/devices/bus/msx/cart/majutsushi.cpp", MAME_DIR .. "src/devices/bus/msx/cart/majutsushi.h", + MAME_DIR .. "src/devices/bus/msx/cart/matra.cpp", + MAME_DIR .. "src/devices/bus/msx/cart/matra.h", MAME_DIR .. "src/devices/bus/msx/cart/moonsound.h", MAME_DIR .. "src/devices/bus/msx/cart/moonsound.cpp", MAME_DIR .. "src/devices/bus/msx/cart/msx_audio.cpp", diff --git a/src/devices/bus/msx/cart/cartridge.cpp b/src/devices/bus/msx/cart/cartridge.cpp index 65679d17ba2..2f0c8d64639 100644 --- a/src/devices/bus/msx/cart/cartridge.cpp +++ b/src/devices/bus/msx/cart/cartridge.cpp @@ -24,6 +24,7 @@ #include "korean.h" #include "loveplus.h" #include "majutsushi.h" +#include "matra.h" #include "moonsound.h" #include "msx_audio.h" #include "msxdos2.h" @@ -75,6 +76,7 @@ void msx_cart(device_slot_interface &device, bool is_in_subslot) device.option_add_internal(slotoptions::KOREAN_HYDLIDE2, MSX_CART_KOREAN_HYDLIDE2); device.option_add_internal(slotoptions::LOVEPLUS, MSX_CART_LOVEPLUS); device.option_add_internal(slotoptions::MAJUSTUSHI, MSX_CART_MAJUTSUSHI); + device.option_add_internal(slotoptions::MATRA_COMP, MSX_CART_MATRA_COMP); device.option_add_internal(slotoptions::MSXAUD_FSCA1, MSX_CART_MSX_AUDIO_FSCA1); device.option_add_internal(slotoptions::MSXAUD_HXMU900, MSX_CART_MSX_AUDIO_HXMU900); device.option_add_internal(slotoptions::MSXAUD_NMS1205, MSX_CART_MSX_AUDIO_NMS1205); diff --git a/src/devices/bus/msx/cart/matra.cpp b/src/devices/bus/msx/cart/matra.cpp new file mode 100644 index 00000000000..d49b34d148d --- /dev/null +++ b/src/devices/bus/msx/cart/matra.cpp @@ -0,0 +1,102 @@ +// license:BSD-3-Clause +// copyright-holders:Wilbert Pol +#include "emu.h" +#include "matra.h" + +namespace { + +class msx_cart_matra_comp_device : public device_t, public msx_cart_interface +{ +public: + msx_cart_matra_comp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + virtual std::error_condition initialize_cartridge(std::string &message) override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + +private: + template void bank_w(u8 data); + void disable_banking_w(u8 data); + + memory_bank_array_creator<4> m_rombank; + + u8 m_bank_mask; + bool m_banking_enabled; +}; + + +msx_cart_matra_comp_device::msx_cart_matra_comp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MATRA_COMP, tag, owner, clock) + , msx_cart_interface(mconfig, *this) + , m_rombank(*this, "rombank%u", 0U) + , m_bank_mask(0) + , m_banking_enabled(true) +{ +} + +void msx_cart_matra_comp_device::device_start() +{ + save_item(NAME(m_banking_enabled)); +} + +void msx_cart_matra_comp_device::device_reset() +{ + for (int i = 0; i < 4; i++) + m_rombank[i]->set_entry(i); + m_banking_enabled = true; +} + +std::error_condition msx_cart_matra_comp_device::initialize_cartridge(std::string &message) +{ + if (!cart_rom_region()) + { + message = "msx_cart_matra_comp_device: Required region 'rom' was not found."; + return image_error::INTERNAL; + } + + const u32 size = cart_rom_region()->bytes(); + const u16 banks = size / 0x2000; + + if (size > 256 * 0x2000 || size < 0x8000 || size != banks * 0x2000 || (~(banks - 1) % banks)) + { + message = "msx_cart_matra_comp_device: Region 'rom' has unsupported size."; + return image_error::INVALIDLENGTH; + } + + m_bank_mask = banks - 1; + + for (int i = 0; i < 4; i++) + m_rombank[i]->configure_entries(0, banks, cart_rom_region()->base(), 0x2000); + + page(1)->install_read_bank(0x4000, 0x5fff, m_rombank[0]); + page(1)->install_write_handler(0x5000, 0x5000, emu::rw_delegate(*this, FUNC(msx_cart_matra_comp_device::bank_w<0>))); + page(1)->install_read_bank(0x6000, 0x7fff, m_rombank[1]); + page(1)->install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_cart_matra_comp_device::bank_w<1>))); + page(2)->install_read_bank(0x8000, 0x9fff, m_rombank[2]); + page(2)->install_write_handler(0x8000, 0x8000, emu::rw_delegate(*this, FUNC(msx_cart_matra_comp_device::bank_w<2>))); + page(2)->install_read_bank(0xa000, 0xbfff, m_rombank[3]); + page(2)->install_write_handler(0xa000, 0xa000, emu::rw_delegate(*this, FUNC(msx_cart_matra_comp_device::bank_w<3>))); + page(2)->install_write_handler(0xba00, 0xba00, emu::rw_delegate(*this, FUNC(msx_cart_matra_comp_device::disable_banking_w))); + + return std::error_condition(); +} + +template +void msx_cart_matra_comp_device::bank_w(u8 data) +{ + if (m_banking_enabled) + m_rombank[Bank]->set_entry(data & m_bank_mask); +} + +void msx_cart_matra_comp_device::disable_banking_w(u8 data) +{ + // Assuming that any write here disables banking + m_banking_enabled = false; +} + +} // anonymous namespace + +DEFINE_DEVICE_TYPE_PRIVATE(MSX_CART_MATRA_COMP, msx_cart_interface, msx_cart_matra_comp_device, "msx_cart_matra_comp", "MSX Cartridge - Matra Compilation") diff --git a/src/devices/bus/msx/cart/matra.h b/src/devices/bus/msx/cart/matra.h new file mode 100644 index 00000000000..ed010b4d42d --- /dev/null +++ b/src/devices/bus/msx/cart/matra.h @@ -0,0 +1,14 @@ +// license:BSD-3-Clause +// copyright-holders:Wilbert Pol +#ifndef MAME_BUS_MSX_CART_MATRA_H +#define MAME_BUS_MSX_CART_MATRA_H + +#pragma once + +#include "bus/msx/slot/cartridge.h" + + +DECLARE_DEVICE_TYPE(MSX_CART_MATRA_COMP, msx_cart_interface) + + +#endif // MAME_BUS_MSX_CART_MATRA_H diff --git a/src/devices/bus/msx/cart/slotoptions.cpp b/src/devices/bus/msx/cart/slotoptions.cpp index e3ae9bc4e81..ec2da0dbf22 100644 --- a/src/devices/bus/msx/cart/slotoptions.cpp +++ b/src/devices/bus/msx/cart/slotoptions.cpp @@ -52,6 +52,7 @@ char const *const KOREAN_126IN1 = "korean_126in1"; char const *const KOREAN_HYDLIDE2 = "korean_hydlide2"; char const *const LOVEPLUS = "loveplus"; char const *const MAJUSTUSHI = "majutsushi"; +char const *const MATRA_COMP = "matra_comp"; char const *const MM256K = "mm256k"; char const *const MM512K = "mm512k"; char const *const MM768K = "mm768k"; diff --git a/src/devices/bus/msx/cart/slotoptions.h b/src/devices/bus/msx/cart/slotoptions.h index 44fedd84707..7bda2112d08 100644 --- a/src/devices/bus/msx/cart/slotoptions.h +++ b/src/devices/bus/msx/cart/slotoptions.h @@ -54,6 +54,7 @@ extern char const *const KOREAN_126IN1; extern char const *const KOREAN_HYDLIDE2; extern char const *const LOVEPLUS; extern char const *const MAJUSTUSHI; +extern char const *const MATRA_COMP; extern char const *const MM256K; extern char const *const MM512K; extern char const *const MM768K; -- cgit v1.2.3