Banner
Views: 1,003,291,761
Time:
19 users online: Children's Digest 1950-2009, E-man38,  FPzero, gui, HammerBrother, JupiHornet, KaidenThelens, LizardCat64, Matheus0349, Mathos,  NopeContest, pixel5nake, Positron, potox, S.U, Stivi, TheRealCatsup, Torchkas, will___ - Guests: 81 - Bots: 147 Users: 54,837 (2,034 active)
Tip: Take advantage of easy to install Patches in your hack. For example, the Classic Piranha Plant fix should be considered if you are planning to insert that sprite in your hack.
Not logged in.
what
Forum Index - Donut Plains - General Discussion - what
Pages: « 1 » Link - Thread Closed
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!)
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
The Eggs of Saear | #extreme | Spade's Gallery of Visual Arts | PM me | My YouTube channel | xkcd | Dinosaur Comics
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. <--------
In Ersanio's honour, I will officially post this for all to see!



/cheer
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
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.
Oh, Ersan, don't stop!
SEP #$04
RTS
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
omg.

thx you so much every1

but i dont know insert sprites now some1 help me plzzzzzzz :((
Insert sprites Via Sprite tool

--------------------



whats a sprite tool????XD?? <_______<"
sry dispari i overlooked a sentence i want graphs from shadow of teh colosus
sprite tool is a tool to insert sprites
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.
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.
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
tajt runs theh sament bolcks
i want samint bolcks in may ahck
wheres my sprite im waiting 4 hours now but no now sprite??? O______________O""""""""""""""
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

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2022 - SMW Central
Legal Information - Privacy Policy - Link To Us


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy
  • sm64romhacks