Portfolio

Alistair's Magic Box - Windows version

BETA - 999 Challenge

Download latest version (0.44)

To do the 999 challenge you will need to copy the .nines_source folder from the download into your _magicbox folder.

To play against an online opponent in the 999 challenge you will need to follow the instructions for networking.


BETA - Boss Rush Mode

This is a new feature I'm working on. Every time you hit a boss it switches you to a different boss battle! Can you defeat them all?

Download Boss Rush BETA version (0.44)

How to use

Follow the steps for the usual build below. Then copy the .boss_rush_source folder into your _magicbox forlder.

If you have ROMs of Sonic 1, 2, 3, or Knuckles in your _magicbox folder they will be included in the boss rush.

On the startup menu go to BOSS RUSH (BETA) and switch it to "ON".

Then select any game as normal. You will be immediately put into Boss Rush mode in a randomly-selected game.

How do I use live splits?

I've made a tracker specially for this. Unzip the BossRushTracker zip file and run the .exe file inside it.

Input the location of your _magicbox folder into the box at the bottom and it will automatically track your time in each boss.

When running the Magic Box, go to the BOSS RUSH menu. Make sure that EXPOSE DATA TO TRACKER is set to ON.

How do I use custom music?

Follow the instructions for live splits above.

In the folder with the BossRushTracker.exe there is a folder called music. Put mp3 files in that folder.

When running the Magic Box, go to the BOSS RUSH menu. Make sure the following are set to ON:
START NEW BOSS RUSH
EXPOSE DATA TO TRACKER
USE EXTERNAL MUSIC

Can I play against an online opponent?

To play against an online opponent you will need to follow the instructions for networking.

Whenever you hit a boss it will switch your opponent's game.

To enable this, go to the Boss Rush menu, and under the Switch Triggers menu switch on Networked Boss Hit. You may want to switch the other triggers to OFF.

What's not finished yet?

This has only been tested against one set of ROMs. It may not work with all versions of the games.

The tracker is a bit scruffy.

Which versions of the games have you tested this with?

Sonic 1 - Rev 00
Sonic 2 - Rev 01
Sonic 3 - Rev 00
Sonic & Knuckles - Rev 00
Sonic 3D Blast (does not work with tracker yet)

Download latest build (0.44)

A Mega Drive emulator that switches to a different Sonic game every time you collect a ring. Built by editing the open-source emulator GenesisPlusGX. My source code is available on GitHub.

New feature: Network & Twitch play

Network play is supported from version 0.13 upwards. Twitch Chat interactions are supported from version 0.15 upwards. You will need to download the Magic Box VS Communicator to make this work.

Network/Twitch Play Setup Instructions

Supported games

Currently detects rings being collected in the following games:
Sonic the Hedgehog (GEN, MS, GG)
Sonic the Hedgehog 2 (GEN, MS, GG)
Sonic the Hedgehog 3 (GEN)
Sonic & Knuckles (GEN)
Sonic 3 & Knuckles (GEN)
Sonic 3D Blast (GEN)
Sonic Spinball (GEN)
Sonic Chaos (MS, GG)
Sonic Triple Trouble (GG)
Sonic Blast (MS, GG)

It also detects specific actions in the following games as if they were rings:
Dr Robotnik's Mean Bean Machine, Puyo Puyo and Puyo Puyo Tsu (GEN)
Streets of Rage 1, 2 and 3 (GEN)
Shadow Dancer, Revenge of Shinobi and Shinobi III (GEN)
Micro Machines 1, 2 and 96 (GEN)
Gunstar Heroes (GEN)
Ecco the Dolphin, Ecco the Tides of Time (GEN)
The Lucky Dime Caper (MS)
Mickey Mouse: Castle of Illusion (MS)
Wonder Boy III: The Dragon's Trap (MS)

Setup Instructions

Step 1: Install RetroArch

Download RetroArch for Windows (32-bit version).

Please ensure you are running the 32-bit version of RetroArch, as the emulator will not run with the 64-bit version. I hope to fix this soon.

Run the installer for RetroArch.

Step 2: Install the custom version of the emulator

Download Alistair's Magic Box for Windows (v0.26)

If you have problems with this version please try version 0.16

Unzip the downloaded ZIP file

Copy the file genesis_plus_gx_libretro.dll into the RetroArch downloads folder.

To find the location of this folder, open RetroArch and go to Load Core > Install or Restore a Core. The location of the folder will be at the top of the window.

Open RetroArch and go to Load Core > Install or Restore a Core.

Navigate to your downloads folder and select genesis_plus_gx_libretro.dll.

Step 3: Add your games

Navigate to your RetroArch folder. It should be one level up from the downloads folder.

Add a new folder called _magicbox

Copy and paste your Sonic game ROMs into this folder.

Works with all Genesis/Mega Drive games, but things to do with collecting rings only work in the following games:
Sonic the Hedgehog
Sonic the Hedgehog 2
Sonic the Hedgehog 3
Sonic & Knuckles
Sonic 3 & Knuckles

Other games can be swapped on a timer: e.g. every 5 seconds or every 30 seconds.

Step 4: Play a game!

Open RetroArch and select Load Content. Load any ROM.

If installation has worked you should see a list of the ROMs in your _magicbox folder on the left-hand side of the screen.

If it has detected any ROMs in your _magicbox folder it will run the first one in the list, regardless of which ROM you selected.

Using save states

Because this emulator juggles mutliple save states for different games, I've implemented functionality for save states beyond what's built into RetroArch by default

Enabling save states on start up

To begin all your games from their last saved state, switch BEGIN WITH SAVED STATE to ON

To choose how frequently all your save states are stored, use the AUTO-SAVE STATE menu item.

Using save states mid-game

Hold down UP + START + B to access the in-game menu

Press UP or DOWN to choose an item. Press START to make it happen

Version history

v0.44 (Download)

Added heart rate monitor support

v0.42 (Download)

9999 Challenge bugfix: 10-ring boxes in Sonic 2/3/Knuckles no longer snap your ring count back to 999
9999 Challenge bugfix: you can complete the challenge by getting a 10-ring box in 3D Blast
999/9999 Challenges: gambling machines actually no longer work now

v0.41 (Download)

999 Challenge can also be 9999 Challenge - good luck!
Fixed bugs in Sonic 3D Blast in 999 Challenge
Gambling machines no longer work in 999 Challenge
999 Challenge has better VS mutliplayer
Boss Rush tracker now tracks what options you have selected and which games are active

v0.39 (Download)

Adds support for Blues Spheres (Sonic 1 + Sonic & Knuckles lock-on)
Can now swap after every 1, 2, 5 or 10 rings
Adds validation data at end of Boss Rush
Adds Bosh Rush Doomsay Zone ring bonus back in
Adds 999 Challenge
Boss Rush can send networked swaps on hit boss
Can use "swap on rings or boss hits" in Sonic 1, 2, 3, Knuckles and 3D Blast

v0.38 (Download)

Adds support for Sonic 3D Blast in Boss Rush

v0.35 (Download)

Bugfix - fixes crash on startup for new installs

v0.34 (Download)

Version number now shows on setup screens
Fix tracker bugs where details can go off-screen
Tracker can now manage custom background music

v0.32 (Download)

Stages no longer have debug/level select active.
Tracker scales better.
Swap and death counter work better.
Improvements to deterministic RNG.

v0.31 (Download)

Boss Rush now exposes data to a tracker.
A tracker built in Unity tracks your best times.

v0.30 (Download)

Boss Rush now allows you to seed the order of bosses
Bossh Rush maintains ring count between bosses

v0.28 (Download)

Bugfixes and additional options for Boss Rush

v0.27 (Download)

Addition of boss rush mode for Sonic 1, 2, 3 and Knuckles

v0.26 (Download)

Bugfixes for Streets of Rage 2 & 3 and the Micro Machines games:
They switch based on their usual triggers if "switch on land" enabled
They observe the cooldown timer

v0.25 (Download)

When you have "switch on land" enabled unsupported games will switch based on their usual behaviour. (E.g. Puyo Puyo will still switch when you group four beans)

v0.24 (Download)

Sonic 1, 2, 3 and Knuckles can now switch when Sonic lands on the ground.
Cooldown time can now be 2.5, 5 or 15 seconds

v0.22 (Download)

I can't remember what I changed this time - sorry! I think it was mostly stuff to support the live shows. Did I mention I have a special kit for this to show at events?

v0.19 (Download)

Can switch off rewind feature (is off by default)

v0.18 (Download)

Fix bugs in death counter
Add Ecco the Dolphin and Ecco the Tides of Time
Twitch users can use get command to peek at RAM values Rewind goes back further
Alert on startup about useful button functions

v0.17 (Download)

Death counter viewable in UI
Added Lucky Dime Caper (SMS) and Castle of Illusion (SMS)
Colour remove effect no longer affects swap count overlay
Players can hold values in memory using the Twitch interface

v0.16 (Download)

Allow Twitch users to type "random" as a number
Allow Twitch users to give single-digit values and 3-digit or 5-digit RAM locations
Add a rewind symbol when rewinding
Switching off "remove colours" in Twitch app resets the screen to normal
Master System can accept RAM values above 0x2000 sent by Twitch users
Fix but where Twitch users send 00 and it gets read as 01

v0.15 (Download)

Added rewind feature (hold START + B + LEFT)
Added support for Twitch integration in the VS Communicator
VS Communicator can now write to specific areas in RAM

v0.14 (Download)

Added functionality to delete colours when you get a ring

v0.13 (Download)

Improved support for Magic Box Communicator (network play, still in beta)
UI now shows if hacks in a category are activated

v0.12 (Download)

Added support for Gunstar Heroes
Now reads messages delivered by Magic Box Communicator (network play, still in beta)

v0.11 (Download)

Implemented infinite lives in Shinobi III, Shadow Dancer and Streets of Rage trilogy
Added support for Micro Machines 1, 2 and 96
Game switching in Streets of Rage 2 and 3 happens the instant you defeat an enemy

v0.10 (Download)

Bugfix: get ring to speed up works in Sonic 2, 3 and Knuckles
Added DOWN + B + START as insta-kill shortcut.

v0.09 (Download)

New hack: getting a ring writes data into the level (Sonic 1, 2, 3 and Knuckles)
Rearrange hack-select menu to have sub-menus
Can make game-swap happen in alphabetical order of the ROM file names
File names are shortened instead of going off the screen in menu

v0.08 (Download)

Adds support for Game Gear Sonic games
Infinite lives and time work in Game Gear and Master System games
Detects an empty _magicbox folder and gives you a warning
Detects .zip files and gives you a warning (as it cannot read them)
Searches for games in sub-folders of _magicbox
Added support for Puyo, Shinobi and Streets of Rage games

v0.07 (Download)

Detects rings in Sonic 3D Blast special stages
Detects Master System games with .sms or .bin file extension
Detects rings in Sonic 1, 2 and Chaos for Master System
Sonic Spinball lives counter is now only updated periodically (so it doesn't freeze on ending screen)
START + UP + B menu no longer renders as totally black (used to happen in Sonic Spinball ending screen)

v0.06 (Download)

Detects rings in Sonic Spinball and Sonic 3D Blast
Added a debug menu for finding useful RAM values

v0.05 (Download)

Can remove games from random selection in the UP + START + B menu
Can maintain Sonic's lives/rings/time/score/momentum/top-speed across games
Can activate/deactivate effects from the UP + START + B menu
New graphics-related hacks that work for all games:
Do not draw sprites
Do not draw backgrounds
Sort pixels by colour
Re-map colour palettes

v0.04 (Download)

Access the in-game menu by holding UP + START + B
Save save states from the in-game menu
Save save states to disk at user-defined intervals
Load save states from start-up or during games

v0.03 (Download)

Added ability to toggle special options on and off:
When games should switch
Video RAM can be carried over during a game switch
Infinite lives/time
Sonic speeds up on collect ring

v0.02 (Download)

Allow player to choose the starting game from an in-game menu

v0.01 (Download)

First release