Commit Graph
2742 Commits
Author SHA1 Message Date
Abdessamad Derraz bd4da5caff chore: merge the rigelengine profile 2026-10-22 04:38:30 +02:00
Abdessamad Derraz 241b50c749 feat: collect duke nukem ii shareware data
From archive.org msdos_DUKE2_shareware DUKE2.zip (md5 bc30f5520e452bac6866deb37ef918b2), the release RigelEngine points to. The archive holds neither LCR.MNI nor O1.MNI, the registered markers.
2026-10-22 04:38:00 +02:00
Abdessamad Derraz 515758e9c6 feat: add rigelengine profile
Duke Nukem II engine. NUKEM2.CMP validates the game path and holds every asset; the five intro movies are skipped when absent.
2026-10-22 04:37:55 +02:00
Abdessamad Derraz ec4c11a2b2 feat: add windows script 5.7 for future pinball 2026-10-22 04:28:43 +02:00
Abdessamad Derraz b7b407698f fix: count files the collection lacks apart
The pack check failed a pack for a declared file nothing in the collection resolves to, though the builder cannot ship it and verify already reports it missing. Such destinations are now counted as not in the collection; a held file absent from the pack stays an error.
2026-10-22 04:28:43 +02:00
Abdessamad Derraz e05844e611 chore: merge the handheld port 2026-10-22 04:12:09 +02:00
Abdessamad Derraz 841017c887 chore: merge the minui family platforms 2026-10-22 04:09:17 +02:00
Abdessamad Derraz c7be31699f docs: document the minui family platforms 2026-10-22 04:04:40 +02:00
Abdessamad Derraz 43bdf83973 feat: add minui, nextui and myminui platforms
minarch hands every core SDCARD_PATH/Bios/<TAG> as its system directory
and opens no file in it. The scrapers read each pak's launch.sh (core,
tag, devices), each device's core makefile (the project a library is
built from: MyMinUI's dosbox_libretro.so is dosbox-pure) and the minarch
statement, at a pinned commit. The installer recognises the card from
.system/version.txt and refuses a folder inside it.
2026-10-22 04:04:36 +02:00
Abdessamad Derraz d0802c5360 feat: place core files per handed system dir
A platform can hand each libretro core a system directory of its own
(core_system_dirs). platform_layouts then gives one view per directory,
so the gap report, the builder, the manifest, slots and cross_reference
place a core's files below each folder it is handed, and a core handed
none gets no file. Resolution strips the folder again and searches the
collection by the core's own path.
2026-10-22 04:04:31 +02:00
Abdessamad Derraz e7edae0101 chore: merge android retroarch folder per build
# Conflicts:
#	install.ps1
#	install.sh
2026-10-22 04:00:16 +02:00
Abdessamad Derraz 8a7e5aa829 fix: name the offline screen for what it does
install.py reads the file list before it checks a single file, so
without a connection nothing is checked: the screen says No connection
and offers to check again.
2026-10-22 03:59:56 +02:00
Abdessamad Derraz 7d87828b98 docs: explain the handheld port
The installer page says how to get the port (PortMaster's catalog once
accepted, or RetroBIOS.zip in the autoinstall folder), what it shows and
needs, and why it carries install.py. The download page links to it
from the handheld table.
2026-10-22 03:59:12 +02:00
Abdessamad Derraz 259fb14954 chore: merge the amberelec, emuelec, knulli lists
AmberELEC, PAN4ELEC and EmuELEC detection now installs their own lists
at /storage/roms, the root those lists are written against; KNULLI its
own list at /userdata/bios. JELOS, KOLOS, UnofficialOS and Arch R keep
RetroArch's list with the folder their retroarch.cfg names.
2026-10-22 03:58:48 +02:00
Abdessamad Derraz 87c81e9694 feat: ship the handheld port with each release
build_port.py runs after split_pack.py, so RetroBIOS.zip is in the
signed checksum list and uploaded with the packs. check_release.py takes
the port from that list: it is no pack, so release.json does not record
it.
2026-10-22 03:58:45 +02:00
Abdessamad Derraz ecadb3cb32 feat: add the RetroBIOS PortMaster port
ports/RetroBIOS runs install.py on a handheld with PortMaster's own
screens (pugwash fifo_control through PortMasterDialog.txt), using only
what PortMaster 2024.02.26 and the 8.5.23 copy JELOS ships. It reads the
installer through --events. scripts/build_port.py writes RetroBIOS.zip
in the layout PortMaster's release build gives a port, with the
install.py the bootstraps pin, reproducibly. tests/test_port drives the
screens with stubbed dialog functions and a fake installer.
2026-10-22 03:58:42 +02:00
Abdessamad Derraz 65362e628f feat: add --events output to the installer
One JSON object per line on stdout (detection, per-file and per-system
check, download progress, summary, exit code) and the usual text on
stderr, so a program driving install.py never parses prose. EVENT_KEYS
is the one schema. The installer page documents it, and a test holds the
two equal. The handheld port reads it.
2026-10-22 03:58:02 +02:00
Abdessamad Derraz 2071abf766 fix: resolve Android RetroArch folder per build
The Google Play and retroarch.com builds share com.retroarch and com.retroarch.aarch64 but build their defaults under different roots (RetroArch v1.22.2 MainMenuActivity.java:182-183). The build is told by the version code it records in retroarch.cfg, else by the folder it wrote. A Google Play folder Termux cannot write is named, as for DraStic and Flycast.
2026-10-22 03:52:19 +02:00
Abdessamad Derraz b372445a43 docs: offer the new platforms in the issue form 2026-10-22 03:43:53 +02:00
Abdessamad Derraz 44a9c8d9bb docs: list knulli, amberelec and emuelec
The download page drops a row whose platform has no pack in the
recorded release instead of linking a release that lacks it.
2026-10-22 03:42:25 +02:00
Abdessamad Derraz d488b14a7f feat: detect knulli, amberelec and emuelec
KNULLI keeps its markers and now installs its own list. AmberELEC is
found by NAME in os-release (its ID is coreelec), EmuELEC by ID.
2026-10-22 03:42:25 +02:00
Abdessamad Derraz 2bdac466a9 feat: add knulli, amberelec and emuelec platforms
Each OS publishes Batocera's systems dict (knulli-systems, and
batocera-systems at AmberELEC's newest prerelease commit and EmuELEC v4.8),
read with the shared parser. Cores come from each OS's own ES list.
AmberELEC and EmuELEC declare neogeo/ and ports/ beside bios/ from
/storage/roms, so their packs extract there and core_destination puts
core files under bios/.
2026-10-22 03:42:20 +02:00
Abdessamad Derraz 2fc62bd249 refactor: share the batocera-systems parser
extract_systems_dict, requirements_from_systems, platform_systems and
configgen_cores move to module level so the scrapers of lists with the
same shape read them with the same code.
2026-10-22 03:42:11 +02:00
Abdessamad Derraz 43bb0c9b29 feat: name Android BIOS folders out of reach
DraStic keeps its BIOS in its private data and Flycast in Android/data,
which Termux cannot write on Android 11 and later. An installed one is now
named with the files not copied, and a writable Flycast folder is a
standalone copy target.
2026-10-22 03:38:04 +02:00
Abdessamad Derraz 05d8f944a9 docs: cite RetroArch v1.22.2 for Android detection 2026-10-22 03:34:39 +02:00
Abdessamad Derraz 8dd463933e feat: follow a RetroDECK bios folder moved alone
RetroDECK moves each of its folders on its own and records the new place
in retrodeck.json paths (api_data_processing.sh:913-935). Only
rd_home_path was read, so files went to <home>/bios after a move.
2026-10-22 03:32:14 +02:00
Abdessamad Derraz e27a583975 feat: detect handheld systems by their own files
AmberELEC, EmuELEC, JELOS, KOLOS, UnofficialOS, ArchR, PAN4ELEC, dArkOS,
RetroOZ, spruceOS, CrossMix-OS, Onion, Allium, Koriki, MiyooCFW and plumOS
are found by what their builds write, named as they name themselves, and
installed to the system_directory of their RetroArch config, which follows
ArkOS and dArkOS to a second card. TrimUI stock, MinUI and a plumOS build
without a known folder are named and not installed to. Two unrelated
systems matching stop a run without a terminal.
2026-10-22 03:29:41 +02:00
Abdessamad Derraz ff2137de9d chore: record md5 of drastic free bios images
Both images hashed from three copies that agree byte for byte: the dArkOS, Koriki and P4ELEC trees.
2026-10-22 03:01:07 +02:00
Abdessamad Derraz bde78bff45 chore: regenerate database, manifests and exports 2026-10-21 17:46:37 +02:00
Abdessamad Derraz f2c0d13ab2 chore: merge round 4 fixes (links)
Both branches extracted RetroBat's Flycast BiosPath: value_folders
already produces the record, so the dedicated extractor is dropped and
its test reads the generic one.
2026-10-21 13:19:44 +02:00
Abdessamad Derraz 43fe5a7b15 chore: merge round 4 fixes (profiles) 2026-10-21 13:17:10 +02:00
Abdessamad Derraz 3e5deed8fd chore: merge round 4 fixes (retrobat) 2026-10-21 13:17:10 +02:00
Abdessamad Derraz 095d7772ac chore: merge round 4 fixes (mame) 2026-10-21 13:17:10 +02:00
Abdessamad Derraz d9809efa36 fix: pack emudeck libretro builds as dual mode
RetroArch_installCores (emuDeckRetroArch.sh) downloads flycast, mame,
melonds, mgba, mupen64plus_next, ppsspp and scummvm as libretro cores
next to their standalone apps. Listed as standalone only, they got one
layout: once Flycast's standalone files moved to flycast/bios/, the
libretro core lost dc/airlbios.zip, dc/naomi2.zip and dc/segasp.zip.
The scraper now writes them as dual_mode_cores.
2026-10-21 12:45:36 +02:00
Abdessamad Derraz 8036d36fe8 fix: drop names DraStic never opens
DraStic opens nds_bios_arm9.bin, nds_bios_arm7.bin and nds_firmware.bin and checks their size. Its nine aliases are in none of its binaries, and neither platform launcher passes them: ROCKNIX links the two BIOS names from its bios folder, and RetroPie runs DraStic from $md_conf_root/nds/drastic (drastic.sh:48), now a passes_path record. The collection answers DraStic's names with its DS dumps in generate_db, where repository names belong.
2026-10-21 12:44:33 +02:00
Abdessamad Derraz 20829d09ce fix: place launcher links and platform BIOS paths
A links record naming a file is where the emulator reads it: ROCKNIX links /storage/roms/bios/nds_bios_arm9.bin into DraStic's system folder (start_drastic.sh:37-41). $biosdir, ${biosPath} and $bios_path are the BIOS directory as RetroPie, EmuDeck and RetroDECK write it, and every place of those platforms was dropped as an unknown folder. A core name the launcher replaces is no longer packed when held: EmuDeck passes Complex_4627v1.03.bin to xemu (emuDeckXemu.sh:60-61), which never opens Complex_4627.bin.
2026-10-21 12:44:33 +02:00
Abdessamad Derraz bd6ab38fe1 feat: extract the remaining retrobat generators
The launcher layer now reads the Saturn emulators whose option replaces
the default path, DeSmuME's pair and firmware, the melonDS DSi files and
NAND region, jzIntv arguments, BlastEm's SetBiosPath, Dolphin, Raine,
GSplus, the DOSBox and capsimg copies, Tsugaru's folder chain, RPCS3,
EKA2L1, BizHawk's GB switches and the folders that MAME, FBNeo, Snes9x,
Flycast, ScummVM, XRoar, XM6 Pro, ArcadeDuck, Demul and B-Syndrome get.
Every line of these generators that names the bios folder must be read
by a record or a stated exception, or the scrape stops.
2026-10-21 12:39:15 +02:00
Abdessamad Derraz d5a25190a3 fix: place standalone files in the linked folder
standalone_path is relative to the directories a standalone build
resolves it against, now declared per profile (standalone_directories).
A launcher record that links or passes a whole folder of the BIOS tree
under one of them gives that folder, and platform_layouts rebases the
standalone view once for the builder, the manifest, verify and slots
(launchers.standalone_root, common.standalone_destination).

Flycast on RetroPie and ROCKNIX reads bios/dc, on EmuDeck
bios/flycast/bios, on Batocera (FLYCAST_BIOS_PATH) and RetroBat
(Dreamcast.BiosPath) bios/dc. The ROCKNIX, Batocera and RetroBat
scrapers now record the patched data directory, the environment
variable and the setting that say so.
2026-10-21 12:39:03 +02:00
Abdessamad Derraz 50d1768207 chore: regenerate readme, manifests and exports 2026-10-21 12:35:42 +02:00
Abdessamad Derraz 8bad9ca1e7 fix: note the code names behind saturn aliases
RetroBat's launcher layer now records the Saturn names its generators
pick. The ymir aliases are the libretro port's own kBiosFilenames, and
the SSF aliases label dumps of a slot whose file name SSF leaves free.
Both entries now say so next to their source_ref.
2026-10-21 12:24:50 +02:00
Abdessamad Derraz 2d74524d59 feat: file mame software lists and floppy samples
The -listxml names the software lists each machine and slot card
declares and the floppy drives it can instantiate. --devices now writes
one entry per hash/<list>.xml the release ships under the systems of its
placed machines (111 lists, 666 stay with hash/), and files each floppy
sample under the systems whose drives select its form factor
(floppy.cpp:1428-1473, 1759-1767).

Machines a registered platform declares under one of the profile's
systems seed the walk too: bbcb, cdimono1, cdimono2, dragon32, ep64 and
ep128. Unplaced device sets go from 903 to 861.
2026-10-21 12:24:37 +02:00
Abdessamad Derraz 9102fb3c01 fix: re-pin lrps2 at libretro/ps2 HEAD
6eabf224..6664c602 rewrites the .rom1 extension swap and shares one path buffer between the .nvm and .mec reads (BiosTools.cpp:189-230, CDVD.cpp:194-243). The names read and the fallbacks are unchanged. profile_sync: 0 to review.
2026-10-21 12:16:34 +02:00
Abdessamad Derraz fd508e3f8a fix: split ymir libretro BIOS by region
The libretro port reads sega_101.bin, mpr-17933.bin and saturn_bios.bin in that order, gives the first two the JP and US_EU regions by hash, and loads the candidate the ymir_region option or the disc area code asks for (apps/ymir-libretro/src/libretro.cpp:305-309, 596-606, 627-702, 1231-1238, 1290-1306 at 8174cbbe). Area K maps to KR, which neither image carries.
2026-10-21 12:16:34 +02:00
Abdessamad Derraz 3433fd788f fix: file the SF-7000 rom under Sega
sf7000.rom is read only by the sega-sf7000 entries of blueMSX. It sat in bios/Microsoft/MSX because blueMSX keeps its machine folders together, which is a pack destination, not where the collection files a dump.
2026-10-21 12:16:28 +02:00
Abdessamad Derraz e96f6af583 fix: add flycast standalone data directory paths
The standalone build reads BIOS files from its data directory root, not from dc/ (core/oslib/oslib.cpp:118-196, core/stdclass.cpp:95-125, core/linux-dist/main.cpp:74-99). Each entry now carries standalone_path.

# Conflicts:
#	wiki/testing-guide.md
2026-10-21 12:06:37 +02:00
Abdessamad Derraz 7ac96f2b39 fix: check an entry's system: against its profile
The semantic check read systems: only. mame2010 filed seven BIOS root
sets under systems its list lacked: cpzn1, cpzn2 (zn.c:4543, 4563),
konamigv (konamigv.c:877), skns (suprnova.c:1686), alg_bios (alg.c:782),
maxaflex (maxaflex.c:541) and hng64 (hng64.c:2189) are GAME_IS_BIOS_ROOT
in mame2010-libretro at source_commit.
2026-10-21 12:06:06 +02:00
Abdessamad Derraz 624dd713ce chore: merge region fixture rewrite 2026-10-21 11:57:00 +02:00
Abdessamad Derraz fbce2dc59c fix: hold a registered asset in the region fixture
storage: large_file alone no longer counts as held (e65ece74). The fixture now holds jp.bin the way the large-files release does: indexed by the database, listed in .gitignore, absent from the checkout and the cache of this offline run.
2026-10-21 11:55:52 +02:00
Abdessamad Derraz d49fcfd59e chore: merge audit fixes (profile sources)
The flycast standalone paths (eb04fb50) stay out until the packs read the
platforms' launcher links. Two rosalies-mupen-gui aliases that only
RetroBat's launcher writes leave the profile, now that its layer
records them.
2026-10-21 11:55:22 +02:00
Abdessamad Derraz d6a0639330 chore: merge audit fixes (packrules)
# Conflicts:
#	scripts/packextras.py
2026-10-21 11:52:28 +02:00