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

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

104
0

Pubblicato un nuovo aggiornamento per Ymir, l’emulatore del SEGA Saturn disponibile per PC Windows, macOS e Linux accoglie numerose migliorie e funzionalità.

Questa nuova versione si concentra fortemente sulla compatibilità, includendo una serie significativa di correzioni di bug, ottimizzazioni delle prestazioni e l’aggiunta di nuove caratteristiche.

Tra queste, spicca l’introduzione del supporto ai file CHD di MAME, una funzione attesa da tempo dagli utenti. Nonostante il changelog la definisca come “supporto preliminare”, tale funzionalità è stata ampiamente testata e risulta stabile, a patto che i giochi siano compatibili con questo formato.

Essendo un formato compresso, il caricamento può essere più lento rispetto a quello delle immagini non compresse, ma l’opzione per il preload delle immagini in RAM aiuta a ridurre eventuali rallentamenti durante il gioco.

Il parser dei file CUE è stato adattato per supportare giochi con tracce audio multi-indicizzate, come Taito Chase H.Q. + S.C.I., che ora funzionano correttamente con file BIN/CUE.

Rispetto alla versione 0.1.3, la compatibilità generale con i giochi è notevolmente aumentata: titoli che in passato non si avviavano ora riescono a entrare nel gioco e, in alcuni casi, possono persino essere completati.

Sono stati risolti numerosi problemi relativi alla grafica, al suono, al supporto CD, alle periferiche, alla CPU e alle ROM. In particolare, grazie al contributo di un nuovo test ROM focalizzato sulla CPU SH-2, è stato possibile correggere un bug storico presente in Daytona USA fin dalla prima versione dell’emulatore.

Le prestazioni dell’emulatore sono state migliorate sensibilmente grazie al lavoro di Wunkolo e StrikerX3: il primo ha ottimizzato il renderer software VDP per sfruttare le istruzioni SIMD su architetture x86 e ARM, ottenendo un incremento fino all’11% nei giochi graficamente più intensi.

Il secondo ha reso l’emulazione dello SH-2 più efficiente e accurata, portando a un ulteriore guadagno prestazionale tra il 5% e il 20%. Corretto anche un bug nel renderer VDP2 RBG0, con un miglioramento delle prestazioni generali di circa il 10%.

Queste ottimizzazioni consentono a Ymir di girare meglio anche su hardware meno potente, rendendo l’esecuzione a velocità turbo più reattiva che mai.

Inoltre, l’emulatore ora supporta il 3D Control Pad del Saturn: se l’utente dispone di un controller con levetta analogica e grilletti analogici, questi verranno mappati automaticamente. La modalità analogica o digitale può essere selezionata cliccando la levetta sinistra del controller.

L’interfaccia utente ha ricevuto diversi accorgimenti: è stata aggiunta un’opzione per mettere in pausa l’emulazione quando la finestra perde il focus, il bordo blu in modalità finestra è stato sostituito dal nero (per uniformarlo alla modalità a schermo intero), e gli indicatori di riproduzione ora hanno un’ombra per renderli visibili anche su sfondi bianchi.

Inoltre, la UI si adatta automaticamente alle impostazioni di scala DPI del sistema operativo.

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

  • 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