Jump to content
  • entries
    41
  • comments
    373
  • views
    63,818

bB 1.1 beta build release B


batari

1,941 views

Here is another release that should be close enough that programmers can get started on some games.

 

This release requires a test version of Stella, posted in the previous blog entry.

 

Included in this release:

  • Support for 10 sprites (player0-player9)
  • pfcolors: now works
  • Background colors per line supported (uses new bkcolors: command)
  • scorecolor: command to define score colors per line
  • Comments with semicolon now supported
  • C-style multiline comments with /* and */
  • Use of extra RAM in DPC+ (described below)

A demo is included that shows some of the above features, except the extra RAM.

 

Sprite 0 is flicker-free and uses player0, while sprite 1 is flickered as needed for player1-player9. Use the left joystick in the demo to move the sprites and the button to change the sprite to move to see the flicker engine in action.

 

pfcolors: can specify from 1 to 255 colors for the playfield. Use DF4FRACINC to determine when the colors will update (the number of lines is determined by 256/x). For example: to update every 8 lines, use DF4FRACINC=16.) DF4FRACINC=0 will show the whole playfield in a single color, while DF4FRACINC=255 will update every line (but needs a "priming read" - more about that another time.) In the demo, use RESET to change DF4FRACINC.

 

In a similar fashion, DF0FRACINC-DF3FRACINC control how often each 8-pixel swath of playfield columns gets updated. In the demo, use the right joystick can independently control these.

 

bkcolors: works like any other color command. It uses DF6FRACINC to determine how often to update. In the demo, use SELECT to change DF6FRACINC.

 

Some other things that RevEng pointed out have been fixed (though I'm not sure if all have.)

 

Lastly, use of the extra RAM is via a stack as that's how the RAM is structured. You have a 256-byte stack. You can push and pull variables from the stack to effectively increase your available RAM, as follows:

 

push a monsterX t

 

will push variables a, monsterX and t to the stack, and you can use them for other purposes. To get them back, use pull:

 

pull a monsterX t

 

You can also push or pull a range:

push a-f

 

will push variables a-f. To get them back, use pull a-f.

 

When you push variables, the pointer is decremented and pulling will increment. A third command to handle the stack pointer is also available. The default value for the stack pointer is 256. For example:

 

stack 200

 

will set the stack pointer to 200. You can also use a variable here.

3 Comments


Recommended Comments

Of course, I'm happy about all the other things (like 10 multicolored sprites), but I've been wishing we could use semicolons for years, so I'm extra-happy about that.

Link to comment

Wow, that's a heck of an update. Lots of amazing new stuff in there - just when we thought it couldn't get better!

 

The stack based DPC ram is interesting, and I think the first post I made on AA was a request for C style comments in bB. :D

Link to comment

Is the SDATA command broken for normal use? The VisualbB Music and Sound Editor defaults to SDATA statements for it's music data.

 

My build reports "batari Basic Compiler date (1/31/2011 12:15:04 AM)" but does not compile with SDATA statements - just normal DATA statements.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...