No progress has been made on the editor for a while
Anyway, here's some stuff I've been working on as of late.
Here's a little patch I made which replaces the SMB1 1UP with a poison mushroom. They act just like you'd expect. As a note, I did not point this to the SMB:TLL Poison Mushroom, but just rewrote the 1UP routine and tileset/palette info.
Also, is a Continuous Star patch, which act just like the continuous stars in SMB3/SMW (gives you a star if you have one, or a coin otherwise).
This patch replaces the 10 coin block.
Feel free to download these patches here.
And now, for the main distraction!
As some of you may or may not know, I've mentioned a few times that over 50% of the ROM data in SMAS is just Raw GFX. For me to want to build an editor, this causes a problem, as Custom GFX will surely nom an entire game if not handled well. "So SWR, what ever will you do? Will you just give up on MushROMs?" you may be asking. Well, at first, I was going to exclude any custom GFX, this may have made a whole lot of you upset I can imagine. However, a few weeks ago, I had the pleasure of learning the LC_LZ2 compression format, the one SMW uses on its GFX. I managed to build a decompressor with some trial and error. But this wasn't too hard, because I just have to follow the rules of the compression format. Sadly, this tool is useless because my goal is to compress the GFX, and that means looking for optimal ways to do this. In time (a lot of time), I finally built a compressor which, so far, has been working.
This photo showcases what a normal SMAS ROM would look like versus what their compressed GFX look like. In SMB1 alone, the game with the fewest GFX by far (SMB2 and 3 have about 2x and 3x as much), I've managed to save up 54.4 KB (about two whole banks). So one can imagine how much space this will save. However, I could not just slap this in the ROM and hope my emu would know the difference. That never happens (sadly).
You'd get that if you'd have tried.
Fortunately, at this similar time did I start learning what VRAM was, purely by accident I may add, and began reading up on it. I learned about DMA transfers and the like and then peeked in the SMW ROM to see ASM's style of decompressing GFX. I used something similar for SMAS and the result is this screencap
This took a little longer than expected because SMAS has a really creative (lame) way of drawing the Mario/Luigi sprite in VRAM which I had to account for.
What does this mean for you? What else? Custom ExGFX are no longer a question or hope, but a certainty! I will begin rewriting the MushROMs GFX class to make all the changes. Thankfully, because I already built a (re/de)compressor in C#, this will not take too long.
For those curious, the ASM file I wrote for the custom ExGFX totaled 971 lines and 144 KB with the compressed bin files.
-SWR
____________________
|  |  |
|