- PCKELL.DAT ist der eigentliche Asset-Container (Index am Dateiende),
nicht PCKELL.PRE -- alle 178 Assets fehlerfrei extrahierbar
(tools/dat_extract.py, tools/kellogg_formats.DATContainer)
- BOB (Sprites): self-modifying x86 draw-code decodiert, alle 32 Dateien /
462 Frames korrekt (Tony, Gegner, Items) -- tools/kellogg_formats.parse_bob
- ICO (16x16 EGA-Tilesets) und MAP (Level-Grids, big-endian) decodiert und
gerendert -- alle 19 ICO- und 22 MAP-Dateien fehlerfrei, Level W1L0 sieht
korrekt aus (Haeuser, Baeume, Berge an den erwarteten Stellen)
- Palette-Regeln (BOB/ICO/MAP -> passende PCC) aus der C#-Referenz
uebernommen und in Python neu implementiert
- Aufraeumen: PRE-basierte Extraktion (split_pre.py, extracted_pre) und
alle Blindflug-Explorationsskripte aus der ersten BOB-Sackgasse entfernt,
VM-Arbeitsverzeichnis von Debug-Screenshots befreit
- pcc_to_png.py aktualisiert (Xmax/Ymin-Dimensionsfix, jetzt visuell
gegen DOSBox-Referenz verifiziert statt nur behauptet)
Offen: ARE (Kollisionszonen, auch Referenz-Projekt unvollstaendig) und
SAM/TFX (TFMX-Sound) noch nicht angefasst.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Beide vorherigen Hand-RLE-Decoder (Row-Reset und kontinuierlich) waren
trotz gegenteiliger Behauptung sichtbar kaputt (Bildinhalt verschoben/
dupliziert) -- Stefan hat das im gepushten Repo sofort wieder gesehen.
Format-Referenz https://github.com/movAX13h/tony-and-friends-in-kelloggs-land
bestaetigt .PCC = Standard-PCX v5. Fix: convert pcx:datei.PCC statt
eigenem RLE-Parser. Verifiziert (visuell, nicht nur Byte-Stats) gegen
echte DOSBox-Screenshots -- KARTE.PCC und KELLOGGS.PCC jetzt wirklich
korrekt. Alle 77 PNGs neu erzeugt.
Stefan hat zurecht bemaengelt dass KARTE.PCC/KELLOGGS.PCC verzerrt/verrutscht
aussehen (Smacks-Frosch an falscher Position, Notch-Fehlstelle im Logo-Rahmen).
Root Cause: Der Decoder hat RLE-Runs am Ende jeder Bildzeile hart abgeschnitten
und den Rest verworfen (klassisches PCX-Verhalten angenommen). Dieses Format
haelt sich aber NICHT an die PCX-Konvention 'ein Run ueberschreitet nie eine
Zeile' -- Runs laufen frei ueber Zeilengrenzen. Verifiziert per Pixel-fuer-Pixel-
Vergleich gegen echten DOSBox-Screenshot (world map): mit durchgehender
Dekodierung (kein Row-Reset) ist das Ergebnis jetzt pixel-identisch zur Referenz.
- tools/pcc_to_png.py: Row-Reset entfernt, decodiert jetzt width*height Pixel
am Stueck aus dem RLE-Strom
- png_out/: alle 77 PNGs mit dem Fix neu generiert
- tools/wip_bob_sprite_research/: Backup der laufenden (noch ungeloesten)
BOB-Sprite-Format-Exploration von aria-wohnung, damit nichts bei einem
VM-Neustart verloren geht
- NOTES.md: Root-Cause-Analyse dokumentiert, alte Fehldiagnose ('byte-identisch
zwischen Row-Reset und kontinuierlich') korrigiert, Rauser-Intro-Frage
beantwortet (3 Frames vorhanden, Text-Logo, keine Video-Datei)
- tools/pcc_to_png.py: PCX-artiger Decoder fuer die 77 PCC-Vollbild-/Logo-
Dateien, mit Fix fuer falsch gelesene Width/Height (muss aus Xmax-Xmin+1/
Ymax-Ymin+1 statt Offset 12-15 berechnet werden)
- tools/split_pre.py: Extrahiert alle 181 Dateien aus PCKELL.PRE
- png_out/: alle 77 konvertierten PNGs (Arbeitsergebnis, kein Original-Asset)
- NOTES.md: vollstaendiger Analyse-Stand inkl. offener Punkte
- dosbox/dosbox.conf: funktionierende Testkonfiguration (IRQ-Fix)
Bewusst ausgeschlossen (.gitignore): raw/ und extracted_pre/, da Original-
Spieldaten von Kellogg's Tony and Friends (1994), keine Weiterverbreitung.