Home Emulatori Pubblicata la versione 131 dell’emulatore ares

Pubblicata la versione 131 dell’emulatore ares

276
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

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.