La scena homebrew per Sega Dreamcast non smette mai di stupire! Oggi vi presentiamo un entusiasmante proof-of-concept per la riproduzione di video FMV (Full Motion Video) direttamente sull’hardware della console di Sega. Questo progetto dimostra che, nonostante i limiti hardware della Dreamcast, è possibile ottenere una riproduzione video fluida con audio sincronizzato.
Caratteristiche Principali ✅
-
Video: Risoluzione 512×256 in RGB565 a 30fps
-
Compressione: Texture VQ compresse con zlib (raw DEFLATE)
-
Audio: Codifica ADPCM grazie a dcaconv
-
Esecuzione: Direttamente sull’hardware Dreamcast!
Demo 🎥
Non perderti il trailer dimostrativo: JW4 Imagine spot, che mostra la riproduzione in tempo reale su Dreamcast!
🌀 Dreamcast FMV player in progress!
✅ 512×256 RGB565 video at 30fps
✅ zlib-compressed VQ textures
✅ ADPCM audio via dcaconv
Built using ffmpeg, pvrtex, and dcaconv — runs directly on hardware 🎮
🎥 Trailer: JW4 Imagine spot
🕹️ Real-time playback on Dreamcast#Dreamcast… pic.twitter.com/nO8wh9khTa— Troy Davis (@GPFTroy) June 2, 2025
Struttura del Progetto
Il toolchain si compone di:
-
pack_dcmv
: un packer per frame e audio che utilizza la compressione zlib -
fmv_play.elf
: un player Dreamcast che decomprime e visualizza il video mentre riproduce l’audio ADPCM sincronizzato -
Strumenti di conversione basati su ffmpeg, pvrtex e dcaconv
Obiettivi del Progetto 🎯
-
Minimizzare l’uso della CPU su Dreamcast grazie al pre-processing di video e audio
-
Sfruttare al massimo l’hardware con texture VQ-compresse e streaming audio per una riproduzione fluida
Come Funziona?
Il processo di conversione e riproduzione segue questi passaggi:
-
Conversione del video:
-
Estrazione dei frame YUV con ffmpeg
-
Compressione delle texture in formato VQ con pvrtex
-
Compressione dei dati con zlib (DEFLATE)
-
-
Conversione dell’audio:
-
Estrazione dell’audio dal file sorgente
-
Codifica in formato ADPCM con dcaconv
-
-
Packaging:
-
Creazione del file .dcmv finale che contiene sia video che audio
-
-
Riproduzione:
-
Decompressione in tempo reale sulla Dreamcast
-
Renderizzazione delle texture VQ
-
Streaming dell’audio ADPCM sincronizzato
-
Dipendenze
Per utilizzare questo toolchain sono necessari:
-
ffmpeg (per estrarre frame YUV e audio)
-
pvrtex (per la compressione VQ delle texture)
-
dcaconv (per la codifica ADPCM)
-
zlib (per la compressione DEFLATE)
Come Provarlo?
-
Modifica
convert_to_pvr_fmv.sh
impostando il percorso del tuo video sorgente -
Regola i parametri come larghezza, altezza, FPS e qualità audio
-
Esegui lo script di conversione
-
Masterizza
movie.dcmv
efmv_play.elf
su un CD o avviali con un emulatore come Flycast
Conclusione
Questo progetto rappresenta un importante passo avanti per la riproduzione di video su Dreamcast, dimostrando che con le giuste ottimizzazioni è possibile ottenere risultati impressionanti. Non vediamo l’ora di vedere come la comunità homebrew potrà espandere e migliorare questo toolchain!
Licenza: GitHub Repository
Restate sintonizzati per ulteriori aggiornamenti! 🚀