feat: self-check a profile already on head

This commit is contained in:
Abdessamad Derraz committed 2026-08-10 16:55:48 +02:00
1 parent ba84f5701f
commit f67642095c
3 files changed
+64 -47

No files matched your search

+39 -46
View File
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/FBNeo"
upstream: "https://github.com/finalburnneo/FBNeo"
logo: "https://raw.githubusercontent.com/finalburnneo/FBNeo/master/projectfiles/xcode/Emulator/Assets.xcassets/AppIcon.appiconset/icon_512.png"
profiled_date: "2026-03-23"
source_commit: "b267b79504366def21cefb08215e68df93310dba"
source_commit: "ef1f64b7023bc511858e96b8961f99c18a09f112"
core_version: "v1.0.0.2"
display_name: "Arcade (FinalBurn Neo)"
cores:
@@ -100,7 +100,7 @@ files:
size: 131072
crc32: "9036d879"
note: "MVS Asia/Europe ver. 5 (1 slot)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1645"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1625"
- name: "sp-s.sp1"
archive: neogeo.zip
@@ -109,7 +109,7 @@ files:
size: 131072
crc32: "c7f2fa45"
note: "MVS Asia/Europe ver. 3 (4 slot)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1646"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1626"
- name: "sp-u2.sp1"
aliases: ["usa_2slt.bin"]
@@ -119,7 +119,7 @@ files:
size: 131072
crc32: "e72943de"
note: "MVS USA ver. 5 (2 slot)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1647"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1627"
- name: "sp1-u2"
archive: neogeo.zip
@@ -128,7 +128,7 @@ files:
size: 131072
crc32: "62f021f4"
note: "MVS USA ver. 5 (4 slot)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1648"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1628"
- name: "sp-e.sp1"
archive: neogeo.zip
@@ -137,7 +137,7 @@ files:
size: 131072
crc32: "2723a5b5"
note: "MVS USA ver. 5 (6 slot)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1649"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1629"
- name: "sp1-u4.bin"
archive: neogeo.zip
@@ -146,7 +146,7 @@ files:
size: 131072
crc32: "1179a30f"
note: "MVS USA (U4)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1650"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1630"
- name: "sp1-u3.bin"
archive: neogeo.zip
@@ -155,7 +155,7 @@ files:
size: 131072
crc32: "2025b7a2"
note: "MVS USA (U3)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1651"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1631"
- name: "vs-bios.rom"
archive: neogeo.zip
@@ -164,7 +164,7 @@ files:
size: 131072
crc32: "f0e8f27d"
note: "MVS Japan ver. 6"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1652"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1632"
- name: "sp-j2.sp1"
archive: neogeo.zip
@@ -173,7 +173,7 @@ files:
size: 131072
crc32: "acede59c"
note: "MVS Japan ver. 5"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1653"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1633"
- name: "sp1.jipan.1024"
archive: neogeo.zip
@@ -182,7 +182,7 @@ files:
size: 131072
crc32: "9fb0abe4"
note: "MVS Japan ver. 3 (4 slot)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1654"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1634"
- name: "sp-45.sp1"
archive: neogeo.zip
@@ -191,7 +191,7 @@ files:
size: 524288 # 0x80000
crc32: "03cc9f6a"
note: "NEO-MVH MV1C (Asia)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1615"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1635"
- name: "sp-j3.sp1"
archive: neogeo.zip
@@ -200,7 +200,7 @@ files:
size: 524288
crc32: "486cb450"
note: "NEO-MVH MV1C (Japan)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1656"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1636"
- name: "japan-j3.bin"
archive: neogeo.zip
@@ -209,7 +209,7 @@ files:
size: 131072
crc32: "dff6d41f"
note: "MVS Japan (J3)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1657"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1637"
- name: "sp1-j3.bin"
archive: neogeo.zip
@@ -218,7 +218,7 @@ files:
size: 131072
crc32: "fbc6d469"
note: "MVS Japan (J3, alt)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1618"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1638"
# AES BIOS ROMs (not in MAME ROM_VERIFY builds)
- name: "neo-po.bin"
@@ -228,7 +228,7 @@ files:
size: 131072
crc32: "16d0c132"
note: "AES Japan"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1620"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1640"
- name: "neo-epo.bin"
archive: neogeo.zip
@@ -237,7 +237,7 @@ files:
size: 131072
crc32: "d27a71f1"
note: "AES Asia"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1621"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1641"
- name: "neodebug.bin"
archive: neogeo.zip
@@ -246,7 +246,7 @@ files:
size: 131072
crc32: "698ebb7d"
note: "Development Kit BIOS"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1622"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1642"
- name: "sp-1v1_3db8c.bin"
archive: neogeo.zip
@@ -255,7 +255,7 @@ files:
size: 131072
crc32: "162f0ebe"
note: "Deck ver. 6 (Git Ver 1.3)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1668"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1648"
# Universe BIOS (third-party, multiple versions)
- name: "uni-bios_4_0.rom"
@@ -265,7 +265,7 @@ files:
size: 131072
crc32: "a7aab458"
note: "Universe BIOS ver. 4.0 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1669"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1649"
- name: "uni-bios_3_3.rom"
archive: neogeo.zip
@@ -274,7 +274,7 @@ files:
size: 131072
crc32: "24858466"
note: "Universe BIOS ver. 3.3 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1670"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1650"
- name: "uni-bios_3_2.rom"
archive: neogeo.zip
@@ -292,7 +292,7 @@ files:
size: 131072
crc32: "0c58093f"
note: "Universe BIOS ver. 3.1 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1672"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1652"
- name: "uni-bios_3_0.rom"
archive: neogeo.zip
@@ -301,7 +301,7 @@ files:
size: 131072
crc32: "a97c89a9"
note: "Universe BIOS ver. 3.0 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1673"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1653"
- name: "uni-bios_2_3.rom"
archive: neogeo.zip
@@ -310,7 +310,7 @@ files:
size: 131072
crc32: "27664eb5"
note: "Universe BIOS ver. 2.3 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1674"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1654"
- name: "uni-bios_2_3o.rom"
archive: neogeo.zip
@@ -319,7 +319,7 @@ files:
size: 131072
crc32: "601720ae"
note: "Universe BIOS ver. 2.3 older (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1675"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1655"
- name: "uni-bios_2_2.rom"
archive: neogeo.zip
@@ -337,7 +337,7 @@ files:
size: 131072
crc32: "8dabf76b"
note: "Universe BIOS ver. 2.1 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1677"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1657"
- name: "uni-bios_2_0.rom"
archive: neogeo.zip
@@ -346,7 +346,7 @@ files:
size: 131072
crc32: "0c12c2ad"
note: "Universe BIOS ver. 2.0 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1678"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1658"
- name: "uni-bios_1_3.rom"
archive: neogeo.zip
@@ -364,7 +364,7 @@ files:
size: 131072
crc32: "4fa698e9"
note: "Universe BIOS ver. 1.2 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1680"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1660"
- name: "uni-bios_1_2o.rom"
archive: neogeo.zip
@@ -373,7 +373,7 @@ files:
size: 131072
crc32: "e19d3ce9"
note: "Universe BIOS ver. 1.2 older (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1681"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1661"
- name: "uni-bios_1_1.rom"
archive: neogeo.zip
@@ -382,7 +382,7 @@ files:
size: 131072
crc32: "5dda0d84"
note: "Universe BIOS ver. 1.1 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1682"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1662"
- name: "uni-bios_1_0.rom"
archive: neogeo.zip
@@ -391,7 +391,7 @@ files:
size: 131072
crc32: "0ce453a0"
note: "Universe BIOS ver. 1.0 (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1683"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1663"
- name: "neopen.sp1"
archive: neogeo.zip
@@ -400,7 +400,7 @@ files:
size: 131072
crc32: "cb915e76"
note: "NeoOpen BIOS v0.1 beta (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1685"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1665"
# Neo Geo shared ROMs (always required)
- name: "sm1.sm1"
@@ -428,7 +428,7 @@ files:
size: 131072
crc32: "5a86cff2"
note: "Zoom lookup table"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1694"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1674"
# -------------------------------------------------------
# Neo Geo Trackball BIOS (for irrmaze)
@@ -440,7 +440,7 @@ files:
size: 131072
crc32: "853e6b96"
note: "Trackball BIOS / Asia MV1B 263"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1784"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1764"
- name: "236-bios_japan_hack.sp1"
archive: neogeo.zip
@@ -449,7 +449,7 @@ files:
size: 131072
crc32: "02bf4426"
note: "Trackball BIOS / Japan (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1785"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1765"
# -------------------------------------------------------
# Neo Geo PCB BIOS (for ms5pcb, svcpcb, kf2k3pcb)
@@ -470,7 +470,7 @@ files:
size: 524288
crc32: "148dd727"
note: "PCB BIOS for KOF 2003 PCB"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1919"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1899"
# -------------------------------------------------------
# Neo Geo CDZ (neocdz.zip)
@@ -1306,7 +1306,7 @@ files:
size: 8192 # 0x2000
crc32: "85c2afc5"
note: "Z80 code"
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4530"
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4528"
- name: "400a1.2b"
archive: bubsys.zip
@@ -1315,7 +1315,7 @@ files:
size: 256 # 0x100
crc32: "5827b1e8"
note: "K005289 wavetable 1"
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4532"
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4530"
- name: "400a2.1b"
archive: bubsys.zip
@@ -1324,7 +1324,7 @@ files:
size: 256
crc32: "2f44f970"
note: "K005289 wavetable 2"
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4533"
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4531"
# -------------------------------------------------------
# Sega ISG System (isgsm.zip)
@@ -1503,13 +1503,6 @@ files:
crc32: "1d90517c"
source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1865"
- name: "mcu"
archive: bubsys.zip
required: true
size: 4096
crc32: "00000000"
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4535"
- name: "gba_bios.bin"
archive: gba.zip
required: true
+6 -1
View File
@@ -880,7 +880,10 @@ def build_report(
slug = view.repo.slug if view is not primary else None
return slug, upstream.raw_url(view.repo, view.head, actual), actual
if report.pinned_tag:
# Comparing a revision with itself anchors every ref whatever it cites, so
# a profile already sitting on HEAD is judged on self-consistency instead.
self_check = bool(report.pinned_tag) or primary.pin == primary.head
if self_check:
staged = [
(entry_name, ref, [
verify_at_pin(part, fetch(PIN, part.path), tokens)
@@ -965,6 +968,8 @@ def format_report(report: ProfileReport, changed_only: bool = False) -> str:
f" pinned to tag {report.pinned_tag}: checked against its own "
"revision, not against HEAD"
)
elif report.pin and report.pin == report.head:
lines.append(" pin is HEAD: checked for self-consistency")
if report.skipped:
lines.append(f" skipped: {report.skipped}")
return "\n".join(lines)
+19
View File
@@ -995,6 +995,25 @@ class TestBuildReport(unittest.TestCase):
profile["core_version"] = version
return profile
def test_a_pin_equal_to_head_is_checked_for_self_consistency(self):
# The cited line does not carry the declared value, which a comparison
# of a revision with itself could never reveal.
self.files[("pinsha", "a.c")] = ["x", "unrelated"]
self.files[("headsha", "a.c")] = ["x", "unrelated"]
profile = self._profile(["a.c:2"])
profile["source_commit"] = "headsha"
profile["files"][0]["crc32"] = "deadbeef"
report = build_report("test", profile, self.dir)
self.assertEqual(report.entries[0].status, "CHANGED")
def test_a_pin_equal_to_head_accepts_a_ref_on_its_value(self):
self.files[("headsha", "a.c")] = ["x", 'rom("deadbeef")']
profile = self._profile(["a.c:2"])
profile["source_commit"] = "headsha"
profile["files"][0]["crc32"] = "deadbeef"
report = build_report("test", profile, self.dir)
self.assertEqual(report.entries[0].status, "ANCHORED")
def test_pin_on_the_declared_version_tag_is_flagged(self):
self.files[("pinsha", "a.c")] = ["x", "hit"]
self.files[("headsha", "a.c")] = ["x", "hit"]