Aller au contenu principal

Session 132septimus — Inventaire des includes ASM/C + script Workbench SBDepack

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 via execute 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *