snesrev / smw

Smw
https://discord.gg/AJJbJAzNNJ
Other
406 stars 38 forks source link

Lunar Magic Support #35

Open TCMOREIRA opened 9 months ago

TCMOREIRA commented 9 months ago

What feature do you want to get added? And how it will work?

I'm ecstatic about this port!

I want to know if there could be compatibility with Lunar Magic, such that we could use it as the level editor. Or at least perhaps a version of Lunar Magic that's targeted for this specific PC Port version.

I have a 16 year old Romhack that I'd love to be able to easily port over to the PC Version. However it used a lot of custom graphics and behaviors. For example one of the early levels was a water level with new enemies, a screen waving BG effect, custom sprites, custom BG and FG graphics, etc.

I'd love to be able to implement new features through scripting on the PC version and have those be instantly picked up by Lunar Magic (as if using any modern game engine).

It's been ages since I last engaged with SMW modding, so forgive me if things have changed drastically in the last 10+ years.

What do you think?

Jrmewam commented 9 months ago

I don'tknow if this is relevant, but I managed to build a modded SMW using -f with the restool.py step python restool.py --extract-from-rom -f

TCMOREIRA commented 9 months ago

That's awesome! Being able to build modded SMW roms is half the battle! Can you tell me if it had custom graphics and custom ASM behaviors?

The other half of the battle would be to be able to inject custom C code (or preferably Python/Cython) into the ROM and be able to somehow have that reflected on the editor. For the addition of custom behaviors and perhaps even new features, or the removal of the game's old limitations, etc. As I sincerely would much rather use a regular programming language to do that than SNES Assembly.

I don't understand this repo's code, but I do know it has a "lm.c" file which seems to describe some Lunar Magic hooks in it, or something like that. If anyone could explain what that does It'd be wonderful.

Jrmewam commented 9 months ago

To my knowledge, the only difference between original and my custom rom is the language (french).

I really don't know anything about coding, but you could say I'm good at following directions ^^ I found the -f thing by reading the restool.py code, and just hours after that I found your post!

Had a real struggle to compile zelda3 and smw because of conflicts or bad instructions on the wiki/repo, but the discord helpers saved me!

So, best I can say is go and try!

Jrmewam commented 9 months ago

I guess the feature is still highly experimental. I'm unable to use the 2 players mode with my french rom.

Also, I tried a korean rom with a patch I applied myself on the original, it runs well in snes9x but crashes when built with this repo

TCMOREIRA commented 9 months ago

To my knowledge, the only difference between original and my custom rom is the language (french).

I really don't know anything about coding, but you could say I'm good at following directions ^^ I found the -f thing by reading the restool.py code, and just hours after that I found your post!

Had a real struggle to compile zelda3 and smw because of conflicts or bad instructions on the wiki/repo, but the discord helpers saved me!

So, best I can say is go and try!

I will do that (eventually).

Yeah, if the only difference is the language then that's much simpler than a ROM with custom graphics or custom code. It's really cool that it worked, but not as impressive.

TCMOREIRA commented 9 months ago

I guess the feature is still highly experimental. I'm unable to use the 2 players mode with my french rom.

Also, I tried a korean rom with a patch I applied myself on the original, it runs well in snes9x but crashes when built with this repo

Yeah that's more in line with what I'd expect at the moment. It's still early days for this port.

Jrmewam commented 9 months ago

After further inverstigations : restool.py requires a rom modified by Lunar Magic 3.33. Both my roms (french / korean) were modified by a different version, and I needed to edit them with LM3.33 to pass this step. A rom not edited by LM3.33 runs well on snes9x but wont build on this repo Once edited, the problems I face in this repo are also found in snes9x : no multiplayer, crash at start.

So question is : does the issue come from this repo or does it come from my action with Lunar Magic? As I said, I just follow instructions without really understanding what I do

TCMOREIRA commented 9 months ago

After further inverstigations : restool.py requires a rom modified by Lunar Magic 3.33. Both my roms (french / korean) were modified by a different version, and I needed to edit them with LM3.33 to pass this step. A rom not edited by LM3.33 runs well on snes9x but wont build on this repo Once edited, the problems I face in this repo are also found in snes9x : no multiplayer, crash at start.

So question is : does the issue come from this repo or does it come from my action with Lunar Magic? As I said, I just follow instructions without really understanding what I do

Awesome experiment!