Language…
22 users online: A-Frame, AmazingChest, AntonioDosGames, Aurel509, Darknubs, EDIT3333, Fostelif, GrenCarret, Humpty Dumpty Magazine, Ignaris, JezJitzu, KlonoA13Phill, kurtistrydiz, l44l, MarcosMoutta, placeholdertest, Ringo, sdace, TCgamerboy2002, ThePiPiper, xfix, YouFailMe - Guests: 95 - Bots: 202
Users: 58,124 (2,477 active)
Latest user: Lazo1322

Yoshifanatic's ASM Showoff

  • Pages:
  • 1
  • 2
Hey guys, Yoshifanatic here. It's C3 again and I've got some interesting stuff to show off. I've been working on my ASM skills these past few months in preparation for my future SMW hacks. Unlike the previous two C3s I attended, I don't have anything to release, but in the future, I might release a couple of these things depending on how usable they are to the average SMW hacker.


Also, I made a video the other day with my younger brother (known as Burrito Man2000 on Youtube) showing off these things, but I'm debating on whether I should upload it or not. It's a 41 minute long video where I attempted to do live commentary with my brother and we talked about the stuff I'm showing off here as well as some things I'm planning on doing for my next SMW hack, but I'm not exactly that good at live commentary at the moment. If you guys what to see it anyway, I'll upload it, but be warned that I stutter a bit and I had a little trouble thinking of what I wanted to say every once in a while. XD

Without further ado, here is what I've been coding:

(Also, some of these .gifs show glitches in them. I haven't fully polished the stuff I've coded yet. XD)

Dynamic Level Loading

Note: The dynamic level loading won't be as obvious when I start making actual levels using this.

First off, the biggest thing I've done ASM wise for my future SMW hacks is that I've coded a routine that lets me load new level data mid level without any sort of screen transition.

However, it isn't quite done because it currently doesn't load new layer 3 graphics or tilemap or HDMA effects (which you can see in the cave section in the .gif) and it doesn't preserve sprites except for sprites Mario is holding or Yoshi if he is riding him. Also, because I haven't touched the layer 1 tilemap uploading code during V-Blank, I have to make sure that the old and the new level line up perfectly or else the ground will be cutoff when the screen scrolls around.

So, with this, I'll be able to create levels that seamlessly blend into one another and psuedo-NGHE levels (which for those of you that don't know, the NGHE patch was a patch made by Alcaro that allows you to have SMW levels that are different dimensions than what SMW normally allows for. Unfortunately, it's buggy and hard to use since Lunar Magic doesn't support it).


As a fun fact, did you guys know that SMW's level loading code is very badly optimized? I made a much more optimized version of it to use as the level loading code for my routine in order to make the level loading as seamless as possible (currently, most of the lag is due to decompressing the graphics that aren't already loaded). Here's an example of how badly it's unoptimized: There is a routine that buffers the BG data to the RAM for later. For some inexplicable reason, the code keeps switch between 8-bit and 16-bit mode for the accumulator, yet only the value stored in Y ever changes when A is 16-bit and not once is the value of A transferred into Y either directly or indirectly in that routine. Why is it like that? It's especially silly because this is in the middle of a loop, so this ends up wasting lots of cycles for no reason when the game runs this routine.


I Wanna Be The Guy Style Death Routine

You gotta love those munchers that appear out of nowhere when you least expect it. :P

Since my next SMW hack is going to be inspired by IWBTG in a lot of ways, I figured I'd attempt to recreate that game's death animation into SMW, but with a few differences so I could make it a little more over the top and for it to work within the SNES's limitations (ex. only 8 blood particles spawn instead of 100s). After Mario dies, a sprite representing his head spawns and it goes flying and rolls along the ground. Due to the way it's coded, the camera scrolls with it and it can interact with some sprites the same way Mario does (ex. landing on a koopa will stomp it). Pressing R currently resets the current level, but I'll eventually make it work similar to IWBTG where you'll reset back to your last save or to the beginning of the game if you haven't saved yet (I'll be implementing a similar save system as the one in IWBTG).


I Wanna Be The Guy Style Trigger Spikes


You know how in IWBTG, there are spikes, delicious fruit and other things that fly at the kid if it means killing him, even defying gravity to do so? Well, that's exactly what these are. These are cluster sprites that spawn when an invisible trigger block is touched, and they can be customized on a per level basis. For each individual one, I can set the speed they travel at, what sprite tile they use, the properties of that tile, where the sprite initially spawns, what tile they generate when they initially spawn and when they "deactivate" (which occurs if they touch a specific block), and how they interact with Mario (ex. instead of killing him, I could make them act like a solid block), as well as any special properties they may have (ex. I could set it so that the spike deletes tiles that it passes by).

I plan on releasing these at some point when I finish all the coding for them. The obvious use for them would be for traps, but they can be used for other things to such as a one time moving platform.

Dynamic Sprite Routine (my version)

Note: This is currently a little buggy. For starters, this routine doesn't account for sprite tiles that are offscreen.

Jan 6 Edit: Here is a better .gif:


Yes, I know that there is already DynamicZ, but when I was attempting to convert many of the existing SMW sprites so that they'd be dynamic, I found DynamicZ to be too inflexible (I wasn't sure if it was possible to have sprite sizes other than 32x32, 48x48 and 64x64) and inefficient when it comes to speed. So, I created my own dynamic routine that is faster and is adaptable no matter how many sprite tiles a given sprite uses. It uploads a max of 3 KB of data (24 tiles) per frame (though I'll likely reduce it to 2 since 3 sometimes causes V-blank overflow), but the way it's coded allows it to address a maximum 8 KB of data (64 tiles) depending on how many tiles need to be updated on a given frame (most sprites in SMW don't animate faster than 15 FPS so I can easily take advantage of that).

I'm not going to be converting some sprites to use this routine though, mostly for performance reasons or because I'm not going to be using the sprite to begin with (ex. Peach, Sumo Bro. Lightning, etc). For those sprites, I reserved SP3 and SP4 for their graphics.

In addition, I made this routine tie into the OAM index for the sprites that use the second half of the OAM, which means I'll have a more efficient version of the "No Sprite Tile Limits" patch running. Of course, it's a little buggy as you can see in the .gif when that puntin' chuck disappears and has his head replaced with a football, but I think the latter is because the football isn't dynamic yet.

Screen Scrolling Pipes (my version)


Yes, I know there is a patch for this, but they didn't look like they'd be that hard to code myself. And sure enough, I was able to do it without much issue.

Re-coded Yoshi

Note: The only reason Mario is below Yoshi when riding him is because I need to be able to see Yoshi's animations while I'm working on them.

When I tried to convert Yoshi to use my dynamic sprite routine, I ran into some issues. Yoshi's coding is really confusing and seems needlessly complicated. So, I've decided to re-code how the game handles Yoshi for my next SMW hack. In the original SMW, Yoshi and Mario are separate entities no matter what. In my code, they're separate entities when Mario isn't riding Yoshi and the same entity when Mario is on Yoshi. So basically, Mario turns into Yoshi and then I tack on an image of Mario onto Yoshi's back.


Note: Jimmy52905's Yoshi Player patch was used to add the tongue functionality to Yoshi. I currently haven't ported over any of the other abilities that patch adds to SMW.

One thing I've been working on with Yoshi is his animations. Since Mario's graphics routine now has to handle drawing Yoshi, I had to code a new animation routine for when Mario is riding Yoshi. The way I coded it is interesting. Basically, it works similar to the original Mario GFX routine, but I made it so that Yoshi's head tiles can be modified depending on certain actions he is doing at the moment. For example, if you hold up, Yoshi will look up no matter what pose he is doing (even ducking if you hold up and down at the same time). If Yoshi has something in his mouth, he will show that, and same if he is sticking his tongue out. With the exception of his "mouth full" and "extend tongue" states (which are mutually exclusive), these states can stack, so Yoshi can be looking up with something in his mouth and he will have a head for that. With this animation system, I'll be saving myself a lot of work, saving lots of ROM space, and have Yoshi be more flexible with some of his animations.


Another thing I've been doing, which I can't really show in a .gif is that I've been using galaxyhaxz's SMW source code as a base for my next SMW hack. Yep, you heard that right. I've decided to go this route because it's more flexible compared to doing things the normal way (ex. I can move things around in the ROM for the most part and most of the pointers to that data will automatically update themselves) and it will allow me to do things that would likely be really hard to do normally or would be inefficient (ex. my dynamic sprite routine as well as some of the bigger optimizations I made to speed up SMW's code, which is important since I'm not going to be using the SA-1 patch). I can also easily integrate patches and my custom code into the existing code to save ROM space and cycles depending on what I'm trying to integrate and where and I can more easily replace stuff that I don't care about and won't be using, like the Princess Peach sprite and the end credits related stuff.

Of course, this isn't without issues, but I've worked around them. The biggest one being Lunar Magic compatibility, which I got around by disassembling most of the code LM inserts/changes in a clean ROM (with the exception of things like level and map16 data, which I can just reinsert at any time) and being careful of what I do in certain banks where LM expects certain things to be. If Lunar Magic had a function where you could tell it where certain things are and where to apply its hijacks, I'd have full control over SMW's code, but even without that, I can still do a lot using the source code as long as I'm careful.



Anyway, that's it for what I'm going to be showing this C3. I hope you guys found it interesting. :)


Jan 6 Edit: Here's an IPS patch showing off these things if you'd like to see them in game:

Link

Go to this post I made for some information regarding this IPS patch:

Link
My Hacks:
Mario's Strange Quest V1.6
Yoshi's Strange Quest V1.3 / V1.3.1 Beta 4.6
Mario & Yoshi's Strange Quests (7/8/2022 Build)

Other stuff:
My SMW/SMAS/SMAS+W disassembly
Yoshifanatic's Discord Server: A place for fans of my stuff and/or Yoshi to chat with others.
I had imagined you knew some chunk of ASM after playing a bit of YSQ2, but the stuff you've shown here was beyond my expectations #ab{o_O}

I see nothing but neatness going on here, but especially I am so glad to see a potential alternative to LMSW (that actually doesn't depend on FuSoYa!). Thank you so much.
I like the dynamic level loading, Its really cool. Does it work on custom map16 stuff also (in the graphics section, you'll notice very few of them uses smw's origional tiles).

Also, have you try using sa-1 on that?

About your screen scrolling pipes, was that inspired by mine, fusoya's, or mikeyk?

And another thing, once you are 100% done, are you gunna release the dynamic sprites?

Originally posted by Yoshifanatic
but in the future, I might release a couple of these things depending on how usable they are to the average SMW hacker.


Since you are a (near)asm god, you might able to open up new submission sections, on about the dynamic sprites. Congrats!
Give thanks to RPG hacker for working on Asar.
This is a nice thread with some good stuff inside it!

Quote
Dynamic Level loading


Interesting, I some time ago attemped to do something similar but I wasn't pleased with the results.

As for the HDMA I think you could read the current tilemap or some sort of flag that you use to read other HDMA tables or simply clear the HDMA channel(s).

Quote
Death Routine


haha, I loved the rotating head, it looks so funny.

Quote
the SNES's limitations (ex. only 8 blood particles spawn instead of 100s).


You can have more than 8, you can have more than that, just make another type of sprite and use some free ram from the $7FXXXX area or well, just use minor extended sprites and you can have up to 12 or cluster sprites and you will have up to 20.

It's up to you how many of those blood particles you want.

Everything is pretty cool, though.
How long did it take you to create these things?
Give thanks to RPG hacker for working on Asar.
Wow that's some great asm. Those level transitions are amazing!
mind=blown on the level loading thing.
The rolling head is simple but genius.
Dynamic sprites are also great but the mega mole is acting weird somehow.
Screen scrolling pipes are meh. What's the difference between them and the verions we have? Are they at least compatible with GPS?
New Yoshi.... toung up. Haha, get it? No... well whatever.

You got my vote for best ASM, that's for sure.
Anime statistic on MyAnimeList:
400 animes completed ✓
6000 episodes completed ✓
100 Days completed ✓
... what even am I doing with my life?
Niiice!!!, love the ASM breakthroughs you're making with the level-load patch!, i may not be much, but it will pave the way for future improvements.
The Yoshi modification it's an interesting take on the Yoshi "entity", but i dont think it changes much, unless both Mario and Yoshi share hitboxes, but it's still cool.

I didn't quite understand your SS Pipes, is it code optimization?, or bugfixes?, genuinly curious, although i haven't took a peek at other SS Pipes codes either..


Good work!, nice ASM tools you got to display today!
Yoshiatom's Post
Holy hell, I'd say that the seamless level loading could be deserving of it's own thread; I can already think of a ton of uses for it (longer levels, horizontal to vertical level transitions, Eversion style level changes), the other stuff is also nice, especially the IWBTG stuff.

I have no real negative words, can't wait for public realises (sic)!

Layout by Koopster!

<DeputyBS> I knew it
<DeputyBS> alcarobot is taking over the world through his truck dealership franchise
I must say... This is beautiful. You've REALLY outdone yourself ( 'v')b
I do art commissions cheap! PM here or DM via Discord for more details.

**Layout by Erik557


holy shit dynamic level loading

Also nice to see that someone took the effort to recode Yoshi, it acts real weird.
Originally posted by Koopster
I had imagined you knew some chunk of ASM after playing a bit of YSQ2, but the stuff you've shown here was beyond my expectations #ab{o_O}

I see nothing but neatness going on here, but especially I am so glad to see a potential alternative to LMSW (that actually doesn't depend on FuSoYa!). Thank you so much.


Thanks. :)

Technically I'm still using Lunar Magic while I'm using the SMW source code. You could use just the source code and xkas/asar to make a hack, but I don't recommend it because certain things like creating levels and custom map16 would be a pain to do without LM.

Also, I think you meant YSQ there. YSQ2 isn't out yet. XD

Originally posted by GreenHammerBro
I like the dynamic level loading, Its really cool. Does it work on custom map16 stuff also (in the graphics section, you'll notice very few of them uses smw's origional tiles).

Also, have you try using sa-1 on that?

About your screen scrolling pipes, was that inspired by mine, fusoya's, or mikeyk?

And another thing, once you are 100% done, are you gunna release the dynamic sprites?

Originally posted by Yoshifanatic
but in the future, I might release a couple of these things depending on how usable they are to the average SMW hacker.



Since you are a (near)asm god, you might able to open up new submission sections, on about the dynamic sprites. Congrats!


Thanks! :)

My dynamic level loading routine loads everything that would load normally with the original level loading routine aside from layer 3 stuff and HDMA, so yes, it loads custom map16.

As for the SA-1, I haven't used it, but it would speed up the level loading if I did use it, but it's fast enough anyway that I don't actually need to use the SA-1.

As for the screen scrolling pipes, they're not inspired by anyone else's screen scrolling pipes. I simply thought about how one would implement them, then I coded them from scratch. Compared to the one in the patch section, mine is simpler because I only needed 6 blocks for the functionality. I modified the pipe entering animation so that instead of changing the game mode, it sets a flag that tell the game that Mario is in "Pipe mode" and from there, the custom blocks I made for this change Mario's direction, allow him to exit pipe mode and allow him to pass through it in pipe mode. Of course, if I need the old pipe animations, I could add some code that will tell the game to change the game mode in some situations.

As for how long it took, I've been working on this stuff since around August, though the IWBTG death routine was started earlier.

As for whether or not I'll be releasing the dynamic sprites, they're basically the original SMW sprites with a little bit of extra code that allows them to be dynamic. I'll tell you how my dynamic sprite routine works if you're interested in hearing about it.

Originally posted by LX5
This is a nice thread with some good stuff inside it!

Originally posted by Yoshifanatic
Dynamic Level loading



Interesting, I some time ago attemped to do something similar but I wasn't pleased with the results.

As for the HDMA I think you could read the current tilemap or some sort of flag that you use to read other HDMA tables or simply clear the HDMA channel(s).

Originally posted by Yoshifanatic
Death Routine



haha, I loved the rotating head, it looks so funny.

Originally posted by Yoshifanatic
the SNES's limitations (ex. only 8 blood particles spawn instead of 100s).



You can have more than 8, you can have more than that, just make another type of sprite and use some free ram from the $7FXXXX area or well, just use minor extended sprites and you can have up to 12 or cluster sprites and you will have up to 20.

It's up to you how many of those blood particles you want.

Everything is pretty cool, though.


Thanks! :)

Regarding the dynamic level loading, that's interesting that you attempted something like this as well. It was tricky to implement when I attempted this, but I eventually managed it and I'm pretty happy with the results. As for the HDMA, that's a good idea.

Regarding the death routine, thanks. As for when I mentioned the SNES limitations, I only meant that in the context of being unable to have tons of blood particles like in the original IWBTG, so I had to limit it to a reasonable amount. They're currently coded as extended sprites, but I may switch them over to cluster sprites and have them spawn 20 - however many trigger spikes are loaded in memory.

Originally posted by nickofzo
Wow that's some great asm. Those level transitions are amazing!


Thanks! :)

Originally posted by JackTheSpades
mind=blown on the level loading thing.
The rolling head is simple but genius.
Dynamic sprites are also great but the mega mole is acting weird somehow.
Screen scrolling pipes are meh. What's the difference between them and the verions we have? Are they at least compatible with GPS?
New Yoshi.... toung up. Haha, get it? No... well whatever.

You got my vote for best ASM, that's for sure.


Thanks! :)

Regarding the dynamic level loading, I'm glad to hear that others are liking this. ^_^ That was a lot of work to code, but I'm really happy with the results.

Regarding the death routine, I felt like something like this would help add some hilarity to when Mario dies since anything could happen afterwards. Maybe Mario will go on a little mini adventure, maybe it will get stuck rolling between two slopes, or maybe he'll actually land the final hit on a boss despite the fact that he died. For added hilarity, I'm planning on making certain sprites interact with the Mario head sprite, such as koopas kicking it like a shell or perhaps pitchin' chucks picking it up and throwing it if it's close enough to them.

Regarding the mega mole, I'm not entirely sure why it it glitches up like that when it's near the right edge of the screen. It's probably something I messed up in its graphics routine, but I'll fix it eventually.

As for the screen scrolling pipes, I mentioned what is different about them in my reply to GreenHammerBro's post up above, but the main reasons were because I felt that I could easily code them myself and because I wasn't sure how well I'd be able to integrate them into the SMW source code. Also, I'm not using GPS in my hack, but I don't see a reason why the blocks I coded wouldn't work when inserted with GPS.


Originally posted by blue leader
Niiice!!!, love the ASM breakthroughs you're making with the level-load patch!, i may not be much, but it will pave the way for future improvements.
The Yoshi modification it's an interesting take on the Yoshi "entity", but i dont think it changes much, unless both Mario and Yoshi share hitboxes, but it's still cool.

I didn't quite understand your SS Pipes, is it code optimization?, or bugfixes?, genuinly curious, although i haven't took a peek at other SS Pipes codes either..


Thanks! :)

As for the re-coded Yoshi, this is something primarily for my next SMW hack that I likely won't be releasing. I mainly did this because the original Yoshi was too confusing to modify. Also, Mario has the exact same hitbox riding Yoshi as when he is not, but I think I'll have to increase the height of it when he rides Yoshi since Mario's head clips into blocks too much.

Regarding the screen scrolling pipes, they're basically a version I coded myself from scratch. They weren't really all that hard to code, and they're actually simpler than the ones in the patch section, since mine only use 6 blocks. This is primarily because I modified the existing pipe animation code so that it sets a flag instead of changing the game mode, meaning I don't need custom blocks for the pipe entrances.


Good work!, nice ASM tools you got to display today!</div></div>


Originally posted by yoshiatom
Holy hell, I'd say that the seamless level loading could be deserving of it's own thread; I can already think of a ton of uses for it (longer levels, horizontal to vertical level transitions, Eversion style level changes), the other stuff is also nice, especially the IWBTG stuff.

I have no real negative words, can't wait for public realises (sic)!


Thanks! :)

I see the dynamic level loading having a lot of potential in all sorts of SMW hacks, so I definitely won't be keeping this to myself. I'll likely release it at some point once it's more usable and user friendly, however there are some things that will make it a little tricky to use regardless of what I do. Specifically:

- You need to line up the old and new level in order to prevent cutoff from appearing when the screen scrolls. I'd be sure to provide instructions to minimize the chances of this happening assuming that I can't find a way to reload the layer 1 tilemap. To make it easier to line up stuff, I made it so that the game uses secondary entrances for when the game puts Mario in the new level.

- The routine depends on certain data that Lunar Magic inserts in the ROM such as the Super GFX bypass table, which LM can insert anywhere in banks 10+ where there is enough room for it. You'd need to use a hex editor to find that table each time you port your hack to a new ROM.

- All the code for this routine takes up a lot of space. I could save a lot of space by removing the optimized level loading routine (since it's a copy of the original one as well as all the block data in bank 0D with all my optimizations and the LM hijacks applied to it), but then the routine will be a lot slower, though I could just apply some of the optimizations to the existing routine.

There might be some things I'm not remembering, but I'll try to make the patch as user friendly as possible when I do release it.

Originally posted by Ruberjig
I must say... This is beautiful. You've REALLY outdone yourself ( 'v')b


Thanks! I'm glad to hear that. ^_^


Originally posted by Erik557
holy shit dynamic level loading

Also nice to see that someone took the effort to recode Yoshi, it acts real weird.


Thanks! :)

And yeah, Yoshi is coded weird. It's not surprising that he is practically a reality warper because of how glitchy he is in the original SMW. XD
My Hacks:
Mario's Strange Quest V1.6
Yoshi's Strange Quest V1.3 / V1.3.1 Beta 4.6
Mario & Yoshi's Strange Quests (7/8/2022 Build)

Other stuff:
My SMW/SMAS/SMAS+W disassembly
Yoshifanatic's Discord Server: A place for fans of my stuff and/or Yoshi to chat with others.
You are a flipping genius asm coder! I only wish I could do stuff like this. Loving all of it so far.
Speaking of yoshi glitches in smw, I found a new glitch (that no one ever had noticed in the bugs list until I did) with the swallowing timer:

Basically, if you set $9D while $14 is a value divisible by 4, the swallow timer decrements every frame rather than every 4th frame and freezing with $9D. I made a patch fix of it, found here: link. Note that the star power timer also have this issue too, see here.
Give thanks to RPG hacker for working on Asar.
Wow, some really incredible stuff going on here! The dynamic level loading and dynamic sprite conversion in particular look extremely useful, and I hope they're something that could be released one day.
My YouTube channel
Get the official ASMT resource pack here!

Your ASM skills are beyond amazing. After playing a bit of YSQ, I can conclude that stuff such as the dynamic level loading and the new death routine are very neat. This definitely deserves to be noticed further than it is at the moment.
Dynamic Level Loading's potential for metroidvania-styled hacks is very, very promising.
Oh wow this is neat, I was actually attempting to make a dynamic level loading routine myself, though it was hardcoded for a specific level and not as impressive as this haha. All this asm stuff is impressive.
‎▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬
‎―••~asuka over rei every day~••―
‎90% of teens smoke weed. if you're
‎part of the 10% put this in your sig
‎▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬
Originally posted by Final Theory
You are a flipping genius asm coder! I only wish I could do stuff like this. Loving all of it so far.


Thanks! ^_^

Also, if you have the desire to code and to improve your skills, you can potentially create something as cool as I or any of the other talented coders have. :) It might take a while, but it's very rewarding.

Originally posted by GreenHammerBro
Speaking of yoshi glitches in smw, I found a new glitch (that no one ever had noticed in the bugs list until I did) with the swallowing timer:

Basically, if you set $9D while $14 is a value divisible by 4, the swallow timer decrements every frame rather than every 4th frame and freezing with $9D. I made a patch fix of it, found here: link. Note that the star power timer also have this issue too, see here.


That's an interesting bug. At first glance, it seems like a pointless bug to fix, but it could potentially screw the player over if they're unlucky depending on the situation. If I didn't change the star mechanics for my kaizo hack, I might have actually took advantage of that bug for an interesting twist on a typical star run. XD

Incidentally, since I've been working with the source code of SMW, I've found a few interesting things regarding bug fixes and optimizations. For example, did you know that the both Ninji Ceiling Fix and Rope Fix 1 are not necessary because simple hex edits can fix the bugs these patches fix, but better? The bug that the former patch fixes can be fixed by simply changing the byte at $03C36A from 04 to 0C. The latter can be fixed because the game actually does check to see if Mario touches a wall while climbing a line guided rope (it's at $01D9F3), it's just that it doesn't branch to the code where it disconnects Mario from the rope when he touches a wall (it branches to an RTS). Changing the byte at $01D9F8 so that the branch points to $01DA03 instead of $01DA09 will fix it.


Originally posted by yoshicookiezeus
Wow, some really incredible stuff going on here! The dynamic level loading and dynamic sprite conversion in particular look extremely useful, and I hope they're something that could be released one day.


Thanks! :)

I'm planning on releasing the dynamic level loading stuff at some point, but I'm not as sure about the dynamic sprite stuff. I could probably release the dynamic sprite routine (though it's incompatible with all the dynamic sprites in the sprite section. However, converting them wouldn't be too hard and they'd likely run faster as a result), but the dynamic SMW sprites would be trickier. In order to release that, I'd have to create a patch that moves every regular sprite graphics routine and Mario's graphics routine outside of their banks so I'd have room for their extra code and the changes I have to make for the code to work. Not to mention that I'd have to do it for sprites I don't plan on using in my hack, like Peach, but that's not as big of a deal as the other thing.

Originally posted by Katerpie
Your ASM skills are beyond amazing. After playing a bit of YSQ, I can conclude that stuff such as the dynamic level loading and the new death routine are very neat. This definitely deserves to be noticed further than it is at the moment.


Thanks! :)

I've been improving quite a bit since I've been coding for YSQ and I'm quite happy with how far I've come. ^_^


Originally posted by Yashum
Dynamic Level Loading's potential for metroidvania-styled hacks is very, very promising.


Indeed, it will be promising for those hacks, though any SMW hack can potentially benefit from it.

Originally posted by Mellonpizza
Oh wow this is neat, I was actually attempting to make a dynamic level loading routine myself, though it was hardcoded for a specific level and not as impressive as this haha. All this asm stuff is impressive.


Thanks! :)

That's neat you tried creating a dynamic level loading routine as well. How far did you get with it?
My Hacks:
Mario's Strange Quest V1.6
Yoshi's Strange Quest V1.3 / V1.3.1 Beta 4.6
Mario & Yoshi's Strange Quests (7/8/2022 Build)

Other stuff:
My SMW/SMAS/SMAS+W disassembly
Yoshifanatic's Discord Server: A place for fans of my stuff and/or Yoshi to chat with others.
oh my god, if this kicks off, this will be the best thing ever! Go for it!!!
Your layout has been removed.
  • Pages:
  • 1
  • 2