| |
Richard
Registered: Dec 2001 Posts: 621 |
NEW GAME: GALAXYS
I have produced a new retro-style C64 game called 'Galaxys'
You can download the game from this URL below:
http://www.redizajn.sk/tnd64/download_games.html
I await any reactions :) |
|
... 30 posts hidden. Click here to view all posts.... |
| |
Rayne Account closed
Registered: Jan 2002 Posts: 30 |
well, PRINT CHR$(8) is
LDA #$08
JSR $FFD2
in Assembly :) |
| |
Richard
Registered: Dec 2001 Posts: 621 |
Ah, thanks dude :) |
| |
CyberBrain Administrator
Posts: 392 |
An even better solution is to turn off all the kernal-nonsense. (including the interrupt that checks SHIFT+C= ofcause) |
| |
JCB Account closed
Registered: Jun 2002 Posts: 241 |
Agreed.. Turn off all the roms, vector through $fffe-$ffff for your IRQ, do a keyboard matrix read yourself if you need to read keys and hey presto :) saves processor time too, no more leaving irq routines via $ea31 (or whatever it was soooo long ago I can't remember) just either push/pop a,x and y or store them in zero page or even store them in coresponding lda #?? ldx #?? ldy #?? instrucions at the end of the irq code. |
| |
cadaver
Registered: Feb 2002 Posts: 1160 |
If there's no specific need to use 100% CPU power,
LDA #$80
STA $291
will also disable the C= + Shift combination conveniently. |
| |
Richard
Registered: Dec 2001 Posts: 621 |
How about random counters. Say when I produce a game, I wanted to do random graphics appearing (Someone suggested I do an improvement to PoInG, by adding 1 player option, and also random graphics. - They loved the game as well. I was thinking of recycling this game, making it 10 times better and fun, compared to the original release.
Can you tell me what the assembly routine for random generations between 1 and 6 are?
X = INT(6*RND(1))+1
|
| |
Stryyker
Registered: Dec 2001 Posts: 468 |
If you can spare a 256 byte table, create a repeating table that goes 1,2,3,4,5,6. Then develop some random number routine using maybe the seed values, maybe using CIA timers or SID voice 3 output with some adding/shifting etc. Even if value is anything from 0 to 255, you use this as offset to the 256 byte table and it's scaled down. |
| |
Richard
Registered: Dec 2001 Posts: 621 |
Quote: If you can spare a 256 byte table, create a repeating table that goes 1,2,3,4,5,6. Then develop some random number routine using maybe the seed values, maybe using CIA timers or SID voice 3 output with some adding/shifting etc. Even if value is anything from 0 to 255, you use this as offset to the 256 byte table and it's scaled down.
I remember writing a routine for Heavy Metal Deluxe, which had randomized the colours when the player shoots each block and the block appears at the top of the screen. I used .BYTE 1,2,3,4,5; according to colour and created a routine, which I usually use to put .BYTE 5 into .BYTE 1, like with the colour roll routines. Taking the last byte and replacing it with the first byte, and pulling the bytes along inside a loop. |
| |
cadaver
Registered: Feb 2002 Posts: 1160 |
I practically always use values fecthed from the code by a zeropage or selfmodifying pointer, and ADC, EOR, ROL etc. them together. This could be used as an index
(you can use a shorter table, like 32 bytes, when you AND the index before use, AND #$1F in this case) |
| |
T.M.R Account closed
Registered: Dec 2001 Posts: 749 |
SEUCK does something similar for the 8 way firing routine, just reads a chunk of the editor code and uses it to pick one of eight directions - that's why the random routine sometimes needs repointing if you clean the editor out and don't re-use that RAM... =-) |
Previous - 1 | 2 | 3 | 4 - Next |