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
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/10/07
|lastupdated=2025/10/28
|type=Other Apps
|type=Other Apps
|version=Beta Build 25
|version=Beta Build 27
|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, Vita, Switch and PS4.


==Features==
==Features==
Line 59: Line 59:


Vita:
Vita:
* "Streamed Sound" is not supported. Any sounds in "Stage" will load and play like a normal sound.
* Cloud Variables aren't currently supported, but likely will be in the future.
* Cloud Variables aren't currently supported, but likely will be in the future.
* Back touch will not be supported.
* Back touch will not be supported.


==Changelog==
==Changelog==
'''v0.25'''
'''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
* New Features
** Pen Support!
** Pen Support!
Line 89: Line 179:
* 3DS / Wii U Changes
* 3DS / Wii U Changes
** Cloud variables should now work correctly (this was my bad, I compiled it wrong last beta)
** Cloud variables should now work correctly (this was my bad, I compiled it wrong last beta)
'''v0.24'''
'''Beta Build 24'''
* New Features
* New Features
** Add support for changing your username in the main menu settings
** Add support for changing your username in the main menu settings
Line 108: Line 198:
* Wii Changes
* Wii Changes
** The <code>username</code> block now returns the Wii's nickname
** The <code>username</code> block now returns the Wii's nickname
'''v0.23'''
'''Beta Build 23'''
* New Features
* New Features
** Scratch Everywhere! Custom Blocks!
** Scratch Everywhere! Custom Blocks!
Line 137: Line 227:
* 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 149: Line 239:
**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.



Revision as of 11:29, 31 October 2025

Scratch Everywhere
General
AuthorNateXS, Dogo6647
TypeOther Apps
VersionBeta Build 27
LicenseLGPL-3.0
Last Updated2025/10/28
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, Vita, Switch and PS4.

Features

  • Many Scratch projects playable out of the box.
  • Special custom blocks exclusive to Scratch Everywhere!
  • Use font touchscreen for mouse input.
  • Supports MP3, Ogg Vorbis, and WAV audio files.
  • Modifiable framerate when using TurboWarp.

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.

Controls

https://github.com/ScratchEverywhere/ScratchEverywhere/blob/main/README.md#controls

Screenshots

ScratchEverywhereVita-02.png

ScratchEverywhereVita-01.png

ScratchEverywhereVita-03.png

Media

Porting Scratch to the 3DS (NateXS)

Limitations

General:

  • Text and embedded bitmap images will not show up on vector images containing it.
  • Extensions (e.g. pen and music extensions) are not yet 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 (~30+) clones (memory management issue).

Vita:

  • Cloud Variables aren't currently supported, but likely will be in the future.
  • Back touch will not be supported.

Changelog

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: