Attached is a zipped folder that contains two tools that XB programmers can use to create arcade quality games.
The first tool is XB256 which unlocks most of the graphics capabilities of the 9918A video processor. You can can toggle between 2 screens while preserving the graphics on each screen. Screen2 offers a full 256 unique character definitions, compared to 112 in XB. Plus, you can have 28 double sized sprites, each with its own unique character pattern. There are scrolling routines to scroll characters left, right, up and down. Others let you scroll smoothly a single pixel at a time. Yet another lets you do a "Star Wars" style text crawl. Areas of VDP memory can be save in a compressed format so you can save character definitions, sound tables, screen images, etc. in a more compact form that can be loaded much more rapidly. There is a sound list compiler that creates sound lists from music and sound effects that you create in XB. Once these are included in your program you can choose music or sound effects to automatically play in the background while your program runs. Also, the sound list player can play two sound lists at a time so you can have background music playing with sound effects that don't interrupt the music. All this can be easily programmed in XB.
The other tool is my XB compiler, which has been expanded to include all of the XB256 assembly language subroutines. Compiling the program will speed it up by a factor of 10x to 30x. With the ability to run the advanced graphics and sound capabilities of XB256 at near assembly speed you can create arcade quality games without having to learn how to program in assembly language.
(Edit May 18, 2014 - Revised version is attached with CF7 and Myarc controller compatibility, more versatile memory allocation for sound tables, and expanded documentation about sound tables. Replace the old one with this and don't mix and match files as they are not compatible between versions.)
(Edit November 16, 2014 - Added disk catalog utility (CAT) to XB256 and a faster random number generator (IRND). There are now two converter programs that generate sound lists from XB CALL SOUND statements, which have different strengths and weaknesses. The manual was expanded and a few bugs were fixed.)
(Edit November 30, 2014 - Newest version with a few improvements - FREEZE and THAW for automatic sprite motion, IRND expanded to return up to 8 random numbers per call, etc.)
(Edit December 26, 2014) This should be the final update of the XB256/COMPILER256 combination. There is a built in utility that forces a program to be saved in IV254 format. If the XB program segments are in IV254 fomat then large programs running under XB256 can be chained together without overwriting the screen, character definitions and colors used when in screen2. A subroutine has been added that will load a font with true lower case characters with descenders. There is a subprogram CALL LINK("SCREEN",color) that works exactly like CALL SCREEN except the screen color is saved. That way when you change screens the screen background colors are saved/restored. And of course, the usual tweaks to the documents.
(Edit June 12, 2015) Compiler256D now has disk access - DV type only of any length, up to 3 files open at a time plus a few bug fixes. Part of XB Game Developer's Package. Latest version is in this post.
(Edit April 27, 2017) BXLOADER is attached. This lets you use the EA cartridge to load the object code, giving a 20x improvement in speed.
(Edit April 28, 2017) BXLOADER is updated. Now you have the option of using compressed object code which loads twice as fast as uncompressed code.
(Edit January 25, 2018) "Amontillado" Major update to user interface. There is an autoprompt every time a response is asked for and you pretty much just have to press Enter repeatedly to compile a program. A menu program now directs everything and the new loader is incorporated as part of the package. Changes to the original XB/XB256 program can be made and recompiled very quickly now. The agonizingly slow GPL loader from XB is replaced with the fast assembly loader from E/A. Read XBGDPDOCS for set up information.
(Edit February 13, 2018) "Bordeaux" Changed the compiler so it can handle the more versatile XB style IF/THEN/ELSE format
(Edit February 14, 2018) Uploaded "Bordeaux" again with slight revisions to compiler documentation.
(Edit February 25, 2018) Uploaded the "Chardonnay" version. This fixes the IF/THEN/ELSE bug that was in "Bordeaux". As far as my testing shows, the only limitation is that you cannot have nested IF/THEN/ELSE statements.
XB256 and XB have been altered so you can tell whether autosave is active. When it it active there is a light pixel in the center of the cursor. The cursor becomes solid black when autosave is no longer active.
The compiler is still an XB/Assembly hybrid program, but it was rewritten so the main loops are all in assembly. This makes it about 5-6x faster.
Nested arrays can now be used
Multiple variables can be assigned with one LET statement. i.e. 10 A,B,C,D=23 or 10 IF Z=12 THEN A$,B$,C$="YOU WIN!"
The compiler looks for decimal points and gives a NON INTEGER message next to the line number. This way when you return to XB you know which lines need attention.
Speech is supported with both SAY and SPGET.
As always, these changes may cause unexpected trouble in other parts of the program, so for now this is a BETA release.
A folder, GRECHETT99 was added with files modified to run on a real TI99. The autoprompts are modified to provide the proper defaults when running on a real TI99. A bug in disk access is fixed.
There are two other changes that hopefully won't cause trouble:
1 - The runtime files have been rearranged to use memory more efficiently - i.e. XB256 routines are not loaded unless needed.
2 - The runtime files in GRECHETT99 have been stripped of comments to be more compact. Without the comments they are about half the size. Hopefully no code was inadvertently stripped out.
Here is the latest and probably the final version of the XB Game Developers Package. This version is called "Hondarrabi".
(I went directly from GRECHETTOBETA to HONDARRABIBETA)
The most important addition is that named subprograms are now fully supported. Now almost everything in XB can be compiled, with the exception of DEF and trig functions.
I will leave this in beta for testing for maybe 3 months before making it the final release. Find the bugs now, before I lose interest in this!
Edited by senior_falcon, Sun Mar 17, 2019 8:28 PM.