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

3.3.0 is out in North America!

Root / General / [.]

DrZogCreated:
Smilebasic update 3.3.0 is out in North America. https://twitter.com/smilebasic_com/status/725134756665380864 Go under eshop/top left corner button/Settings Other/History/Updates to download it! Or, scan this QR with your Camera applet (L+R shoulder). http://smilebasic.com/en/knownissues/image/img-qr-update.png Here's the changelog for 3.3.0:
SpoilerAdditions/Changes in Ver.3.3.0 (April 6, 2016) New Instructions BGMPAUSE (Pause BGM) BGMCONT (Resume paused BGM) SNDSTOP (Stop all sounds) MILLISEC (Millisecond version of MAINCNT) CLIPBOARD (Get/Set clipboard contents) GOFS (Get/Set graphic screen display offset) BIN$ (Convert a numerical value to a binary number string) DLCOPEN (Declare content for the Classic IP Open Usage Project) EXTFEATURE (System variable that returns support status for extended instructions) Additional Instructions - Paid (Advanced Sound Processing Unit) BIQUAD (BiQuad filter) BQPARAM (Generate BiQuad parameters) FFT (Perform Fourier transform) IFFT (Perform inverse Fourier transform) FFTWFN (Create an FFT window function) PCMSTREAM (Play back a PCM stream) PCMPOS (Get the playback position in a PCM stream) PCMVOL (Set the volume of the PCM stream) PCMSTOP (Stop playback of the PCM stream) PCMCONT (Resume playback of a stopped PCM stream) ARYOP (Perform arithmetic operations on arrays collectively) RINGCOPY (Copy as a ring buffer) <Note> Although these instructions may be suggested for input, they will give a “DLC not found [instruction name]” error if executed when the additional features have not been purchased. Additions to Existing Instructions/Features BGSCREEN (Addition of character size specification) BGLOAD (Character number of the screen data to be loaded can now be offset) FORMAT$ (Addition of %B [binary number]) SPDEF (Definition number and U,V coordinates of the definition data to be loaded can now be offset) SPLINK (Addition of feature for getting link destination ID) MICSTART (Addition of 2 [8-bit signed] and 3 [16-bit signed] for second argument) ACLS (Addition of options for preserving GRP, SPDEF, and font settings) LOAD (Addition of option for specifying the coordinates to load when loading GRP) Paid DLC: "Advanced Sound Processing Unit" A “Purchase DLC” button has been added to “Purchase Additional Features” in the TOP MENU. Purchasing the advanced sound unit via this button will allow you to develop audio-optimized BASIC programs, such as software synthesizers and effectors. Price: $5.00 for the US, $6 for Canada and $75 for Mexico

Also apparently DLC is borked right now.

DLCOPEN exists but throws DLC not found. What's funny is that the help basically says "this feature will never work." EDIT: For clarity, DLCOPEN is only for NAMCO. So ofc.

Speaking of docs, the edits made for 3.3.0 are a marked improvement! The sound DLC in particular is quite thoroughly written. This is good, I hope they rewrite it all like this.

MILLISEC, **** yes!

The BIN$() function will save me a subroutine. I like MILLISEC as well. Edit: In fact, I've already implemented MILLISEC. It is quite useful.

Woah, ACLS runs in like half the time! A lot of stuff in the menus feels a lot tighter now too.

Yeah, this is overall a really nice update. It does feel quicker, but maybe that's just a placebo. I just used MILLISEC to set up a timer that measures by percentage of a frame, it's already helped me isolate several performance bottlenecks. This is such a huge improvement over MAINCNT ( I know it sounds like I'm selling something).

My speedtest is showing about a 10% improvement over 3.2.1 (old3ds). Not bad. edit: 8% improvement on new3ds.

Tested with MILLISEC I WILL would hope ;). On code with an unbounded speed (i.e. without a VSYNC it makes a difference.

Judging from changelog, this shouldn't break anything in old programs, right? It just means some programs won't work in the old version, but that's not really going to be a problem for long.

Judging from changelog, this shouldn't break anything in old programs, right? It just means some programs won't work in the old version, but that's not really going to be a problem for long.
In the very rare case that your program depends on the behavior of a bug which was fixed, yes. Otherwise, all the changes made to commands are optional forms. There is one change which binds z offset to SPLINK; Other than that it's really no different.

Any reason not to replace all uses of MAINCNT with MILLISEC? ...Wouldn't the numbers get massive pretty fast and overflow int?

Wait, does 3.3 run a little better than 3.2?

sound DLC is broken... the menu does a loading bar and then nothing. Anyway, new commands (in case you forgot) BIN$, GOFS, BGMPAUSE, BGMCONT, EXTFEATURE, MILLISEC, CLIPBOARD sound DLC: PCMPOS, ARYOP, RINGCOPY, PCMVOL, PCMSTREAM, PCMSTOP, PCMCONT, FFTWFN, IFFT, FFT, BQPARAM, BIQUAD Japan only: DLCOPEN

Wait, does 3.3 run a little better than 3.2?
Yes actually! It's faster in some areas than others though.
sound DLC is broken... the menu does a loading bar and then nothing.
They must not have finished the shop over here yet. They haven't tweeted about it yet...

I'm downloading this as soon as the school day is over. It sounds too good to be true.

sound DLC is broken... the menu does a loading bar and then nothing.
Yeah, I noticed that too. I'm just assuming the DLC hasn't been added yet because the eShop doesn't update new purchases until Thursday.

Finally, I've been waiting for this update for a while now :P. Time to continue doing stuff I guess :)

Well, I reported the problem with the DLC shop. It definitely seems like a mistake to me, since usually there's an error message if something fails I suspect that they might have broken something when removing the Japan-only DLC. anyway, just the help menu syntax entries for the new commands: String variable = BIN$( Numerical Value [,Number of digits] ) GOFS X,Y GOFS OUT X,Y BGMPAUSE [ Track number [,Fading time]] Paused = BGMPAUSE( [Track number] ) BGMCONT [ Track number [,Fading time]] EXTFEATURE 'Support for additional instructions '0 = Default, 1 = Advanced sound instruction pack is present MILLISEC 'Millisecond value since SmileBASIC was launched CLIPBOARD Character string String variable = CLIPBOARD() sound DLC: PCMPOS 'System variable that indicates the top position (array index) of transfer to internal PCMSTREAM FIFO stack. (when stack becomes empty, transfer will start fom this position) ARYOP Operation type, Result storage array variable, Parameter 2, Parameter 2 [,Parameter 3] add, subtract, multiply, divide, multply-add, liner interpolation (p1*p3+p2*(1-p3), clamping, RINGCOPY Copy destination array, Copy destination offset, Copy source array [[,Copy source offset],Number of copy elements] Next position = RINGCOPY(Copy destination array, Copy destination offset, Copy source array [[,Copy source offset],Number of copy elements]) PCMVOL [CH,]VOL PCMSTREAM M[,Sampling rate] PCMSREAM L,R[,Sampling rate] PCMSTREAM Sampling rate PCMSTOP PCMCONT FFTWFN W,n IFFT oR,oI,iR,iL FFT oR,oI,iR,iI[,W] BQPARAM FP,k,s,f,q(o) [,g] BIQUAD OUTWK,INWK,FP Japan only: DLCOPEN "IP name" [,"IP name 2",... ] DLCOPEN "IP Name" [,"IP Name 2",... ] (yes for some reason there are 2 entries with different capitalization)