Skip to main content


Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Fat Cerberus

This just in!  miniSphere 5.2b3 is up and fixes more bugs and brings new features for backward compatibility testing: 1) An apiLevel field in the game manifest for targeting a specific version of the API, and 2) --retro command-line option for SpheRun that makes the engine emulate the targeted API level (anything newer is disabled).
No, I got that, I'm just trying to figure out what the significance of using that song in particular is.  Unless it's just because it's a really goofy song?  I'm confused.
And of course, you use that song as a test. :smile:

...wait, what'd I miss?
Found a bug in beta 2: Calling MapEngine() or FlipScreen() from the event loop will cause the engine to crash on exit. :disappointed:

I have an idea of the cause already; fix will be in either beta 3 or 5.2.0 final, whichever comes first.
miniSphere 5.2 beta 2 is now available with more bug fixes and optimizations, better Sphere v1/v2 interop (including tweaks to how FlipScreen is handled in v2 code), support for all Sphere v1 surface blend modes and the ability to use Z.deflate and Z.inflate in Cell.
Feature request: An option to summon eaty pigs :pig_nose: and integrate them into your project somehow.

Okay but seriously, work on a new editor has me thinking... maybe now would be a good time to think about replacing the venerable Sphere 1.x formats with something cleaner and more modern...
I know it isn't much of an update, buuuuut QtSphere IDE's file tabs now respond to Ctrl+PageDown/PageUp. Can Radnen's IDE do that? Didn't think so! That's to say nothing of its cross-platformyness and overall prettierness. Neener neener neener!

It can't, but it *does* respond to Ctrl+Tab and Shift+Ctrl+Tab (I think it might be buggy though?).  I admit I wasn't aware of Ctrl+PageUp/Down at all, probably because MSVC doesn't respond to those either.  That's a nifty shortcut!
It was actually somewhat tricky to implement that, as miniSphere is fully v1 compatible and Sphere 1.x didn't have an event loop.  So if you close the window while the game is in the middle of while (true) { FlipScreen(); }, the only way the engine can honor the exit request at that point is to forcibly bail out of JavaScript execution.  With ChakraCore that's done by calling a function to disable script execution, and doing so works well enough... the tricky part is that if you leave it disabled, you'll fall right through the event loop without getting a chance to run any exit handlers.  Figuring out where to put the safety net to stop that from happening without causing other unwanted side-effects was... fun. :stuck_out_tongue:
The first beta of miniSphere 5.2 is here!  I don't normally do beta releases for minor versions, but this one turned out to be bigger than I anticipated...

Big new features showed off in the beta are:

  • Profiling with SpheRun: Run your game with spherun -p to have it profiled and see exactly how hard you're pushing the engine.  You can also use the new SSj.profile function to have the engine profile your own function calls so you can see where you're spending the most time.
  • Z.inflate and Z.deflate for general-purpose data compression.  Just pass an ArrayBuffer or typed array containing the data to be compressed!
  • Dispatch.onExit: Run some code on shutdown, after the event loop terminates.  This works even if the user manually closes the window!
  • Shape.drawImmediate: Draw a vectorized primitive on-the-fly without the need to create a VertexList and Shape first.  The prim module takes advantage of this now as well, vastly improving its performance.
  • Texture#upload and Texture#download which allow direct access to a texture's RGBA bitmap
  • Surface objects will now be accepted wherever a Texture is expected, no need to call .toTexture() first.  This allows render-to-texture effects, as well as pre-rendering, to be implemented very easily.
Engine Development / Re: miniSphere 5.1.3
Regarding the optimizations mentioned above, performance of API calls in particular has sped up a ton compared to the current release (5.1.3).  Before-and-after image attached.  This is a huge improvement and the effects are very noticeable in-game as well; everything is much snappier and CPU usage has been nearly cut in half across the board.
Engine Development / Re: miniSphere 5.1.3
I've made some improvements under the hood that should make miniSphere 5.2 noticibly snappier than 5.1 in various scenarios.

Also some new features coming in the next release, stay tuned for more info. :D
Projects / Re: Sphere 6502 emulator
This is a pretty awesome little assembler/emulator, me likey. :smiley:  Is there a specific device this is meant to emulate?
Projects / Re: Sphere 6502 emulator
I'm intrigued and looking forward to seeing more. :D
Engine Development / Re: miniSphere 5.1.3
I've updated the link for the macOS build in the OP to 5.1.3.  All supported platforms are now up to date. :D
Engine Development / Re: miniSphere 5.1.3
5.1.3 is up to fix a couple annoying issues and add support for Promise#finally().  The error screen is also a bit more colorful now. :smile: