Subject: [stella] Sprite Animation Help! From: "J Parlee" <lost_monkey@xxxxxxxxxxxx> Date: Sun, 4 Aug 2002 12:41:32 -0400 |
Greetings all... I have decided to finally come forward and admit that I have hit a wall.... (big surprise!) I started working on a couple of Stella programming projects back in November 2001, but when I started up a home business in February, I found I didn't have time to work on them anymore... Now things have settled to a comfortable level and I can get back to work... I have attached the source to a game that I was working on back in February, where I got stuck on the animation of Player 2. Player 2 starts off correctly (except for some garbage at the bottom of the sprite) but as soon as P2 starts to move, the locations the sprite data are being pulled from goes "off". I have NO background in programming, I am learning all of this "as I go"... but here is what I *think* is happening. I am thinking that when the character is "moving" the address is "out of range" (>128 bytes away?).. but I have tried moving the sprite data around and it doesn't help things... Any help on this would be appreciated... Any guesses on what the game is (intended) to be? BTW: The code contains snippets from Eckard Stohlberg's "Big Move" demo, Cracker's "...Another" demo and David Crane's "Pitfall" ( amazingly interpreted Thomas Jentzsch) Thanks Jason
;01/21/02 Begin the title screen of Sxxxx Sxxxx Bxxx. using code from ES Big Move Demo ;01/21/02 Title screen works 40x40 baby! need to work on placing it better and a PF outline ;01/21/02 Began work on sprite conversion from other roms. About half done ;01/22/02 Change some colours, finish sprites, added Mario PF ;02/02/02 Removed title screen code, to be added back later... ;02/02/02 Changed the loop of the kernel. gone is the main loop and replaced with a ; straight through approach, with a couple JMPs instead of JSR RTS ; The result, is that the screen looks a little different, due to the timing. ; Next project is to start the counting. I would like to get the code to work on a ; real vcs before going any further. ;02/02/02 The quest to design a new kernel begins. ; 1st time counting is complete...added a well placed wsync and the BG is good...characters are ; taking too long to draw though...damn cycles! ;02/03/02 The character pointers are complete. Need to create a routine to select preset matches ;02/04/02 P1 is getting sprite info from the wrong location once it starts animating.. why? processor 6502 include vcs.h ; ES RIOT registers Swacnt = $0281 Swbcnt = $0283 ; ROM definitions ; RomStart = $F000 RomEnd = $FFFF IntVectors = $FFFA ;#################################################################################################### ;#################################################################################################### ;Game Constants ;#################################################################################################### ;X constants ScreenWide = 160 ;width of playfield XLeft = 8 ;players leftmost possible position XRight = 152 ;players rightmost possible position ;length of a jump JumpLength = 30 ;once this is implemented it can be adjusted ;#################################################################################################### ;Y constants ;screen objects sizes P0Height = 24 P1Height = 24 ScoreHeight = 8 ;pre-defined y positions (ground and 2 platform heights) Ground = 108 ;this is how far the player is from the top of the screen when on the ground Platform1 = 81 ;this is how far the player is from the top of the screen when on the 1st platform Platform2 = 65 ;this is how far the player is from the top of the screen when on the 2nd platform ;P0 Pattern Ids these are going to be set up as Mario and Harry at first (P0 Mario) (P1 Harry) P0Standing = 0 P0Running1 = 1 P0Running2 = 2 P0Running3 = 3 P0Running4 = 4 P0Running5 = 5 P0Jumping = 6 P1Standing = 0 P1Running1 = 1 P1Running2 = 2 P1Running3 = 3 P1Running4 = 4 P1Running5 = 5 P1Jumping = 6 ; game variables s1 = $80 ; from ES Bigmove s2 = $82 ; from ES Bigmove s3 = $84 ; from ES Bigmove s4 = $86 ; from ES Bigmove s5 = $88 ; from ES Bigmove s6 = $8A ; from ES Bigmove DelayPTR = $8C ; from ES Bigmove LoopCount = $8E ; from ES Bigmove TopDelay = $8F ; from ES Bigmove replaces TOP YPos0 = $90 ;This is the starting Y position of sprite 0 YPos1 = $91 ;This is the starting Y position of sprite 1 ScanLine = $92 ;This is a Scanline counter P0Size = $93 ;This is how many scanlines sprite 0 is P1Size = $94 ;This is how many scanlines sprite 1 is BLKSIZE = $95 ;This is the size of a playfield block BLOCK = $96 ;This is the block # (blksize*(block+1)=192) VCOUNT = $97 ;this is the counter for calculating where the baby is vertically BottomDelay = $98 ;ES bigmove replaces BOTTOM MoveCount = $99 ;ES bigmove Temp = $9A ;ES bigmove replaces FIRE Mode = $9B ;0=loading screen, 1=title screen 2=game play LoadingUD = $9C ;0=loading goes down 1= loading goes up StopCount = $9D ;stopping animation for P0 P0Move = $9E ;Value for player 0 movement P1Move = $9F ;value for player 1 movement LoopCount1 = $A0 P0PatPtr = $A1 ;Pointer to P0 patterns P1PatPtr = $A3 ;Pointer to P1 patterns P0PatId = $A5 ;id of current animation frame P0 P1PatId = $A7 ;id of current animation frame P1 ;################################################################## ; The following bits are lifted from Eckhard Stolberg's Bigmove demo ; My goal is to incorporate this into the opening screen and then modify the ; code to suit my purposes. Thanks to Eckhard for this code ; CODE (MOSTLY) REMOVED for now ; Program initialization ; ORG RomStart Cart_Init: SEI ; Disable interrupts.: CLD ; Clear "decimal" mode. LDX #$FF TXS LDA #$00 Zero: STA $00,X ;zero out all addresses DEX BNE Zero LDA #75 STA YPos0 ;set up the starting vertical position of sprite 1 STA YPos1 ;set up the starting vertical position of sprite 2 LDX #P0Standing STX P0PatId ; 3 LDA MarioPtrTab,x ; 4 STA P0PatPtr ; 3 LDA #>Mario1 ; 2 STA P0PatPtr+1 ; 3 LDX #P1Standing STX P1PatId ; 3 LDA PitPtrTab,x ; 4 STA P1PatPtr ; 3 LDA #>Pit1 ; 2 STA P1PatPtr+1 ; 3 LDA #5 STA LoopCount STA LoopCount1 LDA #8 STA StopCount vertb: LDA #$02 STA WSYNC STA WSYNC STA WSYNC STA VSYNC STA WSYNC STA WSYNC ; STA HMOVE ; LDA #44 ; STA TIM64T ;set timer LDA #$00 ; STA CXCLR ;clear collision registers LDA #191 ;reset the Scanline counter to 191 STA ScanLine LDA #24 ;reset the number of sprite lines.. this is the height of P0. STA P0Size STA P1Size LDA #0 STA WSYNC STA VSYNC scrnvar: LDA #$75 ;0+2=[2] set background colour blue STA COLUBK ;2+3=[5] LDA #$01 ;5+2=[8] set this to 1 STA CTRLPF ;8+3=[11] to reflect the playfield ; LDA #$06 ; STA COLUPF draw: LDA INTIM ;11+3=[14] BNE draw ;14+3=[17] STA WSYNC ;0 STA VBLANK ;0 load: LDX BLOCK ;0+3=[3] 3+3=[6]< from newblk LDA MarioPF0,X ;3+4=[7] 6+4=[10] STA PF0 ;7+3=[10] 10+3=[13] LDA MarioColPFL,X ;10+4=[14] 13+4=[17] STA COLUPF ;14+3=[17] 17+3=[20] LDA MarioPF1,X ;17+4=[21] 20+4=[24] STA PF1 ;21+3=[24] 24+3=[27] LDA MarioPF2,X ;24+4=[28] 27+4=[31] STA PF2 ;28+3=[31] 31+3=[34] grfx1: DEC ScanLine ;31+3=[34] 5+3=[8] <grfx2 34+3=[37] LDA YPos0 ;34+3=[37] 8+3=[11] 37+3=[40] CMP ScanLine ;37+3=[40] 11+3=[14] 40+3=[43] BPL sprite1 ;40+2=[42]< 14+2=[16]< 43+2=[45]< if not taken NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP grfx2: STA WSYNC ; If not then draw then scanline BEQ newblk ; 0+2=[2]* or is it time for a new block? THIS DOESN'T MAKE ANY SENSE! JMP grfx1 ; 2+3=[5] get ready for next scanline sprite1: LDY P0Size ;42+3=[45] 19+3=[22] 45+3 BEQ nosprt1 ;45+2=[47]* 22+2=[24]* 48+2* See if we're finished drawing the sprite. LDA (P0PatPtr),Y ;47+5=[52] 24+5=[29] 50+5 If not then load the sprite data. STA GRP0 ;52+3=[55] 29+3=[32] 55+3 LDA MarioCol,Y ;55+4=[59] 32+4=[36] 58+4 STA COLUP0 ;59+3=[62] 36+3=[39] 62+3 set up sprite colours P0 DEC P0Size ;62+3=[65] 39+3=[42] 65+3 get set up for next sprite line LDY P1Size ;65+3=[68] 42+3=[45] 68+3 BEQ nosprt2 ;68+2=[70]* 45+2=[47]* 71+2* See if we're finished drawing the sprite. LDA (P1PatPtr),Y ;70+5=[75] 47+5=[52] 73+5 If not then load the sprite data. STA GRP1 ;75+3=[78] 52+3=[55] 78+3 LDA PitCol,Y ;78+4=[82] 55+4=[59] 81+4 STA COLUP1 ;82+3=[85] 59+3=[62] 85+3 set up sprite colours P0 DEC P1Size ;85+3=[88] 62+3=[65] 88+3 get set up for next sprite line JMP grfx2 ;88+3=[91]< 65+3=[68]< 91+3=[94]< go draw current scanline nosprt1: LDA #$00 ;47+2=[49] 24+2=[26] 50+2 if we're finished with the sprite then STA GRP0 ;49+3=[52] 26+3=[29] 52+3 just fill the sprite with zeros. JMP grfx2 ;52+3=[55]<< 29+3=[32]<< 55+3=[58]<< add some NOPs here? nosprt2: LDA #$00 ;70+2=[72] 47+2=[49] 73+2 if we're finished with the sprite then STA GRP1 ;72+3=[75] 49+3=[52] 75+3 just fill the sprite with zeros. JMP grfx2 ;75+3=[78]<<< 52+3=[55]<<< 78+3=[81]<<< then draw the scanline. newblk: LDA BLOCK ;5+3=[8] check to see if we've finished drawing the screen BEQ clear ;8+2=[10]* DEC BLOCK ;10+3=[13] get ready for the next playfield block LDA #$02 ;13+2=[15] STA BLKSIZE ;15+3=[18] STA WSYNC ; added 020202 YEAH! now the PF is finally level! JMP load ;18+3=[21] clear: LDA #$02 ;10+2=[12] all done the screen. STA WSYNC STA VBLANK oscan: joy0: LDA #$00 ;set player move value to zero STA GRP0 STA GRP1 STA PF0 STA PF1 STA PF2 STA P0Move LDA SWCHA ; ASL BCC P0Right ASL BCC P0Left ASL BCC P0Up ASL BCC P0Down LDX #03 ;attempt to have player revert to standing position after movement is done - works STX P0PatId LDA MarioPtrTab,x STA P0PatPtr LDA StopCount BPL SameFrame0 LDX #00 ;attempt to have player revert to standing position after movement is done - works STX P0PatId LDA MarioPtrTab,x STA P0PatPtr P0Up: JMP P0Read P0Down: JMP P0Read P0Right: LDA #$00 STA REFP0 ;this is a good speed for player 0 LDA #$f0 ;set horizontal motion register to one pixel right STA P0Move ;load to player move variable LDA LoopCount BPL SameFrame0 LDA #8 STA StopCount LDA #5 STA LoopCount LDX P0PatId INX STX P0PatId LDA MarioPtrTab,x ; 4 STA P0PatPtr ; 3 LDA #5 CMP P0PatId BEQ ResetPtr0R JMP P0Read P0Left: LDA #$08 STA REFP0 ;this speed is okay for player 0 LDA #$10 ;set horizontal motion register to one pixel left STA P0Move LDA LoopCount BPL SameFrame0 LDA #5 STA LoopCount LDA #8 STA StopCount LDX P0PatId INX STX P0PatId LDA MarioPtrTab,x ; 4 STA P0PatPtr ; 3 LDA #5 CMP P0PatId BEQ ResetPtr0L JMP P0Read SameFrame0: JMP P0Read NoButton0: LDA #$45 STA COLUBK JMP P0Read ResetPtr0R: LDA #$00 STA P0PatId JMP P0Read ResetPtr0L: LDA #$00 STA P0PatId JMP P0Read P0Read: LDA P0Move STA HMP0 ;moves P0 depending on the direction pressed on joystick joy1: LDA #$00 ;set player move value to zero STA P1Move LDA SWCHA ; ASL ASL ASL ASL ASL BCC P1Right ASL BCC P1Left ASL BCC P1Up ASL BCC P1Down LDX #00 ;attempt to have player revert to standing position after movement is done - works STX P1PatId LDA PitPtrTab,x STA P1PatPtr ; LDA INPT5 ;read the button- no implementation yet ; BMI NoButton1 JMP P1Read P1Up: JMP P1Read P1Down: JMP P1Read P1Right: LDA #$00 STA REFP1 ;face player right LDA #$F0 ;set horizontal motion register to one pixel right STA P1Move ;this is a good speed for player 1 LDA LoopCount1 ;check to see if it is time to draw a new frame... BPL SameFrame1 ;if not - - go on with same LDA #5 ;if so - reset loopcount1 STA LoopCount1 LDX P1PatId ;load the value of player1 pattern id to x INX ;increase x by one STX P1PatId ;store the value of x to player1 pattern id LDA PitPtrTab,x ;load the xth value of PitPtrTab to A STA P1PatPtr ;store the value in player1 pattern pointer LDA #5 CMP P1PatId BMI ResetPtr1R JMP P1Read P1Left: LDA #$08 STA REFP1 ;this speed is okay for player 1 LDA #$10 ;set horizontal motion register to one pixel left STA P1Move LDA LoopCount1 BPL SameFrame1 LDA #5 STA LoopCount1 LDX P1PatId INX STX P1PatId LDA PitPtrTab,x ; 4 STA P1PatPtr ; 3 LDA #5 CMP P1PatId BEQ ResetPtr1L JMP P1Read SameFrame1: JMP P1Read NoButton1: LDA #$45 STA COLUBK JMP P1Read ResetPtr1R: LDA #00 STA P1PatId JMP P1Read ResetPtr1L: LDA #00 STA P1PatId JMP P1Read P1Read: LDA P1Move STA HMP1 ;moves P1 depending on joystick 2 DEC LoopCount DEC LoopCount1 DEC StopCount ; LDA #$06 ;reset the variables. ; STA BLKSIZE ;and other stuff. LDA #30 STA BLOCK LDX #$1E waste: STA WSYNC DEX BNE waste JMP vertb ORG $F300 ;####################################################################################### ;Playfield Data ;####################################################################################### MarioPF0: .byte $E0,$E0,$E0,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 MarioPF1: .byte $FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 MarioPF2: .byte $FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$00 .byte $00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 MarioColPFL .byte $44,$44,$44,$44,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E .byte $4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E MarioColPFR .byte $44,$44,$44,$44,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E .byte $4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E PFLColor .byte $19,$19,$19,$19,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F PFRColor .byte $7F,$7F,$7F,$7F,$7D,$60,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10 ORG $F500 ;####################################################################################### ;Player Data ;####################################################################################### ;Adventure Characters and items Bat1: .byte $00,$66,$5A,$FF,$C3,$C3,$81,$81,$81,$42 ;wings up Bat2: .byte $00,$81,$81,$C3,$66,$5A,$3C,$81,$00,$81 ;wings down Rhindle1: .byte $00,$00,$3F,$E1,$8F,$08,$3C,$FF,$C7,$C3,$C3,$E3,$7F,$3F,$1E,$04,$04,$0E,$FE,$F3,$0F,$06,$00,$00 ;22 tall, normal pose Rhindle2: .byte $E0,$80,$F8,$08,$1C,$3E,$7F,$7F,$7F,$7F,$3F,$1E,$8E,$44,$24,$1E,$0E,$0B,$1F,$26,$40,$80,$00,$00 ;bite pose Rhindle3: .byte $7E,$42,$6E,$20,$78,$7E,$FE,$FE,$FC,$80,$CE,$7F,$1B,$0E,$0C,$0C,$0C,$00,$00,$00,$00,$00,$00,$00 ;dead pose Square: .byte $7C,$7C,$7C,$7C,$7C,$7C ; 6 tall Sword: .byte $20,$40,$FF,$40,$20 ; 5 tall Magnet: .byte $C3,$C3,$C3,$C3,$C3,$E7,$7E,$3C ; 8 tall ;####################################################################################### ;Asteroids animations Ast1: .byte $00,$00,$00,$00,$00,$00,$10,$10,$38,$38,$7C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; facing down Ast2: .byte $00,$00,$00,$00,$00,$00,$20,$30,$38,$3C,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; rotate right one Ast3: .byte $00,$00,$00,$00,$00,$00,$40,$30,$3C,$18,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Ast4: .byte $00,$00,$00,$00,$00,$00,$40,$3E,$1C,$0C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Ast5: .byte $00,$00,$00,$00,$00,$00,$04,$1C,$FC,$1C,$04,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Ast6: .byte $00,$00,$00,$00,$00,$00,$0C,$1C,$3E,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Ast7: .byte $00,$00,$00,$00,$00,$00,$10,$18,$3C,$30,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Ast8: .byte $00,$00,$00,$00,$00,$00,$30,$3C,$38,$30,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Ast9: .byte $00,$00,$00,$00,$00,$00,$7C,$38,$38,$10,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Ast10: .byte $80,$04,$A2,$00,$20,$81,$22,$10,$04 ; blow up sprite Ast11: .byte $38,$44,$54,$44,$38 ; Shield on! ;####################################################################################### ;Circus Sprites Circus1: .byte $00,$82,$44,$38,$10,$10,$38,$54,$92,$38,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;10 high standing pose Circus2: .byte $00,$82,$44,$38,$12,$14,$38,$50,$90,$38,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;animation Circus3: .byte $00,$22,$24,$38,$90,$50,$38,$14,$12,$38,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Circus4: .byte $00,$28,$28,$38,$92,$54,$38,$10,$10,$38,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Circus5: .byte $00,$FF,$FF,$10,$10,$38,$44,$82,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;7 high death animation Circus6: .byte $00,$FF,$FF,$14,$12,$38,$44,$82,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; death cont Circus7: .byte $00,$FF,$FF,$50,$90,$38,$24,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; Still more death! Circus8: .byte $00,$FF,$FF,$54,$92,$38,$28,$28,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; Dead! ;####################################################################################### ;Combat Sprites Tank1: .byte $00,$FC,$FC,$38,$3F,$38,$FC,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;7 high facing right Tank2: .byte $00,$1C,$78,$FB,$7C,$1C,$1F,$3E,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;8 high rotate right Tank3: .byte $00,$19,$3A,$7C,$FF,$DF,$0E,$1C,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;rotate right some more Tank4: .byte $00,$24,$64,$79,$FF,$FF,$4E,$0E,$04,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;rotate right some more Tank5: .byte $00,$08,$08,$6B,$7F,$7F,$7F,$63,$63,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;face down Tank6: .byte $00,$24,$26,$9E,$FF,$FF,$72,$70,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Tank7: .byte $00,$98,$5C,$3E,$FF,$FB,$70,$38,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Tank8: .byte $00,$38,$1E,$DF,$3E,$38,$F8,$7C,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;####################################################################################### ORG $F800 ;Mario! Mario1: .byte $00,$3B,$36,$36,$36,$3E,$3E,$3E,$3E,$DE,$DF,$7D,$3C,$18,$3C,$7E,$70,$57,$5E,$50,$18,$7E,$38,$18 ;23 high standing Mario2: .byte $00,$00,$80,$80,$E7,$FF,$3D,$3C,$0E,$6F,$6F,$7D,$3C,$18,$3C,$7E,$70,$57,$5E,$50,$18,$7E,$38,$18 ;Running 1 Mario3: .byte $00,$18,$33,$33,$37,$0E,$1E,$06,$3A,$3A,$24,$3C,$3C,$18,$3C,$7E,$70,$57,$5E,$50,$18,$7E,$38,$18 ;Running 2 Mario4: .byte $00,$47,$46,$06,$0E,$1C,$3C,$3C,$3C,$DC,$DC,$F8,$78,$30,$78,$FC,$E0,$AE,$BC,$A0,$30,$FC,$70,$30 ;Running 3 Mario5: .byte $00,$00,$00,$80,$80,$F0,$FF,$3B,$3D,$DD,$DC,$FE,$7F,$19,$3D,$7E,$70,$57,$5E,$50,$18,$FC,$70,$30 ;running 4 Mario6: .byte $00,$18,$33,$33,$37,$0E,$1E,$06,$3A,$3A,$24,$3C,$3C,$18,$3C,$7E,$70,$57,$5E,$50,$18,$7E,$38,$18 ;Running 2 repeat Mario7: .byte $00,$00,$00,$36,$36,$3E,$3E,$3E,$3E,$DE,$DF,$7D,$3C,$18,$3C,$7E,$70,$57,$5E,$50,$18,$7E,$38,$18 ;jumping MarioCol: .byte $22,$22,$72,$72,$72,$72,$72,$72,$45,$45,$45,$45,$45,$45,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$72,$72,$72 ;####################################################################################### ;Pitfall Harry 21 tall Pit1: .byte $00,$18,$10,$1C,$18,$18,$18,$18,$18,$18,$18,$18,$18,$1C,$1E,$1A,$18,$18,$10,$18,$18,$18,$00,$00 ;Stand Pit2: .byte $00,$00,$00,$00,$00,$00,$33,$72,$DA,$1E,$1C,$18,$58,$58,$7C,$3E,$1A,$18,$10,$18,$18,$18,$00,$00 ;jump/kneel Pit3: .byte $00,$00,$02,$43,$44,$74,$14,$1C,$1C,$18,$18,$18,$3C,$3E,$3A,$38,$18,$18,$10,$18,$18,$18,$00,$00 ;run4 Pit4: .byte $00,$00,$08,$28,$28,$3E,$0A,$0E,$1C,$18,$18,$1C,$1C,$18,$18,$18,$18,$18,$10,$18,$18,$18,$00,$00 ;run3 Pit5: .byte $00,$00,$20,$22,$24,$34,$32,$16,$1E,$1C,$18,$18,$1C,$1C,$18,$18,$18,$18,$10,$18,$18,$18,$00,$00 ;run2 Pit6: .byte $00,$00,$80,$80,$C3,$62,$62,$36,$3E,$1C,$18,$18,$3C,$3E,$3A,$38,$18,$18,$10,$18,$18,$18,$00,$00 ;run1 Pit7: .byte $00,$00,$00,$00,$00,$00,$00,$63,$F2,$F6,$DC,$C0,$C0,$C0,$C0,$C0,$F0,$D0,$90,$D0,$D0,$C0,$00,$00 ;swing PitCol: .byte $00,$C4,$C4,$C4,$C4,$C4,$C4,$C4,$C4,$C4,$C4,$C4,$CF,$CF,$CF,$CF,$CF,$CF,$CF,$3F,$3F,$23,$00,$00 ;#######################################################################################;Ms PacMan MsPac1: .byte $00,$00,$00,$00,$00,$00,$5C,$BE,$77,$57,$77,$63,$63,$41,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;facing up open mouth MsPac2: .byte $00,$00,$00,$00,$00,$00,$5C,$BE,$77,$57,$77,$77,$63,$63,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00 MsPac3: .byte $00,$00,$00,$00,$00,$00,$5C,$BE,$7F,$5F,$7F,$7F,$7F,$7F,$3E,$1C,$00,$00,$00,$00,$00,$00,$00,$00 ;facing up closed MsPac4: .byte $00,$00,$00,$00,$00,$00,$1C,$38,$78,$70,$60,$60,$70,$68,$B8,$5C,$00,$00,$00,$00,$00,$00,$00,$00 ;facing right wide open MsPac5: .byte $00,$00,$00,$00,$00,$00,$1C,$3E,$7E,$78,$60,$60,$78,$6E,$BE,$5C,$00,$00,$00,$00,$00,$00,$00,$00 ;facing right part closed MsPac6: .byte $00,$00,$00,$00,$00,$00,$1C,$3E,$7F,$7F,$7F,$7F,$7F,$6F,$BE,$5C,$00,$00,$00,$00,$00,$00,$00,$00 ;facing right closed MsPac7: .byte $00,$00,$00,$00,$00,$00,$00,$00,$82,$C6,$C6,$EE,$EA,$EE,$7D,$3A,$00,$00,$00,$00,$00,$00,$00,$00 ;facing down open mouth MsPac8: .byte $00,$00,$00,$00,$00,$00,$00,$44,$C6,$C6,$EE,$EE,$EA,$EE,$7D,$3A,$00,$00,$00,$00,$00,$00,$00,$00 ;facing down part closed MsPac9: .byte $00,$00,$00,$00,$00,$00,$38,$7C,$FE,$FE,$FE,$FE,$FA,$FE,$7D,$3A,$00,$00,$00,$00,$00,$00,$00,$00 ;facing down closed MsPac10: .byte $00,$00,$00,$00,$00,$00,$38,$1C,$1E,$0E,$06,$06,$0E,$16,$1D,$3A,$00,$00,$00,$00,$00,$00,$00,$00 ;left wide open MsPac11: .byte $00,$00,$00,$00,$00,$00,$38,$7C,$7E,$1E,$06,$06,$1E,$76,$7D,$3A,$00,$00,$00,$00,$00,$00,$00,$00 ;left part closed MsPac12: .byte $00,$00,$00,$00,$00,$00,$38,$7C,$FE,$FE,$FE,$FE,$FE,$F6,$7D,$3A,$00,$00,$00,$00,$00,$00,$00,$00 ;left closed ;####################################################################################### ;Pacman Pac1: .byte $00,$00,$00,$00,$00,$00,$38,$7C,$FE,$FE,$FE,$6C,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pac2: .byte $00,$00,$00,$00,$00,$00,$38,$7C,$FE,$E0,$FE,$6C,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pac3: .byte $00,$00,$00,$00,$00,$00,$38,$7E,$E0,$C0,$E0,$6C,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pacdie1: .byte $00,$00,$00,$00,$00,$00,$3C,$7E,$C3,$C3,$E7,$66,$24,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pacdie2: .byte $00,$00,$00,$00,$00,$00,$18,$3C,$7E,$E7,$E7,$C3,$C3,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pacdie3: .byte $00,$00,$00,$00,$00,$00,$3C,$7E,$E7,$C3,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pacdie4: .byte $00,$00,$00,$00,$00,$00,$FF,$7E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pacdie5: .byte $00,$00,$00,$00,$00,$00,$14,$08,$14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Pacdie6: .byte $00,$00,$00,$00,$00,$00,$14,$22,$00,$41,$00,$41,$00,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 Eyes: .byte $E7,$A5,$E7 ;####################################################################################### ;Yar 8 tall Yar1: .byte $00,$00,$00,$00,$00,$00,$24,$18,$24,$24,$7E,$5A,$DB,$3C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;down,wings down Yar2: .byte $00,$00,$00,$00,$00,$00,$20,$30,$ED,$47,$2C,$3F,$17,$36,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;down right, wings down Yar3: .byte $00,$00,$00,$00,$00,$00,$02,$0E,$99,$67,$67,$99,$0E,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;right, wings down Yar4: .byte $00,$00,$00,$00,$00,$00,$36,$17,$3F,$2C,$47,$ED,$30,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;up right, wings down Yar5: .byte $00,$00,$00,$00,$00,$00,$3C,$DB,$5A,$7E,$24,$24,$18,$24,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;up, wings down Yar6: .byte $00,$00,$00,$00,$00,$00,$24,$99,$A5,$E7,$18,$18,$18,$3C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;down , wings up Yar7: .byte $00,$00,$00,$00,$00,$00,$20,$37,$EC,$44,$2C,$FF,$87,$06,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;down right, wings up Yar8: .byte $00,$00,$00,$00,$00,$00,$38,$08,$99,$67,$67,$99,$08,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;right, wings up Yar9: .byte $00,$00,$00,$00,$00,$00,$06,$87,$FF,$2C,$44,$EC,$37,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;up right, wings up Yar10: .byte $00,$00,$00,$00,$00,$00,$3C,$18,$18,$18,$E7,$A5,$99,$24,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;up, wings up ;####################################################################################### ;####################################################################################### ;Player Pointer Tabs MarioPtrTab: .byte <Mario1 .byte <Mario2 .byte <Mario3 .byte <Mario4 .byte <Mario5 .byte <Mario6 .byte <Mario7 ;####################################################################################### PitPtrTab: .byte <Pit1 .byte <Pit2 .byte <Pit3 .byte <Pit4 .byte <Pit5 .byte <Pit6 .byte <Pit7 ;####################################################################################### AstPtrTab: .byte <Ast1 .byte <Ast2 .byte <Ast3 .byte <Ast4 .byte <Ast5 .byte <Ast6 .byte <Ast7 ;####################################################################################### CircusPtrTab: .byte <Circus1 .byte <Circus2 .byte <Circus3 .byte <Circus4 .byte <Circus2 .byte <Circus6 .byte <Circus7 ;####################################################################################### TankPtrTab: .byte <Tank1 .byte <Tank2 .byte <Tank3 .byte <Tank4 .byte <Tank5 .byte <Tank6 .byte <Tank7 ;####################################################################################### MsPacPtrTab: .byte <MsPac4 .byte <MsPac5 .byte <MsPac6 .byte <MsPac5 .byte <MsPac4 .byte <MsPac5 .byte <MsPac6 ;####################################################################################### PacPtrTab: .byte <Pac1 .byte <Pac2 .byte <Pac3 .byte <Pac1 .byte <Pac2 .byte <Pac3 .byte <Pac2 ;####################################################################################### YarPtrTab: .byte <Yar1 .byte <Yar2 .byte <Yar3 .byte <Yar1 .byte <Yar2 .byte <Yar3 .byte <Yar2 ;####################################################################################### RhindlePtrTab: .byte <Rhindle1 .byte <Rhindle2 .byte <Rhindle3 .byte <Rhindle1 .byte <Rhindle2 .byte <Rhindle3 .byte <Rhindle2 P0PtrTab: .word <MarioPtrTab ;1 .word <PitPtrTab ;2 .word <MsPacPtrTab ;3 .word <PacPtrTab ;4 .word <YarPtrTab ;5 .word <AstPtrTab ;6 .word <TankPtrTab ;7 .word <CircusPtrTab ;8 .word <RhindlePtrTab ;9 P1PtrTab: .word <MarioPtrTab ;1 .word <PitPtrTab ;2 .word <MsPacPtrTab ;3 .word <PacPtrTab ;4 .word <YarPtrTab ;5 .word <AstPtrTab ;6 .word <TankPtrTab ;7 .word <CircusPtrTab ;8 .word <RhindlePtrTab ;9 ORG IntVectors NMI .word Cart_Init Reset .word Cart_Init IRQ .word Cart_Init
Attachment:
smash0803.bin
Description: Binary data
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Ideal settings for mak, Erik Eid | Thread | Re: [stella] Sprite Animation Help!, Thomas Jentzsch |
Re: [stella] Ideal settings for mak, Erik Eid | Date | Re: [stella] Sprite Animation Help!, Thomas Jentzsch |
Month |