Language…
9 users online: autisticsceptile1993, Brian94, crm0622, DanMario24YT, HengShao, Josuke Yoshikage, Rykon-V73, ShadowMistressYuko, Sweetdude - Guests: 106 - Bots: 237
Users: 64,667 (2,405 active)
Latest user: DarthHylian

Posts by Jagfillit

Jagfillit's Profile → Posts

Practicing with other uses of ASM, like xkas patches or custom blocks, is also great way to gain a better understanding of ASM and sprite coding.
Code
JMP Mario : JMP Mario : JMP Mario : JMP Return : JMP Return : JMP Return : JMP Return

Mario:
	LDA $1490
	CMP #$00
	BNE Return
	LDA #$25 	;act like air
	LDY #$00 
	STA $1693
	RTL
Return:
	LDA #$30 	;act like solid block
	LDY #$01 
	STA $1693
	RTL		;end code 


Try that. Make sure the block acts like 25.
The readme included with the HDMA Design Kit should give a decent explanation of effects creation. However, you'll probably have to experiment to get what you want, as opposed to being able to plan ahead like ASM.
When using a ROM with dynamic custom sprites inserted, the Rom reverts back to how it was prior to inserting blocks when any edits are made on BTSD.

Does anyone know how to prevent this?
...Ah. That was the problem.

My bad.
You're thinking of tile 128. 129 is an empty Turn Block.

The ROM Address that controls both Green Shell blocks is 0x10AB0, but it's shared so you can't only change one block.

And if you're using the Poison Mushroom included with Sprite Tool, the value should be changed to 85.
How does one make a sprite explode? I attempted to simply JSL to the routine, but all that does is cause the sprite to disappear.
Add

org $01C561
JML Inc_Counter ; New Mushroom pickup code

to the routines at the top of the patch's asm. If you removed the Inc_Counter part of the patch, it is:


Inc_Counter:

LDA !MAX_HEALTH
INC A
STA !MAX_HEALTH

JML $01C57A

Return:
RTL
Try setting storing a value to $149B instead of $71. Since $149B is a timer for the palette cycling, it should end it once it reaches 0 again instead of getting stuck that way indefinitely.
I'm trying to make a sprite, but I can't get it to fall off screen normally when jumped on, despite having set it to do so in the cfg. Instead it stands still briefly and disappears. I can't tell where in the ASM this is happening, but does anyone know how to fix this?
I've created a Miner Ant from SML2 but I've run into a slight problem. To generate the Diggin' Chuck rocks I used the game's original routine from a disassembly. It worked but I'm a bit lost on how to change the point where the sprite spawns from when facing left. Specifically, I want it to come from the sprite's position as opposed to 16 pixels to its left.

Here's the asm for the rock generator:
Code
DATA_02C194:        
	dcb $14,$EC

DATA_02C196:        
	dcb $00,$FF

DATA_02C198:        
	dcb $08,$F8

ADDR_02C19A:        JSL $02A9E4		    ; \ Return if no free slots 
                    BMI Return02C1F2          ; / 
                    LDA #$08                ; \ Sprite status = Normal 
                    STA $14C8,Y             ; / 
                    LDA #$48                
                    STA $009E,Y             
                    LDA $157C,X             
                    STA $02                   
                    LDA $E4,X                 
                    STA $00                   
                    LDA $14E0,X             
                    STA $01                   
                    PHX                       
                    TYX                       
                    JSL $07F7D2    
                    LDX $02                   
                    LDA $00                   
                    CLC                       
                    ADC DATA_02C194,X       
                    STA $00E4,Y             
                    LDA $01                   
                    ADC DATA_02C196,X       
                    STA $14E0,Y             
                    LDA DATA_02C198,X       
                    STA $00B6,Y             
                    PLX                       
                    LDA $D8,X                 
                    CLC                       
                    ADC #$0A                
                    STA $00D8,Y             
                    LDA $14D4,X             
                    ADC #$00                
                    STA $14D4,Y             
                    LDA #$C0                
                    STA $00AA,Y             
                    LDA #$2C                
                    STA $1540,Y             
Return02C1F2:       RTS                       ; Return 


I've tried changing values, but this causes the rocks not to generate at all.
I had planned to give a preview of my hack Super Mario 64/4 and upload some of the sprites I have created for it, but due to school issues and my own laziness, I didn't get enough done in time to put together a decent presentation/make the sprites compatible with standard SMW hacks.

Eh, maybe for the Summer C3.
Does anyone know how to have a sprite react based on if the current level's exit/secret exit has already been found? Specifically, I'm trying to create a goal sprite that changes its tile when the player has touched it already.

There was a bit of code posted a few pages back for a similar idea, but it wouldn't work when I tried it.
...And a little bit of math. I'm trying to create two projectiles for Mario to use, but I've hit a bit of a snag. I want them to ignore a sprite they make contact with if the "disable fireball killing" or "disable cape killing" is set. $166E handles the tweaker byte that controls this. What I'm having trouble figuring out is which values do what (I think fireball disable makes the first digit an odd value, but I'm not positive) and how to reach them mathematically.
Ah, that works. Thanks Sonikku.
How does one check for sprite-sprite interaction within a sprite's ASM?
I'm currently getting a strange error where my sprites inserted with Spritetool don't interact with the block next to them, but the block under that one. Does anyone know how to solve this?