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
(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.
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.