Language…
14 users online:  Ahrion, anonimzwx, Batata Douce,  BeeKaay, crocodileman94, DasFueller, Foxy_9000_, Fozymandias, Hammerer, Maw, monkey03297, playagmes169, schema_tuna, sinseiga - Guests: 254 - Bots: 321
Users: 64,795 (2,376 active)
Latest user: mathew

Blockreator - Make blocks without knowing ASM

This is a project that I've been working on for a while. I had originally planned to release it at the previous C3, but I couldn't find the time to finish it then. So I've finished it now instead.



This program will allow users to create their own simple blocks (and even some complex ones) without needing to know a single bit of ASM. I made this to hopefully reduce the huge number of "If the player is small and has 5 coins and is moving fast and a blue p-switch is active then act solid" blocks, both to reduce clutter in the blocks section, and so that new users who just want a block like that won't need to ask someone else to do it.

I should probably note that the program is still in a beta (albeit a late one, if only because I haven't yet tested every single action) so if anyone spots any glaring flaws, please speak up!

Download here.
Looks absolutely amazing. Excellent work!

Celarix | smlimitless@github | Avatar by Uhrix
Whoah, this looks n0ice. Never expected an actual block creator to be made (nice name btw).

Just need one for sprites
Originally posted by Kipernal
*Lifechanging image*

Oh no, now I won't need to create my own blocks!

But seriously, wow, this will be very useful. Heck, we can just tell the new users to use this for simple blocks, right? Actually yes you said that.
semi-off-topic:
Why is it called Blockreator? I mean, I guess it's supposed to be pronounced block-creator, but it makes it look like you need to say block-reator. Or was that intentional?
Oh wow, this is amazing. I had a idea like this, but in that style is much better.

There are some issues though. Some windows show the X,Y position of a mouse in window title o.O, then generating a larger code a scroll bar is missing are some examples.

Also here a few suggestions:
- Store/add/subtract a value to RAM address(+X/Y if indexed is checked).
- Goto (sub)routine.
- Kill sprite (that touched).

Anyway, great work! This will really help people making custom blocks :D
You should try creating a version for sprites too.
GitHub - Twitter - YouTube - SnesLab Discord
Realy good, but needs Copy/Paste and Spawn Sprite functions.
Let's milk Sunny Milk. Then she'll have enough money to fund Sunny Milk Real Estate.
Everypony's digging with a shovel
Hey, this is something I was planning to create but never got around to it. Anyway, I tried out your version for a bit and would like to make some suggestions if you haven't planned these already:

- Allow events to be merged.
- You might want to add tooltips or a status strip to explain what certain things do.
- Add scrollbars to the generated code window.
- Use $94-$98 for the player X/Y position.
- Perhaps make things even easier to use? For example, rather than setting values for things like the P-Switch timer why not work with seconds? I think newbies would prefer something like that.
- Sort the actions into alphabetical order.
- Add more things like display a message, of course.
- You might want to check this out to see a general idea of what type of blocks people want I guess.

Bugs:
- "If the player's coin count" only adds a BNE, not the label number.

Apart from the name I think it's a really well-made tool. Would be neat to see something like this for sprites as well.
Wow, this is cool! I just hope we don't see a flood of mediocre blocks in the blocks section because of this.
OMG!!

This is epic win!!
You should do the same with sprites!!

Good work!!
Where's the "don't submit blocks that can easily be made with Blockreator" Block submission guideline?
Is it going to be there once this tool leaves beta?
Your layout has been removed.
Holy CRAP, this is AMAZING! Kipernal you freaking ROCK!
LINKS Twitter | YouTube | SoundCloud | Fortaleza Reznor
to hear birds and see none.
#smw{._.}
Later.
Thank you for the comments, everyone!

Originally posted by Iceguy
- Allow events to be merged.


They can be already; just use the "Go to another event" or "Go straight to next event" actions.

Originally posted by Iceguy
- You might want to add tooltips or a status strip to explain what certain things do.


Most of it is already in the readme, but yeah, putting explanations in the program itself couldn't hurt.

Originally posted by Iceguy
- Add scrollbars to the generated code window.


Originally posted by Vitor Vilela
generating a larger code a scroll bar is missing are some examples.


Will do.

Originally posted by Iceguy
- Use $94-$98 for the player X/Y position.


Any particular reason? I always thought that, unless you're actually moving the player, that $D1-$D4 were the best to use.

Originally posted by Iceguy
- Perhaps make things even easier to use? For example, rather than setting values for things like the P-Switch timer why not work with seconds? I think newbies would prefer something like that.


That's a good idea. I'll probably implement it for actions like that.

Originally posted by Iceguy
- Sort the actions into alphabetical order.


I'm not sure that would help much, though, seeing as there's no more relevance when sorted alphabetically than when sorted categorically. As in, if they were sorted alphabetically, the list would look like a long string of "If the player's ..." followed by a long list of "Set the player's ...", and you'd still have to look around for the action you want. That's why the search bar is there.

I'm not saying "no", though. If people generally do think this is a good idea, I'll add it.

Originally posted by Iceguy
- Add more things like display a message, of course.


Alright.

Originally posted by Iceguy
- You might want to check this out to see a general idea of what type of blocks people want I guess.


Most of the stuff there seems to be covered.

Originally posted by Iceguy
- "If the player's coin count" only adds a BNE, not the label number.


Fixed, thank you.

Originally posted by Vitor Vilela
There are some issues though. Some windows show the X,Y position of a mouse in window title o.O


Oh, I accidentally left that in. I was using to debug the edit window, which puts its controls in different locations depending on the properties of the action it's editing.

Originally posted by Vitor Vilela
Also here a few suggestions:
- Store/add/subtract a value to RAM address(+X/Y if indexed is checked).


I'll probably add this, though it will require a bit of reworking. Right now 90% of the action editing code expects an action to only have one variable.

Originally posted by Vitor Vilela
- Goto (sub)routine.


Good idea. I'm not sure why I didn't think of that one.

Originally posted by Vitor Vilela
- Kill sprite (that touched).


(see previous comment)

Originally posted by Wiimeiser
Realy good, but needs Copy/Paste and Spawn Sprite functions.


Copy/paste, sure, why not. As for sprite spawning, if you mean like what P-switches and shells do, then I'll definitely look into it.

Originally posted by Mini_Coin
Why is it called Blockreator? I mean, I guess it's supposed to be pronounced block-creator, but it makes it look like you need to say block-reator. Or was that intentional?


It was intentional. I wanted to have the name be an awful pun, and this was the best (worst?) one I could come up with.

Originally posted by leod
Where's the "don't submit blocks that can easily be made with Blockreator" Block submission guideline?
Is it going to be there once this tool leaves beta?


That's up to the block moderators and whether nor not they deem this program to be easy enough to use to justify removing those blocks.

Quote
General stuff about a sprite creator


This is a bit more difficult to answer. The thing about sprites is that they are much more "specific" than blocks. It's kind of difficult to explain, but blocks' code can get away with this kind of simplified "each action can equate to a single block of ASM", sprites much less so since they are much more dynamic. They would need more complexity than this simple system could offer. It's not out of the question, but the problem is that building a sprite that does much more than a goomba, even with a GUI like this, would still be a rather complicated, decidedly non-newbie friendly affair.

So all that being said...maybe. #ab{;)}
I should get a new layout.

Probably won't, though.
I like so much the idea! That can help a lot of users, and me too, thanks for creating the awesome tool! #ab{:LOL:}

I've thought of another possible feature(2 to be exact):
How about as environment actions, you include a sort of change GFX of the FG/BG to the ones you want(of course it asks what ExGFX numbers should be)action and another one which is the exact same thing, except you change the palettes to the one you want(this one might be harder to do)action.
Ohter than this, I just hope this will get an SA-1 version, once this version is complete.
This tool is too awesome to leave unfinished.
Originally posted by Ripperon-X
I've thought of another possible feature(2 to be exact):
How about as environment actions, you include a sort of change GFX of the FG/BG to the ones you want(of course it asks what ExGFX numbers should be) and another one which is the exact same thing, except you change the palettes to the one you want(this one might be harder to do).
Ohter than this, I just hope this will get an SA-1 version, once this version is complete.

WTF?
@Mr. Knoxville: Off-topic: Wasn't that clear?
On-Topic: Also, when you press Generate code and the window appears, shouldn't that window have an option to save the .asm file with the code anywhere we want? That would be cool.