Skip to main content

News

Topic: neoSphere 5.9.2 (Read 522086 times) previous topic - next topic

0 Members and 30 Guests are viewing this topic.
Re: minisphere 1.0.6
Reply #270

Is it bad that every time someone reports a major bug I rub my hands together excitedly in a "Let's get to work!" kind of way? :P

First, the simple one: That array thing is quite odd.  Here's a little test case:
Code: (javascript) [Select]
var hippo = [ [ "maggie" ] ];
var x, y = 0;
Abort(hippo[x][y]);


This fails in both minisphere and vanilla.  The errors are:
minisphere - TypeError: "invalid base value"
Sphere 1.5 - TypeError: "hippo[ x ] has no properties"

So, not sure what's going on, maybe behavior is different enough between the two engines that x ends up undefined sometimes in minisphere while it never does in Sphere.  I don't know.


Sounds like duktape doesn't like using `undefined` as an object key. This is probably a bug, it should coerce to a string first, which SM and V8 do. e.g. hippo[undefined] = true; should be equivalent to hippo['undefined'] = true;.

Just wondering, what happens if you try:

Code: [Select]

var array = [];
array[{}] = true;
Abort(Object.keys(array));


This should give you "[object Object]" as the only key in the object.
  • Last Edit: April 07, 2015, 12:17:54 pm by casiotone

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #271

Sounds like duktape doesn't like using `undefined` as an object key. This is probably a bug, it should coerce to a string first, which SM and V8 do. e.g. hippo[undefined] = true; should be equivalent to hippo['undefined'] = true;.

Just wondering, what happens if you try:

Code: [Select]

var array = [];
array[{}] = true;
Abort(Object.keys(array));


This should give you "[object Object]" as the only key in the object.


It does.  Also, changing array[{}] to array[undefined] yields 'undefined' as the final output.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.0.6
Reply #272
So I downloaded miniSphere the other day, and maybe I'm a little dunce, but does this work on XP? I keep getting an error saying it's not a vaild Win32 application, is there something I'm missing?

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #273
That doesn't make sense.  I could see if maybe it wasn't compatible with XP and crashed or something, but "not a valid win32 application" suggests the .exe got corrupted somehow.  It's not a 64-bit build either... Odd.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.0.6
Reply #274
I've tried downloading from both Git-hub and the google drive links, both throw that error.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #275
From GitHub... You compiled it yourself?  It definitely shouldn't be showing that particular error.  The only time you should get that is if the .exe is either corrupt or 64-bit, and since I know for a fact it's not the latter...

I will do some research myself.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #276
Okay, just found out I have to change the MSVC project configuration to get it to run on XP.  Apparently MSVC 2012 and later only target Vista+ by default.  My bad.

That doesn't explain the error if you're building it yourself though... Sounds like a virus.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.0.6
Reply #277
Brain fart, I thought there was a link on Github for the pre-compiled version of it, I remember downloading the source, but never tried to compile it, my bad. So yea, only actually downloaded it from the Google drive on a couple separate instances and same thing.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #278
Alright, then that's my fault.  A quick toggle in MSVC will fix it, chalk up another one for 1.0.7. :P. Thanks for reporting. :D
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #279
Okay, everybody, word to the wise for Sphere implementors: Don't use a texture atlas for windowstyles.  For a while now I've been trying to figure out what happened to cause the main screen in Radnen's SSFML test suite to slow down to a crawl (~20 fps) when it ran well before.  When I first noticed this, I ran minisphere in the profiler (VS 2013 Community is awesome) and found out Allegro was switching to software rendering when drawing the windowstyle.  That was about a week ago, and then I forgot about it because I had no idea what might be causing it.

Just now it finally dawned on me: Quite a while ago I modified the windowstyle loader to load the bitmaps into an atlas instead of individually.  The reason for the switch to software rendering is because I use U/V tiling... which can't be done in hardware for only part of a texture, so Allegro switches to software to pull it off.

Of course, the flipside of this illustrates just why I love Allegro: It does everything in its power to service a request without me having to write a ton of fallback code.  This keeps minisphere's codebase small and still ensures it will run on as many systems as possible. 8)
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: minisphere 1.0.6
Reply #280

Oh and yes, no mp3 support sadly :(.  Allegro apparently doesn't include it, I assume due to licensing issues, and I haven't yet found any addons to re-add support for it.


SSFML can play mp3, but no idea on the licensing.

The Sphere Studio can, but it's an IrrKlang plugin, so I can remove the support at any time if licensing ever becomes an issue.

I thought allegro uses any audio codecs installed/recognized by it. It's odd for it to not have that ability, unless I'm missing something.
If you use code to help you code you can use less code to code. Also, I have approximate knowledge of many things.

Sphere-sfml here
Sphere Studio editor here

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #281
MP3 is patented and requires a licensing fee and/or royalties if your project is large enough.  Hence most open-source libraries leave it out.  That's why Vorbis was invented. :P
  • Last Edit: April 08, 2015, 12:23:24 am by Lord English
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.0.6
Reply #282


Sounds like duktape doesn't like using `undefined` as an object key. This is probably a bug, it should coerce to a string first, which SM and V8 do. e.g. hippo[undefined] = true; should be equivalent to hippo['undefined'] = true;.

Just wondering, what happens if you try:

Code: [Select]

var array = [];
array[{}] = true;
Abort(Object.keys(array));


This should give you "[object Object]" as the only key in the object.


It does.  Also, changing array[{}] to array[undefined] yields 'undefined' as the final output.

Well, that *is* weird then.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #283
minisphere 1.0.7 is coming.  I'm almost tempted to do a version bump to 1.1 due to both Duktape and Allegro receiving major upgrades (1.2.1 and 5.1.9 respectively), but as that's under-the-hood, I think I will keep it at 1.0 for now.

In any case, the Allegro upgrade shrunk the size of the engine from around 2.5mb down to about 2mb--and even seems to have made things faster! ;D
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.7
Reply #284
1.0.7 is out!

Radnen, try running Blockman in minisphere now.  It works much better with the fixes in this release.  Also: The engine is now under 2MB and still completely self-contained!

@Defiant: Could you try this latest release on XP?  I ended up having to build Allegro and all its dependencies myself with VS2013 in XP mode (9 static libraries for those keeping count  :-\), so it better work now or I might have to murder someone. :P
  • Last Edit: April 09, 2015, 02:55:25 pm by Lord English
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub