experimenting with game difficulty

This commit is contained in:
alpine9000
2016-05-15 13:43:14 +10:00
parent 3dd4ce9a19
commit 14c4af7ba8
13 changed files with 139 additions and 39 deletions
+3 -1
View File
@@ -3,6 +3,7 @@ BACKGROUND_COLOR=09e
BACKGROUND_GREY_COLOR=777 BACKGROUND_GREY_COLOR=777
paletteA_BACKGROUND_COLOR_LONG=000 153 238 255 paletteA_BACKGROUND_COLOR_LONG=000 153 238 255
paletteB_BACKGROUND_COLOR_LONG=000 000 102 187 paletteB_BACKGROUND_COLOR_LONG=000 000 102 187
paletteC_BACKGROUND_COLOR_LONG=020 020 020 255
# userstack used by bootblock # userstack used by bootblock
USERSTACK_ADDRESS=7fffc USERSTACK_ADDRESS=7fffc
@@ -235,11 +236,12 @@ out/yay.raw: assets/yay.wav
sox -v 2.0 assets/yay.wav -c 1 -r 4000 -b 8 out/yay.raw sox -v 2.0 assets/yay.wav -c 1 -r 4000 -b 8 out/yay.raw
out/main.o: $(IMAGEDATA) \ out/main.o: $(IMAGEDATA) \
out/levelA_foreground-map.s out/levelB_foreground-map.s \ out/levelA_foreground-map.s out/levelB_foreground-map.s out/levelC_foreground-map.s\
out/background-map.s Makefile link.script.x\ out/background-map.s Makefile link.script.x\
out/menu-palette.s\ out/menu-palette.s\
out/paletteA_playarea_fade.s out/paletteA_flags_fade.s out/paletteA_foreground-palette-table.s out/paletteA_tileFade.s\ out/paletteA_playarea_fade.s out/paletteA_flags_fade.s out/paletteA_foreground-palette-table.s out/paletteA_tileFade.s\
out/paletteB_playarea_fade.s out/paletteB_flags_fade.s out/paletteB_foreground-palette-table.s out/paletteB_tileFade.s\ out/paletteB_playarea_fade.s out/paletteB_flags_fade.s out/paletteB_foreground-palette-table.s out/paletteB_tileFade.s\
out/paletteC_playarea_fade.s out/paletteC_flags_fade.s out/paletteC_foreground-palette-table.s out/paletteC_tileFade.s\
out/panelFade.s out/jump.raw out/falling.raw out/chaching.raw out/whoosh.raw out/yay.raw out/panelFade.s out/jump.raw out/falling.raw out/chaching.raw out/whoosh.raw out/yay.raw
setuptiming: setuptiming:
+21
View File
@@ -0,0 +1,21 @@
playarea
--------
# background (not set here)
# ???
# ???
# safe tile #1
# safe tile #2
# normal tile #1
# normal tile #2
# pathway
flags
--------
# background (don't set here)
# flag color #1
# flag color #2
# safe tile #1
# safe tile #2
# flag color #3
# normal tile #2 (not used ?)
# pathway (not used ?)
+8
View File
@@ -0,0 +1,8 @@
000 000 014 255
029 192 255 255
121 235 255 255
071 174 192 255
213 213 213 255
210 000 039 255
154 154 154 255
000 000 000 000
@@ -0,0 +1,8 @@
000 000 000 255
082 082 082 255
178 178 178 255
000 000 000 255
255 255 255 255
025 025 025 255
000 000 000 255
000 000 000 255
@@ -0,0 +1,8 @@
000 153 238 255
253 174 017 255
233 216 100 255
000 000 000 255
255 255 255 255
050 050 050 255
200 200 200 255
150 000 000 255
+3 -9
View File
@@ -18,14 +18,8 @@ PLAYER_SPRITE_VERTICAL_BYTES equ ((16*4)+12)
PLAYER_JUMP_PIXELS equ 8 ; PLAYER_JUMP_PIXELS * PLAYER_MOVE_PIXELS must equal 16 PLAYER_JUMP_PIXELS equ 8 ; PLAYER_JUMP_PIXELS * PLAYER_MOVE_PIXELS must equal 16
PLAYER_MOVE_PIXELS equ 2 PLAYER_MOVE_PIXELS equ 2
PLAYER_PAUSE_PIXELS equ 12 ; number of pixel waits between jumps PLAYER_FAST_PAUSE_PIXELS equ 2 number of pixel waits between jumps
PLAYER_CHECK_MISS_PIXELS equ 10 PLAYER_FAST_CHECK_MISS_PIXELS equ 1
PLAYER_FAST_PAUSE_PIXELS equ 4 ; number of pixel waits between jumps
PLAYER_FAST_CHECK_MISS_PIXELS equ 2
SPLASH_USE_FOREGROUND equ 0
PATHWAY_FADE_TIMER_COUNT equ 100
PATHWAY_CONFIG_FREE equ 0 PATHWAY_CONFIG_FREE equ 0
PATHWAY_CONFIG_HORIZONTAL equ 1 PATHWAY_CONFIG_HORIZONTAL equ 1
@@ -43,7 +37,7 @@ FOREGROUND_SCROLL_PIXELS equ 16
FOREGROUND_PLAYAREA_WIDTH_WORDS equ 24 FOREGROUND_PLAYAREA_WIDTH_WORDS equ 24
FOREGROUND_PLAYAREA_RIGHT_MARGIN_BYTES equ 12 FOREGROUND_PLAYAREA_RIGHT_MARGIN_BYTES equ 12
FOREGROUND_PLAYAREA_HEIGHT_WORDS equ 8 FOREGROUND_PLAYAREA_HEIGHT_WORDS equ 8
FOREGROUND_MOVING_COUNTER equ 50 FOREGROUND_MOVING_COUNTER equ 100
FOREGROUND_TILE_ENDLEVEL equ $7098 FOREGROUND_TILE_ENDLEVEL equ $7098
FOREGROUND_TILE_EMPTY equ $709a FOREGROUND_TILE_EMPTY equ $709a
+19 -5
View File
@@ -267,8 +267,8 @@ Update:
rts rts
.c1: .c1:
.skipForegroundUpdates: .skipForegroundUpdates:
move.w pathwayFadeCount,d0
cmp.w #PATHWAY_FADE_TIMER_COUNT,pathwayFadeCount cmp.w pathwayFadeTimerCount,d0
blt .dontInstallNextPathwayColor blt .dontInstallNextPathwayColor
jsr InstallNextPathwayColor jsr InstallNextPathwayColor
.dontInstallNextPathwayColor: .dontInstallNextPathwayColor:
@@ -704,7 +704,9 @@ InstallNextPathwayColor:
add.l #2,a0 add.l #2,a0
add.l #4,a1 add.l #4,a1
dbra d0,.loop dbra d0,.loop
add.l #2*2,tileFadePtr move.l tileFadePtr,d1
add.l pathwayFadeRate,d1
move.l d1,tileFadePtr
.done: .done:
rts rts
@@ -777,8 +779,15 @@ InstallFlagGreyPalette:
rts rts
Level A,"LEVEL 1" ;; variable prefix
Level B,"LEVEL 2" ;; level name
;; frames before pathway starts fading
;; pathway fading steps per frame (must be a factor of 64)
;; frames player pauses between each jump
;; frames after jump before player miss is checked
Level A,"LEVEL 1",100,2*2,12,10
Level B,"LEVEL 2",100,2*2,12,10
Level C,"LEVEL 3",50,4*2,8,6
include "copper.i" include "copper.i"
@@ -896,6 +905,7 @@ panelGreyPalette:
levelInstallers: levelInstallers:
dc.l InstallLevelA dc.l InstallLevelA
dc.l InstallLevelB dc.l InstallLevelB
dc.l InstallLevelC
dc.l 0 dc.l 0
nextLevelInstaller: nextLevelInstaller:
dc.l levelInstallers dc.l levelInstallers
@@ -922,6 +932,10 @@ movingCounter:
dc.w 0 dc.w 0
moving: moving:
dc.w 0 dc.w 0
pathwayFadeRate
dc.l 0
pathwayFadeTimerCount:
dc.w 0
pathwayFadeCount: pathwayFadeCount:
dc.w 0 dc.w 0
tileFadePtr: tileFadePtr:
+4
View File
@@ -10,6 +10,10 @@ InstallLevel\1:
move.l #palette\1_playareaFade,playareaFade move.l #palette\1_playareaFade,playareaFade
move.l #palette\1_flagsFade,flagsFade move.l #palette\1_flagsFade,flagsFade
move.l #palette\1_tileFade,tileFade move.l #palette\1_tileFade,tileFade
move.w #\3,pathwayFadeTimerCount
move.l #\4,pathwayFadeRate
move.w #\5,playerLevelPausePixels
move.w #\6,playerLevelMissPixels
rts rts
align 4 align 4
+1 -1
View File
@@ -18,7 +18,7 @@
</layer> </layer>
<layer name="items" width="100" height="8"> <layer name="items" width="100" height="8">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztlV0OgyAQhOFo1tpSqy1J2/tfRUlKshJhf0DCg98jzs4uswkqddISF82v6Yg1VvN6eN0omAnzrEWJfi7fVMa93mol/tDjgXg8M+/UF8hE6kGp+yAanzEla7i7a0Q/Rc5j+pDUvr4ZWcfmkkK5jzQLs34f/lkboLVBHdyHZezRMxC0sCdFPyOaX+U3i4O7Xzg/lqch7ITDDamReJbo/9o5x2ZNsecn9eT+J7gZ3hP6o/eRy7vx+U7KsQCydRKU eJztld0OwiAMheHRlE1R5yRR3/9VlESSjgD9ARcu+C7Z6Wl7ejGlBj1x1PyaA7HGaV6PoLsKZsI896JFP59vKWOjt1qJP/S4IB63yp1Mg0ykHpS6J6IJGVOyhrebMvol857Tx5Tu9arIOjeXFMo+0ize3+/zL2sLtC6qg/dwjDsGZoIW9qTo74TdesXvF8+P5WkJN+FwQmokni36r4l3bNYSKT+pJ/c/wc3wXND/+x61PDqfb9CODwNcEqE=
</data> </data>
</layer> </layer>
</map> </map>
+4 -4
View File
@@ -8,17 +8,17 @@
</tileset> </tileset>
<layer name="foreground" width="100" height="8"> <layer name="foreground" width="100" height="8">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJxjZ2BgsGLEjtlH5eguZwektwKxGBAzodF2WMSIlcNnZiUN7BvqcpbQeNHCIQ+iB5vcbjL11dNZHzl+gMUHJXE9ms7pnz+Wk5kO6J0HyJUj13/Udic18seoHPXKDeT8Qe88MJjS+WCRg8WHNAPuNhgt5AZjG3MwyQEAaJtcNA== eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1Fc/BPwAiw9K4no0ndM/fywnMx3QOw+QK4fPf/jyFbXdSY38MSpHvXIDOX/QOw/QO50PJncSyh/SDLjbYLSQG4xtzMEkBwB88FuB
</data> </data>
</layer> </layer>
<layer name="pathway" width="100" height="8"> <layer name="pathway" width="100" height="8">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztVEEOgkAMbA+ceAEnXuCJ/z/AEy/wxAs8edXGNNSxLQti3EQmMTVbaGc6W4gO1IiBiU78Gmus+Q8YH7+rEwn+74WW59ri023FuyVczjTfgW/C9tlTQ8PPGWG0Odv703vesB8V6pP0Qe7opcelhTOsb6G6vBldkhz2yXp470lf9XB08p4nthdqFEy0bXe0FkZFx+/PWi42KuyuYc7qt3PwOGV8tYfHc6LyfRSfe461ZPuhfCL/t3iytB/IfXB094FPqhVryJmNuFd65u1cCc8I2R5HWiLOmIugdUu/2chjzd36BbK5Zc/LPLqKdR1Yxh1ayD2g eJztVDEOwjAQS5AyZUfq1Bcw9f8PYOIFnXhBp64QCavGOInoghB4uZLkfHZyRwh//ArWTwt4A+fwqtettXDZmed4FhODfLdQNEwxhFPc1lL0+TnWucta4WA/Z/req6V3fryfncNz3Uxr4Fwkb6WY4paXGrV7HkouODjyHteeTK1cWSv5V9GQiFv34J/vYSRuV6enpXU3ys9vgm/cwUG48V6juTP1pfp4hi5m370J++HaANd0nlljOYt+zZUIDI/fWg+ctTnGXKkW7afef4nzXuLxoUl1wt9AXhfjC+A31HpaU+cDfmo91qpdy+O+c3pagG/ELBzuDbHG0c046wYnz7j+j7aAPPSJqwdO1VvTrHs1cG84Tgfe49l5F3P/yG5OfnvcqfOp0J7543txA2baaMw=
</data> </data>
</layer> </layer>
<layer name="items" width="100" height="8"> <layer name="items" width="100" height="8" visible="0">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztlVkOgzAMRMnRgFIoSxup0PsfpUUiUhrilYD44H2G8dgZSyHLLs5EYeQ1ObPGGlkPp2sVM1GeR5Gi35wvlnFp/rUaf9/jQXh0G+9UJshE68GpexMal3Es69GstU53A3x74BzSh2D7CueRAM2lhXMfbRbN73u1ZN14WovswyJ7hKgYWr8nRz8QmungN0vCfL9w/g9jVz6xnUi4EzUazxT9n5FzalaMmJ/WU/qfkGZYI/q997GV18nnu0jHF6ItEv4= eJztlVsOgyAQRWVpPotalaS2+1+KmpRkSoB5QI0fnk+8c2e4k2BR3FyJSvFrSmKNUbweVjcIZsI8zyJHvyPfWMa1+tVK/KFHj3iMiXeqM2Qi9aDUvRCNzZiSNdxdE9A/A+chvUtsX2tC1qG5pFDuI81C79/bb9YaaI1TB/dhGHu0tAQt7EnRT4jmffKbxeG4nzv/h7AriG8nHDqkRuKZo//sOcdmjeHzk3py/xPcDB8R/b/3kcpy8flu8rEBFKASqQ==
</data> </data>
</layer> </layer>
</map> </map>
+24
View File
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" renderorder="right-down" width="100" height="8" tilewidth="16" tileheight="16" nextobjectid="1">
<tileset firstgid="1" name="foreground" tilewidth="16" tileheight="16" tilecount="320" columns="20">
<image source="../assets/assets.png" width="320" height="256"/>
</tileset>
<tileset firstgid="321" name="items" tilewidth="16" tileheight="16" tilecount="320" columns="20">
<image source="../assets/items.png" trans="000000" width="320" height="256"/>
</tileset>
<layer name="foreground" width="100" height="8">
<data encoding="base64" compression="zlib">
eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1Fc/BPwAiw9K4no0ndM/fywnMx3QOw+QK4fPf/jyFbXdSY38MSpHvXIDOX/QOw/QO50PJncSyh/SDLjbYLSQG4xtzMEkBwB88FuB
</data>
</layer>
<layer name="pathway" width="100" height="8">
<data encoding="base64" compression="zlib">
eJztVDEOwjAQS5AyZUfq1Bcw9f8PYOIFnXhBp64QCavGOInoghB4uZLkfHZyRwh//ArWTwt4A+fwqtettXDZmed4FhODfLdQNEwxhFPc1lL0+TnWucta4WA/Z/req6V3fryfncNz3Uxr4Fwkb6WY4paXGrV7HkouODjyHteeTK1cWSv5V9GQiFv34J/vYSRuV6enpXU3ys9vgm/cwUG48V6juTP1pfp4hi5m370J++HaANd0nlljOYt+zZUIDI/fWg+ctTnGXKkW7afef4nzXuLxoUl1wt9AXhfjC+A31HpaU+cDfmo91qpdy+O+c3pagG/ELBzuDbHG0c046wYnz7j+j7aAPPSJqwdO1VvTrHs1cG84Tgfe49l5F3P/yG5OfnvcqfOp0J7543txA2baaMw=
</data>
</layer>
<layer name="items" width="100" height="8" visible="0">
<data encoding="base64" compression="zlib">
eJztlVsOgyAQRWVpPotalaS2+1+KmpRkSoB5QI0fnk+8c2e4k2BR3FyJSvFrSmKNUbweVjcIZsI8zyJHvyPfWMa1+tVK/KFHj3iMiXeqM2Qi9aDUvRCNzZiSNdxdE9A/A+chvUtsX2tC1qG5pFDuI81C79/bb9YaaI1TB/dhGHu0tAQt7EnRT4jmffKbxeG4nzv/h7AriG8nHDqkRuKZo//sOcdmjeHzk3py/xPcDB8R/b/3kcpy8flu8rEBFKASqQ==
</data>
</layer>
</map>
+19 -11
View File
@@ -134,22 +134,26 @@ ToggleMusic:
rts rts
ToggleDifficulty: ToggleDifficulty:
cmp.l #levelInstallers,nextLevelInstaller add.l #4,nextLevelInstaller
beq .currentlyEasy cmp.l #levelInstallers+8,nextLevelInstaller
.currentlyHard:
move.l #levelInstallers,nextLevelInstaller
bra RefreshDifficulty bra RefreshDifficulty
.currentlyEasy: ble RefreshDifficulty
move.l #levelInstallers+4,nextLevelInstaller move.l #levelInstallers,nextLevelInstaller
bra RefreshDifficulty RefreshDifficulty:
RefreshDifficulty:
cmp.l #levelInstallers,nextLevelInstaller cmp.l #levelInstallers,nextLevelInstaller
beq .easy beq .easy
cmp.l #levelInstallers+4,nextLevelInstaller
beq .medium
.hard: .hard:
lea difficultyHard,a0 lea difficultyHard,a0
lea difficulty,a1 lea difficulty,a1
bsr StrCpy bsr StrCpy
bra .done bra .done
.medium:
lea difficultyMedium,a0
lea difficulty,a1
bsr StrCpy
bra .done
.easy: .easy:
lea difficultyEasy,a0 lea difficultyEasy,a0
lea difficulty,a1 lea difficulty,a1
@@ -252,11 +256,15 @@ credits:
difficultyEasy: difficultyEasy:
dc.b "LEVEL - EASY" dc.b "LEVEL - EASY"
dc.b 0 dc.b 0
align 2
difficultyMedium:
dc.b "LEVEL - MED "
dc.b 0
align 2
difficultyHard: difficultyHard:
dc.b "LEVEL - HARD" dc.b "LEVEL - HARD"
dc.b 0 dc.b 0
align 2
musicOn: musicOn:
dc.b "MUSIC - ON " dc.b "MUSIC - ON "
dc.b 0 dc.b 0
+17 -8
View File
@@ -18,12 +18,17 @@
xdef spriteLagX xdef spriteLagX
xdef spriteY xdef spriteY
xdef spriteX xdef spriteX
xdef playerLevelPausePixels
xdef playerLevelMissPixels
PLAYER_INSTALL_COLOR_PALETTE equ 0 PLAYER_INSTALL_COLOR_PALETTE equ 0
PLAYER_SPRITE_DATA equ 4 PLAYER_SPRITE_DATA equ 4
PLAYER_SPRITE_FALLING_DATA equ 8 PLAYER_SPRITE_FALLING_DATA equ 8
ResetPlayer: ResetPlayer:
bsr SpriteDisableAuto
move.l playerSpriteConfig,a0 move.l playerSpriteConfig,a0
move.l PLAYER_SPRITE_DATA(a0),d0 move.l PLAYER_SPRITE_DATA(a0),d0
add.l #6*PLAYER_SPRITE_VERTICAL_BYTES,d0 add.l #6*PLAYER_SPRITE_VERTICAL_BYTES,d0
@@ -174,10 +179,10 @@ ProcessJoystick:
cmp.w #0,spriteAutoMoveEnabled cmp.w #0,spriteAutoMoveEnabled
beq .autoMoveDisabled beq .autoMoveDisabled
;; Set fast as default, will be overridden to correct speed
move.w #PLAYER_FAST_PAUSE_PIXELS,playerPausePixels move.w #PLAYER_FAST_PAUSE_PIXELS,playerPausePixels
move.w #PLAYER_FAST_CHECK_MISS_PIXELS,playerMissPixels move.w #PLAYER_FAST_CHECK_MISS_PIXELS,playerMissPixels
bsr GetNextAutoMove bsr GetNextAutoMove
cmp.w #1,d0 cmp.w #1,d0
beq .skip beq .skip
@@ -211,8 +216,8 @@ SpriteDisableAuto:
move.w #0,spriteAutoMoveEnabled move.w #0,spriteAutoMoveEnabled
move.w #PLAYER_JUMP_PIXELS,playerJumpPixels move.w #PLAYER_JUMP_PIXELS,playerJumpPixels
move.w #PLAYER_MOVE_PIXELS,playerMovePixels move.w #PLAYER_MOVE_PIXELS,playerMovePixels
move.w #PLAYER_PAUSE_PIXELS,playerPausePixels move.w playerLevelPausePixels,playerPausePixels
move.w #PLAYER_CHECK_MISS_PIXELS,playerMissPixels move.w playerLevelMissPixels,playerMissPixels
rts rts
SetupSpriteData: SetupSpriteData:
@@ -606,10 +611,14 @@ playerMovePixels:
dc.w PLAYER_MOVE_PIXELS dc.w PLAYER_MOVE_PIXELS
playerJumpPixels: playerJumpPixels:
dc.w PLAYER_JUMP_PIXELS dc.w PLAYER_JUMP_PIXELS
playerPausePixels playerPausePixels:
dc.w PLAYER_PAUSE_PIXELS dc.w 0
playerMissPixels playerMissPixels:
dc.w PLAYER_CHECK_MISS_PIXELS dc.w 0
playerLevelPausePixels:
dc.w 0
playerLevelMissPixels
dc.w 0
pathwayLastConfig: pathwayLastConfig:
dc.w PATHWAY_CONFIG_FREE dc.w PATHWAY_CONFIG_FREE
pathwayMissPending: pathwayMissPending: