Skip to content

Commit

Permalink
minisphere 3.3.0
Browse files Browse the repository at this point in the history
This releases brings a new random number generator backend
(xoroshiro128+), `RNG.state`, and predefined colors.
  • Loading branch information
fatcerberus committed May 31, 2016
1 parent cd89a68 commit b778def
Show file tree
Hide file tree
Showing 20 changed files with 160 additions and 123 deletions.
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
minisphere Changelog
====================

v3.3.0 - TBD
------------
v3.3.0 - May 31, 2016
---------------------

* Now uses xoroshiro128+ as the random number generator instead of the slower
Mersenne Twister.
Expand All @@ -17,6 +17,7 @@ v3.3.0 - TBD
`.Default` properties which refer to the corresponding built-in default
assets.


v3.2.0 - May 22, 2016
---------------------

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Download
========

The latest stable minisphere release at the time of this writing is
**minisphere 3.2.0**, released on Sunday, May 22, 2016. minisphere binaries
**minisphere 3.3.0**, released on Tuesday, May 31, 2016. minisphere binaries
are provided through GitHub, and the latest version is always available for
download here:

Expand Down
5 changes: 5 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ minisphere 3.3
constructing Color objects manually, and makes code dealing with known colors
much more readable.

* minisphere now uses the much faster xoroshiro128+ algorithm to generate
random numbers instead of Mersenne Twister used in past versions. This may
affect games using `RNG.reseed()` to manually seed the generator, since the
generated values will differ.


minisphere 3.2
--------------
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.2.0
3.3.0
2 changes: 1 addition & 1 deletion docs/spherical-api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ GetVersionString()
Returns the engine's version identification string. The string returned will
be in the following format:

v2.0 (minisphere 3.2.0)
v2.0 (minisphere 3.3.0)

GetExtensions()

Expand Down
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 "2016-05-22" "minisphere-3.2.0" "minisphere Game Development Kit"
.TH CELL 1 "2016-05-31" "minisphere-3.3.0" "minisphere Game Development Kit"
.SH NAME
cell \- Sphere game compiler and packager
.SH SYNOPSIS
Expand Down
2 changes: 1 addition & 1 deletion manpages/minisphere.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH MINISPHERE 1 "2016-05-22" "minisphere-3.2.0" "minisphere JS Game Engine"
.TH MINISPHERE 1 "2016-05-31" "minisphere-3.3.0" "minisphere JS Game Engine"
.SH NAME
minisphere \- a Sphere-compatible JavaScript 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 "2016-05-22" "minisphere-3.2.0" "minisphere Game Development Kit"
.TH SPHERUN 1 "2016-05-31" "minisphere-3.3.0" "minisphere Game Development Kit"
.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 "2016-05-22" "minisphere-3.2.0" "minisphere Game Development Kit"
.TH SSJ 1 "2016-05-31" "minisphere-3.3.0" "minisphere Game Development Kit"
.SH NAME
ssj \- a JavaScript CLI debugger for minisphere
.SH SYNOPSIS
Expand Down
Binary file modified msvs/compiler.rc
Binary file not shown.
Binary file modified msvs/debugger.rc
Binary file not shown.
Binary file modified msvs/engine.rc
Binary file not shown.
135 changes: 63 additions & 72 deletions setup/changelog.rtf

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions setup/minisphere.iss
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

#define AppName "minisphere"
#define AppPublisher "Fat Cerberus"
#define AppVersion2 "3.2"
#define AppVersion3 "3.2.0"
#define AppVersion2 "3.3"
#define AppVersion3 "3.3.0"

; to create a bundle with Sphere Studio, copy the Sphere Studio binaries
; into msw/ide/ before building the installer.
Expand Down
85 changes: 54 additions & 31 deletions setup/release.rtf

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions src/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
minisphere (3.3.0) trusty; urgency=low

* Now uses xoroshiro128+ as the random number generator instead of the slower
Mersenne Twister.
* Adds a new property to the RNG object, `RNG.state`. This allows you to save
and restore the internal state of the random number generator, for example to
deter save scumming.
* Adds a bunch of new API calls to make working with Color objects easier:
`Color.fade()`, `Color.of()`, `Color.mix()` (which supersedes the old
blending functions), `Color#name`, and a bunch of predefined colors such as
`Color.Chartreuse`, `Color.Blue`, etc.
* `Font`, `Mixer`, `ShaderProgram` and `WindowStyle` now include static
`.Default` properties which refer to the corresponding built-in default
assets.

-- Bruce Pascoe <fatcerberus@icloud.com> Tue, 31 May 2016 00:00:00 -0500

minisphere (3.2.0) trusty; urgency=low

* The module system has been overhauled to work more like Node.js, and now has
Expand Down
2 changes: 1 addition & 1 deletion src/plugin/PluginMain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class PluginMain : IPluginMain
public string Name { get; } = "minisphere GDK";
public string Author { get; } = "Fat Cerberus";
public string Description { get; } = "Provides support for the minisphere GDK toolchain.";
public string Version { get; } = "3.2.0";
public string Version { get; } = "3.3.0";

internal PluginConf Conf { get; private set; }
internal int Sessions { get; 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("3.2.0.812")]
[assembly: AssemblyFileVersion("3.2.0.812")]
[assembly: AssemblyVersion("3.3.0.812")]
[assembly: AssemblyFileVersion("3.3.0.812")]
2 changes: 1 addition & 1 deletion src/shared/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
#define MINISPHERE__VERSION_H__INCLUDED

#define PRODUCT_NAME "minisphere"
#define VERSION_NAME "3.2.0"
#define VERSION_NAME "3.3.0"

#endif // MINISPHERE__VERSION_H__INCLUDED
10 changes: 5 additions & 5 deletions src/shared/xoroshiro.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ xoro_gen_double(xoro_t* xoro)
uint64_t x;

x = xoro_gen_uint(xoro);
u.i = 0x3ffUi64 << 52 | x >> 12;
u.i = 0x3ffULL << 52 | x >> 12;
return u.d - 1.0;

}
Expand Down Expand Up @@ -142,7 +142,7 @@ xoro_jump(xoro_t* xoro)

for (i = 0; i < sizeof JUMP / sizeof *JUMP; ++i) {
for (b = 0; b < 64; ++b) {
if (JUMP[i] & 1Ui64 << b) {
if (JUMP[i] & 1ULL << b) {
s0 ^= xoro->s[0];
s1 ^= xoro->s[1];
}
Expand All @@ -163,9 +163,9 @@ xoro_reseed(xoro_t* xoro, uint64_t seed)

// seed xoroshiro128+ using SplitMix64
for (i = 0; i < 2; ++i) {
z = (seed += 0x9E3779B97F4A7C15Ui64);
z = (z ^ (z >> 30)) * 0xBF58476D1CE4E5B9Ui64;
z = (z ^ (z >> 27)) * 0x94D049BB133111EBUi64;
z = (seed += 0x9E3779B97F4A7C15ULL);
z = (z ^ (z >> 30)) * 0xBF58476D1CE4E5B9ULL;
z = (z ^ (z >> 27)) * 0x94D049BB133111EBULL;
xoro->s[i] = z ^ (z >> 31);
}
}

0 comments on commit b778def

Please sign in to comment.