Releases: spheredev/neosphere
neoSphere 5.6.4
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
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
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.
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
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.
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
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 newBufferStream
class. In general, code usingDataStream
to read structured data from binary files should instead callFS.readFile()
withDataType.Raw
and construct aBufferStream
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
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()
orFont.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
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 toDepthOp.AlwaysPass
. - Fixes a bug where async read and write weren't supported in retrograde mode.
- Fixes a bug where
DepthOp.Equal
is treated likeDepthOp.AlwaysPass
.
miniSphere 5.5.0
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 usingnpm
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
miniSphere 5.4.2 is a maintenance release in the 5.4 series.
What's Changed?
- Adds experimental
Thread#suspend()
API, which works likeThread#pause()
but also pauses rendering. - Adds support for mp3 playback through the
Sound
API on Windows. - Renames
FileStream.open()
toFileStream.fromFile()
. - Renames
Socket.connectTo()
toSocket.for()
. - Fixes an issue where
from()
didn't check its argument, leading to a nonsensical stack trace later if the caller accidentally passesnull
orundefined
.
miniSphere 5.4.1
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
, anddescription
ingame.sgm
.