"Empieza por el principio", dijo
el Rey, "y continúa hasta que llegues al final: entonces para." (Lewis Carroll) |
En estos días, cualquier chaval sabe lo que es un emulador. Saber lo que es un MSX, es otra historia.
El MSX es el mejor ordenador de 8 bits jamás creado. La primera versión usa un Z80 a 3.57 Mhz, y ofrece paralelismo real, con tres procesadores secundarios. El Texas TMS9928 es el chip de vídeo y quien genera las interrupciones. El GI AY-3-8910A controla el sonido y los joysticks. El Intel 8255 controla el hardware restante, como el cassette, la memoria y el teclado.
El MSX se construyó en un montón de países. Tuvo éxito en Brasil, Japón, España, Holanda, Francia, Italia, y la lista continuaría. Todavía hoy, muchos usuarios piensan que el MSX es mejor que un PC corriente. Y yo soy uno de ellos.
El MSX tiene mucho carisma. Fue el ordenador más poderoso de su época, influenciando a una generación de futuros ingenieros e informáticos. Con el MSX, casi todo el mundo era programador. Era tan fácil, que todo el mundo podía desarrollar software para él. Esto es algo que el PC nunca podrá conseguir.
Y por supuesto, también están los juegos! El MSX tiene montones de buenos juegos, producidos por Konami, Compile, Namco, Falcom, montones de conversiones de recreativa, juegos que nunca podrás olvidar!
Desafortunadamente, el MSX ya no se construye. Los antiguos usuarios todavía tienen sus máquinas, pero las nuevas generaciones, nunca podrán disfrutar la diversión del MSX.
Hasta ahora. Hasta BrMSX.
Con BrMSX puedes usar tu PC para sentir una muestra de la grandeza del MSX. Puedes jugar a juegos MSX, puedes programar con su BASIC, puedes usar su debugger para aprender ensamblador. Te puedes unir a la comunidad MSX.
Pero antes de que te sumerjas en la experiencia inolvidable del MSX, es mejor que aprendas más sobre este emulador. Lee este manual desde el principio hasta el final: entonces para y arranca BrMSX.
Estoy intentando hacer el emulador tan preciso y tan rápido como me sea posible. Si encuentras algun error, o si quieres hacer cualquier comentario, mándame un e-mail. Mi dirección es ricardo@lsi.usp.br. También puedes querer visitar la página oficial de tanto en tanto, ya que nuevas versiones salen frecuentemente. La dirección es http://www.lsi.usp.br/~ricardo/brmsx.htm
Por supuesto, el MSX te puede generar tanta addicción, que puedes querer llegar a comprar un MSX real. Todavía hay grupos de usuarios que te pueden vender uno de segunda mano. En la página de BrMSX encontrarás las home-pages de muchos grupos brasileños activos.
Que te diviertas!
Versión actual: 1.160
Requerimientos
BrMSX necesita un 386 o superior, ya que está escrito 100% en ensamblador de 32 bits. La máquina más lenta a la que tengo acceso es un 486sx25, y BrMsX funciona a pleno rendimiento dibujando todos los frames en ella. Algunos juegos funcionan a pleno rendimiento incluso en un 386dx40.
BrMSX necesita 2Mb de RAM, 4Mb si quieres usar la emulación de disco.
BrMSX se puede adaptar a los procesadores Pentium y MMX para aprovechar sus características especiales.
Una VGA con 256kb de VRAM es necesaria. Para usar la emulación TV, necesitarás una SuperVGA con un driver VESA 2.0.
La emulación del sonido necesita una Sound Blaster con DMA auto-inicializada a 45455 Hz o tarjeta 100% compatible. Si no tienes una Sound Blaster, puedes activar el sonido a través del Altavoz interno del PC.
Los juegos multiplayer necesitan dos ordenadores equipados con UARTs que soporten 57600 baudios.
BrMSX está diseñado para ser ejecutado bajo DOS 6.22. También funciona bajo Windows 3.11 y Windows 95, pero no funcionará bajo Windows NT. Algunas opciones no se pueden usar bajo Windows.
Características
BrMSX intenta parecerse al Expert 1.0 brasileño. Tiene montones de características interesantes:
Opciones de la línea de comando
BrMSX puede ser invocado desde la línea de comando de MS-DOS usando la siguiente sintaxis:
brmsx [CartA.ROM] [CartB.ROM] [opciones]Todo es opcional, excepto la palabra brmsx al principio. Si no se le pasan parámetros, BrMSX arrancará la emulación típica de la BIOS y el BASIC.
Los cartuchos pueden ser simples ROMs de 16kb, que empiecen en las direcciones 0000h, 4000h, 8000h, Cartuchos BASIC de 16kb que empiecen en la dirección 8000h, cartuchos de 32kb que empiecen en la dirección 4000h, o cartuchos MegaROM (con soporte para ocho mapeadores diferentes).
Si no le pasas ningún cartucho en la línea de comando, un MegaRAM con 256kb sera introducido automáticamente en el slot 1. La cantidad normal de memoria RAM de BrMSX son 128kb vía Memory Mapper.
Puedes seleccionar dos cartuchos a la vez. Esto es útil para programas residentes, como Mega-Assembler, y también para combinaciones de cartuchos. Para más información, lee la sección sobre combinaciones de cartuchos.
Hay un montón de opciones en la línea de comando. Todas ellas empiezan con un "-" y tienen que ponerse en minúsculas. Algunas necesitan un parámetro, que tiene que ser puesto justo después de la opción, separado por un espacio.
Las opciones soportadas serán presentadas en bloques funcionales:
Opciones de la CPU
-normal | Esta opción selecciona la velocidad normal de un MSX Expert. El Z80 corre a 3.57 Mhz y las interrupciones llegan a 60 Hz. Esta opción es la que funciona por defecto. |
-fast | En este modo, las interrupciones todavía llegan a 60 Hz, pero el Z80 corre tan rápido como permita tu ordenador. En mi AMD-K6 233Mhz, esto significa que el Z80 corre a 65 MHz (mucho más rápido que un Turbo-R). Este modo es útil para compilar con el MSX y para acelerar el BASIC. El sonido está desconectado en este modo. |
-turbo | En este modo, todo corre a toda velocidad. De todas maneras, la proporción de opcodes emulados por cada interrupción "virtual" es igual al de la velocidad normal de un MSX. Este modo es útil para pasar de las intros de los juegos y, por supuesto, para ver la velocidad que puede ofrecer BrMSX. |
-ifreq <n> | Con esta opción puedes cambiar la frecuencia de las interrupciones El valor por defecto es de 60 (NTSC/PAL-M). Los usuarios europeos deben poner "-ifreq 50". Esta opción puede ser usada también para controlar la velocidad de los juegos. |
Opciones de memoria
-roma <mapper> | Esta opción selecciona el tipo de MegaROM Mapper usado por el cartucho metido en el slot A. Los MegaROM Mappers soportados son los de tipo #0, #2, #3, #4 ,#5 ,#6, #7 y #8, BrMSX intentará autodetectar el tipo de MegaROM si no especificas esta opción. Más información sobre esto en la sección MegaROM Mappers. Si un juego tiene SRAM para guardar partidas, entonces esta memoria será grabada en disco con la extensión ".SRM". |
-romb <mapper> | Esta opción es exactamente igual que la anterior, pero para el slot B. |
-ramslot <slot> | Esta opción selecciona en que slot aparecerá la RAM. Slots válidos son el 2 y el 3. El Expert original tiene la RAM en el slot 2, por lo que éste es el valor por defecto. Es necesario cambiar la RAM al slot 3 en dos casos: primero, si quieres emular perfectamente el HotBit, segundo, si tienes juegos con un cargador mal construído, y necesitan la RAM en el slot 3. Para saber más sobre esto, léelo en la sección sobre solución de problemas. |
-korean | Usa esta opción para activar el modo de memoria necesario para MSX coreanos. Necesitarás un juegos de ROMs coreanas: Una MSX.ROM coreana y una MSXHAN.ROM coreana. Esta última ROM será cargada en la página 2 (8000h) del slot 0. |
-megaram <n> | Esta opción selecciona el tamaño del MegaRAM. Los valores válidos son 0=128kb, 1=256kb, 2=512kb, 3=1Mb y 4=2Mb. El valor por defecto es de 256kb. |
-mapper <n> | Esta opción selecciona el tamaño del Memory Mapper. Los valores válidos son 0=64kb, 1=128kb, 2=256kb, 3=512kb, 4=1Mb, 5=2Mb y 6=4Mb. El valor por defecto es de 128kb. |
Opciones de vídeo
-res <n> | Esta opción selecciona la resolución usada por BrMSX. Los valores permitidos son 0 (320x200), 1 (256x200), 2 (512x384), 3 (256x192) and 6 (512x384x15). La resolución 0 es la que se selecciona por defecto, porque funciona en cualquier VGA. La resolución 1 usa un modo VGA modificado para conseguir que la pantalla sea más ancha, pero puede que no funcione en todos los monitores. La resolución 2 necesita una SuperVGA con un driver VESA 2.0, y así podrás disfrutar de la impresionante emulación TV, con scanlines y filtro pasa-bajas. La resolución 3 también usa un modo VGA modificado, pero es más compatible que la resolución 1 y tiene los pixels cuadrados. La resolución 6 es el video engine "Parrot", que usa un modo gráfico de 15 bits de color y dos filtros digitales para reducir el aspecto cuadrado de los pixels de los juegos MSX. |
-vsync | Esta opción activa la sincronización con la retraza vertical. Esto puede hacer que la emulación sea más lenta, pero algunos juegos lo necesitan para mostrar un scroll más suave (como Rally-X), o para conseguir cambios de paleta suaves (como Penguin Adventure). |
-green | Usa esto para activar la emulación del monitor de fósforo verde. Todo se verá verdoso. Usado en combinación con la emulación TV, se consigue una emulación perfecta del monitor original de Gradiente. |
-frame <n> | Esta opción ajusta el número de frames no mostrados. El valor por defecto de 1, significa que todos los frames son mostrados. Si BrMSX es lento para ti, puedes incrementar este número, pero con el valor por defecto ya se consigue pleno rendimiento en un 486sx25 (e incluso en 386dx rápidos!!) |
-allspr | Esta opción desactiva la ocultación del quinto sprite. Esto es útil para reducir el parpadeo en juegos como Zanac y Nemesis, pero producirá errores gráficos en juegos como Antarctic Adventure y Parodius. |
-nosprcol | Esta opción desactiva la detección de la colsión de sprites. Esto es útil para que algunos juegos sean más fáciles (como Abu Simbel's Profanation) y puede acelerar la velocidad de la emulación en ordenadores lentos. |
-vdptiming | Activa el timing correcto para el VDP. Cuando esta opción esta activa, los accesos al VDP deben esperar al menos 50 ciclos de reloj para que tengan éxito. Esta opción es útil para aquellos programadores que quieran asegurarse de que sus programas funcionarán en un MSX real. |
-nocache | Esta opción desactiva la cache de vídeo. Esto hará la emulación mucho más lenta, pero puede ser usada en caso de fallo de la cache de vídeo. Lee la sección dedicada a resolver problemas para más detalles. |
-cpugraph | Esta opción activa el gráfico del consumo de CPU, una indicación de cuanto tiempo gasta tu ordenador en cada paso de la emulación. La primera barra es el tiempo gastado en la emulación del Z80. La segunda es el tiempo gastado en dibujar los fondos, y la tercera, los sprites. La cuarta barra mide el tiempo gastado en copiar los datos desde la RAM de tu ordenador hasta la RAM de la tarjeta gráfica. La quinta barra es lo que gasta este mismo gráfico. Usa esta opción para ajustar el emulador a tus preferencias. Esta opción solo funcionará en CPU's con la instrucción RDTSC, es decir, Pentium o superiores. |
-psggraph | Esta opción activa el gráfico del PSG, que es bastante interesante y que muestra las amplitudes para cada canal de sonido. Se verán tres barras para el PSG y cinco más si el SCC está activado. |
Opciones de Sonido
-nosound | Desactiva el sonido. Útil si la detección de la Sound Blaster cuelga tu ordenador o por si juegas al Nemesis en la oficina. |
-scc | Activa la emulación del SCC. Por defecto, no está activado, porque la emulación del SCC todavía no es perfecta. Sólo funciona con los Mappers #0 y #2. |
-sr <n> | Cambia la frecuencia de muestreo del sonido. El valor por defecto es de 45455 (calidad CD), aunque puedas necesitar disminuir este valor en máquinas lentas, o si tu tarjeta de sonido no es 100% compatible con una Sound Blaster. |
-fmpac | Activa la emulación del FM-PAC (YM2413). La emulación del FM-PAC es bastante limitada de momento, y la calidad de sonido es bastante pobre. Para activar correctamente el FM-PAC se necesita el FMPAC.ROM original (64kb) como cartucho 1. |
-speaker | Activa el sonido a través del altavoz interno del PC. El altavoz puede reproducir los 3 canales de tono del PSG al mismo tiempo, usando un algoritmo especial de multiplexación temporal. |
-speaq <n> | Cambia la calidad de sonido por el PC Speaker. Este valor controla la velocidad con la que los canales son multiplexados. El valor por defecto es de 1 y seguramente no querrás aumentarlo mucho, ya que la calidad empieza a bajar a partir de cierto punto. A mi me gusta "-speaq 2", pero puedes probar otros valores. El rango es de 1 a 9. |
Opciones de I/O
-diska <f.dsk> | Activa la emulación de la disketera y selecciona el fichero f.dsk como la imagen de disco. Las imágenes de disco tienen que estar en formato .DSK, y pueden ser de cuatro tipos diferentes: 40 pistas / 1 cara (180kb), 40 pistas / 2 caras (360 kb), 80 pistas / 1 cara (360 kb) y el típico 80 pistas / 2 caras (720 kb). Imágenes multi-disco creadas con COPY /B todavía no son soportadas. |
-disklow | La emulación de disco se hará a traves de los puertos I/O D0h-D4h. Esta opción está activa por defecto, y solo funciona con DISK.ROMs brasileñas port-based. Muchos programas brasileños necesitan esta opción, como Super Disk Copy, Hello, Chave Mestra y la versión en disco de Robocop. |
-diskhigh | La emulación de disco se hará a traves de los patches del BDOS. Esta opción funciona con la mayoría de DISK.ROMs, pero es más restrictiva que la anterior, porque solo se pueden usar .DSK's de 720kb, y el LED de la disketera no será emulado. |
-mount <dir> | Monta un directorio como la disketera A:del MSX. Con esta opción, no necesitas crear un fichero imagen de disco .DSK para jugar a juegos en formato .BIN. Mira en la sección de "Solución de Problemas" para más detalles. |
-tape <t.cas> | Activa la emulación de cinta a traves de los patches de la BIOS, y selecciona el fichero t.cas como la imagen de cinta. La emulación de cinta está restringida en esta versión, porque la imagen de cinta no puede ocupar más de 64kb. |
-joy | Activa la emulación de joystick. El joystick será conectado en el puerto A (en la mayoría de los casos, esto significa como player 1). Si quieres cambiar al port B, vete al debugger y aprende cómo hacerlo. El joystick se calibra automaticamente al arrancar BrMSX, así que no lo toques hasta que el emulador no arranque. |
-joysens <n> | Ajusta la sensibilidad del joystick. Valores válidos van de 0 a 7, y el valor por defecto es 3. Los usuarios de joypads deberían probar esta opción para conseguir más precisión. |
-fakejoy | Mapea el joystick A a través del teclado, con esta opción puedes jugar a juegos que necesitan joystick obligatoriamente (como Gauntlet) con el teclado. El mapeo para este modo es: Cursores= 4 Direcciones, Control Izq.= Botón 1, Alt Izquierdo= Botón 2. |
-autofire | Esta opción activa el disparador automático (La barra espaciadora se pulsará automáticamente). Esto es genial para juegos de naves como Gall Force. |
-autorun | Esta opción es similar a la de arriba, pero para los cursores izquierdo y derecho. Úsala en juegos como Decathlon o Hyper Sports. Aprieta las teclas izquierda y derecha a la vez para correr. |
-autospeed <n> | Ajusta la velocidad para "-autofire" y "-autorun". El rango es desde 0 (más rápido) a 9 (más lento). El valor por defecto es 5. |
-snespad | Activa un pad de SNES conectado al puerto LPT1 y lo hace funcionar como si fuera el joystick en el port A. Para aprender a construír un interface para el pad de la SNES, miralo en la página oficial de BrMSX. |
Opciones para Multiplayer
-server | Selecciona el ordenador como servidor. Sólo el monitor conectado al servidor mostrará la pantalla del MSX. Siempre usa el ordenador más rápido como servidor. |
-client | Selecciona el ordenador como cliente. El teclado de este ordenador actuará como el joystick B del MSX. La velocidad de este ordenador no importa, puedes usar un 386 lento como cliente de BrMSX. |
-com <port> | Selecciona el puerto serie COM en el que conectarás el cable serie. Esta opción es necesaria en ambos ordenadores. Puedes leer más sobre juegos multiplayer en la sección Multiplayer. |
Opciones de control
-nommx | Deshabilita las optimizaciones MMX. Usa este parámetro si BrMSX detecta una CPU MMX cuando realmente no la tienes. |
-nomouse | Deshabilita la detección del driver de ratón. Úsala en caso de conflictos con el driver del ratón. Sin driver de ratón el GUI no funciona. |
-novesa | Desactiva la autodetección del driver VESA. Úsala solo en caso de tener conflictos con el driver de tu tarjeta gráfica. Sin VESA 2.0, no podrás usar la emulación TV. |
-noled | Desactiva la emulación de los LEDs. Úsala solo si tu teclado parece que no detecta bien algunas veces las teclas. |
-nopentium | Desactiva las extensiones Pentium y la autodetección de la CPU. Úsala solo si la autodetección falla y provoca que se cuelgue tu ordenador. Si no tienes un Pentium no podrás ver el gráfico de la CPU gastada. |
-noenter | No habrá que pulsar enter al arrancar. Útil para los autores de front-ends. |
-help | Muestra una pequeña pantalla de ayuda. |
Dentro del emulador
El MSX tiene algunas teclas que no existen en el PC. El mapeo de ellas se describe en la siguiente tabla:
LGRA (GRAPH) | Left ALT |
RGRA (CODE/KANA) | Right ALT |
STOP | Page Up |
SELECT | Page Down |
HOME/CLS | Home |
'`^~ | `~ |
Ç | End |
Los LEDs del telcado también son emulados:
Caps Lock | Caps Lock |
Kana | Num Lock |
Disketera ocupada | Scroll Lock |
Algunas teclas tienen un significado especial:
F6 | Rebobina la cinta |
F9 | Graba un screenshot en el fichero BRMSX.PCX |
F10 | Para la emulación y entra en el debugger |
F12 | Para la emulación y entra en el GUI |
NumLock | Tecla para avance rapido, activando el modo TURBO cuando la pulses |
+ (keypad) | Sube el volumen |
- (keypad) | Baja el volumen |
El GUI también puede ser llamado con el botón izquierdo del ratón.
Interfaz Gráfica de Usuario
El GUI es muy fácil de usar (después de todo, esa es la intención!)
El menú se muestra en la parte izquierda de la pantalla, y tienes que usar el ratón con el botón izquierdo para elegir las opciones. Toca en cualquier sitio fuera de la ventana para volver a activar la emulación.
Las opciones del GUI son:
Reset | Resetea el MSX. Este reset es un soft-reset, ya que el contenido de la RAM y la VRAM queda intacto. |
Turn OFF | Apaga el ordenador. Esto es como un reset, pero borra toda la RAM y la VRAM. Tienes que tocar en Turn ON para volver al emulador. |
Load ROM | Esta opción carga una nueva ROM en el slot A. Las ROMs tienen que estar en el mismo directorio que BrMSX. |
CPU Graph | Esta opción enciende y apaga el gráfico de la CPU. |
PSG Graph | Esta opción enciende y apaga las barras de volumen del PSG. |
Save state | Esta opción graba el estado del MSX en un fichero llamado BRMSX.STA. Esto es genial para acabarse los juegos! |
Load state | Esta opción carga un estado previamente grabado. |
Quit | Esta opción sale de BrMSX y vuelve al DOS. |
Debugger
Si presionas ESC al principio, o F10 dentro de la emulación, entrarás en el Fudebug (Full Debugger). No explicaré las muchas cosas que aparecen en la pantalla. Si no entiendes nada de lo que aparece, entonces el debugger no es para ti.
El Fudebug es una herramienta muy poderosa para ayudar al programador MSX. Los comandos siempre tienen una letra, y algunos de ellos pueden recibir argumentos. Ten cuidado cuando pases argumentos, porque no hay backspace. Los valores introducidos tienen que ser siempre en hexadecimal.
Los comandos soportados son:
S | Salir del debugger y seguir con la emulación |
Q | Salir del debugger y salir al DOS. |
F7 | Trazar una sola instrucción del Z80. |
F8 | Trazar una instrucción del Z80 por encima. Usa este comando para saltar las instrucciones CALL y RST. |
U dddd | Desensamblar desde la dirección dddd. |
D dddd | Volcar la memoria desde la dirección dddd. |
Page Up | Mover la región del volcado de memoria hacia arriba. |
Page Down | Mover la región del volcado de memoria hacia abajo. |
Cursor Arriba | Mueve la ventana del desensamblador un byte hacia arriba. |
Cursor Abajo | Mueve la ventana del desensamblador un opcode hacia abajo. |
E dddd xx | Edita el byte que está en la dirección dddd, machacandolo con el valor xx. |
R rr dddd | Edita el valor del par de registros rr. "rr" puede ser AF, BC, DE, HL, PC, SP, IX, IY, AX(=AF'), BX(=BC'), DX(=DE') y HX(=HL'). |
B dddd | Sigue con la emulación pero habiendo puesto un breakpoint en la dirección dddd. |
F2 | Graba el estado del MSX al fichero BRMSX.STA |
F3 | Carga el estado del MSX del fichero BRMSX.STA |
1 | Selecciona la pantalla 1 del debugger. |
2 | Selecciona la pantalla 2 del debugger. |
0 | Para ver la pantalla del MSX. |
M | Selecciona el modo de emulación (normal, fast, turbo) |
Y | Enciende y apaga la VSync. |
V | Varía entre las diferentes resoluciones (320x200, 256x200, 512x384, 256x192) |
J | Cambia la emulación del joystick entre el Port-A, Port-B y ninguno. |
C | Calibra el joystick de nuevo. |
F1 | Muestra la pantalla de ayuda. |
Multiplayer
Con BrMSX, puedes conectar dos ordenadores para jugar juegos multiplayer, usando un cable serie. El primer ordenador controla el teclado del MSX (jugador 1), y el teclado del segundo ordenador hace de joystick B del MSX (jugador 2).
Las teclas para el segundo jugador son:
Tecla del jugador 2 | Significado |
Derecha | JOY-B Derecha |
Izquierda | JOY-B Izquierda |
Arriba | JOY-B Arriba |
Abajo | JOY-B Abajo |
Barra Espaciadora | JOY-B Botón 1 |
M | JOY-B Botón 2 |
Para empezar una sesión multiplayer, tienes que escribir esto en el ordenador más rápido "brmsx -server -com 2", cambiando si fuera necesario el "2" por el número de tu puerto COM.
Después de arrancar BrMSX en el servidor, escribe esto otro en el cliente "brmsx -client -com 1", de nuevo, asegúrate de poner el puerto COM correspondiente. Esto empezará la emulación en el modo multiplayer. Sólo el monitor del servidor mostrará la pantalla del MSX.
Para salir de la sesión multiplayer, sal del emulador en el cliente primero!! Si no lo haces así se colgarán los dos ordenadores.
Algunos juegos con opción para jugar 2 jugadores son: Konami's Soccer, Salamander, Konami's Ping Pong, Super Laydock, Yie Ar Kung Fu 2, Warroid, y muchos más que ahora no recuerdo.
Combinaciones de cartuchos
BrMSX soporta dos cartuchos a la vez. Esto es útil para programadores (puedes cargar Mega-Assembler y XBasic al mismo tiempo), pero también es útil en algunos juegos.
Muchos cartuchos esconden opciones secretas cuando se insertan al mismo tiempo con otros cartuchos. Algunos ejemplos son:
MegaROM Mappers
BrMSX soporta casi todos los MegaROM Mappers usados en los juegos MSX 1. Si BrMSX encuentra un juego en su base de datos interna, entonces se usará el autodetector. Sino, se usará el MegaROM Mapper #0.
Los mapeadores soportados son:
Juegos: Animal Land, Super Laydock, Jagur, Vaxol, Mirai, Donkey Kong, Digital Devil Story, The Fairy Land Story, Final Zone, 3 Kingdoms, 1942.
Dirección | Bloque |
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 |
Juegos: Nemesis 2, Nemesis 3, Salamander, King's Valley II, F1 Spirit, Parodius.
Dirección | Bloque |
5000h-57FFh | 4000h-5FFFh |
7000h-77FFh | 6000h-7FFFh |
9000h-97FFh | 8000h-9FFFh |
B000h-B7FFh | A000h-BFFFh |
9800h-9FFFh | SCC |
Juegos: Nemesis, The Maze of Galious, Shalom, Penguin Adventure.
Dirección | Bloque |
<ninguna> | 4000h-5FFFh |
6000h | 6000h-7FFFh |
8000h | 8000h-9FFFh |
A000h | A000h-BFFFh |
Juegos: Valis - The Fantasm Soldier, Hydlide 3, Fantasy Zone, Dragon Slayer 4.
Dirección | Bloque |
6000h-67FFh | 4000h-5FFFh |
6800h-6FFFh | 6000h-7FFFh |
7000h-77FFh | 8000h-9FFFh |
7800h-7FFFh | A000h-BFFFh |
Juegos: Gall Force, Eggerland Mystery 2, Golvellius.
Dirección | Bloque |
6000h-6FFFh | 4000h-7FFFh |
7000h-7FFFh | 8000h-BFFFh |
Juegos: Xanadu.
Dirección | Bloque |
6000h-67FFh | 4000h-5FFFh |
6800h-6FFFh | 6000h-7FFFh |
7000h-77FFh | 8000h-9FFFh |
7800h-7FFFh | A000h-BFFFh |
Numero de bloque=20h | SRAM |
Juegos: Hydlide 2.
Dirección | Bloque |
6000h-6FFFh | 4000h-7FFFh |
7000h-7FFFh | 8000h-BFFFh |
Numero de bloque=10h | SRAM |
Juegos: FM-PAC original.
Dirección | Bloque |
7FF7h | 4000h-7FFFh |
Memory layout
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 |
Solución de problemas
Respuestas a preguntas frecuentes:
P: ¿Cómo hago funcionar los juegos en formato .ROM?
R: Copia el fichero .ROM al mismo directorio de BrMSX y usa el GUI
del emulador. También puedes escribir "brmsx game.rom" si el
DOS no te asusta.
P: ¿Cómo hago funcionar los juegos en formato .DSK?
R: Simplemente escribe "brmsx -diska game.dsk". A partir de
ese momento, BrMSX actuará como un MSX real con unidad de disco.
P: ¿Cómo hago funcionar los juegos en formato
.BAS y .BIN?
R: Puedes usar la opción "-mount". Funciona así:
(1) Crea un directorio con "md c:\msxgames"
(2) Copia tus juegos a este directorio con
"copy game*.* c:\msxgames"
(3) Arranca BrMSX con "brmsx -mount c:\msxgames"
Después de crear el fichero .DSK, simplemente usa los comandos
RUN"GAME.BAS" o BLOAD"GAME.BIN",R desde dentro del BASIC.
P: Estoy intentando ejecutar el juego "Terramex" y no funciona!
R: Esto no es un fallo de BrMSX, simplemente es que el cargador del
propio juego no está bien programado. Intenta ejecutar el juego de
nuevo, pero esta vez arranca BrMSX con la opción "-ramslot 3". Algunos
juegos que necesitan esto son Terramex,Oh Shit y Camelot
Warriors.
P: "Gall Force", ese cartucho tan grande, no funciona!
R: Si el juego ocupa más de 32kb, lo que pasa es que BrMSX no
puede detectar correctamente el MegaROM Mapper para estos juegos. Intenta
usar el parámetro "-roma" con todos los valores disponibles, hasta que
encuentres uno con el que funcione.
P: Quiero jugar a "Zanac" pero la nave parpadea!
Seguro que es un error, ya que he probado la misma ROM en otro emulador y no
parpadea.
R: Este parpadeo también aparecerá en un MSX real, ya que
es una característica del VDP llamada "Ocultación del quinto
sprite". Algunos juegos la necesitan para mostrar los gráficos
correctamente, como Parodius, Goonies y Antarctic
Adventure. Puedes desactivar esta característica con el parametro
"-allspr". Si el parpadeo no aparece en otros emuladores, entonces, o no
emulan esta característica, o la tienen desactivada por defecto.
P: No oigo ningún sonido!
R: BrMSX solo soporta tarjetas de sonido Sound Blaster y 100%
compatibles. Algunos modelos viejos, como la Sound Blaster Pro, no son
soportados. BrMSX tampoco suena con la ESS audiodrive. Los usuarios de una
Gravis Ultrasound deben usar el emulador de Sound Blaster MEGAEM.
Simplemente dame tiempo suficiente y añadiré los drivers para
todas estas tarjetas. Mientras tanto, puedes probar el sonido a través
del altavoz interno del PC, o la versión de 22222Hz (brmsx22.exe).
P: Por qué "Bubble Bobble" y "Metal Gear" no funcionan con
BrMSX?
R: Estos son juegos de MSX-2. BrMSX solo emula el MSX-1 de momento.
P: Cuándo BrMSX emulará un MSX2?
R: Simplemente cuando acabe la emulación del MSX1. No tiene
sentido añadir la emulación del MSX2 si el MSX1 no está
totalmente implementado! Hay muchas características todavía no
implementadas en nigún emulador (principalmente las no documentadas),
y para conseguir una emulación perfecta, tengo que añadir todas
ellas.
P: Dónde puedo encontrar el test ZEX? Hay alguna
versión para 6502?
R: ZEX (Z80 Exercicer) es un programa para probar la compatibilidad de
un Z80. Lo puedes encontrar dentro de YAZE. YAZE son las siglas de Yet
Another Z80 Emulator y se encuentra disponible en sitios que tratan sobre
CP/M. La versión original de ZEX funciona bajo MSX-DOS, pero yo he
hecho una versión .ROM antes de añadir soporte para disco. Si te
interesa esta versión, mándame un mail. ZEX solo ha sido hecho
para el Z80, y no se encuentra disponible para ningún otro procesador.
P: Qué tengo que hacer para ejecutar "Metal Gear 2" con fMSX?
R: Por favor, no me preguntes cosas sobre fMSX, CJS o sobre cualquier
otro emulador de MSX. Gasto demasiado tiempo respondiendo e-mails, y este
tiempo podría ser mejor aprovechado programando BrMSX. Si tienes
problemas con cualquier otro emulador, contacta con Marcelo Eiras a
través de su página
http://www.geocities.com/~msxsite
(portugués),
o con TFH a través de la página
http://www.casema.net/~tfh
(inglés)
.
P: Puedo ser un beta-tester?
R: De hecho, ya lo eres, ya que todas las versiones que he sacado son
betas.
Créditos
Hay gente que cree que estoy haciendo BrMSX solo. Pero no es cierto. Realmente lo programo solo, pero BrMSX es mucho más que un simple programa. Mucha gente me ha ayudado contribuyendo con listados de ejemplo, data books, pruebas en MSX reales, informandome sobre errores o simplemente animandome.
Primero de todo, quiero agradecer a Arnon Cardoso. Fue su idea empezar un emulador de MSX brasileño. Deberíais probar su gran emulador de MSX hecho en Java. Algún día el PC morirá como tal, y BrMSX no será útil entonces. Pero un emulador hecho en Java tiene el potencial para ser usado siempre.
Muchas gracias a Sean Young. Él me dio muchas pistas en las primeras versiones de BrMSX (pero por supuesto la más importante de todas fue "a veces tienes que PARAR, y solo despues PENSAR" :). Las fuentes de Virtual MSX y sus páginas con información técnica fueron de gran ayuda.
No puedo olvidar a Isaac Santaolalla Solórzano. A veces creo que pasa más tiempo probando mi emulador que el suyo propio! Es un tío que realmente se lo pasa bien con su MSX. Prueba su emulador MSKISS, tiene muchas características que todavía no están presentes en BrMSX, como soporte nativo para GUS y detector de MegaROM Mapper.
Adriano Cunha ha sido una gran inspiración. Él ODIA los emuladores, y he tenido que hacer que BrMSX sea muy perfecto para que así él lo use. Después de todo, no ha sido imposible.
Muchas gracias a mi hermano, Raul Tabajara. Él ha hecho todos los gráficos de BrMSX, desde el diseño del GUI hasta el logotipo. Actualmente está buscando trabajo como diseñador gráfico para juegos, puedes ver más trabajos suyos aqui: http://www.lsi.usp.br/~ricardo/raul.htm, y para contactar con él simplemente mándame un e-mail a mi, a ricardo@lsi.usp.br.
Y por supuesto tengo que dar las gracias a Thomas Pytel. Sin su librería PMODE, yo nunca hubiera aprendido ensamblador en modo protegido, y BrMSX nunca hubiera sido tan rápido.
Si quisiera dar las gracias a todo el mundo que me ha ayudado, este fichero sería demasiado grande para bajar. Pero no puedo acabar este manual sin mencionar la ayuda 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 de Bandwagon, Peter Latimer, Alwin Henseler y toda la gente que me ha mandado e-mails informándome sobre errores y con comentarios. ¡Gracias a todos!
Si quieres traducir este manual al japonés, coreano, holandés,
italiano o cualquier otra lengua hablada por los muchos fans del MSX, por
favor contacta conmigo.
"¡No puedo creer ESO!", dijo
Alicia. "¿No puedes?", dijo la Reina, en un tono compasivo. "¡A veces, yo he sido capaz de creer hasta SEIS cosas imposibles antes de desayunar!" (Lewis Carroll) |