LoginLogin
Nintendo shutting down 3DS + Wii U online services, see our post

SmileBASIC 4 Discussion「プチコン4」

Root / General / [.]

📌
MZ952Created:
Wow. SB4 is really awesome. Does anyone have translations for the tutorials?
They actually cover a lot less than you'd think. These tutorials are intended for complete beginners to programming, so if you're already familiar with SB3, they won't be helpful to you. Actually translating all of them would take too long for me, since my Japanese skills are pretty limited, but here's the basic gist of each one: 01: Introducing SmileBASIC and the characters 02: How to open the software keyboard and use the right stick as a mouse 03: How to use Direct mode, using commands like PRINT, VIBRATE, and BEEP 04: How to write math expressions, recall the previous command with Up, use auto-completion, and ? shorthand for PRINT 05: How to switch to Edit mode and back, write a multi-line program, and run it, as well as loading and saving programs 06: How to use SPSET and SPOFS, and how to open and use help for a command 07: Explaining what X and Y coordinates are, how they use pixel units, and using a Z coordinate with SPOFS 08: How to read error messages, jumping to an error, and learning to debug programs 09: Learning what variables are, and how to use them 10: How to use SPROT, and write a simple game loop using LOOP...ENDLOOP and VSYNC 11: How to use : to have multiple statements on one line, how to use single-line IF statements, comparison operators, and BREAK 12: How to use BUTTON, the difference between functions and instructions, and to check the home page if you want to learn more about SmileBASIC That's it. The rest is stuff about how to use the menus, and the basics of using a USB keyboard and mouse for people who have never used a computer before (which is actually not uncommon in Japan, where phones have always been fairly advanced even before the rise of iPhone and Android). ACLS, XSCREEN, CLS, multi-line IF statements, ELSEIF, ELSE, FOR loops, WHILE loops, labels, GOTO/GOSUB, DEF, arrays, string variables, indexing, defining constants, defining enums, text screens, layers, MML, and so on are not covered at all.
That sucks. Really wish they covered more for people returning from SB3. Your resource is really helpful, though. Thanks!

Does anyone know how to display games on the top menu / upload them to the play menu?

Long press A on the project you want to favorite, and when the sidebar appears on the right, choose the topmost option. You should get a dialog. Just press the right option and you’re good.

What happened to slots in SB4?

Is there a way to upload a project to the play menu?

Is there something’s simple I can use to fill the background with tiles? I understand why they didn’t want to make background tiles separate from sprites anymore but the loss of BGFILL makes tiling a floor a real task.
You're a bit mixed up, I think. BGs were merged into text screens, and the graphics screen was merged into sprites, but text screens and sprites are still two separate things. Most BG functions now have a T equivalent, so you can use TFILL now.

What happened to slots in SB4?
They still exist. You can switch slots in the Ctrl tab of the software keyboard, or by pressing Ctrl+1 through Ctrl+4 on a USB keyboard.

TFILL lol
TFILL is for text though. I need to fill the screen with a sprite.

Is there a way to upload a project to the play menu?
Uploading a project to the servers is done via the FILEMENU. Press R to switch to the Server tab, and you'll get a list of options related to uploading and public keys.

TFILL lol
TFILL is for text though. I need to fill the screen with a sprite.
You were talking about background tiles earlier, which are text now (characters &HE800 to &HF7FF). Sprites and tiles are still two separate things; see my earlier post.

Is there a way to upload a project to the play menu?
Uploading a project to the servers is done via the FILEMENU. Press R to switch to the Server tab, and you'll get a list of options related to uploading and public keys.
So, it's automatically available for download in the play menu after it's published?

Is there a way to upload a project to the play menu?
Uploading a project to the servers is done via the FILEMENU. Press R to switch to the Server tab, and you'll get a list of options related to uploading and public keys.
So, it's automatically available for download in the play menu after it's published?
I believe so, assuming it's a full project rather than a file, and you've gotten a public key for it.

Is there something’s simple I can use to fill the background with tiles? I understand why they didn’t want to make background tiles separate from sprites anymore but the loss of BGFILL makes tiling a floor a real task.
You're a bit mixed up, I think. BGs were merged into text screens, and the graphics screen was merged into sprites, but text screens and sprites are still two separate things. Most BG functions now have a T equivalent, so you can use TFILL now.
I’m still unsure why I would ever need to fill a portion of the screen with one text character over and over. What am I missing here about TFILL?

I’m still unsure why I would ever need to fill a portion of the screen with one text character over and over. What am I missing here about TFILL?
Because BG tiles are text now. You'd use it for exactly the same reason that you'd use BGFILL. Try running this program, and maybe it'll help you understand.
'Set up the screen
ACLS
XSCREEN 1280,720
TSCREEN 16 'Use 16x16 font

'BG tiles are mapped to this part of the font
FOR I=&HE800 TO &HF7FF

 'Print the character with the given index
 'For example, CHR$(65) is "A"
 PRINT CHR$(I);

 'Print a line break when we get to the
 'end of a 64-tile line
 IF I MOD 64==63 THEN PRINT

NEXT

Thanks Niconii, that helped a lot. Very different from what I expected but I was able to tile my floor.

What was SBLIB about? I can’t seem to find it. Same for ENOCODE. Also, are there any consequences for expanding the project space to 512MB?

What was SBLIB about? I can’t seem to find it. Same for ENOCODE.
SBLIB is located at #TOOL/SBLIB.PRG. I think ENOCODE is just something they were working on to release at some later time via public key.
Also, are there any consequences for expanding the project space to 512MB?
The only consequence is that you can't shrink it once you expand it.

What was SBLIB about? I can’t seem to find it. Same for ENOCODE.
SBLIB is located at #TOOL/SBLIB.PRG. I think ENOCODE is just something they were working on to release at some later time via public key.
Also, are there any consequences for expanding the project space to 512MB?
The only consequence is that you can't shrink it once you expand it.
Got it, thanks.

Okay, so I’ve been using SB4 for a day now and I really like it. However, I don’t like some of the changes they made. For one, the BUTTON command seems unnecessarily complicated now, in SB3 it was a lot simpler. The defining of controllers is also complicated. The new changes to graphics, BG, and text also even a bit complicated, but I appreciate some of them. I just feel like some of the changes defeat the purpose of SmileBASIC being a simpler language than most, but I get that they have to make changes and add more functionality in order to give the language more power and flexibility. I kind of wish they added an SB3 mode though, for compatibility with older programs. I know it would be possible because they’ve already ported SB3 to Wii U.

Okay, so I’ve been using SB4 for a day now and I really like it. However, I don’t like some of the changes they made. For one, the BUTTON command seems unnecessarily complicated now, in SB3 it was a lot simpler. The defining of controllers is also complicated.
I’d say that button() IS simpler now - instead of using bitmasking or somewhat-ineffective direct conparisons to numbers/constants, you can just specify exactly which button you are checking for and on what controller. For newer programmers confused by why AND is used to check a button, this is arguably better. Compare:
BUTTON() AND 16 'v2
BUTTON() AND #A 'v3
BUTTON(0, #A) 'v4
For a beginner, saying “button A on controller 0” is probably easier to understand. EDIT: mobile ‘ messed up EDIT: mobile sucks