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

Lunar Magic suggestions and discussion (LM v2.52)

Link Thread Closed
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 143
  • 144
  • 145
Originally posted by Ayosuf
While 2*4*0x18*0xF is indeed 0xB40 bytes, you've forgotten about frames for trigger animations. If you open up JW's editor, you'll notice it includes the trigger animations (8 of them) but does not include the extra 5/18 slots that SMW doesn't make use of, so you have 13+8=0x1B animations.

Assuming you want to go further and allow a full 0x18 animations and also only wish to include trigger states for the ones the game originally did, your table should really be 2*4*(0x18+8)*0xF=0xF00 bytes.

Whoops, I just did my math wrong. I did say "2 animation states", so I guess if every animation had one, that would be 0x1680 bytes.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Once again, CUSTOM OBJECT DISPLAY PLEASE. It doesn't even have to show the exact tiles for objects (that might be too complicated to code in), but even showing rectangles with the object number on them would be something. (Something like how Eggvine does it, only less tacky.) I'm making a level with custom objects in it right now, in fact, and pretty much the entire foreground looks like something the dog threw up. Just being able to show custom objects based on the object number, size, and which bits are used for what would be good enough for me. For instance, if I had custom object 12, the lowest 5 bits were used for width, the highest 3 bits were used for object type, and the height was always 3, I could insert custom object 12 with size value 91 (10010001), and I'd get a rectangle that was 3 tiles high, 17 tiles wide, and said "0012-4" or something (4 being the object type, since the highest 3 bits were 100). Of course, extended objects are another matter...it seems to me that since they never change size, it would be possible to show their tiles properly, perhaps in a format similar to that used for sprite display (except that tile offsets for objects must be a multiple of 0x10 pixels). I don't know what FuSoYa thinks about this whole thing, though.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Originally posted by imamelia
Once again, CUSTOM OBJECT DISPLAY PLEASE. It doesn't even have to show the exact tiles for objects (that might be too complicated to code in), but even showing rectangles with the object number on them would be something. (Something like how Eggvine does it, only less tacky.) I'm making a level with custom objects in it right now, in fact, and pretty much the entire foreground looks like something the dog threw up. Just being able to show custom objects based on the object number, size, and which bits are used for what would be good enough for me. For instance, if I had custom object 12, the lowest 5 bits were used for width, the highest 3 bits were used for object type, and the height was always 3, I could insert custom object 12 with size value 91 (10010001), and I'd get a rectangle that was 3 tiles high, 17 tiles wide, and said "0012-4" or something (4 being the object type, since the highest 3 bits were 100). Of course, extended objects are another matter...it seems to me that since they never change size, it would be possible to show their tiles properly, perhaps in a format similar to that used for sprite display (except that tile offsets for objects must be a multiple of 0x10 pixels). I don't know what FuSoYa thinks about this whole thing, though.


You are really annoying and you know why? First you should organize your text better for reading purposes

and more important... Who except YOU would use this? I don't even know what that is (and I'm sure not a lot of other people)

Could you atleast provide the usefulness of this? If you do, maybe more people would support that...
really screamin is such a "good" idea.

@TCMOREIRA Simply open Lunar Magic twice, it is so simplier :) (Because you can even control better if the sprites fits in your new level
Originally posted by Shog
and more important... Who except YOU would use this? I don't even know what that is (and I'm sure not a lot of other people)


With all due respect, if you don't even know what it is then who are you to judge its usefulness?
I should get a new layout.

Probably won't, though.
Shog, believe it or not, you're a lot of more annoying here with offending people how bad their ideas are. Usefulness is a subjective thing, and yes, imamelia's idea could be useful, even if not for the big masses. And on the top of that (as Kipernal said), if you don't even know, what is it, don't be a judge over it.

Seriously, if you have nothing more to add than offending others' ideas, please just stay quiet.
Originally posted by Shog
Who except YOU would use this?

Me, moron. What's annoying about suggesting an idea anyways?
Originally posted by Kipernal
Originally posted by Shog
and more important... Who except YOU would use this? I don't even know what that is (and I'm sure not a lot of other people)


With all due respect, if you don't even know what it is then who are you to judge its usefulness?


I don't judge about its usefulness, maybe I described it wrong; I meant why should I or other support it if we EVEN don't know what it do? Just for a moment imagine it would even cause little drawbacks, but nearly noone use this feature - why should it be implented than? Does this makes sense?

Or short: Maybe it's to specialized.

@Hadron: You got me wrong: What I meant is why should Fusoya do that (what could be complicated, he knows what he have to do but meh)if nearly noone uses that EXCEPT it is useful of course for everyone (An example what I mean? Additional Map16Pages are useful for everyone. This could be however only useful for some people.)

You said even "if not useful for big masses". But with this argument shouldn't we implent like everything? And offending? SCREAMING is offending, too.

@HuFlungDu Should I take you serious? Anyway, not the suggesting is annoying, rather the way. I mean Fusoya is not dumb, I'm pretty sure he noticed the idea prior. And screaming is annoying. But that wasn't my point anyway.

And again: I didn't say the idea stinks, rather the way it's gets into this thread. Fusoya should have noticed it. And of course that the "big masses" don't know what it does.
Originally posted by Shog
Should I take you serious?

I'm not going to take you "serious" unless you fix your grammar. I can barely read your posts.
Oh, and imamelia's idea makes sense to me. It is indeed not useful for everyone, but there's plenty of features in LM some of us never use (for example ROM locking and disabling the default animations).
<blm> zsnes users are the flatearthers of emulation
Originally posted by Alcaro

I'm not going to take you "serious" unless you fix your grammar. I can barely read your posts.


First: It was a response to the moron part
Second:

...

Sorry that I can't write english so well :< God damn. Really do you think everyone can write/speak english well? Holy Jesus.

Anyway, why can't someone provide why it is useful? I don't understand why no one tells "us"(us = me and others who wants to know what it exactly do), so we can either support it or not?

You know the whole discussion would be void if someone could provide
a)what it does or
b)examples why it's useful so that it should be in Lunar Magic

And could we drop off the hate here? It wasn't my itention to start things like "You moron" or similar.
Yes, dropping the hate would indeed be a good idea. Nobody is perfect, and I went a little overboard.
But I can't figure out which part you're not understanding... his description is perfectly clear to me.
<blm> zsnes users are the flatearthers of emulation
Well, andy_k_250 used to have something in his custom title that said "ObjecTool just saved me 734 bytes in a level!" (or however many it was; I can't remember exactly). So, yeah, custom objects can drastically reduce level data size, for one. For another...how many people have asked questions like "how can I make this custom coin (Yoshi coin, 1-Up, shiny of indeterminate value, etc.) not reappear when collected?" My answer, every time, is to use custom objects. And in fact, most extended objects are quite easy to make; one consisting of only a single tile, for example, should be within the abilities of anyone who knows any ASM at all.

And, bit of linguistic info: In German, unlike in English, adjectives and adverbs usually have the same form. The word that would translate to "serious" doesn't take an extra ending in its adverbial form, whereas we add the -ly suffix to make it "seriously". I must say, though, I've often thought it odd that all the Swedish people here seem to have perfect English, even better than some people from countries like the U.S. and U.K.

Also, I couldn't really find a good place to split that paragraph up. I'm sure part of the reason my text looks so cramped when I type more than a few lines is the lack of a layout. And I wasn't thinking of the all-caps in that context as "screaming", but rather "being used for emphasis".

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Originally posted by imamelia


Also, I couldn't really find a good place to split that paragraph up. I'm sure part of the reason my text looks so cramped when I type more than a few lines is the lack of a layout. And I wasn't thinking of the all-caps in that context as "screaming", but rather "being used for emphasis".


First, sorry for that, I was annoyed because I always have the feeling whenever someone "screams"(yes I know you explained that it was used for emphasis) for something that should be changed/edited in some tool/let's Play/Random the author only thinks...


That would be bad considering Fusoya is like the only one who can change Lunar Magic ;) Although, I started a stupid discussion...sigh! Nevermind.

Originally posted by imamelia

Well, andy_k_250 used to have something in his custom title that said "ObjecTool just saved me 734 bytes in a level!" (or however many it was; I can't remember exactly). So, yeah, custom objects can drastically reduce level data size, for one. For another...how many people have asked questions like "how can I make this custom coin (Yoshi coin, 1-Up, shiny of indeterminate value, etc.) not reappear when collected?" My answer, every time, is to use custom objects. And in fact, most extended objects are quite easy to make; one consisting of only a single tile, for example, should be within the abilities of anyone who knows any ASM at all.


To sum it up: Reduces level size (that's pretty cool) and it let's people do stuff like 3-UP Moon
... Yes please! This would be so cool: You can use it for special teleport blocks, coins, nifty level design to confuse the player, for special puzzles, for tricking the player so that he thinks the block is a enemy he killed(should be possible with Exanimation^^)... Yeah I would "support" that!

Originally posted by imamelia

And, bit of linguistic info: In German, unlike in English, adjectives and adverbs usually have the same form.[..]


Thanks for the information but my problem is that I simply have a speech defect, I can't learn other languages that well (For example, Croatian is a other language I can't speak/write well despite being my father's native language, so yeah...)
[/offtopic]

In a nutshell: I support this idea. And it seems that you, imamelia, knows how Fusoya could implent that in LM :)
Originally posted by imamelia
Whoops, I just did my math wrong. I did say "2 animation states", so I guess if every animation had one, that would be 0x1680 bytes.


If you want to go that far, yes. Then I suppose you could just use the upper bit of the triggers array to indicate if it's really a triggered animation or not (bit on=no trigger). I guess I could implement support for displaying the animations in LM if you want to make a program and hack for it.

Originally posted by imamelia
For another...how many people have asked questions like "how can I make this custom coin (Yoshi coin, 1-Up, shiny of indeterminate value, etc.) not reappear when collected?" My answer, every time, is to use custom objects.


Already possible through conditional Direct Map16, which shows up correctly in LM. Which means the only practical advantage of custom objects is to save some space. Which is nice, but I'm not yet convinced that many will bother with it just for that. So I'm still waiting to see what people do with it, as I've said to you before.

If LM were to support it though, I'd lean towards doing it through a user supplied DLL where LM would pass the object data off to it and the DLL could place the tiles for it.

Originally posted by TCMOREIRA
You could copy and paste blocks/sprites from an level to another.


You already can. Check the edit menu.
Originally posted by aYoSuF
You already can. Check the edit menu.


Oh my goodness, I've been using LM for so long now, and I never even had a clue about this feature's existence. My mind is so = blown right now. I think I love you! This makes me wonder what other interesting features I have overlooked...
Originally posted by Vic Rattlehead
Originally posted by aYoSuF
You already can. Check the edit menu.


Oh my goodness, I've been using LM for so long now, and I never even had a clue about this feature's existence. My mind is so = blown right now. I think I love you! This makes me wonder what other interesting features I have overlooked...

You should get around to reading the Lunar Magic help file sometime. I learned some small tricks that has saved me a bit of time and thinking...
aran - Graces of Heaven
Originally posted by Ayosuf
If you want to go that far, yes. Then I suppose you could just use the upper bit of the triggers array to indicate if it's really a triggered animation or not (bit on=no trigger). I guess I could implement support for displaying the animations in LM if you want to make a program and hack for it.

Sure. I'll get working on the ASM part of it as soon as I can. As far as tools go, though, if there's a GUI involved, that would be a job for somebody else.

Originally posted by Ayosuf
Already possible through conditional Direct Map16, which shows up correctly in LM. Which means the only practical advantage of custom objects is to save some space. Which is nice, but I'm not yet convinced that many will bother with it just for that. So I'm still waiting to see what people do with it, as I've said to you before.

True. Very true, although most people probably don't know about that feature. The problem is, conditional Direct Map16 is restricted to very specific parameters; all the tiles have to be on the same page, there can be only two different states and the tiles for the second one must be exactly 0x100 tiles away, the tile arrangement must be a repeating pattern of adjacent tiles, etc...not to mention you have to remember to mark every instance of an object as conditional and make sure to use the correct flag. With custom objects, the sky is the limit; you can make objects stretch across the entire level, mix and match tiles from different pages, make any pattern repeat across any period, and do just about anything you want (including use more than 128 flags, if anyone is crazy enough to need more than that), and once you've inserted the object into the level, you're good to go. Conditional Map16 can certainly be nice for not-so-advanced hackers who just want a few non-reappearing custom coins or something, but really, if you compare and contrast the two, proper display in Lunar Magic is about the only thing conditional Direct Map16 has over custom objects.

Originally posted by Ayosuf
If LM were to support it though, I'd lean towards doing it through a user supplied DLL where LM would pass the object data off to it and the DLL could place the tiles for it.

Wait, what? You're talking something like, Lunar Magic passes in the 5 bytes of data for an object to the .dll, the .dll uses that data combined with data from a user-created external file to determine what the object's dimensions should be (for a normal one) or which tiles should be placed where (for an extended one) and returns the result, and Lunar Magic uses the returned data to display Map16 tiles or nondescript rectangle graphics? That could work, if someone was willing to make the .dll.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Sounds correct, but I think it would also supply 28 kilobytes of data containing the objects it already rendered. That method sounds easier to me.
There are a few users here, for example me and SWR, who are fully capable of making DLL files. I doubt it'd take long until we've got some simple object scripting language if that feature is implemented.
<blm> zsnes users are the flatearthers of emulation
Originally posted by imamelia
Sure. I'll get working on the ASM part of it as soon as I can. As far as tools go, though, if there's a GUI involved, that would be a job for somebody else.


Alright, when both are available let me know.


Originally posted by imamelia
all the tiles have to be on the same page


You can split the object into 2 or 3. I rather doubt there are that many single objects that require 0x100s of tiles.

Originally posted by imamelia
there can be only two different states


That's a valid point at least. Although you can layer them over top of one another to create the appearance of multiple states. But admittedly that can be a burden if you need more than a few.

Originally posted by imamelia
the tiles for the second one must be exactly 0x100 tiles away


Not exactly hard to plan for.

Originally posted by imamelia
the tile arrangement must be a repeating pattern of adjacent tiles


More of a space and organizational requirement.

Originally posted by imamelia
not to mention you have to remember to mark every instance of an object as conditional and make sure to use the correct flag.


As opposed to custom objects, where you have to chose the right object and remember to input the correct parameters? Sure you could potentially put them in a list like with custom sprites, but you could do the same with DM16 objects too. Think you're grasping at straws here... :/

Originally posted by imamelia
you can make objects stretch across the entire level


The difference between using 1 custom object and 4 DM16 objects to stretch over the whole level is pretty insignificant.

Originally posted by imamelia
mix and match tiles from different pages


Or you could just keep them organized...

Originally posted by imamelia
make any pattern repeat across any period


Space/organization again.

Originally posted by imamelia
and do just about anything you want (including use more than 128 flags, if anyone is crazy enough to need more than that)


If you need more flags, it's pretty easy to swap the 128 flags in and out to make them level specific if needed. Would only be limiting if you have something truly huge planned.

Originally posted by imamelia
Conditional Map16 can certainly be nice for not-so-advanced hackers who just want a few non-reappearing custom coins or something


Which brings us back to the main issue. Whenever discussion of custom objects comes up it seems that's all people are looking to do with it anyway (except for the few that mistakenly think a custom object means being able to change it's appearance on screen after the level data has already been parsed). If there are people looking to do more interesting things with them, I'm afraid I haven't seen much sign of it yet.



Originally posted by imamelia
Wait, what? You're talking something like, Lunar Magic passes in the 5 bytes of data for an object to the .dll, the .dll uses that data combined with data from a user-created external file to determine what the object's dimensions should be (for a normal one) or which tiles should be placed where (for an extended one) and returns the result, and Lunar Magic uses the returned data to display Map16 tiles or nondescript rectangle graphics? That could work, if someone was willing to make the .dll.


Close. More like LM passes off the 5 byte object to the dll along with the current screen offset, gives it a handle to a LM function it can call to place a tile into the level, and that's it... the dll can go ahead and place the Map16 tile numbers into the level on its own. It's pretty much the same thing you do when coding the actual object for the game. The advantage of course is full control of tile placement for the programmer with no worrying about trying to fit the more unusual objects into some kind of format (though you still could for typical objects).
Space and organization concerns are pretty valid, I think. Map16 pages take up non-trivial amounts of space, and the map16 editor isn't the most convenient thing to work with (though didn't you mention you're replacing it somehow?).

I use conditional map16 for my collectible coins and it works well enough. Problem is I've lost over a full map16 page to said coins since I sometimes need to change their graphics based on the level. Each new coin with unique graphical settings costs me 2 tiles (one for "normal" graphics and one identical to a normal coin on the next page). Close to trivial for mere coins, yes, but if someone were to do something more ambitious than I...


Then again all this is about is displaying properly in LM, right? I don't see huge value in support for that so long as custom objects don't screw up LM's display.
Originally posted by Kaijyuu
Space and organization concerns are pretty valid, I think. Map16 pages take up non-trivial amounts of space, and the map16 editor isn't the most convenient thing to work with (though didn't you mention you're replacing it somehow?).

Quite true. Actually being able to size objects properly and using them compared to the alternative...well, how would you like to build a vanilla level using only Direct Map16 tiles? It probably wouldn't be much fun.

Originally posted by Kaijyuu
I use conditional map16 for my collectible coins and it works well enough. Problem is I've lost over a full map16 page to said coins since I sometimes need to change their graphics based on the level. Each new coin with unique graphical settings costs me 2 tiles (one for "normal" graphics and one identical to a normal coin on the next page). Close to trivial for mere coins, yes, but if someone were to do something more ambitious than I...

Wait...over a full Map16 page? How many different coins do you have?! Can't you just use ExGFX for GFX33 or overwrite the original animation with ExAnimation on a per-level basis?

Originally posted by Kaijyuu
Then again all this is about is displaying properly in LM, right? I don't see huge value in support for that so long as custom objects don't screw up LM's display.

The problem isn't just that they don't show up properly...the problem is that they don't show up properly, but they all look exactly the same (normal objects, at least) and all look like crap. Just having standardized graphics for them and being able to tell one object from another would be something.

In other news, I have an idea how I'd like to do the alternate animation format. Some of the data that Lunar Magic could use (the patch itself would also use most of it) might look like this:

Code
org $05B96B
; $05B96B - activation flag
db $42
; $05B96C-$05B98B - VRAM addresses to affect
dw $0400,$0400,$0400		; animations 00-02
dw $0400,$0400,$0400		; animations 03-05
dw $0400,$0400,$0400		; animations 06-08
dw $0400,$0400,$0400		; animations 09-0B
dw $0400,$0400,$0400		; animations 0C-0E
dw $0400,$0400,$0400		; animations 0F-11
dw $0400,$0400,$0400		; animations 12-14
dw $0400,$0400,$0400		; animations 15-17
; $05B98C-$05B9D3 - RAM address used for the status of each animation (if the bank byte is FF, then it never changes)
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 00-02
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 03-05
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 06-08
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 09-0B
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 0C-0E
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 0F-11
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 12-14
dl $FFFFFF,$FFFFFF,$FFFFFF	; animations 15-17
; $05B9D4-$05BBA5 - empty (may be used in the future?
padbyte $FF : pad $05BBA6


I still need to find someone who could make a tool for that, though. It wouldn't be hard to edit them manually (and I'd probably do so anyway), but a lot of people might find it tedious. I also still need to find someone to make the aforementioned .dll for the custom object thing; I don't even know C++ myself.

Also, something completely different but equally important: What about adding support for Layer 3 editing (and display, obviously)? I don't know what FuSoYa thinks, but I see literally no disadvantages to being able to do this in Lunar Magic compared to the nightmarish methods we use now (editing the existing images in Terra Stripe, uploading custom stripe images with Roy's stripe image uploader, or uploading tilemaps directly to VRAM with edit1754's generic VRAM uploader). And Layer 3 backgrounds, I think, would be useful to a lot more people than custom objects would; probably the only reason we see so few of them in hacks is because they're such a pain in the butt to use. Then there's all the other stuff you can do with Layer 3, such as make tides, rising lava, or dark rooms with spotlights like in Yoshi's Island. Even support for the ExGFX Revolution patch (either display only or display and editing) would be nice for some people, although that's more of a niche thing.

Edit: In fact, I'm looking into SMW's Layer 3-related stuff right now. $009FB8 is the big one, the routine that pretty much handles everything (at least, it does in levels, from what I can see). I'm working on a patch for custom Layer 3 images and behaviors; it will use values 04-FF of $1BE3 for this kind of stuff. I also tried to make a patch that uploaded custom stripe images by using uneven values of $12, but that didn't work all that well because of IRQ. (It would be pretty much okay if it weren't for that.)

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 143
  • 144
  • 145
Link Thread Closed