Nintendo Switch Discussion
Release date for SB4 will be announced in the winter.
https://twitter.com/notohoho/status/1065588791878942720?s=21
Release date for SB4 will be announced in the winter. https://twitter.com/notohoho/status/1065588791878942720?s=21I wonder if they'll advertise more after
Release date for SB4 will be announced in the winter. https://twitter.com/notohoho/status/1065588791878942720?s=21Okey!
https://game.watch.impress.co.jp/docs/news/1154755.html
SB4 ended up postponed to Spring 2019, the same time frame for FUZE Switch.
But they're adding actual programming tutorial lessons! I love it.
And DUDE they're finally adding kanji conversion! Even though it can only convert to single kanji, unlike your average IME.


https://game.watch.impress.co.jp/docs/news/1154755.html SB4 ended up postponed to Spring 2019, the same time frame for FUZE Switch. But they're adding actual programming tutorial lessons! I love it. And DUDE they're finally adding kanji conversion! Even though it can only convert to single kanji, unlike your average IME.Hey, you're finally back. Also, aww...
Renaming PRINT to TPRINT was a good idea, but if ? doesn't still exist I'm quitting SB forever.
EDIT:
I looked more closely at the screenshot. It seems there are multiple text layers or something, since TPRINT, CLS, and LOCATE all take an extra argument.
I bet PRINT still exists and TPRINT is just a version that uses the "layer" argument.
GUIDE.PRG
IF ??? THEN
'[...]
'[line 445]
'---FULL SCREEN
DISPFULL
'---
CLS #TXT:CLS #WIN:CLS #PRG
SPHIDE SPKEY:SPHIDE SPKEY2:SPHIDE SPKEY3
LOCATE #WIN,OX,OY-2
TPRINT #WIN,"おしえて欲しいとを選んでください"
'--- LOAD LIST
VAR TX$=LOAD("TXT:"+DRV$+"LIST.TXT",FALSE)
FILL LBL$,""
LC=0:I=0
LOOP
C=INSTR(I,TX$,".")
IF C==-1 THEN BREAK
LBL$[LC*2+0]=MID$(TX$,I,C-I):I=C+1
C=INSTR(I,TX$,LF$)
LBL$[LC*2+1]=MID$(TX$,I,C-I):I=C+1
INC LC
ENDLOOP
'---
SCRIPTMODE=1
FADER
'---
ENDIF
'--- SCREEN HEIGHT
IF SCH==720 THEN W=7?:H=?2:DRY=2? ELSE W=?1:H=4:DRY=13
'--- CURSOR(WANPAKU)
VAR VY=0,OLDCY=CSRY,OLDOY=CSROY
IF BUTTON(0,#B_LUP ,1) THEN VY=-1
IF BUTTON(0,#B_LDOWN,1) THEN VY= 1
CSRY=CSRY+VY:VY=0
IF CSRY<0 THEN VY=-1:CSRY=0
IF CSRY>H-1 THEN VY= 1:CSRY=H-1
CSROY=CSROY+VY
IF CSROY<0 THEN CSROY=0
IF CSROY>LC+H THEN CSROY=LC-H
'---
IF CSRY!=OLDCY THEN PUTCSR OY,OLDCY,1
PUTCSR OY,CSRY,((MAINCNT() >> 3) MOD 5)+4
IF CSRY!=OLDCY || CSROY!=OLDOY THEN
SCRIPTMODE=1:BEEP 9
'[/line 487]
'[...]
ENDIF
'[line 561]
'--- START!
SCRIPTMODE=0
FADER
CLS
CMPSCORE=0 'スコアクリア
PRGSKIP=0 '初回のプログラム表示をゆっくりにする
GST=#GST_READ
END
'
' PUT CURSOR(WANPAKU)
'
DEF PUTCSR OY,Y,C
VAR PG=#TXT
Y=Y*3+OY
IF C!=-1 THEN
'--- PUT FACE
WC=WINCOL[0]
LOCATE PG,0,Y+0:PUTFACE 0,3,C,0,PG
LOCATE PG,0,Y+1:PUTFACE 0,3,C,1,PG
LOCATE PG,0,Y+2:PUTFACE 0,3,C,2,PG
LOCATE PG,0,Y+3:PUTFACE 0,3,C,3,PG
ELSE
'--- CLEAR
LOCATE PG,0,Y+0:TPRINT PG," ";
LOCATE PG,0,Y+1:TPRINT PG," ";
LOCATE PG,0,Y+2:TPRINT PG," ";
LOCATE PG,0,Y+3:TPRINT PG," ";
ENDIF
END
'--------------------------------------
' PUT PROGRAM SOURCE
'--------------------------------------
DEF GST_PUTPRG
VAR X,Y,B=0,W=LEN(PRG$[PRGOY])
'--- DELAY
IF PRGSKIP==0 THEN
IF PRGWAIT>0 THEN DEC PRGWAIT:RETURN
PRGWAIT=#PRGWAIT1
ENDIF
'--- PUTALL?
'[/line 602]
'[...]
END
DEF ???
'[...]
'[line 829]
SCANMSG T$ OUT SX,SY 'ウィンドウ用のテキストスク
'--- PUT WINDOW(&FACE)
LOCATE #WIN OUT LX,LY
IF CHR!=#CHR_INFO THEN WINSY=SY+2 ELSE ...
PUTWIN DIR,SX+2,WINSY,CHR,TYPE
IF SY==1 && CHR!=#CHR_INFO THEN INC ...
'--- ウィンドウ表示サイズ分他のテキストリーンも改行
FOR I=0 TO WINSY-1
ENTER #TXT:ENTER #PRG
NEXT
'--- 新しいウィンドウ位置から文字の表示位置補正
LOCATE #WIN OUT LX,LY '座標取得
IF CHR!=#CHR_INFO THEN DEC WINSY 'テキ
LOCATE #TXT,LX,LY-WINSY
'--- 文字の表示ヘ
MSGOX=0:MSGOY=0:MSGCNT=SY
IF DIR THEN PRGTAB$=" "*(DW-(SX+7))
IF CHR==#CHR_INFO THEN PRGTABS$=" ..."
'---
GST=#GST_???MSG
END
'----------------------------------------
' CHECK COMMAND LINE
'----------------------------------------
DEF CHKLINE(M$)
VAR I,L,N
VAR C$,W$
M$=ERASELF$(M$) '???P???$
'---
LOOP
'--- GET WORD
W$="":M$=SKIPSPC$(M$):L=LEN(M$)
WHILE L>0
C$=LEFT$(M$,1)
IF C$==" " THEN BREAK
W$=W$+C$:DEC L
M$=RIGHT$(M$,L)
WEND
IF W$=="" THEN BREAK
IF LEFT$(M$,1)=="," THEN M$=RIGHT$(...)
'[/line 871]
'[...]
ENDLOOP
ENDif ? doesn't still exist I'm quitting SB forever. It seems there are multiple text layers or something, since TPRINT, CLS, and LOCATE all take an extra argument. I bet PRINT still exists and TPRINT is just a version that uses the "layer" argument.Not sure if you're joking or not; I just don't see you leaving for something like that :p PRINT is still there, in one of the tutorial screenshots. Don't see why they would take away ? either. It may well be as you said, probably a simpler command to allow text on even graphic pages, without having to use PRINT and GPUTCHR separately. TPRINT #WIN,"おしえて欲しいことを選んでください" prints out the title of the window in the lesson list screenshot.
And Y_ack you're too amazing.
I can't make out that many lines of code even if I squint.
Named sprite variables!
Also there's a TYPEOF function but I'm not sure how it works. (Wouldn't it just throw an error if you try to assign something other than a string to N$?)
And Y_ack you're too amazing. I can't make out that many lines of code even if I squint.You just have to adjust the brightness/contrast and look at different screenshots to see the missing parts:

Edit: If you missed it in the GUIDE.PRG listing above, MAINCNT() is now a builtin function.
Also SPLAYER (not in pcmini version), the possibility that the OSK is an SB program, the suggestion that programs might be able to run on different layers (if you believe the prior assumption), and, if you're of the "all the constants shown are just expanded builtins" camp, builtin constants for UI and keyboard sprite IDs (the alternative being a better example of user-defined constants).Named sprite variables! Also there's a TYPEOF function but I'm not sure how it works
in this screenshot there's also file paths of the format "#S/GUIDE/[PLG]\d\d.TXT", which reminds me that since this is based on pasocom mini/pistarter version, multilevel directory structures should be possible.
And Y_ack you're too amazing. I can't make out that many lines of code even if I squint.Ehehe~
The distribution system is via public keys as usual, indeed.
SB still needs to do self-policing, and monitoring public keys is the easiest method.
If they don't catch naughty people uploading naughty programs, Nintendo will do the heavy-handed policing for them, i.e. taking SB off eshop. That would be bad.

