Il developer bubble2k16 ha rilasciato un nuovo aggiornamento per l’emulatore Snes9x, l’applicazione homebrew funziona a pieno regime anche su console portatile Old 3DS e su console 2DS.
Questa release è stata realizzata prendendo come base il codice sorgente dell’emulatore Snes9x nella sua versione 1.43, supporta i giochi che utilizzano i chip CX4 (Megaman X2/X3), il chip SSD-1 (Star Ocean, Super Street Fighter 2 Alpha) e il chip SuperFX (Yoshi island).
Versione 3DSX
- Copiate i file Snes9x_3ds.3dsx e snes9x_3ds_top.png in una qualsiasi cartella sulla scheda SD (entrambi i file dovranno trovarsi nella stessa directory).
- Posizionate le roms del SNES in una qualsiasi cartella della scheda SD.
- Avviate l’homebrew Launcher (attraverso Cubic Ninja) e lanciate l’emulatore snes9x_3ds.3dsx.
Versione CIA
- Attraverso un qualsiasi Custom Firmware installate il file snes9x_3ds.cia utilizzando il vostro installer preferito.
- Posizionate le roms del SNES in una qualsiasi cartella.
- Copiate il file snes9x_3ds_top.png nella root della vostra scheda SD.
- Uscite dall’installer di file CIA e portatevi nella schermata principale del Custom Firmware per lanciare l’applicazione.
Guida
- Toccare lo schermo in basso per il menu.
- Utilizzare e per scegliere l’opzione e per confermare.
- Utilizzare e per cambiare tra la selezione delle roms e le opzioni dell’emulatore.
- Uscendo dall’emulatore tornerete all’interno dell’homebrew launcher o nella schermata iniziale del Custom Firmware.
Compatibilità
- Per la lista completa dei titoli compatibili con l’emulatore seguite questo collegamento.
Ottimizzazioni
- Utilizzo del registro globale appropriato e srotolamento del ciclo.
- Inline aggressivo per le funzioni di ciclo interno e funzioni di memoria di load/store.
- Strutture unite.
- Generalmente ottimizzate alcune istruzioni 65816c per evitare il salvataggio dei variabili globali (se non sono in corso per essere utilizzati su tutti, Snes9x ne fa un sacco).
- SPC700 rimonta solo in presenza di HBlank, e durante la lettura dei registri $214x.
- Utilizzo della GPU 3DS per l’accelerazione hardware.
- Utilizzo dell’hardware GPU 3DS per alcuni calcoli relativi a tile flips e coordinate della texture.
- Il rendering hardware è stato derivato dal software renderer originale del SNES9X. Pertanto, esse non scalano molto bene durante gli effetti molto pesanti del HDMA.
- Il SNES DSP corre contemporaneamente e in modo indipendente sul filo syscore. Anche senza la sincronizzazione con il 65816c/SPC700, si produce un suono ragionevole e la musica.
Cosa è supportato
- Modalità grafiche 0 – 4 (anche per le modalità offset-per-tile), modalità 7.
- Salvataggi di stato disponibili fino allo slot 4.
- Attualmente utilizza CSND per l’audio. Così il vostro punto di ingresso per gli homebrew dovrebbe essere in grado di utilizzare CSND. (Se si può eseguire il suono con BlargSNES, si dovrebbe essere in grado di eseguirlo anche su Snes9X_3DS).
- Frame skipping.
- Supporto SDD1 chip.
- Supporto SFX chip (funziona, anche se relativamente lento).
Cosa manca o deve essere migliorato
- Interpolazione del suono/eco (non sarà supportato).
- Alcuni esempi di suono e musica molto traballante (non so perché).
- Supporto Hi-res (non sarà supportato).
- Tutti gli altri chip (non penso saranno supportati in futuro).
- Mosaici (non sarà supportato).
- Pulsanti Turbo (in arrivo nelle versioni successive).
- La versione CIA non supporta correttamente la funzione resume.
- SA-1 chip. Non verrà supportato. Occupa più potenza del 3DS/2DS.
Changelog v0.61
- Fixato un bug sul driver DSP per giochi come Dragon Ball – Super Budoten 3 e Umihara Kawase.
- Fixato un bug che non permette di fermare il suono durante il salvataggio della SRAM.
- Aggiunta un’opzione per nascondere gli FPS e il testo non necessario sullo schermo in basso.
Changelog v0.6
- Amplificazione sonora predefinita a 2x…
- Ridotto il bug freeze della GPU dopo il caricamento continuato delle ROM e successivi reset.
- Risincronizzato il suono quando si entra all’interno del menu (è possibile ripristinare la sincronizzazione in questo modo dopo il risveglio del 3DS dalla modalità sleep).
- Migliorata la frequenza di campionamento audio a 32 KHz, e aggiunto l’eco e l’interpolazione. Questa soluzione porta ad una migliore qualità del suono.
- Migliorata la sincronizzazione tra l’emulazione SPC700 e il DSP.
- Fixato il bug in Contra III Mode 7 “EXTBG”.
- Attivata la lettura per Envelope Height SPC700.
- Fixata l’esecuzione delle musiche in Chrono Trigger dopo aver combattuto qualsiasi battaglia.
Changelog v0.51
- Implementata la pseudo modalità 5 ad alta risoluzione utilizzando l’alternativo frame flickering per ottenere la modalità pseudo ad alta risoluzione. I giochi che utilizzano questa modalità sono: Secret of Mana, Seiken Densetsu 3, Air Strike Patrol, e altri titoli simili.
Changelog v0.5
- Implementate importanti ottimizzazioni di rendering grafici per la gestione del colore, la trasparenza e gli effetti delle finestre. Anche se non sono stati utilizzati codici provenienti dall’emulatore BlargSNES ne sfrutta appieno le idee. Alcuni giochi che utilizzano effetti a finestre dovrebbero vedere qualche significativo aumento delle prestazioni. F-Zero (versione US/EUR) a piena velocità. Super Mario Kart (EUR) si avvia a piena velocità. Axelay (US) gira ad una velocità giocabile. Breath of Fire 2 non presenta più gli effetti di transizione durante le battaglie. La finestra circolare in Super Mario World con effetto fade-in/out gira meglio. eccetera.
- Fixati i problemi di sfarfallio per gli sprite in Yoshi Island e Donkey Kong Country 2.
- Risolti i problemi di fondo a 256 colori. Ora l’intro di Donkey Kong Country 1, Donkey Kong Country 2 e Earthworm Jim 2 si presenta in modo corretto.
- Fixati bug in Mode 7 BG2. Ora Super Star Wars – Empire Strikes Back (snowspeeder stage) funziona correttamente.
Download: Emulatore Snes9x v0.61 per Nintendo 3DS
Download: Source code emulatore Snes9x per Nintendo 3DS