This thread is for suggesting features for future versions of Lunar Magic, discussing the development of the program, mentioning ideas, and pointing out any bugs that may crop up. Just making suggestions here is no guarantee that FuSoYa will take any of them, obviously, but at least they will be out there.
I'll start the discussion by making a couple suggestions of my own. First, one thing I've wanted to see in Lunar Magic for quite a while is custom tooltips for objects, something similar to the custom sprite tooltips that showed up in version 1.65. What with version 1.82 and the new ObjecTool out, I think it's time. Sure, proper tooltips for normal objects might be hard to do, since they can be sized all sorts of ways with a variety of tiles, but I think at least having them show rectangles and lines to indicate where the object's tiles are (think EggVine) would be doable. This way, every object wouldn't show up as the same glitched mass of tiles whose size always changes by one tile each time; it would be possible for a non-45-degree slope, an object sized in 32x32 blocks instead of 16x16 ones, or an object that uses the height bits for object type to show up properly. Even without having the actual graphics there, just having the object be the proper size and shape would be quite useful. Extended objects, on the other hand...well, I don't see why tooltips for extended objects would be any more difficult to make than tooltips for sprites. In fact, if anything, they'd be easier, since there would be no extra bits to worry about and all tile offsets would have to be divisible by 0x10. I think tooltips for extended objects that even show the correct graphics for them could—and should—be made. (The "add 0x8000 to the tile number to make it translucent" rule would still apply.)
Another suggestion I had, much less complicated, is making it possible to transfer global ExAnimation between ROMs. I know you can do that with level-specific ExAnimation since it's saved in the .mwl files, but when a person has to port to a new ROM (and almost everyone will), he/she will have to redo all the global ExAnimation.
In fact, that brings up another thing: It should also be possible to save the overworld to an external file. While transferring is easier than it used to be, I still think this is something to consider.
I also thought of another big thing: Layer 3. Lunar Magic has very little Layer 3-related editing ability. We have at least two tools that can edit Layer 3 images, we have a patch that can insert Layer 3 ExGFX, we have a patch that can insert custom stripe images and another that can insert any tilemap as a compressed ExGFX file, we have one that puts the status bar on the sprite layer so it doesn't conflict with Layer 3 backgrounds...so why isn't any of this stuff in Lunar Magic yet? It would be incredibly useful, especially for those who aren't skilled enough to insert Layer 3 backgrounds with the existing resources.
That's all I have right now...let's get some more ideas!
Edit: Approximate frequency table for suggestions:
more features in the palette editor - 9
- importing specific colors of a palette
- importing only certain palette rows
- copying blocks of colors
- getting rid of the hardcoded colors so that global palettes can use all 256
more Layer 3 stuff - 9
- Layer 3 ExGFX
- Sprite Status Bar
- better compression
No Sprite Tile Limits - 6
- button that sets all 0x200 levels' sprite memory to 10
minor fixes, such as andy_k_250's Fix-All patch - ?
- Ice Man's HDMA fixes
- Death Swooper tilemap
- keyhole windowing
- line-guided sprite X position
- note block interaction glitch (?)
- coin over question-mark block
- turn block bridge X-flip
- hurtfix (fixes a minor bug with the hurt and animated hurt blocks when hit from the sides)
- turn block fix (blocks 12A and 12B)
- Charging Chuck's arm (correct the palette)
- Wendy's bow (fix the graphic flip)
- Magikoopa palette correction (the lightest blue color in Magikoopa's fade-in/fade-out palette table was inverted in the original game for some reason)
- Piranha Plant fixes (whether it should use the default empty space or set freespace for the fix)
undo button - 5
more powerful Map16 editor - 5
zoom feature (for the overworld?) - 5
saving overworld to external file - 4
ExGFX Revolution - 4
F9 -> change foreground Map16 page - 3
other hacking tools integrated into Lunar Magic - 3
Sprite Tool
Addmusic
better documentation for the ASM hacks it installs - 2
ability to use unheadered ROMs (.sfc) - 2
custom object tooltips - 2
overworld ExAnimation - 2
refreshing the overworld graphics on every submap change - 2
search box for the object and sprite insertion windows - 2
option to change the image type for saving levels as images - 2
Map16 pages for overworlds ("Map8"?) - 2
VWF patch - 2
multi-midway points - 2
dsx.asm - 2
sprite tooltips dependant on X position - 2
shared subroutine patch - 2
save multiple, specific levels to a file - 2
status bar editor built into LM - 2
built-in HDMA editor - 2
LC_LZ2/3 compression for backgrounds (Layer 3 and possibly Layer 2) - 1
levelnum.asm - 1
saving "View" settings on editor close - 1
ability to use all overworld palettes fully - 1
option to disable overworld animation - 1
swap all instances of a certain tile in a background with a different one - 1
list of modified sublevels - 1
sprite tooltips dependant on extra byte(s) - 1
player ExGFX - 1
modifying the slot a Map16 page uses - 1
cluster sprite patch - 1
1/2-Player Only - 1
changing the titlescreen and intro music in LM - 1
set the titlescreen graphics to an ExGFX file - 1
other "Lunar" tools built into LM - 1
"change the value of tile numbers for this Map16 Tile (in hex)" - 1
moving objects that utilize screen exits moves the screen exit also (if moved to a different screen) - 1
use any sublevel for a level's midway entrance - 1
reload overworld sprites on every submap switch - 1
"a message that pops up if you are using a sprite that is incompatible with the current sprite memory" - 1
"Check if the rom file exists in the recent file list, if not, it will be removed from the list." - 1
OWASM - 1
LevelASM - 1
separate Luigi GFX - 1
"objects" for the background - 1
----------------
I'm working on a hack! Check it out here. Progress: 64/95 levels.
I'll start the discussion by making a couple suggestions of my own. First, one thing I've wanted to see in Lunar Magic for quite a while is custom tooltips for objects, something similar to the custom sprite tooltips that showed up in version 1.65. What with version 1.82 and the new ObjecTool out, I think it's time. Sure, proper tooltips for normal objects might be hard to do, since they can be sized all sorts of ways with a variety of tiles, but I think at least having them show rectangles and lines to indicate where the object's tiles are (think EggVine) would be doable. This way, every object wouldn't show up as the same glitched mass of tiles whose size always changes by one tile each time; it would be possible for a non-45-degree slope, an object sized in 32x32 blocks instead of 16x16 ones, or an object that uses the height bits for object type to show up properly. Even without having the actual graphics there, just having the object be the proper size and shape would be quite useful. Extended objects, on the other hand...well, I don't see why tooltips for extended objects would be any more difficult to make than tooltips for sprites. In fact, if anything, they'd be easier, since there would be no extra bits to worry about and all tile offsets would have to be divisible by 0x10. I think tooltips for extended objects that even show the correct graphics for them could—and should—be made. (The "add 0x8000 to the tile number to make it translucent" rule would still apply.)
Another suggestion I had, much less complicated, is making it possible to transfer global ExAnimation between ROMs. I know you can do that with level-specific ExAnimation since it's saved in the .mwl files, but when a person has to port to a new ROM (and almost everyone will), he/she will have to redo all the global ExAnimation.
In fact, that brings up another thing: It should also be possible to save the overworld to an external file. While transferring is easier than it used to be, I still think this is something to consider.
I also thought of another big thing: Layer 3. Lunar Magic has very little Layer 3-related editing ability. We have at least two tools that can edit Layer 3 images, we have a patch that can insert Layer 3 ExGFX, we have a patch that can insert custom stripe images and another that can insert any tilemap as a compressed ExGFX file, we have one that puts the status bar on the sprite layer so it doesn't conflict with Layer 3 backgrounds...so why isn't any of this stuff in Lunar Magic yet? It would be incredibly useful, especially for those who aren't skilled enough to insert Layer 3 backgrounds with the existing resources.
That's all I have right now...let's get some more ideas!
Edit: Approximate frequency table for suggestions:
more features in the palette editor - 9
- importing specific colors of a palette
- importing only certain palette rows
- copying blocks of colors
- getting rid of the hardcoded colors so that global palettes can use all 256
more Layer 3 stuff - 9
- Layer 3 ExGFX
- Sprite Status Bar
- better compression
No Sprite Tile Limits - 6
- button that sets all 0x200 levels' sprite memory to 10
minor fixes, such as andy_k_250's Fix-All patch - ?
- Ice Man's HDMA fixes
- Death Swooper tilemap
- keyhole windowing
- line-guided sprite X position
- note block interaction glitch (?)
- coin over question-mark block
- turn block bridge X-flip
- hurtfix (fixes a minor bug with the hurt and animated hurt blocks when hit from the sides)
- turn block fix (blocks 12A and 12B)
- Charging Chuck's arm (correct the palette)
- Wendy's bow (fix the graphic flip)
- Magikoopa palette correction (the lightest blue color in Magikoopa's fade-in/fade-out palette table was inverted in the original game for some reason)
- Piranha Plant fixes (whether it should use the default empty space or set freespace for the fix)
undo button - 5
more powerful Map16 editor - 5
zoom feature (for the overworld?) - 5
saving overworld to external file - 4
ExGFX Revolution - 4
F9 -> change foreground Map16 page - 3
other hacking tools integrated into Lunar Magic - 3
Sprite Tool
Addmusic
better documentation for the ASM hacks it installs - 2
ability to use unheadered ROMs (.sfc) - 2
custom object tooltips - 2
overworld ExAnimation - 2
refreshing the overworld graphics on every submap change - 2
search box for the object and sprite insertion windows - 2
option to change the image type for saving levels as images - 2
Map16 pages for overworlds ("Map8"?) - 2
VWF patch - 2
multi-midway points - 2
dsx.asm - 2
sprite tooltips dependant on X position - 2
shared subroutine patch - 2
save multiple, specific levels to a file - 2
status bar editor built into LM - 2
built-in HDMA editor - 2
LC_LZ2/3 compression for backgrounds (Layer 3 and possibly Layer 2) - 1
levelnum.asm - 1
saving "View" settings on editor close - 1
ability to use all overworld palettes fully - 1
option to disable overworld animation - 1
swap all instances of a certain tile in a background with a different one - 1
list of modified sublevels - 1
sprite tooltips dependant on extra byte(s) - 1
player ExGFX - 1
modifying the slot a Map16 page uses - 1
cluster sprite patch - 1
1/2-Player Only - 1
changing the titlescreen and intro music in LM - 1
set the titlescreen graphics to an ExGFX file - 1
other "Lunar" tools built into LM - 1
"change the value of tile numbers for this Map16 Tile (in hex)" - 1
moving objects that utilize screen exits moves the screen exit also (if moved to a different screen) - 1
use any sublevel for a level's midway entrance - 1
reload overworld sprites on every submap switch - 1
"a message that pops up if you are using a sprite that is incompatible with the current sprite memory" - 1
"Check if the rom file exists in the recent file list, if not, it will be removed from the list." - 1
OWASM - 1
LevelASM - 1
separate Luigi GFX - 1
"objects" for the background - 1
----------------
I'm working on a hack! Check it out here. Progress: 64/95 levels.