mirror of
https://github.com/alpine9000/amiga_examples
synced 2025-12-08 14:59:01 +00:00
experimenting with game difficulty
This commit is contained in:
+3
-1
@@ -3,6 +3,7 @@ BACKGROUND_COLOR=09e
|
||||
BACKGROUND_GREY_COLOR=777
|
||||
paletteA_BACKGROUND_COLOR_LONG=000 153 238 255
|
||||
paletteB_BACKGROUND_COLOR_LONG=000 000 102 187
|
||||
paletteC_BACKGROUND_COLOR_LONG=020 020 020 255
|
||||
|
||||
# userstack used by bootblock
|
||||
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
|
||||
|
||||
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/menu-palette.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/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
|
||||
|
||||
setuptiming:
|
||||
|
||||
@@ -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 ?)
|
||||
@@ -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
@@ -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_MOVE_PIXELS equ 2
|
||||
|
||||
PLAYER_PAUSE_PIXELS equ 12 ; number of pixel waits between jumps
|
||||
PLAYER_CHECK_MISS_PIXELS equ 10
|
||||
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
|
||||
PLAYER_FAST_PAUSE_PIXELS equ 2 number of pixel waits between jumps
|
||||
PLAYER_FAST_CHECK_MISS_PIXELS equ 1
|
||||
|
||||
PATHWAY_CONFIG_FREE equ 0
|
||||
PATHWAY_CONFIG_HORIZONTAL equ 1
|
||||
@@ -43,7 +37,7 @@ FOREGROUND_SCROLL_PIXELS equ 16
|
||||
FOREGROUND_PLAYAREA_WIDTH_WORDS equ 24
|
||||
FOREGROUND_PLAYAREA_RIGHT_MARGIN_BYTES equ 12
|
||||
FOREGROUND_PLAYAREA_HEIGHT_WORDS equ 8
|
||||
FOREGROUND_MOVING_COUNTER equ 50
|
||||
FOREGROUND_MOVING_COUNTER equ 100
|
||||
|
||||
FOREGROUND_TILE_ENDLEVEL equ $7098
|
||||
FOREGROUND_TILE_EMPTY equ $709a
|
||||
|
||||
+19
-5
@@ -267,8 +267,8 @@ Update:
|
||||
rts
|
||||
.c1:
|
||||
.skipForegroundUpdates:
|
||||
|
||||
cmp.w #PATHWAY_FADE_TIMER_COUNT,pathwayFadeCount
|
||||
move.w pathwayFadeCount,d0
|
||||
cmp.w pathwayFadeTimerCount,d0
|
||||
blt .dontInstallNextPathwayColor
|
||||
jsr InstallNextPathwayColor
|
||||
.dontInstallNextPathwayColor:
|
||||
@@ -704,7 +704,9 @@ InstallNextPathwayColor:
|
||||
add.l #2,a0
|
||||
add.l #4,a1
|
||||
dbra d0,.loop
|
||||
add.l #2*2,tileFadePtr
|
||||
move.l tileFadePtr,d1
|
||||
add.l pathwayFadeRate,d1
|
||||
move.l d1,tileFadePtr
|
||||
.done:
|
||||
rts
|
||||
|
||||
@@ -777,8 +779,15 @@ InstallFlagGreyPalette:
|
||||
rts
|
||||
|
||||
|
||||
Level A,"LEVEL 1"
|
||||
Level B,"LEVEL 2"
|
||||
;; variable prefix
|
||||
;; 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"
|
||||
|
||||
@@ -896,6 +905,7 @@ panelGreyPalette:
|
||||
levelInstallers:
|
||||
dc.l InstallLevelA
|
||||
dc.l InstallLevelB
|
||||
dc.l InstallLevelC
|
||||
dc.l 0
|
||||
nextLevelInstaller:
|
||||
dc.l levelInstallers
|
||||
@@ -922,6 +932,10 @@ movingCounter:
|
||||
dc.w 0
|
||||
moving:
|
||||
dc.w 0
|
||||
pathwayFadeRate
|
||||
dc.l 0
|
||||
pathwayFadeTimerCount:
|
||||
dc.w 0
|
||||
pathwayFadeCount:
|
||||
dc.w 0
|
||||
tileFadePtr:
|
||||
|
||||
@@ -10,6 +10,10 @@ InstallLevel\1:
|
||||
move.l #palette\1_playareaFade,playareaFade
|
||||
move.l #palette\1_flagsFade,flagsFade
|
||||
move.l #palette\1_tileFade,tileFade
|
||||
move.w #\3,pathwayFadeTimerCount
|
||||
move.l #\4,pathwayFadeRate
|
||||
move.w #\5,playerLevelPausePixels
|
||||
move.w #\6,playerLevelMissPixels
|
||||
rts
|
||||
|
||||
align 4
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
</layer>
|
||||
<layer name="items" width="100" height="8">
|
||||
<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>
|
||||
</layer>
|
||||
</map>
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
</tileset>
|
||||
<layer name="foreground" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjZ2BgsGLEjtlH5eguZwektwKxGBAzodF2WMSIlcNnZiUN7BvqcpbQeNHCIQ+iB5vcbjL11dNZHzl+gMUHJXE9ms7pnz+Wk5kO6J0HyJUj13/Udic18seoHPXKDeT8Qe88MJjS+WCRg8WHNAPuNhgt5AZjG3MwyQEAaJtcNA==
|
||||
eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1Fc/BPwAiw9K4no0ndM/fywnMx3QOw+QK4fPf/jyFbXdSY38MSpHvXIDOX/QOw/QO50PJncSyh/SDLjbYLSQG4xtzMEkBwB88FuB
|
||||
</data>
|
||||
</layer>
|
||||
<layer name="pathway" width="100" height="8">
|
||||
<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>
|
||||
</layer>
|
||||
<layer name="items" width="100" height="8">
|
||||
<layer name="items" width="100" height="8" visible="0">
|
||||
<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>
|
||||
</layer>
|
||||
</map>
|
||||
|
||||
@@ -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
@@ -134,22 +134,26 @@ ToggleMusic:
|
||||
rts
|
||||
|
||||
ToggleDifficulty:
|
||||
cmp.l #levelInstallers,nextLevelInstaller
|
||||
beq .currentlyEasy
|
||||
.currentlyHard:
|
||||
move.l #levelInstallers,nextLevelInstaller
|
||||
add.l #4,nextLevelInstaller
|
||||
cmp.l #levelInstallers+8,nextLevelInstaller
|
||||
bra RefreshDifficulty
|
||||
.currentlyEasy:
|
||||
move.l #levelInstallers+4,nextLevelInstaller
|
||||
bra RefreshDifficulty
|
||||
RefreshDifficulty:
|
||||
ble RefreshDifficulty
|
||||
move.l #levelInstallers,nextLevelInstaller
|
||||
RefreshDifficulty:
|
||||
cmp.l #levelInstallers,nextLevelInstaller
|
||||
beq .easy
|
||||
beq .easy
|
||||
cmp.l #levelInstallers+4,nextLevelInstaller
|
||||
beq .medium
|
||||
.hard:
|
||||
lea difficultyHard,a0
|
||||
lea difficulty,a1
|
||||
bsr StrCpy
|
||||
bra .done
|
||||
.medium:
|
||||
lea difficultyMedium,a0
|
||||
lea difficulty,a1
|
||||
bsr StrCpy
|
||||
bra .done
|
||||
.easy:
|
||||
lea difficultyEasy,a0
|
||||
lea difficulty,a1
|
||||
@@ -252,11 +256,15 @@ credits:
|
||||
difficultyEasy:
|
||||
dc.b "LEVEL - EASY"
|
||||
dc.b 0
|
||||
|
||||
align 2
|
||||
difficultyMedium:
|
||||
dc.b "LEVEL - MED "
|
||||
dc.b 0
|
||||
align 2
|
||||
difficultyHard:
|
||||
dc.b "LEVEL - HARD"
|
||||
dc.b 0
|
||||
|
||||
align 2
|
||||
musicOn:
|
||||
dc.b "MUSIC - ON "
|
||||
dc.b 0
|
||||
|
||||
+17
-8
@@ -18,12 +18,17 @@
|
||||
xdef spriteLagX
|
||||
xdef spriteY
|
||||
xdef spriteX
|
||||
|
||||
xdef playerLevelPausePixels
|
||||
xdef playerLevelMissPixels
|
||||
|
||||
PLAYER_INSTALL_COLOR_PALETTE equ 0
|
||||
PLAYER_SPRITE_DATA equ 4
|
||||
PLAYER_SPRITE_FALLING_DATA equ 8
|
||||
|
||||
ResetPlayer:
|
||||
bsr SpriteDisableAuto
|
||||
|
||||
move.l playerSpriteConfig,a0
|
||||
move.l PLAYER_SPRITE_DATA(a0),d0
|
||||
add.l #6*PLAYER_SPRITE_VERTICAL_BYTES,d0
|
||||
@@ -174,10 +179,10 @@ ProcessJoystick:
|
||||
cmp.w #0,spriteAutoMoveEnabled
|
||||
beq .autoMoveDisabled
|
||||
|
||||
;; Set fast as default, will be overridden to correct speed
|
||||
move.w #PLAYER_FAST_PAUSE_PIXELS,playerPausePixels
|
||||
move.w #PLAYER_FAST_CHECK_MISS_PIXELS,playerMissPixels
|
||||
|
||||
|
||||
|
||||
bsr GetNextAutoMove
|
||||
cmp.w #1,d0
|
||||
beq .skip
|
||||
@@ -211,8 +216,8 @@ SpriteDisableAuto:
|
||||
move.w #0,spriteAutoMoveEnabled
|
||||
move.w #PLAYER_JUMP_PIXELS,playerJumpPixels
|
||||
move.w #PLAYER_MOVE_PIXELS,playerMovePixels
|
||||
move.w #PLAYER_PAUSE_PIXELS,playerPausePixels
|
||||
move.w #PLAYER_CHECK_MISS_PIXELS,playerMissPixels
|
||||
move.w playerLevelPausePixels,playerPausePixels
|
||||
move.w playerLevelMissPixels,playerMissPixels
|
||||
rts
|
||||
|
||||
SetupSpriteData:
|
||||
@@ -606,10 +611,14 @@ playerMovePixels:
|
||||
dc.w PLAYER_MOVE_PIXELS
|
||||
playerJumpPixels:
|
||||
dc.w PLAYER_JUMP_PIXELS
|
||||
playerPausePixels
|
||||
dc.w PLAYER_PAUSE_PIXELS
|
||||
playerMissPixels
|
||||
dc.w PLAYER_CHECK_MISS_PIXELS
|
||||
playerPausePixels:
|
||||
dc.w 0
|
||||
playerMissPixels:
|
||||
dc.w 0
|
||||
playerLevelPausePixels:
|
||||
dc.w 0
|
||||
playerLevelMissPixels
|
||||
dc.w 0
|
||||
pathwayLastConfig:
|
||||
dc.w PATHWAY_CONFIG_FREE
|
||||
pathwayMissPending:
|
||||
|
||||
Reference in New Issue
Block a user