Commit Graph
19 Commits
Author SHA1 Message Date
duffyduck 6847f9be8c Smacks-Tauchsteuerung: sanftes Auf-/Abtauchen mit Hoch/Runter, Schwimmanimation bei jeder Bewegung, Space=Stoss/Oberflaechensprung (Hoch springt nicht mehr) 2026-07-26 02:05:03 +02:00
duffyduck eb798a825e Wasserschaden-Fix: can_swim statt swimming pruefen -- Smacks verlor beim Oberflaechensprung Herzen (swimming ist dort kurz False, obwohl noch im Wasser) 2026-07-25 18:39:16 +02:00
duffyduck 09264109ca Charaktersystem komplett auf Original-Slots umgebaut: alle 4 Figuren mit echten Animationen, Toucan-Flug, Coco-Hangeln, Smacks Sprung/Duck-Fix, Anker aus BOB-Headern, Wasser-Sofortschaden 2026-07-25 16:10:21 +02:00
duffyduck 6ac9d7fc6b NOTES: Animationssystem komplett dekodiert (BOB-Header = Slot+Anker, +50-Richtungsregel, universelle Slot-Semantik, Toucan-Flugphysik) 2026-07-25 15:53:20 +02:00
duffyduck ac6a736d28 Weltkarten-Daten fest eingebettet (SEGMENTS/LEVEL_NAMES), parse_worldmap raus aus dem Spiel -- Extraktor als tools/worldmap_extract.py, Laufzeit braucht nur noch PCKELL.DAT 2026-07-25 14:59:11 +02:00
duffyduck 9b5a5afce0 README: START.EXE als optionale Laufzeit-Abhaengigkeit der Weltkarte dokumentiert 2026-07-25 14:53:19 +02:00
duffyduck ad53d11536 Weltkarte pixelexakt: gemessene Blit-Anker (Basis=(x,218-y)), Punkt steht + Kopf blinkt darueber, Segment/Name-Zuordnung um 1 korrigiert (W1L0 hat keinen Kartenpunkt) 2026-07-25 14:52:49 +02:00
duffyduckandClaude Fable 5 ac5c2c135a Weltkarte: Blit-Anker-Offset (+5,+4) fuer Punkte/Pfad -- Binary-Koordinaten sind korrekt, der Anker stand nicht im Binary
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 14:38:26 +02:00
duffyduckandClaude Fable 5 bca944810e Weltkarte: y-Flip der Binary-Koordinaten + Original-Blinken (Punkt<->Kopf)
DOSBox-Nachmessung des blinkenden Level-1-Markers (real (59,153) vs
Binary-Label (53,56)): die Binary-y-Achse ist geflippt (screen_y=209-y).
Alle Pfade/Punkte jetzt an den Original-Positionen (W1 Wald unten, W2/W3
Berge/Schloss -- deckungsgleich mit Stefans Original-/Netz-Screenshots,
Kopf-am-Teich = W1L7). An der aktuellen Position wechseln Punkt und
Mini-Kopf im 0.5s-Rhythmus (Original-Verhalten laut Frame-Diff, die
Referenzbilder zeigen jeweils eine Phase).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 14:31:38 +02:00
duffyduckandClaude Fable 5 68be969e0d WELTKARTE mit Levelauswahl -- Pfad/Punkte/Namen live aus dem Binary
game/worldmap.py: parst Kartenpfad, Levelpunkt-Positionen und die 22
Levelnamen zur Laufzeit aus START.EXE (NE-Datensegment, Anker-Suche,
Fallback W1L1). Links/Rechts laesst die Kartenfigur (Mini-Kopf KARTE4-7
je Charakter) die Original-Wegpunkte ablaufen, der aktive Levelpunkt
blinkt orange/blau (KARTE0/2 -- Blinksequenz stand exakt so in der
Binary-Animationstabelle), Space/Return startet das Level, ESC -> Menue.
Kartenposition bleibt ueber Levelbesuche erhalten.

Level ohne handgepflegte LEVEL_INFO erhalten einen generischen Spawn
(erste Bodenstelle) -- damit sind ALLE 22 Level anwaehlbar und spielbar
(Basis-Physik; Wasser/Tueren dort folgen mit den echten Leveldaten).

E2E: Karte -> laufen -> W1L3 spielen -> zurueck -> W1L2 -> QUIT rc=0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 14:18:30 +02:00
duffyduckandClaude Fable 5 cdf6da6f7d BINARY-DURCHBRUCH: NE-Overlay geparst, Original-Animationstabellen gefunden
START.EXE = MZ-Stub + ungepackte NE-Executable (Borland DPMI16). Im
DATA-Segment liegen die ANIMATIONSTABELLEN im Klartext (Format
[delay_ticks][frames...]ffff, 70Hz): Engine-Frame x2 = BOB-Frame.
Bestaetigt: Gehzyklus 0-14/17.5fps, Idle 16, Sprung 18, Renn-Rad
26-32. Uebernommen: ECHTE Frosties-Idle-Sequenz (46,48,46,44,...,20x5,
2.8fps) und Original-Anim-Timings (17.5fps Gehen/Rad).

Ausserdem im Binary gefunden: kompletter WELTKARTEN-LAUFPFAD + LEVELPUNKT-
Koordinaten + 22 Levelnamen (Grundlage fuer die Karten-Levelauswahl) und
den "Kellogg's Cheat-Mode" (Level-Waehler). Dump + Offsets in NOTES.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 14:06:45 +02:00
duffyduckandClaude Fable 5 f7f29a0309 Absprung-Hocke + Tuer-Dimmen (DOSBox-Referenz); Binary-Tabellensuche negativ
Stefans Frage nach Disassembly: Byte-Muster-Suche nach Frame-Tabellen in
START.EXE/RTM.EXE ohne Treffer (nicht als nackte Tabellen im Binary);
stattdessen DOSBox-Frameserie (0.12s) mit Tuer-Charakterwechsel zu Smacks:
- Original-Sprung hat eine Absprung-Hocke (Kauer-Frame im Absprungmoment,
  dann Streckung) -> JUMP_SQUAT_SECONDS=0.09 eingebaut (alle Charaktere).
- Original dimmt den Level waehrend der Tuer-Sequenz ab -> Overlay
  waehrend door_open_t.
- Nebenbei verifiziert: unser Charakter-Menue ist deckungsgleich mit dem
  Original (Layout, graue Koepfe fuer nicht verfuegbare Charaktere).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 13:56:34 +02:00
duffyduckandClaude Fable 5 200fc6192d Wasser-Regeln (kein Ducken, 1.5s-Schaden), Schadens-Blinken, echte Peek-Frames
- Nicht-Schwimmer koennen im Wasser nicht mehr ducken.
- Herzverlust im Wasser alle 1.5s statt 5s.
- Nach Schaden blinkt die Figur 0.9s (Sichtbarkeits-Toggle; beim Tod
  deaktiviert, damit die Anim nicht unsichtbar haengt).
- Tuer-Reinschauen nutzt die echten Sprites: TONY 50 (Rueckenansicht),
  SMACKS 48 (Stefans Fund -- jeweils letzter Frame vor den Platzhaltern).

Verifiziert: Duck-Verbot im Wasser, Blink-Muster wechselt, --once exit 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 13:48:39 +02:00
duffyduckandClaude Fable 5 10c5a5b69c Wasser-Bounce, Tod-Animation (Tuch/Kappe), Tuer-Peek, Duck-Kamera-Grace
Stefans fuenfte Feedback-Runde:
- Nicht-Schwimmer huepfen endlos auf der Wasseroberflaeche (~6px Auto-
  Bounce) statt statisch zu stehen; Steuerung und voller Ausstiegs-Sprung
  bleiben moeglich. Kein Idle im Wasser.
- Tod bei 0 Herzen: Tony verliert sein HALSTUCH (Frame 38 = Tony ohne
  Tuch, Frame 40 = Tuch einzeln -- die Assets waren dafuer gebaut!),
  fliegt aus dem Bild, Tuch flattert herab; Smacks analog mit Kappe
  (26/29). Danach Respawn mit Leben-1, bei 0 Leben zurueck zur Karte.
- Tuer-Peek: Figur zeigt waehrend der Offen-Sekunde einen Reinschau-Frame.
- Duck-Kamera: 0.2s-Grace gegen X11-Autorepeat-/on_ground-Flackern
  ("Kamera geht sporadisch wieder rauf").

Verifiziert: Bounce-Amplitude ~6px endlos, voller Sprung aus dem Wasser,
Tod-Sprites gesichtet (Tuch/Kappe), --once exit 0, E2E rc=0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 13:38:08 +02:00
duffyduckandClaude Fable 5 0ad97e7180 Tuer-Oeffnungs-Sequenz, Slope-Landungs-Fix, Kamera-Logik, Sprite-Feinschliff
Stefans vierte Feedback-Runde:
- Sprites sinken 4px in den Boden ein (Fuesse standen sichtbar UEBER den
  Blaettern; Original laesst sie einsinken).
- Echte Steh-Frames: Tony 16/17, Smacks-Walkzyklus ohne die Steh-Frames
  12-15 ("letzter Lauf-Frame blieb beim Anhalten stehen").
- Tuer: DOORS[0] ist die OFFENE Tuer -> Ruhe = Tile-Tuer + Kopf-Schild
  (DOORS[5]); ALT oeffnet die Tuer sichtbar und nach 1s folgt die Aktion
  (Charakterwechsel-Menue) -- Muster fuer alle Tueren inkl. der
  Schluessel-Tueren (DOORS 1-4).
- Slope-Landung: Swept-Kollision ueber alle ueberstrichenen Zeilen +
  Herkunftsbedingung -- kein Durchfallen mehr bei schnellen Landungen
  (Stress-Test: 50 Drops ueber die Hangbreite, 0 Durchfaller).
- Kamera: Figur steht bei ~75% Bildhoehe; DUCKEN gehalten (>=1.2s) faehrt
  die Kamera sanft ~40px nach unten (Wasser unter Abgruenden sichtbar).

Verifiziert: Tunneling-Stresstest 0/50, Idle-Frames korrekt, Standbild
(Fuesse in Blaettern, Schild auf zu-Tuer, Kamerahoehe), --once exit 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 13:25:44 +02:00
duffyduckandClaude Fable 5 bb9c23aae5 HUD-Kopf pixelig mit schwarzem Umriss, echte Tuergrafik (DOORS.BOB)
- Charakter-Icon im HUD: nearest-skalierter WECH-Kopf + schwarzer 1px-
  Umriss (Original-Look, Stefans Feedback). Eigene Mini-Kopf-Assets gibt
  es nicht (GAMEBAR.BOB[16] leer).
- DOORS.BOB entschluesselt: Frame 0 (Tuer mit Kopf-Schild) wird jetzt auf
  die Tuerposition geblittet; Frames 1-4 sind die Schluessel-Tueren mit
  farbigen Knaeufen (fuer die spaetere Schluessel-Logik), Frame 5 das
  Schild einzeln.

Szene deckungsgleich mit Stefans Original-Screenshot (Tuer mit Schild und
Punkten, pixeliger HUD-Kopf). --once exit 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 11:54:11 +02:00
duffyduckandClaude Fable 5 54e950141b HUD final: GAMEBAR.PCC pur (weisse Boxen), Original-Ziffern, 6 Herzen
Stefans Korrektur: Box-Innenflaechen sind im Original WEISS (die Grafik
hatte es schon richtig -- Dunkelrot-Fuellung entfernt, Grafik-":" damit
nativ sichtbar). Zahlen jetzt in der Original-HUD-Font: GAMEBAR.BOB-
Ziffern (7x13), gerendert mit der GAMEBAR.PCC-Palette -> sattes Rot mit
dunkler Umrandung, gleiche Farbe wie der Doppelpunkt. Herzen: 6 Stueck im
3x2-Grid (Original-Screenshot), Start/Reset auf 6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 11:46:46 +02:00
duffyduckandClaude Fable 5 6c3d6ea7a7 Echte GAMEBAR.PCC als HUD, pixelgenaue Slopes, Step-up, Wasser-Grund
Stefans dritte Feedback-Runde:
- HUD nutzt jetzt die ECHTE GAMEBAR.PCC aus PCKELL.DAT (Stefans Fund):
  Kellogg's-Leiste, Boxrahmen und Uhr-":" kommen aus der Original-Grafik;
  weisse Box-Innenflaechen werden beim Laden dunkelrot gefuellt (macht die
  Original-Engine zur Laufzeit ebenso). Inhalte an den gemessenen Box-
  Positionen; HUD_H=25 (Grafikhoehe), VIEW_H=175.
- Slopes PIXELGENAU: Laufflaeche = oberster Nicht-Himmel-Pixel der Tile-
  Grafik pro Spalte (die Haenge sind ~1:2, nicht 45 Grad -- Ursache des
  restlichen Schwebens). Sky-Index vom haeufigsten Luft-Tile. Reine
  Himmel-Spalten tragen nicht.
- STEP_UP=6: Mini-Stufen (Plateau-Kante ueber Hangende) werden beim Laufen
  ueberwunden; hohe Waende blocken weiterhin.
- Unterste Map-Zeile immer solide (Grafik-Bodenstreifen ohne ctypes) --
  kein Steckenbleiben mehr beim Tieftauchen.
- Smacks-Steh-Frames 12/13 statt 0/1 (Anhalte-Sprite-Bug).

Verifiziert: Slope-Drop exakt auf Grafikkante, Plateau-Aufstieg, Wand-
Integritaet, Smacks-Idle, --once exit 0, E2E rc=0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 11:39:21 +02:00
duffyduckandClaude Fable 5 7eb7f6f3b7 Wasser-Mechanik nach Original, Slope-Schweben-Fix, Spawn-Pose, HUD v3
Stefans zweite Feedback-Runde:
- Nicht-Schwimmer (Tony & Co.) tauchen nicht mehr unter: die Wasser-
  oberflaeche traegt (14px Eintauchtiefe, springen von dort moeglich,
  Herzverlust laeuft) -- wie im Original-Screenshot. Schwimmer (Smacks)
  loesen nahe der Oberflaeche mit der Sprungtaste einen echten Sprung aus
  und kommen wieder aus dem Wasser raus (vorher unmoeglich).
- Slope-Schweben gefixt: Luft-Snap nur bei echter Durchdringung; Bergauf-
  Toleranz nur fuer bereits Gelandete.
- Start-Sprite-Sequenz beim Levelstart/Charakterwechsel (Tony Arm hoch,
  Smacks Daumen hoch, Frame 22, ~1.1s, durch Eingabe abbrechbar).
- Rennsprungweite: RUN_SPEED 185 -> 200 ("bis hinter die Blume").
- HUD v3 nach Original-Referenz: helle Creme-Rahmen, hoehere Boxen,
  Cerealien-Icon in voller Groesse, leere Herz-Plaetze dunkel.

Verifiziert: Physik-Sims (Wade+Absprung, Smacks-Ausstiegssprung, Decken-
Kollision unter der Bruecke korrekt) + E2E rc=0 + --once exit 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 11:19:44 +02:00