Skip to main content

News

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

0 Members and 22 Guests are viewing this topic.
Re: minisphere 1.0.1
Reply #195
That's my biggest peeve about MSVC. Its standard library tends to take the standard a little loosely, and unlike the GCC and Cland standard libraries it doesn't offer warnings when you use nonstandard functions.


As for const-correctness, from what I understand - if we're being technical about it it's not undefined behavior to cast away constness (C++ has const_cast for a reason), it's only UB if you write to an actual constant.  I'm not saying this isn't a potential source of bugs of course, just want to dispel any misconceptions.  That said, const-correctness is something I do take seriously (if you look at the code, I declare a good number of const pointers myself), but if MSVC doesn't warn me about it, I may not always catch violations.  But even with /W4, I don't get any such warnings, and /Wall is just unfeasible as mentioned above.  Clang must just be REALLY pedantic.


Clang doesn't joke around :D That's why I am so happy that TurboSphere compiles with -Wall -Werror with both GCC-compatiblity and pure Clang mode.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.2
Reply #196
minisphere 1.0.2 is up, fixing a lockup when using IsKeyPressed in a loop.  Had to use git bisect to find this one, it had me stumped for over a week.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 812.8.2 now with awesome 3D!
Reply #197
Hey, check out the new 812.8.2 version of minisphere!  It's flipping awesome! :D
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: minisphere 812.8.2 now with awesome 3D!
Reply #198

Hey, check out the new 812.8.2 version of minisphere!  It's flipping awesome! :D


3D!? That's amazing! I'll definitely check it out when I get home. But I'll have to be very careful of the hunger pig.
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 812.8.2 now with awesome 3D!
Reply #199
Sorry guys, I'm going to have to pull 812.8.2 at midnight.  It seems everyone that tested it ended up getting eaten by that hunger-pig at 8:12pm. :'(

...April fools!  There was no 812.8.2 version of minisphere with awesome 3D rendering, I made it up (not that it wasn't entirely obvious anyway, haha). ;D. I did post a real bug fix release today though (1.0.3), in case anyone missed it.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.3
Reply #200
Odd, I can't get Kefka's Revenge to run in minisphere.  I get an error loading jewtheblue.bmp, which doesn't make sense since Allegro is supposed to support BMP.

Edit: Figured it out, the offending image is actually a PNG image saved as .bmp (Thank goodness for hex editors!).  Allegro apparently doesn't appreciate the file extension being changed, while Corona doesn't seem to mind.  I'm debating whether I should code in a workaround for this or just leave it alone and make a note in the readme... I'm leaning towards the latter.

Edit2: Aww, looks like KR isn't going to run in minisphere any time soon as it uses the animation API, which I currently have no means of supporting.
  • Last Edit: April 02, 2015, 03:02:49 pm by Lord English
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: minisphere 1.0.3
Reply #201

Edit: Figured it out, the offending image is actually a PNG image saved as .bmp (Thank goodness for hex editors!).  Allegro apparently doesn't appreciate the file extension being changed, while Corona doesn't seem to mind.  I'm debating whether I should code in a workaround for this or just leave it alone and make a note in the readme... I'm leaning towards the latter.


AFAIK corona uses the file contents to verify the data, while a lot of libraries tend to use the stupid file extension. Our Sphere engines for example can load rws files without .rws appended to it. Using the first 4 chars to verify the filetype.
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

  • N E O
  • [*][*][*][*][*]
  • Administrator
  • Senior Administrator
Re: minisphere 1.0.3
Reply #202
Looking forward to reading OSX compilation instructions so I can give this a shot on my Mavericks MacBook Air!

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: minisphere 1.0.3
Reply #203

Odd, I can't get Kefka's Revenge to run in minisphere.  I get an error loading jewtheblue.bmp, which doesn't make sense since Allegro is supposed to support BMP.

Edit: Figured it out, the offending image is actually a PNG image saved as .bmp (Thank goodness for hex editors!).  Allegro apparently doesn't appreciate the file extension being changed, while Corona doesn't seem to mind.  I'm debating whether I should code in a workaround for this or just leave it alone and make a note in the readme... I'm leaning towards the latter.

Edit2: Aww, looks like KR isn't going to run in minisphere any time soon as it uses the animation API, which I currently have no means of supporting.

It uses MNG for only a select few things, like the little dragon morph animation on the title screen. Maybe they could simply be stubbed?

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.3
Reply #204

Looking forward to reading OSX compilation instructions so I can give this a shot on my Mavericks MacBook Air!


There's an SCons script in the repo now, courtesy of Jester.  You should probably be able to use that to build it.  Just keep in mind you will likely get some warnings. :)
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: minisphere 1.0.3
Reply #205
Tried to compile from master:

Code: [Select]
gcc -o minisphere/font.o -c minisphere/font.c
minisphere/font.c: In function 'free_font':
minisphere/font.c:189:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
  for (int i = 0; i < font->num_glyphs; ++i) {
  ^
minisphere/font.c:189:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
scons: *** [minisphere/font.o] Error 1
scons: building terminated because of errors.


:(

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.3
Reply #206
Oops, that was some of my earlier code, while I was still in JS mode, I accidentally declared the index variable in the for loop itself, which is illegal ANSI C and requires the compiler to be in C99 mode to compile successfully.  It's odd though, that SCons script should be exactly what Jester used to get it to build, I haven't modified it...

I'll have to go through the code and do some more cleanup.
  • Last Edit: April 03, 2015, 09:51:55 pm by Lord English
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.4
Reply #207
DaVince, try compiling again from the latest master.  I fixed the offending line; there don't appear to be any other instances.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: minisphere 1.0.4
Reply #208
It seems to have compiled all the source files into object files, but then fails at the next step... Am I missing a dependency, perhaps? I checked, but there's no libfmod in the package repository (Ubuntu), so I'm not sure how to proceed...

Code: [Select]
gcc -o minisphere/msphere minisphere/api.o minisphere/bytearray.o minisphere/color.o minisphere/duktape.o minisphere/dyad.o minisphere/file.o minisphere/font.o minisphere/geometry.o minisphere/image.o minisphere/input.o minisphere/logger.o minisphere/lstring.o minisphere/main.o minisphere/map_engine.o minisphere/obsmap.o minisphere/persons.o minisphere/primitives.o minisphere/rawfile.o minisphere/script.o minisphere/sockets.o minisphere/sound.o minisphere/spriteset.o minisphere/surface.o minisphere/tileset.o minisphere/windowstyle.o -lallegro -lallegro_audio -lallegro_acodec -lallegro_color -lallegro_dialog -lallegro_font -lallegro_image -lallegro_primitives -lallegro_ttf -lallegro_main
/usr/bin/ld: minisphere/duktape.o: undefined reference to symbol 'fmod@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
scons: *** [minisphere/msphere] Error 1
scons: building terminated because of errors.


Speaking of dependencies, could you please list them in an INSTALL file or something? I noticed I needed liballegro5-dev liballegro-audio5-dev liballegro-image5-dev and installed the other allegro 5 packages just to be sure that I got all appropriate dependencies too, but I'm not sure what else is necessary. All the Allegro libs I am now noticing in the first line in the log up here, I suppose?

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.4
Reply #209
fmod is a standard C function (floating point modulo).  No idea what's going on there, but it's nothing to do with minisphere itself, that's for sure.

As for dependencies, Allegro 5 should be the only one.  You were right to install the whole shebang there, as I'm pretty sure I use the majority of them.  My only other two dependencies are Duktape and a small networking library called Dyad, both of whose .c files are included in the project.

Sorry for the lack of build documentation, I'm a Windows developer by nature so I'm used to having a nice IDE (read: Visual Studio) take care of everything for me.  I'd much rather write code for my own program than my build tools, thank you. :P
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub