Pubblicato un nuovo aggiornamento per ares, l’emulatore multisistema discendente di higan e bsnes si concentra principalmente sull’accuratezza e la conservazione.
Dalla versione 143, ben 14 contributori hanno firmato 81 commit al codice base, portando avanti miglioramenti importanti su diversi fronti.
Il lavoro svolto si è concentrato in particolare sull’affinamento dei core dedicati a Game Boy Advance, WonderSwan e Nintendo 64, ma non sono mancati anche interventi generali sull’applicazione, su terze librerie e su alcuni bug storici.
Per il Game Boy Advance, ad esempio, è stato corretto il comportamento del processore ARM7TDMI, migliorando la gestione dei flag in modalità Thumb e aggiungendo cicli di attesa più realistici per alcune istruzioni.
Anche il WonderSwan ha ricevuto attenzioni notevoli, con miglioramenti nel timing degli interrupt e del bus dati, oltre all’aggiunta del supporto per l’emulazione del colore sul modello originale monocromatico.
Per quanto riguarda il Game Boy e il Game Boy Color, è stata implementata una gestione più precisa di alcuni registri audio PCM, mentre sul Game Boy Advance si segnalano anche ottimizzazioni nel trattamento della VRAM e aggiornamenti al database delle cartucce supportate.
Sul fronte Famicom Disk System, è stato introdotto un ritardo nella gestione dello stato dei dischi, risolvendo problemi di compatibilità su diversi titoli che richiedevano swap molto rapidi.
Il core del Nintendo 64 ha visto correzioni cruciali, come una soluzione a un blocco dell’applicazione che poteva verificarsi con determinati titoli e l’introduzione del supporto per configurare dinamicamente la dimensione della memoria Controller Pak.
Sono stati anche sistemati alcuni problemi di compatibilità relativi ai checksum IPL2 e ai parametri header non standard.
Sul Super Nintendo sono stati sistemati alcuni caricamenti di giochi particolari che richiedevano firmware aggiuntivo per coprocessori speciali, mentre il supporto per il Master System è stato migliorato correggendo la velocità di esecuzione dei titoli PAL a 50Hz.
Il Mega Drive, il 32X e il Mega CD hanno beneficiato di correzioni audio importanti, tra cui la gestione del chip YM2612, oltre a fix che migliorano la stabilità generale tra il 32X e la console madre.
Anche l’emulazione PlayStation ha ricevuto una piccola, ma significativa, correzione: un crash specifico nel gioco Lunar è stato finalmente risolto, aumentando la compatibilità generale.
Sul piano dell’interfaccia utente e del programma, gli sviluppatori hanno sistemato diversi bug fastidiosi: crash su Linux arm64, problemi di compatibilità con ambienti sandboxati, errori nella gestione dei percorsi relativi e piccoli malfunzionamenti nella visualizzazione delle versioni.
Infine, non meno importante, sono state aggiornate anche alcune librerie fondamentali come SDL, librashader e i slang-shaders.
Changelog
ARM7TDMI (Game Boy Advance CPU, ST018 Super Famicom coprocessor)
- Risolto il mnemonico del disassemblatore per CMP.
- Risolti gli offset di lettura di R15 su molte istruzioni.
- Risolti i flag di carry calcolati in modo errato in modalità Thumb.
- Impedita la scrittura di 0 nel bit più alto del PSR mode.
- Aggiunto un ciclo di inattività alle istruzioni che eseguono shift tramite valori di registro.
NEC V30MZ (WonderSwan CPU)
- Migliorata la precisione del timing degli interrupt.
- Migliorato il timing degli accessi alle porte I/O.
Bandai – WonderSwan
- Aggiunto il supporto per l’emulazione del colore nella WonderSwan originale “mono”.
- Si noti che i giochi WS su WS sono visualizzati utilizzando la gamma lineare, a differenza dei giochi WS su WSC.
- Risolti i bug relativi all’emulazione del protocollo RTC lato cartuccia.
- Migliorata la precisione dell’emulazione APU.
- Migliorata la precisione del timing degli interrupt.
- Aggiunto il supporto per emulare cartucce con una larghezza di bus ROM a 8 bit.
- Risolto il problema della scrittura del colore zero sulle palette PPU traslucide.
- Risolto il problema per cui le IRQ UART non venivano azzerate disabilitando l’UART.
Nintendo – Game Boy / Game Boy Color
- Attivare il timer sul fronte di discesa dei bit DIV.
- Registri PCM12 e PCM34 implementati per l’APU.
Nintendo – Game Boy Advance
- Bloccate le linee di indirizzo inferiori durante l’accesso alla ROM durante i trasferimenti a raffica.
- Migliorati i tempi di accesso alla VRAM di sfondo.
- Aggiornato il database delle cartucce.
- Corretto il trattamento delle scritture a metà scansione nei registri di scorrimento lineare dello sfondo.
- Risolti alcuni bug che si verificavano quando la precisione pixel era disabilitata.
Nintendo – Famicom Disk System
- Aggiunto un ritardo nello stato del disco durante il cambio dei dischi, risolvendo problemi in diversi giochi in cui il cambio avveniva troppo rapidamente.
Nintendo 64 / Aleck 64
- Corretto un problema che poteva causare il blocco dell’applicazione in alcuni titoli che disattivano il VI.
- Aggiunto il supporto per la versione mai rilasciata di “O.D.T. – Escape… Or Die Trying” nel database interno.
- Corretto l’ID nel database interno per Rampage 2, così ora il controller pak e il rumble pak dovrebbero funzionare correttamente.
- Aggiunta una flag di accuratezza a tempo di compilazione per bypassare la validazione del checksum IPL2 a scopo di sviluppo.
- Migliorati i messaggi di errore se manca la ROM Pif di Aleck 64 durante il caricamento di un gioco Aleck 64.
- Aggiunto il supporto per dimensioni configurabili del Controller Pak.
- Applicata una correzione per consentire l’avvio di ROM con parametri PI DOM1 non standard negli header.
- Disabilitate le letture super-campionate dell’RDP: risolve alcuni problemi di accuratezza e supera più casi di test nella suite ufficiale di test RDP.
Nintendo – SNES / Super Famicom
- Corretto il caricamento di alcuni giochi che richiedono firmware aggiuntivi per i chip inclusi nella cartuccia.
Sega – Master System
- Aggiornate le voci solo PAL nel database locale affinché vengano eseguite alla corretta frequenza di 50Hz.
Sega – Mega Drive / Genesis / CD / 32X
- Corretto l’hash errato per Wonder Boy in Monster World (USA, Europa) che ora consente il rilevamento corretto della EEPROM, rendendo il gioco giocabile.
- Corretta l’emulazione del bit ‘AM’ dell’LFO del YM2612 (risolvendo l’audio difettoso in Kid Chameleon e altri giochi).
- 32X: In modalità H32, il display ora è spostato di circa 3,25 pixel verso destra.
- 32X: Corretti i registri e lo stato della macchina durante il reset.
- CD: Corretto un problema che bloccava il BIOS al riavvio se si resettava il sistema mentre un gioco era in esecuzione.
- 32X: Migliorata la sincronizzazione tra Mega Drive/32X, correggendo i test H/V in testpico quando si utilizza la modalità 32X.
- Migliorata l’emulazione del ritardo dell’interrupt VDP.
- Migliorata l’emulazione del timer YM2612.
Sony – PlayStation
- Corretto un’asserzione nel disco 1 di Lunar quando si entra nella casa di Alex o nel fienile alla sua destra, prevenendo un crash.
UI / Program
- Corretto un crash a runtime su Linux arm64 con build compilate con GCC.
- Migliorata la compatibilità all’interno di ambienti sandboxati.
- Corretto il passaggio di percorsi relativi per le ROM durante l’avvio di ares da riga di comando.
- Corretto un problema con il nome della versione visualizzata su Windows.
- Corretto un problema che causava la creazione di nomi di directory di salvataggio malformati quando veniva specificato un percorso personalizzato.
- Corretto un problema che faceva apparire due volte l’errore di “firmware mancante”.
- Corretto un problema che poteva causare un uso incontrollato della memoria all’avvio sotto il driver di input SDL.
- Corretto un problema che influiva sulla compatibilità con le versioni di macOS precedenti alla 12.0.
Dipendenze
- Aggiornato SDL alla versione 3.2.10 (SDL3).
- Aggiornato librashader alla versione 0.6.3.
- Aggiornati gli slang-shaders al riferimento 25311dc.
Download: Ares v144 [MacOS Universal dSYMs] [MacOS Universal]
Download: Ares v144 [Windows clang ARM64 PDBs] [Windows clang ARM64]
Download: Ares v144 [Windows clang x64 PDBs] [Windows clang x64]
Download: Ares v144 [Windows x64 PDBs] [Windows x64]
Download: Source code Ares v144
Fonte: ares-emulator.github.io