Originally posted by RPG HackerYou never cease to amaze me with your work, yoshifanatic. Consistently, at every past C3 that I can remember, your ASM show-off threads always impressed me the most. It seems like you always pull off the crazy ideas that I might have thought about in the past, but never had the motivation to even attempt. Your sprite rendering rewrite is another one of those. Rewriting SMW's sprite rendering seems like an obvious thing that every programmer has probably thought about at some point, yet no one dared to attempt, because it seemed like way too much work. You going that extra mile will never not impress me.
Will it become the future standard of SMW sprite rendering? Probably not. There's just way too many sprites hosted on this site that would need to be rewritten. Though that doesn't make it any less impressive, and even there'll be only one or two hacks making use of this, I still think it will have been worth it.
Oh yeah, I'm also really impressed by how quickly you're pulling off these disassemblies. Seems like you've gained quite some experience with that. I mean, it looks like a new one pops up on your GitHub every couple of months or so!
I'm glad to hear that! ^_^
The idea of revamping SMW's sprite drawing system has been an idea I've had ever since I was first messing around with SMW disassemblies back in 2016 when I attempted to make every SMW sprite dynamic (which required me to change how sprites were drawn, though not to the same degree as what this new patch does). However, I abandoned that after a while when my focus turned towards YSQ and later MYSQ. But, ever since Vitor Vilela implemented the MaxTile system in the SA-1 patch, I've been wanting to revisit the idea at some point (even more so after seeing how other games I've disassembled handle sprite drawing). As nice as MaxTile is, I've never been satisfied with the fact that it requires the SA-1 patch and the fact that it builds on top of SMW's messy sprite drawing rather than fix the underlying system. Obviously, trying to do that would cause all sorts of compatibility problems so I don't fault Vitor for that at all. But as someone who wants to push the base SNES as far as possible, I wanted to see if I could create an improved sprite drawing engine for SMW that doesn't require SA-1. This sprite draw patch was something I started working on on December 14th, and even then, most of the work I had done was prior to Christmas. I'm quite happy with the results, particularly after I took the time to optimize it.
As for the disassemblies, yeah. Besides just having a lot of free time, some of the scripts I've written to assist with ROM disassembly have helped a lot with being able to make these as quickly as I've been able to. Due to working on SMAS+W, EarthBound, and Super Mario Kart without these scripts, I can safely say that without them, I would have done far fewer disassemblies overall.
Originally posted by AnorakunMario, no, what these poor boos did to you? Mario became a Poltergust and I love it.
Really interesting stuff for day one. I find weird too that they chose to do some weird code for the "remake of Zelda I" that they were broadcasting.
Also, I didn't know that DKC2 had measures against piracy. A game about pirates being anti-piracy. I find that very poetic and funny. This hook falling troll is something I would expect in a I Wanna Be The Guy kind of game.
That particular bug is interesting, because I have absolutely no idea how I managed to break the boo ceiling in that manner. My patch does sometimes have to mess with non-graphical code in order to remove as much graphical code as possible, but I have no idea what I did to do this. And before I got a chance to investigate it, I somehow fixed it.
As for BS Zelda, yeah. It took me about 4 days to disassemble Map 1 Week 2, but it took me a month to add support for Map 1 Week 3. That was around the time I was getting burnt out (and when one of my pets sadly had to be put down), so I was not in the mood to deal with BS Zelda's badly designed engine. To give an example, nearly 1/4 of the 1 MB ROM is filled with these massive 64 KB pointer tables. Which wouldn't be so bad if not combined with there being hundreds upon hundreds of tiny routines. Trying to figure out what was new code, moved code, or shifted code between versions was an absolute nightmare to deal with.
Also, yeah, it's pretty fitting Rare did this for DKC2. There are even more traps, such as the water level changers not working if a certain check fails, but those two boss related ones are the most interesting. In addition, every one of these traps is obfuscated so it's not immediately obvious what the code does. Although, my disassembly makes these traps much more obvious.
Originally posted by OrangeBronzeDaisyMultiple big boos at once watch out
Yep! It's possible to have multiple banzai bills and other large sprites as well. I could actually add a couple more, but then their sprites would glitch/not show up due to the 128 sprite tile limit.
Originally posted by JamesD28Being the other SNES game I was always into, I've wanted to have a go at hacking DKC3 for a while but the lack of a disassembly pretty much shut off that idea from me. Looks like it might be back on the table now though, so, thanks a lot! Great work as always.
You're welcome! There was actually a DKC3 disassembly before I started making mine. I don't know how far along that one is, but I can say that mine is a full disassembly, I've identified most resources, and you can move things around without the game imploding.
Originally posted by MarioFanGamerThanks for at least a partial explanation. It's definitively interesting to see how SNES cartridges can end up being bricked and the closest cause is SRAM in which case the safe file merely gets corrupted and doesn't affect the whole game. It's still some missing information which can be solved with some more experimentation.
I have no clue how this bug could brick the cartridge, given I couldn't find anything about the SRAM that could lead to that. I feel like the idea of this "bricking" a cart came about because the person it happened to didn't think to leave their SNES off for at least 10 seconds. They probably tried to reset the game, it didn't "fix" it, and they assumed the cartridge was broken. DKC2 doesn't fully initialize the state of the SNES before doing its copy detection checks, so it's possible that resetting the console allowed certain elements of the state it was in when it crashed to persist.
Originally posted by MarioFanGamerThat reminds me a bit of Super Metroid where the lava surface has got a black and not a transparent one as expected, though not visible since Super Metroid enable colour maths for its layer 3 backgrounds.
This is what the glitch looks like if you're curious:
I noticed this in my scrambled DKC3 ROM, but I can confirm it happens in the vanilla game.
Originally posted by MarioFanGamerUnique Enemy isn't limited to enemies, apparently. Also funny how some of the notable enemies and objects get a nickname (e.g. Bob from Metroid Fusion). By the way, you named the box, didn't you?
Yeah, I named it. I wanted to give it a more old fashion sounding name for no particular reason. XD
But, yeah, considering how common these boxes are in DKC2, I was surprised there is only 1 in DKC3. I think what happened was there was a point where the normal barrels didn't break upon hitting one enemy like in previous games. Then Rare nerfed them to give the steel kegs more of a purpose, and then they decided to remove the now redundant wooden boxes but forgot about this one.
Originally posted by MarioFanGamerIs the text custom? Either way, it's such a fitting quote, considering current C3.
Nope. That's an actual thing Cranky can say in DKC3. The only thing I edited was the win condition of the minigame. Normally, Cranky is being a sore loser when he says this line, but here, I think he has a point. XD
Originally posted by MarioFanGamerPlease do Super Metroid next, please do Super Metroid next.
Seriously, some of its effects are noteworthy to discuss! I find the way how it handles layer 3 images, particularly the liquids, the most interesting.
I could barely hear what you said, but since you're interested in my disassemblies, I will say that I do plan on doing more. There are quite a few games I want to take a look at at some point, like Super Metroid for example. Look forward to 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.