Jump to content
IGNORED

Atari v Commodore


stevelanc

Recommended Posts

What edges...? i'm talking about just clearing a block of RAM and nothing more there

OK, but you were replying to something else. Of course just clearing bytes is fast, I won't deny. But I was telling: "well maybe we can win 50% of cpu time in a general purpose swsprite engine, using a REU". Then you saying, "no I'll win 95%, but I'm not talking about swsprites, but clearing RAM".

Link to comment
Share on other sites

I often see the same people, also posting in this thread, are top posters of the AA board.

 

Anyway, @ TMR, you're right, it's really time for a A8 v C64 forum. Then we could split up all sub-discussions here into a nice overviewable forum ;)

 

...or, maybe a chat-channel for this topic would be a great idea.

Link to comment
Share on other sites

I think Atari Panther version has a little better music, sound effects and good choice of saturation colors. Instead, C64 has better design of sprites. Playability on both are the same, strangely it feels more accurate on Atari version.

 

Other way your Atari screenshots are not right.

 

This game should be declared as a draw, as there is not a clear superiority on one version from another.

 

Allas, I took these pictures from atarimania and Bacardi's site, so they should faithfully depict this game on Atari. Anyway let's check them again (this time I will use your pictures)

post-24409-125322553667_thumb.png

C64 - realistic ground colour, much better sprites, more colours.

post-24409-125322566005_thumb.png

Atari - dark red ground, poor (small and one coloured) sprites, less colours.

post-24409-125322602274_thumb.gif

C-64 - again, more natural colours and much better sprites

post-24409-125322608874_thumb.png

Atari - dark, dirty green, poor sprites, less colours.

post-24409-125322644865_thumb.gif

C64 - more detailed waves, much better sprites, more colours.

post-24409-125322659189_thumb.png

Atari - all waves are the same, poor sprites.

post-24409-12532268645_thumb.gif

C64 - better colour balance, much better sprites, more colours.

post-24409-125322698904_thumb.png

Atari - less colours (darker of course), poor sprites.

 

Sound/music and playbality are the same. C64 has better graphics (take a look at your ship destroying sequence - on atari it looks like joke), much better (very well animated) sprites and more colours. Atari has dirty-dark colours and very poor, small, one coloured sprites. Sorry Allas, nice try but the C64 version is better. :cool:

no, again this has been explained to you.. poor programming on the atari. Try a synapse title called Blue Max that looks very similar from 1982,looks really great and certainly better than this c64 version.

Edited by atarian63
Link to comment
Share on other sites

17 - PANTHER

 

post-24409-125319957164_thumb.png

C64

post-24409-125319958731_thumb.gif

C64

post-24409-12531996262_thumb.gif

C64

 

C64 has better graphics, sprites and more colours. C64 wins again. :cool:

 

post-24409-125319990711_thumb.gif

ATARI

post-24409-125319992445.gif

ATARI

post-24409-125320000466_thumb.gif

ATARI

 

You missed the most (only?) important difference on that budget game...the music! That tune by David Whittaker is one of my all time favourite SID tunes. It's an ok sorta game, if I was an A8 owner I could live with the graphics difference which is mainly the mono control panel but after hearing the SID music I wouldn't be too happy as an A8 owner.

Link to comment
Share on other sites

I think Atari Panther version has a little better music, sound effects and good choice of saturation colors. Instead, C64 has better design of sprites. Playability on both are the same, strangely it feels more accurate on Atari version.

 

Other way your Atari screenshots are not right.

 

This game should be declared as a draw, as there is not a clear superiority on one version from another.

 

 

Yeah as Rocky Mountains has proven, most UK programmers couldn't program the A8 for toffee, but sometimes they did make an effort, here's UKs Tynesoft:

Atari:

A8phantom.jpg

 

C64

C64Phantom.jpg

 

 

Atari

A8winter_olympiad_88.jpg

 

C64

C64Winter_Olympiad_88.jpg

 

Phantom looks just as crap on either and compared to Gauntlet on the C64 it is a waste of my time. The second one is a title screen....where's the game graphics to show something useful?

 

And as for Allas he must be tone deaf if he thinks the A8 rendition of panther sounds better :lol:

Link to comment
Share on other sites

 

But test drive is rubbish.. Have some dignity and set your heights higher :)

How about Hard Drivin' ? ;) Surely that can be done on the A8 ?

 

Well, it's rubbish on the C64, guess why ;).... some more FPS do miracles :ponder:

 

It's rubbish on the ST (faster than any 8bit) and rubbish on the Amiga even with all the sparkly graphics and lovely sampled engine noises...that game needs one of them things that beeps when you fall asleep at the wheel ;)

Link to comment
Share on other sites

But,well, Hard Drivin would run 4 times faster on the A8 and you'd have a 16 colour mode there ....

 

Of course it would..

 

LOL we can't even get 16 colours on a static Last Ninja screen so he must mean 12 colours via DLIs for the sky and then 3 colours for the rest of it same as every other 8bit version ;)

Link to comment
Share on other sites

I think Atari Panther version has a little better music, sound effects and good choice of saturation colors. Instead, C64 has better design of sprites. Playability on both are the same, strangely it feels more accurate on Atari version.

 

Other way your Atari screenshots are not right.

 

This game should be declared as a draw, as there is not a clear superiority on one version from another.

 

 

Yeah as Rocky Mountains has proven, most UK programmers couldn't program the A8 for toffee, but sometimes they did make an effort, here's UKs Tynesoft:

Atari:

A8phantom.jpg

 

C64

C64Phantom.jpg

 

 

Atari

A8winter_olympiad_88.jpg

 

C64

C64Winter_Olympiad_88.jpg

 

Phantom looks just as crap on either and compared to Gauntlet on the C64 it is a waste of my time. The second one is a title screen....where's the game graphics to show something useful?

 

And as for Allas he must be tone deaf if he thinks the A8 rendition of panther sounds better :lol:

actaully it does, maybe you should give the a8 version a listen :ponder:

Link to comment
Share on other sites

C64 coder? Try, bbc, spectrum, c64, st, amiga, cd-i, psx, ps2, gba, pc, etc etc ;)

 

Oops, sorry, didn't know that :)

 

Anyway, what is the most cpu-economical swsprite engine should depend on which machine you're coding for, ain't it?

 

In best case scenario yes. But taking the columns method you posted earlier, as I say if you're using the 5 colour mode (sorry, I'm repeating this from earlier posts so just skip to the next post if you read it already) you've got 128 chars, make a background out of those and how many do you have left? say 64 and that's generous so now you want a 16x16 sprite, that needs 2x2 chars BUT you have to allow for max diagonal movement 3x3 9 gone for 1 sprite. You already know all this, so how do you get around it, a8 the easiest way I can see is to do multiple LMS lines, even a new charset for each modeline, you can use the space offscreen for data so it's not wasted then your sprite routine becomes more complex than the column one. Not much more but that's already an overhead. what if you can't do an LMS per modeline for some reason? now you have to start checking the Y pos of your sprite to see if it's gone over one.... etc You can have a good/fast generic routine but I can guarantee you wont use it 90% of the time.

 

 

Pete

 

well... actually I have 2 routines...

 

;these are the fonts for the "bitmap screen"
font		equ $6000
font0		equ font
font1		equ font+1*1024
font2		equ font+2*1024
font3		equ font+3*1024
font4		equ font+4*1024
font5		equ font+5*1024
font6		equ font+6*1024
font7		equ font+7*1024
font8		equ font+8*1024 ;"standard font" which contains the gfx background tiles
font9		equ font+9*1024 ;text font
vram 		equ font+10*1024 ;1000 max
...
linetabl	equ $a000 ;line starting adress 
linetabh	equ $a100
h1tab		equ $a200
collumtabl	equ $a300
collumtabh	equ $a340
yptab		equ $a400
linetab2l	equ $a500
linetab2h	equ $a520
linetab3l	equ $a540
linetab3h	equ $a560
spritetab	equ $a600
chartabl	equ $a700 ;for 256 tiles
chartabh	equ $a800
...
spritedata	equ $b000 ;preshifted data 64 bytes per spirte per pixel position = 256 bytes per sprite
...
here is the code for a split draw
; 3000 PROC DRAW
; 3005   Y=PEEK($7F00+YP)
; 3010   YY=PEEK($7F00+YP)+21
; 3015   IF YY>24
; 3020     EXEC DRAW_SPLIT
; 3030   ELSE 
; 3040     EXEC DRAW_SIMPLE
; 3045   ENDIF 
; 3050 ENDPROC 
draw: 		ldx ypos
		lda #21
		clc
		adc yptab,x
		cmp #25
		bcc draw_simple
		jmp draw_split
		
;1000 PROC DRAW_SIMPLE
; 1010   AD=SPR+NO*63
; 1020   FOR J=0 TO $14
; 1030     FOR I=0 TO 2
; 1040       POKE F+J+I*24+Y,PEEK(AD)
; 1045       AD=AD+1
; 1050     NEXT I
; 1060   NEXT J
; 1100 ENDPROC 			
;each 4 shifted sprites are in 1 page (64 bytes each)
draw_simple: lda xpos
		tax
		ldy tempfacing
		cpy #8
		bcc draw_simple00
		lda ypos
draw_simple00 
		and #3 ;0-3
		ora tempfacing
		tay ;shifted
		lda spritetabl,y
		sta simple0+1
		clc
		adc #21 ;y size per stripe
		sta simple1+1
		adc #21
		sta simple2+1
		lda spritetabh,y
		sta simple0+2
		sta simple1+2
		sta simple2+2
		txa
		lsr
		lsr
		tax
		ldy ypos
		clc
		lda linetabl,y
		adc collumtabl,x
		sta v1
		lda linetabh,y
		adc collumtabh,x
		sta v1+1
		lda v1
		clc
		adc #24
		sta v2
		lda v1+1
		adc #0
		sta v2+1
		lda v1
		clc
		adc #48
		sta v3
		lda v1+1
		adc #0
		sta v3+1
clear_simple:	lda yptab,y
		tay
;now copy 63 bytes = 3 * 21 bytes 			
		ldx #0
simple0:	lda $ffff,x
		eor (v1),y
		sta (v1),y
simple1:	lda $ffff,x
		eor (v2),y
		sta (v2),y
simple2:	lda $ffff,x
		eor (v3),y
		sta (v3),y
		iny
		inx
		cpx #21
		bcc simple0
		rts

; PROC DRAW_SPLIT
; 2010   EF=F+1024
; 2020   H1=24-PEEK($7F00+YP)
; 2030   H2=21-H1
; 2040   AD=SPR+NO*63
; 2050   FOR J=0 TO H1-1
; 2060     FOR I=0 TO 2
; 2070       POKE F+J+I*24+Y,PEEK(AD)
; 2080       AD=AD+1
; 2090     NEXT I
; 2100   NEXT J
; 2110   FOR J=0 TO H2-1
; 2120     FOR I=0 TO 2
; 2130       POKE EF+J+I*24,PEEK(AD)
; 2140       AD=AD+1
; 2150     NEXT I
; 2160   NEXT J
;2199 ENDPROC 
draw_split: 
		ldy ypos
		lda h1tab,y
		sta h1+1
		
		lda xpos
		tax
		ldy tempfacing
		cpy #8
		bcc draw_split00
		lda ypos
draw_split00 and #3
		ora tempfacing
		tay ;shifted
		lda spritetabl,y
		sta split0+1
		sta split00+1
		clc
		adc #21 ;y size per stripe
		sta split1+1
		sta split11+1
		adc #21
		sta split2+1
		sta split22+1
		lda spritetabh,y
		sta split0+2
		sta split1+2
		sta split2+2
		sta split00+2
		sta split11+2
		sta split22+2
		txa
		lsr ;div 2
		lsr ;div 2
		tax
		ldy ypos
		lda linetabl,y
		clc
		adc collumtabl,x
		sta v1
		lda linetabh,y
		adc collumtabh,x
		sta v1+1
		lda v1
		clc
		adc #24
		sta v2
		lda v1+1
		adc #0
		sta v2+1
		lda v1
		clc
		adc #48
		sta v3
		lda v1+1
		adc #0
		sta v3+1
clear_split:	lda yptab,y
		tay
		ldx #0
split0:		lda $ffff,x
		eor (v1),y
		sta (v1),y
split1:	lda $ffff,x
		eor (v2),y
		sta (v2),y
split2:	lda $ffff,x
		eor (v3),y
		sta (v3),y
		iny
		inx
h1:			cpx #21
		bne split0
		clc
		lda v1+1
		adc #4
		sta v1+1
		lda v2+1
		adc #4
		sta v2+1
		lda v3+1
		adc #4
		sta v3+1

		ldy #0
split00:	lda $ffff,x
		eor (v1),y
		sta (v1),y
split11:	lda $ffff,x
		eor (v2),y
		sta (v2),y
split22:	lda $ffff,x
		eor (v3),y
		sta (v3),y
		iny
		inx
		cpx #21
		bne split00
		rts

clear:		ldy ypos
		lda #21
		clc
		adc yptab,y
		cmp #25
		bcc clear0
		jmp clear_split
clear0		jmp clear_simple

...
here is the display list

dlist:		.byte $70,$70,$f0,$44,<(vram),>(vram)
		.byte 4,$84
:7			.byte 4,4,$84
		.byte $41
		.word dlist

;now don't forget the lookup tables...

		

		
		org linetabl ;starting font based on YP (F=(YP DIV 24)*1024+$8008)
:256		.byte <[[#/24]*1024+font+8]
		org linetabh
:256		.byte >[[#/24]*1024+font+8]
		
		org collumtabl
:64			.byte <[#*24]
		org collumtabh
:64			.byte >[#*24]
		org linetab2l
:32			.byte <[#*40+background]
		org linetab2h
:32			.byte >[#*40+background]
		org chartabl
:256		.byte <[#*8+font8]
		org chartabh
:256		.byte >[#*8+font8]

		org linetab3l
:24			.byte <[[#/3]*1024+font+8+#%3*8]			
		org linetab3h
:24			.byte >[[#/3]*1024+font+8+#%3*8]	

...
;format
;antic E format, each sprite has 64 bytes, even if it is smaller. Good for later c64 port and hardware sprite format
;sprite data is saved in collum mode (first collum, 2nd collum, 3rd collum, each max 24 bytes=64 bytes)		
		org spritetab
spritetabl	.byte <(spritedata),<(spritedata+1*64),<(spritedata+2*64),<(spritedata+3*64) ; right
		.byte <(spritedata+4*64),<(spritedata+5*64),<(spritedata+6*64),<(spritedata+7*64) ;left
		.byte <(spritedata+8*64),<(spritedata+9*64),<(spritedata+10*64),<(spritedata+11*64) ;up 
		.byte <(spritedata+12*64),<(spritedata+13*64),<(spritedata+14*64),<(spritedata+15*64) ;down
		
spritetabh .byte >(spritedata),>(spritedata+1*64),>(spritedata+2*64),>(spritedata+3*64)
		.byte >(spritedata+4*64),>(spritedata+5*64),>(spritedata+6*64),>(spritedata+7*64)
		.byte >(spritedata+8*64),>(spritedata+9*64),>(spritedata+10*64),>(spritedata+11*64)
		.byte >(spritedata+12*64),>(spritedata+13*64),>(spritedata+14*64),>(spritedata+15*64)
spriteylength .byte $14,$14,$14,$14,$14,$14,$14,$14
		.byte $14,$14,$14,$14,$14,$14,$14,$14
;spriteylength .byte 16,16,16,16,16,16,16,16
		.byte 16,16,16,16,16,16,16,16
...

 

aehm... I call this little bit "overhead" compared of having 8 hardware sprites for Beyond Evil... ;) and this is done "only" that I can claim I am using softsprite AND gain 1 additional color... ;)

Edited by Heaven/TQA
Link to comment
Share on other sites

Make love, not war!!

 

Can't argue with that...

 

War makes for better games though.

 

Although love only requires 2 sprites (3 if you're feeling kinky)

 

 

In terms of a c64 vs A8 forum I think you'd need 2. One to act as a 'reach out' for the curious (which is what half of us were doing here in the first place) and the other as a battleground (basically to keep rockford out of the way :) )

Edited by sack-c0s
Link to comment
Share on other sites

In best case scenario yes. But taking the columns method you posted earlier, as I say if you're using the 5 colour mode you've got 128 chars, make a background out of those and how many do you have left?

Just use 120 chars for 3 mode lines and use them as "bitmap". You will get C64 bitmap layout btw :)

Edited by Lazarus
Link to comment
Share on other sites

What edges...? i'm talking about just clearing a block of RAM and nothing more there

OK, but you were replying to something else. Of course just clearing bytes is fast, I won't deny. But I was telling: "well maybe we can win 50% of cpu time in a general purpose swsprite engine, using a REU". Then you saying, "no I'll win 95%, but I'm not talking about swsprites, but clearing RAM".

 

The RAM clearance was just a simpler example that didn't require anyone actually having to sit down and code a soft sprite engine - clearing an 8,000 byte or thereabouts bitmap is a major haul of a job, if you can significantly shorten that it's a serious head start compared to a stock machine and after that you've got the option of a multi-tier system where smaller objects are handled by the CPU and larger ones by the DMA as well. If i were to produce an engine in this way (i wouldn't because that's not the sort of game i like making) i'd drop the vertical panning, plan it as much as possible to have objects sitting on character boundaries anyway and just to totally bonkers on the colours.

 

If i'm being totally honest, part of me even bringing the idea up in the first place was to wind up emkay because i'm getting thoroughly sick of his proclaiming things without having the first clue what he's actually talking about; he hasn't actually written a software sprite routine but tells people how fast they should be able to go, never tried converting a game but is an expert on how much speed they should gain and now he's an expert on C64 coding too (he's predicting that "Hard Drivin would run 4 times faster on the A8" and that's based on what exactly? Fairy dust presumably because it's not technical knowledge on his part is it?). Nah, don't think so...

  • Like 2
Link to comment
Share on other sites

In terms of a c64 vs A8 forum I think you'd need 2. One to act as a 'reach out' for the curious (which is what half of us were doing here in the first place) and the other as a battleground (basically to keep rockford out of the way :) )

 

The domain is registered, phpBB up and running but i haven't patched it to fully stop bot signups yet and the site templates (which are being shared by the regeneration of Oldschool Gaming) still need work because of that fun way that style sheets collide with each other... looking at this thread, i'm also slightly concerned by the stress it'll put on our server Voidrunner too!

Link to comment
Share on other sites

C64 - realistic ground colour, much better sprites, more colours...

C-64 - again, more natural colours and much better sprites...

Well, at least the colours could be chosen better on A8. Remember, the C64 palette is a subset of the Atari palette (up to some very minor differences).

 

Many times I wonder why in A8 games the programmers chose ugly colour combinations.

 

You need to wait for ATTRACT mode to kick in (like 9 minutes) and then wait a few more seconds for the right colors and then take the snapshot to show people.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...