Language…
18 users online: Anas, AnunnakiGirl, CourtlyHades296, CroNo, DaveStateGaming, Green, Mohamad20ZX, Natsuz2, NewPointless, Papangu, SAMYR DUTRA ARAUJO, Scags, signature_steve, SomeGuy712x, StarWolf3000, TheBubbster123, TrashCity, yoshisisland - Guests: 288 - Bots: 657
Users: 64,795 (2,369 active)
Latest user: mathew

Yoshifanatic's ASM Showoff: Part 14

Super Mario WorldPatchWork in ProgressDemoResource ReleaseScreenshotsVideos

Happy C3 guys! :)

Sorry to disappoint those of you that may have been looking forward to me making more disassemblies, but I took a several month long break from February to June. It's been a while since I felt I needed a nice long break, and with how much stuff I've been doing these past few years, this was a long time coming. XD Regardless, I did work a bit on improving the Goof Troop disassembly as well as start on another disassembly that I'm going to keep a secret for now (all I'll say is that it's for a cancelled game). I also worked on my experimental SMW Sprite Draw Engine patch, and managed to improve its performance a decent amount. I'll have more to talk about those when I finish them, however. Anyway, for this C3, I'm going to show off my hack again, as I've made some significant changes to it, mostly in the past month. Without further ado:

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

Mario & Yoshi's Strange Quests (7/8/2022 build)







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

Optimized Spotlight Patch

*Shines a flashlight on a SMW ROM* Ah, here's the problem! This sprite's code is trash!



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

One last thing, but I coded this neat windowing effect for DPBOX's hack:




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

And that's it for my C3 presentation. I hope you guys enjoyed it as always! :)
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 (2/10/2023 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.
That beam attack looks fucking sick, I love it
Originally posted by yoshifanatic

To be fair, I really should play your hack at some point. I had some issues where I couldn't run the hack last time I tried it, though but maybe it works now, I don't know.

Originally posted by yoshifanatic

I certainly was wondering, how much of the code was really unoptimised (this does look like to be something which can be made be a line with fixed point numbers, after all), though interlacing is also interesting (even though you're essentially doing it like SMW except update and write only half the frames).

Originally posted by yoshifanatic

Interesting.

Woah, I’m happy to see the hack release, and the ASM looks top-notch
Every dream is but another reality, never forget…

My In-Progress Hack

Really interesting to read about the technical aspects of MYSQ. Hopefully people will be able to appreciate that aspect along with the hack itself! Always nice to see one of your threads at C3, even if we're not getting a bunch of disassemblies this time around (and that break is well deserved, anyways).
Man, the technical aspects of MYSQ are insane. You got like 300 exits and samples taking up 1 meg. The spotlight optimization patch and beam attack are also very cool! People could especially benefit from the former, though I think it would be completely useless in SA-1 since the spotlight is already smooth (and optimized perhaps?)
My Mode 0 guide.

My Discord server. It has a lot of archived ASM stuff, so check that out!

Originally posted by ninj
That beam attack looks fucking sick, I love it

Originally posted by solgaleo35
Woah, I’m happy to see the hack release, and the ASM looks top-notch


I'm glad you like it! ^_^

Originally posted by MarioFanGamer
To be fair, I really should play your hack at some point. I had some issues where I couldn't run the hack last time I tried it, though but maybe it works now, I don't know.


I can't say with certainty that I fixed whatever problem prevented it from working when you last tried to play it. However, I assume it must be some weird emulation issue, since I know my hack runs on actual hardware.

Originally posted by MarioFanGamer
I certainly was wondering, how much of the code was really unoptimised (this does look like to be something which can be made be a line with fixed point numbers, after all), though interlacing is also interesting (even though you're essentially doing it like SMW except update and write only half the frames).


While it is fundamentally being handled in a similar way to the original, the nice thing about my patch is that all the optimized code fits in the original location of this sprite's code. If I used a lookup table, that may potentially have required freespace.

Also, part of the slowness was due to the loop being unoptimized:

- Those scratch RAM addresses unique to this sprite use the global direct page RAM addresses rather than the slower absolute address ones unique to this sprite.

- I removed a couple of redundant checks since SBC functions almost the same as CMP, and the code needed to do SBC on A anyway.

- I unrolled the loop a bit for buffering the empty scanlines so that part is done quicker.

- I removed the check for whether the lights are off from within the loop and instead used a separate, faster loop for when the lights are off.

- I changed how the scanline positions are calculated so that instead of INC followed by a check for whether it should DEC twice, I simply used a direct page address that is used to add or subtract to the position based on a calculation made outside of the loop.

The lion's share of improvement still comes from the interlacing, but I'd argue that's what the devs should have done originally if they had been given the time to do it. Programming requires compromises in order to make whatever you're doing work with the target hardware. Sometimes simple optimizations aren't enough and you have to get a bit creative to improve performance. With my solution to improving performance, the tradeoff of using this patch is very minor (ie. Some barely visible notches on the spotlight's edges and an extra frame to turn on/off), which I think is a fair trade for more than double the original performance.

Originally posted by DeppySlide
Really interesting to read about the technical aspects of MYSQ. Hopefully people will be able to appreciate that aspect along with the hack itself! Always nice to see one of your threads at C3, even if we're not getting a bunch of disassemblies this time around (and that break is well deserved, anyways).


I'm quite happy with how MYSQ is coming along, both on the technical and gameplay fronts. And there is still plenty more I have left to do. For example, I plan on implementing an intro cutscene for if you wait on the MYSQ title screen, more custom made bosses (Wendy, Morton, Roy, MSQ Bowser are the main ones I need to do, but the Deadly Drinks. Inc reznors and various YSQ bosses could also use an update), a bonus world for getting all Yoshi coins in both games, revamping various MSQ levels, and any other random things I can think of.

Also, maybe I'll have a disassembly to show off for next C3? I do have a couple ideas on what the next few will be besides the one I worked on secretly.

Originally posted by Anas
Man, the technical aspects of MYSQ are insane. You got like 300 exits and samples taking up 1 meg. The spotlight optimization patch and beam attack are also very cool! People could especially benefit from the former, though I think it would be completely useless in SA-1 since the spotlight is already smooth (and optimized perhaps?)


Small correction, but MYSQ has 180 exits, not 300. Other than that, I'm glad to hear you like it! ^_^

Also, while the spotlight patch gives the most benefit to non-SA-1 ROMs, it's still useful for SA-1 ROMs since it saves BW-RAM and gives the SA-1 CPU more processing time for other sprites.
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 (2/10/2023 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.
Super cool that now the spot light is running on better code now and that you were able to optimize it. It looks so much smoother now.
Once again I find myself deeply impressed by your stuff. You not only have the technical know-how to make cool stuff happen, but also great ideas that make use of them. That Wario + Lemmy boss battle was somehow some of the hypest things I've ever seen in SMW.
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
As a quick update, I've been hard at work making improvements to MYSQ in my dev build. I could take a break, but I'm still motivated to keep going. So, in addition to a few minor bug fixes, I've implemented parallax scrolling HDMA that accounts for vertical scroll on a few backgrounds:



Also, I've added reset doors to all the 'Key X' levels and Ruined Castle (they function like the ones in Key Plains, where they are just an outline and can't be entered until you reach the key/Spunky).

Originally posted by Final Theory
Super cool that now the spot light is running on better code now and that you were able to optimize it. It looks so much smoother now.


I'm glad you like it! ^_^

I'm a bit surprised that nobody else had made a patch like this before. Perhaps the SA-1 patch being able to process the spotlight very quickly even at 60 FPS meant there wasn't much need to optimize it? But, I suppose that's one perk of me not using the SA-1 patch for my hack. I have to get creative to do things that seem impractical without the SA-1.

Also, I don't know if you checked out the MYSQ changelog, but I implemented my own water droplet sprite. It's a custom coded one that's handled much differently from the one in the sprite section that I helped explain to you how it worked. Mine is an extended sprite that searches for a nearby valid ceiling tile to drop from when spawned in through LevelASM.

Originally posted by RPG Hacker
Once again I find myself deeply impressed by your stuff. You not only have the technical know-how to make cool stuff happen, but also great ideas that make use of them. That Wario + Lemmy boss battle was somehow some of the hypest things I've ever seen in SMW.


I'm glad to hear that! ^_^

I'm surprised by how I'm still able to find new things to improve with MYSQ. Most of the MYSQ changelog is stuff I did in only the past month (the only exceptions being the separation mechanics and the echo sound stuff). A decent chunk of things, like the random water droplet effect, were things that I implemented on a whim as soon as I got the idea and I felt it would make my hack better or more polished by implementing it. I imagine that long break I took helped a lot, too, since the biggest obstacle I face with my projects is motivation. XD

Also, regarding the Lemmy Boss, the premise was an idea that my cousin gave me when he and his family visited me a year ago (he also gave me the idea that eventually became my Larry boss). It was a bit tough to decide exactly how I was going to handle a chase sequence boss fight. But, what I ended up doing worked out pretty well. I think the thing I like the most about this setup is the fact that, despite the fact that Lemmy is focusing most of his attacks on Wario, Wario is completely unfazed by every single one (meanwhile, Mario/Luigi/Yoshi are the ones getting caught up in these attacks). I can't think of many other boss fights off the top of my head where the boss isn't even focusing most of their attacks on you, but you still get caught up in them anyway. 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 (2/10/2023 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.
Awesome work there!

By the way, I was wondering if you have a Secret of Mana disassembly in the works. Just curious.


Have a frost day~
I finished what I used this

of yoshifanatic's for. See it in my C3 thread.

Click the character on the right side of my layout to visit my Discord server and discuss and play and look at and get updates and sneak peeks of the games and other things I'm making.

The authors of these 2 My Little Pony fan games have removed their games from the Internet.
Rise of the Clockwork Stallions has been updated! Download My Little Pony: Rise of the Clockwork Stallions DX: Director's Cut and My Little Pony: Magic Shards now! Spread this link!

Fanatical like a Demon
That spotlight optimization is a God send!
Major thanks to Suika Ibuki for layout!
I'm open for music requests, just DM me on discord and we can further discuss there.
SMAS Soundtrack Status: 100% finished
YI Soundtrack Status: 100%
YI Unsampled Soundtrack Status: 100%
NSMB Soundtrack Status: 7.89%
Killer Instinct Soundtrack Status: 14.63%
SPC Thread
From our family to you, keep your pants dry, your dreams wet, and remember, hugs not drugs.
Originally posted by Blizzard Buffalo
Awesome work there!

By the way, I was wondering if you have a Secret of Mana disassembly in the works. Just curious.


Thanks! ^_^

As for a Secret of Mana disassembly, I wasn't planning on doing that game anytime soon. But, it's definitely on my radar.

Originally posted by LadiesMan217
That spotlight optimization is a God send!


I'm glad you like 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 (2/10/2023 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.

Super Mario WorldPatchWork in ProgressDemoResource ReleaseScreenshotsVideos