Scratch Everywhere 3DS: Difference between revisions
More actions
No edit summary |
No edit summary |
||
| Line 12: | Line 12: | ||
|source=https://github.com/NateXS/Scratch-Everywhere | |source=https://github.com/NateXS/Scratch-Everywhere | ||
|donation= | |donation= | ||
}} | }} | ||
Scratch Everywhere! is a work-in-progress runtime written in C++ that lets you run Scratch 3 projects. Initially developed for the 3DS, it now supports a number of 6-8th generation consoles including Wii, Wii U, NDS, PSP, Vita, Switch and PS4. | Scratch Everywhere! is a work-in-progress runtime written in C++ that lets you run Scratch 3 projects. Initially developed for the 3DS, it now supports a number of 6-8th generation consoles including Wii, Wii U, NDS, PSP, Vita, Switch and PS4. | ||
Revision as of 20:45, 20 March 2026
| Scratch Everywhere | |
|---|---|
| General | |
| Author | NateXS |
| Type | Other Apps |
| Version | 0.37 |
| License | LGPL-3.0 |
| Last Updated | 2026/03/08 |
| Links | |
| Download | |
| Website | |
| Source | |
Scratch Everywhere! is a work-in-progress runtime written in C++ that lets you run Scratch 3 projects. Initially developed for the 3DS, it now supports a number of 6-8th generation consoles including Wii, Wii U, NDS, PSP, Vita, Switch and PS4.
Features
- Supports executing many Scratch 3 projects, including those created in modded clients like TurboWarp.
- Mouse controls are mapped to the touchscreen: glide a finger or stylus on the bottom screen to move the cursor, tap to click.
- Multiple screen modes available by adjusting project resolution in advanced settings (TurboWarp recommended).
- Default projects use the top screen.
- Set resolution to 400x480 for dual-screen mode.
- Set to 320×240 for bottom screen only.
- Set to 400×240 for top screen fit.
- Audio support for MP3, Ogg Vorbis, and WAV file formats.
- Special custom blocks exclusive to Scratch Everywhere!
- Modifiable framerate when using TurboWarp.
Installation
Download either the .cia or .3dsx version from the Releases page.
CIA:
- Install the .cia file with fBI.
- Place Scratch projects in 3ds/scratch-everywhere/.
- Launch Scratch Everywhere! from the Home menu.
3DSX:
- Place the .3dsx file in the 3ds/ folder.
- Place Scratch projects in 3ds/scratch-everywhere/.
- Run via the Homebrew Launcher.
See readme for controls.
Media
Porting Scratch to the 3DS (NateXS)
Limitations
General:
- Text will not show up on vector images containing it.
- Most Extensions (e.g. music extension) are not yet supported.
- Only the
Pen,Text to Speech(Wii U and 3DS only), andMakey Makeyextensions are currently supported.
- Only the
- Some blocks may lead to crashing/unintended behavior (Please open an issue if you know of a block that's causing problems).
- Performance is poor when using many (~30+) clones (memory management issue).
3DS:
- If a sound has to load while other sounds are playing, all sounds will stop playing until the sound is loaded.
- Sounds may fail to load if the length of the sound is too long, or if there's too many sounds loaded at once.
- Performance is poor when lots of blocks are running at once.
- If you have a bunch of large images, some may not load.
Changelog
Beta Build 37
- Runtime Changes
- The SVG Update!!
- Switched SVG backends from NanoSVG to LunaSVG (Via #568)
- LunaSVG supports many more SVG features, so things such as bitmap images inside of vector images are now supported!
- LunaSVG also allows us to support text inside of vector images!
- Many of Scratch's default fonts (
Pixel,Sans Serif,Serif,Handwriting,Marker,Curly) are supported - Other fonts will fallback to a default font
- The app size has increased a bit due to having to embed all the fonts
- Many of Scratch's default fonts (
- Added the ability for SVG images to scale up and down in resolution (Via #571)
- This means SVG images should no longer be pixelated when at an increased size!
- Switched SVG backends from NanoSVG to LunaSVG (Via #568)
- Performance Updates
- Added
Pen ModeProject Setting- When
Pen Modeis set to fast, Performance with pen is way faster, with the tradeoff of rendering pen strokes as rectangles instead of circles - Fast pen is good for when your project has hundreds of pen blocks being called every frame, otherwise Accurate pen is still a good choice
- When
- Added
Show FPSProject setting- When turned on, it adds debug Monitors showing you FPS and Frame Time information
- Added
Keep Project In RAMProject Setting- When turned off, the entire .sb3 project file will no longer be kept in RAM, which is great for large projects on low RAM devices
- Assets (Images and Sounds) will take longer to load when this option is turned off
- This option is on by default for all devices except for NDS, PSP, and GameCube
- Increased Performance by Caching a bunch of data (Variable/List data, block handlers, etc) (Via #565)
- In some cases this improves performance quite significantly!
- This is not available for Low RAM devices (PSP, NDS, 3DS, GameCube, Wii)
- Added
- Fixes
- Fixed crash when loading RomFS projects
- The SVG Update!!
- Parity Changes
- Added support for
data_variableanddata_listcontentshidden blocks (Via #569) - Fixed parsing error when parsing block field values that are arrays
- Added support for
- Menu Changes
- Projects are now sorted Alphabetically
- The Unpacked Project button is now a vector instead of a bitmap image
- PSP & PS Vita Changes
- PSP and Vita are now built in Release mode
- This means that performance on these devices should now be much better!
- [Vita] denoise livearea background
- PSP and Vita are now built in Release mode
- PS4 Changes
- Enable VSync
- This Beta was brought to you by; @gradylink, @Dogo6647, @NishiOwO, @DevelopCMD, @poipole807, @PwLDev, and @NateXS
Beta Build 36
- Runtime Changes
- Refactored a bunch of image code under the hood
- This also has the side effect of fixing some Sprite position and brightness effect issues
- The
touching __block has been optimized - Fixed default controls getting set even when custom controls are set
- Refactored a bunch of image code under the hood
- Parity Changes
- Support
undefinedas a value - Add support for
motion_xscroll,motion_yscroll, andsensing_useridblocks - Variable monitors can now only display numbers at up to 6 decimal places
- All via PR (#563)
- Support
- 3DS Changes
- Fixed position/fencing issues on custom resolution projects
- Fixed memory leak when freeing audio
- Fixed Audio cracking and slowdown issues on Old 3DS (Via an SDL PR)
- webOS Changes
- Fixed project path being incorrect
- PSP Changes
- Disabled VSync
Beta Build 35
- Runtime Changes
- Fix crash when loading audio in unpacked projects
- Fix custom blocks still running after deleting the sprite
- Added support for TurboWarp's 0 FPS option
- Fix controls not being set sometimes
- Pen is now cleared when exiting a project
- Fix high DPI displays being scaled weirdly (via #552)
- Parity Changes
- Added
is online?block- Please note that this block isn't correctly implemented, as it will only return true if your build supports cloud variables.
- Added support for the
sliderMonitor type - Added pages to
listMonitors - The
Stop Allblock no longer takes you to the main menu- To get to the main menu, you can pause the Project by holding
startfor 3 seconds.
- To get to the main menu, you can pause the Project by holding
- Changed Sprite layering to be closer to Scratch
- Fixed some parity issues with
Backdropblocks - The
modblock can now returnNaN - The
x contains xblock is now case-insensitive Soundblocks now yield for 1 tick- The
Sizereporter block now has its value rounded
- Added
- 3DS Changes
- Fix bottom screen being white in Dual-Screen mode
- Fix text position being a bit too far down
Beta Build 34
- Menu Changes
- The main menu is no longer jolly....
- Parity Changes
- Implemented all
SayandThinkblocks! - Implemented
Switch Backdrop to x And Waitblock - Fixed position of monitors (visible variables) when using a custom Project resolution
- Sprite fencing should now be a bit more accurate
- Fixed some Sprite layering issues
- Fixed
Delete This Cloneblock sometimes not working - Fixed Broadcast blocks not working in some projects
- Fixed number overflow issues
- Implemented all
- Runtime Changes
- Fixed collision on non-rotated Sprites
- 3DS Changes
- Monitors are now supported in Dual-Screen mode
- Credits
- This beta was brought to you by: @roccopm, @poipole807, @PwLDev, @Dogo6647, @gradylink and @NateXS
Beta Build 33
- Runtime Changes
- Fixed a bug causing the app not to launch on Windows, Wii U, NDS, and PS4
- Added support for
PitchandPan left-rightaudio 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
- Removed NDS menu music from non-NDS platforms
- 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
- NOTE: Intel macs are still using SDL2.
New Icon- Due to an issue, there is no longer an icon.
- Updated to SDL3
Beta Build 32
- Menu Changes
- Added a Project pause menu
- Accessed by holding
Startfor 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
- Accessed by holding
- 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
- Added a Project pause menu
- 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 Projectcustom block can now open projects inside of the RomFS (Via #508) - The
Text To Speechblock 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
- We did a whooole lot of code refactoring under the hood
- Parity Changes
- Fixed the order in which
When I start as cloneblocks run - Fixed
Next Backdropblock not working - You can no longer click on a Sprite that has a
ghosteffect of 100 - The
For Eachblock now has better parity - The
When Key Pressedblock is no longer tied to the FPS - Turbo Mode now works like Scratch
- The
Broadcast and Waitblock 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
doubletostringconversion (Via (#520) - Variables can no longer be an
int - Fixed some custom blocks not working
- Fixed the order in which
- 3DS Changes
- Collision in Dual-Screen mode is now correct
- Mouse position in Dual-Screen mode is now correct
- PC Changes
- The
usernameblock can now get your PC's username - Settings are now stored in your OS's respective configuration folder.
- The
- NDS Changes
- Added new menu music
- This beta was brought to you by: @Dogo6647, @poipole807, @Br0tcraft, @leap0x7b, @gradylink, @roccopm, @DevelopCMD, @Starlii10, aaaaand @NateXS
Beta Build 31
- 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 !)
Touchingblocks 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
Soundblock 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
Touchingblock - The
StageSprite can no longer be cloned - Scratch 2.0
Penblocks have been implemented - Fixed
BroadcastandEffectblocks 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
Beta Build 30.1
- 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
Beta Build 30.1
- New Features
- WebOS port!
- [Wii U, 3DS]
Text to Speechextension support!- Works by using Scratch's Text-To-Speech API to send speech data to the device
- From @Br0tcraft (PR #480)
Makey Makeyextension 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!
- 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 Costumeblocks with numbers as input now prioritize the costume name over the costume number- Fixed
When this backdrop switches toblock 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
+Infinitynot working correctly - Allow for hacked dropdown inputs
- Added
Core ExampleExtension - Implement Scratch's weird spacing rules with
Listreporter blocks (PR #467) - Fixed whitespace comparison (PR #464)
- Fixed the order in which blocks run
- Added festive music to the Main Menu! (Tunes as always from @Dogo6647)
- 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
- Increased command buffer size
- Wii / GameCube Changes
- Added
StreamedSound Support!
- Added
- PSP Changes
- Fixed
RomFSprojects not working
- Fixed
Beta Build 29
- New Features
- PSP Port!
- Switch Changes
- Upgraded to the latest
libnxversion, meaning SE! is now supported on Firmware21.0.0.
- Upgraded to the latest
- 3DS Changes
- Fixed app not closing when closed from the Main Menu
- Runtime Changes
- The Main Menu is feeling a bit jolly...
- Changed
Arialnfont toLiberation Sans Narrowfont
- Parity Changes
- Added instant block execution
- In Scratch, if nothing on screen happens, all blocks run as if
Run Without Screen Refreshwas on. SE! now handles this behavior.
- In Scratch, if nothing on screen happens, all blocks run as if
- Sprites now correctly run their blocks in layer order
- The
directionblocks are now correctly clamped and rounded - The
Change Variable by xblock now works correctly when putting in letters as input - Fixed some blocks not running without screen refresh when they should
- The
Pick randomblock now correctly works with non-decimal numbers NaNis 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
nullinput bug correctly - Fixed
Broadcast and waitblock's weird behavior from a clone who's ready to be deleted
- Added instant block execution
Beta Build 28
- Runtime Changes
- Added Music to the Main Menu (tunes by @Dogo6647 !)
- [Non-3DS Platforms] Added support for TurboWarp's
High Quality Penoption - 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
Infinityandnannumbers - Fixed crashes related to
listblocks - Projects that contain Lists with many items now load faster
- The
Open projectblock 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
CMakefor 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
Beta Build 27
- 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 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!
- Warning: The PS4 package on this GitHub release is broken. Please download beta 27 from pkg-zone instead.
- Runtime Changes
- Optimized Sprite rendering performance
- Fixed huge memory leak with
If elseblock - Fixed Main Menu and audio memory leaks
Switch costume toblocks 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! controllercustom block- Returns the current controller being used
- [SDL2 Platforms] Fixed scaling of Pen stamped Sprites
- 3DS Changes
- Fixed rendering with the
Penextension - The
Penextension can now be used in dual screen mode - The mouse can no longer go off screen
- Fixed compilation error when
ENABLE_AUDIOis off
- Fixed rendering with the
- 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
- The
- Vita Changes
- Sounds from the stage now play as
Streamedaudio - Warning: The Vita package on this GitHub release was accidentally compiled without audio support. Please download beta 27 from here instead.
- Sounds from the stage now play as
- Switch Changes
- Fixed keyboard menu not closing when closing the software keyboard
Beta Build 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
- Migrated from SDL2 to SDL3 for audio
- 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,000items - the
equalsblock 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 soundsblock - The
Stop all soundsblock 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 blocktext in loading screen toFinishing up!
- Lists now have a maximum length of
Beta Build 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!
- Turbo Mode
- If Turbo mode is enabled in your Scratch project, Scratch Everywhere! will also enable it!
- Pen Support!
- Parity Changes
- Time based blocks now uses the device's local time instead of a set time zone
Days since 2000block now updates every millisecond instead of every secondCurrent "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
- Big refactor to how numbers work under the hood
- 3DS / Wii U Changes
- Cloud variables should now work correctly (this was my bad, I compiled it wrong last beta)
Beta Build 24
- New Features
- Add support for changing your username in the main menu settings
- If disabled, the
usernameblock will return your console's nickname - If enabled, you can choose a custom username and the
usernameblock will return that instead
- If disabled, the
- Add support for changing your username in the main menu settings
- Runtime Changes
- The
touchingblock 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.sb3auto opening at startup
- The
- 3DS Changes
- Fixed a bug causing some vector images to appear bigger than it should
- Wii Changes
- The
usernameblock now returns the Wii's nickname
- The
Beta Build 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?andis 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 returnstrueif your project is running on Scratch Everywhere, and returns0otherwise.is New 3DSblock returnstrueif your project is being played on a New 3DS, returnsfalseotherwise.Scratch Everywhere! platformreturns the platform your game is being played on (3DS,Wii,etc).- A project containing these blocks can be downloaded here!
- 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)
- Scratch Everywhere! Custom Blocks!
- 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
- If you have a project in your Scratch Everywhere! folder named
- 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
Beta Build 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
Beta Build 21
- New Features
- Main menu splash text!
- A random message will appear at the bottom of the logo!
- Main menu splash text!
- 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
- Reverted vector image collision fix
- 3DS Changes
- 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
- CIA release!
- PS Vita Changes
- Significantly improved performance!
- Via pull request #321!
- Significantly improved performance!
- Known Issues
- Backdrop images may not render correctly
- [3DS] File size is much larger due to using new fonts
Beta Build 20
- New Features
- PS Vita port!
- Via pull request (#274)
- PS Vita port!
- 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
Beta Build 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
- Stereoscopic 3D support!
- Wii U / Switch Changes
- Added stick click support!
- Left stick click is c
- Right stick click is v
- Added stick click support!
- Wii Changes
- [EDIT quick fix] fixed projects searching in SD card root instead of searching in apps/scratch-wii
Beta Build 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.
- When compiling an unzipped project, all bitmap images get converted to .t3x format
- 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
Beta Build 17
- 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
- Logging blocks created by Scratch Addons Debugging Addon can now be used.
- 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.
- Sprite fencing has been implemented!
- 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.
- Wii Changes
- Fixed projects not showing up in Main Menu
- Fixed images sometimes not being able to load
- [Quick Edit 16 Aug 2025] Fixed meta.xml showing the wrong date
- Wii U Changes
- Fixed projects not showing up in Main Menu
Beta Build 16
- Wii and Gamecube port!
- The runtime has been ported to 2 new consoles!
- More information in the README!
- [3DS and Wii U] Cloud Variable support!
- Cloud Variables now sync over the network with anyone also playing the same game!
- Syncs across both Wii U and 3DS
- Note: does NOT sync with people playing on the Scratch website or Turbowarp.
- Via pull request (#145)
- Runtime Changes
- Broadcast blocks now have more consistent behavior
- Disabling Fencing in advanced settings now disables size limitations
- Variables set to True or False no longer gets set to 1 or 0
- Images in any project now only load whenever it's needed, instead of loading every image in memory while loading the project
- [Wii U] Main Menu with no projects should now work correctly
- [Wii U] Unzipped projects now load images and sounds correctly
- [3DS] when compiling, the final executable will now be in build/3ds/ instead of the root directory.
Beta Build 15
- New Features
- Vector Image Support
- You no longer have to convert your vector images to bitmap!
- [3DS] Mouse Mode
- Mouse mode has been removed and replaced with Trackpad-like behavior on the bottom screen!
- Glide your finger/stylus on the bottom screen to move the mouse, and quickly tap to click
- The old "holding L and using the D-pad" has been removed
- If your scratch project uses the bottom screen, trackpad mode is disabled and replaced with normal touchscreen behavior
- Vector Image Support
- Runtime Changes
- Fixed "If" blocks continuing if it should've been stopped by a Stop 'this script' block
- Fixed "List" blocks not working correctly if set to For this sprite only
- [3DS] fix Main Menu error text being cut off
- [Wii U] Mouse position is now calculated accurately
- Known Issues
- [3DS] Some vector images may appear bigger than they should
- If a vector image contains text, the text will not render
Beta Build 14
- New Features
- "Show variable" and "Hide variable" blocks added!
- Variables can now show on screen!
- Runtime Changes
- Fix broadcast blocks not working correctly sometimes
- Fix Stop "this script" and Stop "other scripts in this sprite" blocks not working correctly sometimes
- Fix invalid sounds crashing the app
- [Wii U] Unselected projects in Main Menu are now black instead of red
- [3DS] if compiling an unzipped project, more images can now be loaded without failing
- [3DS] You no longer crash/get kicked to the homebrew menu while loading images initially
- If your project has many images, some will not load and render as a black square. A fix for this is in the works.
- [3DS] when compiling, you now have the option to disable the loading screen visuals. Run make ENABLE_BUBBLES=0 when compiling.
Beta Build 13
- New Features
- [Wii U] Main Menu and file picker!
- You no longer have to name your project "project.sb3", and can have as many projects as you want!
- You still need to put all your projects in sdcard:/wiiu/scratch-wiiu/.
- [Wii U] Main Menu and file picker!
- Runtime Changes
- [3DS] Loading sounds now run in the background and no longer freezes the game!
- Known issue: loading a sound while other sounds are playing will mute all sounds until the sound is done loading.
- [3DS] Fixed crash if an image failed to load
- "Set Volume to", "Change Volume by", and "Volume" blocks added
- Fixed Play Sound until done block not working correctly if played in the Stage
- [3DS] Loading sounds now run in the background and no longer freezes the game!
Beta Build 12
- New Features
- [3DS] Audio Support!
- "Sound effect" (volume, pitch) blocks still not implemented yet
- See README for more limitations
- [3DS] Audio Support!
- Runtime Changes
- Fixed repeat blocks behaving weirdly if run from a broadcast block
- Fixed "If on edge, bounce" block not taking into account the scale of the sprite
- Fix collision sometimes not working
- [3DS] Fix project names sometimes not rendering in Main Menu
- [3DS] Fix projects not being able to go above 30 FPS
- [3DS] You now need 3DS versions of SDL2 and SDL2_mixer to compile
- [Wii U] Sound loading now runs in the background and doesn't freeze the game
- [Wii U] Images now work on unzipped projects
- [Wii U] Fixed screen tearing
Beta Build 11
- New Features
- [Wii U] Audio Support!
- Supports mp3, wav, and ogg currently
- "Start sound" "Play Sound Until Done" and "Stop all Sounds" implemented
- "Sound effects" (volume, pitch) not yet implemented
- 3DS audio support was going to be this beta, but there's still a couple of things to fix there unfortunately.
- [Wii U] Audio Support!
- Runtime Changes
- [3DS] Fixed crashing when sometimes loading an image for the first time
- this fix could also fix the Main Menu crashing, but again I didn't have that issue in the first place and can't test if this is true.
- [3DS] Doubled the amount of time an image can go unused before being freed
- [3DS] Fixed rotation and scaling inconsistencies (via #137 )
- [Wii U] Added support for 'ghost' effect block
- [3DS] Fixed crashing when sometimes loading an image for the first time
Beta Build 10
- Costumes now prioritize names over index
- Fixed empty costume inputs causing the app to close
- Fixed "Key Pressed" block with other blocks as input causing crashes
- [Wii U] Fix freeze when going to home menu and back in game
- Fix weird behavior when multiple custom blocks have the same argument variable names
Beta Build 9
- Fix "wait" block not working
- Added black bars to the sides of the screen if the aspect ratio of the project and screen don't match
Beta Build 8
- Wii U Port!
- @gradylink was epic enough to port the runtime to Wii U!
- Features basically everything the 3DS port currently does!
- Runtime Changes
- [3DS] Fixed long names in the Main Menu being cut off
- Fixed 'if' Blocks with time-based blocks inside not working properly
- Fixed some blocks returning "0" when they should have returned nothing
- Fixed some sprites not rendering in the correct position
- Fixed "Pick Random" block not working as intended sometimes
- Fixed certain costumes not being set correctly
- Fixed sometimes not having any "advanced settings" get enabled
- Fixed size not getting set if sprite has never been rendered yet
- "Wait" block now waits for at least 1 frame, matching Scratch's behaviour
Beta Build 7
- Parity Changes
- Costume Blocks with numeric values as input now sets the correct costume
- Non-centered sprites now correctly* detect collision
- Runtime Changes
- Fixed a crash caused by 'Repeat Until' block
- Fixed being unable to close the app while in the Main Menu
- Fixed advanced settings not working if setting 'disable fencing' 'infinite clones' etc
- Known issues
- non-centered sprites still do not correctly detect collision if dual-screen mode is enabled
- Some blocks causing unintended bahaviour, I'm currently investigating which ones
- Some images may fail to load and render as a black square if your project has many images
Beta Build 6
- Runtime Changes
- Fixed loading images sometimes causing crashes
- Flipped sprites now render in the correct position*
- The collision of sprites is now correctly detected when scaled
- The collision box no longer rotates when rotation mode is "don't rotate"
- If VRAM usage is too high, new images will wait to load instead of going over the VRAM limit and crashing
- fixed crash caused by 'repeat until' block
- Known Issues
- some flipped sprites still wont render in the right position
- Image loading for some reason is still having issues sometimes
- Some people last Beta reported the main menu crashing their system, but I couldn't reproduce it for myself. I did a slight optimization this Beta with text rendering, but I don't know if that fixes the crashes or not.
Beta Build 5
- Additions
- New Main Menu screen! If there's no project in the RomFS, this will be what loads!
- You no longer have to rename your projects "project.sb3," and you can now have as many projects as you want on your SD card!
- The menu is pretty simple right now, more to be added here in future releases.
- If you're compiling, you still need to name your project "project.sb3"
- Bottom Screen only support! it gets enabled if you set your project dimensions to 320x240 with Scratch mods like TurboWarp.
- 'Ghost' Costume effect block added
- 'Clear graphic effects' block added
- Changed name from "Scratch 3DS Runtime" to just "Scratch 3DS"
- New Main Menu screen! If there's no project in the RomFS, this will be what loads!
- Bug Fixes
- Fixed empty operator blocks causing crashes
- Images less than 255x255 in size should load faster
- Sprites' minimum and maximum scale has been changed to match Scratch
- Sprites can now be rotated with values smaller than 1, matching Scratch's behavior
- Fixed certain blocks and large projects in general causing the app to close
- Known Issues
- Image related crashes and bugs are still a thing in this beta :(
Beta Build 4
- Runtime Changes
- Projects now load and run much faster!
- My test project on old 3DS now runs with no lag!
- This is thanks to me turning on some compiler optimizations, not sure if this will cause issues down the road so I'll be monitoring this as time goes on.
- New homebrew app icon! (via #31)
- Changed homebrew app Description
- Fixed image flickering issue
- Fixed loading multiple large images at the same time causing crashes
- Images now properly get freed from memory after 4 seconds of being unused, or when crossing a memory threshold
- Repeat blocks inside of Repeat blocks now work correctly again
- this also includes blocks like wait until, forever, glide to, etc
- "username" block works properly again; it uses your 3DS's nickname
- Fixed Custom Blocks sometimes making the app close during loading
- Projects now load and run much faster!
- Known Issues
- There are still a ton of bugs and crashes related to images and image loading, I'm working hard to fix these but for now I recommend keeping your image sizes small.
- sometimes sprites could get rendered in the wrong place
Beta Build 3
- Parity
- The "When Key Pressed" block now works correctly
- The "If On Edge, Bounce" block now works correctly
- Runtime Changes
- the ZR button is now mapped to the 'F' key on the keyboard
- fixed a bug where deleting and making a new clone at the same time caused crashes
- fixed an issue causing large images to crash
- (known issue) this fix introduced flickering when constantly switching costumes. Will be fixed in a later Beta
- fixed vector images sometimes causing crashes
Beta Build 2
- Runtime Changes
- Projects now run 3-10x faster on New 3DS, thanks to now using the New 3DS's extra power!
- my test project went from 10 - 50 ms of frametime to 4-10 ms of frametime!
- Loading projects is now run on a seperate thread
- added a very simple loading screen while loading a project
- Loading screen will now show errors if it cant find a project, instead of just crashing
- reverted the 1000 block at a time limit
- fixed "switch costume to" and "switch backdrop to" blocks sometimes causing crashes
- the new image freeing method actually works now and doesn't crash
- pressing start no longer closes the app
- Projects now run 3-10x faster on New 3DS, thanks to now using the New 3DS's extra power!
Beta Build 1
- Runtime changes
- BIG code refactoring under the hood! projects should run faster on average!
- There may be some crashing and bugs that I haven't seen yet, so beware...
- any block that repeats across multiple frames (repeat blocks, forever, etc) now run way faster and is WAY less bug-prone.
- custom blocks are now way less bug-prone.
- Changed the behavior of images.
- In the old system, when changing costumes, the old image would immediately be deleted and have to be reloaded.
- The new system allows for a certain amount of images to stay loaded in memory before being deleted.
- This means performance is way better if you're constantly switching costumes and backdrops.
- you can now see debug text if hold SELECT while launching
- blocks now get skipped if over 1000 blocks are running at the same time (may remove this later tbh)
- BIG code refactoring under the hood! projects should run faster on average!
- Parity Changes
- "touching sprite" block now only works if the sprite is visible
- fixed "move _ steps" block moving sprites in the wrong direction
Alpha Build 4
- New Features
- Added "If on edge, bounce" block
- Added "days since 2000" block
- Added "Current (year,month,etc)" blocks
- Added "Ask and wait" and "answer" blocks
- Added "glide x seconds to" blocks (known bug causing them to not work as intended.)
- Added "When key pressed" hat block
- Increased max clone count to 300 (though honestly right now you shouldn't go over like 5 💀)
- Bug Fixes
- Fixed unzipped projects crashing on startup
- Fixed crash when using a variable block
- Fixed nested repeat blocks not working correctly
- Fixed custom blocks and repeat blocks not working together correctly
Alpha Build 3
- New Features
- Scratch projects can now load when unzipping it in romfs beforehand. Doing it this way allows for faster loading times, less image limits, and the ability for me to add audio support later down the line.
- slight performance boost
- Fixed Bugs
- Rendering is now correct when bottom screen is enabled
- Sprites are now rendered in the correct position
- Fixed sprites not correctly rendering its transparent areas
- Mouse pointer now only shows if holding the L button, no longer all the time
- Fixed touch screen not touching in the correct position
- Fixed blocks under a custom block not being run
- Fixed blocks under a custom block being run twice in a single frame
- Fixed clones having incorrect collision
- Sprite X and Y values are now doubles instead of ints for greater precision
- Fixed wait block crashing game
- Fixed wait block running more than once per frame
- Integer variables are now correctly integers instead of doubles
- general source code refactoring
Alpha Build 2
- New Features
- Bottom screen support! You must use a modded scratch client like TurboWarp to set the project's size to 400 x 480 to enable this.
- You can now set custom FPS. You also need Turbowarp or other to set project FPS.
- "Set Rotation Style" block added
- Bug Fixes
- fixed conditionals not being read if put in the inputs of blocks
- rendering now takes the project's width and height into account
- fixed bug causing crash if a variable was inside of a "Switch Costume To" block
- fixed repeat blocks not working
- fixed a crash caused by deleting clones
- equals block now correctly works
- fixed repeat blocks sometimes not repeating when a clone uses them
- fixed sprites not rendering if their size was less than 100%
- fixed blocks run after a custom block having "Run Without Screen Refresh" enabled
- fixed bug causing custom blocks to crash on real hardware
Alpha Build 1
- First Release.