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

  E reze para que o jogo funcione. =8^)

 					
  Duvidas, Duvidas, Duvidas!!!

  Se voce tem mais alguma duvida me mande um  mail que  eu respoderei sua
  pergunta. mande mail para:
                              giovanni@br.homeshopping.com.br, ou
                              giovanni@br.ruralrj.com.br

				
  Eu sei mais que você!!!

  Se voce percebeu algum erro no meu texto me avise por favor!!
  
				
  Posso copiar seu FAQ?

  Desde  que  me  comunique é claro,  mantenha  minha  autoria você  pode
  copiar, distribuir, imprimir para colar na parede, etc...

 


Volta