In 2015, Candy Kid was re-written in C#/.NET and XNA for Windows PC and ported to iOS / Android using MonoGame. After finding the original source code on SMS Power!, Candy Kid was re-written again in 8-bit.
Inspired from previous posts on Sega Console Programming and devkitSMS Programming Setup + Sample, Candy Kid is my fifth 8-bit video game written in C / Z80 assembler to target Sega Master System (SMS).
Let's check it out!
Note: previous titles published for the Master System include 3D City, Simpsons Trivia + Platform Explorer.
Download source code here.
Sega Retro Gaming post documents how to play video games like Candy Kid SMS using the Fusion emulator.
devkitSMS Programming Setup post documents development environment required to build C / Z80 source.
Eat all the candy to pass each level. Eat all bonuses to maximize your score! The 3x Candy "Mama" enemies Pro / Adi / Suz have different passive and aggressive personalities and alternate between scatter and attack.
Tools
Here is a list of Tools and frameworks that were used in the development of this project:
KEY | VALUE |
Programming | devkitSMS |
Compiler | sdcc 3.6 |
Assembler | WLA-DX |
IDE | Visual Studio 2015 |
Languages | C / Z80 |
Graphics | BMP2Tile 0.43 / GIMP 2 / paint.net |
Music | Mod2PSG2 / vgm2psg |
Emulators | Emulicious / Fusion / Meka |
ROM Hacking
You can hack this ROM! Download + dump CandyKid into Hex Editor, e.g. HxD, and modify bytes:
ADDRESS | VARIABLE | DESCRIPTION |
0x004F | Debugger | Used to show debugging info for game. |
0x0050 | Invincible | Non-zero value enables invincibility. |
0x0051 | FullBoost | Non-zero value enables maximum boost. |
0x0052 | Trees Type | Set value to 1=Show otherwise 2=Kill. |
0x0053 | Exits Type | Set value to 1=Open otherwise 2=Shut. |
0x0054 | Difficulty | Set value to 1=Easy otherwise 2=Hard. | 0x0055 | Game Speed | Set value to 1=Slow otherwise 2=Fast. |
0x0056 | World No. | Set start World no currently 1 to 10. |
0x0057 | Round No. | Set start Round no currently 1 to 10. |
0x0058 | Music Off | Set 0=Music to play otherwise silent. |
0x0059 | Sound Off | Set 0=Sound to play otherwise silent. |
Bonuses
- There are 4x different bonuses: 100 / 200 / 400 / 800 pts. Double bonus points after level 70.
- Player will receive extra 2,000 pts after eating all the candy and collecting all bonuses in level.
Cheats
- Press button 2 five times during Title screen and you'll be invincible each game this is actioned.
- Press and hold button 2 during game play to action Game Over and force quit out of the game.
- Press and hold button 2 on Splash screen to reset High score and all options previously saved.
Credits
Extra special thanks goes to sverx for the devkitSMS. Plus StevePro Studios would like to thank eruiz00 and haroldoop for sharing source code from SMS Homebrew projects. Many ideas here were used in this project!
Promotion
Thanks to SMS Power! for making this video. Here is the official Candy Kid Facebook page and Blogger label.
Summary
To summarize, Candy Kid has had a very interesting journey after first appearing on the Sega SC-3000 in 1984 to being ported to Windows PC, iOS + Android in 2015 and finally the Sega Master System in 2020.
In fact, after porting the original game in 2015 the ultimate goal was always to eventually back port Candy Kid to the Master System. Thanks to the awesome Indie game dev scene this goal has now been achieved!