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:
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user