App Details
A custom Scratch runtime that allows you to run Scratch 3 projects on your Nintendo Switch! This is an official port of the original runtime for the 3DS.
See the GitHub README for more info on what features are supported.
Mouse
3DS: Glide your finger/stylus on the bottom screen to move the mouse, and tap the bottom screen to click.
Wii U GamePad: You can use the touchscreen on the GamePad.
Wii Remote: You can use the Wii sensor bar to control the mouse.
Other Controllers: Enter Mouse Mode by holding L. Use the D-pad to move the mouse, and press R to click.
Changelog
v1.2.1
This is an emergency release fixing a stack overflow bug in Release 1.2 that caused several platforms to crash upon launch.
Runtime Changes
- Load the SB2 specmap using the heap instead of the stack
- Added an exit project block; you can find it here: https://scratchbox.dev/project/K26OtTN2WDJ9
Windows Changes
- Fixed the installer's shortcut path
- Fixed the default project path when Scratch Everywhere! is installed to an unwritable location (e.g., when using the installer)
v1.2
The runtime is now up to 60% faster and should have 7% better parity with Scratch! Let's see what changed...
THE GREAT ABSTRACTENING (the third)
(No, our code did not in fact turn into a black polygonal monster with five hundred glowing eyes)
@gradylink did a bunch of refactoring under the hood, which most notably includes:
- Abstract project parsing
- This means SE! can now read .sb and .sb2 files!- Pretty cool, right?
- Zip handling has also been abstracted, meaning other libraries such as minizip-ng can now be supported, making porting for e.g. the OG Xbox possible.
All of this and more™ via PR 765!
Parity Changes
- Some collision changes for better parity
- Improved pen (GLCore)
- The runtime now accounts for wait blocks with negative values
If you find any bugs while running your projects that don't happen in Scratch, as always, please let us know!
Runtime Changes
- Added type prediction for better performance
- Added support for color touching- detection!
- The When [] > () hat block has been implemented
- Fixed blurry pen stamping on GLCore-based builds (Linux, macOS and Windows)
- Added the "all at once" block
- Fixed a crash related to sound
- Fixed variable monitors not populating fields correctly in some cases
- Lots of optimizations, notably string and collision-related
Platform Changes
PC
Lots of new stuff on PC this time around...
- XDG Desktop Portal support!
- [Windows] Fixed a directory picker bug that caused it to return multiple trailing slashes in a row at the end of a path.
- [Windows] The OpenGL and GLCore renderers can now use windowing directly from the Win32 API
- [Windows] Added a bunch of native backends, including GDI rendering and WinMM audio!
- [Windows] Added an easy installer if you prefer having SE! on your computer that way!
- [Linux] Audio now uses libpulse instead of SDL2. This also comes with the benefit of reducing the executable's file size on that platform!
- Other (mostly PC dialog-related) refactoring and fixing under the hood done by @samuelvenable in the following PRs: 781, 783, 786
Libretro
- Reset is now supported! (772)
Translations
- @jamalkamaladdin added the Azerbaijani language!
- Fixed some typos occurring in both Spanish variants (thanks @luarpri!)
- Linux .desktop file is now translated.
> [!WARNING]
> Due to the changes made during refactoring and other complications, the following releases will be delayed until 1.2.1 OR 1.3:
> - PS4
> - webOS
This release was brought to you by @luarpri (new contributor!), @samuelvenable, @gradylink, @poipole807, @dogo6647, and @NishiOwO! (no nate this time 😔)
v1.1
Due to Nate's current absence, Dogo and I will be making releases from this point onward (until Nate returns).
Parity Changes
- Fixed volume of new sounds not being set correctly
- Fixed missing input resets on some C blocks
- Fixed clones being able to call threads after being deleted
Runtime Changes
- Fixed incorrect scaling of vector costumes on initial load
- Optimized collision
- Optimized input fetching
- Optimized number parsing
3DS/DS Changes
- Fixed any key not working correctly
- Improved SVG quality in dual screen mode
PC Changes
- Changed the default renderer to OpenGL Core
Due to this change, PC now supports all looks effects (including shader-based ones like whirl, fisheye, etc.)
- Changed the default window size to 480x360 to match Scratch's stage size
- Added support for using the native file selector when changing the project directory
webOS Changes
- Fixed crash at startup
Internal Changes
- Changed the dependency system to use Catalog: https://github.com/catalog-cmake/catalog. This means building from source should now be easier and faster.
- Added support for SE! to be built as a library. This is the very beginnings of a potential (seperate) editor application in the future.
These changes brought to you by: @gradylink, @NishiOwO, @Dogo6647, @samuelvenable, @poipole807, @iCraft7773, and @NateXS
v1.0
After 451 days and 1,545 commits from 36 contributors, SE! is finally at 1.0!
Parity Changes
- Add default costume rotation center if one is not present in project.json
- Add default sample count and sample rate
- Fix TextToSpeech blocks not waiting to finish speaking until continuing
- Fix being able to click through Sprites
- Fix Stop 'other scripts in sprite' Block being wrong if ran in a custom block
Runtime Changes
- Fix SVG costumes being super pixelated sometimes
- Optimized block inputs and fields
- Fix collision with flipped Sprites
- Fix audio not working in Unzipped projects
- Fix Volume block not working
- Fix speech bubbles not getting removed when its Sprite is deleted
- Refactored a bunch of input code internally (Via 695)
Menu Changes
- Add Romanian translation (Via 722)
- Fix controls menu not working correctly
Wii & GameCube Changes
- Fix crash on startup
- No longer embed assets inside .dol
Windows & PS4 Changes
- Fix crash on startup
NDS Changes
- Don't render Sprites if ghost effect is over 70%
These changes brought to you by: @gradylink, @NishiOwO, @DarkerSparks, @Starlii10, @PwLDev, @fridayfunkgaming291-cloud, and @NateXS
v1.0-rc3
Runtime Changes
- Added support for custom extensions via Lua! (Via PR 594)
- This will make it way easier to port extensions from Scratch mods (e.g. TurboWarp) over to SE!
- We currently have TurboWarp's Gamepad, JSON and Utilities extensions ported over, with more coming soon!
- Unlike native C++ extensions, Lua extensions support way more platforms!
- They are currently NOT supported on NDS, PSP, PS4, or Libretro. PSP and PS4 may get support in a later release, but NDS will not due to RAM limits.
- The extensions are compiled in a custom .see (Scratch Everywhere! Extension) file format, for easy distribution!
- This release will have the above TurboWarp extensions packed in the executable, so all you need to do is run a project using one of those extensions and it should just work.
- Do note that future releases will NOT have the extensions included once we figure out a good way to distribute/download them separately.
- You can also load extensions by putting the .see extension file inside of (SE!-folder)/extensions/.
- Lua extensions are located in the lua-extensions repo: https://github.com/ScratchEverywhere/lua-extensions, with the .see compiler located in the seec repo: https://github.com/ScratchEverywhere/seec.
- The Lua extensions API are currently a W.I.P: https://github.com/ScratchEverywhere/ScratchEverywhere.github.io/pull/2. and not yet released at the time of writing :(
- Fixed audio not playing in unzipped projects
Menu Changes
- Removed birthday theme
- Added French and Polish languages
3DS Changes
- Fixed crash when closing the app
- Fixed hang when trying to close the app when inside certain projects
Authors
This release was brought to you by: @Starlii10, @ccawley2011, @Dogo6647, @gradylink and @NateXS
Translators: @matu6968 (polish), @SimsCrafterZ (french)
v1.0-rc2
Runtime Changes
- Added support for the Music extension! (Via 671)
- Added support for Shift and Control keyboard keys when using When key pressed block
- The render position of Sprites are now much more accurate
- Logs will no longer be repeated over and over
- Mouse position should now be correct when using a High DPI display
- Size blocks now have the correct limits when using an empty costume (100% - 180000%)
Menu Changes
- Added UK English translation (there's only like 3 differences between US english 💀) (Via PR 683)
3DS Changes
- Added 3DS-Specific audio implementation
- Which means we're no longer using SDL3 for 3DS audio!
NDS Changes
- Fixed bottom screen being white
Wii Changes
- Fixed bug where Timer sometimes jumps to crazy high values
- Fixed not being able to select project with 1 on the Wiimote
PSP & GameCube Changes
- Use smaller Menu font for now, due to RAM limitations
Authors
This Beta was brought to you by: @Starlii10, @Touchcreator, @ccawley2011, @NishiOwO, @Dogo6647, @samuelvenable, @gradylink and @NateXS
v1.0-rc1
A Release Candidate? In this economy? More likely than you think!
Menu Changes
- The Menu has been given new music and colors for SE!'s one year anniversary (May 2)!
- Menu music is, as always, made by @Dogo6647
- Translation Support!
- In the Settings menu, there will be a new option to change the main menu language!
- We currently support English (US), Español (Latam), Español (España), 한국어, 日本語, Português (Portugal), Português (Brasil), Русский (Россия) and Deutsch (Deutschland).
- It's thanks to the many translators (listed below) that this is possible!
Runtime Changes
- Libretro port! (Via PR 635)
- [SDL2 / SDL3 Platforms]- Completely re-written Accurate Pen to be much faster in performance!
- Because of this, Accurate Pen is now the default on these platforms.
- Added DECtalk support for the Text To Speech Extension (Via PR 648)
- DECtalk is a completely offline Text-To-Speech library!
- You can change whether to use DECtalk or Scratch's tts system in Main Menu settings
- Do note that only certain platforms will have this option in the release build, but any platform can have this option enabled when compiling from source.
- Fixed Transparent SVG images looking gray
- Audio should sound a bit better
- Set size and Change Size blocks now work correctly if the costume image hasn't been loaded yet
- Added constant folding while parsing projects
- Add better support for Solaris/illumos and Haiku (Via PR 663)
- Fixed a ton of memory leaks
- Remove Monitor caching due to a bug
Parity Changes
- Fixed Crashes when using recursive broadcasts and Custom blocks
- Fixed parity issues when doing math with hexadecimal numbers
- Fixed parity issues when doing math with -0
- Revert ability to get special characters with letter x of x block, due to many bugs caused when introducing it
- Fixed Glide blocks being weird when using clones
- Fixed some issues when getting variables
3DS Changes
- Fixed crash when sometimes using Erase All Pen block
Contributors
- @Starlii10
- @Dogo6647
- @gradylink
- @NishiOwO
- @samuelvenable
- @Xeltalliv
- @poipole807
- @NateXS
Translators
- @PwlDev
- @francthe3dsnerd
- @vernacular7
- @Luarpri
- @NishiOwO
- @skibidisonicthehedgehog-glitch
- @MicroChelik123
- @Dogo6647
- @SplaatSites
- @Br0tcraft
v0.40
Runtime Changes
- Added support for Native Extensions (Via PR 598)
- Native Extensions allow you to run custom extensions via dynamic C++ libraries
- Currently only supports Linux and macOS, with Windows support coming later
- We're still a ways away from implementing a Lua-based custom extension system that will support more platforms
- Native Extensions can be found at this repo: https://github.com/ScratchEverywhere/native-extensions
- Added an interactive CLI inspector for real time debugging (Via PR 624)
- Fix audio speeding up in some situations
Parity Changes
- Made fencing even more accurate
- Stage Sprite can no longer use the hide block
- Fixed When key Pressed block being able to get recalled before it's finished
- Fixed Makeymakey blocks being called without pressing any buttons
- Fixed Letter of x block not being able to return special characters
Menu Changes
- New op op op :itchytongue: splash text
Authors
This beta was brought to you by: @Starlii10, @Br0tcraft, @gradylink, @rttyg46305Unj, and @NateXS
v0.39.1
This is an emergency release to fix audio not working on some devices.
Runtime Changes
- Fix audio not working on some devices (Windows, GameCube, etc)
- Fix audio not working when Keep Project In RAM is turned off
Check the release notes of Beta 39: https://github.com/ScratchEverywhere/ScratchEverywhere/releases/tag/0.39 for everything new.
v0.39
We're finally gearing up for release! This will very likely be the final Beta Build until we get to the release candidate stage, and soon after, 1.0!
Runtime Changes
- Complete Runtime Rewrite!- (Via PR 583)
- @Br0tcraft has been working for months to almost completely rewrite the way Scripts in SE! are run, which now more closely resembles Scratch's Thread architecture!
- The rewrite fixes many bugs (500 for example), and boosts performance a ton!
- Many projects that weren't playable before, or had weird issues, are now completely playable!
- There may be some bugs introduced with this change, so please be sure to report any bugs you find!
- This change has also resulted in some of the caching features added in previous betas getting removed. The removed caching features will be re-added in the next release.
- Complete Audio Rewrite- (Via PR 582)
- @NishiOwO has rewritten audio from the ground up to no longer rely on SDL's mixer libraries!
- More audio formats are now supported, and the Pitch and Pan left-right audio effects now work on all platforms!
- You no longer need to put sounds in the Stage for streamed audio, as now every Sprite will have it!
- Unfortunately with this change, we were not able to get audio working for the NDS, so this release on NDS will have audio temporarily disabled.
- Added support for TurboWarp's Custom Reporter extension
- Added support for Translate Scratch extension (Via PR 612)
- Adding this extension was partly the reason the Runtime was rewritten in the first place, since scripts in the old Runtime couldn't yield if a reporter returned nothing that frame.
- Added Warp Timer Project setting
- Having this enabled makes scripts check if they've been running for a long time (500 ms), and run at a low framerate instead of getting stuck until the loop finishes.
- This is similar to Scratch's behavior. It fixes crashes/freezes but may cause a performance impact on some devices, so turning it off may improve performance.
- Only downscale images on some platforms (NDS, PSP and GameCube)
- Images on all platforms used to be down-scaled by 2x to save on RAM/VRAM usage
- Since Scratch internally doubles the size of each image, there should've been no visual difference. However, some projects don't have their image size doubled, making it look pixelated in SE!
- Sprite fencing is now more accurate
- Fix memory leak when an image fails to load
- Fix parsing crash if certain project/Sprite properties were empty
Switch Changes
- Fixed touch screen not working
Credits
This beta was brought to you by: @gradylink, @poipole807, @NishiOwO, @Br0tcraft, and @NateXS
v0.38.1
This is an emergency release, mainly to fix Wii U not working.
Runtime Changes
- Added Collision Mode Project setting
- Setting it to Accurate gives you the new collision introduced in Beta 38.
- Setting it to Fast makes the touching __ block use (non-rotated!) rectangles for collision.
- It is set to Accurate by default on all platforms except for NDS.
- Changed Sprite fencing a bit
- Fixed Username when using cloud variables
Wii U Changes
- Fixed controls not working
3DS + NDS Changes
- Fixed memory leak when using Accurate collision mode
PC Changes
- Fix thread memory leak
v0.38
Parity Changes
- Accurate Sprite collision! (Via pull request 586)
- When using the Touching block, collision now uses accurate bit-masks instead of rotated rectangles!
- On 3DS and Wii, these bit-masks are 2 times lower in resolution. On NDS, PSP and GameCube, they are 3 times lower. This is to save performance.
- Do note that this update does NOT add support for color touching blocks.
- Add support for When Stage Clicked block
- Make base conversions work with doubles
Runtime Changes
- Finished migrating all platforms to CMake!
- This makes it easier for us to add new platforms and features later down the road
- Only load SVG fonts when needed instead of at the start of the app
- General code refactoring under the hood
Menu Changes
- The Bottom Screen project option no longer shows up on platforms that don't have it
- Pressing L and R takes you up and down pages
- Project now stays selected when going from Project Settings menu
- Mouse no longer keeps priority when using a controller/keyboard to navigate the menu
Windows Changes
- Add support for Text To Speech Extension
3DS Changes
- Say and Think blocks now work correctly in dual screen mode
Authors
This beta was brought to you by: @gradylink, @NishiOwO, @poipole807, @Dogo6647 and @NateXS