Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Scratch Everywhere Vita: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 4: Line 4:
|description=Custom Scratch Runtime made in C++.
|description=Custom Scratch Runtime made in C++.
|author=NateXS, Dogo6647
|author=NateXS, Dogo6647
|lastupdated=2025/09/14
|lastupdated=2026/04/14
|type=Other Apps
|type=Other Apps
|version=Beta Build 23
|version=0.39.1
|license=LGPL-3.0
|license=LGPL-3.0
|download=https://dlhb.gamebrew.org/vitahomebrews/ScratchEverywhereVita.7z
|download=https://dlhb.gamebrew.org/vitahomebrews/ScratchEverywhereVita.7z
Line 19: Line 19:
|image_alt=Scratch Everywhere
|image_alt=Scratch Everywhere
}}
}}
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, Vita and Switch.
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==
==Features==
* Many Scratch projects playable out of the box.
* Many Scratch projects playable out of the box.
* Special custom blocks exclusive to Scratch Everywhere!
* Special custom blocks exclusive to Scratch Everywhere.
* Use font touchscreen for mouse input.
* Mouse input- Use touchscreen for mouse input.
* Supports MP3, Ogg Vorbis, and WAV audio files.
* Framerate - When using a modded Scratch client like TurboWarp, you can enable the <code>60 FPS (Custom FPS)</code> advanced option, and change the FPS to any value.
* Modifiable framerate when using TurboWarp.
* Audio - A sound may take time to load if playing it for the first time.
** If you play any sound from the <code>Stage</code>, the sound will play as a <code>Streamed Sound</code> and will not need to load.
** Only one <code>Streamed Sound</code> can be playing at a time, so this is good for things like background music.


==Installation==
==Installation==
Line 36: Line 38:


Launch "ScratchEverywhere" from the LiveArea.
Launch "ScratchEverywhere" from the LiveArea.
See [https://github.com/ScratchEverywhere/ScratchEverywhere/blob/main/README.md#controls readme] for controls.
== SE! Project Settings ==
=== Change Controls ===
* Allows you to change the default controls of a project to your liking.
=== Unpack Project ===
* Allows you to unzip a project and run it in its unzipped state.
* An unzipped project is displayed as a yellow box with a lightning icon.
* Unzipping a project has the benefit of not needing the full project and its assets stored in RAM, which is useful depending on the device.
* Note: you will have to unzip the project every time you make changes to it.
=== [3DS, NDS] Bottom Screen Only Mode ===
* <code>Off</code> by default.
* Makes a project use the bottom screen instead of the top screen.
=== Pen Mode ===
* Options: <code>Fast</code>, <code>Accurate</code>.
* <code>Fast</code> by default.
* Setting it to <code>Accurate</code> gives the Scratch-Accurate pen look.
* Setting it to <code>Fast</code> can give a significant improvement to Pen performance, at the cost of pen lines being rectangular instead of circular.
=== Collision Mode ===
* Options: <code>Fast</code>, <code>Accurate</code>.
* <code>Accurate</code> by default on all platforms except for NDS.
* Setting it to <code>Accurate</code> gives the <code>touching ___</code> block Scratch-Accurate bitmask collision.
* Setting it to <code>Fast</code> gives the <code>touching ___</code> block simple rectangle collision, which gives a significant improvement to performance at the cost of accuracy.
=== Show FPS ===
* <code>Off</code> by default.
* Turning this on shows debug Monitors, giving you FPS and Frametime information.
=== Keep Project In RAM ===
* <code>On</code> by default on all platforms except for NDS, PSP and GameCube.
* Similar to the <code>Unpack Project</code> setting, turning this off has the benefit of not needing the full project and its assets stored in RAM.
* Turning this off will make assets take longer to load.
==Limitations==
* Most Extensions (e.g. music extension) are not yet supported.
* Only the Pen, Text to Speech (Wii U, 3DS, Linux, and Windows only), and Makey Makey extensions are currently supported.
* 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 (~50+) clones (memory management issue).
* [Switch, PSP, Vita, PS4] Cloud Variables aren't currently supported, but likely will be in the future.
* [Wii, Wii U, GameCube, Switch] The first controller connected will be the only one that will work.
* [Wii, GameCube] Cloud Variables will not be supported.
* [GameCube, NDS, PSP] These platforms have very little memory, so try to keep projects small.
* [NDS] Dual screen mode will not be supported.
* [PSP] Images cannot be over 512x512.
* [Vita] Back touch will not be supported.
* [PS4] The software keyboard isn't currently supported.


==Screenshots==
==Screenshots==
Line 48: Line 100:
<youtube width="640">Whs7Fy8lwzA</youtube>
<youtube width="640">Whs7Fy8lwzA</youtube>


==Limitations==
==Changelog==
General:  
'''Beta Build 39.1'''
* Text and embedded bitmap images will not show up on vector images containing it.  
* Runtime Changes
* Extensions (e.g. pen and music extensions) are not yet supported.  
** Fix audio not working on some devices (Windows, GameCube, etc)
* Some blocks may lead to crashing/unintended behavior (Please open an issue if you know of a block that's causing problems).
** Fix audio not working when <code>Keep Project In RAM</code> is turned off
* Performance is poor when using many (~30+) clones (memory management issue).
 
'''Beta Build 39'''
* Runtime Changes
** '''Complete Runtime Rewrite!''' (Via PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/583 #583])
*** [https://github.com/Br0tcraft @Br0tcraft] has been working for months to almost completely rewrite the way Scripts in SE! are run, which now more closely resembles Scratch's <code>Thread</code> architecture!
*** The rewrite fixes many bugs ([https://github.com/ScratchEverywhere/ScratchEverywhere/issues/500 #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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/582 #582])
*** [https://github.com/NishiOwO @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 <code>Pitch</code> and <code>Pan left-right</code> 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 <code>Custom Reporter</code> extension
** Added support for <code>Translate</code> Scratch extension (Via PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/612 #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 <code>Warp Timer</code> 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 (<code>NDS</code>, <code>PSP</code> and <code>GameCube</code>)
*** 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: [https://github.com/gradylink @gradylink], [https://github.com/poipole807 @poipole807], [https://github.com/NishiOwO @NishiOwO], [https://github.com/Br0tcraft @Br0tcraft], and [https://github.com/NateXS @NateXS]
 
'''Beta Build 38.1'''
* Runtime Changes
** Added <code>Collision Mode</code> Project setting
*** Setting it to <code>Accurate</code> gives you the new collision introduced in Beta 38.
*** Setting it to <code>Fast</code> makes the <code>touching __</code> block use (non-rotated!) rectangles for collision.
*** It is set to <code>Accurate</code> 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 <code>Accurate</code> collision mode
* PC Changes
** Fix thread memory leak
 
'''Beta Build 38'''
* Parity Changes
** Accurate Sprite collision! (Via pull request [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/586 #586])
*** When using the <code>Touching ___</code> 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 <code>When Stage Clicked</code> 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 <code>Bottom Screen</code> project option no longer shows up on platforms that don't have it
** Pressing <code>L</code> and <code>R</code> 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 <code>Text To Speech</code> Extension
* 3DS Changes
** <code>Say</code> and <code>Think</code> blocks now work correctly in dual screen mode
* Authors
** This beta was brought to you by: [https://github.com/gradylink @gradylink], [https://github.com/NishiOwO @NishiOwO], [https://github.com/poipole807 @poipole807], [https://github.com/Dogo6647 @Dogo6647] and [https://github.com/NateXS @NateXS]<br />
* Contributors
** [https://github.com/Dogo6647 [[File:https://avatars.githubusercontent.com/u/72993362?s=64&v=4|@Dogo6647]]]
** [https://github.com/NishiOwO [[File:https://avatars.githubusercontent.com/u/89888985?s=64&v=4|@NishiOwO]]]
** [https://github.com/NateXS [[File:https://avatars.githubusercontent.com/u/149607394?s=64&v=4|@NateXS]]]
** [https://github.com/gradylink [[File:https://avatars.githubusercontent.com/u/209573091?s=64&v=4|@gradylink]]]
** [https://github.com/poipole807 [[File:https://avatars.githubusercontent.com/u/221542569?s=64&v=4|@poipole807]]]
 
'''Beta Build 37'''
* Runtime Changes
** The SVG Update!!
*** Switched SVG backends from [https://github.com/memononen/nanosvg NanoSVG] to [https://github.com/sammycage/lunasvg LunaSVG] (Via [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/568 #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 (<code>Pixel</code>,<code>Sans Serif</code>, <code>Serif</code>, <code>Handwriting</code>, <code>Marker</code>, <code>Curly</code>) 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
*** Added the ability for SVG images to scale up and down in resolution (Via [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/571 #571])
**** This means SVG images should no longer be pixelated when at an increased size!
** Performance Updates
*** Added <code>Pen Mode</code> Project Setting
**** When <code>Pen Mode</code> is 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
*** Added <code>Show FPS</code> Project setting
**** When turned on, it adds debug Monitors showing you FPS and Frame Time information
*** Added <code>Keep Project In RAM</code> Project 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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/565 #565])
**** In some cases this improves performance quite significantly!
**** This is not available for Low RAM devices (PSP, NDS, 3DS, GameCube, Wii)
** Fixes
*** Fixed crash when loading RomFS projects
* Parity Changes
** Added support for <code>data_variable</code> and <code>data_listcontents</code> hidden blocks (Via [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/569 #569])
** Fixed parsing error when parsing block field values that are arrays
* Menu Changes
** Projects are now sorted Alphabetically
** The Unpacked Project button is now a vector instead of a bitmap image
* PSP &amp; 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
* PS4 Changes
** Enable VSync
* This Beta was brought to you by; [https://github.com/gradylink @gradylink], [https://github.com/Dogo6647 @Dogo6647], [https://github.com/NishiOwO @NishiOwO], [https://github.com/DevelopCMD @DevelopCMD], [https://github.com/poipole807 @poipole807], [https://github.com/PwLDev @PwLDev], and [https://github.com/NateXS @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 <code>touching __</code> block has been optimized
** Fixed default controls getting set even when custom controls are set
* Parity Changes
** Support <code>undefined</code> as a value
** Add support for <code>motion_xscroll</code>, <code>motion_yscroll</code>, and <code>sensing_userid</code> blocks
** Variable monitors can now only display numbers at up to 6 decimal places
** All via PR ([https://github.com/ScratchEverywhere/ScratchEverywhere/pull/563 #563])
* 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 [https://github.com/libsdl-org/SDL/pull/15060 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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/552 #552])
* Parity Changes
** Added <code>is online?</code> 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 <code>slider</code> Monitor type
** Added pages to <code>list</code> Monitors
** The <code>Stop All</code> block no longer takes you to the main menu
*** To get to the main menu, you can pause the Project by holding <code>start</code> for 3 seconds.
** Changed Sprite layering to be closer to Scratch
** Fixed some parity issues with <code>Backdrop</code> blocks
** The <code>mod</code> block can now return <code>NaN</code>
** The <code>x contains x</code> block is now case-insensitive
** <code>Sound</code> blocks now yield for 1 tick
** The <code>Size</code> reporter block now has its value rounded
* 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 <code>Say</code> and <code>Think</code> blocks!
*** Via PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/538 #538]! Thanks [https://github.com/roccopm @roccopm]!
** Implemented <code>Switch Backdrop to x And Wait</code> block
** 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 <code>Delete This Clone</code> block sometimes not working
** Fixed Broadcast blocks not working in some projects
** Fixed number overflow issues
* 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: [https://github.com/roccopm @roccopm], [https://github.com/poipole807 @poipole807], [https://github.com/PwLDev @PwLDev], [https://github.com/Dogo6647 @Dogo6647], [https://github.com/gradylink @gradylink] and [https://github.com/NateXS @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 <code>Pitch</code> and <code>Pan left-right</code> 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 <code>Everywhere!</code> 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
*** NOTE: Intel macs are still using SDL2.
** <s>New Icon</s>
*** Due to an issue, there is no longer an icon.
 
'''Beta Build 32'''
* Menu Changes
** Added a Project pause menu
*** Accessed by holding <code>Start</code> 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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/514 #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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/512 #512])
** The <code>Open Project</code> custom block can now open projects inside of the RomFS (Via [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/508 #508])
*** [https://scratchbox.dev/project/twStEkSKjQaH Info about the <code>Open Project</code> block for those unaware]
** The <code>Text To Speech</code> 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 <code>When I start as clone</code> blocks run
** Fixed <code>Next Backdrop</code> block not working
** You can no longer click on a Sprite that has a <code>ghost</code> effect of 100
** The <code>For Each</code> block now has better parity
** The <code>When Key Pressed</code> block is no longer tied to the FPS
** Turbo Mode now works like Scratch
** The <code>Broadcast and Wait</code> 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 <code>double</code> to <code>string</code> conversion (Via ([https://github.com/ScratchEverywhere/ScratchEverywhere/pull/520 #520])
** Variables can no longer be an <code>int</code>
** 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 <code>username</code> 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: [https://github.com/Dogo6647 @Dogo6647], [https://github.com/poipole807 @poipole807], [https://github.com/Br0tcraft @Br0tcraft], [https://github.com/leap0x7b @leap0x7b], [https://github.com/gradylink @gradylink], [https://github.com/roccopm @roccopm], [https://github.com/DevelopCMD @DevelopCMD], [https://github.com/Starlii10 @Starlii10], aaaaand [https://github.com/NateXS @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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/489 #489] and [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/499 #499], thanks [https://github.com/leap0x7b @leap0x7b] !)
** <code>Touching</code> blocks now have more consistent collision (still box collision, just more accurate)
** Fixed <code>Stop &quot;This Script&quot;</code> block sometimes not working
** Fixed offset when dragging Sprites
** Fixed some <code>Sound</code> block issues
** Fixed Sprites sometimes being in the wrong position for one frame
* Parity Changes
** [https://github.com/Geotale @Geotale] dropped a huge lootbox showing a bunch of parity issues with SE! ([https://github.com/ScratchEverywhere/ScratchEverywhere/issues/498 #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 <code>Touching</code> block
** The <code>Stage</code> Sprite can no longer be cloned
** Scratch 2.0 <code>Pen</code> blocks have been implemented
** Fixed <code>Broadcast</code> and <code>Effect</code> blocks not working in Scratch 2 projects migrated to Scratch 3 (Via [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/494 #494] and [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/496 #496], thanks [https://github.com/kalomaze @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


Vita:
'''Beta Build 30.1'''
* "Streamed Sound" is not supported. Any sounds in "Stage" will load and play like a normal sound.
* Runtime Changes
* Cloud Variables aren't currently supported, but likely will be in the future.
** Fixed a bug causing projects to not get found in the Main Menu on some devices
* Back touch will not be supported.
** Fixed being able to click Sprites while they're hidden


==Changelog==
'''Beta Build 30.1'''
'''v0.23'''
* 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 [https://github.com/Dogo6647 @Dogo6647] (PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/471 #471])
** [Wii U, 3DS] <code>Text to Speech</code> extension support!
*** Works by using Scratch's Text-To-Speech API to send speech data to the device
*** From [https://github.com/Br0tcraft @Br0tcraft] (PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/480 #480])
** <code>Makey Makey</code> extension support!
*** From [https://github.com/poipole807 @poipole807] (PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/482 #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 [https://github.com/gradylink @gradylink] (PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/439 #439])
** SDL1 support!
*** This will enable us to port Scratch Everywhere! to platforms where SDL2 and 3 aren't available!
*** From [https://github.com/leap0x7b @leap0x7b] (PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/475 #475])
* Runtime Changes
** Added festive music to the Main Menu! (Tunes as always from [https://github.com/Dogo6647 @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
** <code>Change Costume</code> blocks with numbers as input now prioritize the costume name over the costume number
** Fixed <code>When this backdrop switches to</code> 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 <code>+Infinity</code> not working correctly
** Allow for hacked dropdown inputs
** Added <code>Core Example</code> Extension
** Implement Scratch's weird spacing rules with <code>List</code> reporter blocks (PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/467 #467])
** Fixed whitespace comparison (PR [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/464 #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 <code>Streamed</code> Sound Support!
* PSP Changes
** Fixed <code>RomFS</code> projects not working
'''Beta Build 29'''
* New Features
** PSP Port!
* Switch Changes
** Upgraded to the latest <code>libnx</code> version, meaning SE! is now supported on Firmware <code>21.0.0</code>.
* 3DS Changes
** Fixed app not closing when closed from the Main Menu
* Runtime Changes
** The Main Menu is feeling a bit jolly...
** Changed <code>Arialn</code> font to <code>Liberation Sans Narrow</code> font
* Parity Changes
** Added instant block execution
*** In Scratch, if nothing on screen happens, all blocks run as if <code>Run Without Screen Refresh</code> was on. SE! now handles this behavior.
** Sprites now correctly run their blocks in layer order
** The <code>direction</code> blocks are now correctly clamped and rounded
** The <code>Change Variable by x</code> block now works correctly when putting in letters as input
** Fixed some blocks not running without screen refresh when they should
** The <code>Pick random</code> block now correctly works with non-decimal numbers
** <code>NaN</code> 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 <code>null</code> input bug correctly
** Fixed <code>Broadcast and wait</code> block's weird behavior from a clone who's ready to be deleted
'''Beta Build 28'''
* Runtime Changes
** Added Music to the Main Menu (tunes by [https://github.com/Dogo6647 @Dogo6647] !)
** '''[Non-3DS Platforms]''' Added support for TurboWarp's <code>High Quality Pen</code> 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 <code>Infinity</code> and <code>nan</code> numbers
** Fixed crashes related to <code>list</code> blocks
** Projects that contain Lists with many items now load faster
** The [https://scratchbox.grady.link/project/twStEkSKjQaH <code>Open project</code> block] can now choose projects from the SD card (Via pull request [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/425 #425])
* PC Changes
** Builds for Windows, MacOS, and Linux will now be put in releases!
** Migrated to <code>CMake</code> 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
'''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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/362 #362]!
* Web Port!
** [https://github.com/gradylink @gradylink] has ported the Runtime to WebAssembly!
** With this, [https://scratchbox.grady.link/ ScratchBox] is also updated to use SE!
** Via pull request [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/334 #334]!
* PS4 Port!
** [https://github.com/PwLDev @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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/278 #278]!
** Warning: The PS4 package on this GitHub release is broken. Please download beta 27 from [https://pkg-zone.com/details/NTXS10053 pkg-zone] instead.
* Runtime Changes
** Optimized Sprite rendering performance
** Fixed huge memory leak with <code>If else</code> block
** Fixed Main Menu and audio memory leaks
** <code>Switch costume to</code> 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 <code>Scratch Everywhere! controller</code> custom block
*** Returns the current controller being used
** [SDL2 Platforms] Fixed scaling of Pen stamped Sprites
* 3DS Changes
** Fixed rendering with the <code>Pen</code> extension
** The <code>Pen</code> extension can now be used in dual screen mode
** The mouse can no longer go off screen
** Fixed compilation error when <code>ENABLE_AUDIO</code> is off
* Wii Changes
** Fixed projects being at an unplayable Framerate
* Wii U Changes
** The <code>Stop "All"</code> block now correctly takes you back to the Main Menu
* Vita Changes
** Sounds from the stage now play as <code>Streamed</code> audio
** Warning: The Vita package on this GitHub release was accidentally compiled without audio support. Please download beta 27 from [https://files.catbox.moe/qdto2k.vpk here] instead.
* 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 <code>.cia</code>
* GameCube Changes
** [https://github.com/Extrems @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 [https://github.com/ScratchEverywhere/ScratchEverywhere/pull/411 #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 <code>200,000</code> items
** the <code>equals</code> block is now case-insensitive, matching Scratch behavior
** <code>Stop "other scripts in this sprite"</code> 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 <code>Stop all sounds</code> block
** The <code>Stop all sounds</code> 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 <code>Running flag block</code> text in loading screen to <code>Finishing up!</code>
'''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 [https://scratchbox.grady.link/project/twStEkSKjQaH example project]!
** 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
** <code>Days since 2000</code> block now updates every millisecond instead of every second
** <code>Current &quot;month&quot;</code> 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)
'''Beta Build 24'''
* New Features
** Add support for changing your username in the main menu settings
*** If disabled, the <code>username</code> block will return your console's nickname
*** If enabled, you can choose a custom username and the <code>username</code> block will return that instead
* Runtime Changes
** The <code>touching</code> 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 <code>project.sb3</code> auto opening at startup
* 3DS Changes
** Fixed a bug causing some vector images to appear bigger than it should
* Wii Changes
** The <code>username</code> block now returns the Wii's nickname
'''Beta Build 23'''
* New Features
* New Features
** Scratch Everywhere! Custom Blocks!
** Scratch Everywhere! Custom Blocks!
Line 90: Line 641:
* Switch Changes
* Switch Changes
** Changed resolution to the handheld's native 1280 x 720, instead of being a weird stretched resolution
** Changed resolution to the handheld's native 1280 x 720, instead of being a weird stretched resolution
'''v0.22'''
'''Beta Build 22'''
* New Features
* New Features
** Brightness costume effect added!
** Brightness costume effect added!
Line 102: Line 653:
**Added some new Main Menu splash text
**Added some new Main Menu splash text
**A bunch of code refactoring under the hood
**A bunch of code refactoring under the hood
'''v0.21'''
'''Beta Build 21'''
* Significantly improved performance!
* Significantly improved performance!
'''v0.20'''
'''Beta Build 20'''
* First Release.
* First Release.



Latest revision as of 00:59, 17 April 2026

Scratch Everywhere
General
AuthorNateXS, Dogo6647
TypeOther Apps
Version0.39.1
LicenseLGPL-3.0
Last Updated2026/04/14
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

  • Many Scratch projects playable out of the box.
  • Special custom blocks exclusive to Scratch Everywhere.
  • Mouse input- Use touchscreen for mouse input.
  • Framerate - When using a modded Scratch client like TurboWarp, you can enable the 60 FPS (Custom FPS) advanced option, and change the FPS to any value.
  • Audio - A sound may take time to load if playing it for the first time.
    • If you play any sound from the Stage, the sound will play as a Streamed Sound and will not need to load.
    • Only one Streamed Sound can be playing at a time, so this is good for things like background music.

Installation

Download the scratch-vita.vpk file from releases or nightly build.

Transfer the .vpk file over to the Vita's storage, and install it using VitaShell on your Vita.

Put your .sb3 Scratch Projects in ux0:data/scratch-vita/ (you will need to create the folder yourself).

Launch "ScratchEverywhere" from the LiveArea.

See readme for controls.

SE! Project Settings

Change Controls

  • Allows you to change the default controls of a project to your liking.

Unpack Project

  • Allows you to unzip a project and run it in its unzipped state.
  • An unzipped project is displayed as a yellow box with a lightning icon.
  • Unzipping a project has the benefit of not needing the full project and its assets stored in RAM, which is useful depending on the device.
  • Note: you will have to unzip the project every time you make changes to it.

[3DS, NDS] Bottom Screen Only Mode

  • Off by default.
  • Makes a project use the bottom screen instead of the top screen.

Pen Mode

  • Options: FastAccurate.
  • Fast by default.
  • Setting it to Accurate gives the Scratch-Accurate pen look.
  • Setting it to Fast can give a significant improvement to Pen performance, at the cost of pen lines being rectangular instead of circular.

Collision Mode

  • Options: FastAccurate.
  • Accurate by default on all platforms except for NDS.
  • Setting it to Accurate gives the touching ___ block Scratch-Accurate bitmask collision.
  • Setting it to Fast gives the touching ___ block simple rectangle collision, which gives a significant improvement to performance at the cost of accuracy.

Show FPS

  • Off by default.
  • Turning this on shows debug Monitors, giving you FPS and Frametime information.

Keep Project In RAM

  • On by default on all platforms except for NDS, PSP and GameCube.
  • Similar to the Unpack Project setting, turning this off has the benefit of not needing the full project and its assets stored in RAM.
  • Turning this off will make assets take longer to load.

Limitations

  • Most Extensions (e.g. music extension) are not yet supported.
  • Only the Pen, Text to Speech (Wii U, 3DS, Linux, and Windows only), and Makey Makey extensions are currently supported.
  • 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 (~50+) clones (memory management issue).
  • [Switch, PSP, Vita, PS4] Cloud Variables aren't currently supported, but likely will be in the future.
  • [Wii, Wii U, GameCube, Switch] The first controller connected will be the only one that will work.
  • [Wii, GameCube] Cloud Variables will not be supported.
  • [GameCube, NDS, PSP] These platforms have very little memory, so try to keep projects small.
  • [NDS] Dual screen mode will not be supported.
  • [PSP] Images cannot be over 512x512.
  • [Vita] Back touch will not be supported.
  • [PS4] The software keyboard isn't currently supported.

Screenshots

ScratchEverywhereVita-02.png

ScratchEverywhereVita-01.png

ScratchEverywhereVita-03.png

Media

Porting Scratch to the 3DS (NateXS)

Changelog

Beta Build 39.1

  • Runtime Changes
    • Fix audio not working on some devices (Windows, GameCube, etc)
    • Fix audio not working when Keep Project In RAM is turned off

Beta Build 39

  • 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 (NDSPSP 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

Beta Build 38.1

  • 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

Beta Build 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
  • Contributors

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 SerifSerifHandwritingMarkerCurly) 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
      • 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!
    • Performance Updates
      • Added Pen Mode Project Setting
        • When Pen Mode is 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
      • Added Show FPS Project setting
        • When turned on, it adds debug Monitors showing you FPS and Frame Time information
      • Added Keep Project In RAM Project 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)
    • Fixes
      • Fixed crash when loading RomFS projects
  • Parity Changes
    • Added support for data_variable and data_listcontents hidden blocks (Via #569)
    • Fixed parsing error when parsing block field values that are arrays
  • 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
  • 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
  • Parity Changes
    • Support undefined as a value
    • Add support for motion_xscrollmotion_yscroll, and sensing_userid blocks
    • Variable monitors can now only display numbers at up to 6 decimal places
    • All via PR (#563)
  • 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 slider Monitor type
    • Added pages to list Monitors
    • The Stop All block no longer takes you to the main menu
      • To get to the main menu, you can pause the Project by holding start for 3 seconds.
    • Changed Sprite layering to be closer to Scratch
    • Fixed some parity issues with Backdrop blocks
    • The mod block can now return NaN
    • The x contains x block is now case-insensitive
    • Sound blocks now yield for 1 tick
    • The Size reporter block now has its value rounded
  • 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 Say and Think blocks!
    • Implemented Switch Backdrop to x And Wait block
    • 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 Clone block sometimes not working
    • Fixed Broadcast blocks not working in some projects
    • Fixed number overflow issues
  • Runtime Changes
    • Fixed collision on non-rotated Sprites
  • 3DS Changes
    • Monitors are now supported in Dual-Screen mode
  • Credits

Beta Build 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
      • NOTE: Intel macs are still using SDL2.
    • New Icon
      • Due to an issue, there is no longer an icon.

Beta Build 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)
    • 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

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 !)
    • 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

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!
      • 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!
    • [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

Beta Build 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

Beta Build 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 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

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 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
    • Warning: The Vita package on this GitHub release was accidentally compiled without audio support. Please download beta 27 from here instead.
  • 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
  • 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!

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!
  • 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)

Beta Build 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

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? 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!
    • 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

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
  • 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

Beta Build 21

  • Significantly improved performance!

Beta Build 20

  • First Release.

External links

Advertising: