Home Emulatori Rilasciato Ymir v0.1.4+1: L’emulatore che riaccende la magia del SEGA Saturn su...

Rilasciato Ymir v0.1.4+1: L’emulatore che riaccende la magia del SEGA Saturn su PC Windows, MacOS e Linux

87
0

Pubblicato un ulteriore aggiornamento per la versione 0.1.4 di Ymir, l’emulatore del SEGA Saturn disponibile per PC Windows, macOS e Linux.

Questo aggiornamento di manutenzione corregge un bug critico che causava schermate nere nelle build SSE2, migliorando così la stabilità su una vasta gamma di sistemi.

Tra le novità, è stata introdotta la possibilità di caricare giochi trascinando semplicemente i file CCD, CHD, CUE, ISO o MDS direttamente nella finestra dell’emulatore.

L’aggiornamento si innesta su una base già solida introdotta nella 0.1.4 originale, una versione che ha segnato un passo importante verso una maggiore compatibilità.

Tra le aggiunte più rilevanti figura il supporto ai file CHD, il formato compresso di MAME, che, pur essendo definito come preliminare, si dimostra stabile nella pratica. La possibilità di pre-caricare questi file in RAM contribuisce a ridurre i tempi di attesa durante l’esecuzione dei giochi.

Anche il parser dei file CUE è stato migliorato, permettendo il corretto funzionamento di titoli con tracce audio multi-indicizzate, come Taito Chase H.Q. + S.C.I., che ora risultano perfettamente giocabili in formato BIN/CUE.

La compatibilità con i giochi, rispetto alla versione precedente, è sensibilmente aumentata, con numerosi titoli che riescono non solo ad avviarsi correttamente, ma anche a essere completati.

A livello tecnico, l’aggiornamento ha risolto diversi problemi riguardanti la grafica, il sonoro, le periferiche e la CPU, grazie anche al contributo di un nuovo test ROM dedicato alla SH-2. In particolare, è stato finalmente corretto un bug storico che affliggeva Daytona USA fin dalla prima release.

Le prestazioni generali sono state migliorate in modo significativo. Wunkolo ha ottimizzato il renderer software VDP per sfruttare le istruzioni SIMD, ottenendo fino all’11% di miglioramento nei giochi più pesanti dal punto di vista grafico.

StrikerX3 ha reso invece più efficiente e precisa l’emulazione della CPU SH-2, con guadagni prestazionali compresi tra il 5% e il 20%. Inoltre, è stato corretto un problema nel renderer VDP2 RBG0, che ha portato a un ulteriore incremento delle performance, stimato attorno al 10%.

Tutti questi interventi permettono a Ymir di funzionare meglio anche su computer meno recenti, rendendo l’emulazione a velocità turbo più fluida che mai.

Aggiunto anche il supporto per il 3D Control Pad del Saturn: i controller moderni con levetta e grilletti analogici vengono riconosciuti automaticamente, con la possibilità di passare dalla modalità digitale a quella analogica premendo la levetta sinistra.

L’interfaccia utente ha ricevuto diverse rifiniture, tra cui un’opzione per mettere in pausa l’emulazione quando la finestra perde il focus, una modifica estetica del bordo della finestra che ora appare nero anziché blu, e indicatori di riproduzione più leggibili grazie all’aggiunta di un’ombra.

Infine, la UI si adatta automaticamente alla scala DPI del sistema operativo, offrendo una migliore resa grafica su tutti gli schermi.

Caratteristiche

  • Caricamento dei giochi da file BIN+CUE, IMG+CCD, MDF+MDS o ISO.
  • Rilevamento automatico della ROM IPL (BIOS).
  • Cambio automatico della regione.
  • Supporto fino a due giocatori con controller standard su entrambe le porte (altre opzioni in arrivo).
  • Mappatura dei tasti completamente personalizzabile.
  • Supporto per cartucce RAM di backup e DRAM (altre in arrivo).
  • Gestore integrato della memoria di backup per importare ed esportare salvataggi e trasferirli tra RAM interna e cartuccia.
  • Stati di salvataggio.
  • Riavvolgimento (fino a un minuto a 60 fps), velocità turbo, avanzamento fotogramma per fotogramma (in avanti e indietro).
  • Modalità a schermo intero con supporto VRR e bassa latenza di input.
  • Debugger ricco di funzionalità in fase di sviluppo.

Guida all’utilizzo

Ymir non richiede installazione, è sufficiente scaricare il file eseguibile in una qualsiasi cartella ed eseguirlo. Su PC Windows, potrebbe essere necessario installare il pacchetto più recente di Microsoft Visual C++ Redistributable (versione x86_64).

Il programma accetta parametri da linea di comando. Per visualizzare le opzioni disponibili, digirare il comando ymir-sdl3 --help:

Ecco le opzioni principali:

Ymir - Sega Saturn emulator
Usage:
  Ymir [OPTION...] positional parameters

  -p, --profile arg  Path to profile directory
  -h, --help         Display help text
  -f, --fullscreen   Start in fullscreen mode

Con l’opzione -p <percorso-profilo> è possibile specificare un set separato di file di configurazione e salvataggio, utile se si intende utilizzare profili utente diversi (da qui il nome “profile”).

Nota: La versione Win32 di Ymir non produce output nella console, ma rispetta comunque i parametri da riga di comando.

Requisiti BIOS

Per funzionare correttamente, Ymir richiede una ROM IPL (BIOS), le ROM devono essere posizionate nella cartella roms, che viene creata accanto all’eseguibile al primo avvio.

L’emulatore rileverà e selezionerà automaticamente la ROM IPL compatibile con il disco caricato. Se non viene caricato alcun disco, Ymir utilizzerà una ROM corrispondente alla prima regione preferita.

In assenza di corrispondenze, selezionerà qualsiasi ROM disponibile, è comunque possibile forzare la selezione manualmente in Settings > IPL.

Formati supportati

Ymir è in grado di caricare immagini disco di giochi nei formati BIN+CUE, IMG+CCD, MDF+MDS e ISO. Al momento non supporta i file CHD di MAME né il caricamento diretto di file .elf.

Changelog v0.1.4+1

Nuove funzionalità e miglioramenti

  • Applicazione: Ora è possibile trascinare e rilasciare file CCD, CHD, CUE, ISO o MDS direttamente nella finestra dell’emulatore per caricare i giochi.

Correzioni

  • VDP2: Corretto il problema dello schermo nero nelle build SSE2.

Changelog v0.1.4

Nuove funzionalità e miglioramenti

  • Applicazione: Aggiunta l’opzione per mettere in pausa l’emulazione quando la finestra perde il focus. (#181)
  • Applicazione: Aggiunta un’ombra sotto gli indicatori di riproduzione per renderli visibili su sfondi bianchi.
  • Applicazione: Modificato il colore di sfondo attorno allo schermo in modalità finestra, ora è nero.
  • Blocco CD: Implementato il comando Put Sector, utilizzato da After Burner II. (#78)
  • Core: Miglioramenti alle prestazioni, in particolare per le build ARM. (@Wunkolo)
  • Debug: Semplice finestra per il tracciamento dei comandi del Blocco CD.
  • Input: Implementato il supporto al 3D Control Pad. (#28)
  • Media: Supporto preliminare ai file CHD. (#48)
  • Media: Supporto alle tracce audio multi-indicizzate (solo file BIN/CUE). (#58)
  • SMPC: Impostato SF=0 per i comandi non implementati, così i giochi possono proseguire.
  • SH-2: Costruita l’infrastruttura necessaria per rispettare i cicli di accesso alla memoria, migliorando prestazioni e accuratezza.
  • SH-2: Rallentato l’accesso ai registri interni del chip a 4 cicli.
  • VDP: Riscritta la composizione dei frame del VDP2 utilizzando le istruzioni SIMD su architetture x86 e ARM per migliorare le prestazioni. (@Wunkolo)

Correzioni

  • Applicazione: Regolazione automatica dello scaling quando cambia il DPI a livello di sistema. (@Wunkolo)
  • Applicazione: I percorsi personalizzati dei profili ora vengono creati nella posizione specificata, invece che in quella predefinita. (#119, #126; @lvsweat)
  • Blocco CD: Cancellazione di partizioni e filtri durante i reset software attivati dal comando Initialize CD System. Risolve alcuni problemi di avvio dei giochi.
  • Blocco CD: Rimozione del flag “in pausa per esaurimento buffer” quando il comando SeekDisc mette in pausa la riproduzione. Risolve errori di lettura in Sakura Taisen 2 dopo i filmati.
  • Blocco CD: Non cancellare il file system quando viene aperto il cassetto.
  • Blocco CD: Corrette le dimensioni dei settori delle tracce audio. Risolve problemi nella riproduzione audio di alcune immagini CD (in particolare MDF/MDS).
  • Blocco CD: Corretta la posizione finale del comando Delete Sector quando il numero di settori è FFFF. Risolve alcuni problemi di avvio dei giochi.
  • Blocco CD: Corretta l’indicizzazione delle directory. Risolve uno dei crash all’avvio di Assault Suit Leynos 2. (#127)
  • Blocco CD: Liberazione dell’ultimo buffer dalla partizione quando termina un trasferimento Get Then Delete Sector e l’ultimo settore non è stato letto completamente. Risolve problemi di avvio in alcuni giochi.
  • IPL: Caricamento automatico della ROM IPL quando si cambia immagine disco. (#128)
  • M68K: Reset software della CPU all’esecuzione dell’istruzione RESET. Risolve blocchi in OutRun sulla schermata del logo SEGA.
  • Media: Corretto il crash durante il parsing dei file CUE con tracce non contigue.
  • SCSP: La RAM audio non viene più mappata su 5A8’0000-5AF’FFFF. Risolve crash M68K e problemi audio in After Burner II.
  • SCU: Revisione della gestione degli interrupt. Risolve problemi di input in Rayman. (#59)
  • SCU: L’ALU viene impostata uguale ad AC prima di eseguire operazioni DSP. Risolve il crash all’avvio di Quake. (#156)
  • SCU: Il flag di abilitazione del timer si applica ora a entrambi i timer. Risolve problemi di priorità dello sfondo in Need for Speed.
  • SH-2: Corretti gli offset del PC per eccezioni, interrupt, TRAPA e RTE. Risolve problemi di avvio in alcuni giochi.
  • SH-2: Corretti gli offset del PC per le istruzioni mova, mov.w e mov.l con operando @(disp,PC) (grazie a @celeriyacon).
  • SH-2: Correzioni e miglioramenti di accuratezza per l’istruzione DIVU (grazie a @celeriyacon).
  • SH-2: Correzioni e miglioramenti di accuratezza per FRT (grazie a @celeriyacon). Risolve blocchi in Daytona USA. (#7)
  • SH-2: Correzioni e miglioramenti di accuratezza per WDT (grazie a @celeriyacon).
  • SH-2: Aggiornamento “pigro” dei timer WDT e FRT. Fornisce un incremento delle prestazioni del 5–10% e migliora l’accuratezza!
  • SMPC: Varie modifiche alla gestione di INTBACK. Risolve parzialmente i problemi di avvio di Assault Suit Leynos 2.
  • Sistema: Corretta la conta dei cicli nel loop principale, che non considerava correttamente il numero di cicli usati dalle CPU, causando un conteggio errato dei timer.
  • VDP1/2: Corretta la gestione dei dati sprite a 16 bit da VDP1 quando VDP2 utilizza sprite a 8 bit. Risolve i problemi grafici in I Love Mickey Mouse/Donald Duck.
  • VDP2: Abilitata lettura e scrittura a 8 bit nei registri VDP2.
  • VDP2: Applicata trasparenza ai dati sprite misti durante il rendering del valore speciale 0x8000. Risolve la schermata nera dopo il caricamento in Assault Suit Leynos 2.
  • VDP2: Il contatore verticale del mosaico non viene più incrementato se il mosaico è disattivato. Risolve problemi nei riquadri di testo e nei ritratti in Grandia. (#91)
  • VDP2: Corretto l’indirizzamento base dei bitmap per RBGs. Risolve vari glitch grafici nei menu e durante il gioco in Need for Speed.
  • VDP2: Corretta la gestione dello scroll delle linee schermo in modalità interlace a doppia densità. Risolve video allungati in Grandia. (#91)
  • VDP2: Corretti i bit di calcolo del colore speciale. Risolve gli effetti dell’acqua in Sonic R. (#150)
  • VDP2: Corretta l’animazione verticale delle celle nei giochi che usano schemi di accesso non coerenti con i parametri NBG. Risolve i filmati in Sakura Taisen 2.
  • VDP2: Il canale RBG0 veniva sempre processato/renderizzato anche se disabilitato.
  • ymdasm: Corretta la lunghezza del file quando si utilizza un offset iniziale non nullo con la lunghezza predefinita.

Problemi noti

Diversi giochi presentano glitch grafici o audio. Vedere la sezione Issues per i dettagli. Casi specifici:

  • After Burner II: Alcuni sprite che dovrebbero essere trasparenti sono visualizzati con un riquadro nero.
  • Akumajou Dracula X: Gli effetti sonori a volte sono troppo deboli o del tutto assenti.
  • Die Hard Arcade / Dynamite Deka: Effetti sonori mancanti.
  • Doom: Piccoli artefatti grafici. Gli effetti sonori si sentono solo nel canale sinistro quando si usa l’audio stereo. (#192)
  • Fighters Megamix: Alcune grafiche sono leggermente spostate verso sinistra. (#190)
  • I Love Donald Duck: Gli sprite restano visibili anche durante il cambio di schermata.
  • I Love Mickey Mouse: La barra di stato e altri elementi dell’interfaccia sono assenti.
  • Final Fight Revenge: il suolo appare come un colore piatto. (#104)
  • Groove on Fight: Gli sprite dei personaggi sono corrotti. (#70)
  • Marvel Super Heroes vs. Street Fighter: Grafica lampeggiante.
  • NiGHTS into Dreams: Non riproduce il video introduttivo (#46). È possibile saltarlo premendo Start sulla schermata nera.
  • Phantasy Star Collection:
    • Phantasy Star I: Audio molto basso, si sente solo durante l’introduzione.
    • Phantasy Star II and III: L’audio è riprodotto solo nel canale destro.
    • Phantasy Star IV: Rimane su una schermata nera ma la musica viene riprodotta.
  • Sonic Jam:
    • Il testo del menu principale a volte non viene visualizzato. (#131)
    • La barra di stato in alto nello Sonic World è disegnata solo parzialmente. (#131)
    • La musica si interrompe dopo un po’. (#83)
  • Sonic R: Alcuni effetti sonori (come il jingle di pausa) vengono riprodotti in modo errato.
  • Virtua Fighter: grafica di gioco corrotta. (#40)
  • Thunder Force Gold Pack 2: Nessun audio in entrambi i giochi. (#145)
  • X-Men vs. Street Fighter: Grafica lampeggiante.

I giochi compatibili con Netlink non sono ancora supportati: Si bloccano sul logo SEGA o tornano al menu di sistema:

  • Daytona USA CCE Netlink Edition
  • Daytona USA Circuit Edition (Japan)
  • Duke Nukem 3D (USA) (#136)
  • Saturn Bomberman (#63)

I seguenti giochi si bloccano o si congelano durante il gioco:

  • Advanced V.G.: Si blocca nella selezione del personaggio.
  • Assault Suit Leynos 2: Si blocca su schermata nera durante il gioco.
  • Clockwork Knight 2: Si blocca su schermata nera all’avvio.
  • Grandia: Si blocca se è attivato il threading VDP; se disattivato, la grafica 3D presenta problemi (#91).
  • Sakura Taisen: Si blocca durante alcune battute di dialogo (#90). Si può evitare premendo ripetutamente B per saltare le clip audio prima del blocco.
  • Sakura Taisen 2: Si blocca durante alcune battute di dialogo.
  • Vampire Hunter: Si blocca se si lascia scorrere la sequenza introduttiva oltre il logo “Vampire”.

I seguenti giochi restano bloccati sulla schermata di copyright SEGA, su schermata nera o tornano al menu di sistema:

  • Astal (#132)
  • Capcom Generation – Dai-5-shuu Kakutouka-tachi (#68)
  • Crusader – No Remorse (#108)
  • Discworld
  • Jung Rhythm (#85)
  • The King of Fighters ’95 (#75)
  • Mega Man X3

Problemi vari:

  • Cambiare disco o tornare al menu di sistema con A+B+C+Start usando una ROM IPL giapponese (BIOS) può far apparire i messaggi “Disco di gioco non compatibile con questo sistema” o “Cartuccia non compatibile con questo sistema”. Come soluzione temporanea, forzare un reset completo (Ctrl+R predefinito).
  • Rayman: comandi non affidabili (sembra che venga premuto un tasto turbo/ripetizione) (#59) e problemi grafici.

Questo gioco funziona solo con la cache SH-2 emulata attiva:

  • Dark Savior (#134)

Linux

MacOS

Windows

Codice sorgente

Fonte: github.com