Language…
11 users online: Cristian Cardoso, dotCoockie, DPBOX, Golden Yoshi, Lsh0426, masl, Rauf, Shomi, signature_steve, Sweetdude,  Telinc1 - Guests: 251 - Bots: 411
Users: 64,795 (2,377 active)
Latest user: mathew

Progress report on Mockup - A SMW level editor

Since I don't have time right now, I will just post here, that there
was some progress and will add details later this day.

Edit: Here is the current build of Mockup:


As you can see, it is still not quite working as expected. Since last
C3, I mainly focused on my assembler "nuts", which is now in a
somewhat usable state. It can assemble all of SMW (correctly!) in
roughly 160ms in debug and 80ms in release build. By caching the AST
(abstract syntax tree) this gets done to 28ms / 12ms, which is enough
for now. As explained in previous C3's, I need the performance to
comfortly work with a disassembly, instead of working with the ROM
directly, as it is the case with Lunar Magic.

The assembler uses a multi-pass design similar to Asar to figure out
where to place labels. I thought about using interval arithmetic, but
that seemed to be to complicated, especially if I want to support
things like

Code
lda label | $012345


(stupid, but syntactically valid code, yes whitespace is a thing)

In contrast to asar, the number of passes is not fixed, in theory it
could run until it finds a fixed point/state, where no labels are
moving. This is not so useful right now, but one could think of
different passes one might want to add (opcode optimizations for
example).

Now I am about to add the first real editing capabilities to
Mockup. The gif above shows a failing attempt to insert an object. It
looks like it gets confused with the contents of another level. I will
focus in the next weeks on getting this this to work. The next thing
would be to fill in the platform layers for Windows and WebAssembly. I
think this would be a good time to release a first WIP build and start
a thread in the Tool's section.

Then I would start to make the editor actually nice to work with and I
expect more GUI work to be done this year. While the foundational work
until now does not really show in the screenshots, the next months
should have more visible changes.


Obligatory source code link:
Link

I am still in the middle of adding editing capabilities, so the master
branch is not up to date with what I have on my hard drive (and what
is shown at the top). If you want, I can push my recent changes to
github, before I finished that. Just let me know.

Merry C3ristmas
Your layout has been removed.
Mockup is back! I can't wait to see more of this tool!
The Hacking of PuyoPuyo. Come join the fun, friends. 『いけいけ団長、頑張れ頑張れ団長!』
Help us raise funds for the Armed Forces of Ukraine. #ДопомагаємоРазом / #HelpTogether
“Even if you personally are so dissatisfied with life that you want the world to end, surely the cruel reality is that it will continue on, unchanging. All the better for someone perfectly content, like me.”
Aya Shameimaru, Touhou Suzunaan ~ Forbidden Scrollery
Oh, I completely missed this. Nice to get another progress update on this, and glad to hear that you're still working on this and haven't given up on it. This might already be the furthest and attempted Lunar Magic alternative has ever gotten so far. Nice work! #smw{:TUP:}
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
I must say, I'm really looking forward to when you have a stable build of this ready! I've shifted towards working with disassembles lately for my hacks, so having an editor that makes use of them would be very useful. What sort of features are you planning on adding?
My Hacks:
Mario's Strange Quest V1.6
Yoshi's Strange Quest V1.3 / V1.3.1 Beta 4.6
Mario & Yoshi's Strange Quests (2/10/2023 Build)

Other stuff:
My SMW/SMAS/SMAS+W disassembly
Yoshifanatic's Discord Server: A place for fans of my stuff and/or Yoshi to chat with others.
"Stable" built is probably a bit far of, but a buggy one is hopefully not so far away.

Using disassemblies solves some problems, and exposes others. How do we distribute them (this has legal and technical considerations), how do we work with them (for me, I would seperate code from data with incbin's and only manipulated data in binary blobs from the editor) and what format should they be in?

I would love to use better structured disassemblies, such as galaxyhax's or yours and not smw-irq, but this requires me to spend more time (working time and runtime) on those features of the assembler, which asar supports but I currently don't. The most severe example of a feature I currently only partially support is the way asar determines the length of operands. Therefore I currently can not use other diassemblies and stick with smw-irq. (I am not sure if I will handle operand lengths the same as asar in the end, if it is to hacky, I will consider using another approach).

Feature wise, I will try to make a very simple editor first, which allows you to place objects and sprites, change some level properties, manage screen exits and probably a whole lot of other things, which I do not think of at this time. This would be an editor for vanilla SMW. As I stated in a previous discussion a second goal is to make hacking the editor easy, so that if you need to edit or visualize some table, which would be hard ín binary format, then it should not be difficult to add a small window or something which allows you to do that. This should be also work with your own ASM data (think of a boss, which moves to certain points in the level. Having the possibility to hack in a small thing which allows to move the control points with the mouse would be really awesome, if it is not to complicated to add that).

I hope that from this route, new things will emerge, such as ExGFX, which start as small hacks to the editor and mature to be useful for everyone. But as usual, these things will take some time.
Your layout has been removed.
Originally posted by Horrowind
Feature wise, I will try to make a very simple editor first, which allows you to place objects and sprites, change some level properties, manage screen exits and probably a whole lot of other things, which I do not think of at this time. This would be an editor for vanilla SMW. As I stated in a previous discussion a second goal is to make hacking the editor easy, so that if you need to edit or visualize some table, which would be hard ín binary format, then it should not be difficult to add a small window or something which allows you to do that. This should be also work with your own ASM data (think of a boss, which moves to certain points in the level. Having the possibility to hack in a small thing which allows to move the control points with the mouse would be really awesome, if it is not to complicated to add that).


I'm assuming you're thinking of something like Unity, which easily lets you add features to the editor via scripts? That would actually be a really useful feature if that could be made to work with a reasonable amount of effort and flexibility. For example: when distributing my VWF patch, I could provide an editor script for it to have a handy little front-end for editing messages in the level editor itself. Similarly when someone created a new sprite tool, they could provide editor scripts for editing sprite data or something like that directly in the editor. Or if someone made a new AddMusic, they could make a script to add a preview button for the music in the editor. The possibilities are pretty much endless.
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!