Hi guys,
at the moment I'm working on a Multi Platform Arcade Game Designer (or in short MPAGD) port for the System5.
MPAGD is a game development environment for writing games and there are already ports for the BBC, Electron and Atom.
But this port is a bit of a challenge and some hurdles had to be taken.
Memory:
Memory is no problem if the System 5 if fully loaded with all expansion RAM boards.
If so, you have 48KB of user RAM available.
Graphics:
The System 5 only has an 80- and 40 column video board where the 40 column video board is a good candidate.
This board is based upon an SAA5050 so has Teletext mode almost like the BBC MODE7 and that's the first hurdle ...
Because most MPAGD ports are using bitmap, you can control every pixel on the screen but Teletext mode uses a character based screen.
And if you want to use graphics, you need to use the semigraphics characters which are 2x3 pixel characters.
The screen is 40x25 characters so the resolution is 80x75 pixels which is very limited, also because the first byte on a line should be a controlcode to switch the line in semigraphics mode.
MPAGD blocks are defined as 2x3 pixels, sprites and objects are defined as 8x9 pixels.
To shift sprites pixel by pixel, every sprite has 6 pre-defined images.
Colours:
In Teletextmode you can use 8 colours but to use colours, you have to define a controlbyte on the screen and after that byte the characters are displayed in that colour.
Sound:
That's easy because the System 5 has no sound option ........
Keyboard:
Reading the keyboard is also a hurdle because the System 5 has a chip which controls reading a key from a matrix and gives a pulse when a key is pressed.
Only one key is read even if multiple keys are pressed and you can't read the matrix directly.
Also if you keep pressing a key, autorepeat is generating a pulsetrain which doesn't make playing a game easy.
This is a big limitation.
Expansion:
To overcome the limitations in sound and keyboard handling, Roland Leurs and I designed a PCB, which can be installed in the keyboard cable, with a speaker and a joystick connector.
Normally the keyboard is read by reading PORT A of a 6522 VIA.
What we did is using a bit to switch between reading 8 bits from the keyboard or read 5 bits from a joystick and write 1 bit for a speaker.
So with this interface you can switch between reading the keyboard or reading the joystick and toggle the soundbit to produce sound.
This works well and multiple directions with the joystick can be read.
Demo's:
I wrote a few demo's to see if all MPAGD options/commands are working.
https://youtu.be/pXSw8UHj7DQ
https://youtu.be/KJvP8DfFCSk
https://youtu.be/O3WOQFYkQ0s
https://youtu.be/flj_MpUzt38
https://youtu.be/ZBaK8kZP-84
https://youtu.be/b2QVNuSlstg
https://youtu.be/tBDJeOBwYVo
at the moment I'm working on a Multi Platform Arcade Game Designer (or in short MPAGD) port for the System5.
MPAGD is a game development environment for writing games and there are already ports for the BBC, Electron and Atom.
But this port is a bit of a challenge and some hurdles had to be taken.
Memory:
Memory is no problem if the System 5 if fully loaded with all expansion RAM boards.
If so, you have 48KB of user RAM available.
Graphics:
The System 5 only has an 80- and 40 column video board where the 40 column video board is a good candidate.
This board is based upon an SAA5050 so has Teletext mode almost like the BBC MODE7 and that's the first hurdle ...
Because most MPAGD ports are using bitmap, you can control every pixel on the screen but Teletext mode uses a character based screen.
And if you want to use graphics, you need to use the semigraphics characters which are 2x3 pixel characters.
The screen is 40x25 characters so the resolution is 80x75 pixels which is very limited, also because the first byte on a line should be a controlcode to switch the line in semigraphics mode.
MPAGD blocks are defined as 2x3 pixels, sprites and objects are defined as 8x9 pixels.
To shift sprites pixel by pixel, every sprite has 6 pre-defined images.
Colours:
In Teletextmode you can use 8 colours but to use colours, you have to define a controlbyte on the screen and after that byte the characters are displayed in that colour.
Sound:
That's easy because the System 5 has no sound option ........
Keyboard:
Reading the keyboard is also a hurdle because the System 5 has a chip which controls reading a key from a matrix and gives a pulse when a key is pressed.
Only one key is read even if multiple keys are pressed and you can't read the matrix directly.
Also if you keep pressing a key, autorepeat is generating a pulsetrain which doesn't make playing a game easy.
This is a big limitation.
Expansion:
To overcome the limitations in sound and keyboard handling, Roland Leurs and I designed a PCB, which can be installed in the keyboard cable, with a speaker and a joystick connector.
Normally the keyboard is read by reading PORT A of a 6522 VIA.
What we did is using a bit to switch between reading 8 bits from the keyboard or read 5 bits from a joystick and write 1 bit for a speaker.
So with this interface you can switch between reading the keyboard or reading the joystick and toggle the soundbit to produce sound.
This works well and multiple directions with the joystick can be read.
Demo's:
I wrote a few demo's to see if all MPAGD options/commands are working.
https://youtu.be/pXSw8UHj7DQ
https://youtu.be/KJvP8DfFCSk
https://youtu.be/O3WOQFYkQ0s
https://youtu.be/flj_MpUzt38
https://youtu.be/ZBaK8kZP-84
https://youtu.be/b2QVNuSlstg
https://youtu.be/tBDJeOBwYVo
Statistics: Posted by oss003 — Sun Mar 23, 2025 3:24 pm