Il developer wavemotion-dave continua ad apportare modifiche alla versione 1.5 di GimliDS, l’emulatore del Commodore 64 per console DS, DSi e varianti come XL/LL.

Il progetto nasce come evoluzione del precedente FrodoDS e porta uno dei computer più iconici degli anni ’80 su un hardware portatile molto più limitato, un risultato che richiede ottimizzazioni costanti per garantire un’esperienza fluida.
Con l’aggiornamento 1.5h viene introdotta una nuova modalità di sincronizzazione reale a 50Hz, capace di adattare il refresh nativo del Nintendo DS, fissato a 60Hz, a quello tipico del Commodore 64.
Questa soluzione consente di sincronizzare meglio l’emulazione, offrendo un’esperienza visiva molto più pulita e quasi priva di tearing, soprattutto nei titoli che fanno un uso intenso dello scorrimento dello schermo.
Debutta anche un nuovo sistema di preferiti che permette di contrassegnare i giochi come “piaciuti” o “preferiti” direttamente dalla schermata di selezione, rendendo la gestione della libreria più pratica.
Dal punto di vista dell’emulazione pura, sono stati compiuti importanti passi avanti nella precisione del timing della CPU, in particolare per quanto riguarda i cicli “presi in prestito” e quelli del floppy disk, migliorando la compatibilità generale e consentendo a un numero maggiore di giochi di funzionare correttamente.
Notevoli miglioramenti riguardano anche l’emulazione del chip audio SID. Su Nintendo DS Lite si percepisce un netto miglioramento della qualità sonora, mentre su DSi è stato risolto un bug che ne limitava la resa.
L’intero sistema di configurazione è stato profondamente riorganizzato e, con questa versione, tutte le impostazioni vengono riportate ai valori di default, offrendo una base più pulita e coerente.
Le nuove opzioni consentono di modificare rapidamente parametri come la mappatura dei tasti semplicemente tenendo premuto il D-PAD, mentre un comando dedicato permette di ripristinare le impostazioni di fabbrica per il singolo gioco.
Sono stati introdotti nuovi parametri di regolazione dei timer CIA e del floppy disk, utili per effettuare piccoli aggiustamenti richiesti da titoli particolarmente sensibili, come Flying Shark, Mr. Heli e Dragon Wars, che ora risultano giocabili.
Anche giochi problematici come Turrican I funzionano correttamente, con una semplice combinazione di tasti per superare la schermata iniziale.
Sul fronte della stabilità, è stato risolto un fastidioso crash legato al caricamento di alcuni dischi, noto come “DS guru meditation”, che impediva l’avvio di titoli come Barnsley Badger.
Completano l’aggiornamento lievi ritocchi grafici alle icone di lettura e scrittura del disco e una piccola ottimizzazione generale che consente di guadagnare un ulteriore frame di prestazioni, contribuendo a rendere l’esperienza ancora più fluida.
File BIOS
Per poter eseguire correttamente questo emulatore, è necessario disporre dei file BIOS originali del Commodore. Questi file dovranno essere inseriti nelle cartelle /roms/bios oppure /roms/c64 e rinominati esattamente come segue:
KERNAL.ROM8K con CRC32=dbe3e7c7(901227-03)BASIC.ROM8K con CRC32=f833d117(901226-01)CHAR.ROM4K con CRC32=ec4272ee(901225-01)1541.ROM16K con CRC32=899fa3c5(251968-03)
Controlli
+
– Ridimensiona lo schermo nelle direzioni X e Y.
+
– Sposta lo schermo nelle direzioni X e Y.
– Invia il celebre comando LOAD "*",8,1(assicurarsi che l’emulatore si trovi al prompt READY).
– Cambia tra porta 1 e porta 2 del joystick.
– Direzioni del joystick.
è normalmente associato al FUOCO ma può essere rimappato nelle impostazioni.
è normalmente associato allo SPAZIO ma può essere rimappato.
è normalmente associato al tasto INVIO ma può essere rimappato.
è normalmente associato a “Joy Up” per facilitare i salti nei giochi, ma può anch’esso essere rimappato.
Utilizzo dell’emulatore
Per utilizzare GimliDS, è sufficiente avviare il file GimliDS.NDS sulla console Nintendo DS, DSi, XL o LL. Si noti che, se l’emulatore viene eseguito da una flashcard R4 (o simile), verrà attivata la modalità di compatibilità, che limita la CPU a 67 MHz.
In questo caso, GimliDS sarà comunque funzionante, ma sarà necessario un leggero frameskip per garantire una velocità di gioco accettabile.
Al contrario, se l’emulatore viene avviato da scheda SD su DSi/XL/LL tramite Twilight Menu++ o Unlaunch, la CPU lavorerà a 134 MHz, permettendo di giocare senza frameskip e con un audio notevolmente migliorato.
All’avvio dell’emulatore (purché i file BIOS siano nella posizione corretta), verrà mostrata l’interfaccia del CBM BASIC con il celebre prompt READY.
Da qui, si può utilizzare l’icona del disco per caricare un gioco in formato .d64. Una volta montata l’immagine, si torna alla schermata principale dell’emulazione (uscendo dal menu) e si preme il tasto
per digitare automaticamente il comando: LOAD "*",8,1 e avviare il gioco con RUN.
Il tasto C= (in basso a destra) consente di configurare il gioco, salvare o caricare stati di gioco e altro.
Importante familiarizzare anche con il tasto
, che permette di scambiare le porte del joystick. Questa funzione sarà usata frequentemente, poiché molti giochi utilizzano porte diverse (e a volte anche i loader o i cracker le cambiano).
Dato che la risoluzione dello schermo del DS (256×192) non corrisponde a quella del Commodore 64 (320×200 più bordi), sarà necessario utilizzare i tasti
e
insieme a
per regolare scala e posizione dell’immagine. Una volta trovata la configurazione ideale, sarà salvata automaticamente per quel gioco.
Si consiglia inoltre di rimappare un tasto del DS su “PAN UP” o “PAN DOWN”, per spostare temporaneamente lo schermo di 16 pixel e visualizzare elementi come punteggi o indicatori, senza sacrificare la risoluzione durante il gioco.
Disponibile anche una funzione di zoom temporaneo 1:1: assegnando un tasto alla voce “TOGGLE ZOOM” nelle impostazioni, sarà possibile attivare/disattivare lo zoom per facilitare la lettura dei testi.
In modalità zoom, parte dello schermo potrà risultare tagliata, ma è possibile spostarsi lateralmente con i tasti
e
. Premendo nuovamente il tasto assegnato, si tornerà alla visualizzazione precedente.
Infine, alcuni giochi utilizzano loader personalizzati che richiedono l’attivazione della modalità True Drive. Attenzione: in questa modalità il caricamento dei dischi avviene alla velocità reale del Commodore 1541, ovvero molto lentamente (anche 2-5 minuti).
Se il gioco la richiede, è l’unico modo per farlo funzionare. Si consiglia di creare uno stato di salvataggio una volta caricato il gioco, per evitare attese future.
Supporto per Cartucce
Pur essendo un emulatore orientato principalmente ai giochi su disco, GimliDS supporta anche le cartucce più comuni, fino a una dimensione massima di 1MB. I tipi di cartucce compatibili includono:
- Standard 8K
- Standard 16K
- Super Game Carts fino a 64K
- Dinamic fino a 128K
- C64 Games System fino a 512K
- Ocean fino a 512K
- Magic Desk fino a 1MB
- Easy Flash fino a 1MB, con 256 byte di RAM
Questo garantisce la compatibilità con un’ampia varietà di giochi su cartuccia. Si consiglia di esplorare l’archivio OneLoad64, che raccoglie molte di queste versioni in formato pronto all’uso.
fedeltà dell’emulazione
L’emulatore non è perfetto. GimliDS utilizza una tecnica chiamata emulazione per linea, che consiste nell’eseguire una linea alla volta di CPU, grafica VIC, audio SID, e così via. Nel formato PAL, ci sono 312 scanline, di cui poco più di 200 sono effettivamente visibili sullo schermo.
Questo approccio è piuttosto comune tra molti emulatori (inclusi quelli dello stesso autore), ma non garantisce un’accuratezza assoluta, in quanto alcuni effetti del C64 dipendono da modifiche che avvengono all’interno di una singola scanline.
Molti giochi non sfruttano questi effetti avanzati, e di conseguenza funzionano quasi perfettamente su GimliDS.
Tuttavia, alcuni giochi fanno un uso parziale o esteso di questi “trucchi” temporali, il che può causare piccoli glitch grafici (come sfarfallii o righe instabili in alto o in basso allo schermo), problemi visivi più gravi o audio/musica compromessi.
In attesa di miglioramenti futuri dell’emulatore (senza però arrivare a una ciclo-accuratezza totale, che comprometterebbe la velocità) si possono sfruttare alcune soluzioni, tra cui l’opzione “CPU Adjustment” nelle impostazioni, configurabile per singolo gioco.
Particolarmente utile è l’impostazione CPU CYCLES adjustment, che permette di variare il numero di cicli CPU disponibili per ogni scanline, da -9 a +9, con il valore predefinito su 0 (nessuna modifica).
Questo aiuta a riequilibrare il sincronismo tra CPU, VIC e SID, che possono andare leggermente fuori fase man mano che il raggio di scansione percorre lo schermo.
Va usata con cautela: un valore troppo alto o troppo basso può causare instabilità o crash del gioco.
In pratica, se un gioco non mostra glitch grafici, non è necessario intervenire. Ma, ad esempio, nel caso di Gauntlet, dove la “G” del secondo giocatore in basso a sinistra lampeggia, si può ridurre il problema impostando CPU CYCLES a +2 o +3.
Con +5 il difetto scompare del tutto e l’immagine risulta stabile. La regola è: modificare solo quanto basta per eliminare l’anomalia, senza esagerare.
In generale:
- Se il problema grafico è in alto nello schermo, provare con valori negativi.
- Se il problema è in basso, provare con valori positivi.
Modifiche specifiche per alcuni giochi
Per ottenere le migliori prestazioni possibili di alcuni giochi popolari sul buon vecchio Nintendo DS, si consiglia di applicare i seguenti accorgimenti:
- Gauntlet – impostare CPU CYCLES a +5 per eliminare i glitch grafici sulla lettera “G”.
- Bruce Lee – impostare CPU CYCLES a +4 per ridurre i difetti grafici legati alle scanline.
- Turrican I – impostare BAD CYCLES a -6. Ci saranno alcune corruzioni grafiche nella schermata del titolo, ma il gioco si presenterà e funzionerà correttamente (e soprattutto sarà possibile avviarlo!).
- Turrican II – richiede True Drive attivato (oppure va caricato da cartuccia).
- Lode Runner – richiede True Drive attivato (oppure va caricato da cartuccia).
- LED Storm – impostare CPU CYCLES a +4 per eliminare un difetto grafico nella parte alta dello schermo.
Changelog
- Nuova modalità True Sync a 50Hz che cambia il refresh nativo del DS da 60Hz a 50Hz e sincronizza l’emulazione per un’esperienza quasi senza tearing.
- Nuovo sistema di Preferiti implementato – premere SELECT nella selezione del gioco per attivare LIKE/LOVE.
- Migliorata la precisione del timing della CPU per i ‘cicli presi in prestito’, i cicli del floppy, ecc.. Più giochi funzionano correttamente.
- Migliorata la sincronizzazione dell’emulazione SID – DS-Lite ottiene un miglioramento sonoro e su DSi è stato corretto un bug per un rendering migliore.
- Ristrutturazione completa delle opzioni di configurazione, tutte le impostazioni vengono azzerate con questa release.
- Le modifiche di configurazione permettono di premere e tenere il D-PAD per modifiche rapide, come la mappatura dei tasti.
- Premendo
nella configurazione è possibile ripristinare i valori di fabbrica solo per quel gioco. - Nuova regolazione del timer CIA per piccoli aggiustamenti richiesti da alcuni giochi (es. Flying Shark, Mr. Heli).
- Nuova regolazione del timer FLOPPY per piccoli aggiustamenti richiesti da alcuni giochi (es. Dragon Wars ora funziona).
- Turrican I ora funziona… premere e tenere premuto il tasto SELECT del DS per 1-2 secondi per superare la schermata iniziale.
- Corretto l’errore “DS guru meditation” (crash) su alcuni caricamenti da disco (risolve problemi con giochi come Barnsley Badger).
- Piccoli ritocchi grafici alle icone dei dischi per lettura/scrittura.
- Leggera ottimizzazione che permette un frame aggiuntivo di prestazioni.
Download: GimliDS v1.5h
Download: blank.d64
Download: Source code GimliDS v1.5h








