Language…
13 users online:  Anorakun,  Burning Loaf, E-man38, Gamet2004, gibbl, h.carrell, HeitorPorfirio2006, Impetus, Kosinus69, MegaSonic1999, Nitrogen, Overcrow03, SolveForX - Guests: 82 - Bots: 180
Users: 55,671 (2,401 active)
Latest user: Alelima0202

Lunar Magic suggestions and discussion (LM v3.31)

Originally posted by FuSoYa
Originally posted by imamelia
Another thing: Could we have an option to turn off the tileset-specific behavior of Map16 pages 0 and 1 too? I, at least, barely even use tileset-specific objects or blocks (especially tiles C7-FF), and on the occasions when I do, I rarely need the same block or object to have different behaviors.


If you don't need them, then don't use them. You have 0x7E00 other free non-tileset specific tiles to choose from, after all. If you did want to use them that way, you could just override their behavior with custom block code and/or the "Act As" setting.

Well, I was more thinking because they take up such a huge chunk of RAM in the mirrored area, not so much due to lack of Map16 space.

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

I'm working on a hack! Check it out here.
So in other words you're talking about their appearance, not their gameplay behavior.

Thing is, that table at $0FBE controls the appearance of ALL the tiles on the first 2 pages, not just the tileset specific ones. Simply turning off their ability to change for different tilesets isn't going to make the table go away or not be used.
Well, how many places is it referenced in vanilla and Lunar Magic code? I'd think that the pointer could be changed to go to $0D8000 or something.

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

I'm working on a hack! Check it out here.
The $0FBE table consists of pointers to Map16 data, not the Map16 data itself. So either you're moving that RAM table to some free place in the ROM or you're changing the code to use a table of Map16 instead of a table of pointers. And if you're doing the latter, you're going to need to create a new table of just the Map16 data you want in the ROM.

You wouldn't just be breaking many of the original objects and levels that depend on tileset specific tiles though. You'd also break the pipe color screen changes... they'd have to stay a static color instead, and the VRAM patch would have to be modified to stop changing them in $0FBE. And the overworld uses the same RAM table for Map16, so if you want it to be free there you'd have to make it use a ROM table too.

Meh, not interested. If you really want that RAM, afraid you'll need to create a patch for it yourself.
Fair enough. I guess I assumed that the format of that table and its usage were simpler than the reality. (I suppose I can still use parts of that table, parts of the stack space, $0EF9 in most hacks, and $1BA3, if they're initialized correctly.)

What do you think of my other suggestions 9 posts ago?

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

I'm working on a hack! Check it out here.
Hello FuSoYa, are you aware of a major bug where manual ExAnim. trigger 0 crashes on BSNES? Since some others have said this before but I'm not sure if someone actually reported it, I might as well do it myself.
My Mode 0 guide.

My Discord server. It has a lot of archived ASM stuff, so check that out!

Originally posted by imamelia
Fair enough. I guess I assumed that the format of that table and its usage were simpler than the reality. (I suppose I can still use parts of that table, parts of the stack space, $0EF9 in most hacks, and $1BA3, if they're initialized correctly.)


Yeah as long as the tile isn't being used and it's not a color changing pipe, you could likely use it as scratch RAM after the level is loaded.

Originally posted by imamelia
What do you think of my other suggestions 9 posts ago?


I don't always comment on all suggestions. If I don't answer, it's usually either because someone else already did, it's covered on the first post of the thread, or it's just not currently being considered.

...or because you've already asked N variations of the same question before and I don't feel like answering it yet again.

Originally posted by Anas
Hello FuSoYa, are you aware of a major bug where manual ExAnim. trigger 0 crashes on BSNES? Since some others have said this before but I'm not sure if someone actually reported it, I might as well do it myself.


Nope. If you're going to report someone else's issue, it's often best to first make sure you can actually replicate it yourself on a ROM that's just had LM used on it. You have no idea what someone else has done to their ROM with their own patches. Like for example, trying to call LM's level ExAnimation routine from their own code before a level has even been loaded...
Originally posted by Anas
Hello FuSoYa, are you aware of a major bug where manual ExAnim. trigger 0 crashes on BSNES? Since some others have said this before but I'm not sure if someone actually reported it, I might as well do it myself.
There is no such thing. I am using manual trigger 0 on the overworld and it works fine in BSNES and any other emulator, too.
I was surprised to find recently (after remapping some tiles for objects) that lunar magic actually pulls these changes from the rom instead of being static: I remapped the center tile of the underground tileset's ground square (36) and it shows up with my newly mapped tile on a fresh reload. Which is neat!
My question is, is there a particular reason why don't slope objects do this as well? I remapped a few of the tiles for slopes and they don't show up in the editor like some of the other objects I remapped, it would be nice if this were the case as well.
Here's a picture in the event I botched my explanation and it's not at all clear what I'm talking about.
While there may be exceptions, the general rule I used back when LM was first being built was that if an object had tiles in a table then I'd have LM use it, but if a tile was embedded directly in ASM then I wouldn't. It helped reduce the number of addresses to keep track of, though there were still a lot of tables.
Are there pointers to the locations of ExGFX60-63 in the ROM anywhere?

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

I'm working on a hack! Check it out here.


Originally posted by FuSoYa
Originally posted by LucasRCD
I don't go looking in here often, so I don't know if this has been suggested multiple times in the past or not, but please, PLEASE, add buttons to automatically offset animation frames forwards or backwards, because doing it manually for each frame is incredibly tedious.

It's probably wishful thinking but this would save a lot of trouble for things like ExAnimated hurt blocks that only hurt on certain frames.


You mean rotate the frame entry values backwards/forwards by 1? I think most people would just put the frames in the desired order to begin with (or modify the code for the blocks).

I think the idea was for situations like if you were using the same animation for two separate blocks, but with one offset from the other by a few frames (as an example, the munchers that rise out of pipes that many hacks use). As it stands, adjusting the timing requires manually re-inputting all of the frames.

If not a full button, maybe instead just a key combo?

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
This could be fixed by just making it a comma separated list. Would that be possible?


YY-CHR > Photoshop.
I would prefer that the animation frames were not a comma separated list myself.
Filler
Would love it if the process for adding custom sprites to the Custom Collection of Sprites category and making them appear in LM properly wasn't so tedious. All these years of using LM I've always found it weird that custom sprites are just X's with no obvious or simple way of making them look correct.
Originally posted by Vissova
Would love it if the process for adding custom sprites to the Custom Collection of Sprites category and making them appear in LM properly wasn't so tedious. All these years of using LM I've always found it weird that custom sprites are just X's with no obvious or simple way of making them look correct.


While I find creating my own list more reliable, you can use pixi and the cfg editor with json files to create a working custom sprite list.
Honestly, I don't even use Lunar Magic or JSON files for that, except to make the sprite Map16 in the former case. I type out the .ssc, .mwt, and .mw2 files manually.

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

I'm working on a hack! Check it out here.
Originally posted by imamelia
Are there pointers to the locations of ExGFX60-63 in the ROM anywhere?


$3BCC0 (SNES).

Originally posted by Thomas
If not a full button, maybe instead just a key combo?


Not really sure if it'd be used enough. Wonder if I should just have the copy/paste slot buttons also able to use frame values on the clipboard as a comma separated text list. Then you could copy them to a text editor and do whatever form of shuffling you want before copying and pasting it back.
Originally posted by LucasRCD
I don't go looking in here often, so I don't know if this has been suggested multiple times in the past or not, but please, PLEASE, add buttons to automatically offset animation frames forwards or backwards, because doing it manually for each frame is incredibly tedious.

It's probably wishful thinking but this would save a lot of trouble for things like ExAnimated hurt blocks that only hurt on certain frames.

It's not really that big a deal; TAB works incredibly well to switch to the next frame. Using hotkey tricks like TAB -> CTRL+V -> TAB -> CTRL+V works very well when you're just pasting empty frames. Heck just using TAB in general helps with animation and saving time when setting it. However, doing things manually ensures the most accurate result.

Really I think what would be much more intuitive would be a "Click System" to setting ExAnimation Frames. For instance, you click a button that says "Easy Animation" or something, and every click you make in the 8x8 window will set that frame. So if you click 0x800 four times, then the ExAnimation window will write 800|800|800|800 until you finish.
Originally posted by Skewer
Really I think what would be much more intuitive would be a "Click System" to setting ExAnimation Frames. For instance, you click a button that says "Easy Animation" or something, and every click you make in the 8x8 window will set that frame. So if you click 0x800 four times, then the ExAnimation window will write 800|800|800|800 until you finish.


I suppose it'd be alright if it's on a button that can toggle the mode on/off like that so it won't interfere with things when you don't want it to.