Pubblicato un nuovo aggiornamento per ColecoDS Phoenix-Edition, l’emulatore della ColecoVision e frontend per diversi sistemi basati sul microprocessore Zilog Z80.
L’emulazione delle ROM ColecoVision può essere eseguita posizionando il bios coleco.rom
nella stessa directory del programma oppure in /roms/bios
o /data/bios
.
Il programma supporta anche l’emulazione MSX, dell’home computer Memotech MTX, dell’home computer Spectravideo SV-328, il modulo Super Game Module (SGM), la periferica di espansione Coleco ADAM e i giochi MegaCart più grandi di 32K.
Per poter emulare i giochi dell’home computer Spectravideo SV-328, bisogna disporre del BIOS svi.rom
(da preferire il bios svi110.rom
o svi111.rom
, basta rinominare semplicemente il file in svi.rom
).
Questo nuovo aggiornamento include la risoluzione di un problema relativo alla gestione del quinto flag dello sprite TMS9918 VDP e un’ottimizzazione leggera del driver VDP.
Inoltre, è stato aggiornato il driver audio SN76496 all’ultima versione da FluBBa, insieme ad altre piccole modifiche e pulizie quando possibile.
Caratteristiche
- Supporto per giochi Colecovision (file
.rom
o.col
). Richiede il BIOScoleco.rom
. - Supporto del modulo Super Game incluso il chip audio AY.
- Supporto Megacart Bankswitching (fino a 1024K).
- Supporto per giochi Coleco ADAM (file
.ddp
o.dsk
). Richiedeeos.rom
ewriter.rom
. - Supporto per giochi Sega SG-1000 (rom
.sg
). - Supporto per i giochi Sega SC-3000 (rom
.sc
). - Supporto per giochi Sord M5 (rom
.m5
): richiede il BIOSsordm5.rom
. - Supporto giochi MSX1 (
.msx
o.rom
o.cas
o.dsk
) fino a 1024K. - Supporto Spectravideo SVI (
.cas
o.rom
) – richiede il BIOSsvi.rom
. - Supporto Casio PV-2000 (rom
.pv
): richiede il BIOSpv2000.rom
. - Supporto Hanimex Pencil II (rom .pen): richiede il BIOS
Pencil2.rom
. - Supporto Tatung Einstein (file
.dsk
o file runtime.com
): richiede il BIOSeinstein.rom
. - Supporto per giochi Memotech MTX (file
.mtx
o.run
o.com
) – solo giochi a caricamento singolo. - Supporto giochi Creativision (
.cv
) – richiede BIOSbioscv.rom
– supporta ROM fino a 32K. - Mappatura completa dei pulsanti del controller e input touch-screen.
- Supporto per i punteggi più alti: 10 punteggi per partita.
- Salva/Carica stato del gioco (uno slot).
- Modalità di fusione video (vedi sotto) e sincronizzazione verticale.
- Scambia schermo LCD (tieni premuti + + durante il gioco).
- Supporto overlay per i pochi giochi che ne hanno bisogno.
- Mappatura del Super Action Controller, dello Spinner e del Roller Controller (Trackball).
- Massima velocità, audio completo e frame rate completo anche su hardware meno recente.
Problemi noti
- Non più di 1024 file per directory: Dividi i file ROM secondo necessità.
- Il percorso e il nome file di una ROM non possono contenere più di 160 caratteri. Teneteli sul lato più corto.
- I giochi che utilizzano campioni vocali (Squish Em Sam, Wizard of Wor, ecc..) non riprodurranno il parlato a causa delle limitazioni dell’emulazione del suono.
- La versione originale di StarForce del 2011 si bloccherà: questo è un bug noto. Esiste una versione patchata del gioco StarForce su Atariage.
- L’inviluppo MSX, l’emulazione del suono e del rumore Einstein e Sord M5 CTC non sono perfettamente accurate (ma abbastanza vicine).
- Il chip audio MSX Konami SCC è parzialmente emulato ma non è perfettamente accurato (Gradius 2/3, Parodius, Salamander, ecc.. avranno musica ma l’intonazione non sarà perfetta – abbastanza buono).
File del BIOS
Questi sono gli hash CRC32 dei file BIOS utilizzati durante i test. Cerca questi se desideri ottenere la massima compatibilità:
3aa93ef3 coleco.rom (versione originale)
a30b0c34 coleco.rom (avvio più rapido)
94ee12f3 msx.rom (MSX) - vedi sotto per ulteriori opzioni
c3c590c6 bioscv.rom (Creativision)
a746eeb6 einstein.rom (Tatung Einstein)
338d7b59 pencil2.rom (Hanimex Pencil II)
8f31f297 pv2000.rom (Casio PV-2000)
92cf9353 sordm5.rom (Sord M5)
bc433df6 svi.rom (Spectravision)
05a37a34 eos.rom (ADAM)
58d86a2a writer.rom (ADAM)
Aggiunto il supporto per 4 ROM BIOS opzionali per MSX. Nonostante numerose ricerche online, non è stato possibile determinare con certezza quale specifica macchina rappresenti la msx.rom
onnipresente.
Questa ROM sembra essere una macchina europea generica e, attraverso confronti binari, è stata notata una notevole somiglianza con il Goldstar FC-200 o forse il Casio MX-15, con soli 11 byte di differenza in ciascuno.
A partire dalla versione 8.2, ColecoDS supporterà ulteriori 4 ROM BIOS MSX opzionali, come segue (con la possibilità di selezionarle nella configurazione e impostare un valore predefinito globale, se lo si desidera):
e9ccd789 cx5m.rom
– Rappresentante la macchina Yamaha UK/EU con 32K di RAM.5486b711 hx-10.rom
– Rappresentante la macchina Toshiba UK/EU con 64K di RAM.ee229390 hb-10.rom
– Rappresentante la macchina Sony HitBit JP con 16K di RAM (utilizzando la matrice giapponese).5ad03407 fs-1300.rom
– Rappresentante la macchina National JP con 64K di RAM (utilizzando la matrice giapponese).ee229390 pv-7.rom
– Rappresentante la Casio PV-7 con soli 8K di RAM. Se non è possibile trovare questo BIOS, è possibile utilizzarepv-16.rom
ohb-10.rom
come alternativa.
Per quanto riguarda msx.rom
, è possibile sostituire una delle seguenti macchine standard (e saranno cercate/trovate nell’ordine indicato):
15e503de cf-2700.rom
– Panasonic CF-2700 UK Machine con 64K di RAM in slot 3 (di solito slot 1).8205795e fc-200.rom
– Goldstar FC-200 European Machine con 64K di RAM in slot 3 (di solito slot 2).
Si consiglia di mantenere i nomi dei BIOS come indicato sopra. Nel caso in cui si trovino online con nomi più lunghi, solitamente funzioneranno correttamente.
Copiare questi BIOS nella directory del BIOS di default. Una volta selezionata una delle ROM BIOS opzionali nella configurazione, l’emulazione della specifica macchina MSX corrispondente sarà attivata.
Ciò implica che la RAM e gli slot di memoria saranno identici a quelli della macchina che si sta cercando di emulare. Per ulteriori dettagli, si può fare riferimento alla sezione MSX delle informazioni di riferimento.
Compatibilità ADAM
- L’ADAM emulato non è completamente esente da bug ma generalmente esegue la maggior parte delle immagini nastro (
.ddp
) o immagini disco (.dsk
). - L’ADAM emulato è un sistema da 128K (64K di memoria interna e 64K di RAM espansa), sufficiente per quasi tutti i giochi.
- A volte quando si carica un gioco ADAM il sistema non funziona… basta premere RESET e probabilmente verrà caricato.
- Per impostazione predefinita, la RAM viene cancellata quando si reimposta ADAM. In Game Config puoi modificare la cancellazione della memoria in “RANDOM” che potrebbe migliorare la capacità di caricare alcuni giochi.
- Se il gioco utilizza un disco CP/M, provare a modificare la cancellazione della memoria in “ADAM CPM”, il che aiuta.
- Puoi attivare la tastiera ADAM completa con la configurazione degli overlay (scegliere “ADAM KEYBOARD”). Non sono tutte le chiavi ADAM, ma dovrebbero essere sufficienti per giocare.
- Le immagini del nastro o del disco NON vengono riscritte automaticamente sulla scheda SD… devi premere la piccola icona della Cassetta per far sì che ciò accada (e solo quando il nastro/disco è inattivo – non verrà salvato se il nastro/disco è impegnato a leggere/scrivere).
- Se un gioco ADAM non si carica al primo tentativo, ripristinalo. Di solito si carica al secondo tentativo. Vai a capire.
Compatibilità MSX
Considerando che si tratta di un emulatore Colecovision, il supporto e la compatibilità di MSX1 sono ragionevolmente elevati.
In Game Options è possibile notare come il Mapper MSX predefinito sia impostato su “GUESS”, il che fa un buon lavoro nel caricare la ROM, specialmente per giochi da 32K o più piccoli. Tuttavia, se un gioco non funziona, è possibile provare questi suggerimenti:
- Un piccolo numero di giochi non funziona con il C-BIOS open source. In questo caso avresti bisogno di un vero BIOS
msx.rom
. Puoi configurarlo in Game Options. - La maggior parte dei giochi da 64K utilizza il mappatore di memoria ASC16, quindi puoi provare quello… ma alcuni (ad esempio Mutants from the Deep) sono mappati in modo lineare da 0-64K e dovrai selezionare LINEAR64 in Game Options.
- Il rilevamento automatico sui mapper KONAMI8 e KONAMI-SCC è abbastanza buono… ma molti altri giochi che usano ASCII8 o ASCII16 non vengono rilevati bene: dovresti provare quei mapper se il gioco “più grande di 64K” non funziona.
- Alcuni dei giochi davvero grandi (128K o più grandi) funzionano lentamente: se non ottieni il frame rate completo, puoi provare a passare al core DrZ80 (non tutti i giochi funzioneranno con questo) e/o puoi disabilitare la sincronizzazione verticale e/o abilitare Frame Skip. Ti consigliamo di disattivare la sincronizzazione verticale almeno per ottenere la massima velocità dai giochi MSX di grandi dimensioni.
- Occasionalmente una ROM non verrà eseguita, ma potrebbe essere un dump alternativo. Ad esempio, la versione 384K di R-Type è un po’ un pasticcio da gestire per l’emulatore, ma qualcuno ha creato una versione 512K pulita che si carica e funziona alla grande.
- Con un po’ di diligenza nel provare diverse combinazioni di mappatura/BIOS, dovresti essere in grado di ottenere una percentuale di esecuzione del 97% sui giochi MSX1.
- I giochi MSX2 non sono supportati e non verranno eseguiti.
La memoria MSX è strutturata come segue:
SLOT0: MSX BIOS (first 32K)
SLOT1: Cartridge Slot
SLOT2: Empty (0xFF)
SLOT3: RAM (64K)
Compatibilità Memotech MTX
Il Memotech MTX funziona a 4MHz, che è più veloce del Colecovision (e MSX, M5, SG, ecc..). Questo è abbastanza ben emulato, anche se il suono non è perfetto a causa di alcune differenze di temporizzazione del chip CTC rispetto all’hardware reale.
Inoltre, solo l’80% circa dei giochi viene caricato ed eseguito correttamente: alcuni giochi utilizzano caricatori più complessi e non sono ben supportati dal ColecoDS.
A volte dovrai eseguire un dump alternativo [a1] o [a2] di un gioco per farlo funzionare correttamente. Dei due tipi (.mtx
e .run
), i file .RUN
generalmente sono supportati meglio: cerca quelli (l’eccellente emulatore MEMU MTX ha una buona selezione).
C’è il supporto per il progetto MTX MAGROM… questo è un multi-carrello. Puoi usare 1.05 o 1.05a del file binario MAGROM 512K… rinominalo semplicemente come .MTX
e caricalo avviando il gioco e premendo il pulsante per avviare il menu.
L’MTX emulato è un sistema MTX-512 di base con 64K di RAM… Ciò dovrebbe consentire l’esecuzione della maggior parte dei giochi.
Una volta che il gioco viene caricato in memoria, verrà visualizzato il prompt BASIC. A questo prompt è necessario digitare LOAD ""
(se .MTX
) o digitare RUN
(se .RUN
).
Basta premere il tasto DS per inserire automaticamente il comando corretto. In alternativa, troverai i comandi RUN
nel menu dell’icona della cassetta.
Compatibilità Spectravideo SVI
Questo emulatore supporterà i file .cas
per Spectravideo SV-328 (macchina 64K), è possibile utilizzare i pulsanti e per i comandi bload ed esecuzioni comuni.
Compatibilità Sega SC-3000
Questo emulatore supporta i file .sc
solo come ROM (non cassette) ma ColecoDS supporterà gli incredibili SC-3000 Survivors Multi-Cart e MEGA-Cart.
Preferisco decisamente il Multi-Cart in quanto è più piccolo e contiene la stessa selezione di giochi su nastro. Rinominare il file binario da 2 MB o 4 MB come .sc
per caricarlo in ColecoDS.
Compatibilità Casio PV-2000
Questo emulatore supporta i file .pv
solo come ROM (non cassette). Rinominare tutti i file .bin
che trovi come .pv
in modo che l’emulatore li carichi correttamente.
Compatibilità Hanimex Pencil II
C’è solo un gioco conosciuto scaricato in questo momento: Treasure Hunt. Fortunatamente è un gioco divertente! Sfortunatamente, è arrivato su 2 chip ROM. Quindi devi “incollare” le due ROM insieme.
Se riesci a trovare una “Software List” MAME in ritardo dal 2020 o successiva, troverai Treasure.zip
che contiene due file ROM: pen702a.bin
(8k) pen702b.bin
(4k) Devi incollarli insieme.
- In Windows utilizzare la riga di comando:
copy /b pen702a.bin + pen702b.bin TreasureHunt.pen
- In Linux utilizzare la riga di comando:
cat pen702a.bin pen702b.bin > TreasureHunt.pen
Questo dovrebbe lasciarti con una ROM da 12k chiamata TreasureHunt.pen
che ora è riproducibile sul sistema ColecoDS.
Compatibilità Tatung Einstein
Viene emulata la macchina base 64K. Al momento verranno riprodotti solo i file .COM
. Nelle interwebs, è possibile trovare principalmente solo file .dsk
e file .COM
che devono essere estratti da essi. Il modo più semplice è utilizzare uno dei seguenti programmi:
L’utility dsktool da: https://github.com/charlierobson/einsdein-vitamins oppure EDIP v1e che è possibile trovare nella cartella degli extra nella pagina github di ColecoDS.
Con uno di questi strumenti, dovreste essere in grado di estrarre più di 50 giochi .COM
attualmente funzionanti. Una futura versione dell’emulatore supporterà direttamente i file .DSK
, ma è complicato.
Controller
Se si preferisce è possibile mappare i pulsanti sui controller P1 o P2, è inoltre disponibile il supporto completo per Spinner X (P1) e Spinner Y (P2) o mappare entrambi per ottenere supporto per i giochi di trackball.
Funzionano anche per giochi come Turbo Steering, è possibile modificare la sensibilità dello spinner su una delle cinque diverse impostazioni (Normal, Fast, Fastest, Slow, Slowest).
Per l’emulazione MSX, la tastiera ColecoVision è mappata come segue:
1 2 3
4 5 STOP
M1 M2 M3
SPC 0 RET
Dovrebbe essere sufficiente per far funzionare la maggior parte dei giochi da carrelli MSX1… In Game Options è possibile sostituire anche il tasto “5” per essere mappato in qualsiasi altro tasto MSX.
Blend Mode (DSi)
La modifica più interessante la troviamo nella nuova “modalità blend” proveniente dall’emulatore StellaDS. In questa modalità, due fotogrammi vengono fusi insieme, utile quando si eseguono giochi come Space Fury o Galaxian dove i proiettili sullo schermo sono larghi appena 1 pixel.
Questi giochi sono stati progettati per funzionare su di un vecchio televisore a tubo catodico con fosforo che decade lentamente in modo che l’occhio possa vedere lievi tracce mentre l’immagine svanisce.
Su console DSi l’utilizzo di questa nuova modalità renderà questo tipo di giochi davvero luminosi e visibili.
Il DSi XL/LL ha un refresh più lento sul display LCD e si avvicina di più ai vecchi televisori a valvole… quindi la modalità blend non è necessaria per i modelli XL/LL.
Tuttavia, l’utilizzo della modalità blend ha un costo della CPU del 25%. Il DSi può gestirlo, mentre il DS-LITE/PHAT potrebbe avere difficoltà con i giochi più complicati.
Quindi la mia raccomandazione è la seguente:
- DSi non XL/LL – Utilizzare la modalità Blend per i giochi che ne traggono vantaggio (Space Fury, Galaxian, ecc..).
- DSi XL/LL – Non preoccuparti… il decadimento dello schermo XL/LL è più lento e i giochi sembrano fantastici così com’è.
- DS-LITE/PHAT – Puoi provarlo ma il framerate potrebbe scendere sotto i 60 in alcuni giochi.
Per abilitare questa nuova modalità blend, scegliere il gioco e andare nel sottomenu “Game Options” per attivarlo.
Vertical Sync
La sincronizzazione verticale forzerà l’aggiornamento (aggiornamento) dello schermo quando il DS va nello spazio vuoto verticale. Ciò riduce lo strappo e gli artefatti grafici minori, ma ha anche un costo in termini di velocità.
Il DSi può gestirlo per quasi tutti i giochi (Princess Quest è un gioco in cui potresti disattivarlo) ma il DS può gestirlo solo per i giochi più semplici. Quindi per impostazione predefinita è abilitato per DSi e disabilitato per DS-LITE/PHAT. Puoi attivarlo nelle “Game Options” (e START=SALVA come desideri).
Una storia di due core
ColecoDS supporta 2 diversi core della CPU Z80. DrZ80 è molto veloce ma non è accurato al 100%, quindi alcuni giochi non funzionano correttamente. CZ80 è il 10% più lento ma è molto più vicino al 100% di precisione e i giochi generalmente funzionano alla grande.
Per DSi e versioni successive, il core CZ80 è l’impostazione predefinita. Per DS-LITE/PHAT, il core DrZ80 è l’impostazione predefinita.
Puoi attivare questa opzione (e salvare in base al gioco) in GAME OPTIONS. Se vuoi utilizzare il core CZ80 ma hai bisogno di un po’ più di velocità per rendere i giochi giocabili, puoi anche giocare con le impostazioni di Vertical Sync e Frame Skip.
Il bisogno di velocità
Se un gioco non funziona alla giusta velocità o ha periodi di rallentamento (non attribuiti al gioco reale), ecco le cose che puoi provare nell’ordine in cui le proverei personalmente:
- Disattivare Vertical Sync.
- Attivare Frame Skip.
- Settare Max Sprites su 4.
- Passare al core della CPU veloce DrZ80.
Changelog
- Corretto il problema relativo alla gestione del quinto flag dello sprite TMS9918 VDP e leggera ottimizzazione del driver VDP.
- Aggiornato all’ultimo driver audio SN76496 da FluBBa.
- Altre piccole modifiche e pulizie come permesso dal tempo.
Download: ColecoDS Phoenix-Edition v9.3
Download: Blank.cas
Download: cbios.txt
Download: Source code ColecoDS Phoenix-Edition v9.3
Fonte: gbatemp.net