Home Emulatori Pubblicata la versione 130.1 dell’emulatore ares

Pubblicata la versione 130.1 dell’emulatore ares

426
0

Pubblicato un rapido aggiornamento hotfix per ares, l’emulatore multisistema discendente di higan e bsnes si concentra principalmente sull’accuratezza e la conservazione.

Questo nuovo aggiornamento si rivolge principalmente agli utenti macOS e Linux per correggere gli arresti anomali per Nintendo 64, PS1 e 32X sui Mac Intel che eseguono versioni di macOS più recenti di Catalina.

Su Linux, mancavano invece alcune opzioni del driver Audio/Video/Input, a causa della risoluzione delle dipendenze interrotta. Gli utenti macOS su piattaforme Apple Silicon/ARM64 e gli utenti Windows possono saltare in sicurezza questo aggiornamento se lo desiderano.

L’emulatore ares attualmente emula ben 27 dispositivi hardware:

  1. Famicom + Famicom Disk System.
  2. Super Famicom + Super Game Boy.
  3. Nintendo 64 (in fase di sviluppo).
  4. Game Boy + Game Boy Color.
  5. Game Boy Advance + Game Boy Player.
  6. SG-1000 + SC-3000.
  7. Master System + Game Gear.
  8. Mega Drive + Mega CD.
  9. PC Engine + PC Engine CD + SuperGrafx.
  10. MSX + MSX2.
  11. ColecoVision.
  12. Neo Geo Pocket + Neo Geo Pocket Color.
  13. WonderSwan + WonderSwan Color + SwanCrystal + Pocket Challenge V2.

Pixel Accuracy Mode

Allo stato attuale ares contiene due implementazioni di alcuni degli hardware emulati; uno ottimizzato per le prestazioni e un altro ottimizzato per la precisione.

Higan ha sempre utilizzato i profili “accurate”, con ares che ha sempre optato per i profili “performance”; qualsiasi utente che desideri modificare questo sarebbe tenuto a compilare ares dal codice sorgente.

Ora è presente anche una nuova opzione nelle impostazioni dell’emulatore conosciuto come “Pixel Accuracy” che se abilitato andrà ad utilizzare tale modalità all’interno dei core supportati.

Per il 99% dei giochi, i profili veloci predefiniti saranno più che sufficienti, ma abilitare “Pixel Accuracy” consente ai giochi che richiedono effetti di scansione media, come il famigerato “Air Strike Patrol” di funzionare correttamente.

I seguenti sistemi supportano attualmente l’impostazione Pixel Accuracy:

  • NEC – PC-Engine / TurboGrafx.
  • Nintendo – Super Famicom / SNES.

Changelog v130.1

Questa è una versione hotfix di emergenza per utenti macOS e Linux che corregge i seguenti problemi:

  1. L’emulazione N64, PS1 e 32X si arresta in modo anomalo sui Mac Intel che eseguono versioni di macOS più recenti di Catalina. Sfortunatamente questo è scivolato attraverso la rete perché era funzionale su Catalina, che ho, e l’ultimo macOS su M1, che ha Rasky.
  2. Per gli utenti Linux, mancavano alcune opzioni del driver Audio/Video/Input, a causa della risoluzione delle dipendenze interrotta.

Inoltre, una piccola correzione dell’emulazione è stata unita: la schermata del copyright su Perfect Dark ora viene visualizzata utilizzando MAME RDP (questo non è stato ancora risolto quando si utilizza Parallel-RDP, poiché stiamo ancora lavorando per risolverlo a monte).

Sistema di costruzione

  • Corretto il problema con il rilevamento di pacchetti danneggiati dopo il passaggio a pkg-config [LukeUsher].

Nall (libreria standard)

  • Corretto il recompiler/JIT su piattaforme Intel macOS più recenti di Catalina [LukeUsher].

Nintendo 64

  • Gestire il wrapping delle coordinate vstart/vend RDP quando si utilizza MAME RDP [Rasky].

Changelog v130

Interfaccia utente

  • Semplificata la base di codice rimuovendo la possibilità di disabilitare i core di emulazione o separarli dalla GUI [Luke Usher].
  • Registrati i messaggi di stato sulla console oltre alla barra di stato [Rasky].
  • Ordinati i sistemi nell’elenco dei sistemi in ordine alfabetico per fornitore [Luke Usher].
  • Opzioni della riga di comando del documento tramite il parametro --help [Raphnet].
  • Rinominato “Vulkan” in “Accelerazione GPU” [Rasky].
  • Consentito l’utilizzo dei tasti di scelta rapida anche quando la finestra non è focalizzata, a condizione che “consenti input quando si perde la messa a fuoco” è abilitato [Luke Usher].
  • Aggiunti diritti per consentire JIT durante l’esecuzione come applicazione firmata su macOS [Rasky].
  • Bundle libMoldenVK su macOS [Rasky].
  • Corretto il problema con il rilevamento automatico dei giochi Famicom Disk System durante il trascinamento/rilascio [remutro].
  • Impedisce il polling dell’input dell’host a intervalli troppo alti, riduce il ritardo quando i giochi interrogano rapidamente i registri degli input [Luke Usher].

Sistema di costruzione

  • Rileva versioni gcc incompatibili e obsolete [Rasky].
  • Abilitata l’ottimizzazione del tempo di collegamento per impostazione predefinita, aumentando le prestazioni per la maggior parte degli utenti [Luke Usher].
  • Crea come applicazione universale su macOS, consentendo allo stesso binario di essere eseguito in modo nativo su Intel e Apple Silicon [Rasky].
  • Rileva quando gcc è in realtà un alias per clang [Invertego].
  • Corretti gli avvisi del compilatore con le versioni più recenti di clang [Invertego].
  • Usa pkg-config per rilevare le dipendenze di Ruby [Tobias Jakobi].
  • Passa esclusivamente al clang per le versioni di Windows e le build notturne [Luke Usher].
  • Consenti la compilazione incrociata su macOS [Rasky].
  • Aggiunto il supporto per la compilazione utilizzando ccache [Luke Usher].

Nall (libreria standard / runtime)

  • Migliorato make_string per passare per riferimento [Invertego]
  • Corretti i problemi di memoria negli operatori di assegnazione per tutti i tipi [Invertego].
  • Correzione new//delete per la mancata corrispondenza nell’hashset [Invertego].
  • Realizzata l’implementazione Posix di thread::join idempotent [Invertego].

Ruby (livello driver video/audio/input)

  • Rimosso il backend di rendering DirectDraw, questo è stato deprecato da DirectX 7 [Luke Usher].
  • Corretto l’intervallo di scambio sui sistemi che richiedono l’uso di glXSwapIntervalEXT [Luke Usher].
  • Soluzione agli eventi con doppio mouse con xlib [Raphnet].

Atari 2600

  • Corretto un problema di arresto anomalo del buffer overflow [Invertego].
  • Aumentato il fattore di scala per la coerenza delle dimensioni dello schermo con altri core [Luke Usher].

Sega Master System / Game Gear

  • Aggiunto il supporto per i controller Sega Mega Drive (Mega Mouse, Sports Pad, 3 pulsanti/6 pulsanti) [Raphnet].
  • Aggiunto il supporto per il controller Sports Pad [Raphnet].
  • Aggiunto il supporto per il controller Paddle [Raphnet].
  • Esporre i segnali di uscita alla porta del controller [Raphnet].
  • Impedisci che Game Gear funzioni in modalità 50 Hz poiché un Game Gear a 50 Hz non è mai stato prodotto [Luke Usher].
  • Aggiunto il supporto per l’esecuzione del BIOS del Game Gear (opzionale) [Luke Usher].
  • Correzione delle scritture sulla porta del controller 2 [Raphnet].
  • Corretto il problema con l’operazione di port $ 3e e $ 3f su Game Gear [Luke Usher].
  • Implementato il supporto per i modelli di Game Gear NTSC-U e NTSC-J [Luke Usher].
  • Inizializza ram a zero (corregge i titoli che si rompono quando un BIOS non viene caricato) [Luke Usher].
  • Correzione del calcolo errato del contatore [Luke Usher].
  • Vari miglioramenti minori dell’emulazione VDP [Luke Usher].
  • Corretto un crash durante l’esecuzione del Game Gear in modalità Master System [Luke Usher].
  • Corretti altri due giochi Game Gear che richiedono la modalità Master System: Taito Chase HQ (Giappone) e Chase HQ (USA) [Luke Usher].

Sega Mega Drive

  • Aggiunto supporto eeprom per Wonder Boy V (J) [TascoDLX].
  • Corretto il problema con il supporto SRAM per Psy-O-Blade [FitzRoyX].
  • Aggiunto il supporto per il Mega Mouse [Raphnet].
  • Correzione delle proporzioni errate (32:35) [Luke Usher].
  • Semplifica l’emulazione della cartuccia combinando mappatori standard e banked [TascoDLX].
  • Latch Z80 bus-richiesta al reset [Invertego].
  • Conserva registro bank Z80 al ripristino [Invertego].
  • Implementati mappatori personalizzati per Triple Play 96 e Triple Play Gold [TascoDLX].

Sega 32X

  • Implementato il supporto per il mapper SEGA/SSF2 standard [Ralakimus].
  • Corretto il problema con il supporto eeprom [Invertego].
  • Assicura che i bit inutilizzati del registro di controllo dell’adattatore siano impostati su zzero [TascoDLX].
  • Esponi la SRAM della cartuccia attraverso l’intervallo 0x900000 [Invertego].
  • Migliorata la sincronizzazione tra i processori SH-2 principali/secondari [Invertego].
  • Unifica i tempi di sincronizzazione tra interprete e il ricompilatore [Invertego].
  • Assicura che i bit superiori del registro di controllo degli interrupt restituiscano zero [Luke Usher].
  • Corretto un problema per cui i giochi rendevano spazzatura le aree di confine superiore/inferiore [Luke Usher].
  • Corretto un problema che impediva ai giochi Sega CD32X di rilevare il componente aggiuntivo 32X [Invertego].
  • Implementato il corretto comportamento di ripristino 32x [Luke Usher].

Nintendo NES/Famicom

  • Implementato il supporto (parziale) per le rom in formato iNES 2.0 [Luke Usher].
  • Corretto un problema per cui GTROM aveva 8k CHR-RAM invece dei 16k corretti [Luke Usher].

Nintendo SNES / Super Famicom

  • Corretto un problema con la selezione delle performance-ppu [Intertego].
  • Corretto un errore di battitura che causava la rottura del livello di sfondo 4 in modalità Pixel Accuracy [FitzRoyX].
  • Corretto il problema con il rilevamento automatico dei giochi MSU-1 [Luke Usher].

Nintendo Game Boy / Game Boy Color

  • Consenti al Game Boy Color di funzionare in modalità DMG [Luke Usher].
  • Disabilitata la visualizzazione dell’attrezzo quando è fermo [Luke Usher].
  • Impedisci l’incremento del contatore DIV quando è fermo [Luke Usher].
  • Corretto un problema minore in KEY0 [Luke Usher].
  • Corretto il valore iniziale DIV [Luke Usher].
  • Varie correzioni al mappatore MBC2 [Luke Usher].
  • Implementato bgEnable con differenze tra DMG e CGB [Luke Usher]

Nintendo Game Boy Advance

  • Corretti i giochi utilizzando il salvataggio EEPROM [Luke Usher].

Nintendo 64

  • Implementata l’emulazione Nintendo 64DD [Luigiblood].
  • Usa MoltenVK per supportare Parallel-RDP su macOS tramite Metal [Rasky].
  • Usa sse2neon per abilitare la vettorizzazione su Apple Silicon, aumentando le prestazioni [Rasky].
  • Usa XXH3 invece di crc32 per la cache del ricompilatore RSP, migliorando le prestazioni [Luke Usher].
  • Implementate le eccezioni di overflow in TRUNC [Rasky].
  • Aggiunta l’impostazione per disabilitare la post-elaborazione/sfocatura del VI [Parashoe].
  • Aggiunte variabili mancanti alla serializzazione RDP [sp1187].
  • Implementato il supporto per arresti anomali RDP [Rasky].
  • Migliorato il supporto per le eccezioni FPU [Rasky].
  • Migliorate le eccezioni di istruzioni non valide COP1/COP2 [Rasky].
  • Dividi la cache del ricompilatore RSP in blocchi da 256 byte, migliorando le prestazioni [Luke Usher].
  • Riscritto il ridimensionamento della risoluzione VI [Rasky].
  • Usa un tipo di dati nativo (u16) per RSP Program Counter, migliorando le prestazioni [Luke Usher].
  • Corretto il problema con AI DMA abilita la gestione dei bit [Rasky].
  • Correzione dell’IRQ AI [Rasky].
  • Corretto un problema per cui il ricompilatore invalidava gli intervalli errati [Luke Usher].
  • Corretti gli overflow del buffer in MAME RDP [Rasky].
  • Corretto il problema con il ridimensionamento della zona morta di Control Stick [kev4cards].
  • Corretta l’instabilità numerica nella logica di lettura del gamepad [Invertego].
  • Correzione del supporto per risoluzioni interlacciate [Rasky].
  • Lascia la RAM PIF così com’è quando non sono stati ricevuti dati [Raphnet].
  • Corretto il problema quando “Niente” è selezionato come tipo di controller [Raphnet].
  • Implementata l’invalidazione precisa del blocco RDP [Invertego].
  • Emulazione AI di refactoring per restituire sempre campioni audio [Rasky].
  • Corretto un bug nell’aggiornamento di DP_START durante un trasferimento DMA RDP [Rasky].

Microsoft MSX

  • Implementato il controller paddle Arkanoid Vaus [Raphnet].
  • Implementata la seconda porta del controller [Raphnet].
  • Corretto il rilevamento del mapper ROM ASC16 specifico per R-Type rispetto a quello generico [Luke Usher].
  • Aggiunta voce al database per Batman (Giappone) [Luke Usher].

SNK Neo Geo

  • Migliorate le prestazioni riducendo la sincronizzazione non necessaria [Luke Usher].
  • Corretto un arresto anomalo causato dalla mancata cancellazione del thread dello schermo allo scarico [Invertego].
  • Corretti i problemi di rendering del bordo esterno ritagliando l’overscan [Luke Usher].
  • Corretto il problema con il pkayback dell’audio FM/SSG [Luke Usher].
  • Corretto il problema con il supporto per i giochi con CROM non power-of-two [Luke Usher].
  • Corretto il problema con il caricamento di rom che utilizzano rom di programma .ep invece di rom di programma .p [Luke Usher].
  • Correzione dell’offset dello sprite errato: sono relativi al bordo superiore anziché alla riga 0 [Luke Usher].
  • Implementato il supporto preliminare per l’audio ADPCM-A [Luke Usher].
  • Implementato il supporto preliminare per l’audio ADPCM-B [Luke Usher].

Sony PlayStation

  • Aumentata la precisione dell’ingresso del volume durante l’amplificazione [Luke Usher].
  • Aggiunto un semplice rilevamento del ciclo inattivo, un leggero aumento delle prestazioni [Luke Usher].
  • Clamp f32->u8 conversioni colore [Invertego].
  • Corretto un arresto anomalo durante il rendering utilizzando le coordinate vram fuori gamma [Luke Usher].
  • Corretto il problema con l’input interrotto nella maggior parte (ma non in tutti) i giochi [Luke Usher].
  • Implementato il comando del disco GetParam [remutro].

Miglioramenti ai componenti

Le modifiche a questi componenti non sono specifiche dei core/sistemi, ma hanno un impatto su tutti i sistemi che utilizzano il componente aggiornato.

CPU: MOS 6502

  • Aggiunto il supporto per molte altre istruzioni non ufficiali/non documentate, tuttavia, ci mancano ancora alcune di quelle meno utilizzate [Luke Usher].

CPU: Motorola 68000

  • Corretto il problema con il flag negativo divs/divu [Invertego].
  • Correzione dell’ordine di lettura della memoria per A/SBCD e ADD/SUBX [Invertego].

CPU: Hitachi SH-2

  • Correzione della comunicazione seriale [TascoDLX].
  • Sincronizza su scritture non memorizzate nella cache [Invertego].
  • Corretto il problema con l’output di debug di istruzioni illegali non funzionante [Luke Usher].
  • Correzione dell’indirizzamento relativo al PC negli slot di ritardo del ramo [Invertego].
  • Aggiunta l’emulazione preliminare del bus interno SH6704 [Invertego].
  • Corretto un problema per cui l’indirizzo di ritorno errato veniva memorizzato in un frame di eccezione [Invertego].

CPU: Nec V30MZ

  • Correzione del comportamento del cambio [Invertego].

CPU: Zilog Z80

  • Corretti i tempi per RET, LD (IX+d),n e LD (IY+d),n [TascoDLX].
  • Correzione dei tempi e del comportamento delle istruzioni estese/prefissate [TascoDLX].
  • Correttii IM0 e semplificata l’implementazione dell’IRQ [Luke Usher].
  • Corretti vari altri tempi di istruzione [TascoDLX].
  • Correzione della logica di ripristino [TascoDLX].

Audio: YM2612

  • Corretto il problema con l’effetto vibrato pm [TascoDLX].
  • Correzione della logica di aggiornamento della busta [TascoDLX].
  • Corretto il volume floor [TascoDLX].
  • Vari altri miglioramenti e correzioni [TascoDLX].

Audio: AY38910

  • Conserva una copia degli ultimi dati scritti sulle porte IO [Raphnet].

Audio: SN76489

  • Corretto il problema con la scrittura di dati aggiuntivi sul canale del rumore [Luke Usher].

Download: Ares v130.1 [MacOS]

Download: Ares v130.1 [Windows]

Download: Source code Ares v130.1

Fonte: ares-emulator.github.io

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.