Language…
5 users online: DashGamer, drkrdnk, Isikoro, marvisjj,  Nanako - Guests: 254 - Bots: 352
Users: 64,795 (2,377 active)
Latest user: mathew

Lunar Magic suggestions and discussion (LM v3.40)

Tool

Sorry if this has been already a topic in the thread, but: would it be a lot of trouble to add support for exporting or pasting copied ExAnimation frame values/data to some sort of file that can be later imported into a level?

We have convenient ways to save palette and/or Map16 data to files that makes it easy to pass to other people and/or provide with resources, the missing bit (from my PoV of someone often helping people with graphic resources or building levels) is a convenient way to immediately provide ExAnimation frame values--a workaround I often see is just sending screenshots of the ExAnimation settings dialog to convey the frame values for manual typing in.

I assume there's some sort of data that is stored to the clipboard since we can copy and paste values, so would be nice if we could save that data to a file, or paste them plaintext-style for someone to copy and then paste into the ExAnimation settings.
ExAnimations are already saved in mwl files, so you can just save your level and send that. The other person can open the file in a second copy of LM and use the copy/paste buttons to transfer whichever slots they want to their own level in the first copy of LM.

If they're global animations though, you'd have to first copy them into level slots to be able to save them in an mwl file.
Just curious what does .mwl files holds inside
I have a few minor suggestions that would be nice to have:

1. Being able to export/import the title screen layer 3 image to/from .BIN (akin to how normal layer 3 images already can).
     Existing layer 3 images can already be exported fairly easily.
     Although you can just use the existing method (of opening one ROM and saving to the other ROM) works, it'd be nice for purposes of sharing custom title screen graphics, for instance.
2. Exporting ExAnimation tables.
     You can already copy/paste slots, but being able to export/import individual or global entries would be incredibly useful for places like the Graphics section -- akin to how you can export Map16 files.
3. Being able to export/import the raw layer 1/layer 2 data for overworlds to an external file.
    Doing so could pave the way to expanded overworld functionality or share overworlds without needing to share a patch or ROM.
    Theoretically we can already have multiple sets of overworlds with some ASM, but it requires very hackish methods to get working due to the inherent limits of LM's overworld editor.
     I've heard of methods such as using a second ROM to build the overworld and then manually ripping that data from the ROM.

I suppose only the 1st one is notable enough though, as if we want to share title screen layouts we'd need to share a patch/ROM or just export to/import from .STIM via an external application like Terra Stripe.

edit: Better reason to implement #3:

(OWL would stand for OverWorld Layout)



Originally posted by darkreader2636
Just curious what does .mwl files holds inside


Pretty much what you'd expect for a level. The layer 1 level data, layer 2 background tilemap (or level data if applicable), the sprite list, custom palette (if used), exits and entrances, level ExAnimation, and the level's settings. And generally using the same formats you'd find in the ROM.

Originally posted by Sonikku
1. Being able to export/import the title screen layer 3 image to/from .BIN (akin to how normal layer 3 images already can).


Maybe, but you can already export/import title screen tilemaps as files if you really want. Just copy/paste the whole thing through the clipboard as a page to the Map16 editor in 8x8 mode, then export as .Map16 or .bin.

Originally posted by Sonikku
2. Exporting ExAnimation tables.


See https://smwc.me/1463630 (and https://smwc.me/1611798 directly above).

Originally posted by Sonikku
3. Being able to export/import the raw layer 1/layer 2 data for overworlds to an external file.


See https://smwc.me/1463630.
Suggestion: Possibly streamline the process of enabling Layer 4/ Mode 0, making it enable similar LM's Layer 3 function.
You know how some of the Map16 routines take an XY position as input and convert it to an index into $7EC800/$7FC800? Is there a function that does the opposite, taking an index and outputting an XY position from it? For instance, an index of #$0012 in a standard-sized horizontal level would output X = #$0020, Y = #$0010. I can think of one method using $13D7, but it would require dividing by a 16-bit number, which the SNES doesn't natively support.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Can Variable 3 and Variable 4 vertical scrolling speeds for Layer 3 PLEASE be implemented into Lunar Magic? I feel like I desperately need those because, in taller levels, Variable 2 is too fast and the bottom of the Layer 3 tile map appears at the top of the level which you absolutely do not want in most cases and Slow is too slow and players won't be able to see certain portions of the Layer 3 tile map. Why would the scrolling even go from 1/4 the speed of Layer 1 in one setting straight to 1/32 the speed of Layer 1 in the next setting? Where are the 1/8 and 1/16 in between settings? Layer 2 has Variable 3 and 4 vertical speed settings, so why not Layer 3?

I like having Layer 3 be behind Layer 2. It makes sense because, being farther away, there will be less color detail, and, oh look, Layer 3 is only 2BPP while Layers 1 and 2 are 4BPP, so it makes sense, but I don't like having to keep putting this code

Code
        REP #$20
        LDA $1C      ;set Layer 3's Y position
        LSR
        LSR
        LSR
        STA $24
        SEP #$20


into UberASMTool just to have a Variable 3 Layer 3 vertical speed because the level is too tall for a Variable 2 Layer 3 vertical speed, I'd rather set a Variable 3 Layer 3 vertical speed in Lunar Magic itself.

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!

Originally posted by GrenCarret
Suggestion: Possibly streamline the process of enabling Layer 4/ Mode 0, making it enable similar LM's Layer 3 function.


Ehh, it likely wouldn't be used enough. Mode 0 gives you 4 layers, but all those layers will use 2bpp graphics. It's interesting for a few things, but the graphics format can make it rather limited.

Originally posted by imamelia
You know how some of the Map16 routines take an XY position as input and convert it to an index into $7EC800/$7FC800? Is there a function that does the opposite, taking an index and outputting an XY position from it? For instance, an index of #$0012 in a standard-sized horizontal level would output X = #$0020, Y = #$0010. I can think of one method using $13D7, but it would require dividing by a 16-bit number, which the SNES doesn't natively support.


Not that I recall.

Originally posted by DPBOX
Can Variable 3 and Variable 4 vertical scrolling speeds for Layer 3 PLEASE be implemented into Lunar Magic? I feel like I desperately need those because, in taller levels, Variable 2 is too fast and the bottom of the Layer 3 tile map appears at the top of the level which you absolutely do not want in most cases and Slow is too slow and players won't be able to see certain portions of the Layer 3 tile map.


I probably should at some point, though it would mean using up the last 2 unused settings for it. I did consider putting them in before, but had decided to wait a while in case some other potential use for them came up (like the "fast" setting that was added in 3.11).

Originally posted by DPBOX
Why would the scrolling even go from 1/4 the speed of Layer 1 in one setting straight to 1/32 the speed of Layer 1 in the next setting?


You're forgetting the order that these features were created in. The layer 3 scroll settings were first created based on the original game's layer 2 scroll settings, which is long before LM 3.00 added the ability to resize level dimensions and new layer 2 scroll settings were needed.
Can there be a way to remove the "Entrance to level X" text? I don't mind showing level entrances but that text can get in the way sometimes,

Originally posted by FuSoYa

Originally posted by Thomas
Is it intentional that the 8x8 Tile Editor and Background Layer 2 Editor don't have a grid display option? (even when pressing F8).


Only in the sense that it hasn't been asked for much that I can recall. It could be added, if enough people think they'd find it useful.

Just would like to say that I would find this useful.
Originally posted by Adsila
Can there be a way to remove the "Entrance to level X" text? I don't mind showing level entrances but that text can get in the way sometimes,

IIRC, F5, F6 and F7 toggle the main, midway and secondary entrance display. (Should be options in the view menu too.)


 
Originally posted by wye
Originally posted by Adsila
Can there be a way to remove the "Entrance to level X" text? I don't mind showing level entrances but that text can get in the way sometimes,

IIRC, F5, F6 and F7 toggle the main, midway and secondary entrance display. (Should be options in the view menu too.)

Yea but I just want to remove the text associated with them, I still want to see Mario there.
Not a suggestion or question, but it still deserves to be said:

Happy birthday, FuSoYa. Thanks for everything you've done for the community!

Edit: Just realized that this could've easily gone in the actual birthday thread, so whoops. Ah well, I'm not sure whether or not you check that thread anyway #ab{:P}
Twitter
The handomest people in the world are ones who follow my Twitch
Is it FuSoYa's birthday? If so, happy birthday!

A minor nitpick I have with LM is that it uses PgUp and PgDn buttons for some functions (Like opening sprite Map16 or viewing ExAnimation frames from the 8x8 tile editor), some keyboards do not have PgDn and PgUp so I need to pull out an external keyboard/on screen keyboard to do them. Its kind of annoying to do, and im unsure whether there is a way to do it without the PgDn and PgUp buttons.

My apologies if this has already been stated before.
Originally posted by Adsila
Originally posted by wye
Originally posted by Adsila
Can there be a way to remove the "Entrance to level X" text? I don't mind showing level entrances but that text can get in the way sometimes,

IIRC, F5, F6 and F7 toggle the main, midway and secondary entrance display. (Should be options in the view menu too.)

Yea but I just want to remove the text associated with them, I still want to see Mario there.


You can also make the text translucent, which should be in the view menu. I'm not really sure that an option for just turning off the labels would get as much use, since normally you'd want to see the secondary entrance numbers when manipulating them (though they can still be seen in the tooltip I guess).

(also F5 toggles all 3 types of entrances these days, the view option for those got merged around 4 years ago)

Originally posted by Adsila
Originally posted by FuSoYa
Originally posted by Thomas
Is it intentional that the 8x8 Tile Editor and Background Layer 2 Editor don't have a grid display option? (even when pressing F8).


Only in the sense that it hasn't been asked for much that I can recall. It could be added, if enough people think they'd find it useful.

Just would like to say that I would find this useful.


Wouldn't hurt to add I suppose.

Originally posted by K.T.B.
Not a suggestion or question, but it still deserves to be said:

Happy birthday, FuSoYa. Thanks for everything you've done for the community!

Edit: Just realized that this could've easily gone in the actual birthday thread, so whoops. Ah well, I'm not sure whether or not you check that thread anyway #ab{:P}


Oh, thanks! #ab{:)} Yeah I probably wouldn't have noticed in the other thread, I don't think I've ever looked in it.

Originally posted by SweatyNoodle
A minor nitpick I have with LM is that it uses PgUp and PgDn buttons for some functions (Like opening sprite Map16 or viewing ExAnimation frames from the 8x8 tile editor), some keyboards do not have PgDn and PgUp so I need to pull out an external keyboard/on screen keyboard to do them. Its kind of annoying to do, and im unsure whether there is a way to do it without the PgDn and PgUp buttons.


Sounds like a pretty stripped down keyboard. Most laptops that go that far will usually map those keys to a key combo with the Fn key, though they don't always make it obvious. Fn+Up/Down Arrow is pretty common for that.

But for those 2 functions you mentioned, there's already an option in LM to have viewing those turned on by default ("Options", "General Options", "Show Other Tiles in 8x8/16x16 Editors"). For other stuff, I'd recommend trying out AutoHotkey so you can assign a key combo to use in place of keys you're missing. I've used it fairly often myself over the years whenever I've wanted to remap keys in some games that have limited configuration options.
Bit of an oddball request, which I feel is par-for-the-course for me:
Could we allow 0000-FFFF for ActAs in Map16 please? Atm if clamps it to FFF. But the tables have to support a full word right?
I generally use it as "extension bytes" for blocks. And recommend doing that occasionally to people (setting to a proper ActAs before return in GPS). But it's rather frustrating to not have those last 4 bits to use in that scenario.
...? Act As goes from 0-7FFF. I wouldn't recommend trying to use bits of it for something else, LM will modify Act As settings to avoid creating an infinite look up loop in the game if it detects that you've set one up.
Oh small bug/quirk then: If you enter FFFF it clamps it to FFF (most other input boxes clamp it to the max value instead of the max digit) so I didn't actually realize it went to 7FFF.

I'm pulling the data from the tables before modifications and then setting a sane value myself. Not being able to touch that last bit still falls under what I'm asking (unless that's used for something else like BG). But 7FFF is significantly less frustrating than FFF.
Example use-case:
Use ActAs to set secondary exit # on a door block. Then change it to air (0025) before you return handling from the block to LM/SMW.
0000-1FFF fits in the 7FFF so that's not as frustrating as 000-FFF
But I might run into a similar input-box frustration with 8000-FFFF someday? That's the most useful bit on a DW anyway.
Just a thought, but what about creating a way for users to enter a list/make a note/tooltip when the mouse hovers over a palette in the palette editor that shows which things use what palette? For example, when hovering over 6,4, it could pop up that the Yoshi Coin uses this palette. It could be a pre-defined list, a user-customizable list, possibly be put in the bottom where other information is stored. Just a suggestion.
Originally posted by Runic_Rain
I'm pulling the data from the tables before modifications and then setting a sane value myself. Not being able to touch that last bit still falls under what I'm asking (unless that's used for something else like BG). But 7FFF is significantly less frustrating than FFF.


Allowing invalid values in there is generally a bad idea for everyone else though. The infinite loop checks are in there for a reason, plus I'd rather not take chances on what everyone else's custom block systems are going to do if they get values beyond the valid tile range.

Originally posted by Mapsking
Just a thought, but what about creating a way for users to enter a list/make a note/tooltip when the mouse hovers over a palette in the palette editor that shows which things use what palette? For example, when hovering over 6,4, it could pop up that the Yoshi Coin uses this palette. It could be a pre-defined list, a user-customizable list, possibly be put in the bottom where other information is stored. Just a suggestion.


That's likely too much info for a tooltip when you start breaking things down by tile.

Besides which, you can already double click on a tile or sprite in the level editor while the Map16 editor is open to automatically select it in the Map16 editor, which will display which palette it's using. It doesn't tell you individual colors, but it isn't too difficult to figure that out by either eyeballing it or playing in the palette editor.

Tool