This is very much a work in progress!!
The basic idea is to create a split screen scrolling maze game using 6502 Assembly code on for the Oric 1 and Oric Atmos.
I first coded the routines to do this back in 1983 (before any other games were using split-screen scrolling). Unfortunately the tapes I recorded from my Oric have long since disappeared (As has my memory of 6502 Assembly).
I seem to remember I'd got as far as having the split screen scrolling working, with some basic keyboard processing, randomly moving 'monsters', and some interupt driven music.
I'm just starting to re-learn the stuff I knew back then. I'll continue to update this repo with my work (stuff that isn't yet working will be uploaded, just for me to keep track of where I'm at, but won't be called from 'main').
The main idea is to keep the 'maze' stored as a block/array of bytes, with each BIT used to denote if there is a maze wall or not. At runtime the routine for drawing the maze will process the maze data and plot the current state of the maze on the screen for the current top-left position.
I'm not intending on pixel level scrolling. Ideally the scrolling will be performed on a character level (as a future enhancement maybe the maze will be 'magnified'. So 1 bit set in the maze data will be a 2 * 2 character in the maze, and this will be scrolled 1 char at a time?)
I'll repeat - this is very much a work in progress.
TODO (in approximate order):
Would be nice to
The aim of this bit of coding was, origionally, to provide a scrolling area which is much bigger than the Oric screen
Bits that might be re-used
Offscreen layout
The split screen scroller
The tracker and sound effects
Rom independent sound
Keyboard mapper
KNOWN ISSUES ~~Keyboard not as responsive as I would like (add keys as parameters to player data and only lookup the keys required, rather than doing a full scan)~~
IDEAS/ TODOS
Score (length or time survived)
Level (faster and more obstacles)
Leave no trail for next x moves
Add obstacles
Remove obstacles
Explode other player
Jump x places in a direction
Draw lines into area (vert or horizontal or both)
Collectables (collect in order?)