Skip to content

Commit

Permalink
Sphere 5.6.0
Browse files Browse the repository at this point in the history
Multiple texture sampler support, new `BufferStream` class, neoSphere
rename, and a few miscellaneous bug fixes. Not a huge release in the
end, but one that was long overdue.
  • Loading branch information
fatcerberus committed May 10, 2021
1 parent a97ebff commit 1997844
Show file tree
Hide file tree
Showing 15 changed files with 25 additions and 42 deletions.
10 changes: 2 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
Sphere Changelog
================

v5.6.0 - TBD
------------
v5.6.0 - May 10, 2021
---------------------

* Adds support for multiple texture units and, by extension, additional
`sampler` uniforms in shaders.
* Adds a new class, `BufferStream`, to the Sphere Runtime.
* Changes all API functions that access the file system to return promises when
called by a game that targets API level 4 or higher.
* Changes the name of the engine from "miniSphere" to "neoSphere".
* Renames the user data directory from "miniSphere" to "neoSphere".
* Removes support for all Sphere v1 API features (including the map engine)
when targeting API level 4 or higher.
* Removes support for file-based constructors such as `new Texture()` when
targeting API level 4 or higher.
* 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.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Download
========

The latest stable Sphere release at the time of this writing is
**Sphere 5.5.2**, released on Monday, November 30, 2020. Sphere releases are
**Sphere 5.6.0**, released on Monday, May 10, 2021. Sphere releases are
provided through GitHub, so the latest version is always available for download
here:

Expand Down Expand Up @@ -74,13 +74,13 @@ might look like this:
// all values defined on Sphere.Game are JSON encoded at the end of the build
// and written to game.json.
Object.assign(Sphere.Game, {
version: 2, // target Sphere v2
apiLevel: 1, // API L1 or higher
version: 2, // target the Sphere v2 API
apiLevel: 3, // require API level 3+

name: "My Game",
author: "Some Guy",
summary: "This game is awesome.",
resolution: '320x240',
resolution: '768x480',
main: '@/scripts/main.js',
});

Expand Down
27 changes: 8 additions & 19 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,20 @@ Release Notes
miniSphere 5.6
--------------

* neoSphere 5.6 introduces support for API level 4, which includes several
breaking changes in order to prepare for integration of Oozaru with the main
Sphere toolchain. When called by a game whose `apiLevel` (in `game.json`) is
set to 4 or higher, all functions and methods that access the file system
will now return promises, and `new Texture()` et al will throw errors when
called with a filename. In order to maintain backwards compatibility, games
targeting API level 3 or lower will continue to get the older behavior for
these APIs.

* When `game.json` specifies an `apiLevel` of 4 or higher, the entire Sphere v1
API, including `MapEngine()`, will be disabled. If you still rely on these
old functions, you will need to completely port to Sphere v2 before setting
your game's `apiLevel` to 4.

* Because individual `FileStream` reads are now asynchronous, `DataStream` is
no longer an efficient way to read binary data from a file and has been
removed from the Sphere Runtime API and its role has been replaced by a new
`BufferStream` class. In general, code using `DataStream` to read structured
data from binary files should instead call `FS.readFile()` using
* 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.


miniSphere 5.5
--------------
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.5.2+
5.6.0
2 changes: 1 addition & 1 deletion manpages/cell.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH CELL 1 "xxxx-xx-xx" "Sphere x.x.x" "Sphere: the JavaScript game platform"
.TH CELL 1 "2021-05-10" "Sphere 5.6.0" "Sphere: the JavaScript game platform"
.SH NAME
cell \- scripted build tool for Sphere game engine games
.SH SYNOPSIS
Expand Down
2 changes: 1 addition & 1 deletion manpages/neosphere.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH NEOSPHERE 1 "xxxx-xx-xx" "Sphere x.x.x" "Sphere: the JavaScript game platform"
.TH NEOSPHERE 1 "2021-05-10" "Sphere 5.6.0" "Sphere: the JavaScript game platform"
.SH NAME
neosphere \- lightweight JavaScript-powered game engine
.SH SYNOPSIS
Expand Down
2 changes: 1 addition & 1 deletion manpages/spherun.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH SPHERUN 1 "xxxx-xx-xx" "Sphere x.x.x" "Sphere: the JavaScript game platform"
.TH SPHERUN 1 "2021-05-10" "Sphere 5.6.0" "Sphere: the JavaScript game platform"
.SH NAME
spherun \- run a Sphere game in a dev-friendly environment
.SH SYNOPSIS
Expand Down
2 changes: 1 addition & 1 deletion manpages/ssj.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH SSJ 1 "xxxx-xx-xx" "Sphere x.x.x" "Sphere: the JavaScript game platform"
.TH SSJ 1 "2021-05-10" "Sphere 5.6.0" "Sphere: the JavaScript game platform"
.SH NAME
ssj - the JavaScript debugger for neoSphere
.SH SYNOPSIS
Expand Down
Binary file modified msvs/cell.rc
Binary file not shown.
Binary file modified msvs/neosphere.rc
Binary file not shown.
Binary file modified msvs/ssj.rc
Binary file not shown.
4 changes: 2 additions & 2 deletions setup/sphereSetup.iss
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
; solution configurations.
#define AppName "Sphere"
#define AppPublisher "Fat Cerberus"
#define AppVersion3 "x.x.x"
#define AppVersion4 "0.0.0.0"
#define AppVersion3 "5.6.0"
#define AppVersion4 "5.6.0.3375"

; to create a bundle with Sphere Studio, copy the Sphere Studio binaries
; into msw/ide/ before building the installer.
Expand Down
2 changes: 1 addition & 1 deletion src/plugin/PluginMain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class PluginMain : IPluginMain
{
public string Name { get; } = "Sphere v2 Support";
public string Description { get; } = "Provides support for the Sphere v2 platform.";
public string Version { get; } = "x.x.x";
public string Version { get; } = "5.6.0";
public string Author { get; } = "Fat Cerberus";

internal PluginConf Conf { get; private set; }
Expand Down
4 changes: 2 additions & 2 deletions src/plugin/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.0.0")]
[assembly: AssemblyFileVersion("0.0.0.0")]
[assembly: AssemblyVersion("5.6.0.3375")]
[assembly: AssemblyFileVersion("5.6.0.3375")]
2 changes: 1 addition & 1 deletion src/shared/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
#define SPHERE_COMPILER_NAME "Cell"
#define SPHERE_DEBUGGER_NAME "SSj"

#define SPHERE_VERSION "5.5.2+"
#define SPHERE_VERSION "5.6.0"

#define SPHERE_API_VERSION 2
#define SPHERE_API_LEVEL 4
Expand Down

0 comments on commit 1997844

Please sign in to comment.