MSXAdvance GBA

From GameBrew
MSXAdvance
Msxadvance02.png
General
AuthorFluBBa (Fredrik Olsson)
TypeComputer
Version0.4
LicenseMixed
Last Updated2009/04/08
Links
Download
Website
Source


MSXAdvance is a MSX1 emulator for the Gameboy Advance. It was originally a quick and dirty hack of his ColecoVision emulator Cologne GBA since both systems have a Z80 CPU and the same VDP.

Features

  • A lot of games can actually be played.

Installation

Note: You must supply a BIOS to be able to run games. A freely available Bios can be found at here.

Run MSXAdvance.exe to add roms to the emulator.

Use the Bios tick box to add a BIOS.

User guide

Settings

Controller (settings for controller):

  • Controller - 1P=Joystick1, 2P=Joystick2, Cursor=Keyboard cursor keys.
  • Remapping - Use joypad to select key and press A to confirm.

Display (settings for the display):

  • Unscaled mode - L & R buttons scroll the screen up and down.
  • Scaling modes:
    • Hard - Every 6th scanline is skipped.
    • Normal - Every 5th & 6th scanline is blended equally.
    • Soft - All lines are blended differently (experimental).
    • Scaled modes - Press L+SELECT to change which lines are skipped/blended.

Other (misc settings):

  • Speed modes - L+START switches between throttled/unthrottled/slomo mode.
  • Sleep - START+SELECT wakes up from sleep mode (activated from menu or 5/10/30 minutes of inactivity).

Advanced

EWRAM speed:

  • This changes the waitstate on EWRAM between 2 and 1.
  • This can probably damage your GBA and definitly uses more power, around 10% speedgain. Use at your own risk.

Link transfer:

  • Send a MSX game to another GBA.
  • The other GBA must be in multiboot receive mode (no cartridge inserted, powered on and waiting with the "GAME BOY" logo displayed).
  • Only one game can be sent at a time, and only if it's small enough to send (approx. 128kB or less).
  • A game can only be sent to 1 (one) Gameboy at a time, disconnect all other gameboys during transfer.
  • Note: Use an original Nintendo cable.

PogoShell:

  • Add an empty file and a BIOS.
  • Copy msx.gba to the plugin folder, rename it to msxadvance.mb (or compress it to .mbz).
  • Then add wither one of the following line to the pogo.cfg file:
    • rom 1 msxadvance.mb 2
    • rom 1 msxadvance.mbz 2

Controls

Menu:

Up/Down - Select game

A/B - Start selected game

In game:

L+R - Open the menu

A - Choose

B or L+R - Cancel

MSX 1:

D-Pad - Joystick

A/B - Fire

L - 0

R - 1

Start - 2

Select - 3

R+Start - Bring up Keyboard

Screenshots

msxadvance3.pngmsxadvance4.png

msxadvance5.pngmsxadvance6.png

Known issues

Missing:

  • Not all keys are mapped to the GBA.
  • Correct sprite collision and overflow.
  • Screen mode 3.
  • Savestates.

Bugs:

  • Screen mode 1 is not correct.
  • The sound is not great.

Changelog

V0.4 2009/04/08

  • Fixed timing of HALT instruction.
  • Optimised all Z80 memory reads, one instruction and cycle shorter.
  • Optimised DEC opcodes.
  • Optimised SBC A/HL opcode.
  • Optimised CPI, CPD, CPIR & CPDR opcodes.

V0.3 2007/12/03

  • Added 64kB of RAM instead of 32kB.
  • Fixed initialization of horizontal position of keyboard.
  • Fixed initializing of all CPU regs on reset.
  • Fixed pushing and poping of AF register (BC Quest for Tires II).
  • Optimised some of the SBC instructions.
  • Optimised DAA opcode.
  • Optimised one of the SRA opcodes.
  • Optimised tile rendering.

V0.2 2006/04/30

  • Added a virtual keyboard.
  • Added better keymapping.
  • Added SCC sound emulation.
  • Added 32kB RAM instead of 16kB.
  • Fixed Multiboot transfer.
  • Fixed blending when used as plugin.
  • Better update timing in PAL mode.
  • Better game mapper detection.

V0.1 2006/03/30

  • Initial release.

V0.0 2006/03/07

  • Started Coding.

Credits

Huge thanks to Loopy for the incredible PocketNES and the builder.

Thanks to:

  • Reesy for help with the Z80 emu core.
  • Some MAME people for the AY38910 info.
  • Sean Young for the TMS9918 info.
  • Charles MacDonald for more VDP info.

External links

Advertising: