Language…
17 users online:  Alex,  AmperSam, ASMagician Maks,  bebn legg,  Donut, gui, h.carrell, Hayashi Neru, Jordan, LucasMegaStriker,  Major Flare, Mane Bros., mario90, monkey03297, Prestinator13, RollingRigatonis, SouperSplash - Guests: 97 - Bots: 220
Users: 55,719 (2,334 active)
Latest user: unccfan2001

Ask anything about SMW Hacking - 2019 Edition

  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 287
  • 288
  • 289
This is my first post the question is that in a level theres a start
of the level being the mario object with the level name how do i get
other level starters in the same level so i am not burned by stress
quikly anwser please
GFX Request by PMs

Tag (div) was not closed.
okay, so i have a cool idea for a verticle level but every single time i attempt to make one something doesnt work. every time i try my verticle level i die instantly before i even see mario on screen or he will fall through every block and die at the bottom of the level. i have verticle entrance set and im using level type 8. i tried 7 but same results. does anyone have a fix for this?
Can someone help me find the property byte for this sprite here https://www.smwcentral.net/?p=section&a=details&id=3494

i would like to change its priority, but i only know how to do it with binary or hex. I didnt really find it.
There is the table "DATA_02E66E" with "$71,$31,$31,$31" as the values. That contains the properties.
Now it gets slightly more complicated: The properties are in YXPPCCCT format. That means, in order to get the priority, you have to multiply the value by 0x10 or look at the leftmost digit. As the result, the valid values for the priority (ranging from highest to lowest) are $30, $20, $10 and $00. Don't forget that the leftmost tile is flipped horizontally so add 0x40 to the value.
thanks man that worked out!
I have stuff in my stage that goes high into the sky, but the camera won't move upwards when I play, so I can't play those sections. How do I fix this?
Originally posted by Doggo144
I have stuff in my stage that goes high into the sky, but the camera won't move upwards when I play, so I can't play those sections. How do I fix this?

Click #lm{MARIO69} and select the option "Vertical Scroll at Will" in the layer 1 scrolling options.
Originally posted by Darolac
Originally posted by Doggo144
I have stuff in my stage that goes high into the sky, but the camera won't move upwards when I play, so I can't play those sections. How do I fix this?

Click #lm{MARIO69} and select the option "Vertical Scroll at Will" in the layer 1 scrolling options.


Oh, thank you! That sorted it, I appreciate the help!
Hello, I'm attempting to create a 32x32 sprite based off of an eerie, but I've no ASM knowledge and don't know where to start. Any help?


Originally posted by wuffalo
Hello, I'm attempting to create a 32x32 sprite based off of an eerie, but I've no ASM knowledge and don't know where to start. Any help?


There are some nice tutorials here in SMWC that let you learn how to code sprites; however, in this particular case of yours... we have a 32x32 Eerie hosted: here. I suggest you read the tutorials and try to understand the codes, so you can train in your ASM skills.



Dream team (feed them, please):






Hi!

I want to disable the OW fadeout and fadein when I enter a new area by walking into it. The fade leaves a black border on the left and right side. Any chance of disabling that without editing the OW border?

Example video
Layout by Erik557 during C3
So... I haven't even looked really but I'm curious if you can swap out an entire tileset on the fly. Just knowing if it would be possible during a level would help with design. I see one of the GFX.bin describe merging tilesets going into a level... (On the topic of looking... is there a way to search the forums? >__> I've been using Google...)


Originally posted by Runic_Rain
So... I haven't even looked really but I'm curious if you can swap out an entire tileset on the fly. Just knowing if it would be possible during a level would help with design. I see one of the GFX.bin describe merging tilesets going into a level...

No, not exactly. There is a way to swap out graphics, but it requires ASM work, and has some limitations.

But yes, there is a way to use two (or more) different graphics sets in the same level at the same time, through the use of the Super GFX Bypass (#lm{sgfxby}). Lunar Magic allows for up to 6 different FG/BG graphics files to be loaded at once, but SMW only actually uses the first four (FG1-3 and BG1). You can load then two extra graphics files into the reamining slots (BG2/BG3). Once you do that, though, you'll have to actually create Map16 tiles for those in the Map16 editor (#lm{16x}). If you don't know how to do that, there's a guide to the Map16 editor here.

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
Thanks, I was assuming asm just wasn't sure about the quirks of the PPU, SMWcode, etc. ya know? Like if I should redesign assuming fixed tilesets going into a level. Or if there was even an old patch or something that already did this. Good to know it's feasible though, even if it might be a struggle later. I already found some references for pallet changes on the fly from some old posts (mostly been referencing you, imamelia and GBH's posts they're crazy useful) o7
is there a way to make custom sprites only spawn once? I saw that the disco shell does that so i wonder.


Originally posted by Runic_Rain
Thanks, I was assuming asm just wasn't sure about the quirks of the PPU, SMWcode, etc. ya know?

Well, if you're curious how feasable it is on the actual ASM side of things, it should be noted that uploading graphics is rather slow, so there's a limit on how much you can upload per frame without causing visual issues. The palette is small enough (1024 bytes) that it can fit into that entire timeframe, but a single GFX file is four times that size (4096 bytes), which is pushing the limit. Instead, you'd have to split that between a few different frames. If you want a more-immediate switch, though, there are some tricks that might work (e.g. buffering the graphics in a separate part of VRAM, then swapping the address of the graphics files to that). I've never personally tried doing that though, so I can't really say how well the results will turn out.



Originally posted by Arobam
is there a way to make custom sprites only spawn once? I saw that the disco shell does that so i wonder.

Are you talking about the vanilla disco shell? Because that does respawn (or rather, the shell and the Koopa respawn).

If you're referring to after killing the sprite, though, that is standard behavior for SMW; sprites which have been killed are programmed to not respawn. That behavior is handled by a combination of $167A and $1938. Normally, that value is already set while the sprite is spawned (so you don't end up spawning two at once), and cleared when it despawns off the side of the screen. If you open up the sprite file, you can probably find a reference to a routine called SubOffScreen; that is the standard despawn routine responsible for handling that. A real easy, minimal-work method of then stopping the sprite from respawning would be like:

Code
	%SubOffScreen()		; the call to the routine; add the code below this line
	LDA !14C8,x
	BNE .noDespawn
	INC
	LDY !161A,x
	STA !1938,y
	RTS
    .noDespawn:
	; whatever was past the SubOffScreen call originally

sidenote: untested, hopefully it works

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
Originally posted by Arobam
is there a way to make custom sprites only spawn once? I saw that the disco shell does that so i wonder.

Are you talking about the vanilla disco shell? Because that does respawn (or rather, the shell and the Koopa respawn).

If you're referring to after killing the sprite, though, that is standard behavior for SMW; sprites which have been killed are programmed to not respawn. That behavior is handled by a combination of $167A and $1938. Normally, that value is already set while the sprite is spawned (so you don't end up spawning two at once), and cleared when it despawns off the side of the screen. If you open up the sprite file, you can probably find a reference to a routine called SubOffScreen; that is the standard despawn routine responsible for handling that. A real easy, minimal-work method of then stopping the sprite from respawning would be like:

Code
	%SubOffScreen()		; the call to the routine; add the code below this line
	LDA !14C8,x
	BNE .noDespawn
	INC
	LDY !161A,x
	STA !1938,y
	RTS
    .noDespawn:
	; whatever was past the SubOffScreen call originally

sidenote: untested, hopefully it works</div></div>


I didnt mean the after kill sprite state, I know sprites wont respawn if they get killed. I was refering to this sprite here:

https://www.smwcentral.net/?p=section&a=details&id=3442


Its a normal disco shell, but if you despawn this one, it wont come back and you cant respawn it again. So im interested in making the Eeries behave like the same and only get spawned once ( cause its easy to bring them back and abuse them ).


Originally posted by Arobam
I didnt mean the after kill sprite state, I know sprites wont respawn if they get killed. I was refering to this sprite here:

https://www.smwcentral.net/?p=section&a=details&id=3442


Its a normal disco shell, but if you despawn this one, it wont come back and you cant respawn it again. So im interested in making the Eeries behave like the same and only get spawned once ( cause its easy to bring them back and abuse them ).


Well, uh, actually, that sprite does respawn. It's just has an error which causes it to not respawn when scrolled onscreen from the left side; actually, it will just never spawn on that side at all, not even for the first time. Meanwhile, it will always respawn if scrolled onscreen on the right.
(I actually went ahead and fixed the error real quick, since it was just a dev oversight on a certain Pixi routine)

Anyway, the code I gave you is how you would properly add no-respawn behavior to the sprite.

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
thank you Thomas
What sprite is clipping through? Maybe it has a problem with the code.
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 287
  • 288
  • 289