Releases: spheredev/neosphere
minisphere 4.3.4
minisphere 4.3.4 is a maintenance release for minisphere 4.3. This releases fixes a missing API call and replaces the undocumented Link module with a new, simpler implementation, from
.
Changes in This Version
- Adds a new miniRT module, "from", which enables performing queries against
the contents of objects, arrays, and strings. This replaces the undocumented
third-party "link" module which was included with previous versions of the
engine. - Adds support for ECMAScript 2015
Object.is()
andMath.hypot()
. - Fixes a bug where
Color.of()
was undefined and not callable.
Installing in Windows
Simply download and run minisphereSetup-4.3.4.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.3.4_i386.deb
, while 64-bit users should download minisphere_4.3.4_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.3.3
minisphere 4.3.3 is a maintenance release for minisphere 4.3. This releases fixes some Sphere v1-related bugs, adds Object.assign()
, and adds a new module, "test" to miniRT.
Changes in This Version
- Adds a new miniRT "test" module based on the CommonJS Unit Testing/1.0
specification. - Adds support for ECMAScript 2015
Object.assign()
. - Fixes
Abort()
to exit the game unconditionally, like Sphere 1.x. - Fixes
ExecuteGame()
resetting the fullscreen/window state.
Installing in Windows
Simply download and run minisphereSetup-4.3.3.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.3.3_i386.deb
, while 64-bit users should download minisphere_4.3.3_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.3.2
minisphere 4.3.2 is a maintenance release for minisphere 4.3.x. This releases fixes several Dispatch API bugs, improves the Sphere Studio new project template, and adds a new API to cancel all pending Dispatch API jobs.
Changes in This Version
- Adds an API call,
Dispatch.cancelAll()
to cancel all pending one-time jobs
(recurring jobs must still be cancelled individually). - Adds support for ECMAScript 2015 binary (
0b1000
) and octal (0o1454
)
notation. - Improves the Sphere Studio project template to show off more features and
better illustrate how the Sphere v2 API works. - Improves Dispatch API priority handling. Update jobs are now executed in
order from highest to lowest priority, rather than the other way around. - Fixes jobs continuing to run after an uncaught exception.
- Fixes uncaught exceptions within the central frame loop crashing the engine
instead of displaying the error screen.
Installing in Windows
Simply download and run minisphereSetup-4.3.2.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.3.2_i386.deb
, while 64-bit users should download minisphere_4.3.2_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.3.1
minisphere 4.3.1 is a maintenance release for minisphere 4.3.x. This releases adds a new central frame loop which runs as long as there are active Dispatch API jobs. This will eventually allow minisphere to share code with Oozaru, the browser-based Sphere v2 implementation under development.
Changes in This Version
- Improves Sphere v2 behavior: minisphere will now run a frame loop until there
are no more Dispatch API jobs active before exiting.
Installing in Windows
Simply download and run minisphereSetup-4.3.1.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.3.1_i386.deb
, while 64-bit users should download minisphere_4.3.1_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.3.0
minisphere 4.3.0 is the third minor update in the minisphere 4.x release series, introducing the new Dispatch API, native support for promises, frame-perfect timing, and more. It is a fairly large update with several breaking changes, atypical for minor releases.
Breaking Changes
- The entire engine now uses frame-perfect timing. API calls which previously
dealt in seconds, such assystem.now()
andsystem.sleep()
, now use
frames.system.sleep()
behavior has changed radically as a result - refer
to the documentation for more information. - The new Dispatch API allows functions to be called asynchronously from the
event loop. Calls may either be performed on the next tick, on a
frame-perfect time delay, or once per frame. Refer to the included Sphere v2
API reference for more information. - miniRT "struct" now provides
Reader
andWriter
objects which work for
both files and sockets. Refer to the included miniRT API reference for more
information. screen.frameRate
will no longer accept0
as a valid value. To disable
the frame limiter, the frame rate must now be set toInfinity
.- The
fs
object has been renamed toFS
to match other namespace-like
objects. There's little reason for it to be treated as a concrete object
representing the file system, and doing so limits future extensibility. - The
mouse
andkeyboard
global variables have been removed and are now
exposed asMouse.Default
andKeyboard.Default
, respectively. This was
done to allow support for multiple keyboards and mice to be implemented in
a future version without a breaking API change. - The
ShapeGroup
constructor is now calledModel
to better reflect its
purpose. Other than the name change, the API remains unchanged from previous
versions of the engine. - The mostly redundant and non-standard
SSJ
functions have been removed from
the API. Going forward, the "assert" module should be used for assertions,
andSSJ.trace()
can be replaced withconsole.trace()
with no loss of
functionality. - Promises are now supported natively through a polyfill. miniRT "pact" may
still be useful to manage promises, but this allows them to be used without
a pact if that's desired. - File-based objects such as
Image
andSound
now expose a.fileName
property which allows access to the canonicalized SphereFS filename used to
construct the object. This may be useful in certain encapsulation scenarios. - miniRT "threads" now takes advantage of the Dispatch API and no longer
interferes with Sphere v1 update and render scripts. This should help with
migration.
Changes in This Version
- Adds a new Dispatch API for setting up asynchronous jobs. Jobs are called
from the event loop; for example,Dispatch.onUpdate()
is processed at the
start of every frame. - Adds support for the JavaScript Reflect API.
- Adds native support for JavaScript Promises via a polyfill.
- Adds
struct.Reader
andstruct.Writer
which allow games to read and write
binary data from files and network sockets. - Adds a
.fileName
property to objects such as Image and Sound, which returns
the canonicalized name of the file the object was loaded from. - Adds
assert()
as an alias forassert.ok()
, like in Node.js. - Renames the
fs
global object toFS
to match other namespace-like objects. - Renames
mouse
toMouse.Default
to allow future support for multiple mice. - Renames
keyboard
toKeyboard.Default
to allow future support for multiple
keyboards. - Renames
ShapeGroup
toModel
, better describing the object's purpose. - Removes the superfluous
SSJ
functions from the API. - Fixes several bugs discovered since minisphere 4.2.4 was released.
- Updates the Sphere v2 API to use frame-perfect timing throughout. For
example,system.now()
returns the number of frames processed since engine
start. - Improves Sphere 1.x compatibility. Many games which historically didn't run
properly in minisphere, including Kefka's Revenge and Trial and Error, should
now be fully playable. - Updates error messages to be more concise, making it clearer what went wrong
at a quick glance. - miniRT no longer commandeers the legacy update and render scripts for itself.
- When debugging with Sphere Studio, the gold "ssj" watermark in the bottom
right is changed to blue to more easily distinguish interactive debugging
sessions from command-line sessions.
Installing in Windows
Simply download and run minisphereSetup-4.3.0.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.3.0_i386.deb
, while 64-bit users should download minisphere_4.3.0_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.2.4
minisphere 4.2.4 is a maintenance release for minisphere 4.2. This update fixes an internal UTF-8 string validation bug and adds support for streaming in TextDecoder
.
Changes in This Version
- Adds streaming support for
TextDecoder
. system.abort()
now aborts unconditionally, as described in the API
documentation.- Fixes a bug in the UTF-8 validation logic that caused Unicode strings to be
double-encoded, leading to undesirable side effects and in rare cases, a
crash.
Installing in Windows
Simply download and run minisphereSetup-4.2.4.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.2.4_i386.deb
, while 64-bit users should download minisphere_4.2.4_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.2.3
minisphere 4.2.3 is a maintenance release for minisphere 4.2. This update adds support for the JavaScript **
exponentiation operator and improves the Encoding API (TextEncoder
/TextDecoder
) implementation.
Changes in This Version
- Adds support for the new JavaScript exponentiation operator (e.g.
x ** 2
), allowing powers to be calculated without the performance
impact of aMath.pow()
call. term.log()
is renamed toterm.print()
.- Updates the Encoding API implementation to more closely follow the
algorithms described in the WHATWG standard.
Installing in Windows
Simply download and run minisphereSetup-4.2.3.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.2.3_i386.deb
, while 64-bit users should download minisphere_4.2.3_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.2.2
minisphere 4.2.2 is a maintenance release for minisphere 4.2. This update is a patch to fix the struct
and logger
modules, which had stopped working properly as a result of the changes to the FileStream
API in minisphere 4.2.0.
Changes in This Version
- Adds a new property,
term.visible
to theterm
module and removes the
.show()
and.hide()
methods. - Fixes the
struct
andlogger
modules, which were unintentionally broken by
the changes in 4.2.0.
Installing in Windows
Simply download and run minisphereSetup-4.2.2.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.2.2_i386.deb
, while 64-bit users should download minisphere_4.2.2_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.2.1
minisphere 4.2.1 is a maintenance release for minisphere 4.2. In line with the experimental nature of the Sphere v2 API, this update includes a breaking changes with the goal of making the API easier to understand and use.
Changes in This Version
- The
ssj
global is now calledSSJ
, to align with usual JavaScript naming
conventions for namespace-like objects. - The
terminal
standard library module is now calledterm
. - Passing an invalid argument to a miniRT
random
module function will now
result in a hardAssertionError
, rather than just a debugger trap.
Installing in Windows
Simply download and run minisphereSetup-4.2.1.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.2.1_i386.deb
, while 64-bit users should download minisphere_4.2.1_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.2.0
minisphere 4.2.0 is the second minor release in the minisphere 4.x release series, introducing a new joystick API for Sphere v2, an accompanying joy
module, and TextEncoder
and TextDecoder
support.
Breaking Changes
- minisphere now includes support for the Encoding API (
TextEncoder
and
TextDecoder
objects). However, only UTF-8 is currently supported. Future
versions of minisphere will support more encodings. - The Sphere v2 subsystem now natively supports joystick input. Games using
the Sphere 1.x joystick functions will continue to work as before; however,
the new joystick API is much more flexible and should be preferred when
writing new code. kb
is now calledkeyboard
. This should make keyboard input code clearer,
but any existing Sphere v2 code will need to be updated.
Changes in This Version
- Adds native joystick support to the Sphere v2 API. Previously, using a
joystick or gamepad required calling Sphere v1 legacy functions. - Adds a new module to miniRT,
joy
. This provides a simplified joystick
interface for games that don't need the full flexibility of the Sphere v2
Joystick API. - Adds W3C Encoding support (
TextEncoder
andTextDecoder
objects) to the
Sphere v2 API. This allows reading and writing text from ArrayBuffer views. - Simplifies the FileStream API. All methods for reading and writing typed
values from files have been removed, leaving onlyread()
andwrite()
which deal with ArrayBuffers directly. - The
kb
built-in object is now calledkeyboard
, making keyboard input code
significantly easier to read at the cost of some extra verbosity. - Fixes a long-standing map engine bug where the input person(s) can't be moved
with the joystick.
Installing in Windows
Simply download and run minisphereSetup-4.2.0.exe
. The Inno Setup install wizard will walk you through the installation process.
Installing in Linux
For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):
Installing from a PPA is easy. Simply open Terminal and run the following commands:
sudo add-apt-repository ppa:fatcerberus/minisphere
sudo apt-get update
sudo apt-get install minisphere
You only need to do this once. The system will automatically notify you of future minisphere updates.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.2.0_i386.deb
, while 64-bit users should download minisphere_4.2.0_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.