-brankp_cart.xml, ekara_cart.xml, hikara.xml: Fixed up metadata.

* Fixed titles.
* Added details from cartridge labels.
* Added track list for Hi-kara user cartridge.

-formats/fs_cbmdos.cpp: More const
This commit is contained in:
Vas Crabb 2024-05-21 07:34:47 +10:00
parent cc42b2bf56
commit 9ab890331a
6 changed files with 66 additions and 37 deletions

View File

@ -37,6 +37,7 @@ Known carts:
<description>J-Pop Blue</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="ジェイポップブルー" />
<info name="serial" value="2315998" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -46,9 +47,10 @@ Known carts:
</software>
<software name="aikatsu" supported="no">
<description>Aikatsu Ver. Best</description>
<description>Aikatsu! Idol Katsudō!</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="アイカツ!アイドルカツドウ!" />
<info name="serial" value="2315999" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x800000">
@ -61,6 +63,7 @@ Known carts:
<description>J-Pop - Strawberry</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="ジェイポップストロベリー" />
<info name="serial" value="2316073" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -73,6 +76,7 @@ Known carts:
<description>J-Pop - Green</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="ジェイポップグリーン" />
<info name="serial" value="2316095" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -85,6 +89,7 @@ Known carts:
<description>J-Pop - Pink</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="ジェイポップピンク" />
<info name="serial" value="2316096" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -97,6 +102,7 @@ Known carts:
<description>Kid's Pop - Lemon Yellow</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="キッズポップレモンイエロー" />
<info name="serial" value="2316097" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -160,6 +166,7 @@ Known carts:
<description>Kid's Pop - Red</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="キッズポップレッド" />
<info name="serial" value="2333253" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -184,6 +191,7 @@ Known carts:
<description>Kid's Pop - Apple Green</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="キッズポップアップルグリーン" />
<info name="serial" value="2336074" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -196,6 +204,7 @@ Known carts:
<description>J-Pop - Grapefruit</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="ジェイポップグレープフルーツ" />
<info name="serial" value="2336075" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -209,6 +218,7 @@ Known carts:
<year>2015</year>
<publisher>Bandai</publisher>
<info name="serial" value="2336076" />
<info name="alt_title" value="ディズニードリームヒットソング" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x800000">
<rom name="Disney_mx25l6406e_c22017.BIN" size="0x800000" crc="777a37de" sha1="27116702adbaed782677b3f64215c4f0f022fa65" />
@ -220,6 +230,7 @@ Known carts:
<description>J-Pop - Mint</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="ジェイポップミント" />
<info name="serial" value="2350534" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">
@ -232,6 +243,7 @@ Known carts:
<description>Best Hit Song</description>
<year>2015</year>
<publisher>Bandai</publisher>
<info name="alt_title" value="ベストヒットソング" />
<info name="serial" value="2350535" />
<part name="cart" interface="bkrankp_cart">
<dataarea name="rom" size="0x400000">

View File

@ -315,7 +315,7 @@ license:CC0-1.0
Japanese cart listing (by M code) (M-x on cartridge / box, MC in cart identifier code)
M-1 *MC0001-ATM Artist Mini Volume 1 (Aya Matsuura)
M-2 *MC0002-ATM Artist Mini Volume 2 (PIKA☆NCHI, A・RA・SHI)
M-2 *MC0002-ATM Artist Mini Volume 2 (PIKA☆NCHI, A·RA·SHI, etc.)
M-3 *MC0003-ATM Artist Mini Volume 3 (Morning Musume)
M-4 *MC0004-ATM Artist Mini Volume 4 (w-inds)
M-5 *MC0005-KSM Kids Song Mini Volume 1 (TV Song)
@ -324,7 +324,7 @@ license:CC0-1.0
M-8 *MC0008-KSM Kids Song Mini Volume 3
M-9 *MC0009-JPM J-Pop Mix Mini Volume 1
M-10 *MC0010-ATM Artist Mini Volume 6 (Utada Hikaru)
M-11 *MC0011-KSM Kids Song Mini Volume 4 (Fantastic)
M-11 *MC0011-KSM Kids Song Mini Volume 4 (Micky Mouse March, Hoshi ni Negai O, etc.)
M-12 *MC0012-ATM Artist Mini Volume 7 (Ayumi Hamasaki)
M-13 *MC0013-KSM Kids Song Mini Volume 5
M-14 *MC0014-ATM Artist Mini Volume 8 (BoA)
@ -371,7 +371,7 @@ license:CC0-1.0
S-14 *SC0014-SAI Saiten Cartridge Challenge Idol vol.4
S-15 *SC0015-DCS Saiten Cartridge Detective Conan Vol.2
S-16 *SC0016-SAI Saiten Cartridge Nesshō vol. 5
S-17 *SC0017-SAI Kids' Challenge Vol.2
S-17 *SC0017-SAI Kids' Challenge Vol.2 (Te o Tsunagō, Anpanman no March, etc.)
S-18 *SC0018-SAI Saiten Cartridge Challenge Artist Vol.1 (Morning Musume, Tanpopo, Petit Moni, Gotō Maki)
S-19 *SC0019-SAI Saiten Cartridge Nesshō vol. 6
S-20 *SC0020-SAI Saiten Cartridge Challenge Idol vol.5
@ -419,7 +419,7 @@ license:CC0-1.0
*KR-1 Kirarin Revolution (comes in kira kara Starter Set bundled with Kirarin Revolution microphone) (inside cart is marked AC0009-KIR)
*BX01-MOR Morning Musume Special (sticker inside cart is marked CS019-004A)
*PR-01 MNG (c)2002 Morning Musume - I'm Here! (single song 'not for sale' cartridge)
*PR-01 MNG (c)2002 Premium Cartridge Koko ni Iru Zee! Morning Musume (single song 'not for sale' cartridge)
PR-02 AYY (c)2003 Aya Matsuura - Prairies Man (single song 'not for sale' cartridge)
*PR-06 Misora Hibari (inside cart is marked AC0009)
@ -1791,9 +1791,10 @@ license:CC0-1.0
</software>
<software name="dc0004">
<description>Dream Cartridge: TV Pop Junior Vol.8 (Japan) (DC0004-TPJ)</description>
<description>Dream Cartridge: TV Pop Junior Vol.8 (Happy Lucky - Onegai Mirmo, mini-moni - Telephone! Ring Ring Ring, etc.) (Japan) (DC0004-TPJ)</description>
<year>2004</year>
<publisher>Takara</publisher>
<info name="alt_title" value="ドリームカートリッジ TVPOPジュニア Vol.8 (ハッピー♥ラッキー~お願いミルモ~/ミニモニ。テレフォン!リンリンリン/他)"/> <!-- from cover art -->
<sharedfeat name="compatibility" value="EKARA,POPIRA,TAIKO"/>
<part name="cart" interface="ekara_cart">
<feature name="slot" value="rom_24lc02"/>
@ -1849,10 +1850,10 @@ license:CC0-1.0
</software>
<software name="dc0009">
<description>Dream Cartridge: TV Pop Junior Vol.10 (Japan) (DC0009-TPJ)</description>
<description>Dream Cartridge: TV Pop Junior Vol.10 (Bon Voyage!, Kimi to Yakusoku Shita Yasashī Ano Basho Made, etc.) (Japan) (DC0009-TPJ)</description>
<year>2004</year>
<publisher>Takara</publisher>
<info name="alt_title" value="ドリームカートリッジ TVPOPジュニア"/> <!-- from cover art -->
<info name="alt_title" value="ドリームカートリッジ TVPOPジュニア (BON VOYAGE!/君と約束した優しいあの場所まで/他)"/> <!-- from cover art -->
<info name="alt_title" value="TV POPジュニアvol.10"/> <!-- shown on-screen when run on Popira -->
<sharedfeat name="compatibility" value="EKARA,POPIRA,TAIKO"/>
<part name="cart" interface="ekara_cart">
@ -2297,9 +2298,10 @@ license:CC0-1.0
</software>
<software name="mc0002">
<description>Artist Mini Volume 2 (PIKA☆NCHI, A・RA・SHI) (Japan) (MC0002-ATM)</description>
<description>Artist Mini Volume 2 (PIKA☆NCHI, A·RA·SHI, etc.) (Japan) (MC0002-ATM)</description>
<year>2003</year>
<publisher>Takara</publisher>
<info name="alt_title" value="アーティストミニ mini vol.2 (PIKA☆NCHIA·RA·SHI他)"/>
<sharedfeat name="compatibility" value="EKARA"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x080000">
@ -2413,9 +2415,10 @@ license:CC0-1.0
</software>
<software name="mc0011">
<description>Kids Song Mini Volume 4 (Fantastic) (Japan) (MC0011-KSM)</description>
<description>Kids Song Mini Volume 4 (Micky Mouse March, Hoshi ni Negai O, etc.) (Japan) (MC0011-KSM)</description>
<year>2003</year>
<publisher>Takara</publisher>
<info name="alt_title" value="アーティストミニ mini vol.4 (ミッキーマウス・マーチ/星に願いを/他)"/>
<sharedfeat name="compatibility" value="EKARA"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x080000">
@ -2722,9 +2725,10 @@ license:CC0-1.0
</software>
<software name="sc0013">
<description>Saiten Cartridge Nesshō vol. 4 (Japan) (SC0013-SAI)</description>
<description>Saiten Cartridge Nesshō vol. 4 (Naminori Johnny, Kanashimi wa Yuki no Yō Ni, etc.) (Japan) (SC0013-SAI)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="採点カートリッジ 熱唱 vol. 4 (波乗りジョニー/悲しみは雪のように/他)"/>
<sharedfeat name="compatibility" value="EKARA"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
@ -2773,9 +2777,10 @@ license:CC0-1.0
</software>
<software name="sc0017">
<description>Kids' Challenge Vol.2 (Japan) (SC0017-SAI)</description>
<description>Kids' Challenge Vol.2 (Te o Tsunagō, Anpanman no March, etc.) (Japan) (SC0017-SAI)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="採点カートリッジ キッズチャレンジ Vol.2 (てをつなごう/アンパンマンのマーチ/他)"/>
<sharedfeat name="compatibility" value="EKARA"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
@ -2952,9 +2957,10 @@ license:CC0-1.0
</software>
<software name="pr01">
<description>PR-01 Morning Musume - I'm Here! (Not for Sale, Japan)</description>
<description>PR-01 Premium Cartridge Koko ni Iru Zee! Morning Musume (Not for Sale, Japan)</description>
<year>2002</year>
<publisher>Takara</publisher>
<info name="alt_title" value="プレミアムカートリッジ ここにいるぜえ! モーニング娘。" />
<sharedfeat name="compatibility" value="EKARA"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x80000">
@ -2993,10 +2999,10 @@ license:CC0-1.0
</software>
<software name="gs1">
<description>Natsukashi no Meikyoku-shū (Japan)</description>
<description>Natsukashi no Meikyoku-shū (Akatonbo, Haru ga Kita, etc.) (Japan)</description>
<year>2002</year>
<publisher>Takara</publisher>
<info name="alt_title" value="懐かしの名曲集" />
<info name="alt_title" value="懐かしの名曲集 (赤蜻蛉/春が来た/他)" />
<sharedfeat name="compatibility" value="EKARA,POPIRA"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">

View File

@ -80,6 +80,11 @@ license:CC0-1.0
</part>
</software>
<!-- this one has some songs programmed into it:
崖の上のポニョ 藤岡藤巻と大橋のぞみ Gake no Ue no Ponyo Fujioka Fujimaki & Ōhashi Nozomi
タンタンターン! MilkyWay Tan Tan Tān! MilkyWay
ハートのエースが出てこない キャンディーズ Heart no Ace ga Detekonai Candies
プリキュア5、スマイル go go! 工藤真由 PreCure 5, Smile Go Go! Kudō Mari -->
<software name="user5a" cloneof="user5" supported="no">
<description>Hi-kara 5-song capacity user cartridge (used, with 4 songs) (Japan)</description>
<year>2008</year>
@ -232,9 +237,10 @@ license:CC0-1.0
</software>
<software name="pokemon" supported="no">
<description>Pocket Monsters Special</description>
<description>Utatte Asonde! Best Hit Pokémon</description>
<year>2008</year>
<publisher>Takara Tomy</publisher>
<info name="alt_title" value="うたってあそんで!ベストヒットポケモン"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x200000">
<rom name="r-08b0541.u1" size="0x200000" crc="8b6a6d4b" sha1="5f264bff2deedbd61d844c4f8ba4421ac598636c"/>
@ -243,9 +249,10 @@ license:CC0-1.0
</software>
<software name="ciao" supported="no">
<description>Ciao Special</description>
<description>Ciao Best Hit Cartridge</description>
<year>2009</year>
<publisher>Takara Tomy</publisher>
<info name="alt_title" value="ちゃお ベストヒットカートリッジ"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x200000">
<rom name="cc0907001.u1" size="0x200000" crc="45f6b2a3" sha1="b3b1b3f269b128a2b09aa932f77d53da53f6130f"/>

View File

@ -42,9 +42,9 @@
/CS9 19
/CSA 20
Comelta DRAC-1 expansion modules use a 64-pin edge connector with an
external manual reset input and more power rails, but without some
control signals:
Comelta DRAC-1 expansion modules use a 96-pin Eurocard connector with row
b unused. Has an external manual reset input and more power rails, but
omits some control signals:
+25V a 1 c +25V
external manual reset a 2 c reserved

View File

@ -16,6 +16,7 @@ Current limitations:
***************************************************************************/
#include "fs_cbmdos.h"
#include "d64_dsk.h"
#include "fsblk.h"
@ -30,6 +31,7 @@ Current limitations:
#include <string_view>
#include <tuple>
namespace fs {
const cbmdos_image CBMDOS;
};
@ -390,7 +392,7 @@ err_t impl::file_create(const std::vector<std::string> &path, const meta_data &m
if (!result)
{
// Claim a next directory sector
auto [err, new_sector] = claim_track_sector(DIRECTORY_TRACK);
auto const [err, new_sector] = claim_track_sector(DIRECTORY_TRACK);
if (err != ERR_OK)
return err;
auto new_block = read_sector(DIRECTORY_TRACK, new_sector);
@ -409,7 +411,7 @@ err_t impl::file_create(const std::vector<std::string> &path, const meta_data &m
sector = new_sector;
}
auto [err, file_track, file_sector] = claim_sector();
auto const [err, file_track, file_sector] = claim_sector();
if (err != ERR_OK)
return err;
@ -441,7 +443,7 @@ err_t impl::file_write(const std::vector<std::string> &path, const std::vector<u
u8 dir_track = 0;
u8 dir_sector = 0;
u8 dir_file_index = 0;
auto callback = [&result, &dir_track, &dir_sector, &dir_file_index, path_part](u8 track, u8 sector, u8 file_index, const cbmdos_dirent &dirent)
auto const callback = [&result, &dir_track, &dir_sector, &dir_file_index, path_part] (u8 track, u8 sector, u8 file_index, const cbmdos_dirent &dirent)
{
bool found = strtrimright_cbm(dirent.m_file_name) == path_part;
if (found)
@ -499,7 +501,7 @@ err_t impl::file_write(const std::vector<std::string> &path, const std::vector<u
while (track_to_free != CHAIN_END)
{
err_t err = free_sector(track_to_free, sector_to_free);
err_t const err = free_sector(track_to_free, sector_to_free);
if (err != ERR_OK)
return err;
datablk = read_sector(track_to_free, sector_to_free);
@ -593,7 +595,7 @@ std::tuple<err_t, u8, u8> impl::claim_sector() const
{
for (int track = 0; track < m_max_track - 1; track++)
{
auto [err, sector] = claim_track_sector(s_data_track_order[track]);
auto const [err, sector] = claim_track_sector(s_data_track_order[track]);
if (err == ERR_OK)
return std::make_tuple(ERR_OK, s_data_track_order[track], sector);
if (err != ERR_NO_SPACE)
@ -643,13 +645,13 @@ fsblk_t::block_t impl::read_sector(int track, int sector) const
std::optional<impl::cbmdos_dirent> impl::dirent_from_path(const std::vector<std::string> &path) const
{
if (path.size() != 1)
return { };
return std::nullopt;
std::string_view path_part = path[0];
std::optional<cbmdos_dirent> result;
auto callback = [&result, path_part](u8 track, u8 sector, u8 file_index, const cbmdos_dirent &dirent)
auto const callback = [&result, path_part] (u8 track, u8 sector, u8 file_index, const cbmdos_dirent &dirent)
{
bool found = strtrimright_cbm(dirent.m_file_name) == path_part;
bool const found = strtrimright_cbm(dirent.m_file_name) == path_part;
if (found)
result = dirent;
return found;
@ -670,7 +672,8 @@ void impl::iterate_directory_entries(const std::function<bool(u8 track, u8 secto
{
auto entries = iter.dirent_data();
for (int file_index = 0; file_index < SECTOR_DIRECTORY_COUNT; file_index++) {
for (int file_index = 0; file_index < SECTOR_DIRECTORY_COUNT; file_index++)
{
if (entries[file_index].m_file_type != 0x00)
{
if (callback(iter.track(), iter.sector(), file_index, entries[file_index]))
@ -687,7 +690,8 @@ void impl::iterate_all_directory_entries(const std::function<bool(u8 track, u8 s
{
auto entries = iter.dirent_data();
for (int file_index = 0; file_index < SECTOR_DIRECTORY_COUNT; file_index++) {
for (int file_index = 0; file_index < SECTOR_DIRECTORY_COUNT; file_index++)
{
if (callback(iter.track(), iter.sector(), file_index, entries[file_index]))
return;
}
@ -811,7 +815,7 @@ const std::array<impl::cbmdos_dirent, impl::SECTOR_DIRECTORY_COUNT> &impl::block
u8 impl::block_iterator::size() const
{
return m_track != CHAIN_END ? SECTOR_DATA_BYTES : m_sector - 1;
return (m_track != CHAIN_END) ? SECTOR_DATA_BYTES : (m_sector - 1);
}
} // anonymous namespace

View File

@ -1636,7 +1636,7 @@ void xavix_hikara_state::machine_reset()
for (int j = 0; j < 5; j++)
{
u8 searchfor[5] = { 0x29, 0x80, 0xd0, 0x14, 0xad };
constexpr u8 searchfor[5] = { 0x29, 0x80, 0xd0, 0x14, 0xad };
if (ROM[i + j] == searchfor[j])
matchcount++;