| |
trip6 Account closed
Registered: Jan 2007 Posts: 51 |
Berzek for C64
Hello... I recently recieved assembler source code for Berzerk video game. I was told that I would have to use CCS65 to compile it. However, I am quickly realizing that I have no idea how to do this in CCS65. Can some one help me our compile this for me with CCS65 if I sent the source code? All help is appreciated, I'd love to get a port of this classic on the C64.
|
|
... 260 posts hidden. Click here to view all posts.... |
| |
Scout
Registered: Dec 2002 Posts: 1570 |
Quote:Would anyone like the code produced so far posted on Codebase?
Codebase isn't a SVN.
Put it there when you actually finished the game.
If you really want to have ppl to track the progress, start a blog (like the creator of XeO3 does). |
| |
Fungus
Registered: Sep 2002 Posts: 686 |
I did work on this game at one time. I thought to include the samples of the arcade speech using a similar dictionary system to keep the memory required for the samples to a minimum, and also coded the sprite multiplexer I put on codebase for this game.
I also made a way to compress the screens to 3 bytes each, by analyzing the arcade screens and determining the size of each wall, it actually only takes 22 bits, with 2 bits left over to tell the game which doorway the player entered on the next screen so the door can be closed. In this way the screens can be generated at run time in a random matter, 3 bytes only with top 2 bits masked for doorway entry of course.
I might have the paperwork somewhere left for that... dunno.
|
| |
Heaven Account closed
Registered: Jul 2008 Posts: 102 |
I am refering to this version:
http://www.atarimania.com/detail_soft.php?MENU=8&VERSION_ID=596
when entering the monitor in Atari800win (F8) and typing DLIST you get the display list. it shows that the screen seems to start at $2028 and will probably go to $2028+7680 (40x192 bytes). ignore the char mode lines in the middle of the screen which are the Berzerk logo.
so the game uses a linear "Antic e" screen which is 160x192x4.
so don't wonder why $2028 as this is an Atari friendly starting when using a >4k screen. (Antic can only adress 4096 bytes in a linear matter without reloading the adress counter "LMS = Load Memory Scan).
Maybe Berzerk uses double buffering but I have to look later in the code more proper.
|
| |
Martin Piper
Registered: Nov 2007 Posts: 722 |
I've been working from the Atari 2600 version. :) http://www.atariage.com/software_page.html?SoftwareID=866
|
| |
Heaven Account closed
Registered: Jul 2008 Posts: 102 |
iiii... ;) i love the 2600 version but let's see how far you get as the 2600 is a damned beast with it's "kernel" stuff...
|
| |
Martin Piper
Registered: Nov 2007 Posts: 722 |
Yes, I had to remind myself how Stella works.
Then I cried.
Then I found an excellent emulator and debugger. http://stella.sourceforge.net/
And have been happier since then.
My first stage is to annotate and tweak the source sufficiently that I can assemble it with ACME and still have the game working on the 2600. Then I can feel confident that when I add extra code to interface the access to the 2600 hardware with suitable C64 calls to support functions I know that will be working as intended. Luckily the Berzerk code doesn't make that much use of RESP0, RESP1, RESM0, RESM1, RESBL. |
| |
Heaven Account closed
Registered: Jul 2008 Posts: 102 |
ah. ok... but the 2600 version misses some tweaks like diagonal shooting of the robots plus speech... ;)
if I would be more familiar with c64 I would try to get the A8 version over instead of the 2600 one...
|
| |
Martin Piper
Registered: Nov 2007 Posts: 722 |
Yes true. This is pure 100% geek curiosity of porting old Atari 2600 code, it's not intended to make it the best Berzerk version possible on the C64. :)
|
| |
Heaven Account closed
Registered: Jul 2008 Posts: 102 |
well...comments to the A8 version.
it uses 1 hardware sprite for the player. and hardware missles for the shots of the player & robots... interesting... I thought that they were softsprites...
$8716ff. is the sprite handling plus draw routine
$8763 ff. is the draw robot routine. this would be need to adjusted to c64 bitmap layout. $8b,$8c are pointers to correct screen position so this tables need to be adjusted. $9e,$9f pointer to the sprite data (shifted to each pixel pos.), this routine looks very compact and not optimised so room here for improvements.
$b700 ff. are the samples plus sample playback...standard 4bit samples. $c4,$c5 is the pointer to the sample data.
well... so it looks more and more doable.
Jesus, if I understand the draw_sprite routine correct... it shifts the sprite data on the fly... unbelievable. Did I say "compact"?
|
| |
Heaven Account closed
Registered: Jul 2008 Posts: 102 |
so. I have read stuff regarding the bitmap modes on c64. before I start to reinvent the wheel twice... all VIC20 and c64 veterans surely wrote soft sprites routines based on the bitmap modes already.
so...does anybody have a handy routine which only copies an 8x8 sprite into the desired adress space based on $2000 bitmap mode and the 40x25 layout? I am interested esp. in the look up tables organisation.
|
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 27 - Next |