From 9e331687a66d926194ce9b62000270e1f96d586e Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Sat, 28 Mar 2026 21:30:30 +0100 Subject: [PATCH] feat: generate defaults and extract compiled-in ROMs WiiSD.raw/sd.raw (128MB FAT32), eeprom.dat (PCSX2 DEV9), CMOS.ROM (fMSX RTC), key.txt (NP2kai), wildmidi.cfg (EasyRPG), NXEngine sprites.sif+tilekey.dat extracted from source headers, Frodo C64 ROMs extracted from compiled-in arrays, Custom.dat (ZC210 empty default). --- .gitignore | 4 + bios/Commodore/C64/1541 ROM | Bin 0 -> 16384 bytes bios/Commodore/C64/Basic ROM | Bin 0 -> 8192 bytes bios/Commodore/C64/Char ROM | Bin 0 -> 4096 bytes bios/Commodore/C64/Kernal ROM | Bin 0 -> 8192 bytes bios/Microsoft/MSX/CMOS.ROM | Bin 0 -> 52 bytes bios/NEC/PC-98/key.txt | 0 bios/RPG Maker/wildmidi.cfg | 5 ++ bios/Sony/PlayStation 2/eeprom.dat | 1 + bios/ZC/ZC210/zc210/sfx/Custom.dat | 0 database.json | 126 ++++++++++++++++++++++++++++- 11 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 bios/Commodore/C64/1541 ROM create mode 100644 bios/Commodore/C64/Basic ROM create mode 100644 bios/Commodore/C64/Char ROM create mode 100644 bios/Commodore/C64/Kernal ROM create mode 100644 bios/Microsoft/MSX/CMOS.ROM create mode 100644 bios/NEC/PC-98/key.txt create mode 100644 bios/RPG Maker/wildmidi.cfg create mode 100644 bios/Sony/PlayStation 2/eeprom.dat create mode 100644 bios/ZC/ZC210/zc210/sfx/Custom.dat diff --git a/.gitignore b/.gitignore index d6a0de50..d815bddc 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,10 @@ bios/Arcade/Arcade/ps2.zip bios/Arcade/Arcade/kf2k3pcb.zip bios/Arcade/Arcade/ms5pcb.zip +# Dolphin/Ishiiruka SD card images (128MB each) +bios/Nintendo/Wii/WiiSD.raw +bios/Nintendo/Wii/sd.raw + # EasyRPG soundfont (142MB) bios/RPG Maker/easyrpg/easyrpg.soundfont diff --git a/bios/Commodore/C64/1541 ROM b/bios/Commodore/C64/1541 ROM new file mode 100644 index 0000000000000000000000000000000000000000..c3c6a31e910249c3f4db1c82342e946bd21147db GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/bios/Commodore/C64/Basic ROM b/bios/Commodore/C64/Basic ROM new file mode 100644 index 0000000000000000000000000000000000000000..9e06923a0f04494a071ca9b5da1dd1796ef8e597 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/bios/Commodore/C64/Char ROM b/bios/Commodore/C64/Char ROM new file mode 100644 index 0000000000000000000000000000000000000000..191ac46020700b54be928ced7772b053d794fa72 GIT binary patch literal 4096 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