More actions
SMSAdvance | |
---|---|
General | |
Author | FluBBa (Fredrik Olsson) |
Type | Handheld |
Version | 2.5 |
License | Mixed |
Last Updated | 2009/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.
- 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
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
- Author's website - http://hem.passagen.se/flubba/gba.html
- PocketHeaven - http://boards.pocketheaven.com/viewforum.php?f=40