Home Emulatori Pubblicata la versione 131 dell’emulatore ares

Pubblicata la versione 131 dell’emulatore ares

422
0

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

Questo nuovo aggiornamento presenta una build di Windows ARM64, mentre il core 32X non viene più contrassegnato come sperimentale, avendo raggiunto il 95% di compatibilità.

Certo sono ancora presenti alcuni piccoli bug sparsi qua e là, ma la maggior parte dei giochi ora può essere eseguita senza particolari problemi.

Come di consueto sono stati apportati miglioramenti significativi anche a molti altri core.

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

Interfaccia utente

  • Debugger: Imposta la profondità della cronologia della traccia per processore. [invertego]
  • Debugger: Memorizza gli indirizzi a 64 bit nella cronologia delle tracce. [invertego]
  • Debugger: Utilizza un hashset per tenere traccia degli indirizzi visitati. [invertego]
  • Spostate le impostazioni del driver audio su una nuova riga, per evitare che nomi di dispositivi di grandi dimensioni trabocchino nel contenitore. [LukeUsher]
  • Implementata l’opzione di scelta rapida/menu “Ricarica partita corrente”. [LukeUsher]
  • Controller: Associa gli ingressi analogici solo al movimento lontano dal centro. [invertego]

Build System

  • Evita la firma del codice quando crei da PR. [rasky]
  • Utilizza widnres dall’ambiente di compilazione se definito. [invertego]
  • Aggiunto il supporto per Windows AArch64. [invertego]
  • Utilizzo di Guard SSE con un pre-processore. [invertego]
  • Aggiunte mame RGB utils per tutte le architetture. [invertego]
  • Abilitato il debug delle build autofirmate su macOS. [invertego]
  • Rimosso libgtksourceview2.0-dev dalle dipendenze. [LukeUsher]
  • Reso LTO l’opzione predefinita di nuovo, l’aumento delle prestazioni vale il tempo di costruzione aggiuntivo. [LukeUsher]
  • Supporta la compilazione con MSVC/microsoft clang. (richiede ancora GNU make per ora) [invertego]
  • Definisci _WIN32_WINNTnel makefile piuttosto che nelle intestazioni. [invertego]
  • Preferito clang su tutte le piattaforme. [invertego]

Nall (libreria standard / runtime)

  • Rileva e supporta PowerPC64. [invertego]
  • Correzione LTO con PowerPC64. [invertego]
  • Recompilatore: semplifica l’uso del carry flag. [invertego]
  • Impedisci ad AppKit di gestire le aperture dei file. [LIJI32]
  • Recompilatore: implementato bit ruota. [invertego]
  • Ricompilatore: implementati turni mascherati. [invertego]
  • Utilizza snprintf per evitare avvisi di compilazione. [rasky]
  • Dividi le implementazioni in file .cpp. [invertego]

Hiro (GUI Framework)

  • Memorizza le impostazioni di Windows nella directory dell’applicazione, rendendo ares veramente portatile. [LukeUsher]

Atari 2600

  • Corrette le proporzioni dei pixel a 12:7. [LukeUsher]

Bandai WonderSwan

  • Correzione della gestione errata del bit della modalità colore. [asiekierka]
  • Corretto l’indirizzamento PPU di 1024 riquadri in modalità colore 2bpp. [asiekierka]
  • Aggiornati i metodi PPU Planer, Packed, Depth e Grayscale per essere corretti con l’hardware reale. [asiekierka]
  • Codice APU ottimizzato per trattarlo correttamente come un chip digitale a 24000 Hz, al contrario di un chip analogico a 3072000 Hz. [asiekierka]
  • Corretti i bit di “mezzo volume” del canale 2 dell’APU che venivano ignorati. [asiekierka]
  • Valore del filtro passa-basso provvisoriamente ottimizzato in base alla ricerca di GuyPerfect. [asiekierka]
  • Implementato uno stub di I/O seriale meno tozzo. Questo emette correttamente interruzioni TX/RX. [asiekierka]
  • Aggiunto il supporto per le porte bancarie a 16 bit di Bandai 2003. [asiekierka]
  • Aggiunto il supporto stubby per il registro NMI 0xB7, come trovato e documentato da FluBBa nell’emulatore NitroSwan. [asiekierka]
  • Separa in modo appropriato le porte I/O in modalità WSC dalla modalità Mono. [asiekierka]
  • Corretto il comportamento dei timer PPU HBlank/VBlank quando il valore di ricarica è 1, ma il timer non è abilitato. [asiekierka]
  • Corretto il problema con la logica di uscita dell’altoparlante interno dell’APU. [asiekierka]
  • Aggiunto il supporto per l’interruttore Pixel Accuracy; aumento significativo delle prestazioni quando la precisione dei pixel è disattivata. [asiekierka]
  • Corretto il problema con l’emulazione dell’interruzione della tastiera per adattarsi alle stranezze dell’hardware. [asiekierka]
  • Corretto il problema con la gestione della porta base di interrupt su WSC. [asiekierka]
  • Aggiunti PPU SCREEN1, SCREEN2 e riquadri alla vista di debug della grafica. [asiekierka]
  • Aggiunte porte I/O PPU, APU, cartucce, seriali e SoC alla vista di debug delle proprietà. [asiekierka]
  • Esposta la possibilità di utilizzare l’uscita dell’altoparlante interno nell’interfaccia utente. [asiekierka]

ColecoVision

  • Corrette le proporzioni dei pixel a 8:7. [PikaSamus]

MSX / MSX2

  • Corrette le proporzioni dei pixel a 8:7. [PikaSamus]

Nintendo NES / Famicom

  • Miglioramento del rilevamento dei frame MMC5. [byte codificato]
  • Migliorata la gestione della RAM MMC5. [byte codificato]
  • Corretto il problema con il ram banking su MMC5. [encoded-byte]
  • Corretto l’audio di espansione MMC5. [byte codificato]
  • Correzione del ripristino errato del registro della linea di scansione MMC5 su NMI. [byte codificato]
  • Correzione del rilevamento della linea di scansione MMC5. [byte codificato]
  • Incrementate le linee di scansione prima del confronto su MMC5. [encoded-byte]
  • Implementato l’audio di espansione namco163. [encoded-byte]
  • Potenziata l’uscita audio per essere in linea con altri core. [LukeUsher, byte codificato]
  • Unita l’emulazione di APU, cartuccia e CPU in un singolo co-thread; migliora le prestazioni senza alcun impatto sulla precisione. [LukeUsher]

Nintendo SNES / Super Famicom

  • Aggiunto Star Fox EX al database del gioco. [DerekTurtleRoe]

Nintendo Game Boy

  • Corretta l’emulazione RTC. [invertego]
  • Correzione dell’implementazione del mapper MBC1 per le cartucce da 8/16 Mbit. [asiekierka]

Nintendo Game Boy Color

  • Corretto il problema con le pallette di oggetti secondari durante l’esecuzione in modalità DMG. [LukeUsher]

Nintendo 64

  • Corretti gli errori di precisione a 1 bit in mame RDP. [rasky]
  • Emula guardband VI. [rasky]
  • Migliorata la generazione di flag ed eccezioni FPU. [rasky]
  • Attiva eccezioni FPU anche tramite CTC1. [rasky]
  • Implementa flag ed eccezioni FPU per FCVT_x. [rasky]
  • Corrett arrotondamenti e flag per le funzioni di conversione. [rasky]
  • Corretto il problema con FPU round-to-even usando gli intrinseci. [rasky]
  • Aggiunto DCTC1 e DCTFC1. [rasky]
  • Ripristina i bit di causa FPU per ogni operazione FPU. [rasky]
  • Corretto bandling denormale in FCTV_S_D. [rasky]
  • Implementa il flush denormal corretto per ogni modalità di arrotondamento. [rasky]
  • Impedisci al compilatore di riordinare il codice in modo errato usando noinline. [invertego]
  • Sostituite le funzioni cmath con le funzioni intrinseche. [invertego]
  • Migliorate le eccezioni non implementate in caso di underflow. [invertego]
  • Rimossa la modifica della modalità round spuria nell’implementazione FPU su aarch64. [rasky]
  • Corretti i problemi relativi ai limiti di conversione off-by-one in FPU. [rasky]
  • Non cancella le bandiere su FMOV. [rasky]
  • Genera eccezioni non implementate invece di eccezioni non valide per le conversioni FPU. [invertego]
  • Sostituito lround con round, lrint con rint. [invertego]
  • Non cancella i flag FPU su LWC1/LDC1/SWC1/SDC1. [rasky]
  • Corretti gli input della levetta analogica su Aarch64. [invertego]
  • Aggiunta dell’indirizzo del PC ai registri delle eccezioni FPU. [rasky]
  • Implementato il corretto comportamento del bus aperto PI. [rasky]
  • Migliorato il comportamento in caso di crash RDP. [rasky]
  • Implementato il limite hardware del comando LOAD_BLOCK RDP. [rasky]
  • Corretta la confusione dello spazio degli indirizzi a 32 bit / 64 bit. [rasky]

Sega Game Gear

  • Corrette le proporzioni dei pixel a 6:5. [PikaSamus]

Sega Master System / Mark III

  • Serializza la RAM della cartuccia. [invertego]

Sega Mega Drive / Genesis

  • Corretto il problema con il rom banking della cartuccia per ROM fino a 32 MB. [TascoDLX]
  • Corretto un problema di build in cui le funzioni del bus non erano integrate come previsto. [LukeUsher]
  • Ridotta la sincronizzazione tra i componenti, aumentando le prestazioni senza alcuna perdita osservabile di precisione. [LukeUsher]
  • Rifattorizzato VDP per utilizzare i modelli per ridurre i confronti nei cicli interni stretti. [LukeUsher]

Sega 32X

  • Correzione PWM fifo. [TascoDLX]
  • Implementato DREQ1 e corretto l’IRQ PWM. [TascoDLX]
  • Corretto il rendering RLE. [TascoDLX]

Sony PlayStation

  • Ridotta la durata del comando di pausa, risolvendo una race condition all’avvio iniziale del gioco. [LukeUsher]

Miglioramenti dei componenti

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

CPU: MOS 6502

  • Corretti i flag adc/sbc in modalità decimale. [invertego]

CPU: NEC HuC6280

  • Corretti i flag adc/sbc in modalità decimale. [invertego]

CPU: NEC V30MZ

  • Non ignora l’operando immediato nelle chiamate AAD/AAM. [asiekierka]
  • Corretto il problema con il timing della CPU basso, basato su WSTimingTest. Ci sono ancora alcuni test che non vengono superati, in particolare i salti. [asiekierka]
  • Corretta la decodifica del codice operativo IN/OUT nel tracciante della CPU. [asiekierka]
  • Corretta l’emulazione del codice operativo non documentato 0xD6 e 0xF7 subop 1. [asiekierka]

Download: Ares v131 [MacOS]

Download: Ares v131 [Windows AMD64]

Download: Ares v131 [Windows ARM64]

Download: Ares v131 [Linux Flatpack – AMD64]

Download: Ares v131 [Linux AUR – Generic]

Download: Source code Ares v131

Fonte: ares-emulator.github.io

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: PS4

Vedi altri prodotti PS4

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.