Travail effectue
1. Script de décompression batch SBDepack (Workbench)
Vu que le rapport originalInventory a révélé 128 fichiers SBDepack-packed sur 303,
le reverse complet du décompresseur en Java a été reporte. A la place, on génère un
script AmigaDOS qui sera execute dans un émulateur Amiga (FS-UAE / WinUAE) pour
décompresser tous les fichiers en place.
original/decompress_all: script AmigaDOS (à lancer viaexecute decompress_all
depuis un Shell après avoir montéoriginal/comme volume Amiga).
Liste explicitement les 128 fichiers à décompresser (4 sections : INCLUDES, hqn,
levels/*/twolev.clips, samples, walls). Documentation intégrée en tête.
Note importante : SBDepack ECRASE en place, donc après exécution les originaux
compressés sont perdus (l’utilisateur a accepté ce trade-off).
2. Inventaire des directives include/incbin/#include
Deuxième scanner d’inventaire pour analyser les sources ASM/C et faire le mapping
« asset binaire → source qui le charge ».
Fichiers créés dans tools/extract/inventory/ :
IncludeDirectiveParser.java(~110 lignes) : parser ligne-à-ligne avec 4 regex
(incbin,include,#include local,#include system). Skip lignes
commentées (;,//,*). Records Java pour le résultat.IncludesInventory.java(~280 lignes) : scanner récursif. Walk file tree, lit en
ISO-8859-1 (tolérant Amiga 8-bit), produit deux rapports.
Les rapports générés :
– build/includes-inventory.txt (humain) : statistiques par type, mappage source
-> incbin avec [OK]/[MISS]/[CASE] selon disponibilité dans original/, cross-
reference inverse (asset -> sources qui l’incluent), includes textuels groupés
par fichier source, listing complet.
– build/includes-inventory.json (machine) : liste plate exploitable.
3. Tasks Gradle
includesInventory: lance le scanner. Source par défaut../ab3d2-tkg-original,
surchargeable via-Pab3d2.sources=<chemin>. Resolve dir =original/(pour
vérifier l’existence des assets référencés).- Action NetBeans :
action.custom-46.
Validation locale
Testes sur :
– Donnees synthetiques (5 incbin + 5 include, dont 1 missing et 2 dupliques) -> OK.
– Sources réelles dans /mnt/project/ (les sources ASM/C livrées) -> 21 incbin
detectes, 264 include textuels detectes. Les 21 incbin couvrent : font, palettes,
bordures, scrollfont, sprite sheets, audio (gameover, quietwelldone), bigsine
(table sinus precalculee), iterfile (table iter rendu wall), newtitlepal
(palette ecran titre).
Utilite immediate
Quand l’utilisateur lance ./gradlew includesInventory, il aura :
1. La liste exacte des assets binaires charges par chaque .s
2. Pour chacun : present dans original/ ou non
3. La cross-reference (un asset peut etre incbin par plusieurs sources)
C’est exactement ce dont on a besoin pour la suite : savoir, pour chaque convertisseur
(textures, sons, sprites), quel(s) fichier(s) précis charger et depuis quelle source
ces fichiers sont référencés.