Rauser-Aufloesung wirklich gefixt (0.5x Nearest-Neighbor statt native 1:1 oder smoothscale) + Factor5-Sound korrigiert (TITEL2-Song1 statt ONGAME2, Multi-Song-Fund)

Pixelvermessung von Stefans Referenz-Screenshot widerlegt die letzte
"native Groesse ist richtig"-Annahme -- das Logo ist im Original klein
(~34% Bildbreite), nicht bildschirmfuellend. Der eigentliche Bloedsinn war
smoothscale() (bilinear, verwaescht Pixel-Art), nicht die 0.5x-Groesse
selbst. Fix: 0.5x beibehalten, pygame.transform.scale() (Nearest-Neighbor)
statt smoothscale().

Factor5 spielte bisher faelschlich ONGAME2 (~123s Level-Musik) ab. Fund:
TFX-Module buendeln mehrere Songs (v_songs[]) -- TITEL2 hat 2 (Song0 =
2.04s Rauser-Sting, Song1 = 2.40s), TITEL 3, ONGAME2 sogar 14. TITEL2-Song1
passt laenge-maessig exakt zu "nur ein bisschen laenger als der
Rauser-Sound" -- jetzt der Factor5-Sound, feste 5s Anzeigedauer.
This commit is contained in:
ARIA
2026-07-22 22:12:01 +00:00
parent 094aca0e1e
commit af2ead172f
3 changed files with 228 additions and 103 deletions
+72
View File
@@ -1118,3 +1118,75 @@ Logo weitergeht.
Committet + gepusht. Naechster Schritt weiterhin offen: echtes Gameplay
(Tony auf `W1L0` bewegen).
## 22.07.2026, Nacht (3): Rauser-Aufloesung wirklich gefixt + Factor5-Sound korrigiert (Multi-Song-Fund)
Stefan hatte zwei weitere Punkte gemeldet: "Rauser-Intro-Aufloesung ist immer
noch schlecht" (mit Referenz-Screenshot: `RAUSER!`-Logo klein, mittig, viel
weisser Rand drumrum) und "beim Factor5 hast du einen Level-Sound genommen,
der echte Factor5-Sound ist ein kurzes Brausen, nur wenig laenger als der
Rauser-Sound, Bild ca. 5s eingeblendet".
**Wichtiger Fund beim Reinschauen:** Zwischen den Chat-Nachrichten war im
Hintergrund (autonomer Weiterarbeits-Timer) schon ein erster Loesungsversuch
fuer beides auf der VM entstanden, aber weder ins Git-Repo synced noch
committet/gepusht -- der Chat-Verlauf hatte den Stand nicht wiedergegeben.
Ich hab den VM-Stand zuerst gegen den Repo-Stand geprueft (`diff`), den fuer
Factor5 bereits korrekten Teil uebernommen, und den Rauser-Aufloesungs-Fix
selbst nochmal nachgerechnet, weil er in der ersten Fassung (native 1.0x
Groesse) tatsaechlich einen NEUEN Bug enthielt.
**1) Rauser-Aufloesung -- diesmal wirklich pixelvermessen statt geraten:**
Stefans Referenz-Screenshot per Bounding-Box analysiert (PIL, Python auf der
VM): das Logo nimmt dort nur **34.5% der Bildbreite / 16.6% der Bildhoehe**
ein (223x83px auf einem 646x500px-Screenshot). Das widerlegt die vorige
Annahme "native Groesse (ASSET_DISPLAY_SCALE=1.0) ist richtig" klar -- bei
nativer Groesse waeren RAUSER1+RAUSER3 zusammen 198px breit auf einer
320px-Leinwand (62%), fast doppelt so viel wie die Referenz zeigt. Die
URSPRUENGLICHE 0.5x-Skalierung war groessenmaessig also die ganze Zeit
richtig -- der eigentliche Bug war die Skalierungs-METHODE:
`pygame.transform.smoothscale()` ist bilinear und verwaescht harte
Pixel-Kanten von Pixel-Art beim Verkleinern sichtbar. Fix: `smoothscale()`
durch `pygame.transform.scale()` ersetzt (Nearest-Neighbor, kein
Weichzeichnen) in `Assets.pcc_surface_scaled()` UND `pcc_surface_half_height()`
(Titelbild-Quadranten, gleiches Prinzip), `ASSET_DISPLAY_SCALE` bleibt 0.5.
Verifiziert per eigener Bounding-Box-Nachmessung des neuen Renders: **33.0%
Breite / 13.6% Hoehe** -- nah an Stefans Referenz (34.5%/16.6%), klar besser
als der 62%-Fehlgriff der vorigen (native) Version. Frisch gerenderter
Vergleichs-Screenshot:
[FILE: /shared/uploads/aria_rauser_scale05_check.png]
**2) Factor5-Sound -- Multi-Song-Fund geklaert die Zuordnung:**
Ein einzelnes TFX-Modul kann laut `tfmx.h` (`v_songs[]`/`v_songs_count`)
MEHRERE Songs buendeln, ausgewaehlt per `start_song`-Index -- das erklaert
Stefans Vermutung "das Spiel hat noch wesentlich mehr Lieder". Debug-Rendering
aller Songs in allen 3 Modulen ergab:
- `TITEL.TFX` -> 3 Songs (song0/1 lang >15s, song2 ~8.0s)
- `TITEL2.TFX` -> 2 Songs (song0 = 2.04s, song1 = 2.40s)
- `ONGAME2.TFX` -> 14(!) Songs (mehrere >15s-Tracks, vermutlich echte
Level-/Gameplay-Musik -- song3/11/12 sehr kurz 0.16-1.36s, song2/13
~10.3s; noch nicht im Detail zugeordnet, relevant fuer spaetere
Gameplay-Musik)
Die vorige Zuordnung (ONGAME2 komplett = "Factor5-Melodie") war schlicht
falsch -- vermutlich echte Level-Musik, nicht zum Studio-Logo passend (daher
Stefans "Level-Sound"-Eindruck). TITEL2-Song1 (2.40s) passt dagegen exakt zu
"nur ein bisschen laenger als der Rauser-Sound" (Rauser-Sting = TITEL2-Song0
= 2.04s, Differenz nur 0.36s). `tools/tfmx_audio.py` bekam dafuer einen
optionalen `song_index`-Parameter (durchgereicht an `render_tfmx` als
5. CLI-Arg), `run_once()` in `intro_sequence.py` spielt jetzt TITEL2-Song1
beim Factor5-Logo ab, Anzeigedauer ist fest auf `FACTOR5_HOLD_SECONDS = 5.0`
gesetzt (statt an eine -- falsche -- Songlaenge gekoppelt).
Verifiziert: `TITEL2.wav` (Song0) 2.04s, `TITEL2_song1.wav` (Song1) 2.40s,
beide mit gesunder Amplitude (kein Stille-Bug), unterschiedliche Dateigroesse
(89984 vs. 105856 Samples -- also wirklich unterschiedlicher Inhalt, keine
zufaellige Doublette).
**Ehrlicher Vorbehalt (wichtig):** Ich kann Audio nicht selbst abhoeren --
die Zuordnung TITEL2-Song1 = "Brausen" ist eine Indizien-Schlussfolgerung aus
der Songlaenge (passt sehr gut zu Stefans Beschreibung), NICHT durch
Reinhoeren verifiziert. Falls es beim echten Testen doch nicht wie ein
Brausen klingt: melden, dann probieren wir als naechste Kandidaten TITEL-Song2
(~8.0s) oder einen der kurzen ONGAME2-Songs (3/11/12).
Beide Fixes committet + gepusht. Naechster Schritt weiterhin offen: echtes
Gameplay (Tony auf `W1L0` bewegen).