(almost)MAV-less Blitz3D

#1
I was bored so I grabbed MSVC 6.0 from a shady corner of the Internet and modified Blitz3D to make a version that can produce executables that don't crash immediately when an error is found.
Instead, each error is added to a queue that you can retrieve details from by calling ErrorLog(), like so:

Code: Select all

Local errStr$ = ErrorLog() ;get first error
While Len(errStr)>0 ;if string is empty, there are no more errors
    ;do something with errStr here
    errStr$ = ErrorLog() ;get next error
Wend
When an error occurs, the function that had the error returns 0 instead of forcing the game to close, which means it could potentially keep running without major problems other than a missing or misplaced object.

MAV's aren't completely gone, but they should be a lot harder to get.
One instance where error checking is not performed is in WritePixelFast/ReadPixelFast, because adding that could ruin the purpose of those functions.

Download here:
https://www.dropbox.com/s/6pvl4sdldd8kx ... n.zip?dl=1

Source code:
https://github.com/juanjp600/blitz3d/
To install this, rename your Blitz3D bin folder and put this one in as a replacement. Any executables produced by this version require fmod.dll to run.
Last edited by juanjp600 on Wed Aug 17, 2016 4:35 pm, edited 6 times in total.

Re: (almost)MAV-less Blitz3D

#3
juanjpro wrote:I was bored so I grabbed MSVC 6.0 from a shady corner of the Internet and modified Blitz3D to make a version that can produce executables that don't crash immediately when an error is found.
Instead, each error is added to a queue that you can retrieve details from by calling ErrorLog(), like so:

Code: Select all

Local errStr$ = ErrorLog() ;get first error
While Len(errStr)>0 ;if string is empty, there are no more errors
    ;do something with errStr here
    errStr$ = ErrorLog() ;get next error
Wend
When an error occurs, the function that had the error returns 0 instead of forcing the game to close, which means it could potentially keep running without major problems other than a missing or misplaced object.

MAV's aren't completely gone, but they should be a lot harder to get.

Download here:
https://www.dropbox.com/s/6pvl4sdldd8kx ... n.zip?dl=1 (I'll release the source code at some point, might need some cleanup first)
To install this, rename your Blitz3D bin folder and put this one in as a replacement. Any executables produced by this version require fmod.dll to run.

Where can I find my Blitz3D bin folder?

Re: (almost)MAV-less Blitz3D

#8
Sad_ness wrote:I guess I don't have Blitz3D installed then. Where can I install the right one? There's multiple on the Blitz3D site and idk which one.
Here's where you sign up: http://www.blitzbasic.com/Account/signup.php. Just follow the steps in the image KirbyMario uploaded, and once you register the product to your account, download v1.108c from the updates page.

Here's a modified version of SCPCB that hopefully won't crash, but instead errors will be dumped into a log file: https://www.dropbox.com/s/rkegfhysmeken ... s.zip?dl=1

Re: (almost)MAV-less Blitz3D

#9
juanjpro wrote:
Sad_ness wrote:I guess I don't have Blitz3D installed then. Where can I install the right one? There's multiple on the Blitz3D site and idk which one.
Here's where you sign up: http://www.blitzbasic.com/Account/signup.php. Just follow the steps in the image KirbyMario uploaded, and once you register the product to your account, download v1.108c from the updates page.

Here's a modified version of SCPCB that hopefully won't crash, but instead errors will be dumped into a log file: https://www.dropbox.com/s/rkegfhysmeken ... s.zip?dl=1
Alright, thanks.

edit: Is that modified version going to be updated when future updates come out?