Language…
6 users online: Dragul66, Kevin Lee,  MarioFanGamer, Microsoft_Luigi, NewPointless, TokZone - Guests: 78 - Bots: 135
Users: 58,128 (2,470 active)
Latest user: maczampieri

Lunar Magic suggestions and discussion (LM v2.52)

Link Thread Closed
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 143
  • 144
  • 145

EASY way to insert custom music (god please)

The same person? Oh nevermind.

Use AddmusicK. It's the easiest way to insert custom music... ever.
By the way, where is located the pointer of ExGFX60-63?
GitHub - Twitter - YouTube - SnesLab Discord
There's a small table for those at 0x1BEC0 (PC).
Would you consider making some kind of addon API for Lunar Magic to allow access to more parts of the program? I can see that this is a big thing to ask, but since Lunar Magic is the cornerstone of SMW hacking, it seems kinda weird that there's really no way to safely customize things like levels and overworlds to a bigger extent than Lunar Magic allows. I just think that you might want to consider something like this, allowing for tools that could introduce things like dynamic levels would really be a big step in hacking the game. As it's been proven to be possible, just with Lunar Magic being in the way.
The last time someone requested "some kind of addon API", the post was about as vague as yours. When I asked for specifics, it became pretty clear that the request was not simply for "access to more parts of the program", but to significantly recode parts of the program to make what was being requested possible.

Just remember that Lunar Magic is a Mario World editor, not a generic game making utility.
Maybe... Additional path tiles in Overworld maybe.
Receiving?
Originally posted by Spk77k
Maybe... Additional path tiles in Overworld maybe.


Oh god that would be so fucking useful, but it's not possible unless you use ASM and custom resources, cause it isn't in the original SMW. A simple overworld sprite can do that, but you should learn ASM for it :(
Is it already possible to have an additional toolbar for the OW editor? If not, might be nice to add ^^.
Anime statistic on MyAnimeList:
400 animes completed ✓
6000 episodes completed ✓
100 Days completed ✓
... what even am I doing with my life?
No, I mean the Overworld Path exit tiles. It only supports 7 pairs of'em.
Like Star/Pipe exits does, LM should support more path tiles.
Receiving?
Originally posted by Spk77k
No, I mean the Overworld Path exit tiles. It only supports 7 pairs of'em.
Like Star/Pipe exits does, LM should support more path tiles.

That's a limitation of SMW. Chances are you'd need some ASM guy to code a patch for that.
This idea just hit me while I was in the middle of making a level. Do you think you could implement some sort of global (or maybe a button that opens a level list for other people that don't need it to be global) option to disable the types animations you want instead of doing it 1 by 1 per level?

I've disabled the original game's tile and palette animations and its slightly annoying to have to do that per level, even down to tiny sub levels.
Originally posted by JackTheSpades
Is it already possible to have an additional toolbar for the OW editor? If not, might be nice to add ^^.


Had thought about it a few times, but don't think anyone had asked for it yet. Probably because there aren't many things one would need to launch from the overworld editor. I'll put it in the maybe list though.

Originally posted by Spk77k
No, I mean the Overworld Path exit tiles. It only supports 7 pairs of'em.
Like Star/Pipe exits does, LM should support more path tiles.


I suppose it probably should, as the next version includes a fix for the GFX reloading thing. I may hold off on doing it till later though, as there's already a fair number of ASM changes for this version.

Originally posted by mario90
This idea just hit me while I was in the middle of making a level. Do you think you could implement some sort of global (or maybe a button that opens a level list for other people that don't need it to be global) option to disable the types animations you want instead of doing it 1 by 1 per level?


It's been on the maybe list for a while, but it tends to get passed over pretty often in favor of other things.
Could you implement a way to disable being able to move Mario in sprite mode? When making custom entrances (like multiple midway points) it's very easy to accidentally move Mario which inserts LM's midway point patch. A simple toggle in the options menu would be enough.
User: Hinalyte / ID: 1553 ~ loading kotori.css
Suggestion: Can you add a small feature to disable/move the palette animations on the overworld editor?
Okay, this isn't exactly a Lunar Magic question, but...is there any way to find the Map16 tile number a sprite is touching after calling $019138? I tried $1860/$1862 and $185F/$18D7, but those seem to just hold the acts-like setting. Obviously, there's that whole big tile number check routine that was posted elsewhere, but doesn't Lunar Magic's ASM hack for that store the tile number somewhere? Actually, for that matter, I could say the same for every other object contact routine. I could hijack it to store the tile number to free RAM, but I'm not sure what part would be called by all the different routines....

Also, I'm getting an ExAnimation bug that does not seem to be related to my code. I have slots 00, 02, 04, and 06 each set for palette animation on colors F0-FF, each with one frame (so it's actually a 4-frame animation that runs at 30 fps), each using ExGFX60 for source data, and each using the Manual 0 trigger. But for whatever reason, it seems to be acting as if the trigger were not there and running constantly.

And another thing...I know you don't want to have full support for custom object display, but I thought of a simple, cheap temporary solution that would at least make it possible to tell one object apart from another: Why not make the tiles display as generic tiles that just show the extension bits? Like, if I place object 2D in the level with extension 0700, it could just show "07 00" on each tile.

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

I'm working on a hack! Check it out here.
Originally posted by Torchkas
Could you implement a way to disable being able to move Mario in sprite mode? When making custom entrances (like multiple midway points) it's very easy to accidentally move Mario which inserts LM's midway point patch. A simple toggle in the options menu would be enough.


If you accidently move a main/midway entrance, you can still go into the main/midway entrance settings to turn it off as long as you do so before saving.

Originally posted by Hinalyte
Suggestion: Can you add a small feature to disable/move the palette animations on the overworld editor?


That probably won't come until overworld ExAnimations are implemented.

Originally posted by imamelia
Okay, this isn't exactly a Lunar Magic question, but...is there any way to find the Map16 tile number a sprite is touching after calling $019138? I tried $1860/$1862 and $185F/$18D7, but those seem to just hold the acts-like setting. Obviously, there's that whole big tile number check routine that was posted elsewhere, but doesn't Lunar Magic's ASM hack for that store the tile number somewhere? Actually, for that matter, I could say the same for every other object contact routine. I could hijack it to store the tile number to free RAM, but I'm not sure what part would be called by all the different routines....


You can try $03 like it says in the help file, provided it hasn't been overwritten yet if you're doing it outside of block code. Though if you've chained your act as settings, that'll only give you the last tile above 1FF in the chain. Beyond that, LM doesn't keep the original tile number.

Originally posted by imamelia
Also, I'm getting an ExAnimation bug that does not seem to be related to my code. I have slots 00, 02, 04, and 06 each set for palette animation on colors F0-FF, each with one frame (so it's actually a 4-frame animation that runs at 30 fps), each using ExGFX60 for source data, and each using the Manual 0 trigger. But for whatever reason, it seems to be acting as if the trigger were not there and running constantly.


Make sure you didn't set the manual trigger to an invalid frame number. Except you can get away with FF as the init if you don't want it to do anything yet when the level starts. And make sure you actually initialized the manual trigger frame (with the trigger init button or your own code).

Originally posted by imamelia
And another thing...I know you don't want to have full support for custom object display, but I thought of a simple, cheap temporary solution that would at least make it possible to tell one object apart from another: Why not make the tiles display as generic tiles that just show the extension bits? Like, if I place object 2D in the level with extension 0700, it could just show "07 00" on each tile.


Those extension bytes are already in the status bar.
Originally posted by FuSoYa
You can try $03 like it says in the help file, provided it hasn't been overwritten yet if you're doing it outside of block code. Though if you've chained your act as settings, that'll only give you the last tile above 1FF in the chain. Beyond that, LM doesn't keep the original tile number.

I see. Well, $03 should work fine for this particular occasion, but if I did need the actual tile number, is there any routine in particular that Lunar Magic's ASM hacks always call for any object interaction that could be hijacked with a read3() function?

Originally posted by FuSoYa
Make sure you didn't set the manual trigger to an invalid frame number. Except you can get away with FF as the init if you don't want it to do anything yet when the level starts. And make sure you actually initialized the manual trigger frame (with the trigger init button or your own code).

The level is set to initialize it to 03, and since AND #$03 is applied in the code that changes it, it should never go above that.

Originally posted by FuSoYa
Those extension bytes are already in the status bar.

Yes, but you can't see them when just looking at the level at a glance, nor can you immediately tell where the boundaries of an object are (which could be marked with a thicker line or something). You just have to deal with the ugly garbage tiles.

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

I'm working on a hack! Check it out here.
Originally posted by imamelia
I see. Well, $03 should work fine for this particular occasion, but if I did need the actual tile number, is there any routine in particular that Lunar Magic's ASM hacks always call for any object interaction that could be hijacked with a read3() function?


No, think you'd have to either redirect all the calls to LM's code through separate routines or inject code into LM's ASM.

Originally posted by imamelia
The level is set to initialize it to 03, and since AND #$03 is applied in the code that changes it, it should never go above that.


But you described a 4 frame animation split among 4 slots. If each slot has only 1 frame, values 1-3 are all invalid.
Originally posted by FuSoYa
No, think you'd have to either redirect all the calls to LM's code through separate routines or inject code into LM's ASM.

I see. How many different routines are there? I know $06F700 is one...

Originally posted by FuSoYa
But you described a 4 frame animation split among 4 slots. If each slot has only 1 frame, values 1-3 are all invalid.

I wondered if that might be it...so then that basically means that it's impossible to make manual frame counters work correctly for any animations with a frame rate greater than 7.5 fps? I wonder if I could do it with a one-shot animation instead...or maybe even just write my own palette-updating routine... Could I perhaps use 4 manual frame counters, set the one corresponding to which frame is supposed to be active to 00, and set the other 3 to FF?

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

I'm working on a hack! Check it out here.
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 143
  • 144
  • 145
Link Thread Closed