Skip to content

Releases: spheredev/neosphere

neoSphere 5.6.4

16 Nov 18:05
Compare
Choose a tag to compare

neoSphere 5.6.4 is a maintenance release. This version makes ssj --no-pause the default behavior and also removes the bundled copy of Sphere Studio, which is now versioned separately and provided as a separate download.

What's Changed?

  • Changes SSj's --no-pause option to --pause and makes not pausing on startup the default behavior.
  • Changes the label color for warnings in the terminal from red to yellow.
  • Removes all Sphere Studio components from the neoSphere codebase.

Important!

It is strongly recommended to uninstall any previous version of neoSphere before installing this release.

Sphere 5.6.3

15 Aug 13:52
Compare
Choose a tag to compare

Sphere 5.6.3 is a maintenance release. This version fixes a bug in the Sphere Studio plugin which caused project generation to fail when starting a new project.

What's Changed?

  • Fixes a bug where creating a new project with Sphere Studio would fail due to changes to the project template.

Sphere 5.6.2

21 Jul 22:48
Compare
Choose a tag to compare

Sphere 5.6.2 is a maintenance release. This release adds support for targeting API level 4, which is not yet finalized but may be useful for testing compatibility with Oozaru, which will bring some breaking API changes upon release due to differences in the way the Web API works.

⚠️ IMPORTANT!
As of Sphere 5.6.1, 32-bit (x86) installations of Windows are not supported. You must have a 64-bit operating system to use this version of Sphere.

What's Changed?

  • Adds support for targeting the future Sphere API level (currently API 4).
  • Fixes a bug where cell init produces a Cellscript that targets API level 4 instead of the current stable API 3.

Sphere 5.6.1

06 Jul 23:25
Compare
Choose a tag to compare

Sphere 5.6.1 is a maintenance release in the 5.6 series. This release fixes a bug in Cell that caused it to produce a bogus deprecation warning even when targeting the current API level.

⚠️ IMPORTANT!
This release removes support for 32-bit (x86) versions of Windows. You must have a 64-bit version of Windows installed to use this or any future version of Sphere.

What's Changed?

  • Removes support for 32-bit versions of Windows.
  • Fixes a bug where Cell would show a deprecation warning even when targeting API level 3.

Sphere 5.6.0

10 May 17:17
Compare
Choose a tag to compare

Sphere 5.6.0 is the seventh major release in the Sphere 5.0 series. This release adds support for sampler uniforms in shaders, replaces the DataStream class with the more flexible BufferStream, and renames the engine implementation from "miniSphere" to "neoSphere".

What's New?

  • In preparation for FileStream access becoming asynchronous, DataStream has been removed from the Sphere Runtime API and its role replaced by the new BufferStream class. In general, code using DataStream to read structured data from binary files should instead call FS.readFile() with DataType.Raw and construct a BufferStream from the resulting data buffer.

  • neoSphere now users "neoSphere" for the name of its user data directory (in the user's Documents folder), instead of "miniSphere", to go along with engine rename.

  • The legacy Sphere v1 "startup game" has been removed. When launched, neoSphere 5.6 and later will now show a standard file-select dialog instead so that the user can select a game from anywhere.

Full Changelog

  • Adds support for multiple texture units and, by extension, additional sampler uniforms in shaders.
  • Adds a new class, BufferStream, to the Sphere Runtime.
  • Changes the name of the engine from "miniSphere" to "neoSphere".
  • Renames the user data directory from "miniSphere" to "neoSphere".
  • Removes the DataStream class from the Sphere Runtime.
  • Removes the Sphere v1 "startup game" in favor of showing a standard file-select dialog when launching neoSphere.
  • Fixes a bug where Query#shuffle() doesn't shuffle the final result.
  • Fixes a bug where Mouse#position returns an array with the coordinates in the wrong order.

Sphere 5.5.2

01 Dec 04:40
Compare
Choose a tag to compare

Sphere 5.5.2 is a maintenance release in the 5.5 series. This release adds a resolution prompt during cell init, and fixes several bugs, including one that prevented debugger breakpoints from being cleared while the engine was running.

What's Changed?

  • Adds a prompt for the new game's screen resolution when running cell init.
  • Improves compatibility of the Makefile with macOS.
  • Changes the Music functions in the Sphere Runtime to load audio files asynchronously and return promises if applicable.
  • Fixes a bug where trying to load a non-font file or unsupported font format using new Font() or Font.fromFile() could cause the engine to segfault.
  • Fixes a bug where cell init could sometimes append garbage bytes to the end of the generated Cellscript.
  • Fixes a bug where the depth and blend modes weren't reset before showing the exception screen, sometimes making the error message unreadable.
  • Fixes a bug where SSj doesn't remove cleared breakpoints from the breakpoint list, often leading to a segfault in either miniSphere or SSj as their respective breakpoint lists become out-of-sync.
  • Fixes a bug where breakpoints set in Sphere Studio keep being hit even after clearing them in the IDE.
  • Fixes a memory leak that can occur after setting array uniforms for a shader which subsequently goes unused.

Sphere 5.5.1

13 Sep 17:26
Compare
Choose a tag to compare

Sphere 5.5.1 is a maintenance release in the 5.5 series. This release begins a rebranding effort whereby the miniSphere full kit will be renamed to simply Sphere. The engine implementation itself will retain its existing name, in order to differentiate it from other official Sphere implementations such as Oozaru.

What's Changed?

  • Adds a warning when calling constructors such as new Texture() with a filename in games targeting API level 3.
  • Changes the default .depthOp for surfaces to DepthOp.AlwaysPass.
  • Fixes a bug where async read and write weren't supported in retrograde mode.
  • Fixes a bug where DepthOp.Equal is treated like DepthOp.AlwaysPass.

miniSphere 5.5.0

12 Aug 14:44
Compare
Choose a tag to compare

miniSphere 5.5.0 is the sixth release in the 5.0 series. This release adds support for TrueType fonts, npm module support in Cell, Node.js-like module type detection, depth buffers, a a few other enhancements. The asynchronous .fromFile() APIs have also been canonized; equivalent constructors such as new Texture('foo.png') should be considered deprecated and will be disabled in the next API level bump.

important note:
the .tar.gz tarball no longer includes ChakraCore binaries. to get these, first check if your distribution has a ChakraCore dev package available and install it if so; if not, then run sudo make deps from the miniSphere source directory to download the binaries from Microsoft and install them. you should only need to do this once.

What's New?

  • Texture.fromFile() and other .fromFile() functions have been canonized. Calling the equivalent constructors in a game targeting API 3 will produce a deprecation warning in the engine's terminal output; these constructors will be completely disabled in API 4 in order to pave the way for full cross-compatibility with Oozaru.

  • miniSphere can now load TrueType fonts. To this end, Font.fromFile() will accept an additional parameter specifying the size of the font.

  • When importing modules from folders, package.json handling has been updated to be more consistent with Node.js behavior. In particular, the engine now honors the "type" field, enabling it to load ES Module packages.

  • There is now experimental support for depth buffering when rendering to surfaces, including the backbuffer. The depth test can be customized by setting Surface#depthOp to the desired value. See the API documentation for more.

  • It is now possible to import or require() modules installed using npm within Cellscript code.

  • When importing Sphere Runtime modules, you can now refer to them as using a virtual path, e.g. /lib/sphere-runtime.js. This will improve your game's Oozaru compatibility, since browsers don't yet support import maps. Keep in mind, however, that this feature is experimental and may be subject to breaking changes in future releases.

Full Changelog

  • Adds support for loading TrueType fonts using the Font class.
  • Adds support for Node.js-like automatic module type detection for .js files.
  • Adds support for importing npm modules in Cell code.
  • Adds support for seeing the types of variables while debugging with SSj.
  • Adds depth buffer support for surfaces.
  • Adds a new API, Surface#clear(), for clearing the entire contents of a surface including its depth buffer.
  • Adds support for Oozaru-compatible /lib/foo.js specifier format for loading Sphere Runtime modules.
  • Canonizes the .fromFile() APIs, as well as a few other functions, increasing the API level to 3.
  • Fixes a bug where Key.Tilde isn't recognized on macOS.
  • Fixes a bug where trying to load something other than an RFN file using the font API can cause the engine to segfault.

miniSphere 5.4.2

20 Feb 06:38
Compare
Choose a tag to compare

miniSphere 5.4.2 is a maintenance release in the 5.4 series.

What's Changed?

  • Adds experimental Thread#suspend() API, which works like Thread#pause() but also pauses rendering.
  • Adds support for mp3 playback through the Sound API on Windows.
  • Renames FileStream.open() to FileStream.fromFile().
  • Renames Socket.connectTo() to Socket.for().
  • Fixes an issue where from() didn't check its argument, leading to a nonsensical stack trace later if the caller accidentally passes null or undefined.

miniSphere 5.4.1

05 Jan 05:42
Compare
Choose a tag to compare

miniSphere 5.4.1 is a maintenance release in the 5.4 series.

What's Changed?

  • Changes strictImports to also disable CommonJS module support.
  • Removes the xml module from the Sphere Runtime.
  • Fixes a bug where Cell writes the wrong values for name, author, and description in game.sgm.