Pubblicato un nuovo aggiornamento per ares, l’emulatore multisistema discendente di higan e bsnes si concentra principalmente sull’accuratezza e la conservazione.
Una delle principali novità introdotte in questo nuovo aggiornamento è il supporto per l’hardware arcade basato su Sega SG-1000, rappresentando il primo di potenziali molteplici core arcade all’interno di Ares.
Si sottolinea che, a differenza del Neo Geo (che si concentrava sulla variante console AES), i core arcade utilizzano ROM nel formato MAME e una lista di giochi anziché file ROM tradizionali. Il percorso delle ROM arcade può essere specificato all’interno delle impostazioni del programma.
I giochi arcade saranno raggruppati sotto il sistema “Arcade”, indipendentemente dal sistema su cui si basa l’hardware arcade.
Va notato che al momento Ares non gestisce relazioni padre-figlio, quindi i file zip delle ROM arcade devono contenere tutti i file necessari per il gioco, in un set comunemente noto in MAME come “Non-Merged”.
Aggiunta inoltre una modalità homebrew al pannello delle impostazioni; questa ha lo scopo di abilitare le funzioni utili agli sviluppatori di homebrew ma che comprometterebbero le prestazioni per il gioco generale.
Questa impostazione è attualmente utilizzata solo nel core del Nintendo 64; ulteriori informazioni in merito verranno fornite in seguito.
La cronologia dei commit rivela che sono stati apportati cambiamenti a un totale di 541 file, suddivisi in 221 commit distinti dalla precedente versione 133.
Changelog
Interfaccia utente
- Salvataggio automatico delle impostazioni alla chiusura della finestra di dialogo delle impostazioni.
- Aggiunti tasti di scelta rapida per il controllo del volume e la disattivazione dell’audio.
- Rifattorizzato il sistema di log per consentire un maggiore controllo sull’output del log.
- Ripristinata la possibilità di nascondere i core dal menu.
- Aggiunto un pulsante “Scan” alle impostazioni del firmware; questo rileva automaticamente il firmware supportato da una directory firmware configurata.
- Aggiornata l’opzione “Color Bleed” per funzionare con tutti i core non HD, anziché solo con SNES.
- Corretta la descrizione del deinterlacciamento della texture (orizzontale -> verticale).
- Migliorato il rilevamento automatico dei giochi basati su CD-ROM, il trascinamento della selezione e il caricamento della riga di comando ora sono più affidabili.
Debug
- Aggiunto supporto per il debug di sistemi emulati tramite GDB, attualmente solo il core Nintendo 64 lo supporta, ma verrà ampliato nelle versioni future.
Atari – Atari 2600
- Migliorati i tempi della CPU in relazione a WSYNC.
- Migliorati i tempi del TIA, anche se ancora lungi dall’essere perfetto.
- Implementato il blocco del pixel del campo di gioco corrente.
- Incluso “current cycle on this scanline” nell’output della traccia della CPU per facilitare il debug.
- Migliorato il comportamento RESMP e implementato NUSIZ per i missili.
- Migliorato il posizionamento degli oggetti HMOVE.
- Correzione del timer RIOT e del bit di interruzione del timer.
- Migliorato il rilevamento delle rom PAL cercando la stringa (PAL) e la stringa (Europe) nel nome del file rom.
- Supporta il caricamento di rom in formato
.bin
anziché solo.a26
.
Bandai – WonderSwan / WonderSwan Color
- Implementata correttamente la porta INT_BASE.
- Implementato il blocco DMA dell’audio.
- Corretti i valori di lettura DMA dell’audio quando disabilitato.
- Corretto il problema con l’ombreggiatura della sorgente/lunghezza del DMA audio.
- Corretto il problema con il caricamento delle ROM ritagliate.
- Correzione dell’implementazione e dei tempi del codice operativo ENTER/PREPARE.
- Correzione dell’indirizzo di ritorno dell’interruzione nella divisione per zero.
- Migliorati i tempi del bus ROM/SRAM.
Microsoft – MSX / MSX2
- Corretti i conflitti tra lo spazio ROM e SCC con il mappatore KonamiSCC.
- Consentito il caricamento di rom in formato
.rom
, anziché solo.msx
/.msx2
.
NEC – PC Engine
- Aggiunto il supporto per “color emulation” (non-linear RGB).
Nintendo-NES / Famicom
- Saturazione del colore ridotta a 1,5 per corrispondere alla maggior parte degli altri emulatori.
- Implementato il mappatore UNROM-512.
- Implementato il mappatore Action53.
- Implementati i mappatori 31 e 218 (inl-nsf, magicfloor),
- Corretta la modalità di programmazione MMC5 1.
- Corretto il problema con il supporto per le variabili di dimensione PRG/CHR estese NES2.0.
- Implementato il supporto autoflash per UNROM-512 e GTROM.
- Rimossa la regolazione “GAMMA” quando è abilitata “Color Emulation”.
- Implementato il comportamento del bus aperto della PPU.
- Serializzato lo stato del controller negli stati di salvataggio: corregge i problemi di input quando si utilizza run ahead.
- Supporta più varianti del BIOS del sistema Famicom Disk.
- Supporto preliminare per il modulo di espansione EPSM.
Nintendo-Game Boy
- Corretta la gestione dell’overflow/registrazione dell’RTC MBC3.
- Corretta la larghezza del registro RAMbank MBC3.
Nintendo – SNES / Super Famicom
- Corretto il problema con il supporto per il Super GameBoy PAL.
- Separato il livello di schiacciamento del nero dall’emulazione del colore, ora è esposto come “Deep Black Boost”.
- Corretto il problema del wrap PLB in modalità di emulazione (in base ai test hardware, tutti gli emulatori sembrano aver sbagliato).
Nintendo-Nintendo 64/64DD
- Implementati i tempi della pipeline RSP VU.
- Corrette alcune voci errate del database di gioco (Beetle Adventure Racing (J), Chameleon Twist 2, J.League Live 64, Quake 64, Star Fox 64).
- Implementate le restrizioni sull’emissione di duelli RSP per CFC2/CTC2.
- Corretto il problema con il blocco del registro zero RSP.
- Bloccata la gamma della levetta analogica a una forma ottagonale.
- Implementato il contatore dell’orologio RDP.
- Corretta l’interruzione della linea VI per attivare il post-incremento.
- Corretto un problema per cui le istruzioni in icache consumavano due cicli anziché uno.
- Corretto un errore off-by-one nella temporizzazione delle istruzioni mul/div.
- Implementazione preliminare dei ritardi FPU.
- Migliorato il rilevamento dei loop inattivi nel ricompilatore.
- Corretto un problema per cui il ricompilatore avanzava solo l’indirizzo fisico e non quello virtuale.
- Aggiunto il supporto per il Transfer Pak per Nintendo 64.
- Corretta una regressione nel n64-systemtest relativa al TLB.
- Aggiunto il supporto per la “modalità Homebrew”: questo abilita l’output di debug di ISViewer e un controllo della coerenza della cache per aiutare gli sviluppatori homebrew.
- Aggiunto il supporto per le immagini disco
.D64
. - Aggiunto il supporto per lo scambio del disco 64DD.
- Implementata la parte “Controller Config” dell’intestazione Advanced Homebrew Rom.
- Bloccati i valori X/Y dal mouse N64 (evita input nervosi).
- Corretta l’emulazione RTC non funzionante per il 64DD.
- Corretta l’emulazione RTC non funzionante per Doubutsu No Mori (Animal Forest).
- Migliorato l’algoritmo di rilevamento CIC per non fare affidamento su un database, consentendo il supporto per IPL3 personalizzato/homebrew.
Sega – Master System / Game Gear
- Aggiunto il supporto per il mappatore Pak4.
- Aggiunto il supporto per il mappatore Hicom.
- Aggiunto il supporto per il mappatore Hap2000.
- Aggiunto il supporto per il mappatore K118in1.
- Rinominato il mapper MSX in mapper Zemina per rappresentare correttamente la sua origine/scopo.
- Aggiunto il supporto per “emulazione colore”: bias blu non lineare.
- Migliorato il rilevamento delle rom giapponesi (i giochi che non contengono “TMR SEGA” sono compatibili solo con i sistemi giapponesi).
- Forzata l’esecuzione delle rom con estensione
.sms
in modalità Master System quando caricate sul core del Game Gear.
Sega – Mega Drive/CD/32X
- Aggiunto il supporto per lo scambio dei dischi in fase di esecuzione, consentendo la riproduzione di giochi multi-disco.
- Aggiunto il supporto per Mega Mouse durante l’esecuzione di titoli Mega CD.
- Sincronizza ad ogni ciclo quando il 32X non è in uso.
- Mantenuta l’allocazione della cache del codice 32X tra i ripristini.
- Corretto l’overflow dell’audio quando i titoli riavviano l’YM2612 (corregge i problemi audio in Shining Force).
- Maggiore ottimizzazione delle prestazioni per il core 32X.
- Migliorata l’emulazione CDC (ares ora supera il test CDC REGS in mcd-verificator).
- Corretto un problema in “The Terminator (USA)”.
- Aggiorna immediatamente il tasto YM2612 on/key-off in scrittura, corregge la musica di Puyo Puyo Tsuu.
- Aggiornato lo stato della chiave YM2612 sul tick di fase.
- Aggiunta l’emulazione mirror framebuffer 32X, corregge SoulStar X.
- Rafforzata la sincronizzazione tra i componenti audio.
- Miglioramento dei ritardi del bus-arbiter per la comunicazione z80->m68k (corregge l’audio in Overdrive 2).
- Migliorati i tempi di aggiornamento e bus.
SNK – Neo Geo
- Utilizzate YMFM per l’emulazione di YM2610, per risolvere i problemi audio di molti titoli.
Sony – Playstation
- Implementazione del bug dell’interrupt GTE (se viene attivato un interrupt quando un’istruzione GTE è successiva, l’istruzione GTE viene eseguita erroneamente), corregge i poligoni appuntiti in molti titoli.
- Correzione di un problema per cui il comando SetLoc del CD-ROM resettava erroneamente il flag ‘reading’.
- Correzione di un problema a causa del quale il Digital Pad non disattivava /ACK su un comando non valido.
- Miglioramento della tempistica e del comportamento di /ACK, per correggere l’input interrotto in molti giochi (ma non in tutti).
- Implementazione dei controller Dual Shock, necessari per Ape Escape.
- Aggiunta del supporto per lo scambio di dischi in runtime, per consentire la riproduzione di giochi multidisco.
- Aggiunta del supporto per XA-ACPDM a metà velocità, per risolvere il problema dell’audio acuto in molti titoli.
- Aggiornamento degli inviluppi ADSR immediatamente in scrittura, per correggere i suoni di allarme in Metal Gear Solid.
- Implementazione del muting delle tracce dati quando vengono riprodotte come CD-DA.
- Eseguita la modulazione del colore nello spazio RGB555, corregge la schermata di caricamento di Silent Hill.
- Correzione di un problema per cui i ganci di caricamento rapido si attivavano in fase di esecuzione, causando l’arresto anomalo di alcuni giochi all’avvio.
- Simulazione di un fifo di scrittura della cpu infinitamente lungo: corregge un problema per cui molti giochi funzionavano troppo lentamente.
- Varie modifiche ai tempi per migliorare l’accuratezza generale.
- Correzione di un problema per cui i timer si aggiornavano troppo lentamente quando si utilizzava il ricompilatore.
MOS6502
- Implementato il supporto per un maggior numero di opcode non documentati.
Altro
- Correzione delle installazioni a livello di sistema su Linux, che risolve il problema del database e del mancato caricamento degli shader.
- Aggiunta del supporto per SDL2 come driver di input su tutte le piattaforme.
- Allocazione della cache del codice all’avvio per il ricompilatore: aumenta le prestazioni su macOS e in alcuni casi le raddoppia su M1.
- Aggiunto il supporto per SDL2 come driver audio.
- Uso di DwmFlush su Windows per vsync, aggirando i bug del driver OpenGL.
- Correzione del tempo relativo nel sottocanale Q del pregap del CD-ROM.
- Spostato il caricamento del CD-ROM in un thread separato per velocizzare il caricamento del contenuto del CD-ROM.
- Evitata l’allocazione di buffer di codice nel ricompilatore.
- Allocazione più robusta della cache del codice nel ricompilatore.
- Aggiunta della categoria “Games” al bundle di applicazioni macOS per consentire il funzionamento della modalità Gioco di Sonoma con ares.
- Aggiunto il supporto per l’architettura risc-v.
- Aggiunta l’emulazione preliminare della cpu Intel 8080: non utilizzata al momento, ma per un’espansione futura.
- Correzione di un problema per cui il driver WASAPI causava problemi di sincronizzazione durante l’avanzamento rapido.
Download: Ares v134 [MacOS]
Download: Ares v134 [Windows AMD64]
Download: Ares v134 [Windows ARM64]
Download: Ares v131 [Linux Flatpack – AMD64]
Download: Ares v134 [Linux AUR – Generic]
Download: Source code Ares v134
Fonte: ares-emulator.github.io