basic pathway detection

This commit is contained in:
alpine9000
2016-04-23 19:14:52 +10:00
parent 6dca1f3073
commit 1ce92c73e9
7 changed files with 84 additions and 25 deletions
+2 -2
View File
@@ -5,7 +5,7 @@ P61mode =1 ;Try other modes ONLY IF there are no Fxx commands >= 20.
;; --- options common to all P61modes ---
usecode=-1 ;CHANGE! to the USE hexcode from P61con for a big
usecode=$8000 ;CHANGE! to the USE hexcode from P61con for a big
;CPU-time gain! (See module usecodes at end of source)
;Multiple songs, single playroutine? Just "OR" the
;usecodes together!
@@ -37,7 +37,7 @@ asmonereport =0 ;ONLY for printing a settings report on assembly. Use
p61system=0 ;1=system-friendly. Use for DOS/Workbench programs.
p61exec =0 ;0 if execbase is destroyed, such as in a trackmo.
p61exec =1 ;0 if execbase is destroyed, such as in a trackmo.
p61fade =0 ;enable channel volume fading from your demo
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

+3
View File
@@ -1,6 +1,9 @@
MPANEL_COPPER_WAIT equ $9ad1
PIG_INITIAL_X equ $c0
PIG_INITIAL_Y equ $e4
PIG_JUMP_PIXELS equ 8
PIG_PAUSE_PIXELS equ 16
PIG_MOVE_PIXELS equ 2
+1 -1
View File
@@ -8,7 +8,7 @@
</tileset>
<layer name="foreground" width="100" height="8">
<data encoding="base64" compression="zlib">
eJxjZGBg0GXEjhlH5eguZwekmYBYDAs9Kkd/OS0c8sTIhQNxLxn6RuVwy1ESn6lAnE2GvlE5/PnjPBCfxELD5GB5IBBNbjc0TgZL2hoOcsTEWT00DnbjkZuMRW4wpbuhIketuK5kQM07gy3dDRU5TQbcbbBROfrLAQBQb1rL
eJy7y8DAoMuIHd8dlaO7nB2QZgJiMSz0qBz95bRwyBMjFw7EvWToG5XDLUdJfKYCcTYZ+kbl8OeP80B8EgsNk4PlgUA0ud3QOBksaWs4yBETZ/XQONiNR24yFrnBlO6Gihy14rqSATXvDLZ0N1TkWHG0v0B4VI7+cgD6L2Wi
</data>
</layer>
<layer name="items" width="100" height="8">
+70 -19
View File
@@ -51,14 +51,19 @@ Entry:
jsr PokePanelBitplanePointers
jsr Init ; enable the playfield
jsr ResetBigBangPattern
jsr InstallSpriteColorPalette
jsr InstallGreyPalette
Reset:
move.w #0,moving
move.l #fade,fadePtr
move.l #panelFade,panelFadePtr
bsr InitAnimPattern
;; jsr CleaDeAnimPattern
jsr ResetBigBangPattern
move.l #0,foregroundScrollX
move.l #0,backgroundScrollX
jsr BlueFill
@@ -119,22 +124,16 @@ GameLoop:
cmp.b #$f,d0
bne .s2
move.w #0,moving
cmp.w #1,missedTile
beq BigBang
.s2:
jsr ProcessJoystick
btst.b #0,joystick
beq .notMissedTile
move.w #1,missedTile
.notMissedTile:
jsr CheckPigMiss
bsr Update
bsr RenderNextForegroundFrame
bsr RenderNextBackgroundFrame
if 0
move.l #8000,d0
move.l #1000,d0
.checkLoop:
dbra d0,.checkLoop
move.w #$f00,COLOR00(a6)
@@ -144,7 +143,7 @@ GameLoop:
Update:
jsr UpdatePig
.backgroundUpdates:
add.l #BACKGROUND_SCROLL_PIXELS,backgroundScrollX
btst #FOREGROUND_DELAY_BIT,d6
@@ -199,14 +198,24 @@ HoriScrollPlayfield:
move.w d0,copperListScrollPtr2
rts
InitAnimPattern:
lea animIndex,a0
move.l #7,d0
.loop:
move.l #0,(a0)+
dbra d0,.loop
move.l #animIndexPattern,animIndexPatternPtr
rts
ResetAnimPattern:
lea animIndex,a0
move.l animIndexPatternPtr,a1
move.l #animIndexPattern,a1
move.l #7,d0
.loop:
move.l (a1)+,(a0)+
dbra d0,.loop
add.l #8,animIndexPatternPtr
add.l #8*4,animIndexPatternPtr
cmp.l #$ffffffff,(a1)
bne .s1
lea animIndexPattern,a0
@@ -323,8 +332,6 @@ RenderForegroundTile:
PostMissedTile:
move.w #0,missedTile
jsr ResetBigBangPattern
jsr InstallGreyPalette
jsr ResetItems
jsr HidePig
@@ -332,6 +339,50 @@ PostMissedTile:
bra Reset
CheckPigMiss:
lea map,a2
move.l foregroundScrollX,d0
lsr.l #FOREGROUND_SCROLL_TILE_INDEX_CONVERT,d0
lsr.l #1,d0
and.b #$f0,d0
add.l d0,a2
Offset:
move.w spriteLagX,d0
sub.w #PIG_INITIAL_X,d0
lsr.w #4,d0 ; x columns
BlahX:
move.l #(FOREGROUND_PLAYAREA_WIDTH_WORDS/2)-1,d1
sub.w d0,d1
mulu.w #FOREGROUND_PLAYAREA_HEIGHT_WORDS*2,d1
sub.l d1,a2 ; pig x if y == bottom ?
move.w #PIG_INITIAL_Y,d0
sub.w spriteY,d0
lsr.w #4,d0 ; y columns
add.w #1,d0
BlahY:
sub.l d1,d1
move.w #FOREGROUND_PLAYAREA_HEIGHT_WORDS-1,d1
sub.w d0,d1
lsl.w #1,d1
add.l d1,a2
move.w (a2),d0
cmp.w #$78e,d0
blt BigBang
.skip:
rts
BigBang:
move.w #(DMAF_SPRITE),DMACON(a6) ; turn sprites off for now
move.w #0,moving
@@ -364,7 +415,7 @@ BigBang:
add.l #(BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(256-(16*8)+32)/4)+BITPLANE_WIDTH_BYTES-FOREGROUND_PLAYAREA_RIGHT_MARGIN_BYTES,a0
move.l #(FOREGROUND_PLAYAREA_WIDTH_WORDS/2)-1,d5
move.l #(FOREGROUND_PLAYAREA_WIDTH_WORDS/2),d5
move.l #4,d0
@@ -402,7 +453,8 @@ ClearForegroundTile3:
bra .s2
.s1:
lea foregroundTilemap,a1
add.w #21520,a1 ; source tile
;; add.w #21520,a1 ; source tile
add.w #$7080,a1
.s2:
jsr BlitTile
rts
@@ -434,7 +486,8 @@ ClearForegroundTile:
bra .s2
.s1:
lea foregroundTilemap,a1
add.w #21520,a1 ; source tile
;; add.w #21520,a1 ; source tile
add.w #$7080,a1
.s2:
jsr BlitTile
.s3:
@@ -760,8 +813,6 @@ fadePtr:
panelFadePtr:
dc.l panelFade
missedTile:
dc.w 0
bigBangIndex:
ds.l FOREGROUND_PLAYAREA_HEIGHT_WORDS*FOREGROUND_PLAYAREA_WIDTH_WORDS,0
+7 -2
View File
@@ -7,9 +7,14 @@
xdef SetupSpriteData
xdef ScrollSprites
xdef deadSprite
xdef spriteX
xdef spriteLagX
xdef spriteY
InitialisePig:
move.w #$c0,spriteX
move.w #PIG_INITIAL_X,spriteX
move.w #PIG_INITIAL_Y,spriteY
move.w #PIG_INITIAL_Y+16,spriteYEnd
rts
HidePig:
+1 -1
View File
@@ -114,7 +114,7 @@ output_map_asm(tmx_map *m, tmx_layer *l)
if (l->type == L_LAYER && l->content.gids) {
for (unsigned int x = 0; x < m->width; x++) {
for (unsigned int y = 0; y < m->height; y++) {
fprintf(fp, "\tdc.w %d\n", get_tile_address(m, l->content.gids[(y*m->width)+x] & TMX_FLIP_BITS_REMOVAL));
fprintf(fp, "\tdc.w $%x\n", get_tile_address(m, l->content.gids[(y*m->width)+x] & TMX_FLIP_BITS_REMOVAL));
}
}
}