Skip to content

Commit 11f926c

Browse files
committed
Version Beta 0.2 - Hangar Screen and Skill levels
- Added 3 Difficulty Levels (Easy, Normal, Hard) - Added 4 new ship sprites (based on the original game) - Implemented Hangar Screen to select ship model, ship and shield colors - Added option to save high scores and hangar settings to disk - Added Game Over screen with mission statistics - Added more aliens wave configurations
1 parent eb0f14c commit 11f926c

25 files changed

+1243
-227
lines changed

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
## Retaliate 64 Changelog
2+
3+
##### v0.2 - 18-Jan-20178 - Hangar Screen and Skill levels
4+
5+
- Added 3 Difficulty Levels (Easy, Normal, Hard)
6+
- Added 4 new ship sprites (based on the original game)
7+
- Implemented Hangar Screen to select ship model, ship and shield colors
8+
- Added option to save high scores and hangar settings to disk
9+
- Added Game Over screen with mission statistics
10+
- Added more aliens wave configurations
11+
12+
##### v0.1 - 30-Dez-2017 - Initial Version
13+
14+
The main additions/changes to the code from the book were:
15+
16+
- Added a splash screen for the game
17+
- Added the Retaliate logo (as sprites) on the Menu
18+
- Added a intro screen with game story/instructions
19+
- Added a credits screen
20+
- Changed sprites of the ships to reproduce Retaliate design
21+
- Changed aliens movement from swinging horizontally to moving down vertically
22+
- Implemented ship-to-ship collision logic
23+
- Limited the vertical movement of the player ship
24+
- Implemented the shield (activated with joystick down)
25+
- Implemented the shield energy gauge on the bottom line
26+
- Implemented limited bullets for player, and added an Ammo counter on screen
27+
- Implemented bullet collection feature (using the energy shield)
28+
- Reduced to a single life for the player
29+
- Changed score system to: 5 points killed by shield, 10 points killed by bullet
30+
31+
---
32+
Original repository <https://github.com/lvcabral/retaliate64>
33+
Copyright (C) 2017,2018 Marcelo Lv Cabral - <https://lvcabral.com>

README.md

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Retaliate for the Commodore 64
22
Project to remake, using 6502/6510 Assembly, the space shooter game Retaliate (available on Roku & Android)
33

4-
![Retaliate Screens](http://lvcabral.com/images/C64/RetaliateScreens.png)
4+
![Retaliate Screens](http://lvcabral.com/images/C64/RetaliateScreens02-900px.png)
55

66
## Introduction
77
After developing remakes of classic 8bit games (Prince of Persia, Lode Runner, Donkey Kong) to the Roku platform (streaming box/TV OS)
@@ -27,38 +27,21 @@ for the Commodore 64, and still is an ongoing project, this way, as I learn more
2727
If you found bugs or have any suggestions please go on and report those at the [Issues Backlog](https://github.com/lvcabral/retaliate64/issues),
2828
and If you also want to collaborate with the game, fork the project and send your pull requests!
2929

30-
![Retaliate Gameplay](http://lvcabral.com/images/C64/retaliate64-beta-gameplay-300px.gif)
31-
3230
### Features
33-
With this initial release my main goal was to implement the basic funcitionality to reproduce (as much as possible) the original game mechanics and graphics.
34-
35-
The main additions/changes to the code from the book were:
36-
37-
- Added a splash screen for the game
38-
- Added the Retaliate logo (as sprites) on the Menu
39-
- Added a intro screen with game story/instructions
40-
- Added a credits screen
41-
- Changed sprites of the ships to reproduce Retaliate design
42-
- Changed aliens movement from swinging horizontally to moving down vertically
43-
- Implemented ship-to-ship collision logic
44-
- Limited the vertical movement of the player ship
45-
- Implemented the shield (activated with joystick down)
46-
- Implemented the shield energy gauge on the bottom line
47-
- Implemented limited bullets for player, and added an Ammo counter on screen
48-
- Implemented bullet collection feature (using the energy shield)
49-
- Reduced to a single life for the player
50-
- Changed score system to: 5 points killed by shield, 10 points killed by bullet
31+
My main goal is to implement the basic functionality to reproduce (as much as possible) the original game mechanics and graphics.
32+
The current release (v0.2) introduces the new ship sprites (image below) and the Hangar Screen to select and save the ship model and colors.
33+
34+
![Player Ship Models](http://lvcabral.com/images/C64/retaliate-ships-comparison.png)
35+
36+
Open the [Changelog](https://github.com/lvcabral/retaliate64/blob/master/CHANGELOG.md) to check all the currently implemented features.
5137

5238
### ToDo List
5339
The current planned improvements are listed below:
5440

5541
- Multiplex sprites to have bigger alien waves
56-
- 3 Difficulty Levels (Easy, Normal, Hard)
57-
- Hangar Screen to select ship model and shield color
5842
- Add Gameplay Background Music (any SID expert to help?)
5943
- Improve sound effects
6044
- Multiple high scores table with names
61-
- Save high scores to disk
6245

6346
## How to Play the Game
6447
You can run the game on a real Commodore 64/128 or using an emulator, below the two methods:
@@ -87,8 +70,10 @@ You can run the game on a real Commodore 64/128 or using an emulator, below the
8770
5. Open project file retaliate.cbmprj
8871
6. Press CTRL+F5 (build project and execute)
8972

73+
![Retaliate Gameplay](http://lvcabral.com/images/C64/retaliate64-beta-gameplay-300px.gif)
74+
9075
## Resources Used
91-
These are the books, tools and websites that are helping me developing this project:
76+
These are the books, tools and websites that are helping me to develop this project:
9277

9378
- [Retro Game Dev: Book by Derek Morris](https://www.retrogamedev.com/)
9479
- [Romans I XVI Gaming: Original game developer](https://www.romansixvigaming.com/)

source/characters.bin

176 Bytes
Binary file not shown.

source/gameAliens.asm

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
; Copyright (C) 2017,2018 Marcelo Lv Cabral - <https://lvcabral.com>
55
;
66
; Distributed under the MIT software license, see the accompanying
7-
; file LICENSE or http://www.opensource.org/licenses/mit-license.php.
7+
; file LICENSE or https://opensource.org/licenses/MIT
88
;
99
;===============================================================================
1010
; Constants
@@ -14,15 +14,14 @@ AliensFirePatternMax = 50
1414
AliensRespawnDelay = 255
1515
AliensYStart = 30
1616
AliensYDelay = 1
17-
AliensYSpeed = 3
1817
AliensYPriorityTop = 56
1918
AliensYPriorityBottom = 224
2019
AliensExplode = 12
2120
AlienRed = 5
2221
AlienShooter = 6
2322
AlienFirePos = 70
24-
WavesMax = 7
25-
WaveIndexMax = 37 ; last index + 1
23+
WavesMax = 10
24+
WaveIndexMax = 55 ; (WavesMax - 1) * 6 + 1
2625

2726
;===============================================================================
2827
; Variables
@@ -32,21 +31,28 @@ aliensActive byte 0
3231
aliensCount byte 0
3332
aliensWaveIndex byte 0
3433
aliensWaveTimeIndex byte 0
35-
aliensWaveTimeArray byte 25, 15, 25, 5, 25, 15, 25
34+
aliensWaveTimeArray byte 25, 15, 25, 5, 25
35+
byte 15, 25, 15, 25, 5
3636
aliensWaveArray byte 6, 5, 5, 5, 5, 6
3737
byte 6, 6, 6, 6, 6, 6
3838
byte 5, 5, 6, 6, 5, 5
3939
byte 5, 5, 5, 5, 5, 5
4040
byte 6, 5, 5, 5, 5, 5
4141
byte 6, 6, 6, 6, 6, 6
4242
byte 6, 5, 5, 5, 5, 6
43+
byte 5, 6, 5, 6, 5, 6
44+
byte 5, 5, 5, 5, 5, 5
45+
byte 5, 5, 5, 5, 5, 5
4346
aliensFormationArray byte 100, 50, 70, 70, 50, 200
4447
byte 100, 100, 100, 100, 100, 100
4548
byte 50, 100, 200, 150, 100, 50
4649
byte 50, 50, 50, 50, 50, 50
4750
byte 200, 90, 80, 70, 60, 50
4851
byte 100, 100, 100, 100, 100, 100
4952
byte 200, 80, 100, 80, 100, 200
53+
byte 50, 50, 50, 50, 50, 50
54+
byte 50, 100, 150, 150, 100, 50
55+
byte 100, 100, 100, 100, 100, 100
5056
aliensFrameArray byte 6, 5, 5, 5, 5, 6
5157
aliensFrame byte 0
5258
aliensColor byte 0
@@ -79,6 +85,8 @@ aliensPriority byte 0
7985
aliensStep byte 0
8086
aliensCollision byte 0
8187
aliensScore byte 0
88+
aliensSpeed byte 3
89+
aliensSpeedArray byte 3, 3, 6
8290

8391
;==============================================================================
8492
; Macros/Subroutines
@@ -320,7 +328,8 @@ gAUPIShooters
320328
bcs gAUPISetPosition
321329

322330
gAUPIIncMove
323-
adc #aliensYSpeed
331+
clc
332+
adc aliensSpeed
324333
sta aliensY
325334
cmp #254
326335
bcs gAUPIMoveUp

source/gameBullets.asm

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
; Copyright (C) 2017,2018 Marcelo Lv Cabral - <https://lvcabral.com>
66
;
77
; Distributed under the MIT software license, see the accompanying
8-
; file LICENSE or http://www.opensource.org/licenses/mit-license.php.
8+
; file LICENSE or https://opensource.org/licenses/MIT
99
;
1010
;===============================================================================
1111
; Constants
@@ -15,33 +15,35 @@
1515

1616
BulletsMax = 10
1717
Bullet1stCharacter = 64
18-
BulletSpeed = 3 ; higher number slower bullets
18+
1919
;===============================================================================
2020
; Variables
2121

22-
bulletsXHigh byte 0
23-
bulletsXLow byte 0
24-
bulletsY byte 0
25-
bulletsXCharCurrent byte 0
26-
bulletsXOffsetCurrent byte 0
27-
bulletsYCharCurrent byte 0
28-
bulletsColorCurrent byte 0
29-
bulletsDirCurrent byte 0
30-
31-
bulletsActive dcb BulletsMax, 0
32-
bulletsXChar dcb BulletsMax, 0
33-
bulletsYChar dcb BulletsMax, 0
34-
bulletsXOffset dcb BulletsMax, 0
35-
bulletsColor dcb BulletsMax, 0
36-
bulletsDir dcb BulletsMax, 0
37-
bulletsTemp byte 0
38-
bulletsXFlag byte 0
39-
40-
bulletsXCharCol byte 0
41-
bulletsYCharCol byte 0
42-
bulletsDirCol byte 0
43-
44-
bulletsUpdCnt byte 0
22+
bulletsXHigh byte 0
23+
bulletsXLow byte 0
24+
bulletsY byte 0
25+
bulletsXCharCurrent byte 0
26+
bulletsXOffsetCurrent byte 0
27+
bulletsYCharCurrent byte 0
28+
bulletsColorCurrent byte 0
29+
bulletsDirCurrent byte 0
30+
31+
bulletsActive dcb BulletsMax, 0
32+
bulletsXChar dcb BulletsMax, 0
33+
bulletsYChar dcb BulletsMax, 0
34+
bulletsXOffset dcb BulletsMax, 0
35+
bulletsColor dcb BulletsMax, 0
36+
bulletsDir dcb BulletsMax, 0
37+
bulletsTemp byte 0
38+
bulletsXFlag byte 0
39+
40+
bulletsXCharCol byte 0
41+
bulletsYCharCol byte 0
42+
bulletsDirCol byte 0
43+
44+
bulletsUpdCnt byte 0
45+
bulletSpeedArray byte 3, 3, 1 ; higher number slower bullets
46+
bulletSpeed byte 3
4547

4648
;===============================================================================
4749
; Macros/Subroutines
@@ -131,7 +133,7 @@ gameBulletsUpdate
131133
ldx #0
132134

133135
lda bulletsUpdCnt
134-
cmp #BulletSpeed
136+
cmp bulletSpeed
135137
beq buloop
136138

137139
inc bulletsUpdCnt

0 commit comments

Comments
 (0)