Retaliate for the Commodore 64
Project to remake, using 6502 Assembly, the space shooter game Retaliate (Roku & Android) for the Commodore 64
Spring Update: 28-May-2019
I's official! RGCD announced, a couple of weeks ago, the physical release of Retaliate DX in cartridge, that will be available soon! Stay tuned because as soon as the DX version is availale, I will upload to this repository the CE (Community Edition) that will have the same code, but with my original sprites and SFX. To know more about the DX release click on the amazing opening screen, made by Jon Eggelton!
After developing remakes of classic 8bit games (Prince of Persia, Lode Runner, Donkey Kong, Moon Patrol) to the Roku platform (streaming box/TV OS) I decided to work the other way around, this time, developing for the Commodore 64 computer a version of one of the most successful games for Roku, the arcade-style space shooter Retaliate.
Originally created by Romans I XVI Retaliate has a unique concept, unlike the classic shooters (Space Invaders, Galaxian, Galaga) where you have infinity ammunition, here you start with no bullets at all! However you have energy stored for a shield that, when is activated, not only can destroy the aliens but most importantly collect their bullets so you are able to RETALIATE!
About the Project
I started studying 6502 assembly to work on my port of Prince of Persia, but at that time, the focus was just to understand pieces of the logic. As I own a Commodore 64 since 2015, I wanted to start a project for it, but always found too complex to start from scratch.
This changed when I came across the book called "Retro Game Dev - C64 Edition" by Derek Morris, with his simple approach, I got the motivation and some code to start with, along with the right tools to simplify the work (a development IDE and ready made libraries).
The game code on this project is a learning exercise, that was implemented upon Derek's mini-shooter-game example from the book (shared with no licensing restrictions). So, be aware that this is my first attempt on creating a game for the Commodore 64, and still is an ongoing project, this way, as I learn more, new features will be implemented. If you found bugs or have any suggestions please go on and report those at the Issues Backlog, and If you also want to collaborate with the game, fork the project and send your pull requests!
I'm also adding techincal documentation (memory map etc.) on the Wiki page of the project.
New Year's Update: 31-December-2018
As I predicted, it took me a few months (nights and weekends) to study and be able to implement the new features I planned for the game. I managed to incorporate a multiplex/sort routine that allowed increase the number of sprites on the screen, increasing the number of alien enemies and making the usability closer to the original game. I also added the destroyer alien (from the Android version) and a new concept of an Asteroid Field, as a tribute to the classic Arcade game, in order to explode an asteroid you need to hit it 3 times with a bullet (and it decreases in size) or hit with a missle collected from the destroyer. The game now is also translated to Portuguese (my native language) and Spanish.
Now, exactly one year after this repository was launched, I'm happy to announce that I partnered with RGCD to make a physical release of Retaliate for Commodore 64!
We managed to have great people involved including Richard Bayliss (music) and Trevor Storey (graphics). The "community edition" source-code will be released here, the same day the physical release, the only difference will be the graphics, for the community edition I will keep my own sprites, but the implementation of all new features will be available here, including some intermediate releases, so you can see the progress I made during 2018.
Check the teaser video below for a quick preview!
My main goal is to implement the functionality to reproduce (as much as possible) the original game mechanics and graphics. You can see below a comparison of the ship sprites I created, based on the original Roku game.
The current release (v0.3) is the last public Beta version and it brings a SID music during the game play, bug fixes, additional screen and settings.
Open the Changelog to check all the currently implemented features.
How to Play the Game
You can run the game on a real Commodore 64/128 or using an emulator, below the two methods:
Using a Commodore 64/128 with Floppy Disk or SD Card
- Download the latest D64 file from the release page
- Save it into the media you need (floppy disk or SD Card)
- Mount the media and turn on your computer
- Execute: LOAD "RETALIATE",8,1
- Execute: RUN
Using a Commodore 64 Emulator
- Download the latest D64 file from the release page
- Open VICE x64 emulator
- Click on menu option File->Autostart disk/tape image...
- Select the D64 file
Build and Test
- Download the repository
- Download and install VICE Emulator
- Download and install CBM .prg Studio (v3.12 or newer)
- Open CBM .prg Studio and configure VICE location
- Open project file retaliate.cbmprj
- Press CTRL+F5 (build project and execute)
These are the books, music, tools and websites that are helping me to develop this project:
- Retro Game Dev: Book by Derek Morris
- Romans I XVI Gaming: Original game developer
- Retaliate for Roku: Open Source Repo
- Music "Scout" by Jeroen Tel
- VICE: Versatile Commodore Emulator
- CBM .prg Studio: IDE by Arthur Jordison
- Project One: Graphic editor by Resource
- Codebase64: C64 Programming Wiki
- 6502.org: The microprocessor resource
- Dustlayer: Blog with C64 Tutorials by @actraiser
- Commodore 64 Resources by Peter Kofler
My Other Retro Game Ports/Remakes
- Prince of Persia for Roku: Video - Repo
- Lode Runner for Roku: Video - Repo
- Donkey Kong for Roku: Video - Repo was taken down by Nintendo
- Moon Patrol for Roku: Video - Repo
My Other Links
- My website is https://lvcabral.com
- My twitter is @lvcabral
- My podcast is PODebug Podcast
- Check my other GitHub repositories
Copyright (C) Marcelo Lv Cabral. All rights reserved.
Licensed under MIT License.