From 14da31b899a38e4b2ce5176ca4de364db83dd499 Mon Sep 17 00:00:00 2001 From: wilbertpol Date: Tue, 23 May 2023 17:54:32 +0100 Subject: msx1_cart.xml: Added 76 working items. (#11266) Also replaced Super Bros. World 1 (Korea) and renamed seahorse to seahorsea. New working software list items (msx1_cart.xml) ------------------------------- Safari X (Japan, The Links) [file-hunter] Sasa (Japan, alt 2) [file-hunter] Scramble Eggs (Korea) [file-hunter] Sea Horse (Arab, v1.01) [file-hunter] Skooter (Arab) [file-hunter] Snake It (Arab) [file-hunter] Snake It (Japan, alt) [file-hunter] Space Shuttle - A Journey into Space (Japan) [file-hunter] Star Trek (Japan) [file-hunter] Star Trek (Japan, alt) [file-hunter] Star Wars (Arab, alt) [file-hunter] Super Bioman 1 (Korea) [file-hunter] Super Bioman 1 (Korea, alt) [file-hunter] Super Game 25 (Korea) [file-hunter] Super Racer (Japan) [file-hunter] Super Snake (Japan, alt 3) [file-hunter] Supertripper (Spain, alt) [file-hunter] S.o.L.o. (English) [MSXDev] S.o.L.o. (Spanish) [MSXDev] Sacred Valley [MSXDev] Saimazoom (English) [MSXDev] Saimazoom (Spanish) [MSXDev] SD Sniper [MSXDev] Seleniak [MSXDev] Seleniak (alt) [MSXDev] Sensha Game (20211107) [ochixn] Sensha Game (20210318) [file-hunter] Sensha Game (20201128) [file-hunter] Shadow of the Pig (v1.3) [MSXDev] Shadow of the Pig (v1.2) [file-hunter] Shadow of the Pig [file-hunter] Shadow Switcher [MSXDev] Shmup! (v1.1) [MSXDev] Shmup! (v1.0) [MSXDev] Shouganai (v1.1) [MSXDev] Shouganai (v1.0) [MSXDev] Sink King [MSXDev] Skate Air (English) [MSXDev] Skate Air (Spanish) [MSXDev] SKULLrs [MSXDev] Slender - The Camping (v1.1) [MSXDev] Slender - The Camping (v1.0) [MSXDev] Slime Center [MSXDev] Snail Maze [MSXDev] Snake [file-hunter] Snoopy Town [file-hunter] Snowclimber 2K [file-hunter] Snowclimber [file-hunter] Soukoban Pocket Edition [MSXDev] Sp8 Invaders [MSXDev] Space Crussader (English) [MSXDev] Space Crussader (Spanish) [MSXDev] SpaceCat [MSXDev] SPC Super HOOPS [MSXDev] Speedjet Racers (demo) [file-hunter] Sphere Redux [file-hunter] Sport Racer [file-hunter] SquareBall [MSXDev] Stan, the Dreamer [MSXDev] Step (v1.2) [MSXDev] Step (v1.1) [file-hunter] Stevedore (demo) [file-hunter] Stratos (2005) [MSXDev] Stratos (2004) [MSXDev] Stray Cat (10th anniversary) [Imanok] Stray Cat (MSX cartridge shop) [file-hunter] Stray Cat [MSXDev] Stupid Martians (v1.1) [MSXDev] Stupid Martians (v1.0) [file-hunter] Subacuatic [MSXDev] Subacuatic (alt) [file-hunter] SubCommander (v1.02) [MSXDev] SubCommander (v1.01) [file-hunter] SubCommander (v1.00) [file-hunter] Sudoku [MSXDev] Super Ilevan [file-hunter] --- hash/msx1_cart.xml | 1020 +++++++++++++++++++++++++++++- src/devices/bus/msx/cart/cartridge.cpp | 3 + src/devices/bus/msx/cart/korean.cpp | 59 ++ src/devices/bus/msx/cart/korean.h | 22 + src/devices/bus/msx/cart/slotoptions.cpp | 1 + src/devices/bus/msx/cart/slotoptions.h | 1 + 6 files changed, 1090 insertions(+), 16 deletions(-) diff --git a/hash/msx1_cart.xml b/hash/msx1_cart.xml index c77ce371ff1..cae1d5d8851 100644 --- a/hash/msx1_cart.xml +++ b/hash/msx1_cart.xml @@ -109,8 +109,6 @@ ROM Hunter MK2 - ?? Rocket Roger - Seika/HAL Sense of Pitch ~ 音感トレーニング - Rittor Music/MCS Space Kit - [HBS-H020C] Sony -Space Shuttle ~ スペースシャトル〜宇宙への旅〜 - [R49X5517] Pony Canyon -Star Trek - Sega? Teleword - Yamaha Unit Connector - Yamaha V-Word - Canon Sale @@ -188,7 +186,6 @@ Seulgidori ~ 슬기돌이 - Space Sherlock Holmes 1 ~ 셜록호움즈 1탄 - Clover Sky Fighter - Clover Space War 3 ~ 제3차 우주대전쟁 - Aproman -Super Bioman I - Hello Soft Super Bioman II - Hello Soft Super Bioman III - Hello Soft Tetris - Saeron @@ -10656,6 +10653,18 @@ kept for now until finding out what those bytes affect... + + Safari X (Japan, The Links) + 1985 + Policy + + + + + + + + Salamander (Japan) 1987 @@ -10729,6 +10738,20 @@ kept for now until finding out what those bytes affect... + + Sasa (Japan, alt 2) + 1984 + ASCII + + + + + + + + + + Saurusland (Japan) @@ -10800,6 +10823,19 @@ kept for now until finding out what those bytes affect... + + + Scramble Eggs (Korea) + 19?? + <unknown> + + + + + + + + Sea Hunter (Europe) 1984 @@ -11104,6 +11140,21 @@ kept for now until finding out what those bytes affect... + + Snake It (Japan, alt) + 1987 + Seika Romox + + + + + + + + + + + Sofia (Japan) 1988 @@ -11208,6 +11259,20 @@ kept for now until finding out what those bytes affect... + + Space Shuttle - A Journey into Space (Japan) + 1988 + Pony Canyon + + + + + + + + + + Space Trouble (Japan) 1984 @@ -11368,6 +11433,30 @@ kept for now until finding out what those bytes affect... + + Star Trek (Japan) + 1986 + SEGA + + + + + + + + + + Star Trek (Japan, alt) + 1986 + SEGA + + + + + + + + Starship Simulator (Japan) 1984 @@ -11521,11 +11610,37 @@ kept for now until finding out what those bytes affect... + + Super Bioman 1 (Korea) + 199? + Zemina + + + + + + + + + + + Super Bioman 1 (Korea, alt) + 199? + Zemina + + + + + + + + + Super Bioman 4 (Korea) 199? Zemina - + @@ -11590,6 +11705,19 @@ kept for now until finding out what those bytes affect... + + Super Bros. World 1 (Korea) + 19?? + Clover + + + + + + + + + Super Bubble Bobble (Korea) 1989 @@ -11673,6 +11801,19 @@ kept for now until finding out what those bytes affect... + + Super Game 25 (Korea) + 1996 + Zemina + + + + + + + + + Super Golf (Japan) @@ -11728,6 +11869,19 @@ kept for now until finding out what those bytes affect... + + Super Racer (Japan) + 1985 + ASCII + + + + + + + + + Super Snake (Japan) 1983 @@ -11772,6 +11926,20 @@ kept for now until finding out what those bytes affect... + + Super Snake (Japan, alt 3) + 1983 + HAL Kenkyuujo + + + + + + + + + + Super Soccer (Japan) 1985 @@ -11813,6 +11981,19 @@ kept for now until finding out what those bytes affect... + + Supertripper (Spain, alt) + 1985 + Sony Spain + + + + + + + + + Sweet Acorn (Japan) 1984 @@ -12745,7 +12926,7 @@ kept for now until finding out what those bytes affect... - + @@ -15959,6 +16140,21 @@ legacy FM implementations cannot find it. + Sea Horse (Arab, v1.01) + 1984 + Al Alamiah + + + + + + + + + + + + Sea Horse (Arab) 1984 Al Alamiah @@ -16125,6 +16321,19 @@ legacy FM implementations cannot find it. + + Skooter (Arab) + 1987 + Al Alamiah + + + + + + + + + Smartness Examine 1 (Arab, v1.02) 1985 @@ -16170,6 +16379,19 @@ legacy FM implementations cannot find it. + + Snake It (Arab) + 1986 + Al Alamiah + + + + + + + + + Space Arithmetic (Arab) 1985 @@ -16190,7 +16412,6 @@ legacy FM implementations cannot find it. 1986 Al Alamiah - @@ -16199,6 +16420,19 @@ legacy FM implementations cannot find it. + + Star Wars (Arab, alt) + 1986 + Al Alamiah + + + + + + + + + Sulhof Arab Logo (Arab, v1.25) 1987 @@ -17683,22 +17917,776 @@ legacy FM implementations cannot find it. - - - Super Bros. World 1 - 19?? - Clover - + + + + + S.o.L.o. (English) + 2022 + <homebrew> + - + + + + + + + + + S.o.L.o. (Spanish) + 2022 + <homebrew> + + + + + + + + + + + Sacred Valley + 2022 + <homebrew> + + + + + + + + + + + Saimazoom (English) + 2005 + <homebrew> + + + - + + + Saimazoom (Spanish) + 2005 + <homebrew> + + + + + + + + - + + SD Sniper + 2021 + <homebrew> + + + + + + + + + + + Seleniak + 2004 + <homebrew> + + + + + + + + + + + Seleniak (alt) + 2004 + <homebrew> + + + + + + + + + + + Sensha Game (20211107) + 2021 + <homebrew> + + + + + + + + + + + Sensha Game (20210318) + 2021 + <homebrew> + + + + + + + + + + + Sensha Game (20201128) + 2020 + <homebrew> + + + + + + + + + + + Shadow of the Pig (v1.3) + 2022 + <homebrew> + + + + + + + + + + + Shadow of the Pig (v1.2) + 2022 + <homebrew> + + + + + + + + + + + Shadow of the Pig (older) + 2022 + <homebrew> + + + + + + + + + + + Shadow Switcher + 2022 + <homebrew> + + + + + + + + + + + Shmup! (v1.1) + 2013 + <homebrew> + + + + + + + + + + + Shmup! (v1.0) + 2013 + <homebrew> + + + + + + + + + + + Shouganai (v1.1) + 2013 + <homebrew> + + + + + + + + + + + Shouganai (v1.0) + 2013 + <homebrew> + + + + + + + + + + + Sink King + 2004 + <homebrew> + + + + + + + + + + + Skate Air (English) + 2006 + <homebrew> + + + + + + + + + + + Skate Air (Spanish) + 2006 + <homebrew> + + + + + + + + + + + SKULLrs + 2017 + <homebrew> + + + + + + + + + + + Slender - The Camping (v1.1) + 2013 + <homebrew> + + + + + + + + + + + Slender - The Camping (v1.0) + 2013 + <homebrew> + + + + + + + + + + + Slime Center + 2017 + <homebrew> + + + + + + + + + + + Snail Maze + 2004 + <homebrew> + + + + + + + + + + + Snake + 2021 + <homebrew> + + + + + + + + + + + Snoopy Town + 2005 + <homebrew> + + + + + + + + + + + Snowclimber 2K + 2008 + <homebrew> + + + + + + + + + + + Snowclimber + 2003 + <homebrew> + + + + + + + + + + + Soukoban Pocket Edition + 2004 + <homebrew> + + + + + + + + + + + Sp8 Invaders + 2009 + <homebrew> + + + + + + + + + + + Space Crussader (English) + 2005 + <homebrew> + + + + + + + + + + + Space Crussader (Spanish) + 2005 + <homebrew> + + + + + + + + + + + SpaceCat + 2022 + <homebrew> + + + + + + + + + + + SPC Super HOOPS + 2020 + <homebrew> + + + + + + + + + + + Speedjet Racers (demo) + 2006 + <homebrew> + + + + + + + + + + + Sphere Redux + 2007 + <homebrew> + + + + + + + + + + + Sport Racer + 2006 + <homebrew> + + + + + + + + + + + SquareBall + 2021 + <homebrew> + + + + + + + + + + + Stan, the Dreamer + 2013 + <homebrew> + + + + + + + + + + + Step (v1.2) + 2021 + <homebrew> + + + + + + + + + + + Step (v1.1) + 2021 + <homebrew> + + + + + + + + + + + Stevedore (demo) + 2020 + <homebrew> + + + + + + + + + + + Stratos (2005) + 2005 + <homebrew> + + + + + + + + + + + Stratos (2004) + 2004 + <homebrew> + + + + + + + + + + + + Stray Cat (10th anniversary) + 2019 + <homebrew> + + + + + + + + + + + Stray Cat (MSX cartridge shop) + 2009 + MSX Cartridge Shop + + + + + + + + + + + Stray Cat + 2009 + <homebrew> + + + + + + + + + + + Stupid Martians (v1.1) + 2020 + <homebrew> + + + + + + + + + + + Stupid Martians (v1.0) + 2020 + <homebrew> + + + + + + + + + + + Subacuatic + 2012 + <homebrew> + + + + + + + + + + + Subacuatic (alt) + 2012 + <homebrew> + + + + + + + + + + + SubCommander (v1.02) + 2020 + <homebrew> + + + + + + + + + + + SubCommander (v1.01) + 2020 + <homebrew> + + + + + + + + + + + SubCommander (v1.00) + 2020 + <homebrew> + + + + + + + + + + + Sudoku + 2006 + <homebrew> + + + + + + + + + + + Super Ilevan + 1987 + <homebrew> + + + + + + + + T-Game 4 @@ -17721,7 +18709,7 @@ legacy FM implementations cannot find it. - + diff --git a/src/devices/bus/msx/cart/cartridge.cpp b/src/devices/bus/msx/cart/cartridge.cpp index 20871d5bee1..37d400a8fe7 100644 --- a/src/devices/bus/msx/cart/cartridge.cpp +++ b/src/devices/bus/msx/cart/cartridge.cpp @@ -22,6 +22,7 @@ #include "kanji.h" #include "konami.h" #include "korean.h" +#include "loveplus.h" #include "majutsushi.h" #include "moonsound.h" #include "msx_audio.h" @@ -66,9 +67,11 @@ void msx_cart(device_slot_interface &device, bool is_in_subslot) device.option_add_internal(slotoptions::KEYBOARD_MASTER, MSX_CART_KEYBOARD_MASTER); device.option_add_internal(slotoptions::KONAMI, MSX_CART_KONAMI); device.option_add_internal(slotoptions::KONAMI_SCC, MSX_CART_KONAMI_SCC); + device.option_add_internal(slotoptions::KOREAN_25IN1, MSX_CART_KOREAN_25IN1); device.option_add_internal(slotoptions::KOREAN_80IN1, MSX_CART_KOREAN_80IN1); device.option_add_internal(slotoptions::KOREAN_90IN1, MSX_CART_KOREAN_90IN1); device.option_add_internal(slotoptions::KOREAN_126IN1, MSX_CART_KOREAN_126IN1); + device.option_add_internal(slotoptions::LOVEPLUS, MSX_CART_LOVEPLUS); device.option_add_internal(slotoptions::MAJUSTUSHI, MSX_CART_MAJUTSUSHI); device.option_add_internal(slotoptions::MSXAUD_FSCA1, MSX_CART_MSX_AUDIO_FSCA1); device.option_add_internal(slotoptions::MSXAUD_HXMU900, MSX_CART_MSX_AUDIO_HXMU900); diff --git a/src/devices/bus/msx/cart/korean.cpp b/src/devices/bus/msx/cart/korean.cpp index 7fd2e3e9dfc..2337e35ddc2 100644 --- a/src/devices/bus/msx/cart/korean.cpp +++ b/src/devices/bus/msx/cart/korean.cpp @@ -3,11 +3,70 @@ #include "emu.h" #include "korean.h" +DEFINE_DEVICE_TYPE(MSX_CART_KOREAN_25IN1, msx_cart_korean_25in1_device, "msx_cart_korean_25in1", "MSX Cartridge - Korean 25-in-1") DEFINE_DEVICE_TYPE(MSX_CART_KOREAN_80IN1, msx_cart_korean_80in1_device, "msx_cart_korean_80in1", "MSX Cartridge - Korean 80-in-1") DEFINE_DEVICE_TYPE(MSX_CART_KOREAN_90IN1, msx_cart_korean_90in1_device, "msx_cart_korean_90in1", "MSX Cartridge - Korean 90-in-1") DEFINE_DEVICE_TYPE(MSX_CART_KOREAN_126IN1, msx_cart_korean_126in1_device, "msx_cart_korean_126in1", "MSX Cartridge - Korean 126-in-1") +msx_cart_korean_25in1_device::msx_cart_korean_25in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_KOREAN_25IN1, tag, owner, clock) + , msx_cart_interface(mconfig, *this) + , m_rombank(*this, "rombank%u", 0U) + , m_bank_mask(0) +{ +} + +void msx_cart_korean_25in1_device::device_reset() +{ + for (int i = 0; i < 4; i++) + m_rombank[i]->set_entry(m_bank_mask); +} + +std::error_condition msx_cart_korean_25in1_device::initialize_cartridge(std::string &message) +{ + if (!cart_rom_region()) + { + message = "msx_cart_korean_25in1_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_korean_25in1_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(0)->install_rom(0x0000, 0x1fff, cart_rom_region()->base() + (m_bank_mask * 0x2000)); + page(0)->install_write_handler(0x0000, 0x0000, emu::rw_delegate(*this, FUNC(msx_cart_korean_25in1_device::bank_w))); + page(1)->install_read_bank(0x4000, 0x5fff, m_rombank[0]); + page(1)->install_read_bank(0x6000, 0x7fff, m_rombank[1]); + page(2)->install_read_bank(0x8000, 0x9fff, m_rombank[2]); + page(2)->install_read_bank(0xa000, 0xbfff, m_rombank[3]); + + return std::error_condition(); +} + +void msx_cart_korean_25in1_device::bank_w(u8 data) +{ + for (int i = 0; i < 4; i++) + { + m_rombank[i]->set_entry((data - i) & m_bank_mask); + } +} + + + + + msx_cart_korean_80in1_device::msx_cart_korean_80in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, MSX_CART_KOREAN_80IN1, tag, owner, clock) , msx_cart_interface(mconfig, *this) diff --git a/src/devices/bus/msx/cart/korean.h b/src/devices/bus/msx/cart/korean.h index 841319dee47..82a88723917 100644 --- a/src/devices/bus/msx/cart/korean.h +++ b/src/devices/bus/msx/cart/korean.h @@ -8,11 +8,33 @@ #include "bus/msx/slot/cartridge.h" +DECLARE_DEVICE_TYPE(MSX_CART_KOREAN_25IN1, msx_cart_korean_25in1_device) DECLARE_DEVICE_TYPE(MSX_CART_KOREAN_80IN1, msx_cart_korean_80in1_device) DECLARE_DEVICE_TYPE(MSX_CART_KOREAN_90IN1, msx_cart_korean_90in1_device) DECLARE_DEVICE_TYPE(MSX_CART_KOREAN_126IN1, msx_cart_korean_126in1_device) +class msx_cart_korean_25in1_device : public device_t, public msx_cart_interface +{ +public: + msx_cart_korean_25in1_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: + void bank_w(u8 data); + + memory_bank_array_creator<4> m_rombank; + + u8 m_bank_mask; +}; + + class msx_cart_korean_80in1_device : public device_t, public msx_cart_interface { public: diff --git a/src/devices/bus/msx/cart/slotoptions.cpp b/src/devices/bus/msx/cart/slotoptions.cpp index 0269dfbaac8..f61e75af625 100644 --- a/src/devices/bus/msx/cart/slotoptions.cpp +++ b/src/devices/bus/msx/cart/slotoptions.cpp @@ -44,6 +44,7 @@ char const *const KANJI = "kanji"; char const *const KEYBOARD_MASTER = "keyboard_master"; char const *const KONAMI = "konami"; char const *const KONAMI_SCC = "konami_scc"; +char const *const KOREAN_25IN1 = "korean_25in1"; char const *const KOREAN_80IN1 = "korean_80in1"; char const *const KOREAN_90IN1 = "korean_90in1"; char const *const KOREAN_126IN1 = "korean_126in1"; diff --git a/src/devices/bus/msx/cart/slotoptions.h b/src/devices/bus/msx/cart/slotoptions.h index 557b887ffd1..64531e65fab 100644 --- a/src/devices/bus/msx/cart/slotoptions.h +++ b/src/devices/bus/msx/cart/slotoptions.h @@ -47,6 +47,7 @@ extern char const *const KANJI; extern char const *const KEYBOARD_MASTER; extern char const *const KONAMI; extern char const *const KONAMI_SCC; +extern char const *const KOREAN_25IN1; extern char const *const KOREAN_80IN1; extern char const *const KOREAN_90IN1; extern char const *const KOREAN_126IN1; -- cgit v1.2.3