Language…
7 users online: ezdeez85, GRIMMKIN,  Nanako,  Ringo,  Segment1Zone2,  Telinc1, toady - Guests: 239 - Bots: 291
Users: 64,795 (2,375 active)
Latest user: mathew

Issues Remaining in SMW Hacking

  • Pages:
  • 1
  • 2
So a few months ago, a thread to this style was created by, I believe, Smkdan who asked the question "What big issues still remain in SMW hacking?" Like all unstickied threads, this one died. It's now a long length of time later and many tools have been popping up to make SMW hacking easier and better. With these new tools out and a promising future of more useful tools coming out, I think it's time we ressurect this thread one more time. So I ask you. Now what issues still remain in SMW hacking?
SMWC's official dentist since 2011.

YouTube - Threads - Bluesky
Note: There's this thread by smkdan in case anyone wants to see the previous discussion.

I have nothing to add to this discussion. Can't come up with anything to be honest.
My blog. I could post stuff now and then

My Assembly for the SNES tutorial (it's actually finished now!)
Right now the big issue is addmusic, in that none of the current tools fully work.


The biggest overworld concerns (which was a rather large part of the old topic) have been addressed with LM 1.80: 4bpp graphics and custom palettes.



Past that, SMW is pretty well hacked.
Originally posted by Kaijyuu
Right now the big issue is addmusic, in that none of the current tools fully work!!!

That's more like it.

Originally posted by Kaijyuu
The biggest overworld concerns (which was a rather large part of the old topic) have been addressed with LM 1.80: 4bpp graphics and custom palettes.

Yes, although there are still things like additional levels and events, custom paths, reloading the overworld on each submap change...and why do the Layer 1 tiles only go up to BF? Shouldn't it be FF at the very least?

Originally posted by Kaijyuu
Past that, SMW is pretty well hacked.

There's always a way to improve something.

Originally posted by Kil in the other thread
SMW needs to start doing what many other games did. Load one song into ARAM at a time.

Which would also mean more space for things like echo, custom samples, and sound effects, if you gave that song, say...one-half to three-quarters the space that is currently available for four songs. Again, somebody should drop some Japanese people a few tweets.

There are some things, I think, that have been hacked to some degree but not documented very well. Some examples are overworld sprites (well, pretty much every non-normal sprite), the player's physics, the end-game sequence, line-guided sprites, and Map16 interaction (e.g. slopes). Some of these could also probably be optimized...I disassembled the line-guided sprite routine, and I find it very hard to believe that all the convoluted code it uses is not overkill. The routine that makes sprites act solid also seems like it could be modified to work both better and more efficiently. In fact, one idea I had was to completely rewrite the sprite handling routines entirely, along with the level data loading routines.

Also, I still think Lunar Magic should have built-in functions for Layer 3 backgrounds, Layer 3 ExGFX, player/animated tile ExGFX, and overworld ExAnimation.

Finally, one thing that was mentioned in the other thread that I thought was interesting was making the levels bigger, giving them different dimensions, enabling them to have both Layer 2 and Layer 3 interaction, etc. Smallhacker's idea of giving each tile a state would also be useful.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Originally posted by imamelia
Originally posted by Kaijyuu
Right now the big issue is addmusic, in that none of the current tools fully work!!!


I second that x1000. Not only Addmusic itself is the problem, though. As addressed in the old thread it's also a problem that there is no convient tool for creating or porting music yet. So far porting music is something only people very experienced with music can do. Look at some simple MIDI creators. Usually all you have to do is inserting musical notes by clicking somewhere and then selecting an instrument. There you go, music. The best thing is that you can listen to the music WHILE creating it. SMW Hacking scene lacks a tool like this. Maybe a tool that can load sample banks and then let you listen to the song while you're editing it. This would defenitly help people unskilled with music (like myself) out a lot. An upgraded version of this tool could contain the feature I mentioned above: An interface like that of a MIDI creator.

Also SMW needs HD, 3D and internet.
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Originally posted by imamelia
Originally posted by Kaijyuu
Past that, SMW is pretty well hacked.

There's always a way to improve something.

Right, but all the hard stuff has been done pretty much. Of SMW's original features, music is the only complex thing left. We've got tools made and/or extensive documentation for everything else.

All I was sayin' :)
Yeah music has always been an issue with me too. It would be so much easier to port complex songs if I was able to break the seventh octave and if I didn't get annoying instrument distortion from using the third octave and below. I somehow doubt it would be possible to break SMW's music limitations as they remain pretty much constant throughout all SNES games but meh... We might get some ASM genious who susses it out...

In terms of Addmusic, I've never experianced any problems with Romi's Addmusic so I would say we do have an Addmusic that actually works properly. When music doesn't insert properly, it's not Addmusic's fault. It's usually the fault of the lack of N-SPC or a general error in the txt. Addmusic shouldn't really be used as scapegoat for SMW's limitations or a lack of planning on the hacker's part.
SMWC's official dentist since 2011.

YouTube - Threads - Bluesky
Originally posted by RPG Hacker
The best thing is that you can listen to the music WHILE creating it. SMW Hacking scene lacks a tool like this. Maybe a tool that can load sample banks and then let you listen to the song while you're editing it.


I'm already working on a tool that will do something extremely close to this. Expect at least a beta at C3.
I should get a new layout.

Probably won't, though.
Originally posted by Kipernal
Originally posted by RPG Hacker
The best thing is that you can listen to the music WHILE creating it. SMW Hacking scene lacks a tool like this. Maybe a tool that can load sample banks and then let you listen to the song while you're editing it.


I'm already working on a tool that will do something extremely close to this. Expect at least a beta at C3.


As awesome as that sounds, I'm afraid if you do so I must worship you until the end of my life!
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Well, okay, I'll admit, it's not actually this program itself that does the composing. It's another program that makes the music, I'm just making a program that will convert it to MML format. But you can import SMW samples into the program as well as any WAV file you can get your hands on, and it is extremely easy to use. So for all intents and purposes, I'm making a program that will allow you to be able to hear what your song will sound like before you insert it.

And no, it's not Mario Paint, before someone asks. :P
I should get a new layout.

Probably won't, though.
I'm not sure if this is an "issue" but I think the level sizes are too limited. I hate how vertical levels are only 2 screens horizontally and how horizontal levels are like 1.5 screens vertically.

Why can't a level be 1F screens horizontally AND vertically?
Originally posted by CloudFantasyVII
Why can't a level be 1F screens horizontally AND vertically?


Mainly because the game engine wasn't programmed like that. :P

But yeah, of course that would be awesome. Doubt it will ever happen, though. :(
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
(Ignoring all tool and patch compatibility issues)
The RAM isn't large enough for that. If you want 1Fx1F screens, you'd need 480.5KB RAM (assuming you mean 31(dec), it needs 512kb if you mean 32(dec)).
Or you could make the level loading routine only load objects from a few screens at once and call that routine as soon as the level scrolls. This would make RAM usage more reasonable (4.5kb if you keep 3x3 screens in the RAM at once, the current system uses 28kb), but it'd make the level format FAR more complicated.
Additionally, getting collision detection/graphics/etc to work properly with the new RAM layout would require hijacking LOTS of stuff. I don't know how big the patch'd be, but I can only think of one existing patch (not counting patches containing huge tables) that would even get close to the size of this: smkd's gfx++ patch.
<blm> zsnes users are the flatearthers of emulation
Originally posted by imamelia
Also, I still think Lunar Magic should have built-in functions for Layer 3 backgrounds, Layer 3 ExGFX, player/animated tile ExGFX, and overworld ExAnimation.


Unless LM offers more direct vram mapping functions, I don't really want to see any more hacks added to LM of this sort. Especially since some people are now using the EXGFX revolution patches to make things like 8bpp backgrounds and others are experimenting with things like the snes highres modes. I have siad it before and I will say it again: LM has way too many undocumented asm hacks already.

Originally posted by imamelia
Finally, one thing that was mentioned in the other thread that I thought was interesting was making the levels bigger, giving them different dimensions, enabling them to have both Layer 2 and Layer 3 interaction, etc. Smallhacker's idea of giving each tile a state would also be useful.


Vastly changing the internals of how levels are built strikes me as a very bad idea, especially if it's used to replace the normal level format. On a related matter...

Originally posted by Alcaro
(Ignoring all tool and patch compatibility issues)
The RAM isn't large enough for that. If you want 1Fx1F screens, you'd need 480.5KB RAM (assuming you mean 31(dec), it needs 512kb if you mean 32(dec)).
Or you could make the level loading routine only load objects from a few screens at once and call that routine as soon as the level scrolls. This would make RAM usage more reasonable (4.5kb if you keep 3x3 screens in the RAM at once, the current system uses 28kb), but it'd make the level format FAR more complicated.
Additionally, getting collision detection/graphics/etc to work properly with the new RAM layout would require hijacking LOTS of stuff. I don't know how big the patch'd be, but I can only think of one existing patch (not counting patches containing huge tables) that would even get close to the size of this: smkd's gfx++ patch.


Best way to do it is to use a system like Metroid's rooms, where each level is vertical or horizontal and connected semi-seamlessly. Last year at C3 I remember someone releasing a patch that could load levels during play. If you combined this with fiddling with the player's (and possibly all the sprite's) positions and scrolling tricks, you could in theory have a seamless level transfer. Of course in practice I bet it's much more complex then that. Easy way is just to screw it and make seamlessly connected levels with no fade, just wrap at the edges so when you go off the right edge you end up on the left edge of a new level, and same with up and down. That would only need some minor rewriting of the level exit code really.

Either way, it's easier to make multible levels that are connected then one big one.
Your layout has been removed.
Originally posted by KilloZapit
Originally posted by imamelia
Also, I still think Lunar Magic should have built-in functions for Layer 3 backgrounds, Layer 3 ExGFX, player/animated tile ExGFX, and overworld ExAnimation.


Unless LM offers more direct vram mapping functions, I don't really want to see any more hacks added to LM of this sort. Especially since some people are now using the EXGFX revolution patches to make things like 8bpp backgrounds and others are experimenting with things like the snes highres modes. I have siad it before and I will say it again: LM has way too many undocumented asm hacks already.

I don't see how overworld ExAnimation could mess anything like that up, unless somebody is modifying the VRAM on the overworld manually. And couldn't those hacks just be disabled in certain levels, such as ones with 8bpp backgrounds? As far as the Layer 3 thing goes, I rest my case. Doing anything substantial with Layer 3, right now, takes a lot more time than it should in my opinion. Make savestate. Open savestate in Racing Stripe (assuming you're not overwriting an original Layer 3 BG). Save tilemap file. Convert from .stim to .bin. Upload file as ExGFX file. And for all I know, I left out one or two steps. Don't get me wrong; I know that people like Jimmy and Ladida have used Layer 3 backgrounds, and I'm fully planning to in my own hack (that's why I, shall we say, made some adjustments to my status bar), but the way things stand, making Layer 3 anything is practically a darned Rube Goldberg process.

Originally posted by KilloZapit
Best way to do it is to use a system like Metroid's rooms, where each level is vertical or horizontal and connected semi-seamlessly. Last year at C3 I remember someone releasing a patch that could load levels during play. If you combined this with fiddling with the player's (and possibly all the sprite's) positions and scrolling tricks, you could in theory have a seamless level transfer. Of course in practice I bet it's much more complex then that. Easy way is just to screw it and make seamlessly connected levels with no fade, just wrap at the edges so when you go off the right edge you end up on the left edge of a new level, and same with up and down. That would only need some minor rewriting of the level exit code really.

Either way, it's easier to make multible levels that are connected then one big one.

That sounds like a good idea, although it could get annoying if the two levels still showed up separate in Lunar Magic. Moreover, though, that could easily mean that 0x200 levels wouldn't be enough for a full-length hack. I for one could very well run out of levels anyway, and with this, they'd just get used up even more quickly. Expanding the level capacity to 0x400 or something would be nice for that.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Okay, all that stuff mentioned about how urgent it is to get a fully functional Addmusic? Allow me to ramp that up a bit. I and at least one other person now can't get it to work at all, particularly with the latest versions of Lunar Magic. Isn't there any way to contact the authors? Isn't there anything we can do to speed up the process?

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Quote
Isn't there anything we can do to speed up the process?

Learn how to hack the SPC and make your own.
Originally posted by Kaijyuu
Learn how to hack the SPC, get better at it than five or six talented Japanese people, learn enough Perl or some other programming language to make the text converter, and make your own, postponing any hacks you want to actually function properly a couple of years until you finish.

Is that what you meant to say?

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
  • Pages:
  • 1
  • 2