Posted Tue Jan 27, 2004 2:20 PM
Posted Tue Jan 27, 2004 3:16 PM
4ever2600 said:
Posted Tue Jan 27, 2004 4:17 PM
Posted Tue Jan 27, 2004 4:25 PM
Posted Tue Jan 27, 2004 4:46 PM
FEB4: .byte E3,FB,....
Posted Tue Jan 27, 2004 5:16 PM
Posted Tue Jan 27, 2004 5:25 PM
Judge Reinhold said:
Posted Tue Jan 27, 2004 6:35 PM
Posted Tue Jan 27, 2004 6:46 PM
Posted Tue Jan 27, 2004 6:48 PM
Posted Tue Jan 27, 2004 7:00 PM
Posted Tue Jan 27, 2004 7:15 PM
F832 86,9A STX &9A ;Store the object dynamic data address. F834 A6,A0 LDX &A0 ;Get the object number. F836 20,FE,F6 JSR &F6FE ;See if another object has hit the dragon. F839 A6,9A LDX &9A ;Get the object address. F83B C9,51 CMP #&51 ;Has the sword hit the dragon. F83D D0,0C BNE &F84B ;If not, branch.
F832 86,9A STX &9A ;Store the object dynamic data address. F834 A6,A0 LDX &A0 ;Get the object number. F836 20,FE,F6 JSR &F6FE ;See if another object has hit the dragon. F839 A6,9A LDX &9A ;Get the object address. JMP &FD88 ;Jump to patch. NOP ;Use exactly 4 bytes ROM
;Object #4 : State FF : Graphic FD88 F0 XXXX FD89 80 X FD8A 80 X FD8B 80 X FD8C F4 XXXX X FD8D 04 X FD8E 87 X XXX FD8F E5 XXX X X FD90 87 X XXX FD91 80 X FD92 05 X X FD93 E5 XXX X X FD94 A7 X X XXX FD95 E1 XXX XTo this:
;Object #4 : State FF : Graphic ;Software patch FD88 CMP #&51 BEQ &FF93 ; Touching sword CMP #&87 BEQ &FD93 ; Touching dot JMP &F84B ; nothing happens FD93 JMP &F83F ; dragon dies
Posted Tue Jan 27, 2004 7:42 PM
LDA $95 CMP #$00 BEQ SwapPrintObjectsWhen you load a register with a value, the N and Z flags are already set. There is no reason at all to even use CMP to see if it's zero (unless another branch jumps there...but I won't go into that). You can shorten the above to this which does the same thing...
LDA $95 BEQ SwapPrintObjects
;White Castle Entry WhiteCastleEntry: .byte $F0,$3F,$0C .byte $F0,$00,$0C .byte $F0,$FF,$0F .byte $00,$30,$00 .byte $F0,$30,$00 .byte $00,$30,$00 .byte $F0,$FF,$0F ;Top Entry Room TopEntryRoom: .byte $F0,$FF,$0F .byte $30,$00,$00 .byte $30,$00,$00 .byte $30,$00,$00 .byte $30,$00,$00 .byte $30,$00,$00 .byte $F0,$FF,$FF
;White Castle Entry WhiteCastleEntry: .byte $F0,$3F,$0C .byte $F0,$00,$0C .byte $F0,$FF,$0F .byte $00,$30,$00 .byte $F0,$30,$00 .byte $00,$30,$00 ; (erased these bytes) ;Top Entry Room TopEntryRoom: .byte $F0,$FF,$0F .byte $30,$00,$00 .byte $30,$00,$00 .byte $30,$00,$00 .byte $30,$00,$00 .byte $30,$00,$00 .byte $F0,$FF,$FFThen when the display routine is looking through the values for the White castle, it doesn't have enough values in that table, and looks at the bytes we have labelled for the Top Entry Room (because the data there is next in line). That just saved you 3 bytes of rom space
Posted Tue Jan 27, 2004 9:22 PM
Posted Tue Jan 27, 2004 10:42 PM
4ever2600 said:
Posted Tue Jan 27, 2004 10:58 PM
Posted Wed Jan 28, 2004 1:20 AM
;Object #4 : State FF : Graphic GfxAuthor: .byte $FE ;XXXXXXX .byte $25 ; X X X .byte $26 ; X XX .byte $A4 ;X X X .byte $64 ; XX X .byte $00
.byte <BelowYellowCastle,>BelowYellowCastle, $66,$0A,$21,$06,$01,$06,$03 ;1E; Name Room Purple
;a custom screen with center wall CenterWallScreen: .byte $F0,$FF,$FF ;XXXXXXXXXXXXXXRRRRRRRRRRRRRR .byte $00,$00,$C0 ; XR .byte $00,$00,$C0 ; XR .byte $00,$00,$C0 ; XR .byte $00,$00,$C0 ; XR .byte $00,$00,$C0 ; XR .byte $F0,$FF,$FF ;XXXXXXXXXXXXXXRRRRRRRRRRRRRR
.byte <CenterWallScreen,>CenterWallScreen, $66,$0A,$21,$06,$01,$06,$03 ;1E; Name Room Purple
Posted Wed Jan 28, 2004 4:35 AM
Posted Wed Jan 28, 2004 12:43 PM
Posted Wed Jan 28, 2004 1:06 PM
4ever2600 said:
Posted Wed Jan 28, 2004 1:23 PM
CODE F000 F347 GFX F348 F500 CODE F501 FD09 GFX FD0A FFFA CODE FFFB FFFF
Posted Wed Jan 28, 2004 5:25 PM
Posted Wed Jan 28, 2004 5:35 PM
Posted Wed Jan 28, 2004 5:39 PM
Posted Wed Jan 28, 2004 6:39 PM
0 members, 0 guests, 0 anonymous users