Not Microvision Graphics btw. |
Wednesday, 22 January 2014
Space Invaders, session 3
Tuesday, 21 January 2014
Space Invaders, Session 2
Little progress today - the base at the bottom can move and you can 'fire' a missile, though it doesn't actually go anywhere yet :)
Should do a bit more tomorrow.
L8R: Got it moving up the screen, and detecting the rows, now need to match the position to the row bits.
Should do a bit more tomorrow.
L8R: Got it moving up the screen, and detecting the rows, now need to match the position to the row bits.
Monday, 20 January 2014
Space Invaders, Session 1
This is the first time I've written cross-chapter code. A TMS1100 is a TMS1000 with the extra 1k ROM bodged on using a Chapter Buffer, Chapter Address and Chapter Subroutine Store, which means that the actual program counter (423) is built up of three numbers - Chapter Address (one bit), Page Address (4 bits) and Program Counter (6 bits), making 2k in total.
I thought this would be annoying to program, but actually it doesn't make much difference. You can't actually set the CB flag (that is copied to CA when you jump/call) , just toggle it, so that's one thing to keep track of but it isn't that much of a problem to do so.
Note there is very little animation in this game, just moving blocks. But that applies to virtually all Microvision games.
Sunday, 19 January 2014
The next game will be ... Space Invaders
Okay, so it's not horribly original. But it's a reasonable second game after the trial bomber game. This shows a mock up.
I decided against shields, because it would reduce the invaders space (err...) - there probably won't be any saucer across the top either.
There's a limit to what you can draw in a 16x16 grid !
I've also updated the bomber.asm and tms1100 assembler, so it can use include files - I did it just by concatenating the files together before but that meant the line numbers on the error messages were wrong.
I decided against shields, because it would reduce the invaders space (err...) - there probably won't be any saucer across the top either.
There's a limit to what you can draw in a 16x16 grid !
I've also updated the bomber.asm and tms1100 assembler, so it can use include files - I did it just by concatenating the files together before but that meant the line numbers on the error messages were wrong.
A Thirty Year Event !
Yes, for the first time in thirty years (possibly because no-one else has been daft enough to do it) there's a new game for the Microvision.
It's one of those left to right Bombing the city flat games, where you have to clear a landing strip.
There are two keys - anything in the middle row drops a bomb, and anything on the left continues the game (when a level is over, because you've crashed or landed, it displays your score).
Source code has been added to the link list on the right. The assembler has also been updated (minor tweaks), the system library (ditto), and the Windows and OSX versions of the emulator (which contain the binary files).
Windows still has this clearing-one-byte behaviour (on resetting the TMS1100 it writes zero into code Memory [0]) that goes away with the insertion of an effectively null code line. I read through the code, and put a fair few ASSERTS in - I wondered if a rogue value got into X or Y and that caused a memory write , C not being protected, but can't see any problem. It's possible it might be in SDL of course.
It's one of those left to right Bombing the city flat games, where you have to clear a landing strip.
There are two keys - anything in the middle row drops a bomb, and anything on the left continues the game (when a level is over, because you've crashed or landed, it displays your score).
Source code has been added to the link list on the right. The assembler has also been updated (minor tweaks), the system library (ditto), and the Windows and OSX versions of the emulator (which contain the binary files).
Windows still has this clearing-one-byte behaviour (on resetting the TMS1100 it writes zero into code Memory [0]) that goes away with the insertion of an effectively null code line. I read through the code, and put a fair few ASSERTS in - I wondered if a rogue value got into X or Y and that caused a memory write , C not being protected, but can't see any problem. It's possible it might be in SDL of course.
Saturday, 18 January 2014
Bomber, part the third
Bomber is now working, pretty much. The game core bit is playable, it has sound effects (well, in as much as a Microvision can manage them), the only bits left to do are the start a new level bit, and the end of game score display bit.
It does require a new version of the emulator (to fix the issue with row/column based rendering on the LCD, or to be precise my shortcut implementation of it !) so I'll probably release the updated executables, source and so on later this week. The assembler has been tweaked a bit as well.
The screen grabs look much the same, so here's a picture of an Avro Lancaster. If you're interested in this plane, Leo McKinstry's book is an excellent history of its design, production and use (he wrote similar books about the Spitfire and Hurricane)
It does require a new version of the emulator (to fix the issue with row/column based rendering on the LCD, or to be precise my shortcut implementation of it !) so I'll probably release the updated executables, source and so on later this week. The assembler has been tweaked a bit as well.
The screen grabs look much the same, so here's a picture of an Avro Lancaster. If you're interested in this plane, Leo McKinstry's book is an excellent history of its design, production and use (he wrote similar books about the Spitfire and Hurricane)
Friday, 17 January 2014
Bomber, part the second
Bomber running in the Emulator |
Minor improvements made, both to the 'skyline' and the bomber and bombs are both visible on the screen - the bomber in the top left and the bomb about 1/3 of the way down.
Coding for Microvision is a bit like a 2600 in some ways - the screen display is pretty much everything and the rest wraps round it.
This is going to be a fairly primitive game - aren't they all :) - just bombing with increasing speeds and displaying a score at the end of the game.
Then I'll think of a second game to do that will be the main game for the Challenge.
Subscribe to:
Posts (Atom)