After showing the title screen dancing player select option on Twitter the other day, someone suggested that perhaps the girl should be the default player!
I debated for a few hours and then decided this was a good idea! I've not done this as some kind of feminism based altruism, even though it was pointed out that even little choices like this in support of women can go a long way.
The actual reason for making the change is to differentiate Chiller 2 from the original game. In 1984 you played as the boy out to rescue the girl by collecting blue crosses and after playing through the levels and "rescuing" the girl, you then had to play through the levels backwards as both the boy and the girl, with the girl collecting pink crosses. Hmmm... does seem a little 1980's to me.
Thus, in 2019 you can select to be either girl or boy at the start and both characters have to collect yellow crosses. That seems a bit more "modern" to me. As for playing levels backwards when all levels are complete: I may still incorporate this in my game. I may also do a character switch on last level completion so you have to play as both characters anyway. Since the girl and boy have slightly different in-game characteristics, this will perhaps extend the gameplay, providing a bit more of a challenge?
Someone also suggested using some character names (Tina and Tom) on the title screen instead of "girl" and "boy". The only problem is the characters are called "Michael" and "Michaela" and that doesn't fit on the screen! Those names do appear in the brief instructions in the "scrolling" message.
So after a quick code rearrangement, the girl is now selected by default on first load.
Next diary entry...
Showing posts with label titles. Show all posts
Showing posts with label titles. Show all posts
Tuesday, 30 July 2019
Friday, 26 July 2019
Dancing Player Select
A couple of weeks ago, I was playing around with the title screen for the game looking for a way to add more movement and/or break up all the text a little. I added some some extra sprites to the bottom part of the title screen by recycling another 3 sprites in the second raster split.
At the time, I made both the boy and girl player sprites dance in time to the music. After adding this, I thought it might be a nice idea at a later date to make only the player you select (boy or girl) dance, while the unselected option stood still.
Today was that 'later date' and it's finally in! On the title title screen, pushing left on the joystick selects the boy to play in the game, while pushing right selects the girl. Further highlighting the selection is the text next to the boy or girl which is coloured white or dark grey depending on the choice made.
I'll be honest, at the moment pressing fire to enter the first level results in the boy sprite being displayed, even if the girl is selected. I still need to write the code to copy the right sprites into place. However, in the background, variables are being copied into place that changes the way the player behaves or is affected by other sprites. Currently, playing as the boy means that less energy is taken away on contact with a meanie than with the girl, but on the other hand, the girl can move a little quicker than the boy. These attributes will probably change as more progress is made on the game!
However, here is a screen dump of a small part of the title screen of the the boy/girl select in action:
And the code that switches between the two players...
Next diary entry...
At the time, I made both the boy and girl player sprites dance in time to the music. After adding this, I thought it might be a nice idea at a later date to make only the player you select (boy or girl) dance, while the unselected option stood still.
Today was that 'later date' and it's finally in! On the title title screen, pushing left on the joystick selects the boy to play in the game, while pushing right selects the girl. Further highlighting the selection is the text next to the boy or girl which is coloured white or dark grey depending on the choice made.
I'll be honest, at the moment pressing fire to enter the first level results in the boy sprite being displayed, even if the girl is selected. I still need to write the code to copy the right sprites into place. However, in the background, variables are being copied into place that changes the way the player behaves or is affected by other sprites. Currently, playing as the boy means that less energy is taken away on contact with a meanie than with the girl, but on the other hand, the girl can move a little quicker than the boy. These attributes will probably change as more progress is made on the game!
However, here is a screen dump of a small part of the title screen of the the boy/girl select in action:
And the code that switches between the two players...
; title screen player select subroutine ------------------------
boy_select
ldx #$d8
stx t_sprite_def+$01
stx t_sprite_anims+$01
ldx #$dc
stx t_sprite_anime+$01
ldx #$dc
stx t_sprite_def+$02
stx t_sprite_anims+$02
ldx #$dd
stx t_sprite_anime+$02
ldx #$00 ; zero x register
boy_sel_loop
lda #$01 ; load white
sta $db51,x ; write 'boy' in white
lda #$0b ; load dark grey
sta $db5d,x ; write 'girl' in dk grey
inx
cpx #$05 ; done 5 writes?
bne boy_sel_loop ; all written? no? loop back!
lda #$00 ; make player store 0
sta ply_type ; so boy is selected
rts
girl_select
ldx #$d8
stx t_sprite_def+$01
stx t_sprite_anims+$01
ldx #$d9
stx t_sprite_anime+$01
ldx #$dc
stx t_sprite_def+$02
stx t_sprite_anims+$02
ldx #$e0
stx t_sprite_anime+$02
ldx #$00 ; zero x register
girl_sel_loop
lda #$0b ; load white
sta $db51,x ; write 'boy' in white
lda #$01 ; load dark grey
sta $db5d,x ; write 'girl' in dk grey
inx
cpx #$05 ; done 5 writes?
bne girl_sel_loop ; all written? no? loop back!
lda #$01 ; make player store 1
sta ply_type ; so girl is selected
rts
Next diary entry...
Saturday, 13 July 2019
More Title Screen
After getting a basic title screen up and running the other day and deciding it needed some extra something or other, I spent some time today adding some colour washing to the text so that there was more colour on the screen.
What the screen dump doesn't show is the text colours "animating" across the screen, left and right.
I had also previously decided it may be quite nice to make the title logo sprites move up and down continuously.
I was quite surprised how easy it was to do the "bounce". In the mainline title screen loop, I just needed some code that added or subtracted a pixel from each sprites y position and then saved the new position into the sprite table to picked up by the sprite plotter in the interrupt code.
There was an extra table added that kept track of whether the sprite was moving up or down so the code knew whether to move the sprite up/down after checking if each sprite had reached it's top or bottom limit.
Here's the code to do the bounce; it may be possible to refine it in the future, but it works as it stands at the moment!
I also extracted the text scroller/plotter from "Unused Shmup Tunes" (see previous diary entry) to use on the title screen, so now intro/credit/greeting type text "types" itself on to the screen just above the ground.
As an afterthought, I decided it might be quite nice to have some sprites in the bottom part of the screen, since the screen is already split and therefore it's quite easy to recycle the sprites. It struck me that it might be cool looking to use the ghost that is already in the sprite bank and "fly" it across the screen to write and erase the scrolling message.
Again this was quite easy. When each letter of the message is "plotted" onto the the screen, the ghost moves from left to right by 4 pixels at a time so it appears he is plotting the text. A cheat really, but visually it works.
Finally, I decided to alter the title screen layout slightly to make more room at the bottom of the screen between "The Boy" and "The Girl" text to include the actual sprites of the boy and girl. Another afterthought resulted in me making them dance in time to the music (yes, I have been venturing into Goattracker and toying with some sounds).
The decision to dance the sprites did mean a short trip into the sprite editor to adjust the main player sprites to add some dancing frames, but the boy and girl look happy enough having a boogie to an early version of the title screen music now!
Next diary entry...
What the screen dump doesn't show is the text colours "animating" across the screen, left and right.
I had also previously decided it may be quite nice to make the title logo sprites move up and down continuously.
I was quite surprised how easy it was to do the "bounce". In the mainline title screen loop, I just needed some code that added or subtracted a pixel from each sprites y position and then saved the new position into the sprite table to picked up by the sprite plotter in the interrupt code.
There was an extra table added that kept track of whether the sprite was moving up or down so the code knew whether to move the sprite up/down after checking if each sprite had reached it's top or bottom limit.
Here's the code to do the bounce; it may be possible to refine it in the future, but it works as it stands at the moment!
; update title sprites 'y' position to 'bounce' them
ldx bounce_timer ; load up the bounce_timer
inx ; increase it by '1'
cpx #$03 ; is the timer equal to '4' yet?
bne bounce_skip ; no? don't update movement
; yes? better do some moving then!
ldx #$00
t_sprite_y_upd
lda t_spr_y_dir,x
cmp #$01
beq t_sprite_up
lda sprite_y,x
clc
adc #$02
sta sprite_y,x
cmp #$4a
bcc t_next_sprite
lda #$01
sta t_spr_y_dir,x
jmp t_next_sprite
t_sprite_up
lda sprite_y,x
sec
sbc #$02
sta sprite_y,x
cmp #$3e
bcs t_next_sprite
lda #$00
sta t_spr_y_dir,x
jmp t_next_sprite
t_next_sprite
inx
cpx #$08
bne t_sprite_y_upd
ldx #$00 ; load x register with '0'
bounce_skip ; to reset anim_timer and...
stx bounce_timer ; store x register to anim_timer
I also extracted the text scroller/plotter from "Unused Shmup Tunes" (see previous diary entry) to use on the title screen, so now intro/credit/greeting type text "types" itself on to the screen just above the ground.
As an afterthought, I decided it might be quite nice to have some sprites in the bottom part of the screen, since the screen is already split and therefore it's quite easy to recycle the sprites. It struck me that it might be cool looking to use the ghost that is already in the sprite bank and "fly" it across the screen to write and erase the scrolling message.
Again this was quite easy. When each letter of the message is "plotted" onto the the screen, the ghost moves from left to right by 4 pixels at a time so it appears he is plotting the text. A cheat really, but visually it works.
Finally, I decided to alter the title screen layout slightly to make more room at the bottom of the screen between "The Boy" and "The Girl" text to include the actual sprites of the boy and girl. Another afterthought resulted in me making them dance in time to the music (yes, I have been venturing into Goattracker and toying with some sounds).
The decision to dance the sprites did mean a short trip into the sprite editor to adjust the main player sprites to add some dancing frames, but the boy and girl look happy enough having a boogie to an early version of the title screen music now!
Next diary entry...
Wednesday, 10 July 2019
Initial Title Screen
I've decided to work on the title screen today.
That may seem a little odd so early on in the project, but since so much code is needed right at the start to display anything at all (screen set-up and printing, splits and so on) and so much of it will be used for the title and in-game screens, I thought I may as well do it now and have something to show for it. I'm too impatient!
I first completed a rough layout in my screen editor, 'ChillED'.
I then exported the screen RAM and colour RAM data into the game assembly file. I had previously written some screen display code for another C64 project (Unused Shmup Tunes, see here...), so surgically removed the code and inserted it into Chiller 2.
After a few changes to the layout in ChillED and a further export of data, the title screen ended up being displayed in the game. Here is a screen dump using WinVICE...
Rather plain at the moment, but I have managed to include some previously pixelled sprites that spell out the game name. The sprite "plotter" for this resides in split 1 on the screen and was written so that it won't just handle the the title screen sprites, but eventually the in-game sprite player and meanies too! Double plus good!
I cannot tell a lie - this sprite plotting code was also written for and grabbed from the Unused Shmup Tunes release and since it's my code, it's allowed! Here is the sprite plotter code for Chiller 2 that handles the x-y position (including MSB) and colour of all 8 sprites, as well as being able to pluck the correct sprite definition from the sprite bank...
Now the basic title screen is in place, I fancy adding some colour washes to the text as well as making the logo sprites bounce up and down. The grassy ground in the screen dump above will eventually have a scrolling message of sorts above it.
Next diary entry...
That may seem a little odd so early on in the project, but since so much code is needed right at the start to display anything at all (screen set-up and printing, splits and so on) and so much of it will be used for the title and in-game screens, I thought I may as well do it now and have something to show for it. I'm too impatient!
I first completed a rough layout in my screen editor, 'ChillED'.
I then exported the screen RAM and colour RAM data into the game assembly file. I had previously written some screen display code for another C64 project (Unused Shmup Tunes, see here...), so surgically removed the code and inserted it into Chiller 2.
After a few changes to the layout in ChillED and a further export of data, the title screen ended up being displayed in the game. Here is a screen dump using WinVICE...
I cannot tell a lie - this sprite plotting code was also written for and grabbed from the Unused Shmup Tunes release and since it's my code, it's allowed! Here is the sprite plotter code for Chiller 2 that handles the x-y position (including MSB) and colour of all 8 sprites, as well as being able to pluck the correct sprite definition from the sprite bank...
; in-game sprite plotter!
sprite_plotter
ldx #$00
ldy #$00
sprite_plot
lda sprite_x,x
asl
ror $d010
sta $d000,y
lda sprite_y,x
sta $d001,y
iny
iny
lda sprite_col,x
sta $d027,x
lda sprite_def,x
sta $07f8,x
inx
cpx #$08
bne sprite_plot
Now the basic title screen is in place, I fancy adding some colour washes to the text as well as making the logo sprites bounce up and down. The grassy ground in the screen dump above will eventually have a scrolling message of sorts above it.
Next diary entry...
Subscribe to:
Posts (Atom)





