XOR for MSX

Page 1/2
| 2

By chalky

Resident (54)

chalky's picture

02-02-2020, 15:24

I have just finished an MSX-BASIC version of XOR (originally created by Astral Software and published by Logotron in 1987, but never released for MSX) and sublitted it to the downloads section. While it is awaiting approval here is a link for anyone who would like to have a look (this will be deleted once/if my submission is accepted):

XOR.dsk

This has proven quite a challenge. The original graphics were 24x24 pixels, so needed recreating as 16x16 pixels. The drawing (in BASIC) was simply too slow to be done each screen update, so I draw the whole level in 4k of unused VRAM at the start (hence the progress screen) and then use an assembler routine to copy the current viewport to the visible screen. I am quite pleased with the result - though there are probably optimisations which could be made (my assembler knowledge is almost non-existent!). The background music is based on the C64 version and uses interrupts (PAL) to keep all 3 channels loaded with 1-bar patterns. This enables the music to loop without a break, but does cause a slight visual pause every now and then. Although I have used assembler to update the map window, the movement algorithms are in BASIC and can be very complex. If playing in an emulator, setting the emulator speed to 200% or above makes it pretty playable - although the background music will need turning off due to its reliance on interrupts.

Level 16 (originally only accessible via the level editor) has been included for completion. Images of other unpublished levels have been sourced and may be converted in the future if there is sufficient demand.

Login or register to post comments

By Jipe

Paragon (1377)

Jipe's picture

02-02-2020, 17:04

play with turbo-R mode Wink

By Timmy

Expert (124)

Timmy's picture

02-02-2020, 20:20

This is really nice. I've played and finished the original and this version is looking nice too (even if I'd probably ported the Spectrum version myself, of course.)

Perhaps I should try porting this as well, but it's nice looking enough for now. Smile

By alexito

Hero (622)

alexito's picture

02-02-2020, 20:42

@Chalky: Played on BlueMSX in TurboR R800 Mode and I was amaze with the addictive game play really a very good job porting a BBC Micro Game to MSX. I would like see in the future Joystick support.

I recommend to check HERMAPHRODITUS Game because it contain very really useful tip the how to improve basic execution also give a check to: https://www.konamiman.com/msx/msx2th/kunbasic.txt

Probably if someone decide to do a remake for MSX2 it could look like the Atari ST version.

By gdx

Prophet (3436)

gdx's picture

03-02-2020, 10:03

If you delete the lines 370-390 in the "XOR_GAME.BAS" and replace all GOSUB370 by A=ASC(INKEY$+CHR$(0))AND223, I think the game will be a little faster. There are probably other optimisations to do.

By alexito

Hero (622)

alexito's picture

03-02-2020, 14:41

I really like the playability of UZEBOX version:

https://nicksen782.net/UAM/APP_emu/?gameid=167

if we compare it to the Speccy version.

By alexito

Hero (622)

alexito's picture

03-02-2020, 14:43

By chalky

Resident (54)

chalky's picture

03-02-2020, 21:07

Glad some people like it - the TurboR suggestion makes the game very playable (I've tested it in blueMSX on the default TurboR machine - but can anyone point me towards a TurboR machine in openMSX?).

The .dsk image linked to in my first post has been deleted as the game is now available from the downloads section on this site.

@gdx: useful trick that - I've not seen it before. I will definitely use it in my code as any performance improvement has to be a good thing - thanks! As you say, there will probably be other optimisation possibilities, but after an intense time developing the game in its current form I am taking a break from MSX-BASIC while I have a go at creating playable versions of the 'unpublished' levels (from images only unfortunately - so the finished product may not be totally accurate). Any improvements to the engine will be released with them once they are done.

By Grauw

Ascended (8931)

Grauw's picture

03-02-2020, 21:11

Panasonic_FS-A1ST
Panasonic_FS-A1GT

By the way, I think many assembly programmers (like me) started out in Basic first and then adding a small assembly routine for some performance critical part Smile.

By chalky

Resident (54)

chalky's picture

04-02-2020, 20:48

@Grauw - thank you, much appreciated.

During work on the unreleased levels, a bug became apparent where bombs might 'blow up' an edge wall and allow the player to move off grid - resulting in a crash. Apologies for this - unfortunately despite hours of testing with the officially released levels this never happened (probably because I never detonated a bomb against an outside wall). I have fixed the issue and uploaded a patched version here: XOR1.dsk

I have also submitted a patched disk image to replace the one on the downloads page but am unsure whether I have used the correct process, so will leave the file linked to above until I know either way.

Interestingly, converting the unreleased versions also revealed a flaw in my level-converter related to exits - though thankfully this will not affect the original levels as all their exits fall within an 8x8 grid.

On a plus note, I have successfully created all 15 unreleased levels (although the 15th is actually the "HIDDEN CAVERN" level originally accessed via the level designer) and plan to release them as a separate download once I have figured out how to get round the exits problem (the exits all work - it's how to display them on the map [3 colours in an 8 pixel Screen 1 character] which is the challenge).

By alexito

Hero (622)

alexito's picture

05-02-2020, 02:36

Thanks for the update.

Page 1/2
| 2