Abdessamad Derraz
8380f63f97
fix: write one romm entry per key
2026-10-10 12:11:16 +02:00
Abdessamad Derraz
b00352754c
fix: keep retropie's list idiom when extending
2026-10-10 11:16:21 +02:00
Abdessamad Derraz
b5f9095633
fix: write retrodeck additions beside homonyms
2026-10-10 10:57:57 +02:00
Abdessamad Derraz
0057a82fe1
fix: write recalbox additions at the core path
2026-10-10 10:56:46 +02:00
Abdessamad Derraz
c2bdef4db4
fix: pair a bare truth name by name, not suffix
2026-10-10 10:04:35 +02:00
Abdessamad Derraz
8fb65b8e97
fix: exporters keep what the maintainer wrote
2026-10-09 22:45:57 +02:00
Abdessamad Derraz
d8ad89902b
refactor: split helpers out of grown functions
2026-10-06 13:59:50 +02:00
Abdessamad Derraz
cb5ce96103
fix: quote system.dat names as the original does
2026-10-06 12:16:23 +02:00
Abdessamad Derraz
e787fcee8e
fix: leave bizhawk's declared sha1 to bizhawk
2026-10-06 12:15:50 +02:00
Abdessamad Derraz
4727734c24
fix: refuse a one-md5 addition of several accepted
2026-10-06 12:15:49 +02:00
Abdessamad Derraz
ecdfbdf64f
fix: never pair files whose contents or dirs differ
2026-10-06 12:15:40 +02:00
Abdessamad Derraz
500535b7a6
fix: state no size for several accepted sizes
2026-10-06 12:04:24 +02:00
Abdessamad Derraz
f3d01aeeeb
refactor: split this round's fixes into small helpers
2026-10-06 11:16:06 +02:00
Abdessamad Derraz
a848730a80
fix: count mister corrections only where it writes
2026-10-06 09:41:53 +02:00
Abdessamad Derraz
aac09aa6ad
fix: count bizhawk corrections only where it writes
2026-10-06 09:41:28 +02:00
Abdessamad Derraz
d085fd895b
fix: write emudeck corrections, count only what lands
2026-10-06 09:41:04 +02:00
Abdessamad Derraz
e4616f7098
fix: never let a romm addition replace their entry
2026-10-06 09:40:09 +02:00
Abdessamad Derraz
c9689ebad7
fix: keep platform hashes the truth does not contradict
2026-10-06 09:39:07 +02:00
Abdessamad Derraz
05ae30ce48
refactor: simplify pack label, hash merge, diff exit
2026-10-06 07:06:22 +02:00
Abdessamad Derraz
c8a30de493
refactor: let the retropie core check take none
2026-10-06 07:05:05 +02:00
Abdessamad Derraz
d3c4198eb9
refactor: extract retrodeck key matching helpers
2026-10-06 06:40:41 +02:00
Abdessamad Derraz
226a5df74a
refactor: hoist test imports, rank pairs at module level
2026-10-06 06:38:35 +02:00
Abdessamad Derraz
64516f2bdc
fix: propose retropie names per core, never into or-lists
2026-10-06 05:01:10 +02:00
Abdessamad Derraz
0e7ed498e3
fix: keep recalbox notes its own
2026-10-06 05:00:36 +02:00
Abdessamad Derraz
9a8c60e12e
fix: correct one retrodeck revision, not all of them
2026-10-06 05:00:24 +02:00
Abdessamad Derraz
683ba4ef62
fix: export one file's identity, never two mixed
2026-10-06 05:00:02 +02:00
Abdessamad Derraz
95d10ee812
fix: count what each export format writes
2026-10-06 01:22:56 +02:00
Abdessamad Derraz
1c4eb8adec
fix: correct a platform list without replacing it
2026-09-07 06:40:18 +02:00
Abdessamad Derraz
691ccbfca7
feat: make the native export round-trip a platform file
2026-09-05 17:32:48 +02:00
Abdessamad Derraz
b120528dd7
test: cover the native format exporters
...
export_native turns the profile data back into each platform's own
file, for a maintainer there to pick up and use, and none of the ten
exporters had a test. Coverage goes from 0 to 83%.
Writing them found the EmuDeck exporter rejecting its own output: its
export skips placeholder entries, its validate looked for them anyway
and reported the omission as a missing hash. Both sides apply the same
filter now.
The placeholder assertion initially passed for the wrong reason twice
over -- the fixture entry had no hash, so it was dropped as incomplete
rather than as a placeholder, and the assertion then read the name
while the exporters write the path. It is pinned on an unmistakable
destination now, and removing the guard fails two tests.
2026-08-12 00:46:04 +02:00
Abdessamad Derraz
587aadde08
fix: coerce numeric hashes to strings
2026-08-07 15:30:37 +02:00
Abdessamad Derraz
0a272dc4e9
chore: lint and format entire codebase
...
Run ruff check --fix: remove unused imports (F401), fix f-strings
without placeholders (F541), remove unused variables (F841), fix
duplicate dict key (F601).
Run isort --profile black: normalize import ordering across all files.
Run ruff format: apply consistent formatting (black-compatible) to
all 58 Python files.
3 intentional E402 remain (imports after require_yaml() must execute
after yaml is available).
2026-04-01 13:17:55 +02:00
Abdessamad Derraz
caf6285a04
fix: skip entries without md5 in batocera and retrobat exports
2026-03-30 17:46:48 +02:00
Abdessamad Derraz
529cb8a915
fix: recalbox paths from scrape, batocera md5 fallback from scrape
2026-03-30 17:35:39 +02:00
Abdessamad Derraz
1146fdf177
fix: rewrite emudeck exporter to match exact checkBIOS.sh format
2026-03-30 17:21:56 +02:00
Abdessamad Derraz
4fbb3571f8
fix: exporters use _dest fallback, merge colliding systems, per-platform subdirs
2026-03-30 17:15:44 +02:00
Abdessamad Derraz
0be68edad0
feat: add exporters for lakka, retropie, emudeck, retrodeck, romm
2026-03-30 17:07:08 +02:00
Abdessamad Derraz
c4f3192020
fix: system.dat rom quoting, native_ids, acronym display names
2026-03-30 16:17:50 +02:00
Abdessamad Derraz
e2d0510f4e
fix: exporters match exact native formats with display names
2026-03-30 16:09:02 +02:00
Abdessamad Derraz
74269bab84
fix: rewrite exporters to match exact native formats
2026-03-30 15:49:33 +02:00
Abdessamad Derraz
1e6b499602
feat: add batocera, recalbox, retrobat native exporters
2026-03-30 15:31:44 +02:00
Abdessamad Derraz
e86d8d68af
feat: add exporter plugin architecture
2026-03-29 13:19:38 +02:00