Intro gegen echte DOSBox-Referenz korrigiert + Leertaste-Skip
Referenzaufnahmen aus DOSBox (Xvfb) gemacht und danach:
- Rauser-Aufloesung gefixt: die nativen PCC-Assets werden jetzt EINMAL direkt
auf Endgroesse hochskaliert (Nearest) und der Screen direkt in Fenster-
aufloesung gerendert -- statt vorher 0.5x-Downscale (verwirft Pixel) + x3-
Upscale ueber eine 320er-Zwischenleinwand. Gleiche Groesse wie bisher (~33%
Bildbreite, gegen Referenz gemessen), aber gestochen scharf. Zusaetzlich das
tuerkise "!"-Kaestchen nachgebaut (im Original Engine-gezeichnet, in keinem
Asset enthalten).
- Titelbild-Reveal: Grau/Entsaettigung raus (Stefan "das gray raus"); die
Scanlines auf der unteren Haelfte loesen sich jetzt von der Mitte nach unten
auf ("scanlines ab der mitte getrennt weg") statt gleichmaessig auszufaden.
- Factor5: Logo haelt exakt so lange wie sein Sound (TITEL2 Song 1) spielt,
dann weiter zu Kellogg's.
- Leertaste ueberspringt jetzt den aktuellen Intro-Screen, ESC beendet das
ganze Intro (wait_or_skip gibt 'quit'/'skip'/None; run_once ist in Scenes
zerlegt).
HANG-FIX (dabei gefunden): das kompilierte render_tfmx-Binary war veraltet
(vor dem Song-Index-Feature aus render_tfmx.c gebaut) und renderte TITEL2 Song1
mit 180s statt 2.4s -- gekoppelt an die neue "Factor5-Dauer = Songlaenge"-Logik
haette das Intro 3 Minuten eingefroren. Fixes: audio._ensure_binary() baut jetzt
neu, wenn die Quelle neuer ist als das Binary (verhindert stale Binary nach git
pull); zusaetzlich FACTOR5_MAX_SECONDS als Sicherheits-Obergrenze.
Verifiziert: python -m game --once (headless) exit 0 in ~30s; Rauser/Titelbild
visuell gegen die DOSBox-Referenz gegengeprueft.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
e7d95190eb
commit
7aea2fac26
+11
-1
@@ -47,8 +47,18 @@ _CACHE_DIR = os.environ.get('KELLOGG_AUDIO_CACHE', os.path.join(_PROJECT_ROOT, '
|
||||
|
||||
|
||||
def _ensure_binary():
|
||||
'''Baut render_tfmx, wenn das Binary fehlt ODER aelter ist als eine der
|
||||
Quelldateien. Das "aelter als die Quelle"-Kriterium ist wichtig: nach einem
|
||||
git pull (z.B. dem Song-Index-Feature in render_tfmx.c) blieb sonst ein
|
||||
veraltetes Binary liegen, das falsche/zu lange WAVs rendert -- das hat am
|
||||
24.07.2026 einen 180s-statt-2.4s-Render und damit einen Intro-Hang
|
||||
verursacht (Factor5-Dauer haengt an der Songlaenge).'''
|
||||
srcs = [os.path.join(_PLAYER_DIR, f)
|
||||
for f in ('render_tfmx.c', 'tfmx.h', 'paula.h', 'player_api.h')]
|
||||
if os.path.exists(_BINARY):
|
||||
return
|
||||
bmtime = os.path.getmtime(_BINARY)
|
||||
if all(not os.path.exists(s) or os.path.getmtime(s) <= bmtime for s in srcs):
|
||||
return # Binary ist aktuell
|
||||
subprocess.run(['bash', os.path.join(_PLAYER_DIR, 'build.sh')], check=True)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user