# Test content of the real-condition campaign (scripts/campaign.py), per system. # # Each entry names a catalog entry, never a file: `name` is the exact Redump or # No-Intro name romfetch fetches and verifies (`romfetch get `), # and `reason` says why this game serves the test. Content is read from # .cache/test-content/// with its identity.json, and never # enters git. A record keeps only its identity (catalog name, sha1, tracks). # # region the territory of the disc or cartridge: the BIOS entry the # boot test varies is the one whose `region:` holds it, or one # without `region:` # also_regions the other territories one release was sold in, when the # catalog names one entry for several (`(USA, Europe)`) # load the file handed to the core: `cue` (the .cue sheet) or a # file name inside the folder, by default the single file # frames frames run per repetition, the same with and without the file # frame_hash_every frames between two sampled frame hashes # pinned never deleted by the campaign, whoever fetched it # boot_file (per system) the declared file the boot test varies, when a # profile declares it under this name or an alias # # The checks a game is used for are the boot test (no file against the # declared file), the files test (every declared file staged, which ones the # core opens), the benchmark, and for a system whose BIOS a profile ties to a # territory, the region check (scripts/region_check.py): one game per region, # run with only its own region's BIOS, then with only the others. # # Systems come in the order of the users a missing BIOS stops: BIOS-required # consoles first, then the arcade BIOS sets, then everything else with a BIOS # entry. A system no catalog or romfetch source covers is listed under # `uncovered`, with the reason and romfetch's error code, so the gap is named # rather than silent. # # A system named twice in the profiles (`sega-megacd` and ares' `mega-cd`) # repeats its list with a YAML alias: the same games, one download. systems: sony-playstation: romfetch: psx # The file the boot test varies, when the profile declares it: the US # BIOS of a US disc, the same file for every core so the runs compare. boot_file: scph5501.bin content: - name: "Bust-A-Move 2 - Arcade Edition (USA)" catalog: redump reason: >- A US disc that goes through the BIOS shell and its licence screen, then reaches the publisher logos and the attract mode within a minute, with no button pressed. Several static screens, so a run with and a run without the BIOS can be compared frame by frame. region: north-america load: cue frames: 3600 frame_hash_every: 10 pinned: true - name: "Puzzle Bobble 2 (Japan)" catalog: redump reason: >- The Japanese release of the same game as the US and European discs, so the three region runs show the same title screens and only the BIOS licence screen differs. Beetle PSX picks scph5500.bin for a Japanese disc, the region check proves it. region: japan load: cue frames: 3600 frame_hash_every: 10 - name: "Bust-A-Move 2 - Arcade Edition (Europe)" catalog: redump reason: >- The PAL release of the same game: a European disc runs at 50 Hz and Beetle PSX reads scph5502.bin for it. Third leg of the region check, beside the Japanese and US discs of the same title. region: europe load: cue frames: 3600 frame_hash_every: 10 sony-playstation-2: romfetch: ps2 content: - name: "Rez (USA) (En,Fr,De,Es,It)" catalog: redump reason: >- A 230 MB CD-ROM release, the smallest well-known PS2 disc, that boots through the PS2 BIOS logo straight to its title screen without input. The profiles do not tie PS2 BIOS images to a region, so one game is enough for PCSX2 and LRPS2. region: north-america frames: 3600 frame_hash_every: 10 sega-saturn: romfetch: saturn content: &saturn - name: "Puzzle Bobble 2X (Japan) (2M1, 2MB1)" catalog: redump reason: >- The Japanese release of the game the US and European discs carry, so the three region runs compare the same screens. Beetle Saturn loads sega_101.bin for a Japanese disc and refuses a disc of another area code, which the region check shows. region: japan load: cue frames: 3600 frame_hash_every: 10 - name: "Bust-A-Move 2 - Arcade Edition (USA)" catalog: redump reason: >- The US release of the same game: Beetle Saturn loads mpr-17933.bin for a North American disc. Reaches its title within a minute with no input. region: north-america load: cue frames: 3600 frame_hash_every: 10 - name: "Bust-A-Move 2 - Arcade Edition (Europe)" catalog: redump reason: >- The European release of the same game, area code E. mpr-17933.bin also serves PAL consoles in Beetle Saturn, so this disc tells whether one file covers two territories as the profile says. region: europe load: cue frames: 3600 frame_hash_every: 10 sega-megacd: romfetch: segacd content: &megacd - name: "Sonic the Hedgehog CD (Japan)" catalog: redump reason: >- Sega's own title in all three regions, so the region runs compare one game. Genesis Plus GX, PicoDrive and the other Mega CD cores choose bios_CD_J.bin or its aliases for a Japanese console. region: japan load: cue frames: 3600 frame_hash_every: 10 - name: "Sonic CD (USA)" catalog: redump reason: >- The US release of the same game, booted through the Sega CD BIOS (bios_CD_U.bin, us_scd2_9306.bin in PicoDrive). The BIOS shows its own animated screen before the disc starts. region: north-america load: cue frames: 3600 frame_hash_every: 10 - name: "Sonic CD (Europe)" catalog: redump reason: >- The PAL release of the same game, for the European Mega CD BIOS (bios_CD_E.bin, eu_mcd2_9306.bin). Third leg of the region check. region: europe load: cue frames: 3600 frame_hash_every: 10 # ares names the same console mega-cd. mega-cd: romfetch: segacd content: *megacd sega-32x: romfetch: 32x content: - name: "Knuckles' Chaotix (Japan, USA) (En)" catalog: no-intro reason: >- A 32X-only cartridge: the cores that do not emulate the 32X boot ROMs in HLE need 32X_G_BIOS.BIN, 32X_M_BIOS.BIN and 32X_S_BIOS.BIN to run any of it. One release for both territories. region: north-america also_regions: [japan] frames: 3600 frame_hash_every: 10 nec-pc-engine-cd: romfetch: pcecd content: - name: "Gate of Thunder (Japan) (FACT, FADT)" catalog: redump reason: >- A Super CD-ROM2 disc: it needs a System Card 3.0 image (syscard3.pce) and stops on the card's error screen with an older card or none. The profiles do not tie the card to a region. region: japan load: cue frames: 3600 frame_hash_every: 10 snk-neogeo-cd: romfetch: neogeocd content: - name: "Metal Slug (Japan) (En,Ja)" catalog: redump reason: >- A Neo Geo CD disc that cannot start without the console's BIOS (neocd.bin and its CDZ variants). Metal Slug is the title the MVS entry of the arcade list uses too. region: japan load: cue frames: 3600 frame_hash_every: 10 sega-dreamcast: romfetch: dreamcast content: - name: "ChuChu Rocket! (USA) (En,Ja,Fr,De,Es)" catalog: redump reason: >- A GD-ROM that boots through the Dreamcast BIOS logo (dc_boot.bin) to its title without input. Flycast runs it with its HLE BIOS too, so the boot test shows the difference the file makes. region: north-america load: cue frames: 3600 frame_hash_every: 10 nintendo-ds: romfetch: nds content: - name: "Mario Kart DS (Japan)" catalog: no-intro reason: >- One game in the three regions, each held by a romfetch source (the Japanese Tetris DS is not). melonDS and DeSmuME boot with the ARM7/ARM9 BIOS and firmware or with their free replacements, and BizHawk ties firmware dumps to regions. region: japan frames: 3600 frame_hash_every: 10 - name: "Mario Kart DS (USA, Australia) (En,Fr,De,Es,It)" catalog: no-intro reason: >- The US release of the same game, for the US firmware dump BizHawk declares and for the boot test of bios7.bin, bios9.bin and firmware.bin in melonDS. region: north-america frames: 3600 frame_hash_every: 10 - name: "Mario Kart DS (Europe) (En,Fr,De,Es,It)" catalog: no-intro reason: >- The European release of the same game, third leg of the region check for the firmware dumps BizHawk ties to a region. region: europe frames: 3600 frame_hash_every: 10 nintendo-gba: romfetch: gba content: - name: "Advance Wars (USA)" catalog: no-intro reason: >- A 4 MB cartridge that shows the Game Boy Advance boot logo when gba_bios.bin is given and skips it on the cores' HLE BIOS, so the boot test sees the optional BIOS at work. region: north-america frames: 3600 frame_hash_every: 10 panasonic-3do: romfetch: 3do content: - name: "Gex (USA, Europe)" catalog: redump reason: >- A 3DO disc: Opera needs a 3DO BIOS (panafz10.bin and the others the profile lists) for any game, and Gex shows the 3DO logo the BIOS draws before the game. region: north-america also_regions: [europe] load: cue frames: 3600 frame_hash_every: 10 philips-cdi: romfetch: cdi content: - name: "Hotel Mario (Europe)" catalog: redump reason: >- A CD-i disc: the CD-i cores run nothing without the player's system ROM (cdimono1.zip in MAME, the BIOS SAME CDi declares). A 366 MB disc that starts its intro without input. region: europe load: cue frames: 3600 frame_hash_every: 10 commodore-amiga-cd32: romfetch: cd32 content: - name: "Pinball Fantasies (Europe)" catalog: redump reason: >- A 97 MB CD32 disc: PUAE needs the CD32 Kickstart and extended ROM to boot any CD32 title, and the disc shows the CD32 boot animation the ROM draws. region: europe load: cue frames: 3600 frame_hash_every: 10 atari-lynx: romfetch: lynx content: - name: "Super Skweek (World) (Atari Lynx Collection 1) (Unl)" catalog: no-intro reason: >- Handy and Beetle Lynx refuse to start a cartridge without lynxboot.img. The headered Lynx catalog romfetch reads holds only the Atari Lynx Collection releases and betas, and this is a full game from that collection. region: north-america also_regions: [europe, japan] frames: 3600 frame_hash_every: 10 # Everything else with a BIOS entry. sega-mastersystem: romfetch: mastersystem content: &mastersystem - name: "Alex Kidd no Miracle World (Japan)" catalog: no-intro reason: >- The Japanese Mark III cartridge. Genesis Plus GX ties bios_J.sms to Japan and bios_U.sms to the other regions, so the region check runs the same game on each. region: japan frames: 3600 frame_hash_every: 10 - name: "Alex Kidd in Miracle World (USA, Europe)" catalog: no-intro reason: >- The western cartridge of the same game, one release for the US and Europe, as bios_U.sms serves both in the Genesis Plus GX profile. region: north-america also_regions: [europe] frames: 3600 frame_hash_every: 10 # ares names the same console master-system. master-system: romfetch: mastersystem content: *mastersystem nintendo-64: romfetch: n64 content: - name: "Super Mario 64 (Japan)" catalog: no-intro reason: >- One game in the three regions. simple64 loads the NTSC or the PAL PIF ROM by the cartridge's region, which the region check proves on the Japanese, US and European releases. region: japan frames: 3600 frame_hash_every: 10 - name: "Super Mario 64 (USA)" catalog: no-intro reason: >- The US release of the same game, NTSC like the Japanese one, so it should read the same PIF ROM as the Japanese cartridge. region: north-america frames: 3600 frame_hash_every: 10 - name: "Super Mario 64 (Europe) (En,Fr,De)" catalog: no-intro reason: >- The PAL release of the same game: the one cartridge the PAL PIF ROM (pif.pal) is for in simple64. region: europe frames: 3600 frame_hash_every: 10 nintendo-gamecube: romfetch: gamecube content: - name: "Pikmin (Japan) (Rev 1)" catalog: redump reason: >- One game in the three regions. Dolphin reads the IPL of the disc's region (GC/JAP/IPL.bin) to show the GameCube boot animation, and skips it on its HLE boot. 1.4 GB, fetched only when a check needs it. region: japan frames: 3600 frame_hash_every: 10 - name: "Pikmin (USA)" catalog: redump reason: >- The US release of the same game, for GC/USA/IPL.bin in Dolphin and its forks. region: north-america frames: 3600 frame_hash_every: 10 - name: "Pikmin (Europe, Australia) (En,Fr,De,Es,It)" catalog: redump reason: >- The PAL release of the same game, for GC/EUR/IPL.bin. Third leg of the region check. region: europe frames: 3600 frame_hash_every: 10 sega-megadrive: romfetch: megadrive content: - name: "Sonic The Hedgehog (USA, Europe)" catalog: no-intro reason: >- A cartridge that passes the TMSS check of a later Mega Drive: with bios_MD.bin the core shows the TMSS licence screen first, without it the game starts at once. region: north-america also_regions: [europe] frames: 3600 frame_hash_every: 10 sega-gamegear: romfetch: gamegear content: - name: "Sonic The Hedgehog (World) (Rev A)" catalog: no-intro reason: >- A cartridge for the optional Game Gear boot ROM (bios.gg): with it the core shows the Sega licence screen before the game. region: north-america frames: 3600 frame_hash_every: 10 nintendo-gb: romfetch: gb content: - name: "Tetris (World) (Rev 1)" catalog: no-intro reason: >- The cartridge every Game Boy core runs: with the optional boot ROM (gb_bios.bin, dmg_boot.bin) the Nintendo logo scrolls down first, without it the game starts at once. region: north-america frames: 3600 frame_hash_every: 10 nintendo-gbc: romfetch: gbc content: - name: "Tetris DX (World) (SGB Enhanced) (GB Compatible)" catalog: no-intro reason: >- A Game Boy Color cartridge for the optional CGB boot ROM (gbc_bios.bin, cgb_boot.bin): the boot animation and the palette it picks show whether the core read it. region: north-america frames: 3600 frame_hash_every: 10 snk-neogeo-pocket: romfetch: ngp content: - name: "King of Fighters R-1 - Pocket Fighting Series (Japan, Europe) (En,Ja)" catalog: no-intro reason: >- A Neo Geo Pocket cartridge for the optional BIOS some cores read (the SNK boot screen and the clock setting it asks for). Mednafen's HLE starts the game without it. region: japan also_regions: [europe] frames: 3600 frame_hash_every: 10 nec-pc-fx: romfetch: pcfx content: - name: "Battle Heat (Japan)" catalog: redump reason: >- A PC-FX disc: Beetle PC-FX needs pcfx.rom for any game. Every PC-FX release is Japanese. region: japan load: cue frames: 3600 frame_hash_every: 10 sony-psp: romfetch: psp content: - name: "Lumines - Puzzle Fusion (Europe) (En,Fr,De,Es,It)" catalog: redump reason: >- A UMD image for PPSSPP, which needs no BIOS but reads its font and asset files (the ppsspp data directory) to draw the system dialogs. region: europe frames: 3600 frame_hash_every: 10 # Systems with a BIOS entry that no catalog romfetch reads covers, or whose # content romfetch cannot fetch. `romfetch` is what the request returned: # its exit code and error code. uncovered: snk-neogeo-mvs: want: "mslug (neogeo.zip with Metal Slug), through MAME and FBNeo" reason: >- Arcade sets are not in the Redump or No-Intro catalogs and romfetch has no arcade system. romfetch: {exit: 1, code: unknown_system, request: "arcade"} sega-naomi: want: "mvsc2 (naomi.zip with Marvel vs. Capcom 2), through MAME and Flycast" reason: Arcade set, no catalog romfetch reads. romfetch: {exit: 1, code: unknown_system, request: "arcade"} sammy-atomiswave: want: "kofnw (awbios.zip with The King of Fighters Neowave), through MAME and Flycast" reason: Arcade set, no catalog romfetch reads. romfetch: {exit: 1, code: unknown_system, request: "arcade"} igs-pgm: want: "kov (pgm.zip with Knights of Valour), through MAME and FBNeo" reason: Arcade set, no catalog romfetch reads. romfetch: {exit: 1, code: unknown_system, request: "arcade"} cps3: want: "sfiii3 (Street Fighter III 3rd Strike), through MAME and FBNeo" reason: Arcade set, no catalog romfetch reads. romfetch: {exit: 1, code: unknown_system, request: "arcade"} sega-stv: want: "shienryu (stvbios.zip with Shienryu), through MAME, FBNeo and Kronos" reason: Arcade set, no catalog romfetch reads. romfetch: {exit: 1, code: unknown_system, request: "arcade"} sega-triforce: want: "a Triforce GD-ROM set, through Dolphin Triforce" reason: Arcade set, no catalog romfetch reads. romfetch: {exit: 1, code: unknown_system, request: "arcade"} nintendo-dsi: want: "a DSi-enhanced cartridge or DSiWare title, for melonDS in DSi mode" reason: romfetch reads the decrypted DS catalog only, no DSi set. romfetch: {exit: 1, code: unknown_system, request: "dsi"} nintendo-3ds: want: "one game per region, for Citra's regional system archives" reason: No 3DS catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "3ds"} nintendo-64dd: want: "F-Zero X - Expansion Kit (Japan), for the 64DD IPL" reason: No 64DD catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "n64dd"} atari-jaguarcd: want: "Myst (USA), for the Jaguar CD BIOS" reason: No Jaguar CD catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "jaguarcd"} intellivision: want: "Astrosmash (USA, Europe), for exec.bin and grom.bin" reason: No Intellivision catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "intellivision"} colecovision: want: "Donkey Kong (USA), for colecovision.rom" reason: No ColecoVision catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "colecovision"} msx: want: "Gradius (Japan), for the MSX system ROMs" reason: No MSX catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "msx"} commodore-amiga: want: "Lemmings (Europe), for the Kickstart ROMs" reason: >- romfetch reads the Amiga CD32 catalog only, no Amiga floppy catalog. romfetch: {exit: 1, code: unknown_system, request: "amiga"} atari-5200: want: "Pac-Man (USA), for 5200.rom" reason: No Atari 5200 catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "atari5200"} atari-7800: want: "Asteroids (USA), for the 7800 BIOS" reason: No Atari 7800 catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "atari7800"} nintendo-fds: want: "Super Mario Brothers 2 (Japan), for disksys.rom" reason: No Famicom Disk System catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "fds"} nintendo-pokemon-mini: want: "Pokemon Pinball Mini (USA, Europe), for bios.min" reason: No Pokemon Mini catalog in romfetch. romfetch: {exit: 1, code: unknown_system, request: "pokemini"} microsoft-xbox: want: "Halo - Combat Evolved (USA), for xemu's MCPX ROM, BIOS and hard disk image" reason: >- romfetch plans the 7.8 GB entry but no source holds it (exit 1, no candidate), and it is above romfetch's 4 GiB limit that needs --yes. romfetch: {exit: 1, code: null, request: "xbox"} sony-playstation-3: want: "Ridge Racer 7 (USA), for RPCS3's PS3UPDAT.PUP firmware" reason: romfetch plans the entry but no source holds it (exit 1, no candidate). romfetch: {exit: 1, code: null, request: "ps3"}