Page 1 of 2
QFrogger game
Posted: Tue Sep 22, 2009 1:46 pm
by thewiz
Hi all,
Here is a new game for a 1Kb ZX81 called QFrogger.
I had this idea to write a number of games in 1Kb using about a quarter of the screen. I'll be entering it into the next mini game competition.
Keys are Q - T for up. A - G for down, O for right and P for right.
Thanks to Chad Gray for beta testing.
Re: QFrogger game
Posted: Tue Sep 22, 2009 2:20 pm
by sirmorris
One word:
ABSOLUTELY FREAKING AWESOME!
This is a cracking little program - you've smashed expectations of what a 1k game can be!
It's rock hard - as it should be.
It's gorgeous to look at - A CARAVAN??!!
It's got the zap factor - it makes me jump when I play it.
It's ... How many bytes??!!
Congratulations. When's the next one coming??
C
Re: QFrogger game
Posted: Tue Sep 22, 2009 9:00 pm
by Chad
Just wait til you see how fast that racing car goes!!! :p
Don't suppose I could request QDefender??!! I remember a 1k version in C&VG years ago written in basic... I wonder what you could achieve in machine code!
Chad
Re: QFrogger game
Posted: Thu Sep 24, 2009 11:20 am
by thewiz
Thanks sirmorris for the review. Glad you liked it.
Re: QFrogger game
Posted: Sun Sep 27, 2009 5:37 am
by nama
Totally awesome!!!!
Re: QFrogger game
Posted: Sun Nov 01, 2009 11:19 pm
by yerzmyey
Incredible work.
Can I add the game to POUET portal???
Y
Re: QFrogger game
Posted: Sun Nov 08, 2009 1:13 pm
by thewiz
Be my guest yerzmyey.
Re: QFrogger game
Posted: Mon Nov 09, 2009 12:51 am
by yerzmyey
Re: QFrogger game
Posted: Mon Nov 09, 2009 2:23 pm
by Sdw
Very impressive stuff! I've done some attempts at coding for the unexpanded machine, and it's quite the challenge trying to balance the RAM-consuming screen and the actual code.
Looks like you are using 15x16 chars for the screen, so that eats up a good 256 bytes (15 chars + end of line marker * 16) I guess?
Oh! Just noticed that you have included the source as well, so now I can study exactly how it was done!
Re: QFrogger game
Posted: Mon Nov 09, 2009 5:48 pm
by Math123
Hi thewiz!
Wow! This is impressive. I just saw the source... Nice work.
A hint to save at least 4 more bytes.
Code: Select all
AUTO .DW 0 ; Line number (MSB)
.DW USREND - USRBEG ; Line length
USRBEG .DB $f5, $d4, ; PRINT USR
.DB $1c + 1, $1c + 6, $1c + 5, $1c + 2, $1c + 7
.db 126, 143, 1, 30, 0, 0 ; Always 16527
.DB $76 ; EOL
USREND
You do not need to store the whole number literals. Since Basic looks only to the floating point values behind "db 126" this should work as well:
Code: Select all
AUTO .DW 0 ; Line number (MSB)
.DW USREND - USRBEG ; Line length
USRBEG .DB $f5, $d4, ; PRINT USR
.DB $1c ; this is a 0. Maybe this byte can be skipped also?
.db 126, 143, 1, 30, 0, 0 ; Always 16527
.DB $76 ; EOL
USREND
Its worth the try to just skip the 0 as well...
Go on. Lets see more.
Matthias