Emulator Series M e g a R A M F A Q Versao 1.0 - 29/Jan/1997
|
Por: Giovanni R. Nunes O que e' uma MegaRAM? Porque ela não é reconhecida nos emuladores? Como você deve saber o MSX tinha muitos jogos que vinham em cartucho e eles ocupavam 16Kb ou 32Kb todos em sua maioria jogos originais de MSX vindos do Japão (Goonies, Antartic Adventure, etc...) ou convertidos de Coleco Vision (Pitfall II, River Raid, etc...). E para o MSX o provedimento era bem simples. Durante o BOOT o MSX fazia uma cata nos seus SLOTS e se achasse um cartucho ele o carregava e o executava. Aqui no Brasil o pessoal é mais pobre ou mais piratão ou sem vergonha na cara e faziam o seguinte. Copiavam o conteudo do cartucho e adicionavam a ele uma rotina bem bobinha que jogava o jogo em um lugar da memória e o executava. Isto no comeco dava uns problemas pois as antas dos porcamadores pressupunham que você usava um Expert que possui a RAM na pagina A* e não na Pagina B como é no Hotbit e ai você pode imaginar as caquinhas pois você chaveava um buraco que não tinha nada jogava dados para ele e depois mandava executar. E por isto comecaram a aparecer os jogos que só rodavam em Hotbit e os que só rodavam em Expert. Quando a Gradiente lancou o Expert Plus e o DD Plus que tinham SLOT expandido a caca aumentou mais ainda. (*) Por A e B entenda uns numeros que infelizmente eu nunca soube. =8^) Mas voltando as cartuchos. Em 1986 a Konami, sempre ela, lançou o jogo Nemesis. Que possuia uma característica interessante. Ele possuia 1 Megabit (128 Kb). Mas como se o MSX tem um Z80 que só enxerga 64Kb de memória ? E como um único cartucho podia conter tanta memória? Simples ele usava uma técnica oriunda dos cartuchos do Atari de chaveamento de páginas que ganhou o nome de MegaROM (Mega pois era 1 MegaBit e ROM pq era ROM pô!) e possuia páginas de 8Kb que eram chaveadas quando necessarias. Isto fez surgir jogos de MSX com melhor qualidade gráfica e sonora. E consequentemente mais difíceis. =8^) Agora voltamos para o Brasil onde o pessoal e' pobre e/ou sem vergonha mesmo. Acho que a primeira pergunta quando viram um jogo de MegaROM deve ter sido. Como eu vou copiar isto? O MSX só tem 64Kb de RAM! Assim surgiram as adaptações para rodar em disco e um novo e estranho periférico, a MegaRAM. Projeto do grande Ademir Carchano (o cara dos Kits de MSX2, MSX2+ e de outros badulaques). Teoricamente a MegaRAM é um cartucho MegaROM virgem, i.e., sem nada gravado nele e como é RAM ao invés de ROM pode ser gravado com o que voce quiser! E assim foi feito o mesmo principio dos nossos joguinhos de 16 e 32Kb. Só que o jogo de 128Kb, 256Kb ou 512Kb era partido em bloquinhos de 8Kb ou 16Kb e com um simples carregador eram colocados na ordem certa dentro das paginas da MegaRAM e depois o jogo era executado. Assim todos ficaram felizes! Felizes? A MegaRAM era na verdade uma gambiarra e nao havia muita coisa a ser feita com ela. Como era uma invenção nossa não era reconhecida como uma expansão de memória real, como é a Memory Mapper. Nem havia suporte na BIOS para ela, tanto que todo acesso a ela é feito por portas (comandos IN e OUT). Logo, você comprava uma MegaRAM de 768Kb e continuava tendo os míseros 64Kb de RAM (ou os minguados 23Kb no BASIC.... ). Foi entao que surgiram programas que se utilizavam da MegaRAM como um gigantesco Buffer mas infelizmente estes programas eram em sua esmagadora maioria copiadores de disco (Top Pirate II, Super Disk Copy e Master Transfer são exemplos). Em seus modelos de MegaRAM a Digital Design (DDX) implementou um programa de RAMDISK que permitia que ela fosse utilizada como um disco virtual o que era (e é) bastente util para programas que se utilizam bastante de acessos ao disco... Por exemplo no meu MSX eu tenho algo do tipo, A:720Kb, B:360Kb e C:512Kb, logo 1,5Mb em armazenamento... Agora dá para perceber porque os emuladores de MSX não reconhecem a MegaRAM. Porque ela para o padrão MSX não existe. E como eu vou jogar meu jogos de MegaRam no Emulador? E para se executar um jogo de MegaRAM nos emuladores? É simples porem meio trabalhoso. A solução mais fácil é você baixar as ROM Images de MegaROM em algum FTP site mas isto demanda tempo e não é algo que você possa saber quando vai terminar. Sendo assim ficaremos com a segunda parte que é a conversão de um jogo de MegaRAM p/ uma ROM Image. Em primeiro lugar voce deve saber como seu jogo foi picotado, i.e., se ele está em blocos de 8Kb ou de 16Kb. Sendo assim a única coisa que você precisa fazer e' o seguinte: Repita n de 1 ate' 8 (ou 16) Carrega-se o bloco n. Retira o header de arquivos binarios de MSX (7 bytes) Armazena o restante do arquivo (8Kb ou 16Kb) na ROM Image. Proximo n Se são blocos de 8 Kb você faz um loop de 16 iterações e se forem arquivos de 16Kb você fará somente 8. Se for uma versão setorizada faça uma imagem do disco e tente retirar o .ROM dali. O cartucho geralmente começa com a sequencia AB (chr 65 e chr 66) nele. Tendo o arquivo .ROM como eu faço para jogar? Digamos que voce queira carregar o arquivo XPTO.ROM vamos la': > Usando o fMSX p/ DOS, UNIX e OS/2 digite no prompt: fmsx {sua configuracao} XPTO.ROM. Obs.: Alguns jogos se utilizam de um mapeamento diferente para isto você deve utilizar o switch -ROM com os valores de 0 até 5. Saber qual é o valor é impossivel logo, tente os 6 valores até que ele execute sem problemas. Ou então dê um pulinho em: ftp://ftp.komkon.org e no diretório /pub/MSX/Carts pegue o arquivo Carts.doc que contem além da listagem de todas as ROM Imagens contidas neste FTP site contem o mapeamento usado pelos jogos MegaROM. > Usando o Virtual MSX Configure a ROM image mo menu Setup/Cartidges... > Usando o CJS MSX Emulator Neste emulador a emulação de MegaROM não é perfeita por isto o jogo pode apresentar falhas mas para executa-lo é simples. Você nem precisa ter seu arquivo picotado caso seus jogos de MegaRAM sejam em blocos de 8Kb. E para roda faça o seguinte: msx2 {sua configuracao} -e |