Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > any more breakthroughs?
2007-04-30 14:54
Oswald

Registered: Apr 2002
Posts: 5094
any more breakthroughs?

at DEM I wrote:

"We're so close to the limits, that there's no way to make any more breakthroughs."

Cruzer replied:

"So untrue. More like we have become so old and contend with what we have, that no one bothers to try making any more breakthroughs. Actually I think that's not even true. There has been several breakthroughs since DEM."


what do you think?
 
... 25 posts hidden. Click here to view all posts....
 
2008-10-13 10:08
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: but i't not really 9 sprites in one line, now is it?

9 sprites in one RASTER line, correct. 8 sprites in one SPRITE fetch line.

About 41 chars, it was SoundDemon who exploited this, but I don't think he was first. Splitting using $d016 is common and have been used frequently to make 'holes' in $3fff-gfx etc. And it's not reallt 41 chars, it's 40 + 7 pixels.
2008-10-13 10:13
Frantic

Registered: Mar 2003
Posts: 1648
I think this collection of info on such stuff needs an update:

http://codebase64.org/doku.php?id=base:demo_world_records_and_w..

Anyone? :)
2008-10-13 11:50
HCL

Registered: Feb 2003
Posts: 728
Yeah, the 41 chars were just bogus. Just holes in the picture :/.
2008-10-15 06:11
majorsky
Account closed

Registered: Jun 2004
Posts: 6
Hi there...

as I wrote above, I was interested in the latest VIC effects. I digged into Krestage 3 a little bit using X64 Debug version and have two questions:

1. I think 50pixel wide sprites are done by manipulating the Multicolor bits of the sprites.
Am I right?
But why does this work? Has anyone found out?

2. At the bottom of the screen it does look like sprite 0 being displayed in the left for one rasterline and then in the right for one rasterline.
Is this the case or is the VIC showing the sprite on both positions in EVERY rasterline because of internal behaviour?

Thanks in advance!
2008-10-15 06:33
Oswald

Registered: Apr 2002
Posts: 5094
#2: the following is just theory I dont know atmo where sprite fetches exactly happen, but the places are hardwired thats sure:

line x+0: vic reads sprite #1 data on right border
line x+1: sprite #1 gets displayed on left border
line x+1: change X coo, and after sprite #1 read on right border you can display it again.

as said visible rasterlines and "sprite raster lines" do not match. sprite fetches for one rasterline happen on the right and left border, on the right of the line to be displayed -1 and on the line to the left.

in ascii art:


0  1  2  3  .... 60 61 62 63
s4 s5 s6 s7          s0 s1 s2 s3


s0-s3 reads are for the next line, s4-s7 for the current
2008-10-15 07:56
majorsky
Account closed

Registered: Jun 2004
Posts: 6
Puhhh... difficult to understand to be honest...
I understand now, how the sprite is displayed twice BUT how can you show different sprite designs on the same line, if there is only one sprite data fetch per line?!

Does anyone have some more info about the 50 pixel wide thing?
2008-10-15 08:11
Oswald

Registered: Apr 2002
Posts: 5094
Quote: Puhhh... difficult to understand to be honest...
I understand now, how the sprite is displayed twice BUT how can you show different sprite designs on the same line, if there is only one sprite data fetch per line?!

Does anyone have some more info about the 50 pixel wide thing?


for the left sprite you use the fetch wich happens on the previous line for sprite #1 ( this is on the previos line on the right) and for the right sprite you use the fetch which happens on the current line.



------------------------------------- spr#1fetch ------------
spr#1show-------------------------- spr#1fetch -- spr#1show



see only one fetch per line.

some1 tell perff for god's sake to use fixed with font inside the code tags :)
2008-10-15 08:20
majorsky
Account closed

Registered: Jun 2004
Posts: 6
OK, so this means, the sprite data can only be changed every second line for both.

Therefore:

---------------------------------- spr#1fetch(a)----------
spr#1show(a)--------------------- spr#1fetch(b)-spr#1show(b)
spr#1show(b)--------------------- spr#1fetch(c)-spr#1show(c)
spr#1show(c)--------------------- spr#1fetch(d)-spr#1show(d)

(x) shows the sprite data, which is fetched and displayed.

But, this scheme would not allow the different shape of SPrite 1 in the left and in the right.

Therefore, to allow something like in Krestage 3, it must be the following:

---------------------------------- spr#1fetch(a)----------
spr#1show(a)--------------------- spr#1fetch(b)-spr#1show(a)
spr#1show(b)--------------------- spr#1fetch(c)-spr#1show(b)
spr#1show(c)--------------------- spr#1fetch(d)-spr#1show(c)

Am I right?
2008-10-15 10:15
assiduous
Account closed

Registered: Jun 2007
Posts: 343
how can you do spr#1show(a) after spr#1fetch(b) ? b would have overwritten a. you cant do spr#1show(b) twice in a row either as sprite shift registers are emptied as a sprite is displayed.

the fetches for sprites 0-2 occur in the line preceding the display,for sprites 3-7 in the same line. it is important to note that the sprites in Krestage3 are displayed EVERY 2ND LINE! so the mechanism is simple: in the raster line preceding the first line when the sprites are displayed the sprite0 is fetched as the leftmost one,then in the line displaying the sprite contents the sprite0 is fetched in the right border and immediately displayed as the magic sprite "#9". as it wouldnt allow to display sprite0 in the next line anymore(the shift register is empty at this point!) the line coming after is blank and sprite0 contents fetched during this blank line account for the leftmost sprite in the next "display-line".

so the correct representation of this phenomenon would look as follows:

---------------------------------- spr#0fetch(a)----------
spr#0show(a)--------------------- spr#0fetch(b)-spr#0show(b)
---------------------------------- spr#0fetch(c)----------
spr#0show(c)--------------------- spr#0fetch(d)-spr#0show(d)

hope this helps
2008-10-15 11:07
majorsky
Account closed

Registered: Jun 2004
Posts: 6
Ok, I already saw, that I was wrong.
Also, I didn't know, that displaying empties the shift registers...

Now, I understand!

Thanks.
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
psych
Thierry
Raf/Vulture Design
Guests online: 131
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 X-Mas Demo 2024  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Musicians
1 Rob Hubbard  (9.7)
2 Mutetus  (9.7)
3 Jeroen Tel  (9.7)
4 Linus  (9.6)
5 Stinsen  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.063 sec.