Pubblicato un nuovo aggiornamento per ares, l’emulatore multisistema discendente di higan e bsnes si concentra principalmente sull’accuratezza e la conservazione.
Dalla precedente versione 139, ben 15 contributori hanno creato ben 53 commit nel codice di base dell’emulatore ares.
L’aggiornamento introduce diverse novità. Per Bandai WonderSwan e WonderSwan Color, è stata implementata l’apertura del bus SRAM delle cartucce.
Per NEC PC Engine, TurboGrafx, SuperGrafx e CD, la rilevazione automatica del BIOS ora preferisce l’Arcade Card BIOS per la regione NTSC-J.
Nel caso di Nintendo NES, Famicom e Disk System, sono stati risolti problemi legati alla RAM delle cartucce negli stati di salvataggio, mentre sono stati aggiunti supporti per diversi mapper (Camerica/Codemasters, Tengen Rambo-1, Sachen-0037/Tengen-800008) e per il NES Zapper.
L’emulatore per Nintendo Game Boy Advance ha ricevuto diverse ottimizzazioni, come la prevenzione dell’avanzamento dell’orologio CPU nel debugger e miglioramenti nelle temporizzazioni DMA.
Per Nintendo 64, sono state introdotte ottimizzazioni delle prestazioni e correzioni relative agli stati di salvataggio e alla frequenza audio.
Nel caso del Sega SG-1000, è stato risolto un problema con la RAM delle cartucce per i mapper Taiwan-A e Taiwan-B. Per SNK Neo Geo, è stato corretto un problema con la RAM delle cartucce del mapper Jockey GP.
Per Sony PlayStation, sono state effettuate correzioni per crash del framebuffer e problemi di gestione dei CD-ROM.
L’aggiornamento ha migliorato anche i componenti condivisi, come il processore ARM7TDMI e il NEC V30MZ, e ha introdotto varie correzioni a livello di driver e compatibilità su diverse piattaforme, tra cui macOS e FreeBSD.
Infine è stata aggiunta la possibilità di cambiare tra l’interprete e il ricompilatore durante l’esecuzione, funzione precedentemente disponibile solo in fase di compilazione.
Changelog
Sistemi
Bandai – WonderSwan / WonderSwan Color
- Implementata l’apertura del bus SRAM delle cartucce.
NEC – PC Engine / TurboGrafx / SuperGrafx / CD
- La rilevazione automatica del BIOS ora preferisce l’Arcade Card BIOS per la regione NTSC-J invece della System Card 3.0.
Nintendo – NES / Famicom / Disk System
- Risolto un problema in cui la RAM delle cartucce non veniva inclusa negli stati di salvataggio per alcuni mapper HVC-NROM e Sunsoft 1-3.
- Aggiunto supporto per i mapper Camerica/Codemasters.
- Aggiunto supporto per il mapper Tengen Rambo-1.
- Aggiunto supporto per il mapper Sachen-0037/Tengen-800008.
- Aggiunto supporto per il NES Zapper.
Nintendo – Game Boy Advance
- Impedito al debugger di avanzare l’orologio della CPU.
- Resettato il buffer di prefetch sugli accessi ROM da DMA.
- Migliorate le temporizzazioni DMA.
- Implementato il blocco del prefetcher solo quando il DMA sta accedendo alla ROM.
- Impedito al DMA di interrompere gli accessi alla ROM.
- Corretto il controllo durante l’uso di uno schermo ruotato.
- Ricaricato il valore del timer dopo ogni tick.
- Utilizzati latch separati per ogni canale DMA.
- Implementato il visualizzatore grafico nel debugger.
Nintendo – Nintendo 64
- Resettato il registro R0 solo quando viene scritto (ottimizzazione delle prestazioni).
- Corretto un problema per cui il caricamento degli stati di salvataggio non impostava la frequenza audio corretta.
- Aggiunti campi mancanti agli stati di salvataggio.
- Rifattorizzato per rimuovere la macchina a stati del ramo dall’epilogo dell’istruzione (preparando il terreno per futuri miglioramenti del ricompilatore).
Sega – SG-1000
- Risolto un problema in cui la RAM delle cartucce non veniva inclusa per i mapper Taiwan-A e Taiwan-B.
SNK – Neo Geo
- Corretto un problema in cui la RAM delle cartucce non veniva inclusa negli stati di salvataggio per il mapper Jockey GP.
Sony – PlayStation
- Corretto un crash quando la superficie di visualizzazione si avvolgeva attorno al framebuffer.
- Corretto un problema per cui la ricerca del CD-ROM non interrompeva un’operazione di lettura.
Componenti Condivisi
ARM7TDMI
- Corretta la lettura del registro SPSR in modalità utente e sistema.
- Migliorata la gestione dei casi limite LDM/STM.
NEC V30MZ
- Corretto l’emulazione del flag di overflow DAS.
- Corretto il trattamento dei prefissi delle istruzioni.
- Corretto IP su interruzione attivata quando i prefissi sono usati con istruzioni non prefissate.
Altro
- Corretto un problema per cui le impostazioni potevano non essere salvate correttamente su locali non inglesi.
- Migliorata l’integrazione di OpenGL con librashader; corrisponde all’implementazione per il driver Metal.
- Migliorato il driver OpenGL su macOS: corretti i sfarfallii durante il ridimensionamento, aggiunte opzioni per il comportamento a schermo intero e selezione del monitor a schermo intero.
- Corretto il processo di build utilizzando Make 3.81 (gli utenti macOS non devono più installare manualmente una versione più recente di Make per compilare Ares).
- Rilevata correttamente l’architettura target durante la compilazione con CL.
- Migliorata la compatibilità con FreeBSD.
- Corretto un problema per cui la finestra delle impostazioni poteva essere troppo piccola per mostrare tutte le opzioni su alcune configurazioni.
- Aggiunta la possibilità di passare tra l’interprete e il ricompilatore durante l’esecuzione; in precedenza era una scelta disponibile solo in fase di compilazione. Ora è possibile utilizzare l’impostazione “Force Interpreter” per forzare i core 32X, N64 e PS1 a usare l’interprete.
Download: Ares v140 [MacOS Universal 10.13+] [MacOS Universal 10.9+]
Download: Ares v140 [Windows AMD64] [Windows ARM64]
Download: Ares v140 [Linux Flatpack – AMD64] [Linux AUR – Generic]
Download: Source code Ares v140
Fonte: ares-emulator.github.io