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
v0.33
Runtime Changes
- Fixed a bug causing the app not to launch on Windows, Wii U, NDS, and PS4
- Added support for Pitch and Pan left-right audio effects
- These effects are currently only available on SDL3 devices (3DS, Linux, Mac)
- Fixed monitors, collision, and mouse being in the wrong position
- Fixed mouse position being set to the top left of the screen on touch screen devices
- Re-Added mouse mode to devices with no touch screen or mouse support (PS4, PSP, GameCube)
Menu Changes
- Removed NDS menu music from non-NDS platforms
- This means SE! will have a smaller file size!
- Splash text is no longer the default Everywhere! on some devices
3DS / NDS Changes
- The trackpad mouse behavior on top screen projects has been removed, and replaced with normal touch screen behavior
MacOS Changes
- Updated to SDL3
- New Icon
v0.32
Menu Changes
- Added a Project pause menu
- Accessed by holding Start for 3 seconds while in a project (1 on keyboard)
- Currently has the ability to exit a project, re-run a project, and toggle Turbo Mode
- This feature is not accessible in RomFS projects
- Updated logo (Via 514)
- Added the ability to change the path that projects will be found in
- Menu music can now be turned off in menu settings
- Added new menu splash text, some that could even use your username!
- Fixed menu splash text position being off at higher resolutions
Runtime Changes
- We did a whooole lot of code refactoring under the hood
- This may introduce new bugs we aren't aware of yet, so be sure to open an issue if you find one!
- OpenGL Port! (Via 512)
- The Open Project custom block can now open projects inside of the RomFS (Via 508)
- Info about the Open Project block for those unaware: https://scratchbox.dev/project/twStEkSKjQaH
- The Text To Speech block will no longer run if it fails to download the audio track
- Fixed cloud variables not working if changing more than 1 variable at a time
- Fixed the position of Sprites being off sometimes
Parity Changes
- Fixed the order in which When I start as clone blocks run
- Fixed Next Backdrop block not working
- You can no longer click on a Sprite that has a ghost effect of 100
- The For Each block now has better parity
- The When Key Pressed block is no longer tied to the FPS
- Turbo Mode now works like Scratch
- The Broadcast and Wait block now works like Scratch
- Fixed the run order of repeating blocks
- Fixed repeat loops not working if ran for over 10.6 years
- Added more accurate double to string conversion (Via (520)
- Variables can no longer be an int
- Fixed some custom blocks not working
3DS Changes
- Collision in Dual-Screen mode is now correct
- Mouse position in Dual-Screen mode is now correct
PC Changes
- The username block can now get your PC's username
- Settings are now stored in your OS's respective configuration folder.
NDS Changes
- Added new menu music
This beta was brought to you by: @Dogo6647, @poipole807, @Br0tcraft, @leap0x7b, @gradylink, @roccopm, @DevelopCMD, @Starlii10, aaaaand @NateXS
v0.31
The final Beta of the year! Happy holidays!
Runtime Changes
- Updated the main menu UI to support touch scrolling
- Fixed Project Unpacking not working
- Fixed Custom Controls menu not working
- Added new splash text
- Improved the appearance of on screen variables and lists (Via 489 and 499, thanks @leap0x7b !)
- Touching blocks now have more consistent collision (still box collision, just more accurate)
- Fixed Stop "This Script" block sometimes not working
- Fixed offset when dragging Sprites
- Fixed some Sound block issues
- Fixed Sprites sometimes being in the wrong position for one frame
Parity Changes
- @Geotale dropped a huge lootbox showing a bunch of parity issues with SE! (498), and we've been working to fix them all! The changes won't be listed here since it's many small technical changes, but I recommend you look at the issue if you're a hardcore Scratcher.
- Sprites can no longer touch itself with the Touching block
- The Stage Sprite can no longer be cloned
- Scratch 2.0 Pen blocks have been implemented
- Fixed Broadcast and Effect blocks not working in Scratch 2 projects migrated to Scratch 3 (Via 494 and 496, thanks @kalomaze !)
3DS Changes
- Fixed Sprite flipping sometimes not working
- Fixed Pen rendering on dual screen and bottom screen modes
NDS Changes
- Fixed Sprites not rendering in the correct position
Switch Changes
- Updated icon to be less blurry
webOS Changes
- The webOS port is currently in review to be added to the webOS Homebrew store!
PS4 Changes
- Disabled the loading screen temporarily due to a crashing issue
ty everyone who contributed to this beta:- @Dogo6647, @gradylink, @PwLDev, @leap0x7b, @poipole807, @kalomaze, and @NateXS
v0.30.1
This is an emergency release for yesterday's Beta 30, fixing a critical bug in the Main Menu.
Runtime Changes
- Fixed a bug causing projects to not get found in the Main Menu on some devices
- Fixed being able to click Sprites while they're hidden
v0.30
New Features
WebOS port!
- It's!! TV!! Time!!!!
- Scratch Everywhere! has been ported to WebOS, meaning any TV running this OS can now play Scratch games!
- Bluetooth controllers, wired controllers, and even the TV Remote can be used as input!
- From @Dogo6647 (PR 471)
[Wii U, 3DS]- Text to Speech extension support!
- Works by using Scratch's Text-To-Speech API to send speech data to the device
- From @Br0tcraft (PR 480)
Makey Makey extension support!
- From @poipole807 (PR 482)
[PC]- SDL3 support!
- Due to an issue, only Linux will be using SDL3 for this release. Windows and MacOS will continue to use SDL2 for a little while as we figure out a fix.
- From @gradylink (PR 439)
SDL1 support!
- This will enable us to port Scratch Everywhere! to platforms where SDL2 and 3 aren't available!
- From @leap0x7b (PR 475)
Runtime Changes
- Added festive music to the Main Menu! (Tunes as always from @Dogo6647)
- This change also has the added benefit of reducing the load times of the Main Menu
- Refactored input under the hood to be a bit more consistent
- Fixed Pen stamping not working if the Sprite is hidden
- Pen stamping now accounts for Sprite's size
- Improve Runtime performance when accessing the Stage Sprite
- Change Costume blocks with numbers as input now prioritize the costume name over the costume number
- Fixed When this backdrop switches to block not working correctly
- The Runtime now properly cleans up images when running out of RAM
- Fixed Sprite sorting when cloning
- Fixed even more audio issues when a project is unzipped
- Fixed crashes related to parsing numbers
- Fixed crash when sometimes trying to load the position of a comment
- Fixed +Infinity not working correctly
- Allow for hacked dropdown inputs
- Added Core Example Extension
- Implement Scratch's weird spacing rules with List reporter blocks (PR 467)
- Fixed whitespace comparison (PR 464)
- Fixed the order in which blocks run
3DS Changes
- Increased command buffer size
- This basically means you can have more Sprites on screen at once without having it crash!
- Increased performance a bit by messing with VSync settings
- Fixed crash when trying to render an image that fails to load
Wii / GameCube Changes
- Added Streamed Sound Support!
PSP Changes
- Fixed RomFS projects not working
v0.29
New Features
- PSP Port!
Switch Changes
- Upgraded to the latest libnx version, meaning SE! is now supported on Firmware 21.0.0.
3DS Changes
- Fixed app not closing when closed from the Main Menu
Runtime Changes
- The Main Menu is feeling a bit jolly...
- Changed Arialn font to Liberation Sans Narrow font
Parity Changes
- Added instant block execution
- In Scratch, if nothing on screen happens, all blocks run as if Run Without Screen Refresh was on. SE! now handles this behavior.
- Sprites now correctly run their blocks in layer order
- The direction blocks are now correctly clamped and rounded
- The Change Variable by x block now works correctly when putting in letters as input
- Fixed some blocks not running without screen refresh when they should
- The Pick random block now correctly works with non-decimal numbers
- NaN is now correctly handled as a number when put in block inputs
- Booleans now work as they would in Scratch
- Uppercase letters in hex colors now work correctly
- SE! now handles Scratch's rare null input bug correctly
- Fixed Broadcast and wait block's weird behavior from a clone who's ready to be deleted
v0.28
Runtime Changes
- Added Music to the Main Menu (tunes by @Dogo6647 !)
- [Non-3DS Platforms]- Added support for TurboWarp's High Quality Pen option
- Fixed audio issues with unzipped projects
- Fixed sounds not being able to replay
- Fixed sounds not being able to change volume
- Fixed a bunch of parity issues related to Infinity and nan numbers
- Fixed crashes related to list blocks
- Projects that contain Lists with many items now load faster
- The Open project block: https://scratchbox.grady.link/project/twStEkSKjQaH can now choose projects from the SD card (Via pull request 425)
PC Changes
- Builds for Windows, MacOS, and Linux will now be put in releases!
- Migrated to CMake for compilation
- Added support for RomFS projects
PS Vita Changes
- Fixed audio not working
- Sped up compilation time
DS Changes
- Fixed audio not working
3DS Changes
- Fixed Pen texture being off by 1 pixel
v0.27
THE GREAT PORTENING
DS Port!
- They thought it was impossible... but impossible is my middle name.
- It's recommended that you read the README for the limitations of this port!
- You will likely come across many crashes, so please open up a GitHub issue if you experience them!
- KNOWN ISSUES
- Unpacking projects and changing controls crash the system
- Cloud variables will not be supported
- RAM is very limited, so try to keep projects small
- A bunch of Audio limitations, see README for details
- Via pull request 362!
Web Port!
- @gradylink has ported the Runtime to WebAssembly!
- With this, ScratchBox: https://scratchbox.grady.link is also updated to use SE!
- Via pull request 334!
PS4 Port!
- @PwLDev has spent over 3 months porting SE! to the PS4!
- Now all 3.5 modded PS4 users can enjoy Scratch games on the big screen!
- KNOWN ISSUES
- Cloud variables is not currently supported
- Via pull request 278!
Runtime Changes
- Optimized Sprite rendering performance
- Fixed huge memory leak with If else block
- Fixed Main Menu and audio memory leaks
- Switch costume to blocks with a number as an input now chooses the correct costume
- Fixed positioning of Monitors (Visible Variables)
- Changed the look of Monitors look a bit more like Scratch
- Added support for more Monitor types
- Added Scratch Everywhere! controller custom block
- Returns the current controller being used
- [SDL2 Platforms]- Fixed scaling of Pen stamped Sprites
3DS Changes
- Fixed rendering with the Pen extension
- The Pen extension can now be used in dual screen mode
- The mouse can no longer go off screen
- Fixed compilation error when ENABLE_AUDIO is off
Wii Changes
- Fixed projects being at an unplayable Framerate
Wii U Changes
- The Stop "All" block now correctly takes you back to the Main Menu
Vita Changes
- Sounds from the stage now play as Streamed audio
Switch Changes
- Fixed keyboard menu not closing when closing the software keyboard
v0.26
3DS Changes
- Migrated from SDL2 to SDL3 for audio
- Overall audio performance will be better with this change!
- Every sound is now a streamed sound, meaning you no longer have to put certain sounds in the stage!
- Refactored images to use 2x less RAM!
- Unused images will now stay in memory for longer before being freed
- Changed from 4 seconds to 21 seconds
- Audio now works when using .cia
GameCube Changes
@Extrems has done a ton of work to the GameCube port recently!
- Migrated to libogc2
- Fixed not being able to find projects in Main Menu
- This means the GameCube build can finally come back to releases!
- Fixed GameCube controller inputs getting stuck
- Fixed system time getting reset to January 1st, 2000
- Fixed progressive scan mode being forcibly enabled when using component video
- General GameCube code cleanup
- All via pull request 411!
Switch Changes
- Fixed audio not working
- Fixed Dockerfile builds crashing
- This should also fix the crashing that was present in Beta 25.
- Fixed resolution not getting changed correctly
- Swapped ABXY buttons from Xbox layout to Nintendo layout
- Added correct error text for no projects in Main Menu
- Fixed icon not showing up
Runtime Changes
- Lists now have a maximum length of 200,000 items
- the equals block is now case-insensitive, matching Scratch behavior
- Stop "other scripts in this sprite" block now stops playing sounds in the sprite
- Sounds are now in memory longer before getting freed
- Changed from 8 seconds to 21 seconds
- Sound loading is no longer threaded
- This means that every time a new sound is loading, the game will freeze for a bit, until the sound is loaded.
- There are pros and cons to this, but ultimately this change makes audio more stable.
- [SDL2]- Sounds in the stage can now be stopped by Stop all sounds block
- The Stop all sounds block now stops every playing sound, not just sounds in the sprite
- Fixed collision on off-center costumes
- Fixed sprites with off-center costumes being rendered in the wrong position
- Images now stay loaded in memory when stamping with Pen
- Custom controls will now only try to load with projects from the Main Menu
- Main Menu buttons can now be clicked with touchscreen devices
- Renamed Running flag block text in loading screen to Finishing up!
v0.25
New Features
- Pen Support!
- The heavily requested and long awaited Scratch extension is finally here!
- Pen is not currently supported on Switch or PS Vita.
- Pen will not work correctly on 3DS when using dual-screen mode.
- There may be more issues we haven't found, so please open up bug reports!
- Project splitting!
- Ever wanted to make a huge game but you're hitting memory limits? Now you can split your game into multiple Scratch projects to get around this!
- It uses custom blocks to open projects
- You can find more information with the example project: https://scratchbox.grady.link/project/twStEkSKjQaH!
- Turbo Mode
- If Turbo mode is enabled in your Scratch project, Scratch Everywhere! will also enable it!
Parity Changes
- Time based blocks now uses the device's local time instead of a set time zone
- Days since 2000 block now updates every millisecond instead of every second
- Current "month" block now returns the correct month
- Added support for more hidden Scratch blocks
Runtime Changes
- Big refactor to how numbers work under the hood
- Performance overall should be a bit better
- Fixed Sprite collision box being rotated the wrong way
- Added support for nine-slice rendering in the Main Menu
3DS / Wii U Changes
- Cloud variables should now work correctly (this was my bad, I compiled it wrong last beta)
v0.24
New Features
- Add support for changing your username in the main menu settings
- If disabled, the username block will return your console's nickname
- If enabled, you can choose a custom username and the username block will return that instead
Runtime Changes
- The touching block now works correctly with vector images
- Fixed sound effects getting cut off if a new one gets played
- Sound effects now get unloaded from memory after a few seconds of it not playing
- Sound effects with low volume now play correctly
- Sound blocks now work correctly if the input is another block
- The main menu buttons has been replaced with new SVG versions
- The main menu GUI now scales depending on screen resolution
- Added project loading screen to SDL2 platforms
- Reverted project.sb3 auto opening at startup
3DS Changes
- Fixed a bug causing some vector images to appear bigger than it should
Wii Changes
- The username block now returns the Wii's nickname
v0.23
New Features
- Scratch Everywhere! Custom Blocks!
- This actually isn't a new feature, but we never talked about them at all so I'll talk about it here :)
- Similar to TurboWarp's is compiled? and is TurboWarp? blocks, We've made a few new blocks that Scratch Everywhere! can understand!
- You can still upload your projects to the Scratch website when using these new blocks!
- is Scratch Everywhere!? block returns true if your project is running on Scratch Everywhere, and returns 0 otherwise.
- is New 3DS block returns true if your project is being played on a New 3DS, returns false otherwise.
- Scratch Everywhere! platform returns the platform your game is being played on (3DS,Wii,etc).
- A project containing these blocks can be downloaded here: https://scratchbox.grady.link/api/project/K26OtTN2WDJ9/download!
- Unpack project option in project settings!
- Instead of the normal way the runtime works by putting the entire scratch project in memory, unpacking a project eliminates this by only loading things when it needs to!
- Unpacked projects are great for large projects, and projects with a ton of images!
- Depending on the speed of your SD card, unpacked projects can run way faster than normal projects!
- Unpacked projects will have a lightning symbol next to it, and will appear towards the bottom of the project menu.
- Bottom Screen option in project settings!
- For 3DS, you can enable any project to be played on the bottom screen instead of the top screen!
- Great for projects where the touchscreen plays a key factor in gameplay!
- This also means Scratch Everywhere! can be used with a broken top screen! (I know at least 1 person will be happy about this)
Runtime Changes
- If you have a project in your Scratch Everywhere! folder named project.sb3, the project will now automatically run when opening the app.
- Changed D-Pad controls in Main Menu
- NOTE:- If you're using a Wii Remote, this means you now have to use the remote sideways to navigate the Main Menu.
- Added more splash text to the Main Menu
- Fixed a ton of memory leaks under the hood
3DS Changes
- Fixed buttons in the Main Menu sometimes not loading correctly
Switch Changes
- Changed resolution to the handheld's native 1280 x 720, instead of being a weird stretched resolution
v0.22
New Features
- Brightness costume effect added!
- Logs now get saved to a log file
- Log file is located in the same spot your scratch projects are placed
- [3DS]- Logs are only saved when holding Select while launching the app
Runtime Fixes
- Fixed When this sprite clicked being ran for every sprite instead of only the sprite that's clicked
- Fixed When this sprite clicked being able to click multiple sprites in one click
- Fixed a few crashes that could happen related to audio
- Fixed backdrop rendering
- Added some new Main Menu splash text
- A bunch of code refactoring under the hood
3DS Changes
- Fixed bottom screen not rendering correctly
v0.21
New Features
- Main menu splash text!
- A random message will appear at the bottom of the logo!
Runtime Changes
- Reverted vector image collision fix
- This caused many issues with image rendering, so vector image collision will be inaccurate until we find a better fix.
- Fixed collision not working on clones
- Broadcast and Broadcast and wait blocks should work more consistently
- Fixed sprites sometimes rendering behind the backdrop
- Added version number in main menu
- Changed font in main menu
- Fixed controls menu not saving or loading properly
- Removed .sb3 extension in the project menu
3DS Changes
> [!IMPORTANT]
> This beta release changes the location Scratch projects need to be placed at!
> Changed from sd:/3ds/ to sd:/3ds/scratch-everywhere! Make sure to move your projects!
- CIA release!
- Highly requested feature finally brought together!
- Via pull request 317!
- New RAM_AMOUNT compile variable
- Used for old 3DS to specify the maximum amount of RAM it can use
- More info in the README
- Changed executable name from Scratch to scratch-3ds
- Optimized text rendering
PS Vita Changes
- Significantly improved performance!
- Via pull request 321!
Known Issues
- Backdrop images may not render correctly
- [3DS]- File size is much larger due to using new fonts
v0.20
New Features
- PS Vita port!
- - Via pull request (274)
Scratch Parity
- Added When this sprite clicked block
- Added When backdrop switched to block
- Added Show list and Hide List blocks (Via 295)
- Added support for dragging sprites
Runtime Changes
- Added support for more clones when Infinite Clones is enabled in TurboWarp or other Scratch Mods
- Mouse position is now more consistent
- Fixed collision on vector images being half the size it should be
- Fixed Move __ steps block not fencing the sprite correctly
Wii Changes
- Fixed projects not searching in the right location in the SD card
3DS Changes
- Changed icon
v0.19
Scratch Parity
- Added support for hidden While block
- Support last, all, and random as list indexes
- Support Infinity and -Infinity
- The default distance in the distance to block is now 10000
- The mod block now works like Scratch does
- Support scientific notation
- Support octal, hex, and binary numbers
- Support string comparisons
- List block items no longer get separated by a space if all items are one character long
Runtime Changes
- Fixed crash when custom block arguments are used outside of the custom block definition
- Fixed layering working incorrectly
3DS Changes
- Stereoscopic 3D support!
- - Uses Scratch's layering system to determine 3D depth
- - NOTE: using 3D may result in worse performance. I'm working to fix this.
- Fixed unzipped projects crashing after some time
Wii U / Switch Changes
- Added stick click support!
- - Left stick click is c
- - Right stick click is v
v0.18
New Features
- Scratch Everywhere! logo
- Added support for more image types
3DS Changes
- When compiling an unzipped project, all bitmap images get converted to .t3x format
- - This means images will load way faster, and the problem with images not loading is gone!
- Fixed audio cracking (again)
- - Note: audio may still crack in certain scenarios.
Wii U Changes
- Fixed icon and boot splash not showing up on the home screen
Wii Changes
- Fixed audio not working
- Fixed wrong date in meta.xml
Switch Changes
- Fixed audio not working
0.17
New Features
Scratch Everywhere!
- The name has been changed to Scratch Everywhere!
- That's Scratch Everywhere! with the exclamation point btw..
- It made 0 sense to keep the name Scratch 3DS as this is now on 5 different platforms...
- speaking of which...
**Switch Port!**
- For all 1.5 people who own a modded Switch, you can now enjoy Scratch games!
- Via pull request (#97)!
All new main menu screen!
- The Main Menu has gone through a huge refactor under the hood!
- It should be a smoother and better experience overall!
- It's still a work in progress, but now it should be a little easier to add stuff to it in the future!
Custom controls!
- In the Project menu is a new option to remap the controls of any project!
- Control mappings get loaded and saved to `scratch-everywhere/'project_name'.json`
- Wii U is `sd:/wiiu/scratch-wiiu/'project_name.json'`
Runtime changes:
- Sprite fencing has been implemented!
- Can be disabled with TurboWarp or other Scratch mods.
- The `Stop 'All'` block now takes you back to the Main Menu instead of the homebrew menu!
- Note: The Wii U will still exit the app, as it would freeze when going back to the Main Menu for some reason.
- Booleans (anything set to `true` or `false`) now doesn't get set to `1` or `0` by the runtime mistakenly
- Fixed a couple of crashes that could happen while loading
- Custom blocks with no definition now works as intended
- The runtime can now be compiled with `ENABLE_AUDIO=0`.
- For the 3DS, this means smaller file size, and you no longer need SDL2 to compile.
3DS Changes:
- Fixed crash when closing the app
- Fixed audio cracking issue
- Sprites are no longer rendered in fractional positions, fixing some image weirdness
- Changed image filtering from `nearest` to `linear`
- This fixes the image fuzziness and weirdness issues, with a tradeoff to some images looking slightly blurry. I might add a filtering option to the Main Menu in the future.