Pubblicato un nuovo e più ampio aggiornamento per l’emulatore Ymir, l’emulatore del SEGA Saturn disponibile per PC Windows, macOS e Linux, porta con sé numerose novità e miglioramenti.
Una delle aggiunte più rilevanti riguarda il supporto per macOS, sia per i Mac con processore Intel che per quelli con Apple Silicon, un risultato raggiunto grazie al lavoro di @Wunkolo, che non si è limitato a rendere possibile questa compatibilità, ma ha anche ottimizzato le prestazioni e corretto diversi bug, offrendo un’esperienza più fluida agli utenti Mac.
Tra le novità più interessanti, viene evidenziato il supporto per le ROM cartridge di due giochi specifici, The King of Fighters ’95 e Ultraman: Hikari no Kyojin Densetsu.
Ymir ora carica automaticamente la cartridge corretta quando viene inserito il disco del gioco corrispondente, anche se questa funzione può essere disattivata per chi desidera esplorare gli schermi di errore dei giochi (va però precisato che KoF’95 non si avvia ancora completamente).
Inoltre, l’emulatore passa automaticamente tra gli standard video PAL e NTSC in base alla regione rilevata, migliorando la compatibilità con i titoli.
Il sistema di input è stato migliorato sotto diversi aspetti. Ad esempio, alcune azioni come l’avanzamento frame per frame possono essere ripetute tenendo premuto il tasto, anche se al momento questa funzione è limitata alla tastiera.
Introdotta anche un’opzione per attivare e disattivare la modalità turbo con un tasto (impostato di default su quello sotto Esc
, il `
su tastiere US), eliminando la necessità di tenere premuto Tab
per accelerare.
I gamepad, inoltre, non vengono più uniti in un unico dispositivo: collegare o scollegare un controller assegna a ciascuno un numero indipendente, evitando di considerarli tutti come “Gamepad 1”.
Anche l’assegnazione dei tasti è stata perfezionata: se un controller viene scollegato, i tasti associati non vengono più cancellati.
Sul piano grafico, molti glitch sono stati corretti grazie alle segnalazioni degli utenti, anche se alcuni problemi persistono e richiedono ulteriori interventi: gli sviluppatori consigliano di continuare a segnalare i bug o, per chi ne ha le competenze, di contribuire con una pull request.
Per quanto riguarda l’audio, l’emulazione del chip SCSP ha ricevuto notevoli progressi grazie ai test di @celeriyacon, raggiungendo un’accuratezza che in alcuni casi supera quella di Mednafen, sebbene Ymir presenti ancora qualche bug specifico da risolvere.
Anche il sistema di salvataggio degli stati è stato semplificato e migliorato, garantendo una maggiore compatibilità con versioni future e con stati di salvataggio più datati.
Un altro aspetto degno di nota è il supporto completo per i caratteri UTF-8: Ymir ora può essere eseguito da percorsi con caratteri internazionali e caricare ROM o immagini di dischi con nomi che includono accenti o caratteri particolari.
Sono stati inoltre risolti diversi crash del programma e problemi di compatibilità con alcuni giochi, con i dettagli tecnici disponibili nella sezione dedicata ai cambiamenti.
L’interfaccia ha subito miglioramenti che rendono l’utilizzo più piacevole, mentre ora è possibile passare alla modalità a schermo intero con Alt+Enter
, e in questa modalità Ymir cerca di mantenere circa 60 fps in NTSC e 50 fps in PAL, sfruttando la frequenza di aggiornamento variabile dei display moderni per garantire un’esperienza fluida.
La latenza degli input è stata ridotta notevolmente rispetto alla versione 0.1.2, arrivando a circa 4 frame con un controller Xbox, un risultato in linea con quello di Mednafen/Beetle Saturn.
Anche il frame pacing è stato ottimizzato, sia in modalità finestra che a schermo intero, con miglioramenti evidenti rispetto alle versioni precedenti.
Nelle impostazioni, ora è possibile personalizzare i percorsi utilizzati dall’emulatore, mentre nella sezione dedicata all’IPL è possibile ordinare le tabelle cliccando sulle colonne, anche su più colonne contemporaneamente.
Per chi ama approfondire i dettagli tecnici, è stata aggiunta un’opzione sotto Debug > VDP che permette di attivare o disattivare i layer VDP2, con una finestra dedicata per gestirli senza dover navigare nei menu ogni volta.
Sullo schermo, in alto a destra, compaiono indicatori che mostrano lo stato di esecuzione, come il rewind, il fast-forward o la pausa, con un’opacità che varia nel tempo per non risultare troppo invadenti.
Per quanto riguarda i problemi noti, alcuni giochi presentano ancora glitch grafici o sonori, mentre altri si bloccano durante il gameplay o non si avviano, come Daytona USA, Sakura Taisen o The King of Fighters ’95: per alcuni di questi esistono workaround, ma per altri sono necessari ulteriori sviluppi.
Per chi desidera provare Ymir, sono disponibili diverse versioni: per Windows si può scegliere tra la versione Console, che apre una finestra di terminale, e la Win32, che è un’applicazione grafica standard. Per macOS ci sono versioni per Apple Silicon e Intel, mentre per Linux è previsto il supporto standard.
Se il PC supporta l’istruzione AVX2 (praticamente qualsiasi processore Intel Core o AMD dal 2011 in poi), si può optare per quella versione per prestazioni leggermente migliori, altrimenti è disponibile la versione SSE2.
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
Nuove funzionalità e miglioramenti
- Aggiunto il supporto per macOS, sia per Mac con Intel che Apple Silicon, grazie al lavoro di @Wunkolo.
- Introdotto il supporto per le ROM cartridge da 16 Mbit necessarie a The King of Fighters ’95 e Ultraman: Hikari no Kyojin Densetsu. Il caricamento automatico può essere disattivato.
- Passaggio automatico tra standard video PAL e NTSC in base alla regione del disco rilevata.
- I salvataggi ora caricano automaticamente la ROM IPL corretta corrispondente allo stato salvato.
- Nuovo sistema per distinguere le azioni “trigger” (es. avanzamento fotogramma) da quelle “button”, permettendo la ripetizione tenendo premuto il tasto.
- Aggiunto un nuovo comando per attivare/disattivare la modalità Turbo (di default assegnato al tasto ` sotto Esc).
- Migliorata la gestione dei gamepad: non vengono più accorpati in un unico controller e ciascun gamepad viene assegnato in modo indipendente.
- Aggiunta la possibilità di personalizzare tutti i percorsi usati dal programma (Impostazioni > Generale).
- Introdotta la modalità schermo intero (scorciatoia predefinita: Alt+Invio) e il parametro da linea di comando
-f
. - Migliorato il frame pacing in tutte le modalità video, garantendo una fluidità simile a quella di Mednafen/Beetle Saturn (circa 4 frame di latenza con controller Xbox).
- Introdotti indicatori su schermo per le funzioni pausa, riavvolgimento, avanzamento veloce e retrocessione.
- Migliorato il supporto a UTF-8: ora è possibile avviare Ymir da percorsi con caratteri internazionali e caricare file con accenti o caratteri speciali.
- Aggiunta la possibilità di ordinare l’elenco delle ROM IPL nelle impostazioni.
- Inserito un nuovo strumento nel menu Debug per attivare/disattivare i layer VDP2 anche da una finestra dedicata.
Correzioni
- VDP1: corretta la gestione di alcuni registri (EWDR, EWLR, EWRR) al reset, risolvendo glitch grafici nei giochi Capcom.
- VDP2: risolti bug di rendering quando il rendering VDP multi-thread era disattivato.
- VDP2: ora vengono rispettate le impostazioni dei cicli di accesso CYCA0/A1/B0/B1 per correggere lo scrolling verticale.
- VDP2: disattivati correttamente i layer NBG1-3 se NBG0 o NBG1 usano il formato colori avanzato.
- VDP2: corretta l’applicazione degli effetti di scroll a metà fotogramma.
- VDP2: corretto l’uso del bit MSB per la priorità dei layer (es. Dragon Ball Z: Shinbutouden).
- SCSP: migliorata la precisione audio grazie ai test di @celeriyacon.
- SCU: risolto il crash in Shinobi X causato da trasferimenti DMA indiretti ripetuti.
- Input: l’assegnazione dei tasti non rimuove più i comandi dai controller scollegati.
- Rewind: corretta una rara condizione di crash durante il reset del buffer di riavvolgimento.
- Backup RAM: risolto il crash causato da immagini con meno file del previsto.
- UTF-8: corretta la gestione di percorsi e nomi file con caratteri speciali.
Problemi noti
- Alcuni giochi presentano ancora glitch grafici o sonori (vedi sezione Issues).
- Alcuni giochi si bloccano o si congelano:
- Daytona USA (prima edizione, non CCE o Netlink).
- Sakura Taisen (si può evitare il blocco saltando rapidamente i dialoghi con il tasto B).
- Shining Force III – Scenario 1 (a volte crasha all’avvio se ci sono salvataggi specifici; si consiglia di svuotare la RAM di backup mantenendo solo il salvataggio del gioco).
- Altri giochi non si avviano o si bloccano sulla schermata SEGA:
- Capcom Generation Vol. 5
- Crusader – No Remorse
- Cyberbots – Fullmetal Madness
- Jung Rhythm
- Marvel vs. Street Fighter
- Saturn Bomberman
- Sega Ages – After Burner II
- The King of Fighters ’95
- Virtua Cop 2
- X-Men: Children of the Atom
- X-Men vs. Street Fighter
Linux
- ymir-linux-AVX2-v0.1.3.tar.xz – 2.28 MB
- ymir-linux-SSE2-v0.1.3.tar.xz – 2.26 MB
- ymdasm-linux-AVX2-v0.1.3.tar.xz – 166 KB
- ymdasm-linux-SSE2-v0.1.3.tar.xz – 166 KB
MacOS
- ymir-macos-a64-v0.1.3.zip (Apple Silicon) – 2.39 MB
- ymir-macos-x64-v0.1.3.zip (Intel) – 2.67 MB
- ymdasm-macos-a64-v0.1.3.zip – 150 KB
- ymdasm-macos-x64-v0.1.3.zip – 167 KB
Windows
- ymir-windows-AVX2-Console-v0.1.3.zip – 2.85 MB
- ymir-windows-AVX2-Win32-v0.1.3.zip – 2.79 MB
- ymir-windows-SSE2-Console-v0.1.3.zip – 2.83 MB
- ymir-windows-SSE2-Win32-v0.1.3.zip – 2.77 MB
- ymdasm-windows-AVX2-v0.1.3.zip – 178 KB
- ymdasm-windows-SSE2-v0.1.3.zip – 178 KB
Codice sorgente
Fonte: x.com