From 89b22944efe467533df311457932fd52a138b511 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Sun, 18 Oct 2026 02:41:38 +0200 Subject: [PATCH] fix: collect the C-BIOS 0.29 notes msx-emu ships The entry documents the 0.29 notes and declared no hash, so the 0.23 notes in the C-BIOS machine folder were served by name. The file comes from MSX.emu's res/firmware at the profile's pin. --- bios/Other/msx-emu/cbios.txt | 231 +++++++++++++++++++++++++++++++ emulators/msx-emu.yml | 1 + tests/test_game_data_homonyms.py | 30 ++++ 3 files changed, 262 insertions(+) create mode 100644 bios/Other/msx-emu/cbios.txt diff --git a/bios/Other/msx-emu/cbios.txt b/bios/Other/msx-emu/cbios.txt new file mode 100644 index 00000000..3bb714d5 --- /dev/null +++ b/bios/Other/msx-emu/cbios.txt @@ -0,0 +1,231 @@ +C-BIOS 0.29 +=========== + +This software is a substitute BIOS which is can be used for running MSX +emulators. It currently supports only execution of cartridge image ("ROMs"). +Before you use it, you should read and accept the license (see below). + +On the C-BIOS web site, you can download newer versions, download the source +code, and report bugs. + +http://cbios.sourceforge.net/ + + +License +------- + +Copyright (c) 2002-2005 BouKiCHi. All rights reserved. +Copyright (c) 2003 Reikan. All rights reserved. +Copyright (c) 2004-2006,2008-2010 Maarten ter Huurne. All rights reserved. +Copyright (c) 2004-2006,2008-2011 Albert Beevendorp. All rights reserved. +Copyright (c) 2004-2005 Patrick van Arkel. All rights reserved. +Copyright (c) 2004,2010-2011 Manuel Bilderbeek. All rights reserved. +Copyright (c) 2004-2006 Joost Yervante Damad. All rights reserved. +Copyright (c) 2004-2006 Jussi Pitkänen. All rights reserved. +Copyright (c) 2004-2007 Eric Boon. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +History +------- + +ver 0.01 Initial +ver 0.02 2002-08-15(JST) + * Added original font and drawing screen. + * Added dump-mode. + * Changed recognition method of cartridges + to recognize cartridges taking priority. +ver 0.03 2002-08-19(JST) + * Based on a suggestion from Ms.Okei, + wrote 20h of BIOS(compare HL and DE). + In the result, shooting game of a certain company became runnable + more correctly. + Thank Ms.Okei!! +ver 0.04 2002-08-20(JST) + * Added initialize of FCC2h-FCC4h. + * Added function of GTSTCK and GTTRIG temporarily. + * Divided msxb.bin to halfs. + doing combining/copying with setb.bat now. +ver 0.05 2002-08-27(JST) + * Added INITGRP(only screen2), CHGMOD(graphic mode change routine), + a routine calls H.STKE. + * Rewrite memory recognition routine. + * Some bug fixes. + * Added sound test function. +ver 0.06 2002-09-01(JST) + * Fixed around of color. +ver 0.07 2002-09-09(JST) + * Added some sorts of keyboard routines. + * Added joystich function to GTSTCK and GTTRIG. +ver 0.08 2002-09-12(JST) + * Restructured memory initialize routine. + * Added error display routine. + * Fixed routine of finding kinds of cartridges. + * Fixed using method of EXPTBL. + * Added initialize of from RG8SAV to RG23SA. + * Now return within disabled interrupt from ENASLT routine. +ver 0.09 2002-09-19(JST) + * Made the rest half of font. + * Improved key input routine. + * Added CHPUT. With it, rewrote display routine. + * Fixed init_grp. + * Changed filenames to CBIOS.ROM, CBIOS_SUB.ROM. +ver 0.10 2002-09-20(JST) + * Fixed indent. + * and so on... +ver 0.10a 2002-09-22(JST) + * Fixed license. + * Added support of ROMs in page3. +ver 0.11 2002-09-22(JST) + * Small fix in init_sc5. +ver 0.12beta + 2002-09-25(JST) + * Added test routine for disk access. need DISK.ROM. + * Added init_sc7. + * Improved ENASLT. now finding cartridge uses ENASLT. + * Improved RAM detection. +ver 0.12 2002-09-27(JST) + * Changed finding cartridge again. + * Changed screen mode of cartridge running time. + * Fixed keyboard routine. + * Fixed stick routine against to interrupt. +ver 0.13 2002-10-02(JST) + * Based on info from Mr.Maarten (a member of openMSX developers), + fixed around of SCREEN 5. + For detail, switching line numbers, + temporary treatment for a bug of reading from VDP status register, + and so on. +ver 0.14 2002-10-10(JST) + * Rewrote comments in source within Japanese. +ver 0.15 2003-02-26(JST) + * Rewrote some of comments back to English again. + * Fixed non-assemblable condition becauseof lack of font file. + * Changed filename, some of label name, strings and so on. +ver 0.16 2003-04-16(JST) + * Separated sound test from source. (Disabled) +ver 0.16a 2003-06-01(JST) + * CHGMOD: When screen0/1, now load font to VRAM. + * CHPUT: Now support also screen1 not only screen0. +ver 0.16b 2003-08-10(JST) + * Added entry: INITXT, INIT32. + These were exist only as internal routine of CHGMOD. + * INITXT, INIT32: Fixed screen clear failure. + * CHPUT: Fixed scroll failure. +ver 0.17 2003-08-10(JST) + * Changed LICENSE. + New LICENSE will be suitable in various situations. + e.g. use as a firmware for hand-made hardware. +ver 0.18 2004-12-18(CET) + * First release since moving to SourceForge. + * Much improved support for MSX2 games. + * Graphical boot logo. + * Included machine config files for several MSX emulators. + * Various bug fixes. +ver 0.19 2004-12-24(CET) + * Added support for SCREEN4 and SCREEN8. + * Added support for clock chip. + * Added support for palette. This fixes a lot of wrong colours. + * Stubbed many calls: non-implemented calls print their name on the + openMSX debugdevice (if present). + * Various bug fixes. +ver 0.20 2005-02-09(CET) + * Added an MSX2+ configuration, which includes V9958 and MSX MUSIC. + * Separate main ROMs for MSX1/MSX2/MSX2+. + * Implemented several MSX2 specific routines, including BLT*. + * Display is disabled when switching to a different screen mode. + * Improved CHPUT a lot; implemented control and escape codes. + * Rewrote key buffering; fixes bug of keys being repeated. + * New boot logo, even cooler than the previous one. + * New font, placed at a fixed address so all games can find it. + * Started work on a disk ROM, but it is not functional yet, so it + is not enabled in the configurations. + * Stubbed all non-implemented calls. + * Various bug fixes. +ver 0.21 2005-06-07(CET) + * Fixed RuMSX configuration files, thanks to Rudolf Lechleitner. + * Rewrote ROM search code; now all ROMs are recognized. + Also a clear error message is printed for BASIC ROMs. + * New boot logo for MSX2 and MSX2+. + * Changed boot sequence: + Show logo, switch to SCREEN 1 and search for ROMs. + * Improved video code; fixes several games. + * Various bug fixes. +ver 0.22 2008-12-27(CET) + * Use separate logo ROM to save space in the main ROM. + * Set lower bits of PSG reg 15 before reading joystick trigger status. + * Improved RAM search. + * Many new routines implemented and existing implementations made + more complete, especially character I/O and bitmap graphics. + * Added lots of documentation to system variables. + * Added support for GNU assembler. + * Various bug fixes. +ver 0.23 2009-01-04(CET) + * Updated blueMSX configuration files, thanks to Benoît Delvaux. + * Fixed version reported by MSX1 logo ROM. + * Fixed several video routines so they work on MSX1 VDPs (TMS99xx). + * A couple of other bug fixes. +ver 0.24 2010-05-24(CET) + * VRAM size is now properly checked, fixing R-Type's V9938 detection. + * C-BIOS doesn't lie anymore about the interrupt frequency. + * Don't di; halt when no ROM is found, the warning in openMSX may be + confusing + * A few minor bug fixes and tweaks. +ver 0.25 2011-02-01(CET) + * C-BIOS now offers localized versions in the flavours INT (default), + JP and BR. + * Bug fixes for compatibility with Mirai, Family Billiards. + * A couple of other bug fixes. + * This version only compiles with Pasmo 0.5.3, due to lack of + standards in assembler directives... +ver 0.26 2014-11-02(CET) + * Restored support to compile with tniASM (v1.0 Beta 17 or higher) + * Moved to git, which means a.o.: archived changelog.txt, use git log + from now on + * Fixed VDP VRAM access timing for MSX1 VDP's + * Update openMSX configurations to the new structure + * Fixed bug blueMSX configurations + * Fixed build on Mac OS X and add support for "make dist" +ver 0.27 2014-11-05(CET) + * Fixed bug (regression) in filvrm on non-MSX1-VDP's + * Fixed some small bugs in openMSX configs + * Fixed line endings of this file +ver 0.28 2017-07-30(CEST) + * Fixed bug that prevented brackets and a few other keys from + generating characters when pressed +ver 0.29 2018-02-18(CET) + * Removed NLMSX configs. We don't think anyone is interested anymore + * Made generic international ROM config 60Hz and added an EU variant + at 50Hz default interrupt frequency +ver 0.29a 2018-09-23(CEST) + * Fixed metadata in openMSX configs for EU machines + +Special Thanks +-------------- + +People uploading MSX information to the internet. +People developing any kind of emulators. +All users. + +Font edit tool: + Gameboy Tile Designer version 2.2 + Copyright H. Mulder 1999 + diff --git a/emulators/msx-emu.yml b/emulators/msx-emu.yml index 936e2d19..6e07eb9d 100644 --- a/emulators/msx-emu.yml +++ b/emulators/msx-emu.yml @@ -241,6 +241,7 @@ files: bundled: true category: game_data size: 10469 + sha1: "78ae5c049bc94ee1284536c419388b1ab7ac218c" description: "C-BIOS 0.29 release notes and licence, bundled beside the machine folders" note: >- Shipped in the application bundle. No code reads it. diff --git a/tests/test_game_data_homonyms.py b/tests/test_game_data_homonyms.py index 018f8a3f..9ea68c41 100644 --- a/tests/test_game_data_homonyms.py +++ b/tests/test_game_data_homonyms.py @@ -485,5 +485,35 @@ class HeldFilesAreNotUnsourceable(unittest.TestCase): self.assertEqual(stale, []) +class BundledFilesAreTheBuildTheyDescribe(unittest.TestCase): + """A bundled file is documented from one build. msx-emu's cbios.txt is the + C-BIOS 0.29 notes (10469 bytes); the collection held the 0.23 notes and + served them by name. future-pinball-fploader documents BAM 1.5-408 and + received the 1.5-360 BAM.dll. A namesake of another size is another + build: the entry needs a hash, its own bytes, or `unsourceable:`.""" + + def test_no_bundled_entry_resolves_to_another_size(self): + db_path = REPO_ROOT / "database.json" + if not db_path.exists(): + self.skipTest("database.json is not built") + db = load_database(str(db_path)) + wrong = [] + for owner, profile in load_emulator_profiles(str(REPO_ROOT / "emulators")).items(): + for entry in profile.get("files", []): + if not isinstance(entry, dict) or not entry.get("bundled"): + continue + if entry.get("unsourceable") or not entry.get("size"): + continue + if any(entry.get(k) for k in ("sha1", "md5", "sha256", "crc32")): + continue + path, _status = resolve_local_file( + dict(entry, source_profile=owner), db, + dest_hint=entry.get("path") or entry["name"], + ) + if path and os.path.getsize(path) != entry["size"]: + wrong.append((owner, entry["name"], path)) + self.assertEqual(wrong, []) + + if __name__ == "__main__": unittest.main()