Commit Graph
1070 Commits
Author SHA1 Message Date
Abdessamad Derraz 2a7e7d4237 chore: six more profiles on the tree they describe
gopher2600 and gearsystem cited a blank line one past the fingerprint
comparison and the SG-1000 bootrom guard. fuse cited a glob, which
resolves against nothing: the two machines it means are named now.
gsplus, gopher64 and geolith carried refs from a newer tree than their
pin.
2026-09-05 09:20:40 +02:00
Abdessamad Derraz bc005ddd7a chore: follow three profiles to the revision they describe
melonds_ds cited the bios9 load and the tool offered the bios7 line one
above it; the ref names bios9.bin, so it goes to 306. m2000's P2000.c
gained a serial-support branch inside the ROM patch loop. Pins moved
with the refs in all three.
2026-09-05 09:19:38 +02:00
Abdessamad Derraz 6d836f9db6 chore: cite lines that carry something
Four refs pointed at blank lines or a closing brace: get_bios,
pif_bootrom_hle_execute, the key mapping block and the neocd system
subdirectory constant are one line off in each case.
2026-09-05 09:18:39 +02:00
Abdessamad Derraz fc47b9cbfe chore: give four profiles a path and a pin that match
xenia, tyrquake and solarus cited bare or unprefixed files and carried
line numbers from a newer tree than their pin named; each now names the
path and the revision together. tic80's wrapper repository holds nothing
but a licence, a readme and the core submodule, so the runtime claim
cites the submodule declaration and the project it points at.
2026-09-05 09:17:51 +02:00
Abdessamad Derraz 47e267d29c chore: drop files whose bytes are not what they claim 2026-09-05 09:17:42 +02:00
Abdessamad Derraz adcd177e12 feat: settle contested slots in the pack and the report 2026-09-05 09:08:43 +02:00
Abdessamad Derraz 0a5c287325 chore: recale reminiscence onto its pin 2026-09-05 09:02:17 +02:00
Abdessamad Derraz 2ad0ee7671 chore: pin the reminiscence upstream and cite findPathIndex
fs.cpp:52 is blank; the case-insensitive match is in findPathIndex at
53-56. The upstream carried no commit, so it was pinned by profiled_date
to a revision where resource.cpp sat three lines off.
2026-09-05 09:02:17 +02:00
Abdessamad Derraz 492d03bcff chore: recale rpcs3 onto its pin 2026-09-05 09:01:35 +02:00
Abdessamad Derraz c9472af628 chore: cite the lines rpcs3 names its emulator selfs on
Both refs pointed at blank lines. ps1_newemu.self and psp_emulator.self
are set as argv[0] at 2114 and 2142.
2026-09-05 09:01:35 +02:00
Abdessamad Derraz e66d1ff66a chore: recale groovymame and re-point its MAME refs
The pin advanced with the recale, so twenty-five romset refs stopped
naming the line that declares their set at the new revision.
mame_ref_audit found and moved them; 147 agree, 180 refs anchored.
2026-09-05 09:01:14 +02:00
Abdessamad Derraz 0763e54993 chore: recale jgenesis onto its pin 2026-09-05 09:00:27 +02:00
Abdessamad Derraz 2f9fabb619 chore: cite the right tree for three profiles
dinothawr's libretro.cpp became libretro.c and its refs already carried
the new line numbers, so the pin followed. groovymame cited a Batocera
package recipe and jgenesis a RetroBat generator, neither of which lives
in the tree each names; both read external now.
2026-09-05 09:00:19 +02:00
Abdessamad Derraz 11284e5ffa chore: recale beetle_psx onto its pin 2026-09-05 08:59:25 +02:00
Abdessamad Derraz c0992c71e7 chore: cite what beetle_psx carries and what it borrows
psx.cpp is not in this fork, only headers, and the declared upstream is
a website rather than a forge: the size rejection is Mednafen's and
reads external now, beside the fork's own BIOS_SIZE_STD. The MAME
provenance of the checksums is external too, and the lists themselves
are in libretro.c, which is where libretro.cpp went.
2026-09-05 08:59:23 +02:00
Abdessamad Derraz dc01a39e51 chore: cite what these two forks actually carry
same_cdi's cdi.cpp is 494 lines; the profile cited 574-640 and 662-820,
which are upstream MAME's numbers. The fork carries four sets and none
of the Quizard game ROMs, and the refs say so now.

fsuae cited fsuaePaths.py and fsuaeGenerator.py against libretro-fsuae,
where they have never been: they are Batocera's, which is what the note
already said in prose.
2026-09-05 08:57:47 +02:00
Abdessamad Derraz 449dbafa58 chore: follow the ardens bootloader selection
The block moved and the profile's line numbers stayed. The selection now
reads program_state.flashcart_loaded and program_state.cfg.boot_to_menu
at 151-181, choosing between the menu and game bootloader for each
fxport pin. Pin moved with the refs.
2026-09-05 08:57:02 +02:00
Abdessamad Derraz 3afad2a7f5 chore: recale gearlynx onto its pin 2026-09-05 08:56:24 +02:00
Abdessamad Derraz b17ce03dd9 chore: follow the gearlynx no-bios guard out of the header
The guard left gearlynx_core_inline.h for gearlynx_core.cpp, and the
line the tool proposed in its place is SynchronizeComLynx. Following the
content rather than the offer puts it at 249-253.
2026-09-05 08:56:24 +02:00
Abdessamad Derraz 38fc933162 chore: put four pins on the revisions their refs describe
mgba and vitaquake2 carried refs written against a newer tree than their
source_commit named, which the diagnostic reports rather than leaving as
a plain miss. vba_next is the other shape: CPUInit sits at gba.cpp:5137
in upstream VBA-M and always has, but the profile declared no
upstream_commit, so the upstream was pinned by profiled_date to a
revision where that file was shorter.

aps3e was left alone: its pin is behind for two refs and HEAD has moved
far enough that advancing costs seven more.
2026-09-05 08:55:28 +02:00
Abdessamad Derraz c3d9e96d61 feat: arbitrate a contested slot by who the pack serves 2026-09-05 08:53:47 +02:00
Abdessamad Derraz 1245bb6eed chore: name the shipped artefact ssf and aethersx2 read
Both cite files that ship in a release and exist in no revision of any
declared repository: SSF's Document/Readme.txt, and the MacOS binary and
Resources folder of the AetherSX2 app bundle. Cited behind the project's
own name the resolver looked for them in the tree; behind a label that
is not a repository they read as what they are.
2026-09-05 08:46:40 +02:00
Abdessamad Derraz 06aa4a9646 chore: recale openlara onto its pin 2026-09-05 08:46:01 +02:00
Abdessamad Derraz 26cf0181c8 chore: name the platform openlara's main.cpp belongs to
OpenLara carries twenty-seven main.cpp, one per platform, and the bare
name matched them all. This profile is the libretro core, so the file is
src/platform/libretro/main.cpp, where the extension list, retro_load_game
and the system directory probe sit at the lines cited.
2026-09-05 08:46:00 +02:00
Abdessamad Derraz 4b1a86e97c chore: recale ruffle onto its pin 2026-09-05 08:45:43 +02:00
Abdessamad Derraz 6e65b542bb docs: ruffle reads a face through freetype now
The freetype feature joined the desktop defaults, and load_fontdb_font
takes a renderer and an atlas set: on Linux the face goes through
FreetypeFontRenderer, and the memory map of the file is the other
branch. Which faces are asked for is unchanged, and still no name, path,
size or hash is fixed anywhere.
2026-09-05 08:45:38 +02:00
Abdessamad Derraz ed40d04b49 chore: recale gargoyle onto its pin 2026-09-05 08:45:06 +02:00
Abdessamad Derraz 7459c2d73b docs: name the interpreter gargoyle now defaults to
scarier handles both Adrift 4 and Adrift 5 and is what the two default
to; scare and FrankenDrift each cover one format and win only where the
build asked for them. The profile still named scare and FrankenDrift as
the pair.
2026-09-05 08:44:58 +02:00
Abdessamad Derraz 5d3420dee8 chore: recale blastem onto the tree it describes
libblastem.c doubled in length and read_bundled_file moved from 661 to
1297; the TMSS fatal_error left genesis.c:1933, which is blank, for
3043. The refs described none of it. Pin moved with them, 6 anchored.
2026-09-05 08:44:25 +02:00
Abdessamad Derraz 77929f8c82 feat: report slots where a profile contradicts the pack 2026-09-05 08:41:30 +02:00
Abdessamad Derraz 771c38ab09 fix: say nothing was run when the fingerprint differs 2026-09-05 07:50:18 +02:00
Abdessamad Derraz ab170f990d docs: add a first install walkthrough 2026-09-05 07:46:06 +02:00
Abdessamad Derraz 22d7e4aa9f feat: end the install run on what happened 2026-09-05 07:39:50 +02:00
Abdessamad Derraz 45e21fca51 docs: cover android in the installer pages 2026-09-05 07:02:57 +02:00
Abdessamad Derraz f864613f11 feat: detect android in the installer 2026-09-05 07:00:12 +02:00
Abdessamad Derraz 96920785ad feat: take the shader pack idtech4a++ expects now
Three refs cited paths under Q3E/src/main/jni that the repository does
not carry: xash3d-fwgs and SeriousSamClassic are git submodules, so the
parent tree holds pointers and nothing else. They read as the separate
repositories they are, which is what the external form is for.

Reading the last two changed blocks turned up the substance.
ETQW_GLSL_SHADER_VERSION went from .3 to .6, and the bundled
zzz_etqwbase.pk4 grew from 136061 to 141815 bytes: the size, md5 and
sha1 the profile recorded describe the pack that was replaced. The new
one is in, the old one kept as a variant for builds that still expect
it, and GameResourceUrl gained two Quake 4 mod entries along the way.

70 refs, 68 anchored and 2 external, none left to read.
2026-09-05 04:56:53 +02:00
Abdessamad Derraz 6582c3237e fix: name the stale pin when the file is only shorter
The diagnostic caught a ref whose file was missing at the pin. nestopia
showed the other shape: the file is there and the line is not yet. Its
palette and database loads were cited at 2041 and 2063, which is where
HEAD carries them, against a pin four hundred lines shorter, and that
reported as a plain GONE with nothing to act on.

A cited line past the end of the pinned file that fits HEAD is the same
finding as before and now says so. nestopia's pin moved to the revision
its refs describe: 8 refs, all anchored.
2026-09-05 01:31:10 +02:00
Abdessamad Derraz 3fdbe3767d chore: recale np2kai onto its pin 2026-09-05 01:23:43 +02:00
Abdessamad Derraz e4f6e70434 chore: cite the line np2kai builds its sample names on
The four rhythm entries pointed at fmgen_opna.cpp:1434, a blank line at
the pin as well as at HEAD. What they mean is the block above it, where
2608_ is joined to the rhythm name and .WAV and the file is opened.
2026-09-05 01:23:35 +02:00
Abdessamad Derraz c738073f66 fix: move the refs and the pin together or not at all
Recaling refs while the pin stays put produces exactly the state the
all-or-nothing rule exists to prevent: a profile whose refs describe one
revision and whose source_commit names another. The tool manufactured it
on mariani, where three prose runs it could not rewrite kept
bump_commit refusing while eleven refs had already moved.

Asking for both writes is now atomic. The work happens on a copy, which
is promoted only when the pin follows, and a rebase is refused outright
when something visible beforehand will hold the pin: an annotated ref,
one under a mode key, or a prose run whose tokens cannot be located well
enough to rewrite. Where the block only appears after the write, the
copy is discarded and the profile is named on stderr rather than left
half moved.

mariani is back on its pin and stays at four refs to read, which is
honest: three of them have to be rewritten by hand before anything can
advance.
2026-09-04 18:55:15 +02:00
Abdessamad Derraz 09406ba5d4 chore: put mariani back on its pin 2026-09-04 18:48:33 +02:00
Abdessamad Derraz ffb479e6a3 chore: recale mariani onto its pin
The two changed blocks are BOOL, TRUE and FALSE giving way to bool, true
and false, and MemInitializeCustomROM losing its void parameter list.
Which ROM is read and how is untouched. 67 refs, all anchored.
2026-09-04 18:44:08 +02:00
Abdessamad Derraz 6f27a296f7 feat: refuse a citation no repository can hold
kenji-nx cited tmp/es-de/ANDROID.md:470-474, a path from the machine of
whoever profiled it. No revision of any declared repository holds it, so
profile_sync could only report it missing, every pass, forever, and no
amount of reading would ever settle it.

validate_schemas now refuses a scratch directory, an absolute path, a
Windows drive path and one climbing out of the tree, and names the
offending citation rather than the scalar that carries it. Offline, so it
runs on every push and every pull request rather than waiting for a
network pass.

The ES-DE citation reads as external now, which is what it always was.
kenji-nx is at 37 refs, all anchored: the three changed blocks were var
giving way to explicit types.
2026-09-04 18:26:27 +02:00
Abdessamad Derraz d124f6c516 feat: watch the profiles that declare no files
An empty file list is the one assertion here that ages unwatched. Nothing
can go missing and no ref can drift, so nothing notices when a core that
embedded everything grows a path. virtualjaguar said "No external BIOS
files are required or loaded by this core" while its source had grown
eleven filenames read from the system directory, and only a reading
found it.

fileless_audit looks for the request itself, the system directory ask, in
the sources each profile already cites. Over the 151 fileless profiles it
named eleven, of which two were covered by data_directories, six carried
an exclusion_note, and three had nothing written down at all: craft
writes its world database in that directory, dice stores the answer in a
variable no other file in the tree names, lutro hands it to the Lua game.
Each now says so.

The check settles: declared files, a declared directory, or a written
answer all end it, so what it reports is the set nobody has read yet. A
test holds the corpus at zero.
2026-09-04 18:13:53 +02:00
Abdessamad Derraz 2ea745a062 feat: virtualjaguar reads BIOS files now, so declare them
The profile said "No external BIOS files are required or loaded by this
core" and carried an empty file list. The core reads up to eleven names
from the system directory today.

Staging left retro_load_game for stage_cart_boot_rom, which tries a file
before the embedded array. BT_CUSTOM, a value the enum did not carry
when this was profiled, searches six cart boot ROM names across three
directories; BT_M_SERIES tries jagboot_m.rom. Both need 0x20000 bytes,
the size copied to jagMemSpace + 0xE00000.

The Jaguar CD BIOS is the larger addition: three name groups over five
directories, accepted at exactly 0x40000 bytes and recognised by CRC32
against 687068D5 retail and 55A0669C developer. The group order follows
virtualjaguar_cd_bios_type, then generic names, then the other type,
since a lone file of the wrong type still beats the embedded copy.

None is required, every path falls back to an embedded array. What they
buy is the real dump instead of the reimplementation. The collection
holds the cart boot ROM under boot.rom; both CD BIOSes and jagboot_m.rom
are absent and now show as gaps rather than as nothing at all.
2026-09-04 17:54:05 +02:00
Abdessamad Derraz f85236fa1e chore: recale geargrafx onto its pin
The profile mixed vintages: most refs carried pin-era line numbers while
the Game Express note already named the HEAD position, which reads as a
blank line at the pin. Everything now describes one revision. The only
content change in the cited blocks is LoadMediaFromZipFile taking a
softpatching flag, which decides nothing about which BIOS is read.
2026-09-04 17:50:55 +02:00
Abdessamad Derraz 1a1f19be2d feat: check a MAME ref against the set it names
profile_sync follows content, so a ref that drifted still anchors where
the cited text went. That is drift detection working, and it cannot
answer the only question a MAME romset ref asks: does this line declare
this set. It flagged five refs in one driver file where nineteen were
stale, the fourteen others having been relocatable somewhere plausible.

mame_ref_audit asks the stronger question and found ninety-two across
the four profiles whose upstream still moves: mame 66, mamearcade 18,
mamemess 6, groovymame 2. Each had exactly one declaration to point at.
The frozen generations, mame2009 through mame2016, come out clean, which
is the check saying it finds drift only where drift can happen.

The set name is argument 1 of the machine macro. Matching it anywhere on
the line matches every clone naming it as parent, which is most of a
driver, and comments are stripped first because a declaration can sit
behind one. A set no machine declares is reported as not judgeable, not
wrong: device archives take their DEFINE_DEVICE_TYPE shortname.
2026-09-04 17:48:24 +02:00
Abdessamad Derraz 2663bac1c2 chore: point each xavix ref at its own set
profile_sync flagged five refs in src/mame/tvgames/xavix.cpp. Checking
each entry against the line that declares its own set showed nineteen
were wrong, the whole e-kara and XaviX family: ekara cited 2956 where
the pinned revision declares it at 2878. The fourteen the tool passed
were relocatable by content, so they anchored somewhere plausible; that
is drift detection working, and it is weaker than asking whether the
cited line declares the set the entry names.

Every ref now names the CONS line of its own set at the pinned
revision, checked by matching the set name on that line rather than by
anchoring.
2026-09-04 17:35:30 +02:00
Abdessamad Derraz 5ccdaa6bdf docs: the release key is registered, so name the cross-check 2026-09-04 17:32:14 +02:00
Abdessamad Derraz ece637d52d feat: let a profile state that its upstream is gone
Saying those profiles would stay open no matter what was wrong. A dead
forge is a verifiable fact, and a fact can be recorded: upstream_gone
carries why, and the profile stops being an open problem. The refs
describe the last revision anyone could reach, which is all any reader
can ask of them.

The declaration is guarded rather than trusted, because a forge can come
back and a profile that keeps asserting a death nobody rechecks is worse
than one that fails loudly. Declared and unreachable reports as a
recorded fact; declared and answering reports as the contradiction it
is, and the profile has to be read again.

yuzu and suyu carry GitHub's 451. citron carries the loss of
git.citron-emu.org and the squatter now sitting on the .com. Each names
what was probed and when, so the next reader retraces it rather than
repeating it.
2026-09-04 17:25:23 +02:00