Sega Genesis Basic Compiler Updated

This dude devster has updated his sega genesis basic compiler yet again, making it version 0.19. The compiler can be found at http://devster.retrodev.com/sega/basiegaxorz. With this tool, a lot more sega genesis, and even sega cd demos+games should be expected =D, even from beginer programmers.

Here's a list of what's new in v0.19
  • Added the endcode data label
  • Fixed a bug when using argunerics directly on a function, where the future expressions would not be interpreted. Eg: a=joypad().7+1, the +1 would be missed.
  • Finally, other basic programs can be included into other basic programs using the INCLUDE command. There's a catch though, included can only be nested once, the begining line label check doed not work, you cannot add multiple statements on the INCLUDE command, and it is still very buggy and will be buggy for a long time. Including programs was a hard to do with the compiler since everything is compiled linearly.
  • More IDE junk: In the options dialog, an emulator and tile editor can be searched for with an open dialog box
  • Added an Open Recent menu
  • Included a window that will display all Sega CD programs added with the ADDSCD command for Sega CD Boot ISOs. It shows the filename, and its assigned sector. This will be helpful for keeping track of sector numbers.
  • Added the support for in-line constants with the # symbol
  • Improvements were made to assiging labels to data (data labels)
  • Fixed yet another bug with DRAWTILES with the Tiles VRAM Offset argument, where it actually didn't work
  • Added a new command, DRAWTILESINC which doesn't use any data labels, but draws tiles in an incrament fasion, eg: specify it to start at tile 128, and it will draw all tiles from 128 to etc
  • Added a new commnad, DRAWTILESOVR which acts like DRAWTILES, but tiles marked 0 will not be drawn, preserving the background
  • Fixed the clr.l d1 bug with the command DRAWTILES and DRAWTILE
  • Added the functions POSX, POSY, CURINK to determine the cursor's position, and the current ink color
  • Added the function READTILE
  • The compiler adds a label to each ASM nested statements, and to libraries so the user can use @label and any label name for labels
  • All 4 PSG channels are set to mute in the start up
  • Fixed the Soft Reset bug on real hardware. The software would always check the status of the HV counter on startup, and would infinitely loop if it wasn't in a specific range - pretty nifty =D
  • Some GUI optimizations here and there
  • Fixed a bug when the last open document was closed, some buttons would dissapear, and some buttons would crash the program
  • Splash screen (actually the about screen) added, and is shown when a new compiler version is executed for the first time
  • When multiple documents are in the command line, the IDE will open them all in multiple windows
  • The External TH Interrupter on the joypad port is now supported
  • The command LoadTiles is now 3 times faster! Note: Speed is measured only when the screen is disabled. With the old routine, it would take 1.08 minutes to load 1024 sets of 1024 tiles (Equals 32mb). With the new routine, it took 0.37 minutes.
  • The functions HFlipTile, VFlipTile, RotateTile, Priority, and Pallette have been added to customize drawing tiles
  • Some Editing Enhancements: Find, Find Next, Search and Replace, Insert Date+Time, and Go To Line
  • Fixed a bug with the Dim command that allocated 2 bytes to long variables
  • Fixed a bug with ReadLong that allocated 2 bytes to long variables that haven't been created
  • Added the commands FastTileCopy and MemCopy to do some low-level, high-speed memory copying
  • <, >, <=, >=, and <> string comparisons works now. When a string is compared to another string, the destination value will be an integer.
  • The function UnitType added to determine whether the machine is a domestic, or overseas unit
  • The function TVType added to determine whether the machine is NTSC, or PAL
  • The function VDPRAMRead() and the command VDPRAMWrite were added to read/write directly to the VDP RAM
  • The functions Read$, Read, ReadINT(), and ReadLONG&() were created, so execution time is faster if data doesn't need to be read into a variable, but passed into an expression
  • ReOrgCode option added to change the code address for Sega CD Porgrams
  • ReOrgVars option added to change the next variables address to tack on more RAM storage for Sega CD games
  • StartCode& function added to give the first byte of compiled code
  • EndCode& function added to give the last byte of compiled code
  • External RAM Support for variables
  • .BEX file associations can now be done within the IDE
  • The expression system now handles parenthesis, eg: a=4+((((7*2)*(1+2))*(2*2))+5) works
  • Assembly code is automatically optimized
  • The command FAKE has been added to virtually make variables into fake data labels for use with RELOAD, READ, WRITE, and tile/pallette loading commands
  • Genesis roms can now be compiled for PAL machines with the command TVSET
  • Regmove.x can now use immediate values for sourcing arguments
  • Fixed a bug with LOADTILES. Now it clears register d1 before use.
  • Fixed a bug in the INPUT command when the screen scrolls down
  • Added font and tab options to the IDE
 
Back
Top