BrMSX
the Brazilian MSX Emulator
by Ricardo Bittencourt

"Inizia dall'inizio", disse
il Re, "e continua finché
arrivi alla fine: allora fermati."

(Lewis Carroll)
Il BrMSX è un emulatore di MSX 1 per DOS.

Oggigiorno, qualsiasi bambino sa cosa sia un emulatore. Cosa sia un MSX, beh, questa è un'altra storia.

L'MSX è il miglior computer a 8 bits già creato. La prima versione usa un Zilog Z80 a 3.57 MHz ed offre parallelismo reale, con tre processori secondari. Il Texas TMS9928 controlla il video e da origine alle interruzioni. Il GI AY-3-8912A controlla la parte sonora e i joysticks. L'Intel 8255 controlla l'hardware restante, come la stampante, il memory manager e la tastiera.

L'MSX fu prodotto in molti paesi. Fu un successo nel Brasile, nel Giappone, in Spagna, in Francia, in Italia e la lista continua. Ancora oggi, molti utenti sono convinti che l'MSX è migliore che un normale PC. E io sono uno di questi.

L'MSX ha molto carisma. È stato il computer più potente della sua epoca, influenzando un'intera generazione di futuri ingegneri e scienzati di tecnologia. Con l'MSX, quasi tutti erano programmatori. Era molto facile, ognuno poteva produrre del software per lui. E questa è una cosa che il PC non riuscirà mai a raggiungere.

E, ovviamente, ci sono i giochi! L'MSX ha molti grandi giochi, prodotti dalla Konami, Compile, Namco, Falcom, molti convertiti dagli arcade, giochi vizianti che non dimenticherai mai!

Purtroppo, l'MSX non è più prodotto. I suoi vecchi utenti possedono ancora i loro calcolatori, ma i nuovi utenti non possono sfruttare l'allegria dell'MSX.

Fino ad oggi. Fino al BrMSX.

Con il BrMSX puoi utilizzare il tuo PC per avere un esempio della grandezza dell'MSX. Puoi giocare, puoi programmare nel suo BASIC, puoi utilizzare il suo debugger per imparare assembly. Potrai diventare un membro della comunità MSX.

Ma, prima di cominciare questa indimenticabile esperienza con l'MSX, è meglio imparare qualcosa su questo emulatore. Leggi questo manuale dall'inizio alla fine: solo allora fermati ed usa il BrMSX.

Voglio lasciare questo emulatore il più preciso e veloce possibile. Se trovi qualche bug, o se vuoi darmi qualche suggerimento, mandami una e-mail. L'indirizzo è ricardo@lsi.usp.br. Forse vorrai dare un'occhiata alla pagina ufficiale ogni tanto, dopotutto nuove versioni sono disponibilizzate molto frequentemente. L'indirizzo è http://www.lsi.usp.br/~ricardo/brmsx.htm

Ovviamente puoi viziarti così tanto con l'MSX che vorrai comprare un computer vero. Ci sono gruppi di utenti che possono vendertene uno usato. Nella pagina del BrMSX troverai le pagine di molti gruppi di MSX.

In bocca al lupo!

Versione attuale: 1.145


Risorse Richieste

Il BrMSX richiede un processore 386 o superiore, perché è stato scritto in assembly 100% a 32-bits. Il computer più lento che ho potuto utilizzare è un 486sx25, e il BrMSX funziona con tutti i frames in questo. Alcuni giochi sono eseguiti con velocità totale in un 386dx40.

Il BrMSX richiede 2Mb di memoria RAM, 4Mb se vuoi utilizzare emulazione di disco.

Il BrMSX può utilizzare processori Pentium e processori MMX utilizzando tutte le loro caratteristiche speciali.

Un VGA con 256kb di VRAM è richiesto. Per attivare l'emulazione di TV hai bisogno di un Super VGA con driver VESA 2.0.

L'emulazione del suono richiede una Sound Blaster con DMA auto-initialized in 45455 Hz, o scheda 100% compatibile. Se non hai una Sound Blaster, puoi attivare il suono del PC Speaker.

Giochi multiplayer richiedono due computer con UARTs che sopportino 57600 bauds.

Il BrMSX è stato scritto per essere eseguito sotto DOS 6.22. Funzionarà sotto Windows 3.11 e Windows 95, ma non funzionarà sotto Windows NT. Alcune opzioni non funzioneranno sotto Windows.


Caratteristiche

Il BrMSX è stato scritto per emulare un Expert 1.0 brasiliano. Possiede molte caratteristiche notabili:

  • Emulazione precisa del Z80. Il BrMSX è l'unico emulatore di MSX che è approvato in tutti i test del ZEXALL del Z80. Il BrMSX emula tutti gli opcodes non documentati, ed anche tutti i flags non documentati. Il BrMSX emula caratteristiche non documentate del VDP e del PSG.

  • Emulazione del drive di porte. Il BrMSX è l'unico emulatore di MSX che riesce ad eseguire softwares brasiliani come il Super Disk Copy e il Chave Mestra.

  • Emulazione della memoria espansa brasiliana MegaRAM. Il BrMSX è l'unico emulatore di MSX che riesce ad eseguire completamente l'ExecROM.

  • Emulazione del suono basata sulla sintesi digitale in forma d'onde, il BrMSX è l'unico emulatore di MSX che riesce a riprodurre samples PCM in giochi come Super Laydock, Fuzzball e Oh Shit!.

  • Emulazione dei LEDs, il BrMSX è l'unico emulatore di MSX che utilizza correttamente il LED del CapsLock nella tastiera.

  • Emulazione della TV e del monitor a fosforo verde, il BrMSX è l'unico emulatore di MSX che utilizza risoluzione VESA 2 con scanlines e filtri low-pass.

  • Giochi multiplayer, il BrMSX è l'unico emulatore di MSX che permette l'utilizzo da parte di due giocatori allo stesso tempo in computer diversi.

  • Emulazione veloce, il BrMSX è il più veloce emulatore di MSX.

  • Un grande debugger con esecuzione passo-a-passo e capacità di leggere tutte le informazioni dell'hardware.

  • Molte altre caratteristiche notabili come una GUI, salvare e caricare lo stato del calcolatore in qualsiasi momento, sopporto completo per le ROM coreane, e molte altre!


    Opzioni di Prompt

    Il BrMSX può essere eseguito dal prompt MS-DOS con questa sintassi:

    brmsx [CartA.ROM] [CartB.ROM] [opzioni]
    
    Tutto è opzionale, fuori quel brmsx all'inizio. Se nessun parametro è utilizzato, il BrMSX inizierà con un'emulazione standerd della BIOS e del BASIC.

    Le cartucce possono essere semplici ROM di 16Kb, iniziando in 0000h, 4000h, 8000h; cartucce BASIC di 16Kb iniziando in 8000h; cartucce di 32Kb iniziando in 4000h o cartucce MegaROM (sette mappers sono sopportati).

    Se nessuna cartuccia è specificata al prompt, una MegaRAM con 256Kb è inserita nello slot 1. La RAM normale del BrMSX è una Memory Mapper con 128Kb.

    Puoi utilizzare due cartuccie allo stesso tempo. Questo è molto utile per programmi residenti come il Mega-Assembler, ed anche per le combinazioni di cartucce. Puoi trovare altre informazioni nella sezione Combinazione di Cartucce.

    Ci sono molte opzioni nel prompt. Tutte iniziano con un "-" e devono essere sempre utilizzare con lettere minuscole. Alcune hanno bisgno di un parametro che deve essere inserito dopo la opzione, separati da uno spazio.

    Le opzioni seranno presentate in blocchi funzionali:

    Opzioni della CPU

    -normal Questa opzione seleziona una velocità normale di un MSX Expert. Il Z80 funzionerà alla velocità di 3.57 MHz e le interruzioni arriveranno a 60 Hz. Questa è l'opzione default.
    -fast In questo modo, le interruzioni continuano ad arrivare alla velocità di 60 Hz, ma il Z80 funzionerà il più veloce possibile (la velocità massima di emulazione dipende dalla velocità del tuo computer). Nel mio AMD-K6 233Mhz, questo significa che il Z80 funziona ad una velocità di 65 MHz (molto più veloce che un Turbo-R). Questo modo è utile per le compilazione nell'MSX e per accelerare il BASIC. Il suono è disattivato in questo modo.
    -turbo In questo modo, tutto funziona alla velocità massima. Però, la proporzione degli opcodes emulati per interruzione virtuale è uguale a quella di un MSX a velocitè normale. Questo modo è utile per saltare le presentazioni dei giochi e, ovviamente, per mostrare come il BrMSX è veloce.

    Opzioni di Memoria

    -roma <mapper> Questa opzione seleziona il tipo di MegaROM Mapper utilizzato dalla cartuccia inserita nello slot A. I tipi sopportati sono il #0, #2, #3, #4, #5, #6 e #7, il BrMSX cerca sempre di scoprire da solo il tipo di Mapper se questa opzione non è utilizzata. Per altre informazioni, puoi leggere la sezione MagaROM Mappers. Se il gioco ha una SRAM con batteria questa memoria sarà salvata nel disco con l'estensione ".SRM".
    -romb <mapper> Questa opzione funziona come la prima, ma è utilizzata per lo slot B.
    -ramslot <slot> Questa opzione seleziona lo slot della RAM. Puoi utlizzare gli slots 2 e 3. L'Expert originale ha la RAM nello slot 2, perciò questo è il valore default. Puoi avere bisogno di cambiare lo slot della RAM in due casi: primo, se vuoi emulare fedelmente un Hotbit, secondo, se hai un gioco con un loader mal programmato, e questo richiede che la RAM sia nello slot 3. Puoi trovare altre informazioni nella sezione Eliminando Problemi.
    -korean Questa opzione attiva il layout di memoria degl'MSX coreani. Hai bisogno delle ROMs coreane: un MSX.ROM e un MSXHAN.ROM coreani. Quest'ultima ROM sarà caricata nella pagina 2 (8000h) dello slot 0.

    Opzioni di Video

    -win Questa opzione attiva la pipeline di video più lenta del BrMSX. Questa è l'unica pipeline che funziona senza problemi sotto Windows e in computers senza MMX. Siccome è la più compatibile di tutte, è l'opzione default.
    -dos Questa opzione attiva una pipeline di video più veloce, ma non funziona in sistema multitasking come Windows. Se hai un 486 con DOS, devi utilizzarla per ottenere i migliori risultati.
    -mmx Questa opzione attiva la più veloce delle pipeline di video. Utilizza le istruzioni SIMD dei processori MMX per ottenere una velocità impressionante. Funziona sotto Windows 95, ma non sotto Windows 3.11.
    -res <n> Questa opzione seleziona la risoluzione video che il BrMSX utilizzerà. I valori possono essere 0 (320x200), 1 (256x200), 2 (512x256) e 3 (256x192). La risoluzione 0 è quella default e funzionerà con qualsiasi scheda VGA. La risoluzione 1 utilizza un "trucco" nella VGA per utilizzare tutto lo schermo, ma può non funzionare in tutti i monitor. La risoluzione 2 richiede una SuperVGA con driver VESA 2.0, ma torna possibile l'utilizzazione della incredibile emulazione di TV, con scanlines e filtro low-pass. Anche la risoluzione 3 utilizza un "trucco" della VGA, ma è pi&grave; compatibile che la risoluzione 1 ed ha pixel quadrati.
    -vsync Questa opzione attiva la sincronizzazione con retrace verticale. Questo può tornare l'emulazione un po' più lenta, ma alcuni giochi ne hanno bisogno per avere uno scroll soave (come il Rally-X), o per avere una transizione soave di palette (come in Penguin Adventure).
    -green Questa opzione attiva l'emulazione di un monitor verde. Tutto sarà esibito in toni verdi. Utilizzato assieme con l'emulazione di TV, è una riproduzione perfetta del monitor originale della Gradiente.
    -frame <n> Questa opzione permette specificare il frame skipping. Il valore defualt 1 significa che tutti i frames saranno disegnati. Se il BrMSX è un po' lento, aumenta questa numero. Comunque, il valor default è sufficiente per avere velocità totale in un 486sx25 (ed anche in alcuni 386dx veloci!!!)
    -allspr Questa opzione disabilita l'occultamento del quinto sprite. Questo è utile per ridurre il flickering in giochi come Zanac e Nemesis, ma possono produrre errori nei giochi come Antartic Adventure e Parodius.
    -nocache Questa opzione disattiva il video cache. Questo rallenta molto l'emulazione, ma deve essere utilizzata se il video cache non funziona. Puoi trovare altre informazioni nella sezione Eliminando Problemi.
    -cpugraph Questa opzione attiva il grafico della CPU, che indica quanto tempo il tuo computer impiega in ogni passo dell'emulazione. La prima barra indica il tempo impiegato nell'emulazione del Z80. La seconda il tempo impiegato per disegnare il background e la terza quello impiegato per disegnare gli sprites. La quarta quantifica il tempo impiegato copiando i dati dalla RAM principale alla RAM della scheda video. La quinta barra è l'overhead del proprio grafico. Puoi utilizzare questa opzione per scegliere le migliori opzioni di emulazione. Questa opzione funzionarè solamente in computers con RDTSC, come i processori Pentium.
    -psggraph Questa opzione attiva il grafico del PSG, un grafico un po' curioso con le amplitudini di ogni canale sonoro. Vedrai tre barre per il PSG ed altre cinque se l'SCC è attivato.

    Opzioni Sonore

    -nosound Disattiva il suono. Utile se il computer va in crash quando cerca la Sound Blaster o se stai giocando Nemesis al lavoro...
    -scc Attiva l'emulazione dell'SCC. Questo non è attivato per default, perché l'emulazione dell'SCC non è ancora perfetta. Funziona solamente con i Mappers #0 e #2.
    -speaker Attiva il suono attraverso il PC Speaker. Lo speaker può riprodurre tutti e tre i canali del PSG allo stesso tempo grazie ad un algoritmo speciale di multiplessione temporale.

    Opzioni di I/O

    -diska <f.dsk> Attiva l'emulazione del disk-drive e utilizza f.dsk come immagine di disco. Le immagini di disco devono essere nel formato .DSK, e possono essere di quattro tipi: 40 tracks / 1 side (180kb), 40 tracks / 2 sides (360 kb), 80 tracks / 1 side (360kb) e il comune 80 tracks / 2 sides (720 kb). Le immagini di disco create con COPY /B non sono ancora sopportate.
    -disklow Emulazione di disco con le porte I/O D0h-D4h. Questa opzione è attivata per default, e funziona solamente con DISK.ROM di porte di origine brasiliana. Molti programmi brasiliani hanno bisogno di questa opzione, come il Super Disk Copy, Hello, Chave Mestra e la versione in disco di Robocop.
    -diskhigh Emulazione di disco attraverso di patches nel BDOS. Questa opzione funziona con quasi tutte le DISK.ROM, ma è più limitata che l'anteriore. Solamente .DSK di 720Kb possono essere utilizzati, e il LED del drive non sarà emulato.
    -tape <t.cas> Attiva l'emulazione delle cassette grazie a patches nella BIOS, ed utilizza t.cas come immagine della cassetta. L'emulazione di cassette è ancora limitata in questa versione, l'immagine totale della cassetta non può avere pi&grave; di 64Kb.
    -joy Attiva l'emulazione del joystick. Il joystick sarà inserito nella porta A (nella maggior parte dei casi questo significa il giocatore 1). Se vuoi cambiarlo nella porta B, leggi nella sezione Debugger per imparare come si fa. Il joystick è calibrato automaticamente all'inizio, perciò non devi toccarlo quando l'emulazione cominciare.
    -joysens <n> Seleziona la sensibilità del joystick. I valori possibili vanno da 0 a 7, e il valore default è 3. Utenti di joypads devono provare prima questa opzione per ottenere più precisione.
    -fakejoy Utilizza la tastiera come porta A del joystick, con questa opzione puoi utilizzare i giochi che hanno bisogno di joystick (come Gaunlet). L'emulazione funziona così: Tasti Direzione=Direzione, Control Sinistro=Fuoco 1, Alt Sinistro=Fuoco 2.
    -autofire Questa opzione attiva lo sparo automatico (pressiona lo spazio continuamente). Questo è ottimo per giocare giochi come Gall Force.
    -autorun Questa opzione è similare all'ultima, però pressiona "fraccia sinista" e "freccia destra" continuamente. Utilizza questa opzione per giochi sportivi come Decathlon e Hyper Sports. Per correre, pressiona "freccia destra" e "freccia sinistra" allo stesso tempo.
    -autospeed <n> Seleziona la velocità per "-autofire" e "-autorun". I valori vanno da 0 (velocissimo) e 9 (lento). Il valore default è 5.

    Opzione per il Multiplayer

    -server Seleziona questo computer come server. Solo il monitor del server mostrerà la schermata dell'MSX. Devi utilizzare sempre il computer più veloce come server.
    -client Seleziona questo computer come client. La tastiera di questo computer funzionerà come joystick B dell'MSX. La velocità di questo computer non è importante, puoi utilizzare anche un 386 lento come client BrMSX.
    -com <port> Seleziona la porta COM dov'è cavo seriale. Questa opzione deve essere specificata nei due computer. Puoi trovare altre informazioni nella sezione Multiplayer.

    Opzioni di Controllo

    -nomouse Disattiva il mouse driver. Devi utilizzarla se hai dei problemi con lo stesso. Senza mouse non potrai utilizzare la GUI.
    -novesa Disattiva il VESA. Devi utilizzarla se hai problemi con il driver video. Senza VESA 2.0, non potrai utilizzare l'emulazione di TV.
    -noled Disattiva l'emulazione dei LED. Devi utilizzarla se la tastiera comincia a perdere digitazioni.
    -nopentium Disattiva tutte le estensioni Pentium e di ricerca della CPU. Devi utilizzarla se la ricerca manda il computer in crash. Senza Pentium non potrai utilizzare il grafico della CPU.
    -noenter Disattiva la necessita di pressionare ENTER all'inizio. Utile per autori di front-ends.
    -help Mostra una piccola schermata di aiuto.


    Dentro dell'Emulazione

    L'MSX ha alcuni tasti che non esistono nel PC. L'emulazione di queste è mostrata sotto:

    tasto dell'MSX
    tasto del PC
    LGRA (GRAPH) Left ALT
    RGRA (CODE/KANA) Right ALT
    STOP Page Up
    SELECT Page Down
    HOME/CLS Home
    '`^~ `~
    Ç End

    Anche i LEDs della tastiera sono emulati:

    MSX LED
    PC LED
    Caps Lock Caps Lock
    Kana Num Lock
    Drive in uso Scroll Lock

    Alcuni tasti hanno un significato speciale:

    F6 Rewind the cassette
    F9 Salva uno screenshot nel file BRMSX.PCX
    F10 Entra nel debugger
    F12 Entra nella GUI
    + (keypad) Aumenta il volume
    - (keypad) Diminuisce il volume

    La GUI può anche essere richiamata con un click del pulsante sinistro del mouse.


    Graphic User Interface

    È molto facile usare la GUI (dopotutto, questa è l'idea!)

    Il menu appare nella parte sinistra del video, e devi utilizzare il mouse e il suo pulsante sinistro per scegliere una opzione. Fai click in qualsiasi parte del video fuori di una finestra per ritornare all'emulazione.

    Le opzioni della GUI sono:

    Reset Resetta il computer. Questo è un soft-reset, perchè non pulisce le memorie RAM e VRAM.
    Turn OFF Per spegnere il computer. Questo funziona come il reset, però pulisce le memorie RAM e VRAM. Devi far click su Turn ON per ritornare all'emulazione.
    Load ROM Questa opzione carica una nuova cartuccia nello slot A. Le ROMs devono essere nella stessa directory del BrMSX.
    CPU Graph Questa opzione spegne o accende il Grafico della CPU.
    PSG Graph Questa opzione spegne o accende il Grafico del PSG.
    Save state Questa opzione salva lo stato del computer in un file chiamato BRMSX.STA. Questo è ottimo per finire quel gioco!
    Load state Carica uno stato che salvato anteriormente.
    Quit Ritorna all'MS-DOS.


    Debugger

    Se pressione ESC all'inizio, o F10 durante l'emulazione, entrerai nel Fudebug (Full Debugger). Non spiegherò cosa c'è in tutta questa schermata. Se non sai cosa c'è nella schermata non hai bisogno del debugger.

    Il Fudebug è molto utile per la programmazione in MSX. I commandi hanno sempre una sola lettera, ed alcuni hanno bisogno di parametri. Attento quando scegli i parametri, perché non c'è il backspace. I valori devono essere sempre in esadecimale.

    I commandi sono:

    S Ritorna all'emulazione.
    Q Ritorna all'MS-DOS.
    F7 Esegue una unica istruzione del Z80.
    F8 Esegue sopra una istruzione del Z80. Utile per saltare istruzioni CALL e RST.
    U dddd Disassembla a partire dall'indirizzo dddd.
    D dddd Fa un dump della memoria a partire dall'indirizzo dddd.
    Page Up Sale una pagina del dump.
    Page Down Scende una pagina del dump.
    E dddd xx Modifica il byte dell'indirizzo dddd, con il valore xx.
    B dddd Ricomincia l'emulazione con un breakpoint nell'indirizzo dddd.
    F2 Salva lo stato del computer nel file BRMSX.STA
    F3 Carica lo stato del computer dal file BRMSX.STA
    1 Seleziona la schermata di debug 1.
    2 Seleziona la schermata di debug 2.
    0 Mostra la schermata dell'MSX.
    M Seleziona il modo di emulazione (normal, fast, turbo)
    Y Accende o spegne il VSync.
    V Cambia la risoluzione (320x200, 256x200, 512x384, 256x192)
    J Cambia l'emulazione del joystick tra Porta-A, Porta-B e nessuna porta.
    C Calibra il joystick nuovamente.
    F1 Mostra la schermata di aiuto.


    Multiplayer

    Con il BrMSX, puoi giocare in modo multiplayer con due computer e un cavo seriale. Il primo computer controlla la tastiera dell'MSX (giocatore 1), e il secondo il joystick B dell'MSX (giocatore 2).

    I tasti per il secondo giocatore sono:

    Tasti del giocatore 2 Significato
    Destra JOY-B Direita
    Sinistra JOY-B Esquerda
    Su' JOY-B Su'
    Giu' JOY-B Giu'
    Spazio JOY-B Fuoco 1
    M JOY-B Fuoco 2

    Per cominciare una sessione multiplayer, devi digitare nel computer più veloce: "brmsx -server -com 2", cambiando il "2" con il numero della porta seriale utilizzata, se necessario.

    Dopo, devi digitare nel client "brmsx -client -com 1", cambiando nuovamente il numero della porta COM se necessario. Questo inizierà l'emulazione in modo multiplayer. Solo il monitor del server mostrerà il video dell'MSX.

    Per chiudere una sessione, devi uscire prima dall'emulazione del client! L'ordine diverso può mandare i due computer in crash.

    Alcuni giochi per due giocatori simultanei sono: Konami's Soccer, Salamander, Konami's Ping Pong, Super Laydock, Yie Ar Kung Fu 2, Warroid, ed altri che adesso mi sfugge il nome.


    Combinazioni di Cartucce

    Il BrMSX permette utilizzare due cartucce allo stesso tempo. Questo è utile per i programmatori (puoi caricare il Mega-Assembler e il XBasic allo stesso tempo), ed anche ai giocatori.

    Molti giochi hanno opzioni secrete (cheat) quando inseriti con altre cartucce nel computer. Alcuni esempi sono:

  • Nemesis nello slot A e Twin Bee nello slot B: la tua nave diventerà un'Ape.

  • Nemesis 2 nello slot A e Penguin Adventure nello slot B: la tua nave diventerà un pinguino blu.

  • Nemesis 2 nello slot A e Q-Bert nello slot B: puoi pressionare "F1" e digitare le cheat LARS18TH e METALION.

  • Salamander nello slot A e Nemesis 2 nello slot B: un livello secreto apparirà dopo i tre pianeti, e potrai uccidere Venom e vedere l'happy end.


    MegaROM Mapper

    Il BrMSX sopporta tutti i tipi di MegaROM Mapper utilizzati nei giochi di MSX 1. Se il BrMSX trova il gioco nel suo database interno, allora il MegaROM mapper sarà scelto automaticamente. Sennò, sarà utilizzato il Mapper #0.

    I Mapper sopportati sono:

  • #0: MegaROM Generico com SCC

    Giochi: Animal Land, Super Laydock, Jagur, Vaxol, Mirai, Donkey Kong, Digital Devil Story, The Fairy Land Story, Final Zone, 3 Kingdoms, 1942.

    Indirizzo Blocco
    0000h-1FFFh 0000h-1FFFh
    2000h-3FFFh 2000h-3FFFh
    4000h-5FFFh 4000h-5FFFh
    6000h-7FFFh 6000h-7FFFh
    8000h-9FFFh 8000h-9FFFh
    A000h-BFFFh A000h-BFFFh
    C000h-DFFFh C000h-DFFFh
    E000h-FFFFh E000h-FFFFh
    9800h-9FFFh SCC

  • #2: Konami con SCC

    Giochi: Nemesis 2, Nemesis 3, Salamander, King's Valley, F1 Spirit, Parodius.

    Indirizzo Blocco
    5000h-57FFh 4000h-5FFFh
    7000h-77FFh 6000h-7FFFh
    9000h-97FFh 8000h-9FFFh
    B000h-B7FFh A000h-BFFFh
    9800h-9FFFh SCC

  • #3: Konami senza SCC

    Giochi: Nemesis, The Maze of Galious, Shalom, Penguin Adventure.

    Indirizzo Blocco
    <nessuno> 4000h-5FFFh
    6000h 6000h-7FFFh
    8000h 8000h-9FFFh
    A000h A000h-BFFFh

  • #4: ASCII 8kb

    Giochi: Valis - The Fantasm Soldier, Hydlide 3, Fantasy Zone, Dragon Slayer 4.

    Indirizzo Blocco
    6000h-67FFh 4000h-5FFFh
    6800h-6FFFh 6000h-7FFFh
    7000h-77FFh 8000h-9FFFh
    7800h-7FFFh A000h-BFFFh

  • #5: ASCII 16kb

    Giochi: Gall Force, Eggerland Mystery 2, Golvellius.

    Indirizzo Blocco
    6000h-6FFFh 4000h-7FFFh
    7000h-7FFFh 8000h-BFFFh

  • #6: ASCII 8kb con 8kb SRAM

    Giochi: Xanadu.

    Indirizzo Blocco
    6000h-67FFh 4000h-5FFFh
    6800h-6FFFh 6000h-7FFFh
    7000h-77FFh 8000h-9FFFh
    7800h-7FFFh A000h-BFFFh
    bloco=20h SRAM

  • #7: ASCII 16kb con 2kb SRAM

    Giochi: Hydlide 2.

    Indirizzo Blocco
    6000h-6FFFh 4000h-7FFFh
    7000h-7FFFh 8000h-BFFFh
    bloco=10h SRAM


    Layout della Memoria

    brmsx
    MSX.ROM MegaRAM RAM  
    MSX.ROM MegaRAM RAM  
      MegaRAM RAM  
      MegaRAM RAM  

    brmsx cartA.rom cartB.rom
    MSX.ROM Cart A RAM Cart B
    MSX.ROM Cart A RAM Cart B
      Cart A RAM Cart B
      Cart A RAM Cart B

    brmsx -ramslot 3 cartA.rom cartB.rom
    MSX.ROM Cart A Cart B RAM
    MSX.ROM Cart A Cart B RAM
      Cart A Cart B RAM
      Cart A Cart B RAM

    brmsx -korean cartA.rom cartB.rom
    MSX.ROM Cart A RAM Cart B
    MSX.ROM Cart A RAM Cart B
    MSXHAN.ROM Cart A RAM Cart B
      Cart A RAM Cart B

    brmsx -diska msxdos.dsk cartA.rom
    MSX.ROM Cart A RAM  
    MSX.ROM Cart A RAM DISK.ROM
      Cart A RAM  
      Cart A RAM  


    Eliminando Problemi

    Risposte per alcune domande comuni:

    D: Come faccio ad eseguire questi giochi .ROM?
    R: Devi copiare il .ROM nella stessa directory del BrMSX ed utilizzare la GUI interna. Puoi anche digitare "brmsx game.rom", se hai intelligenza sufficiente per usare il prompt del DOS.

    D: E i giochi .DSK?
    R: Devi solo digitare "brmsx -diska game.dsk". Adesso tutto funzionerà come un MSX reale con disk-drive.

    D: E i giochi .BAS e .BIN?
    R: Devi creare un file .DSK prima. Ti raccomando il DSKTool, una utility per creare dei .DSK. Puoi trovarla su http://www.lsi.usp.br/~ricardo/msx.htm. Ha il suo proprio manuale. Dopo aver creato il file .DSK, devi solo usare i commandi: RUN"GAME.BAS" o BLOAD"GAME.BIN",R .

    D: Voglio giocare con "Terramex" ma non funziona!
    R: Questo non è un bug del BrMSX, hai avuto dei problemi con il loader del gioco. Prova a caricare il gioco nuovamente, ma adesso utilizza l'opzione "-ramslot 3" del BrMSX. Alcuni dei giochi che hanno bisogno di questa opzione sono Terramex, Oh Shit e Camelot Warriors.

    D: Questo gioco grande "Gall Force" non funziona!
    R: Se il gioco ha più di 32Kb, allora il BrMSX non può trovare il MegaROM Mapper giusto. Devi provare utilizzando l'opzione "-roma" con tutti i valori possibili fino a trovare quello giusto.

    D: Voglio giocare a "Zanac", ma c'è troppo flickering! Devi aver sbagliato qualcosa, perchè ho fatto un test con un altro emulatore e in quello la ROM funziona.
    R: Questo flickering apparirà anche in un MSX reale (provare per credere), questa è una caratteristica del VDP chiamata "occultamento del quinto sprite". Alcuni giochi ne hanno bisogno per mostrare correttamente i grafici, come Parodius, Goonies e Antartic Adventure. Puoi disattivare questa caratteristica al prompt con l'opzione "-fakespr". Se questo "problema" non occorre nei tuoi altri emulatori, allora loro non emulano questa caratteristica, o è disattivata per default.

    D: Non ascolto niente!
    R: Il BrMSX può usare solamente SoundBlaster e schede 100% compatibili. Alcune schede un po' più datate, come la Sound Blaster Pro, non possono essere utilizzate. Il BrMSX non sopporta neanche la ESS audiodrive. Possessori della Gravis Ultrasound devono utilizzare l'emulatore di Sound Blaster MEGAEM. Datemi tempo sufficiente ed avrete sopporto per tutte queste schede. Per ora, potete utilizzare il PC Speaker.

    D: Perché "Bubble Bobble" e "Metal Gear" non funzionano nel BrMSX?
    R: Perché questi sono giochi per MSX-2. Per ora, il BrMSX emula solamente l'MSX-1.

    D: Quando il BrMSX avrà anche l'emulazione di MSX2?
    R: Solo quando avrò finito l'emulazione di MSX 1. Non ha senso cercare di emulare l'MSX2 se l'MSX1 non è completamente emulato! Esistono molte caratteristiche dell'MSX1 che non sono ancora state emulate da nessun emulatore (principalmente quelle non documentate), e per arrivare all'emulazione perfetta devo averle finite tutte.

    D: Dove posso trovare questo ZEX? Esistono versioni per 6502?
    R: Il ZEX (Z80 Exerciser) è un programma che serve per testare la compatibilità con il Z80. Puoi trovarlo nel pacchetto YAZE. YAZE significa Yet Another Z80 Emulator e può essere trovato in siti di CP/M. La versione originale del ZEX funziona sotto MSX-DOS, ma ho fatto una versione .ROM prima di creare il sopporto a disco. Se vuoi ricevere questa versione, mandami una e-mail. Il ZEX è stato scritto solamente per Z80, e non è disponibile per nessun altro processore.

    D: Come faccio ad eseguire il "Metal Gear 2" nell'fMSX?
    R: Per favore, non mandatemi messaggi sull'fMSX, CJS o qualsiasi altro emulatore di MSX. Perdo molto tempo rispondendo ai miei messaggi, e questo tempo potrebbe essere utilizzato programmando il BrMSX. Se hai dei problemi con altri emulatori, prova a parlare con Marcelo Eiras. Troverai la sua pagina su http://www.geocities.com/~msxsite (solo messaggi in portoghese).

    D: Posso essere un beta-tester?
    R: Sei già un beta-testar, perché tutte le mie versioni sono beta.


    Ringraziamenti

    Alcuni credono che io faccia il BrMSX da solo. Questo non è vero. È vero che programmo tutto da solo, ma il BrMSX è molto più che un programma. Molte persone mi hanno aiutato, con esempi di codice-sorgente, data books, tests in computers reali, trovando bugs o semplicemente dandomi una spinta.

    Prima, vorrei ringraziare a Arnon Cardoso. L'idea di scrivere un emulatore brasiliano è stata sua. Dovete provare il suo grande Java MSX Emulator. Un giorno i PC scompariranno, e il BrMSX non sarà più utile. Ma forse un emulatore Java potrà essere usato per sempre.

    Molte grazie anche a Sean Young. Mi ha dato molte idee nelle prime fasi del BrMSX (ma, ovviamente, la più importante di tutte è stata "alle volte devi FERMARTI e PENSARE" :). Il codice-sorgente del VirtualMSX e le sue pagine tecniche sono state di grande aiuto.

    Non posso scordarmi di Isaac Santaolalla Solorzano. Credo che passi più tempo debugando il mio emulatore che il suo! È uno che si realmente si diverte con l'MSX. Provate il suo emulatore MSKISS, che ha molte caratteristiche non ancora presenti nel BrMSX, come sopporto nativo a GUS e MegaRom Mapper autodetection.

    Adriano Cunha mi è statp di grande ispirazione. Lui ODIA gli emulatori, e io devo lasciare il BrMSX perfetto per vederlo usando. Dopotutto, non è impossibile.

    Devo anche ringraziare mio fratello, Raul Tabajara. Lui ha disegnato tutti i grafici del BrMSX, dal design della GUI fino al logo. Attualmente sta cercando un lavoro come designer di giochi, puoi vedere i suoi lavori su http://www.lsi.usp.br/~ricardo/raul.htm, e per contattarlo devi solo mandare una e-mail al mio indirizzo ricardo@lsi.usp.br.

    E, ovviamente, devo anche ringraziare Thomas Pytel. Senza la sua biblioteca PMODE, non avrei mai imparato assembly in modo protetto, e il BrMSX non sarebbe mai così veloce.

    Se fossi ringraziare a tutti quelli che mi hanno aiutato, questo file diventerebbe troppo grande per farne il download. Ma non posso finire senza prima ringranziare a Marco Antonio Simon Dal Poz, Enrique Sanchez, Alex Wulms, Hans Guijt, Eduardo Toledo Santos, KSH, Edison Pires, Insano Delavy, Marcellus Pereira, Marat Fayzullin, Marcel de Kogel, Ademir Carchano, Pierluigi Piazzi, Cyberknight, Walter Marujo, Werner & Weber Kai, Shawn Hargreaves, Mark Feldman, Giovanni Fudeba, Alex Sato, Zoop, Erik Dias, FRS'9X, Ricardo Juracy, Italo Valério, Daniel Caetano, Vanessa Sabino, Daniel Vicentini, Rogério Cobra Bello, Tiago Tresoldi, Miki Watanabe, Luciano Menezes, Marcelo Eiras, Saez Frank, Ulrich Doewich, Mudkicker e tutti quelli che mi hanno mandato e-mails con bugs e suggerimenti. Grazie a tutti!!!

    Se vuoi tradurre questo manuale in Giapponese, Coreano, Olandese, Francese, o qualsiasi altra lingua degli amanti dell'MSX, mandami una e-mail.

    "Non posso credere in QUESTO!", disse
    Alice. "No?", disse la Regina,
    in tono di disprezzo. "A volte
    ho creduto anche in
    SEIS cose impossibili prima
    del caffè!"

    (Lewis Carroll)