UnderwareDesign
December 11, 2017, 01:20:06 AM *
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 9310 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

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!