This commit is contained in:
alpine9000
2016-04-17 17:58:35 +10:00
parent 4e4657d14f
commit a67840ff14
3 changed files with 130 additions and 120 deletions
+6 -118
View File
@@ -9,16 +9,8 @@
xdef foregroundOffscreen
xdef foregroundScrollX
xdef backgroundScrollX
xdef joystick
xdef sprite
xdef deadSprite
xdef spriteX
xdef spriteY
xdef spriteYEnd
xdef spriteR
xdef spriteL
xdef spriteU
xdef spriteD
xdef moving
byteMap:
@@ -88,7 +80,7 @@ GameLoop:
cmp.l #FOREGROUND_PLAYAREA_WIDTH_WORDS+25,d6
bne .c1
move.w #(DMAF_SPRITE|DMAF_BLITTER|DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a6)
move.w #$c0,spriteX
jsr InitialisePig
.c1:
bsr InstallNextGreyPalette
move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels
@@ -104,7 +96,7 @@ GameLoop:
move.w #0,moving
.s2:
bsr ProcessJoystick
jsr ProcessJoystick
bsr Update
bsr RenderNextForegroundFrame
@@ -113,42 +105,6 @@ GameLoop:
;; move.w #$f00,COLOR00(a6)
bra GameLoop
ProcessJoystick:
;; 812
;; 7 3
;; 654
jsr ReadJoystick
cmp.w #0,spriteR
bne .skip
cmp.w #0,spriteU
bne .skip
cmp.w #0,spriteD
bne .skip
cmp.w #0,spriteL
bne .skip
cmp.b #3,joystickpos
bne .notRight
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteR
move.l #spritePigRight,currentSprite
.notRight:
cmp.b #1,joystickpos
bne .notUp
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteU
move.l #spritePigUp,currentSprite
.notUp:
cmp.b #5,joystickpos
bne .notDown
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteD
move.l #spritePigDown,currentSprite
.notDown:
cmp.b #7,joystickpos
bne .notLeft
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteL
move.l #spritePigLeft,currentSprite
.notLeft:
.skip:
rts
@@ -383,31 +339,7 @@ Level3InterruptHandler:
.verticalBlank:
move.w #INTF_VERTB,INTREQ(a6) ; clear interrupt bit
add.l #1,verticalBlankCount
move.l currentSprite,a0
move.w spriteLagX,d0
move.w spriteX,spriteLagX
move.w d0,d1
andi #1,d1
move.b d1,3(a0) ;spriteControl
lsr.l #1,d0
move.b d0,1(a0) ;spriteHStart
move.w spriteY,d0
move.b d0,(a0) ;spriteVStart
move.w spriteYEnd,d0
move.b d0,2(a0) ;spriteVStop
move.l a0,SPR0PTH(a6)
move.l #deadSprite,SPR1PTH(a6)
move.l #deadSprite,SPR2PTH(a6)
move.l #deadSprite,SPR3PTH(a6)
move.l #deadSprite,SPR4PTH(a6)
move.l #deadSprite,SPR5PTH(a6)
move.l #deadSprite,SPR6PTH(a6)
move.l #deadSprite,SPR7PTH(a6)
jsr SetupSpriteData
.checkCopper:
move.w INTREQR(a6),d0
and.w #INTF_COPER,d0
@@ -543,31 +475,6 @@ tilemap:
backgroundTilemap:
incbin "out/background.bin"
spritePigUp:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_up.bin"
dc.l 0
spritePigDown:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_down.bin"
dc.l 0
spritePigLeft:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_left.bin"
dc.l 0
spritePigRight:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_right.bin"
dc.l 0
currentSprite:
dc.l spritePigRight
deadSprite:
dc.l 0
panel:
incbin "out/panel.bin"
map:
@@ -588,26 +495,7 @@ verticalBlankCount:
dc.l 0
moving:
dc.w 0
spriteR:
dc.w 0
spriteL:
dc.w 0
spriteU:
dc.w 0
spriteD:
dc.w 0
spriteLagX:
dc.w 0
spriteX:
dc.w $0
spriteY:
dc.w $e4
spriteYEnd:
dc.w $f5
joystick:
dc.b 0
joystickpos:
dc.b 0
fadePtr:
dc.l fade
+8 -1
View File
@@ -1,6 +1,8 @@
;; http://eab.abime.net/showpost.php?p=986196&postcount=2
xdef ReadJoystick
xdef joystick
xdef joystickpos
ciaa_pra = $bfe001
joy1dat = $dff00c
@@ -24,4 +26,9 @@ ReadJoystick:
move.w d0,joystick
rts
.conv:
dc.b 0,5,4,3,1,0,3,2,8,7,0,1,7,6,5,0
dc.b 0,5,4,3,1,0,3,2,8,7,0,1,7,6,5,0
joystick:
dc.b 0
joystickpos:
dc.b 0
+116 -1
View File
@@ -1,7 +1,15 @@
include "includes.i"
xdef UpdatePig
xdef ProcessJoystick
xdef InitialisePig
xdef SetupSpriteData
xdef spriteX
InitialisePig:
move.w #$c0,spriteX
rts
UpdatePig:
;; right
cmp.w #PIG_PAUSE_PIXELS,spriteR
@@ -46,4 +54,111 @@ UpdatePig:
blt .noScroll
move.w #1,moving
.noScroll:
rts
rts
ProcessJoystick:
;; 812
;; 7 3
;; 654
jsr ReadJoystick
cmp.w #0,spriteR
bne .skip
cmp.w #0,spriteU
bne .skip
cmp.w #0,spriteD
bne .skip
cmp.w #0,spriteL
bne .skip
cmp.b #3,joystickpos
bne .notRight
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteR
move.l #spritePigRight,currentSprite
.notRight:
cmp.b #1,joystickpos
bne .notUp
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteU
move.l #spritePigUp,currentSprite
.notUp:
cmp.b #5,joystickpos
bne .notDown
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteD
move.l #spritePigDown,currentSprite
.notDown:
cmp.b #7,joystickpos
bne .notLeft
move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteL
move.l #spritePigLeft,currentSprite
.notLeft:
.skip:
rts
SetupSpriteData:
move.l currentSprite,a0
move.w spriteLagX,d0
move.w spriteX,spriteLagX
move.w d0,d1
andi #1,d1
move.b d1,3(a0) ;spriteControl
lsr.l #1,d0
move.b d0,1(a0) ;spriteHStart
move.w spriteY,d0
move.b d0,(a0) ;spriteVStart
move.w spriteYEnd,d0
move.b d0,2(a0) ;spriteVStop
move.l a0,SPR0PTH(a6)
move.l #deadSprite,SPR1PTH(a6)
move.l #deadSprite,SPR2PTH(a6)
move.l #deadSprite,SPR3PTH(a6)
move.l #deadSprite,SPR4PTH(a6)
move.l #deadSprite,SPR5PTH(a6)
move.l #deadSprite,SPR6PTH(a6)
move.l #deadSprite,SPR7PTH(a6)
rts
spritePigUp:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_up.bin"
dc.l 0
spritePigDown:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_down.bin"
dc.l 0
spritePigLeft:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_left.bin"
dc.l 0
spritePigRight:
dc.w 0,0
dc.w 0,0
incbin "out/sprite_pig_right.bin"
dc.l 0
currentSprite:
dc.l spritePigRight
deadSprite:
dc.l 0
spriteR:
dc.w 0
spriteL:
dc.w 0
spriteU:
dc.w 0
spriteD:
dc.w 0
spriteLagX:
dc.w 0
spriteX:
dc.w $0
spriteY:
dc.w $e4
spriteYEnd:
dc.w $f5