Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

SMSAdvance GBA

From GameBrew
SMSAdvance
Smsadvanceflu02.png
General
AuthorFluBBa (Fredrik Olsson)
TypeHandheld
Version2.5
LicenseMixed
Last Updated2009/01/26
Links
Download
Website
Source

SMSAdvance is a Game Gear/Master System/SG-1000 emulator developed for the Game Boy Advance. The source code is based on PocketNES.

The main program is a windows-injector, used to inject Master System ROMS into the provided .gba file.

Features

  • Most things you'd expect from an SMS emulator.
  • Except for:
    • Correct sprite collision and overflow.
    • Speech samples.
    • YM2413 emulation.
    • EEPROM save for the few GG games that use it.
    • Screen mode 3 (not really used).

Installation

Run SMSAdvance.exe to add roms to the emulator (check your rom).

Do no overwrite the original .gba file.

User guide

Menu

Controller:

  • Autofire - Select if you want autofire.
  • Controller - 2P control player 2, Link is used to linkup 2 GBAs.
  • Swap A/B - Swap which GBA button is mapped to which SMS/GG button.
  • Use R as Start - Map the GBA R button to the GG Start button.
  • Use Select as Reset - Map the GBA SELECT button to the SMS Reset button.

Display:

  • Display - Here you can select if you want scaled or unscaled screenmode.
    • Unscaled mode - L & R buttons scroll the screen up and down.
    • Scaled modes: Press L+SELECT to adjust the background.
  • Scaling - Here you can select if you want flicker or barebones lineskip.
  • Gamma - Lets you change the gamma ("brightness").
  • GG Border - Lets you change between black, bordercolor and none.
  • Lock toprows - For unscaled screenmode.
    • Some games use this automaticly, Double Dragon, OutRun etc.
    • But you can also choose to force it.
  • Perfect sprites - Uses a lot of cpu, only use when really necessary.
  • Disable background - Turn on/off background rendering.
  • Disable sprites - Turn on/off sprite rendering.

Other Settings:

  • VSync - Switch between speed modes, can also be toggled with L+START.
    • On - Will wait for the next vsync if needed, best for most games.
    • Force - Can help with graphics in some games, often slow.
    • Off - Can speed up some games if they don't allready use all cpu time.
    • Slowmo - Good for beating that extra fast game.
  • FPS_Meter - Toggle fps meter.
  • Autosleep - Change the autosleep time, also see Sleep.
  • EWRAM Speed - Use with caution!
  • Autoload state - Toggle Savestate autoloading. Automagicaly load the savestate associated with the selected game.
  • Fake spritecollision - Some games require this, Pit Fighter doesn't like it.
  • Region - Change the region of the SMS and video standard.
  • Use BIOS - If you have added a BIOS you can select if you want to use it.
  • Machine - Here you can select the hardware, Auto should work for most games.

Link Transfer:

  • Lets you transfer small games to other GBAs, also see the advanced topic.

Go Multiboot:

  • You can use the Go Multiboot feature to force the game to run in multiboot mode.
  • Useful if you want to boot someone else up and eject the cartridge.
  • Do not eject cartridges from a GameBoy Player as it will just reset.

Save Manager:

  • Quick savestate - Creates a savestate/overwrites the current if one exists (R+SELECT).
  • Quick loadstate - Load a savestate associated with the current game (R+START).
  • Savestate - Select if you want to overwrite an old state or create a new.
  • Loadstate - Select which state you want to load.
  • Save SRAM - Save the SRAM for the current game.
  • Manage savememory - Lets you erase SRAM (for now).

Others:

  • Sleep - Put the GBA into sleepmode (START+SELECT to wake up).
  • Restart - Select a new game.
  • Exit - Exit the emulator back to Pogo or the FA/F2A menu.

Note: Make sure your flashing software allocates 64kByte/512kbit SRAM for SMSAdvance.

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 SMS 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.
  • Use an original Nintendo cable.

PogoShell:

  • Copy smsadvance.gba to the plugin folder (or compress it to mbz before you copy it), rename it to smsadvance.bin.
  • Then add either one of the following line to the pogo.cfg file:
    • sms 1 smsadvance.bin 2
    • sms 1 smsadvance.mbz 2

Controls

Up/Down - Select game

A/B - Start selected game

L+R - Menu

A - Choose

B or L+R - Cancel

Screenshots

smsadvanceflu3.png smsadvanceflu4.png smsadvanceflu5.png

Changelog

V2.5 2009/01/26

  • Added support for GG Bios from Pogoshell.
  • Added mapper support for new Korean games.
  • Changed interrupt method so more cards should be able to patch SMSA.

v2.4 2008/04/16

  • Fixed config loading for gamma setting.

V2.3 2008/03/28

  • Fixed games branching over banks with the new VRAM copy (Sonic 1).

V2.2 2008/03/27

  • Added copying of first 32kB ROM to VRAM for faster execution.
  • Added selection of machine.
  • Added correct noise generation for SG-1000 emulation.
  • Added correct palette in TMS9918 modes on SMS machines.
  • Added different vdp capabilities depending on selected machine.
  • Added some very basic Mode5 support when Machine=MegaDrive.
  • Added different io maps depending on selected machine.
  • Added support for the SMS1 tilemap address masking (Ys(J)).
  • Added support for turning on/off internal RAM.
  • Added auto save of SRAM (if it's allready present) when entering menu.
  • Added auto turn off of Bios when no header found (on machine=Auto).
  • Added auto region (Pop Breaker GG (J)).
  • Fixed support for Dodgeball King (KR).
  • Fixed pushing and poping of AF register (Adventure of Batman GG).
  • Fixed sprite bugs in unscaled mode on Codemasters games.
  • Fixed initializing of all CPU regs on reset.
  • Fixed timing of HALT instruction.
  • Fixed palette setting for TMS9918 modes on GG.
  • Fixed noscrolling for TMS9918 modes.
  • Fixed up Mode1 graphics a bit.
  • Fixed correct HCounter and latching.
  • Better switching between TMS9918 and SMS video modes.
  • More info shown from the game header.
  • Optimised tile rendering for mode 0 & 2 (for real this time).
  • Optimised all Z80 memory reads, one instruction and cycle shorter.
  • Optimised DAA opcode.
  • Optimised DEC opcodes.
  • Optimised SBC A/HL opcode.
  • Optimised one of the SRA opcodes.
  • Optimised CPI, CPD, CPIR & CPDR opcodes.

V2.1 2007/05/08

  • Optimised tile rendering for mode 0 & 2.
  • Fixed a bug where GG games set the "lock-toprow" bit (Sonic Drift demo).
  • Added support for the SG-1000 games Mahjong and Home Mahjong.
  • Added support for RAM on some SG-1000 games (The Castle, Othello...).
  • Fixed clearing of SMS VRAM when no bios used.

V2.0 2006/07/17

  • Added "Go Multiboot" menu option.
  • Added menu option for disabling background/sprites.
  • Fixed a bug in the screen on/off behaviour.
  • Fixed a bug in SRAM loading when using a BIOS.
  • Fixed default config.
  • Fixed Pause & Reset buttons when linking 2players.
  • Removed the save management menu when multibooting.
  • Optimised tiledecoding.
  • Optimised some of the SBC instructions.
  • Optimised EI instruction.
  • Optimised IO port access.

V1.9 2006/06/03

  • Added Savestates.
  • Added support for Ernie Els Golf.
  • Fixed Start/Select going through when using L/R + Start/Select.
  • Fixed gamma settings acting directly.
  • Fixed Codemaster mapper a bit, now works with BIOS.
  • Fixed header detection, all GG games that use SMS mode now uses the GG BIOS.
  • Updated the readme a bit.

V1.5 2006/05/13

  • Fixed volume attenuation.
  • Fixed soundclicks in rom selection menu.
  • Fixed a bug with the new sprite collision.
  • Fixed some bugs with the sprites in Mode 0 & 2.
  • Fixed a rare background bug in Mode 0, 1 & 2.
  • Fixed cpu timing for both PAL & NTSC (confirmed on real HW).
  • Better update timing in PAL mode.
  • More colorful SG-1000 palette.
  • Optimised BIT7 instructions.
  • Optimised some of the shift instructions.
  • Optimised DD/FD instructions.

V1.4 2006/01/17 Added fake support for sprite collision (option).

V1.3 2006/01/15

  • Added support for running the GG bios in SMS mode.
  • Added support for all SMS Bioses.
  • Added option in builder for "empty" slot at the end of ROMlist. (Loopy).
  • Added option to lock the 2 toprows in unscaled mode.
  • Added "Perfect Sprite" option for games like:
    • Global Gladiators.
    • GP Rider (GG).
    • Speedball 2.
    • Xenon 2.
  • Added emulation of locking the right side of the screen, games:
    • Gauntlet.
    • Golvellius.
    • Griffin (GG).
    • Line of Fire.
    • Megumi Rescue.
    • Rygar.
    • Satelite 7.
  • Fixed IO port 2, Laser Ghost.
  • Fixed Monaco GP, SG-1000.
  • Fixed the support for Jang Pung II (KR).
  • Fixed priority on zoomed sprites in mode 0 & 2 (Bank Panic, SG-1000).

V1.2 2005/11/30

  • Added support for graphics mode 0 & 2 (F-16 Fighter, SG-1000 games).
  • Now saves the whole (32kB) SMS SRAM.

V1.1 2005/11/03

  • Added sprite following (somewhat).
  • Fixed background color (lots of games).
  • Fixed Game Over screen on Rambo III.
  • Fixed sprite bugs on Codemasters game in scaled mode.
  • Optimised CPU abit, again.

V1.0 2005/10/14

  • Fixed Codemasters mapper (broken in V0.9).
  • Cleaned up the mapper code a bit.

V0.9 2005/09/26

  • Added support for the GG BIOS.
  • Added config for using Select as Reset button.
  • Fixed Shanghai 2.
  • Fixed Ryu Kyu.
  • Fixed Space Gun.
  • Fixed a bug in joypad reading (Street Fighter II).
  • Optimised mapper detection.
  • Optimised sound mixer.
  • Optimised CPU abit.

V0.8 2005/09/03

  • Added support for Street Fighter II.
  • Added config for using R as Start.
  • Fixed Pause in Robocop 3.
  • Fixed some scrolling glitches (Gunstar Heroes intro, Rygar).

V0.7 2005/08/18

  • Reduced sprite flicker in Arch Rivals.
  • Fixed Rise of the Robots (HBlank IRQ enabled at start).

V0.6 2005/08/15

  • Fixed Gunstar Heroes (bug in V0.5).

V0.5 2005/08/13

  • Added Codemasters & Korean mappers.
  • Added 32k SRAM support for Shining Force 2 & 3 (not saved yet).
  • Fixed a memory management bug again (Shinobi in some cases).
  • Fixed a rendering bug in 224 mode (Codemasters games).

V0.4 2005/08/10

  • Fixed memory management again (Shinobi, The Ninja, SDI).
  • Fixed a rendering bug in GG mode (GG Aleste).
  • Fixed sprite offset -8 (Ghouls'n Ghosts).

V0.3 2005/08/07

  • Fixed nametable switching a bit (Sylvan Tale, Road Rash).
  • Fixed 256x224 screen for GG games (Star Trek games).
  • Fixed memory management a bit (Ys, Terminator).

V0.2 2005/08/02

  • Fixed sprites in Golvelius.
  • Fixed hanging in StarGate.

V0.1 2005/07/30

  • Initial release.

V0.0 2005/07/06

  • Started Coding.

Credits

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

Thanks to:

  • Dwedit for maintaining the GBAMP version of SMSAdvance.
  • Reesy for help with the Z80 emu core.
  • Some MAME people + Maxim for the SN76496 info.
  • Charles MacDonald (http://cgfm2.emuviews.com/) for VDP info.
  • Omar Cornut (http://www.smspower.org/) for help with various SMS stuff.
  • Vinpire for the splashscreen.
  • The crew at PocketHeaven for their support.

External links

Advertising: