Posted on 2009-02-07 08:16:19 PM
guyz i need help may i have a costum spryte that is 128 by 256 and you jump 500 times on it to die it and 744 times fireball it to die it too. make it dinamic so it is cool plz plz plz also can u make it run around mario an when u kill it u run 3 events an bowser from smb3 apear on the OV thx.
--------------------
My blog . I could post stuff now and then
My
Assembly for the SNES tutorial (it's actually finished now!)
Posted on 2009-02-07 08:25:14 PM
I'll get started on it right away. How about the graphics? Should I send you the eyebleeding palette or do you want to use an original one? fuck yeah meowingtons
Posted on 2009-02-07 08:32:15 PM | Last edited 2009-02-07 08:34:50 PM by Roy
No, you're wrong. This will not make him dynamic.
This, however, will:
Quote
dcb "INIT"
LDA $E4,x
CLC
ADC #$FF
STA $E4,x
LDA $14E0,x
ADC #$00
STA $14E0,x
RTL
dcb "MAIN"
PHB
PHK
PLB
JSR ABC
Return:
PLB
WDM
WAI
XBA
NOP
SBC $FFFFFF,x
REP #$FF
INC $36
INC $38
INC $3A
INC $3C
INC $3E
INC $40
SEP #$FF
RTL
ABC:
REP #$FF
db $A9
dw Return
STA $01,s
STA ($01,s),y
SEP #$DF
SEP #$20
RTS
Tag (div) was not closed. Tag (div) was not closed. --------------------
- - - - - - - - > Don't follow "Find Roy's Dignity",
my hack . Because it's pretty outdated.
< - - - - - - - -
Posted on 2009-02-07 09:14:42 PM
In Ersanio's honour, I will officially post this for all to see!
/cheer
Posted on 2009-02-07 09:18:01 PM
Here's the code to make Bowser appear on the OW:
Code SpawnBowser:
PHA
PHB
LDA #$04
PLB
PHX
LDY $13C1
LDA $1DEF
ASL
ASL
TAX
- LDA $FDC3,x
ORA $FDD3,y
STA $0EC8,x
DEX
BPL -
TYA
ASL
TAY
LDA $FDE0,y
STA $0EC6
LDA $FDE1,y
STA $0EC7
LDA #$01
STA $2B
JSL $03D958
PLX
PLB
PLA
RTL
Posted on 2009-02-07 10:14:46 PM | Last edited 2009-02-07 11:04:18 PM by FPzero
Originally posted by N.N. In Ersanio's honour, I will officially post this for all to see!
*Destroyed rickroll*
/cheer</div></div>
Fixed.
FP EDIT: STOP RICKROLLING EVERYONE IN EVERY THREAD YOU FIND.
Unexpected end tag (</div>) at 222, expected </p> Unexpected end tag (</div>) at 228, expected </p> Tag (p) was not closed. Tag (div) was not closed. Tag (div) was not closed.
Posted on 2009-02-07 10:25:01 PM
Oh, Ersan, don't stop!
SEP #$04
RTS
Posted on 2009-02-08 03:08:43 AM
Okay, been working all day but I got the basics set up. Right now it's only 128x128 but I'll fix that later. It's also using Banzai Bill graphics duplicated and flipped a few times, just so you can see how big it is. Once we get real graphics going we can replace them with that. What kind of graphics are you looking for, Ersan? Is anyone willing to make some for us?
Anyway, it took a while so right now the sprite mostly just moves around and shoots some fireballs. It's also set up to take damage from everything, and has HP set so it doesn't just take X jumps to kill, you can set how much damage jumps, spinjumps, fireballs, cape spins, thrown objects, bombs, and stars do.
Here's a screenshot:
Here's the code so far, just so someone else can pick up work on it:
Code UpdateSpritePos = $01802A
MarioSprInteract = $01A7DC
GetSpriteClippingA = $03B69F
FinishOAMWrite = $01B7B3
ExtraProperty1 = $7FAB28
ExtraProperty2 = $7FAB34
RAM_SpriteDir = $157C
RAM_SprTurnTimer = $15AC
ExtraInfo = $7FAB10
X_Position = $1504
RAM_SprStopTimer = $1564
GetRand = $01ACF9
STATE_TIMER = $C0
ATTACK_RANGE = $00
WALL_TIMER = $FF
SPRITE_PATTERN = $20
IS_FLIPPING = $01
BACKFLIP_STATE = $80
WALLRUN_ENABLE = $00
ATTACK_RATE = $40
ATTACK_TYPE = $08
ATTACK_TYPE2 = $10
EXTRA_PROP_1 = $7FAB28
EXTRA_BITS = $7FAB10
NEW_SPRITE_NUM = $7FAB9E
BossHP = $1388
JumpDamage = $0A
SpinDamage = $0E
FireballDamage = $04
CapeDamage = $08
ObjectDamage = $10
BombDamage = $1E
StarDamage = $02 ; Per second
dcb "INIT"
LDA $E4,x
CLC
ADC #$FF
STA $E4,x
LDA $14E0,x
ADC #$00
STA $14E0,x
RTL
dcb "MAIN"
RETURN
RTS
SPRITE_CODE_START
JSR SPRITE_GRAPHICS
LDA $14C8,x
CMP #$08
BNE RETURN
LDA $9D
BNE RETURN
JSR SUB_OFF_SCREEN_X0
LDA $163E,x
BEQ NO_DEC
DEC $163E,x
NO_DEC
LDA $14
LSR A
LSR A
LSR A
CLC
ADC $15E9
AND #$01
ASL A
ASL A
STA $1602,x
PHB
PHK
PLB
JSR ABC
Return:
PLB
WDM
WAI
XBA
NOP
SBC $FFFFFF,x
REP #$FF
INC $36
INC $38
INC $3A
INC $3C
INC $3E
INC $40
SEP #$FF
RTL
ABC:
REP #$FF
db $A9
dw Return
STA $01,s
STA ($01,s),y
SEP #$DF
SEP #$20
RTS
LABEL92
LDA $151C,x
STA $01
LDA $1602,x
STA $00
REP #$30
LDA $00
CLC
ADC.W #$0080
AND.W #$01FF
STA $02
LDA $00
AND.W #$00FF
ASL A
TAX
LDA $07F7DB,x
STA $04
LDA $02
AND.W #$00FF
ASL A
TAX
LDA $07F7DB,x
STA $06
SEP #$30
LDX $15E9
LDA $04
STA $4202
LDA $187B,x
LDY $05
BNE LABEL93
STA $4203
ASL $4216
LDA $4217
ADC #$00
LABEL93
LSR $01
BCC LABEL94
EOR #$FF ; \ reverse direction of rotation
INC A ; /
LABEL94
STA $04
LDA $06
STA $4202
LDA $187B,x
LDY $07
BNE LABEL95
STA $4203
ASL $4216
LDA $4217
ADC #$00
LABEL95
LSR $03
BCC LABEL96
EOR #$FF
INC A
LABEL96
STA $06
LDA $E4,x
PHA
LDA $14E0,x
PHA
LDA $D8,x
PHA
LDA $14D4,x
PHA
LDY $0F86,x
STZ $00
LDA $04
BPL LABEL97
DEC $00
SpawnBowser:
PHA
PHB
LDA #$04
PLB
PHX
LDY $13C1
LDA $1DEF
ASL
ASL
TAX
LDA $FDC3,x
ORA $FDD3,y
STA $0EC8,x
DEX
BPL
TYA
ASL
TAY
LDA $FDE0,y
STA $0EC6
LDA $FDE1,y
STA $0EC7
LDA #$01
STA $2B
JSL $03D958
PLX
PLB
PLA
RTL
SUB_CHANGE_DIR
LDA $15AC,x
BNE LABEL41
LDA #$08
STA $15AC,x
LDA $B6,x
EOR #$FF
INC A
STA $B6,x
LDA $157C,x
EOR #$01
STA $157C,x
LABEL41
RTS
ADDR_19_FB2C STZ $186C,X
ADDR_19_FB2F STZ $15A0,X
ADDR_19_FB32 LDA $E4,X
ADDR_19_FB34 CMP $1A
ADDR_19_FB36 LDA $14E0,X
ADDR_19_FB39 SBC $1B
ADDR_19_FB3B BEQ ADDR_19_FB40
ADDR_19_FB3D INC $15A0,X
ADDR_19_FB40 LDA $14E0,X
ADDR_19_FB43 XBA
ADDR_19_FB44 LDA $E4,X
ADDR_19_FB46 REP #$20 ; Accum (16 bit)
ADDR_19_FB48 SEC
ADDR_19_FB49 SBC $1A
ADDR_19_FB4B CLC
ADDR_19_FB4C ADC.w #$0040
ADDR_19_FB4F CMP.w #$0180
ADDR_19_FB52 SEP #$20 ; Accum (8 bit)
ADDR_19_FB54 ROL
ADDR_19_FB55 AND #$01
ADDR_19_FB57 STA $15C4,X
ADDR_19_FB5A BNE ADDR_19_FB9B
ADDR_19_FB5C LDY #$00
ADDR_19_FB5E LDA $1662,X
ADDR_19_FB61 AND #$20
ADDR_19_FB63 BEQ ADDR_19_FB66
ADDR_19_FB65 INY
ADDR_19_FB66 LDA $D8,X
ADDR_19_FB68 CLC
ADDR_19_FB69 ADC ADDR_19_FB28,Y
ADDR_19_FB6C PHP
ADDR_19_FB6D CMP $1C
ADDR_19_FB6F ROL $00
ADDR_19_FB71 PLP
ADDR_19_FB72 LDA $14D4,X
ADDR_19_FB75 ADC #$00
ADDR_19_FB77 LSR $00
ADDR_19_FB79 SBC $1D
ADDR_19_FB7B BEQ ADDR_19_FB86
ADDR_19_FB7D LDA $186C,X
ADDR_19_FB80 ORA ADDR_19_FB2A,Y
ADDR_19_FB83 STA $186C,X
ADDR_19_FB86 DEY
ADDR_19_FB87 BPL ADDR_19_FB66
ADDR_19_FB89 LDY $15EA,X
ADDR_19_FB8C LDA $E4,X
ADDR_19_FB8E SEC
ADDR_19_FB8F SBC $1A
ADDR_19_FB91 STA $00
ADDR_19_FB93 LDA $D8,X
ADDR_19_FB95 SEC
ADDR_19_FB96 SBC $1C
ADDR_19_FB98 STA $01
ADDR_19_FB9A RTS
ADDR_19_FB9B PLA
ADDR_19_FB9C PLA
ADDR_19_FB9D RTS
ADDR_19_FB9E LDY #$00
ADDR_19_FBA0 LDA $94
ADDR_19_FBA2 SEC
ADDR_19_FBA3 SBC $E4,X
ADDR_19_FBA5 STA $0F
ADDR_19_FBA7 LDA $95
ADDR_19_FBA9 SBC $14E0,X
ADDR_19_FBAC BPL ADDR_19_FBAF
ADDR_19_FBAE INY
ADDR_19_FBAF RTS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; routines below can be shared by all sprites. they are ripped from original
; SMW and poorly documented
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; points routine
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STAR_SOUNDS dcb $00,$13,$14,$15,$16,$17,$18,$19
SUB_STOMP_PTS PHY ;
LDA $1697 ; \
CLC ; |
ADC $1626,x ; / some enemies give higher pts/1ups quicker??
INC $1697 ; increase consecutive enemies stomped
TAY ;
INY ;
CPY #$08 ; \ if consecutive enemies stomped >= 8 ...
BCS NO_SOUND ; / ... don't play sound
LDA STAR_SOUNDS,y ; \ play sound effect
STA $1DF9 ; /
NO_SOUND TYA ; \
CMP #$08 ; | if consecutive enemies stomped >= 8, reset to 8
BCC NO_RESET ; |
LDA #$08 ; /
NO_RESET JSL $02ACE5 ; give mario points
PLY ;
RTS ; return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $B760 - graphics routine helper - shared
; sets off screen flags and sets index to OAM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;org $03B75C
TABLE1 dcb $0C,$1C
TABLE2 dcb $01,$02
GET_DRAW_INFO STZ $186C,x ; reset sprite offscreen flag, vertical
STZ $15A0,x ; reset sprite offscreen flag, horizontal
LDA $E4,x ; \
CMP $1A ; | set horizontal offscreen if necessary
LDA $14E0,x ; |
SBC $1B ; |
BEQ ON_SCREEN_X ; |
INC $15A0,x ; /
ON_SCREEN_X LDA $14E0,x ; \
XBA ; |
LDA $E4,x ; |
REP #$20 ; |
SEC ; |
SBC $1A ; | mark sprite invalid if far enough off screen
CLC ; |
ADC.W #$0040 ; |
CMP.W #$0180 ; |
SEP #$20 ; |
ROL A ; |
AND #$01 ; |
STA $15C4,x ; /
BNE INVALID ;
LDY #$00 ; \ set up loop:
LDA $1662,x ; |
AND #$20 ; | if not smushed (1662 & 0x20), go through loop twice
BEQ ON_SCREEN_LOOP ; | else, go through loop once
INY ; /
ON_SCREEN_LOOP LDA $D8,x ; \
CLC ; | set vertical offscreen if necessary
ADC TABLE1,y ; |
PHP ; |
CMP $1C ; | (vert screen boundry)
ROL $00 ; |
PLP ; |
LDA $14D4,x ; |
ADC #$00 ; |
LSR $00 ; |
SBC $1D ; |
BEQ ON_SCREEN_Y ; |
LDA $186C,x ; | (vert offscreen)
ORA TABLE2,y ; |
STA $186C,x ; |
ON_SCREEN_Y DEY ; |
BPL ON_SCREEN_LOOP ; /
LDY $15EA,x ; get offset to sprite OAM
LDA $E4,x ; \
SEC ; |
SBC $1A ; | $00 = sprite x position relative to screen boarder
STA $00 ; /
LDA $D8,x ; \
SEC ; |
SBC $1C ; | $01 = sprite y position relative to screen boarder
STA $01 ; /
RTS ; return
INVALID PLA ; \ return from *main gfx routine* subroutine...
PLA ; | ...(not just this subroutine)
RTS ; /
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $B829 - vertical mario/sprite position check - shared
; Y = 1 if mario below sprite??
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;org $03B829
SUB_VERT_POS LDY #$00 ;A:25A1 X:0007 Y:0001 D:0000 DB:03 S:01EA P:envMXdizCHC:0130 VC:085 00 FL:924
LDA $96 ;A:25A1 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdiZCHC:0146 VC:085 00 FL:924
SEC ;A:2546 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdizCHC:0170 VC:085 00 FL:924
SBC $D8,x ;A:2546 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdizCHC:0184 VC:085 00 FL:924
STA $0F ;A:25D6 X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0214 VC:085 00 FL:924
LDA $97 ;A:25D6 X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0238 VC:085 00 FL:924
SBC $14D4,x ;A:2501 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdizcHC:0262 VC:085 00 FL:924
BPL LABEL11 ;A:25FF X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0294 VC:085 00 FL:924
INY ;A:25FF X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0310 VC:085 00 FL:924
LABEL11 RTS ;A:25FF X:0007 Y:0001 D:0000 DB:03 S:01EA P:envMXdizcHC:0324 VC:085 00 FL:924
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $B817 - horizontal mario/sprite check - shared
; Y = 1 if mario left of sprite??
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;org $03B817
SUB_HORZ_POS LDY #$00 ;A:25D0 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1020 VC:097 00 FL:31642
LDA $94 ;A:25D0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:envMXdiZCHC:1036 VC:097 00 FL:31642
SEC ;A:25F0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1060 VC:097 00 FL:31642
SBC $E4,x ;A:25F0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1074 VC:097 00 FL:31642
STA $0F ;A:25F4 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1104 VC:097 00 FL:31642
LDA $95 ;A:25F4 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1128 VC:097 00 FL:31642
SBC $14E0,x ;A:2500 X:0006 Y:0000 D:0000 DB:03 S:01ED P:envMXdiZcHC:1152 VC:097 00 FL:31642
BPL LABEL16 ;A:25FF X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1184 VC:097 00 FL:31642
INY ;A:25FF X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1200 VC:097 00 FL:31642
LABEL16 RTS ;A:25FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:1214 VC:097 00 FL:31642
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $B85D - off screen processing code - shared
; sprites enter at different points
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;org $03B83B
TABLE3 dcb $40,$B0
TABLE6 dcb $01,$FF
TABLE4 dcb $30,$C0,$A0,$80,$A0,$40,$60,$B0
TABLE5 dcb $01,$FF,$01,$FF,$01,$00,$01,$FF
SUB_OFF_SCREEN_X0 LDA #$06 ; \ entry point of routine determines value of $03
BRA STORE_03 ; |
SUB_OFF_SCREEN_X1 LDA #$04 ; |
BRA STORE_03 ; |
SUB_OFF_SCREEN_X2 LDA #$02 ; |
STORE_03 STA $03 ; |
BRA START_SUB ; |
SUB_OFF_SCREEN_X3 STZ $03 ; /
START_SUB JSR SUB_IS_OFF_SCREEN ; \ if sprite is not off screen, return
BEQ RETURN_2 ; /
LDA $5B ; \ goto VERTICAL_LEVEL if vertical level
AND #$01 ; |
BNE VERTICAL_LEVEL ; /
LDA $D8,x ; \
CLC ; |
ADC #$50 ; | if the sprite has gone off the bottom of the level...
LDA $14D4,x ; | (if adding 0x50 to the sprite y position would make the high byte >= 2)
ADC #$00 ; |
CMP #$02 ; |
BPL ERASE_SPRITE ; / ...erase the sprite
LDA $167A,x ; \ if "process offscreen" flag is set, return
AND #$04 ; |
BNE RETURN_2 ; /
LDA $13 ; \
AND #$01 ; |
ORA $03 ; |
STA $01 ; |
TAY ; /
LDA $1A ;x boundry ;A:0101 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0256 VC:090 00 FL:16953
CLC ;A:0100 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdiZcHC:0280 VC:090 00 FL:16953
ADC TABLE4,y ;A:0100 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdiZcHC:0294 VC:090 00 FL:16953
ROL $00 ;A:01C0 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizcHC:0326 VC:090 00 FL:16953
CMP $E4,x ;x pos ;A:01C0 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizcHC:0364 VC:090 00 FL:16953
PHP ;A:01C0 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:0394 VC:090 00 FL:16953
LDA $1B ;x boundry hi ;A:01C0 X:0006 Y:0001 D:0000 DB:03 S:01EC P:eNvMXdizCHC:0416 VC:090 00 FL:16953
LSR $00 ;A:0100 X:0006 Y:0001 D:0000 DB:03 S:01EC P:envMXdiZCHC:0440 VC:090 00 FL:16953
ADC TABLE5,y ;A:0100 X:0006 Y:0001 D:0000 DB:03 S:01EC P:envMXdizcHC:0478 VC:090 00 FL:16953
PLP ;A:01FF X:0006 Y:0001 D:0000 DB:03 S:01EC P:eNvMXdizcHC:0510 VC:090 00 FL:16953
SBC $14E0,x ;x pos high ;A:01FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:0538 VC:090 00 FL:16953
STA $00 ;A:01FE X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:0570 VC:090 00 FL:16953
LSR $01 ;A:01FE X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:0594 VC:090 00 FL:16953
BCC LABEL20 ;A:01FE X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdiZCHC:0632 VC:090 00 FL:16953
EOR #$80 ;A:01FE X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdiZCHC:0648 VC:090 00 FL:16953
STA $00 ;A:017E X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizCHC:0664 VC:090 00 FL:16953
LABEL20 LDA $00 ;A:017E X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizCHC:0688 VC:090 00 FL:16953
BPL RETURN_2 ;A:017E X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizCHC:0712 VC:090 00 FL:16953
ERASE_SPRITE LDA $14C8,x ; \ if sprite status < 8, permanently erase sprite
CMP #$08 ; |
BCC KILL_SPRITE ; /
LDY $161A,x ;A:FF08 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdiZCHC:0140 VC:071 00 FL:21152
CPY #$FF ;A:FF08 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizCHC:0172 VC:071 00 FL:21152
BEQ KILL_SPRITE ;A:FF08 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0188 VC:071 00 FL:21152
LDA #$00 ; \ mark sprite to come back A:FF08 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0204 VC:071 00 FL:21152
STA $1938,y ; / A:FF00 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdiZcHC:0220 VC:071 00 FL:21152
KILL_SPRITE STZ $14C8,x ; erase sprite
RETURN_2 RTS ; return
VERTICAL_LEVEL LDA $167A,x ; \ if "process offscreen" flag is set, return
AND #$04 ; |
BNE RETURN_2 ; /
LDA $13 ; \ only handle every other frame??
LSR A ; |
BCS RETURN_2 ; /
AND #$01 ;A:0227 X:0006 Y:00EC D:0000 DB:03 S:01ED P:envMXdizcHC:0228 VC:112 00 FL:1142
STA $01 ;A:0201 X:0006 Y:00EC D:0000 DB:03 S:01ED P:envMXdizcHC:0244 VC:112 00 FL:1142
TAY ;A:0201 X:0006 Y:00EC D:0000 DB:03 S:01ED P:envMXdizcHC:0268 VC:112 00 FL:1142
LDA $1C ;A:0201 X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0282 VC:112 00 FL:1142
CLC ;A:02BD X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizcHC:0306 VC:112 00 FL:1142
ADC TABLE3,y ;A:02BD X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizcHC:0320 VC:112 00 FL:1142
ROL $00 ;A:026D X:0006 Y:0001 D:0000 DB:03 S:01ED P:enVMXdizCHC:0352 VC:112 00 FL:1142
CMP $D8,x ;A:026D X:0006 Y:0001 D:0000 DB:03 S:01ED P:enVMXdizCHC:0390 VC:112 00 FL:1142
PHP ;A:026D X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNVMXdizcHC:0420 VC:112 00 FL:1142
LDA.W $001D ;A:026D X:0006 Y:0001 D:0000 DB:03 S:01EC P:eNVMXdizcHC:0442 VC:112 00 FL:1142
LSR $00 ;A:0200 X:0006 Y:0001 D:0000 DB:03 S:01EC P:enVMXdiZcHC:0474 VC:112 00 FL:1142
ADC TABLE6,y ;A:0200 X:0006 Y:0001 D:0000 DB:03 S:01EC P:enVMXdizCHC:0512 VC:112 00 FL:1142
PLP ;A:0200 X:0006 Y:0001 D:0000 DB:03 S:01EC P:envMXdiZCHC:0544 VC:112 00 FL:1142
SBC $14D4,x ;A:0200 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNVMXdizcHC:0572 VC:112 00 FL:1142
STA $00 ;A:02FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizcHC:0604 VC:112 00 FL:1142
LDY $01 ;A:02FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizcHC:0628 VC:112 00 FL:1142
BEQ LABEL22 ;A:02FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0652 VC:112 00 FL:1142
EOR #$80 ;A:02FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0668 VC:112 00 FL:1142
STA $00 ;A:027F X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0684 VC:112 00 FL:1142
LABEL22 LDA $00 ;A:027F X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0708 VC:112 00 FL:1142
BPL RETURN_2 ;A:027F X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:0732 VC:112 00 FL:1142
BMI ERASE_SPRITE ;A:0280 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:0170 VC:064 00 FL:1195
SUB_IS_OFF_SCREEN LDA $15A0,x ; \ if sprite is on screen, accumulator = 0
ORA $186C,x ; |
RTS ; / return
Posted on 2009-02-08 10:14:11 AM
omg.
thx you so much every1
but i dont know insert sprites now some1 help me plzzzzzzz
(
Posted on 2009-02-08 01:59:39 PM
Insert sprites Via Sprite tool
--------------------
Posted on 2009-02-08 03:37:41 PM
whats a sprite tool????XD?? <_______<"
sry dispari i overlooked a sentence i want graphs from shadow of teh colosus
Posted on 2009-02-08 04:17:47 PM
sprite tool is a tool to insert sprites
Posted on 2009-02-08 04:26:08 PM
Originally posted by VoltrezOneMillion Insert sprites Via Sprite tool
Actually the ASM for the sprite is so advanced it won't insert through Sprite Tool. We'll have to insert the code for him manually.
Posted on 2009-02-08 09:21:49 PM | Last edited 2009-02-08 09:25:02 PM by imamelia
Originally posted by Dispari Scuro Okay, been working all day but I got the basics set up. Right now it's only 128x128 but I'll fix that later. It's also using Banzai Bill graphics duplicated and flipped a few times, just so you can see how big it is. Once we get real graphics going we can replace them with that. What kind of graphics are you looking for, Ersan? Is anyone willing to make some for us?
Anyway, it took a while so right now the sprite mostly just moves around and shoots some fireballs. It's also set up to take damage from everything, and has HP set so it doesn't just take X jumps to kill, you can set how much damage jumps, spinjumps, fireballs, cape spins, thrown objects, bombs, and stars do.
Here's a screenshot:
Here's the code so far, just so someone else can pick up work on it:
Code ASModeus the Code-Hearted:
The miASMa of his programming sarcASM will freeze your plASMa, causing you to go into a neuropathic spASM.
Dispari! Why do you have to work on Ersanio's dumb old sprite right now? I was going to ask you to code the 36 custom bosses I need for MY hack!!
And I don't believe Sprite Tool is a tool you use to insert sprites. Sheesh, next you'll be telling me that Addmusic is a program you use to add music.
----------------
I'm working on a hack! Check it out
here .
Posted on 2009-02-08 10:29:10 PM
Yes! Don't you guys get it!? This sprite is so advanced that it needs to be inserted with Addmusic RevX! Not Sprite Tool! What the hell are you guys thinking!? o_O
Also, that's not the right code Dispari. Yours doesn't do anything. This is the corret code:
Code NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RTS
Posted on 2009-02-09 05:49:03 AM
tajt runs theh sament bolcks
i want samint bolcks in may ahck
Posted on 2009-02-09 07:12:48 PM
wheres my sprite im waiting 4 hours now but no now sprite??? O______________O""""""""""""""
Posted on 2009-02-09 09:05:46 PM
Originally posted by Ersanio wheres my sprite im waiting 4 hours now but no now sprite??? O______________O""""""""""""""
I've called in the local ASM specialist to transfer the accumulator to Y for you.
also:
RTL
Pages: 1
Link - Thread Closed
Forum Index - Donut Plains - General Discussion - what
Follow Us On