"Comece pelo começo", disse
o Rei, "e continue até que atinja o fim: então pare." (Lewis Carroll) |
Hoje em dia, qualquer garoto sabe o que é um emulador. O que é um MSX, ah, isso é outra história.
MSX é o melhor computador de 8 bits já criado. A primeira versão usa um Zilog Z80 rodando a 3.57 MHz, e oferece paralelismo real, com três processadores secundários. O Texas TMS9928 controla o vídeo e gera as interrupções. O GI AY-3-8912A controla o som e os joysticks. O Intel 8255 controla o hardware restante, como a impressora, o gerenciador de memória, e o teclado.
O MSX foi produzido em muitos países. Ele foi um sucesso no Brasil, Japão, Espanha, Holanda, França, Itália, e a lista continua. Ainda hoje, muitos usuários acreditam que o MSX é melhor que um PC comum. E eu sou um deles.
O MSX tem muito carisma. Ele foi o computador mais poderoso de sua época, influenciando uma geração de futuros engenheiros e cientistas de computação. Com o MSX, quase todos eram programadores. Era tão fácil, qualquer um podia produzir software para ele. Isto é uma coisa que o PC jamais conseguirá.
E, é claro, existem os jogos! O MSX tem vários grandes jogos, produzidos pela Konami, Compile, Namco, Falcom, muitas conversões de arcade, jogos viciantes que voce nunca consegue esquecer!
Infelizmente, o MSX não é mais produzido. Os usuários antigos ainda possuem suas máquinas, mas novos usuários não podem desfrutar da alegria do MSX.
Até agora. Até o BrMSX.
Com o BrMSX você pode utilizar seu PC para sentir uma amostra da grandeza do MSX. Você pode brincar com seus jogos, você pode programar seu BASIC, você pode utilizar seu debugger para aprender assembly. Você pode juntar-se à comunidade MSX.
Mas, antes que você entre em uma inesquecível experiência com o MSX, é melhor que você aprenda mais sobre este emulador. Leia este manual do começo ao fim: só então pare e inicie o BrMSX.
Eu estou tentando fazer este emulador tão preciso e rápido quanto possível. Se você encontrar algum bug, ou se você quiser fazer algum comentário, mande um e-mail para mim. Meu endereço é ricardo@lsi.usp.br. Você pode querer checar a página oficial de tempos em tempos, já que versões novas são disponibilizadas muito freqüentemente. O endereço é http://www.lsi.usp.br/~ricardo/brmsx.htm
É claro, você pode ficar tão viciado em MSX que terá vontade de comprar uma máquina real. Existem grupos de usuários que poderão vender a você uma máquina usada. Na página do BrMSX você encontrará as páginas de vários grupos ativos de MSX.
Divirta-se!
Versão atual: 1.153
Requisitos
BrMSX requer um processador 386 ou superior, já que é escrito em 100% assembly de 32-bits. O computador mais lento que tenho acesso é um 486sx25, e o BrMSX roda com todos os frames neste. Alguns jogos rodam com velocidade total em um 386dx40.
BrMSX requer 2Mb de memória RAM, 4Mb se você quiser utilizar emulação de disco.
BrMSX pode se adaptar para processadores Pentium e processador MMX, de modo a tomar vantagem de suas características especiais.
Um VGA com 256kb de VRAM é necessário. Para habilitar a emulação de TV, você precisará de um Super VGA com um driver VESA 2.0.
A emulação de som requer uma Sound Blaster com DMA auto-inicializável em 45455 Hz, ou placa de som 100% compatível. Se você não tem uma Sound Blaster, poderá habilitar o som através do PC Speaker.
Jogos multiplayer requrem dois computadores equipados com UARTs capazes de 57600 bauds.
BrMSX foi desenvolvido para rodar sob DOS 6.22. Ele funcionará sob Windows 3.11 e Windows 95, mas não funcionará sob Windows NT. Algumas opções não funcionarão sob Windows.
Características
BrMSX foi modelado sobre o Expert 1.0 brasileiro. Ele possui várias características notáveis:
Opções da Linha de Comando
BrMSX pode ser invocado da linha de comando MS-DOS utilizando a seguinte sintaxe:
brmsx [CartA.ROM] [CartB.ROM] [opções]Tudo é opcional, exceto aquele brmsx no começo. Se nenhum parâmetro for passado, BrMSX começará uma emulação padrão da BIOS e do BASIC.
Os cartuchos podem ser simples ROMs de 16kb, começando em 0000h, 4000h, 8000h, cartuchos BASIC de 16kb começando em 8000h, cartuchos de 32kb começando em 4000h, ou cartuchos MegaROM (oito gerenciadores são suportados).
Se você não passar nenhum cartucho na linha de comando, uma MegaRAM com 256kb será inserida no slot 1. A RAM normal do BrMSX é uma Memory Mapper com 128kb.
Você pode selecionar dois cartuchos ao mesmo tempo. Isto é útil para programas residentes como o Mega-Assembler, e também para combinações de cartuchos. Mais sobre isso na seção Combinações de Cartuchos.
Existem muitas opções da linha de comando. Todas começam com um "-" e precisam ser utilizadas em minúsculas. Algumas requerem um parâmetro, que precisa ser colocado logo após a opção, separada por um espaço.
As opções suportadas serão apresentadas em blocos funcionais:
Opções da CPU
-normal | Esta opção seleciona a velocidade normal de um MSX Expert. O Z80 roda em uma velocidade de 3.57 MHz e interrupções chegam a 60 Hz. Esta opção é habilitada por default. |
-fast | Neste modo, as interrupções ainda chegam a 60 Hz, mas o Z80 roda tão rápido quanto seu computador conseguir emular. No meu AMD-K6 233MHz, isto significa que o Z80 roda a uma velocidade de 65 MHz (beem mais rápido que um Turbo-R). Este modo é útil para fazer compilações no MSX e acelerar o BASIC. O som é desabilitado neste modo. |
-turbo | Neste modo, tudo roda na velocidade máxima. Entretanto, a proporção de opcodes emulados por interrupção virtual é igual à de um MSX em velocidade normal. Este modo é útil para pular introduções de jogos e, é claro, para mostrar o quão rápido BrMSX é. |
-ifreq <n> | Você pode mudar a frequência das interrupçõoes com esta opção. O valor default é 60 (NTSC/PAL-M). Usuários europeus devem tentar "-ifreq 50". Esta opção pode ser usada para controlar a velocidade dos jogos. |
Opções de Memória
-roma <mapper> | Esta opção seleciona eo tipo de gerenciador de MegaROM utilizado pelo cartucho inserido no slot A. Tipos suportados de gerenciadores de MegaROM são #0, #2, #3, #4, #5, #6, #7 e #8, o BrMSX sempre tentará autodetectar o tipo de gerenciador se você não utilizar esta opção. Leia mais sobre isso na seção Gerenciadores de MegaROM. Se o jogo tiver uma SRAM com bateria, então esta memória será salva no disco com a extensão ".SRM". |
-romb <mapper> | Esta opção é como a anterior, porém seleciona o gerenciador para o slot B. |
-ramslot <slot> | Esta opção seleciona o slot da RAM. Slots válidos são 2 e 3. O Expert original tem RAM no slot 2, logo este é o valor default. Você precisa mudar o slot da RAM para 3 em dois casos: primeiro, se você quiser emular fielmente um Hotbit, segundo, se você tem um jogo com carregador mal programado, e ele requer que a RAM esteja no slot 3. Leia mais sobre isso na seção Eliminando Problemas. |
-korean | Use esta opção para habilitar o layout de memória de máquinas MSX coreanas. Você precisará de um conjunto de ROMs coreanas: um MSX.ROM coreano e um MSXHAN.ROM coreano. Esta última ROM será carregada na página 2 (8000h) do slot 0. |
-megaram <n> | Esta opção seleciona o tamanho da MegaRAM. Valores válidos são 0=128kb, 1=256kb, 2=512kb, 3=1Mb e 4=2Mb. O valor default é 256kb. |
-mapper <n> | Esta opção seleciona o tamanho da Memory Mapper. Valores válidos são 0=64kb, 1=128kb, 2=256kb, 3=512kb, 4=1Mb, 5=2Mb e 6=4Mb. O valor default é 128kb. |
Opções de Vídeo
-mmx | Esta opção seleciona uma pipelines de vídeo mais rápida. Ela utiliza as instruções SIMD dos processadores MMX para obter uma velocidade impressionante. Ela funciona sob Windows 95, mas não no Windows 3.11. |
-res <n> | Esta opção seleciona a resolução utilizada pelo BrMSX. Valores válidos são 0 (320x200), 1 (256x200), 2 (512x256) and 3 (256x192). A resolução 0 é a default e funcionará em qualquer placa de vídeo VGA. A resolução 1 utiliza uma gambiarra no VGA para habilitar uma tela cheia, mas ela pode não funcionar em todos os monitores. A resolução 2 requer um vídeo Super VGA com driver VESA 2.0, mas habilita a incrível emulação de TV, com scanlines e filtro passa-baixas. A resolução 3 também utiliza uma gambiarra no VGA, mas é mais compatível que a resolução 1 e tem pixels quadrados. |
-vsync | Esta opção habilita a sincronização com o retraço vertical. Isto pode tornar a emulação mais lenta, mas alguns jogos a requerem para ter um scroll suave (como Rally-X), ou para ter uma transição suave de palette (como Penguin Adventure). |
-green | Use esta opção para habilitar a emulação do monitor verde. Tudo se tornará tons de verde. Utilizado em conjunto com a emulação de TV, é uma reprodução perfeita do monitor original da Gradiente. |
-frame <n> | Esta opção ajusta a taxa de salto de frame. O valor default de 1 significa que todos os frames serão traçados. Se o BrMSX está lento para você, aumente este número, mas o valor default já é suficiente para velocidade total em um 486sx25 (e até mesmo em alguns 386dx rápidos!!!) |
-allspr | Esta opção desabilita a ocultação do quinto sprite. Isto é útil para reduzir o piscamento em jogos como Zanac e Nemesis, mas irá produzir erros nos gráficos de jogos como Antartic Adventure e Parodius. |
-nosprcol | Esta opção desabilita a detecção de colisão de sprites. Isto é útil para tornar alguns jogos mais fáceis (como Abu Simbel's Profanation) e pode tornar a emulação mais rápida em máquinas lentas. |
-nocache | Esta opção desabilita o video cache. Isto tornará a emulação bem mais lenta, mas pode ser utilizada em caso de falha no video cache. Leia a seção Eliminando Problemas para mais detalhes. |
-cpugraph | Esta opção habilita o gráfico de CPU, uma indicação de quanto tempo seu computador está gastando em cada passo da emulação. A primeira barra é o tempo gasto na emulação do Z80. A segunda é o tempo gasto no traçado do background, e a terceira é o traçado dos sprites. A quarta quantifica o tempo gasto copiando os dados da RAM principal para a RAM da sua placa de vídeo. A quinta barra é o overhead do próprio gráfico. Utilize esta opção para otimizar o emulador. Esta opção funcionará apenas em máquinas com RDTSC, como os processadores Pentium. |
-psggraph | Esta opção habilita o gráfico do PSG, uma gráfico muito curioso com as amplitudes de cada canal de som. Você verá três barras para o PSG e mais cinco se o SCC estiver habilitado. |
Opções do Som
-nosound | Desabilita o mecanismo de som. Útil se a detecção de Sound Blaster está travando seu computador ou se você está jogando Nemesis no serviço. |
-scc | Habilita a emulação de SCC. Isto não é habilitado por default, uma vez que a emulação de SCC ainda não está perfeita. Funciona apenas com os gerenciadores #0 e #2. |
-sr <n> | Muda a frequência de amostragem da saída. O valor default é 45455 (qualidade de CD), mas você pode querer diminuir este valor em máquinas lentas, ou se sua placa de som não é 100% compatível com Sound Blaster. |
-fmpac | Habilita a emulação do FM-PAC (YM2413). A emulação do FM-PAC é bastante limitada no momento, e a qualidade do som será bastante ruim. Para realmente habilitar o FM-PAC você precisará do FMPAC.ROM original (64kb) como cartucho 1. |
-speaker | Habilita o som através do PC Speaker. O speaker pode reproduzir todos os três canais melódicos do PSG ao mesmo tempo, através de um algoritmo especial de multiplexação temporal. |
-speaq <n> | Muda a qualidade do som pelo PC Speaker. O valor controla a velocidade com que os canais são multiplexados. O valor default é 1, e você provavelmente não irá querer aumentar muito este valor, já que a qualidade cai a partir de certo ponto. Eu gosto de "-speaq 2", mas você pode tentar outros valores. A faixa é de 1 a 9. |
Opções de I/O
-diska <f.dsk> | Habilita a emulação do disk-drive e seleciona f.dsk como imagem de disco. Imagens de disco precisam estar no formato .DSK, e podem ser de quatro tipos diferentes: 40 trilhas / 1 lado (180kb), 40 trilhas / 2 lados (360 kb), 80 trilhas / 1 lado (360kb) e 80 trilhas / 2 lados (720 kb). Imagens multi-disco criadas com COPY /B ainda não são suportadas. |
-disklow | Emulação de disco através das portas de I/O D0h-D4h. Esta opção é habilitada por default, e funcionará apenas com DISK.ROM baseadas em portas de origem brasileira. Muitos programas brasileiros requerem esta opção, como Super Disk Copy, Hello, Chave Mestra e a versão em disco de Robocop. |
-diskhigh | Emulação de disco através de patches no BDOS. Esta opção funcionará com quase todas as DISK.ROM, mas é mais restrita que a anterior. Apenas .DSK de 720kb podem ser utilizados, e o LED do drive não será emulado. |
-tape <t.cas> | Habilita a emulação da fita cassete através de patches na BIOS, e seleciona t.cas como imagem de cassete. A emulação do cassete é restrita nesta versão, a imagem da fita não pode ser maior que 64kb. |
-joy | Habilita a emulação de joystick. O joystick será conectado na porta A (na maioria dos casos isso significa jogador 1). Se você quiser mudar para a porta B, vá até a seção Debugger para aprender como fazê-lo. O joystick é calibrado automaticamente no início, logo não toque nele até a emulação começar. |
-joysens <n> | Ajusta a sensibilidade do joystick. Valores válidos são de 0 a 7, e o valor default é 3. Usuários de joypads devem tentar esta opção para conseguir mais precisão. |
-fakejoy | Mapeia o teclado na porta A do joystick, com essa opção você pode controlar os jogos que requerem joystick (como Gauntlet) pelo teclado. O mapeamento para este modo é Cursores= Direcional, Control da Esquerda= Botão 1, Alt da Esquerda= Botão 2. |
-autofire | Esta opção aciona o tiro automático (pressiona a tecla de espaço automaticamente). Isto é ótimo para jogos de ação como Gall Force. |
-autorun | Esta opção é similar à anterior, porém pressiona as teclas "para direita" e "para esquerda". Use esta opção em jogos de esportes como Decathlon e Hyper Sports. Pressione as teclas esquerda e direita ao mesmo tempo para correr. |
-autospeed <n> | Ajusta a velocidade para "-autofire" e "-autorun". Os valores válidos são de 0 (rápido) a 9 (lento). O valor default é 5. |
Opções para Multiplayer
-server | Seleciona este computador como servidor. Apenas o monitor conectado como servidor mostrará a tela do MSX. Sempre utilize o computador mais rápido como servidor. |
-client | Seleciona este computador como cliente. O teclado deste computador agirá como o joystick B do MSX. A velocidade deste computador não é importante, você pode utilizar um 386 lento como cliente BrMSX. |
-com <port> | Seleciona a porta serial COM na qual você conectou o cabo serial. Esta opção é necessária nos dois lados. Leia mais sobre jogos multiplayer na seçao Multiplayer. |
Opções de Controle
-nomouse | Desabilita a detecção do mouse driver. Utilize-a em caso de conflito com o mouse driver. Sem um mouse você não será capaz de utilizar a GUI. |
-novesa | Desabilita a detecção de VESA. Utilize-a em caso de conflito com driver de vídeo. Sem VESA 2.0, você não será capaz de utilizar a emulação de TV. |
-noled | Desabilita a emulação dos LEDs. Utilize isto caso seu teclado pareça perder toques. |
-nopentium | Desabilita as extensões Pentium e a autodetecção de CPU. Utilize isto se a autodetecção está falhando e fazendo a máquina travar. Sem um Pentium você não será capaz de utilizar o gráfico de CPU. |
-noenter | Desabilita a necessidade de apertar ENTER no começo. Útil para autores de front-ends. |
-help | Mostra uma pequena tela de ajuda. |
Dentro da Emulação
O MSX possui algumas teclas que não estão presentes no PC. O mapeamento das teclas é mostrado na tabela abaixo:
LGRA (GRAPH) | Left ALT |
RGRA (CODE/KANA) | Right ALT |
STOP | Page Up |
SELECT | Page Down |
HOME/CLS | Home |
'`^~ | `~ |
Ç | End |
Os LEDs no teclado também são emulados:
Caps Lock | Caps Lock |
Kana | Num Lock |
Drive em uso | Scroll Lock |
Algumas teclas possuem significado especial:
F6 | Rebobina fita |
F9 | Salva um screenshot para BRMSX.PCX |
F10 | Pára a emulação e entra no debugger |
F12 | Pára a emulação e chama a GUI |
Num Lock | "Avanço rápido", habilita o modo TURBO quando pressionada |
+ (keypad) | Aumenta o volume |
- (keypad) | Diminui o volume |
A GUI também pode ser chamada com um toque no botão esquerdo do mouse.
Interface Gráfica de Usuário
A GUI é muito fácil de usar (afinal, essa é a idéia!)
O menu é apresentado no lado esquerdo da tela, e você precisa utilizar o mouse e seu botão esquerdo para selecionar opções. Clique em qualquer lugar fora de uma janela para retornar à emulação.
As opções da GUI são:
Reset | Reseta o computador. Este reset é um soft-reset, já que não apaga o conteúdo da RAM e da VRAM. |
Turn OFF | Desliga o computador. Isso funciona como um reset, porém apaga todo o conteúdo da RAM e da VRAM. Voce precisa clicar em Turn ON para retornar à emulação. |
Load ROM | Esta opção carrega uma nova ROM no slot A. As ROMs precisam estar no mesmo diretório do BrMSX. |
CPU Graph | Esta opção alterna o Gráfico de CPU entre ligado e desligado. |
PSG Graph | Esta opção alterna o Gráfico de PSG entre ligado e desligado. |
Save state | Esta opção salva o estado da máquina em um arquivo chamado BRMSX.STA. Isto é ótimo para terminar jogos! |
Load state | Esta opção lê um estado previamente gravado. |
Quit | Esta opção aborta o BrMSX e retorna para o MS-DOS. |
Debugger
Pressionando ESC na abertura, ou F10 durante a emulação, você entra no Fudebug (Full Debugger). Eu não vou explicar todas as coisas apresentadas na tela. Se você não sabe que o que está na tela, então o debugger não é para você.
O Fudebug é uma ferramenta muito poderosa para auxiliar na programação MSX. Os comandos sempre têm uma letra, e alguns deles podem precisar de argumentos. Cuidado ao entrar com os argumentos, pois não há backspace. Valores devem ser sempre entrados em hexadecimal.
Os comandos suportados são:
S | Sai do debugger e reinicia a emulação |
Q | Sai do debugger e aborta para o MS-DOS. |
F7 | Executa uma única instrução do Z80. |
F8 | Executa sobre uma instrução do Z80. Utilize esta opção para pular instruções CALL e RST. |
U dddd | Disassembla a partir do endereço dddd. |
D dddd | Faz um dump de memória a partir do endreço dddd. |
Page Up | Rola a região de dump para cima. |
Page Down | Rola a região de dump para baixo. |
E dddd xx | Edita o byte no endereço dddd, sobrescrevendo-o com o valor xx. |
B dddd | Reinicia a emulação com um breakpoint no endereço dddd. |
F2 | Salva o estado da máquina no arquivo BRMSX.STA |
F3 | Lê o estado da máquina do arquivo BRMSX.STA |
1 | Seleciona a tela de debug 1. |
2 | Seleciona a tela de debug 2. |
0 | Mostra a tela do MSX. |
M | Seleciona o modo de emulação (normal, fast, turbo) |
Y | Alterna o VSync entre ligado e desligado. |
V | Alterna entre as resoluções (320x200, 256x200, 512x384, 256x192) |
J | Alterna a emulação de joystick entre Porta-A, Porta-B e nenhuma. |
C | Calibra o joystick novamente. |
F1 | Mostra a tela de ajuda. |
Multiplayer
Com o BrMSX, você pode conectar dois computadores com um cabo serial, para jogar em modo multiplayer. O primeiro computador controla o teclado do MSX (jogador 1), e o segundo computador age como o joystick B do MSX (jogador 2).
O mapeamento das teclas para o segundo jogador é:
Tecla do jogador 2 | Significado |
Direita | JOY-B Direita |
Esquerda | JOY-B Esquerda |
Para Cima | JOY-B Para Cima |
Para Baixo | JOY-B Para Baixo |
Espaco | JOY-B Botão 1 |
M | JOY-B Botão 2 |
Para começar uma sessão multiplayer, você precisa digitar no computador mais rápido: "brmsx -server -com 2", trocando é claro "2" com o número da sua porta serial.
Depois de iniciar o servidor, digite no cliente "brmsx -client -com 1", novamente, não esqueça de checar a porta COM. Isso irá iniciar a emulação em modo multiplayer. Apenas o monitor do servidor mostrará a tela do MSX.
Para sair de uma sessão multiplayer, termine a emulação no cliente primeiro!! A ordem errada poderá travar os dois computadores.
Alguns jogos com opções para dois jogadores simultâneos são: Konami's Soccer, Salamander, Konami's Ping Pong, Super Laydock, Yie Ar Kung Fu 2, Warroid, e outros que não me recordo.
Combinação de Cartuchos
BrMSX tem suporte para dois cartuchos ao mesmo tempo. Isto é útil para programadores (você pode carregar o Mega-Assembler e o XBasic ao mesmo tempo), e também para os jogadores.
Muitos jogos têm opções secretas quando conectados em conjunto com outros cartuchos. Alguns exemplos são:
Gerenciadores de MegaROM
BrMSX suporta todos os tipos de Gerenciadores de MegaROM utilizados em jogos de MSX 1. Se o BrMSX encontrar o jogo em seu banco de dados interno, então o gerenciador de MegaROM será automaticamente selecionado. Senão, será utilizado o gerenciador #0.
Os Gerenciadores suportados são:
Jogos: Animal Land, Super Laydock, Jagur, Vaxol, Mirai, Donkey Kong, Digital Devil Story, The Fairy Land Story, Final Zone, 3 Kingdoms, 1942.
Endereço | Bloco |
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 |
Jogos: Nemesis 2, Nemesis 3, Salamander, King's Valley, F1 Spirit, Parodius.
Endereço | Bloco |
5000h-57FFh | 4000h-5FFFh |
7000h-77FFh | 6000h-7FFFh |
9000h-97FFh | 8000h-9FFFh |
B000h-B7FFh | A000h-BFFFh |
9800h-9FFFh | SCC |
Jogos: Nemesis, The Maze of Galious, Shalom, Penguin Adventure.
Endereço | Bloco |
<nenhum> | 4000h-5FFFh |
6000h | 6000h-7FFFh |
8000h | 8000h-9FFFh |
A000h | A000h-BFFFh |
Jogos: Valis - The Fantasm Soldier, Hydlide 3, Fantasy Zone, Dragon Slayer 4.
Endereço | Bloco |
6000h-67FFh | 4000h-5FFFh |
6800h-6FFFh | 6000h-7FFFh |
7000h-77FFh | 8000h-9FFFh |
7800h-7FFFh | A000h-BFFFh |
Jogos: Gall Force, Eggerland Mystery 2, Golvellius.
Endereço | Bloco |
6000h-6FFFh | 4000h-7FFFh |
7000h-7FFFh | 8000h-BFFFh |
Jogos: Xanadu.
Endereço | Bloco |
6000h-67FFh | 4000h-5FFFh |
6800h-6FFFh | 6000h-7FFFh |
7000h-77FFh | 8000h-9FFFh |
7800h-7FFFh | A000h-BFFFh |
bloco=20h | SRAM |
Jogos: Hydlide 2.
Endereço | Bloco |
6000h-6FFFh | 4000h-7FFFh |
7000h-7FFFh | 8000h-BFFFh |
bloco=10h | SRAM |
Jogos: FM-PAC original.
Endereço | Bloco |
7FF7h | 4000h-7FFFh |
Layout da Memória
MSX.ROM | MegaRAM | RAM | |
MSX.ROM | MegaRAM | RAM | |
MegaRAM | RAM | ||
MegaRAM | RAM |
MSX.ROM | Cart A | RAM | Cart B |
MSX.ROM | Cart A | RAM | Cart B |
Cart A | RAM | Cart B | |
Cart A | RAM | Cart B |
MSX.ROM | Cart A | Cart B | RAM |
MSX.ROM | Cart A | Cart B | RAM |
Cart A | Cart B | RAM | |
Cart A | Cart B | RAM |
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 |
MSX.ROM | Cart A | RAM | |
MSX.ROM | Cart A | RAM | DISK.ROM |
Cart A | RAM | ||
Cart A | RAM |
Eliminando Problemas
Respostas para algumas perguntas comuns:
P: Como eu rodo esses jogos .ROM?
R: Copie o .ROM para o mesmo diretório do BrMSX e utilize
a GUI embutida. Você também pode digitar
"brmsx game.rom", se for esperto o suficiente para usar o
DOS prompt.
P: Como eu rodo esses jogos .DSK?
R: Apenas digite "brmsx -diska game.dsk". De agora em
diante, tudo se passa como um MSX real com disk-drive.
P: Como eu rodo esses jogos .BAS e .BIN?
R: Voce precisa criar um arquivo .DSK primeiro. Eu recomendo que
você use o DSKtool, um utilitário para
manutenção de .DSK. Você pode encontrá-lo
em http://www.lsi.usp.br/~ricardo/msx.htm
e ele vem com seu próprio
manual. Após criar um arquivo .DSK, basta usar os comandos
RUN"GAME.BAS" ou
BLOAD"GAME.BIN",R .
P: Eu estou tentando rodar este jogo "Terramex" e ele não
funciona!
R: Isso não é um bug do BrMSX, você na verdade
encontrou um erro no carregador do jogo. Tente rodar este jogo novamente,
porém desta vez inicie o BrMSX com a opção "-ramslot 3".
Alguns jogos que necessitam disto são Terramex,
Oh Shit e Camelot Warriors.
P: Este jogo grande "Gall Force" não está
funcionando!
R: Se o jogo tem mais que 32kb, então o BrMSX não
conseguiu achar o gerenciador de MegaROM correto para este jogo.
Tente utilizar a opção "-roma" com todos os valores
possíveis, até encontrar um que funcione.
P: Estou tentando jogar "Zanac" mas a nave está piscando!
Estou certo de que você fez alguma besteira pois eu testei a
mesma ROM em outro emulador e não piscou.
R: Essa piscadeira também aparecerá em um MSX real,
isso é uma característica do VDP chamada
"ocultação do quinto sprite". Alguns jogos a requerem para
apresentar gráficos corretos, como Parodius, Goonies
e Antartic Adventure. Você pode desabilitar essa
característica com a opção da linha de comando
"-fakespr". Se essa piscadeira não ocorre nos seus outros emuladores,
então ou eles não emulam essa característica, ou
ela está desabilitada por default.
P: Eu não consigo ouvir nenhum som!
R: BrMSX suporta apenas Sound Blaster e placas de som 100%
compatíveis. Alguns modelos antigos, como a Sound Blaster Pro,
não são suportados. BrMSX também não
suporta a ESS audiodrive. Usuários da Gravis Ultrasound
devem utilizar o emulador de Sound Blaster MEGAEM. Dê-me
tempo suficiente e adicionarei drivers para todas estas placas.
Enquanto isso você pode tentar o som através do PC Speaker,
ou então a versão em 22222Hz (brmsx22.exe).
P: Por que "Bubble Bobble" e "Metal Gear" não
funcionam no BrMSX?
R: Esses são jogos de MSX-2. Por enquanto o BrMSX emula
apenas o MSX-1.
P: Quando o BrMSX terá emulação de MSX2?
R: Apenas quando eu acabar a emulação de MSX 1.
Não há sentido em adicionar emulação de MSX2
se o MSX1 não está completamente implementado! Existem muitas
características do MSX1 que ainda não foram emuladas por
nenhum emulador (principalmente as não documentadas), e para
conseguir emulação perfeita eu preciso adicionar todas
elas.
P: Onde eu posso encontrar esse teste ZEX? Existem versões
para 6502?
R: O ZEX (Z80 Exerciser) é um programa para testar
compatibilidade com o Z80. Ele pode ser encontrado no pacote YAZE. YAZE
quer dizer Yet Another Z80 Emulator e pode ser encontrado em
sites de CP/M. A versão original do ZEX roda em MSX-DOS, mas eu fiz
uma versão .ROM antes de adicionar suporte a disco. Se você
estiver interessado nessa versão, mande um e-mail para mim. ZEX foi
feito apenas para Z80, e não está disponível para
nenhum outro processador.
P: O que preciso fazer para rodar "Metal Gear 2" no fMSX?
R: Por favor, não me mandem mensagens sobre fMSX, CJS ou
qualquer outro emulador de MSX. Eu perco muito tempo respondendo e-mails,
e este tempo poderia ser melhor aproveitado programando o BrMSX. Se
você tem problemas com outros emuladores, contacte Marcelo Eiras
através da página
http://www.geocities.com/~msxsite
(português),
ou então contacte TFH através da página
http://www.casema.net/~tfh
(inglês)
.
P: Posso ser um beta-tester?
R: Você já é um beta-tester, uma vez que todas
as minhas versões são beta.
Créditos
Algumas pessoas acreditam que eu faço o BrMSX sozinho. Isso não é verdade. Eu realmente programo sozinho, mas o BrMSX é muito mais que um programa. Muitas pessoas me ajudaram, contribuindo com código-fonte exemplo, data books, testes em máquinas reais, reportando bugs ou simplesmente com incentivo.
Primeiro, eu gostaria de agradecer Arnon Cardoso. A idéia de começar um emulador brasileiro foi dele. Vocês deveriam testar seu grande Java MSX Emulator. Algum dia o padrão PC irá morrer, e o BrMSX não será mais útil. Mas um emulador em Java tem o potencial para ser usado para sempre.
Muito obrigado a Sean Young. Ele me deu muitas idéias nos estágios iniciais do BrMSX (mas é claro, o mais importante de todos foi "às vezes você precisa PARAR e PENSAR" :). O código fonte do Virtual MSX e suas páginas técnicas foram grandes recursos.
Eu não posso esquecer Isaac Santaolalla Solorzano. Às vezes eu acho que ele perde mais tempo debugando o meu emulador que o dele! Ele é um cara que realmente se diverte com o MSX. Tentem o seu emulador MSKISS, pois ele tem muitas características não presentes no BrMSX, como suporte nativo a GUS e autodetecção de Gerenciador de MegaROM.
Adriano Cunha foi uma grande inspiração. Ele ODEIA emuladores, e eu tenho que fazer o BrMSX ficar perfeito para que ele o use. Afinal, não é impossível.
Muito obrigado a meu irmão, Raul Tabajara. Ele fez todos os gráficos do BrMSX, desde o design da GUI até o logo. Ele está atualmente procurando um emprego como designer gráfico de jogos, você pode ver mais de seu trabalho em http://www.lsi.usp.br/~ricardo/raul.htm, e para contactá-lo basta mandar um e-mail para mim em ricardo@lsi.usp.br.
E, é claro, eu agradeço a Thomas Pytel. Sem sua biblioteca PMODE, eu nunca teria aprendido assembly de modo protegido, e o BrMSX jamais seria tão rápido.
Se eu fosse agradecer todos que me ajudaram, este arquivo ficaria grande demais para download.Mas não posso terminar este manual sem mencionar a ajuda de 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, TFH, Omar Mosqueda, Leonard Silva de Oliveira, Jaime Magno Flaviano Galle, Neckfreak of Bandwagon, Peter Latimer, Alwin Henseler e todas as pessoas que me mandaram e-mails reportando bugs e com comentários. Obrigado a todos!!!
Se você quiser traduzir este manual para Japonês, Coreano, Holandês, Francês, Italiano, ou qualquer outra língua falada por amantes do MSX, por favor me contacte.
"Eu não acredito NISSO!", disse
Alice. "Não?", a Rainha disse, em tom de desdém. "Algumas vezes eu acreditei em até SEIS coisas impossíveis antes do café da manhã!" (Lewis Carroll) |