mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-23 20:29:06 -05:00
docs: state what each .info declares, not a grade
Ten profile notes graded a .info (correct, accurate, still, missing, omits). Each now says what the file declares and what the code reads. test_no_grade_on_another_projects_file reads every profile line that names a .info, core-info or System.dat.
This commit is contained in:
1 parent
0242dc77ee
commit
f4010bfd18
12 files changed
+38
-14
No files matched your search
@@ -29,7 +29,7 @@ notes: |
|
||||
Core continues without DSP firmware but coprocessor games won't function.
|
||||
|
||||
exclusion_note: >
|
||||
firmware_count=0 in .info is correct. DSP firmware (NEC uPD7725/uPD96050,
|
||||
The .info declares firmware_count=0. DSP firmware (NEC uPD7725/uPD96050,
|
||||
Hitachi CX4) is loaded from the ROM directory via game XML markup, not from
|
||||
system_dir. RetroArch cannot pre-populate firmware in the ROM directory.
|
||||
Upstream byuu.org is defunct, and this libretro port is the preserved v085 code.
|
||||
|
||||
@@ -52,8 +52,8 @@ notes: |
|
||||
neogeo.zip is a parent ROM set, loaded from g_rom_dir alongside game ZIPs.
|
||||
g_system_dir is set (src/burner/libretro/libretro.cpp:3016) but never used for file loading.
|
||||
|
||||
The .info note "BIOS files must be inside the ROM directory" is accurate here:
|
||||
neogeo.zip must be in the same directory as game ROM ZIPs.
|
||||
neogeo.zip is read from the same directory as the game ROM ZIPs, as the .info
|
||||
note "BIOS files must be inside the ROM directory" states.
|
||||
|
||||
files: []
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ notes: >
|
||||
subdirectories as .ogg/.mp3/.wav files or cdaudio.wad (src/gameflow.h:1272-1356).
|
||||
System directory used only for shader cache at {system_dir}/openlara/cache/
|
||||
(src/platform/libretro/main.cpp:177-197). No BIOS, firmware, or engine data files required in
|
||||
system directory. .info omits sat from supported_extensions (code declares it).
|
||||
system directory. The code declares the sat extension, which the .info supported_extensions does not list.
|
||||
|
||||
files: []
|
||||
@@ -29,7 +29,8 @@ notes: |
|
||||
directory, it is loaded automatically. No hash or size validation is
|
||||
performed on the BIOS file.
|
||||
|
||||
The .info declares firmware_count=1 (U only), missing the PAL BIOS.
|
||||
The .info declares one firmware, the U BIOS. The code also opens the E BIOS
|
||||
for PAL cartridges (core/libretro.c:581-582).
|
||||
|
||||
files:
|
||||
- name: "7800 BIOS (U).rom"
|
||||
|
||||
@@ -20,8 +20,8 @@ notes: |
|
||||
|
||||
The fork sets appdir to the RetroArch system directory root
|
||||
(retro_host.c:216-217), unlike the upstream which appends /dc
|
||||
(upstream retro_host.c:196-198). The .info still declares dc/ prefix paths
|
||||
matching the upstream, not this fork.
|
||||
(upstream retro_host.c:196-198). The .info declares dc/ prefix paths, the
|
||||
layout the upstream reads.
|
||||
|
||||
boot.bin is validated against four known MD5 hashes (boot.c:25-30).
|
||||
Validation failure logs a warning but the core continues via HLE.
|
||||
|
||||
+1
-1
@@ -76,5 +76,5 @@ notes:
|
||||
OpenSBI: https://github.com/riscv-software-src/opensbi/releases.
|
||||
Pre-built images for RVVM: https://github.com/LekKit/RVVM/wiki/Running
|
||||
info_firmware_count: >
|
||||
.info declares 0 firmware. Correct: the core loads firmware via
|
||||
.info declares 0 firmware. The core loads firmware via
|
||||
user-specified paths in the .rvvm config, not from system_dir.
|
||||
@@ -23,7 +23,7 @@ notes: |
|
||||
stub firmware (NDS), and HLE boot skip (GB/GBC). BIOS loading controlled by core options
|
||||
(default: on). Files loaded from system_dir/SkyEmu/ subdirectory.
|
||||
Standalone validates exact BIOS file size, while libretro only rejects files exceeding buffer.
|
||||
.info missing gb_bios.bin (gb.h:1603).
|
||||
The .info does not list gb_bios.bin, which the code reads (gb.h:1603).
|
||||
|
||||
files:
|
||||
- name: cgb_boot.bin
|
||||
|
||||
@@ -17,7 +17,7 @@ notes: |
|
||||
All entries are optional: without a class library, the core runs a built-in
|
||||
modeless stars demo but cannot execute J2ME software.
|
||||
The .info declares firmware_count=8 but the code defines 10 search names
|
||||
(squirreljme-{version}-test.jar and squirreljme-test.jar are missing from .info).
|
||||
(the two not in the .info are squirreljme-{version}-test.jar and squirreljme-test.jar).
|
||||
|
||||
files:
|
||||
- name: "squirreljme-0.3.0-fast.jar"
|
||||
|
||||
+1
-1
@@ -14,4 +14,4 @@ notes: >
|
||||
WebAssembly-based fantasy console. 320x240 screen, 32-color palette,
|
||||
256KB memory. The WASM runtime (platform + loader modules) is compiled
|
||||
to C via wasm2c and embedded in the binary. No external files required.
|
||||
firmware_count=0 in .info is correct.
|
||||
The .info declares firmware_count=0.
|
||||
@@ -17,7 +17,7 @@ notes: >
|
||||
DTV has its own color system (viciidtv-color.c), and external palette loading
|
||||
is disabled. JiffyDOS is not supported (excluded from build conditionals).
|
||||
The .info declares 4 JiffyDOS firmware (firmware_count=4) but the code
|
||||
never loads them for this core. The .info also omits dtvrom.bin.
|
||||
never loads them for this core. The .info does not list dtvrom.bin.
|
||||
|
||||
files:
|
||||
- name: "dtvrom.bin"
|
||||
|
||||
@@ -225,6 +225,18 @@ class ProfilesStateFactsAboutOtherProjects(unittest.TestCase):
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
# A line that names another project's file grades it when it calls the
|
||||
# file correct or accurate, says it still declares something, or that an
|
||||
# entry is missing from it or omitted. prosystem, retrodream,
|
||||
# fbalpha2012_neogeo and seven more profiles wrote it that way.
|
||||
OTHER_FILE = re.compile(r"(\.info\b|core-info|System\.dat)", re.IGNORECASE)
|
||||
GRADES = re.compile(
|
||||
r"\b(?:is (?:correct|accurate|inaccurate|outdated|stale)|accurate here|"
|
||||
r"correct:|still (?:declares|lists)|omits|missing (?:the|from))|"
|
||||
r"\.info missing",
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
def test_profile_prose_and_comments(self):
|
||||
offenders = [
|
||||
f"{path.relative_to(ROOT)}: {line.strip()[:100]}"
|
||||
@@ -234,6 +246,15 @@ class ProfilesStateFactsAboutOtherProjects(unittest.TestCase):
|
||||
]
|
||||
self.assertEqual(offenders, [], "\n".join(offenders[:40]))
|
||||
|
||||
def test_no_grade_on_another_projects_file(self):
|
||||
offenders = [
|
||||
f"{path.relative_to(ROOT)}: {line.strip()[:100]}"
|
||||
for path in sorted((ROOT / "emulators").glob("*.yml"))
|
||||
for line in path.read_text(encoding="utf-8").splitlines()
|
||||
if self.OTHER_FILE.search(line) and self.GRADES.search(line)
|
||||
]
|
||||
self.assertEqual(offenders, [], "\n".join(offenders[:40]))
|
||||
|
||||
|
||||
class NoClauseSemicolons(unittest.TestCase):
|
||||
def _check(self, files: list[Path], extract) -> None:
|
||||
|
||||
@@ -266,8 +266,10 @@ to the way the project writes:
|
||||
number with its criterion says more.
|
||||
- Headings in sentence case, never repeating the site name.
|
||||
- In emulator profiles, no verdict on another project's file: "phantom",
|
||||
"misleading", "bogus", "typo", "has errors", "incorrectly says". The note
|
||||
states what that file declares and what the code reads.
|
||||
"misleading", "bogus", "typo", "has errors", "incorrectly says", and on a
|
||||
line naming a .info, core-info or System.dat no "is correct", "is
|
||||
accurate", "still declares", "omits" or "missing". The note states what
|
||||
that file declares and what the code reads.
|
||||
|
||||
Formatting stays: bold labels, lists, tables and admonitions make a page
|
||||
easier to use. When markup shows raw on the site, the rendering is fixed and
|
||||
|
||||
Reference in new issue
Block a user