XPROEMUA 27.4.2014


4.11.2014: game versions changed to remove errors

29.4.2014: error removed (compiled interpreter buffer swap) and GAMING TRICK inserted (how to play the 33 games with 1 fps on the ATARI ST 8MHZ), also readable in this document.

XPRO Emulator ATARI is a XPRO VGA gaming console emulator for the ATARI ST with monochrome monitor.
You can compile the monochrome versions of the 33 BrowserBasic games for that emulator, but it is very slow. The monochrome versions can also be played with XPROInterpreter. Then you must change the line mulx=1 to mulx=4 in every game you compile, because XPROEMUA bitblocks are smaller in memory (XPROInterpreter still uses 16 colors).

GAMING TRICK:

The 33 compilable games use most of the 5000000 instructions per second to wait in a for loop. Otherwise the next frame is displayed too early. If you remove that loop, you can play with about 1 frame per second on your ATARI ST.
Find a sequence looking like the following instructions in your compiled game.txt:

LOAD B,256
MULT A,B
LOAD B,1
ZEILE_XXX_LOOP:
LOAD C,ZEILE_XXX_RESUME
JEQ A,C
SUB A,B
LOAD C,ZEILE_XXX_LOOP
JMP C
ZEILE_XXX_RESUME:

XXX varies from game to game. Simply search for LOAD B,256 in your editor. If MULT A,B is the next line and a LOOP follows, it is nearly sure that you found the frame delay loop. Change LOAD B,256 to LOAD B,0 and assemble game.txt. The result runs with about 1fps on a ATARI ST 8 MHZ.

Benchmark test results show, that XPROEMU ATARI processes about 1000 XPRO instructions per second. Basic programs process about 10000 comparable instructions per second. The XPRO32 processor in the XPRO VGA console is expected to execute 5000000 instructions per second. This is the reason for the performance gap. The small assembler program in the folder TIMETEST executes 5242880 instructions. It took more than 25 seconds. So a XPRO VGA emulator for the ATARI must be about 25 times slower than the XPRO VGA console. 8 MHZ is not reached by the ATARI for more complex arithmetic instructions (MULU, DIVU).

The BrowserBasic compiler must be run with the AppletViewer from the JDK or be located on a webserver location.