Language…
14 users online: 1UPdudes, 7 up, Chambo, CosmicTiff, cyber47509,  Erik, fanfan21, ForthRightMC, Golden Yoshi, Green, Hot Sauce, mario90,  RussianMan, Saela - Guests: 93 - Bots: 148
Users: 69,715 (2,538 active)
Latest user: CORROSIVEsprings

Posts by hash

hash's Profile → Posts

Is your SP4 graphic index #lm{sgfxby} set to F? The flame needs that sprite index to display correctly.
I also don't know ASM well enough to assist you in making your own custom power-up, but the effect you're describing (straight shooting fireballs) seems like it can be achieved with this patch:

Fireball Patch

Perhaps you could use the information Manofer has provided, and this patch, as a base for coding your own custom power-up if you'd prefer.

I have not used that patch personally, so I would recommend you backup your ROM first before attempting to use the patch just in case something breaks.

Hopefully this helps you out.
Select the level you'd like to have destroyed after an event happens. Then click the #lm{owdestlv} icon in the toolbar and put the event number that your level activates. This should destroy the tile once it has been beaten (therefore activating the event).

For switch palaces make sure you also place the Layer 1 #lm{owev1} event tile (the flattened switch) on the same event your level activates.
I'm trying to understand ASM, mostly making sprites and patches. I have read some tutorials to understand what the OP codes do, and how SNES assembly functions. This post isn't really a show-off but I am happy with a result I have acheived. I have hacked together a 'new' sprite.

Here is a para-dry bones that flys in the same pattern as a red koopa!


It dies when jumped on because I'm still trying to figure out how to spawn a regular dry bones:


And it dies in a puff of smoke when spin jumped on:


I'm proud of myself for creating a functioning sprite that does exactly what I wanted for a level in my hack, but really all I did was merge two different sprites together. I took the base ASM code from Erik's Para-Spiny and merged the graphics routine from another one of Erik's sprites, the Para Dry Bones. Then modified the cfg file, and came out with this working sprite. Thanks to Erik for both his sprites :)
I believe Black is talking about the bounce sprites that appear when you hit blocks like a turn block, question block, note block, etc.

If so, there is a handy program called STEAR which allows you to remap (and change the palette row) of almost every vanilla sprite in the game. I suggest making a backup of your ROM before you mess with anything just in case things break.

You'll want to load your ROM then select the 'Bounce Sprites' dropdown. Go to whichever block (bounce sprite) you'd like to modify and on the right hand side of the program, change the palette row from 8 to 10, then save.

Hope that helps :)
I haven't tried these myself, but would this block here satisfy what you're trying to accomplish with the yellow orb?

For the gravity request, "anti-gravity" is kinda vague, so I'll supply you with a few different links:

Firstly, there are two [block / patch+blocks] that will reverse gravity. The block is here, and the patch is here.
Secondly, if you want low gravity (like it would be on the moon) you can try these UberASM codes here, here, and here.

I haven't used anything I linked to above personally, but I hope they help you.
Does anyone know what sprite number the castle entrance door is? Or if it's even possible to utilize this door in a level editable by LM?


I am aware of the level pointers at 38290 & 3821E that load the level data for the castle entrance, but of course the sprite data is located elsewhere.

I'm trying to avoid the process of using ExAnimation to imitate this open/close effect and just use SMW's own resources if possible.

EDIT: I'll ask here also about the ghost house entrance door as well. Same question's as above. Ghost House Door.gif
Name: Steam Gardens (8-bit remix)
Type: Port
Sampled: No (maybe? whatever is easiest with a decent result)
Youtube: https://www.youtube.com/watch?v=FkMxpl304_M

I tried a few programs to convert an MP3 into a midi with no luck. I'm not holding my breath on this request, but thought I'd throw it out there in case anyone is feeling ambitious. This is a really nice remix of Steam Gardens and it would be cool to get some Odyssey music in SMW.

Thanks to anyone who can fulfill this request :).
Poking around in Bank02.asm by Thomas, I found code that I can use to draw the castle door sprite. I have pasted it (un-elegantly) into an .asm file which I used Pixi to assemble. It worked perfectly! Here is the code that will draw the castle door sprite:

Castle Entrance Door

Now I am trying to work on getting the animation of the door opening to play out. Ideally I'd like to have a block that when Mario is inside it and presses up, the door will open. I am going to work on that now, and hopefully come back with some results. Just wanted to share this data with anyone that might be interested.
Perhaps this thread might be more suitable for the ASM & Related Topics forum now if a mod would like to move it.

Originally posted by Darolac
It seems it's already at the sprites section here.
I didn't even notice that entry when I searched, d'oh. I tested it, and it's not exactly the effect I'm going for. I only want the door sprite to spawn, but none of the auto-walk functionality or teleportation. Thank you though.


As for the block I am trying to create to open the door sprite, I can't seem to figure out how to make a block interact with a sprite upon button press. Currently the block code I have is:
Code
db $42
JMP main : JMP main : JMP main
JMP return : JMP return : JMP return : JMP return
JMP main : JMP main : JMP main

!sfx_open = $0F		;Door opening
!sfx_bank = $1DFC	;SFX bank

main:	
	LDA $16
	AND #$08
	BEQ return
	JSL *some address*
	 LDA $18D9
	 CLC
	 ADC #$B0
    	 STA $18D9
	LDA #!sfx_open
	STA !sfx_bank

return:
	RTL

print "Opens the Castle Entrance when the player presses Up"

I am not even sure this is the right direction to go in, but I thought it may be as easy as walk into the block, press up, run '$address to control the door open routine', play door opening SFX.
Every address I've tried that seems like it might work crashes the game. Can anyone point me in the right direction to get this block to run the door opening routine?
(I don't want or need the door to close, or Mario to walk without player intervention)


Edit: I checked out the RAM map and noticed that $18D9 is the timer for the door opening routine. Turns out calling an address was the incorrect method, and what I have edited above seems to work a lot better. I've just got to play around with the routine because the door shifts one 8x8 row down, then opens up and it looks funky. I'll try and correct it, but if someone else knows the quick fix, feel free to post it.

For now, it seems what I was trying to accomplish I have done :).
I've spent hours today trying to figure out how/why some sprites will just not spawn in my vertical level. I have yet to encounter this problem before, and am ripping my hair out running out of ideas for a fix.

Basically, I have a vertical level where layer 2 falls (sprite ED) and Mario must escape to the top. I think images will illustrate better than words, so here are what I think are the relevant information:

The settings for this level:


The level itself:


As you can see, the red shell and the custom sprite (walking candle flame from SMB3) I have circled do not spawn (the bats above them also do not spawn). The entire level is Layer 2, while the lava at the bottom is on Layer 1. I have a total of 8 sprites in this level, so I don't believe it's a sprite overload. I am aware of the vertical level bug where the statue fireball does not despawn when leaving the screen horizontally, but I do have the Vertical Level Bowser Statue Fireball Fix patched in. I also have the No More Sprite Tile Limits patch installed.

As for what I have tried:
1. Blocks to kill sprites when touched, placed strategically before the next sprites appear on screen.
2. Remove the bowser statue completely to rule out fireballs.
3. Custom Layer 2 UberASM instead of sprite (NOTE: Wouldn't work for me)
4. Moving the shell/custom sprite higher in the level.
5. Changing the Sprite Memory to 00 instead of 10.
6. Adjusting level starting screen (higher and lower) to account for potential screen boundary issues.

So far nothing has worked. Is this a vertical level limitation, am I missing something, is there a fix anyone is aware of?

Thank you for any help at all!
Thank you both for the replies! I tried out the vertical autoscroll generator first and while it works and loads my sprites, it moves too quickly. Any idea on how to slow it down?

I also tried out the Multi-Step Autoscroll, and while I can get the speed I need, it seems to cause a glitch where the rest of my level doesn't render (and an 8 pixel high row of layer 2 is permanently at the bottom causing cutoff). To be clear, the collision for the blocks are still there, but the graphics are invisible. See gif below (3.2MB):

https://bin.smwcentral.net/u/32624/castle.gif

Any help with either problem above would be greatly appreciated.
I have snipped together some code [from Alcaro's Waterfall Block] for a block that generates a splash when Mario is touching it. It works as expected. I know what part of the code I need to modify to adjust the height of the splash, but I'm unsure how to do it only if Mario is on Yoshi and retain the current settings if he isn't.

Here is the block code:
Code
db $42
JMP Mario : JMP Mario : JMP Mario : JMP Sprite : JMP Sprite : JMP End : JMP End
JMP Mario : JMP Mario : JMP Mario

!FreeRAM = $13D8

Sprite:
	RTL

Mario:
	LDA !FreeRAM
	EOR $14
	AND #$01
	BEQ +
	INC A
	INC A
	STA !FreeRAM
	LDA $14
	AND #$07
	BNE +
	JSR SplashFX
	+

End:
	RTL

SplashFX:
	PHY
	LDY #$0B
	.Loop
	LDA $17F0,y
	BEQ .Found
	DEY
	BPL .Loop
	PLY
	RTS

	.Found
	LDA $D3
	CLC		
	ADC #$18	\ This code alters the splash's Y axis
	STA $17FC,y	/
	LDA $D1
	STA $1808,y
	LDA $D2
	STA $18EA,y
	LDA #$07
	STA $17F0,y
	LDA #$12
	STA $1850,y
	PLY
	RTS

print "Generate splash when Mario touches it."


In the RAM map it says that the riding Yoshi flag is $187A and I think I need to write some code indicating if the flag is equal to $01 & $02, run some code (ADC #$28 works well visually), otherwise load the snippet above. But I'm unsure how to do that. Any ideas?

While I'm at it, the code above seems to only generate the last portion of the ExtSprite splash, and not the whole thing. How can I get the whole splash to show up? You can see what I mean in this gif (the full splash is at the end of the gif:

The first block is called a shatter block, and can be found here and here.
The second block looks like a bounce block and it can be found here.

It may take some minor tweaking of the .asm files to get the exact effect you're after. For the second block, here is how you can imitate the bounce shown in the video:

Replace:
Code
LDA #$80
STA $7D          ;Mario's Y Speed
LDA #$08         ;"Boing" sound
STA $1DFC        ;I/O Port played

With:
Code
LDA #$A0
STA $7D          ;Mario's Y Speed
LDA #$02         ;"Boing" sound
STA $1DF9        ;I/O Port played


All I did to change the second block was adjust Mario's bounce height (LDA #$A0), change the sounds made (LDA #$02 is the spin jump contact sound), and switch the sound port ($1DF9).
Hope that helps :)
I appreciate your reply WhiteYoshiEgg, "if statements" were what I was after, and in the end, it did solve the problem so thank you. I have been following imamelia's ASM Guide and modifying existing code to try and learn ASM, but my knowledge is still quite small. I do understand a bunch of the basic opcodes however, which is helpful.

Anyways, what the code you provided did was cascade the water splash vertically from the bottom of the screen, and wrapped it back around to cascade down the top of the screen.

When I altered
Code
	LDA $D3
	CLC		
by changing this value, moving its location, or swapping the addition it caused this cascade effect to happen and I'm unsure why as the code you provided in theory would accomplish what I'm trying to achieve.

With some trial and error, and probably unefficient code, I did manage to get it working. I basically copied the entire command into each of the branches like so:
Code
.Found
	LDA $187A	; load yoshi status
	BEQ .notOnYoshi ; if it's equal, branch to .notOnYoshi
	LDA $D3
	CLC
	ADC #$28	; otherwise, continue here and load #$28
	STA $17FC,y
	BRA .continue	; then branch to skip loading the other value
.notOnYoshi
	LDA $D3
	CLC
	ADC #$18	; if it's not equal, load #$18
	STA $17FC,y
.continue		; this is where we meet back up
	LDA $D1
	STA $1808,y
	LDA $D2
	STA $18EA,y
	LDA #$07
	STA $17F0,y
	LDA #$12
	STA $1850,y
	PLY
	RTS



Thanks again :)
Name: Better Thwomps
Type: Patch
Tool: Asar patch
Description: A customizable all-in-one patch to make Thwomps better. This would include:
1. Better proximity detection so they don't activate from screen borders
2. Left and right side block interaction (vanilla is left side only)
3. When rising up from crushing they ignore new blocks above them. Adding interaction would be nice.
4. Better facial expressions as Mario approaches.
I think it's a matter of personal preference. If a trick is obvious (such as a shell jump over a wall) I don't think an indicator is a necessity. But if you've got a trick that requires the shell to hit a certain tile on a wall to make a trick possible, perhaps an indicator would be best. Especially in an easy rated kaizo hack.

I think I would always suggest an indicator for blind jumps (or better yet, avoid blind jumps all together), and maybe indicators suggesting to spin jump vs normal jump if it doesn't seem intuitive what the player should perform.

Again, it's all up to personal preference and how you'd like your players to progress through the game.
Originally posted by RussianMan
But most of these are already standalone patches.

1. and 2. Thwomp Fix

4. Face Flip (?)

As for 3. I may create patch for that.


Oh.. #ab{x_x} I feel like a complete noob. Thanks RussianMan, I can't believe I missed those entirely.
I am using custom overworld borders for each submap + main overworld. I have a different layer 3 tilemap for each one, and when I use the red path exit tiles to walk from map to map, the border and palettes don't update. This causes ugly palettes, and in some cases garbled graphics. I have no issues when transitioning using pipes or stars.

I have tried to use worldpeace's Reload Overworld patch (hoping maybe it would work), adding @xkas to the top, but I get these errors:
Code
Asar 1.50, by Alcaro
Enter patch name: "E:\Hack\backup\reloadow.asm"
Enter ROM name: "E:\Hack\backup\smw.smc"
E:\Hack\backup\reloadow.asm:47: error: Unknown command. [STZ $7E007C]
E:\Hack\backup\reloadow.asm:54: error: Unknown command. [STZ $7E007C]
E:\Hack\backup\reloadow.asm:74: error: Unknown command. [INC $7E007C]
Errors were detected while assembling the patch. Assembling aborted. Your ROM ha
s not been modified.
Press any key to continue . . .
The ROM map says that $7E007C is just freespace.

Am I overlooking something obvious to rectify this problem with the borders? Any help would be appreciated.

Also, is there a way to make the red path exit tiles fade out, then fade in when transitioning, similar to how the pipes and stars work?