UnderwareDesign
January 19, 2018, 12:55:56 PM *
News: G2D - 2D OpenGL library V007 for PlayBASIC V1.64P - Including Programmable Particles   (Released 22nd,Nov 2014)
   Home    
Pages: 1 ... 3 4 [5]
 
Author Topic: PlayBASIC V1.65 (Work In Progress) Gallery  (Read 10168 times)
Member
Development Team


WWW
« Reply #60 on: September 01, 2017, 08:52:15 PM »


  PlayBASIC V1.65 Beta 4 - RndRange() being skewed by caller


  Found an interesting difference between PlayBASIC V1.65 and PlayBASIC V1.64 last night with the RndRANGE() (integer version) being rounded slightly in the 1.65 runtimes..

  This one was only detected while looking through the JetPAK sources from Ian Price.  Some of the controller code in that demo used  an expression like this  Y=Y+RndRange(-1,1)*2  so those characters wouldn't move randomly UP / DOWN in PB1.65, only up,  as a result of 1 wasn't seem possible..  Seems to be fixed now in PB1.65 Beta4  so 'll throw that up on the server over the weekend.  

  Another change has been  made to legacy expression solver, NOT operations are now solved after AND/OR/XOR again..
Logged

Member
Development Team


WWW
« Reply #61 on: September 05, 2017, 09:37:14 PM »


 PlayBASIC V1.65C BETA #4 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)  (6th Sep,2017)

      V1.65C Beta #4 continues with the V1.65 clean up.   While working through some old examples I noticed that JetPAK (after fixing it) ran different in V1.65 than older PB versions.    The main issues were the optimizer was breaking some expressions that contain NOT and there was some rounding sneaking into the integer version of RNDRANGE() function call

.     In JetPAK the game uses an expression such as Y = Y + RndRange(-1,1) * Speed to move some characters up / down randomly, when running the game in V1.65 they only would move up, where as in V1.64 they behave normally.  Took a bit of detective work, but we ended up having to wrap a separate version of RndRange in order for it behave like the older versions of PB..   Another issue that work differently in older versions of PB then  1.65 was the player collisions and gravity in the game.  There was an issue with the NOT opcode read/writing the incorrect variable/register as well the PB byte code optimizer could break those expressions by modifying the output expression incorrectly.   

      The only functionality change in this build is the precedence of NOT has been restored to being lower than the AND/OR/XOR operations.  So the NOT will occur at the end of the expression.   Which is how it used to work, but it seems to have changed at some point...


      Anyway, the byte code optimizer should now tweak these kind of expressions into the simpler forms that function  the same..

PlayBASIC Code:
      result= not  A=B

      if  not  A=B

      endif


      if  not  A<>B

      endif

      if  A=B

      endif

      if  A<>b

      endif





 

 
 
Bug Reporting

     See->> PlayBASIC V1.65 Bug Reports (login required).


         
 
Download


   Download PlayBASIC V1.65C Beta4 (login required)  6th,Sep,2017)


Logged

Member
Development Team


WWW
« Reply #62 on: October 03, 2017, 09:47:38 PM »


  PlayBASIC V1.65 Beta 6 - Command Caller

    So last night I've finally managed to weed out the last dark corners of the legacy command callers from the new VM.   This means that all of the command set can now be considered external.  The problem I was having is that internal commands have some wacky parameter matching in them, which allowed for a bit less table data back in the day and pushed some of the work onto the VM, so those  commands have logic inside them to handle the different input types.  Some still do,  in particular commands that are considered part of the VM.  Arrays would be able of that.   

    For example, the classic PRINT statement, was defined as accepting Integer/Floats and String as parameter, then the VM caller would work out what to do when calling the print  oncode in the VM.  This is cool can all but in the new vm, were calling a function with a single pattern, so any differences need to be either be converted prior and our during the call, ideally without adding any overhead to the call.   What I ended up doing is the latter, is coming with a way of defining stuff that is simple to how it works already (coz i'm lazy) that can handle conversion of terms if need be.   So it should make the end functionality of the same how it already works,  but the caller operation is much leaner and meaner,  giving us faster execution.

   I know this all sounds like none -sense but splitting the VM some the command sets and having a generic caller means the VM doesn't need to be updated to add new commands and more importantly, we can change command sets....  Still have to sure up the caller and opcode generation stuff (it's just hacked in to get it working) then we can convert the command set tables.  Which I think I can write a parser to convert most if not all of them..  But for now I'll keep the test to a hand full of left over commands




Logged

Member
Development Team


WWW
« Reply #63 on: October 09, 2017, 09:51:02 AM »

   PlayBASIC V1.65 Beta 7 - FastDot benchmark hits 60fps

      Yep, last nights build of PB1.65C pushed the FastDot bench from a new high of 22/23fps up to 60fps on Athlon test system.... (800*600 PIXELS IN 32BIT)

          Smiley      Smiley      Smiley      Smiley



   EDIT:
   


Logged

Member
Development Team


WWW
« Reply #64 on: November 17, 2017, 08:45:08 PM »


  PlayBASIC V1.65 Beta 14 - Kissing Vm2 Goodbye

       Early this morning PB sprang back to life after being dead for the best of last week,  as outlined in the last video blog, I moved directly pass the function caller updates onto separating VM3/4 from legacy VM2.  Cutting the umbilical chord and making it sink or swim on it's own, of course initially it sunk Smiley  -  However after some pretty boring detective work, I've been able to track down why an where the crashes appear.  Some obvious and some not so...  So it's been sort of sorta of running for days, but wouldn't run anything big, now after this morning repairs it's actually starting to run bigger stuff again..  Still unstable, but working !!

   


Logged

Member
Development Team


WWW
« Reply #65 on: December 15, 2017, 09:59:23 PM »


  PlayBASIC V1.65 Beta 15 - Hooking the debugger

     So some good news today as work ticks along with the transition to the VM3 focusing on the debugger hooks, which has meant rewriting and patching the old debugger and new runtime together,  as of today we're down to two instructions left to fix, which relate to step and trace.    Once those are in place it should be all working, of course with whatever quirks...
Logged

Member
Development Team


WWW
« Reply #66 on: December 29, 2017, 10:38:43 PM »

 PlayBASIC V1.65C BETA #20 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)  (29th Dec,2017)

      V1.65C Beta #20 virtually concludes the V1.65 clean up.  In this build we are running on the new VM only.   Which means all new instruction set and all new inner workings of PlayBASIC...  In this last build we're reconnected the Vm with the legayc debugger,  which was previously rigidly hooked to the legacy VM making it break in later builds.   In this version is almost back to normal, I say almost as the old interfaces are still there and there many be some routines still using them, but I'll tackle  that in the clean up when building a release version in the new year.

      The new runtime brings us more number crunching performance, standard instruction set and is now separate from most of the command sets (some are built into the VM.. like strings or array commands)  the generally command sets could be swapped without needing to constantly update the runtime.   There's some features of V1.64P that are NOT in the new VM, which are mainly some of the compiler optimizations that it would make to user byte code, one that comes to mind is the serialization of the Type / Structure accesses..  Which can give a massive performance benefit in code that focuses it's accessed on one structure of data..  I'm going to include this in V1.65, but wanted to get it working first.. then we can add some of my list of tricks Smiley
 

      Anyway, have fun.. there's bound to be some DEBUG  messages etc in this.. but it's the future !


 
Bug Reporting

     See->> PlayBASIC V1.65 Bug Reports (login required).


        
 
Download


 Take me to  Download PlayBASIC V1.65C Beta20 (login required)  29th,Dec,2017)


Logged

Member
Development Team


WWW
« Reply #67 on: January 16, 2018, 09:02:20 AM »


  PlayBASIC V1.65C BETA #21

     So a few issues have been found and release 20 so putting together a beta 21 (well build 21) , this one fixes  SetFPS, strips from double reading from text drawing , fixes CopyRect and it's brothers (the command table was short Smiley ) and has some tweaks in it for the the release build..   All of which isn't on this system anymore, whcih means dragging it over from the devlopment box to put it online, which is always pretty tedious.

     I did notice there's one command that's become homeless and that's one of the Mesh commands using in the old 2D in 3D demos as well as various terrain demos in the example packs...    I think I might put together a mesh library,  or at least make provision for one in the command sets.   

     Anyway, we'll try and get it together tonight..     

Logged

Member
Development Team


WWW
« Reply #68 on: January 16, 2018, 09:42:01 PM »

 PlayBASIC V1.65C BETA #22 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)  (17th Jan,2018)

      V1.65C Beta #22 addresses various missing or broken issues with beta 20,  things like the SetFPS command was broken, because SYNC is now actually a command and not a VM process,  Text drawing had some extra String processing it in and some commands we're defined in the table and would crash at runtime, such as CopyRECT for example.

      Anyway, have fun.. there's bound to be some DEBUG  messages etc in this.. but it's the future !


        
 
Download

   Take me to  Download PlayBASIC V1.65C Beta22 (login required)  (17th,Jan,2018)


 
 
Logged

Pages: 1 ... 3 4 [5]
 
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006-2009, Simple Machines LLC | Privacy Policy Valid XHTML 1.0! Valid CSS!