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 > Compotime: Show me your (vector)balls
2013-05-24 11:28
Bitbreaker

Registered: Oct 2002
Posts: 500
Compotime: Show me your (vector)balls

After several comments arised that such an amiga-ball can be filled faster, i now want to call out a filler-compo for our coders.

Requirements:

The vector must be rendered in hires, background is white, foreground is dark red.

There's a raster-irq running that splits the screen at $2d and $f2 to set the background and border color to white and black, as seen in the screenshot. Means, there is a charline free in the bottom, that is where the benchmark results are displayed with the system charset. Displaying the result with screencodes is enough for us coders, but hex or decimal values are okay too.



The animation will be precalculated to see the power of your filler only. Therefore a data.bin is provided that contains all animationsteps for all faces with culling etc. already done.

The data structure may be altered to your needs, but not the animation itself, obvious isn't it?

The structure of data.bin is as follows:
byte x1 | $80
byte y1
byte x2
byte y2
byte x3
byte y3
byte x4 (optional, depending on if we have a triangle or quad)
byte y4 (optional, depending on if we have a triangle or quad)

As you can see faces can have 3 or 4 vertices, the first vertice is marked with bit 7 set, to be able to determine if a face consists of 3 or 4 vertices and to have a break out point for a finished frame, which is marked with the value $ff. If there's further questions about the data-format, don't hesitate to contact Bitbreaker

The filling must happen fullframe and fullsize, means, no interlacing or other cheap tricks with reducing resolution.

A counter for benchmarking must be implemented to count the frames until 256 frames have been displayed, it must be made visible in the bottom line.

The lowest value achieved counts (as there might be some jitter), for that, each entry must run in an endless loop.

The whole mem can be used, but every free byte of mem gives extra kudos.

Deadline is June 25th 0:00.

If the deadline is extended, a severe drama is expected, if not, you are out. Also i'll participate with an own entry, make a drama about it! :-)

Entries must be handed in to Bitbreaker and must not be released beforehand. They all will then released after the deadline, for maximum thrill and drama :-)

Each entry must be executeable with run.

SO DO YOU HAVE THE BALLS?
 
... 166 posts hidden. Click here to view all posts....
 
2013-05-26 20:30
Skate

Registered: Jul 2003
Posts: 490
Do you mind if i use SuperCPU? :D

I'm so busy these days but I'd really like to attend that compo. No promises but i may join the fun.
2013-05-28 23:08
Cruzer

Registered: Dec 2001
Posts: 1048
Decided to give it a shot anyway, and I already got my first unoptimized version up'n'running. First question - why is it bigger than in your original demo? Wasn't this supposed to be a compo about making a faster version of the exact same ball?
2013-05-28 23:11
chatGPZ

Registered: Dec 2001
Posts: 11118
the original demo isnt an animation player :)
2013-05-29 06:30
HCL

Registered: Feb 2003
Posts: 716
Hmm.. also got an unoptimized version running.. 7-8 frames at worst, but then the lines and fill/clear code are looped. Never mind.. the setup feels a bit strange though.. I wonder if those $5000 bytes of animation will rule out optimizations that would be possible if it was real-time.. because just as Cruzer said, i thought we were competing against the original, which was in real-time :P. Very strange this.. :)
2013-05-29 06:54
Bitbreaker

Registered: Oct 2002
Posts: 500
Well, i have also done an animation version of this ball, with the same filling algorithm as used in the realtime version. The reason to take animated data is to make things compareable and faster. Also i said it already many times: you may change the data to your needs, as long as it produces the same output. I really don't say this for no reason, i changed the data.bin heavily for my purposes. And hey, you can use all mem, so don't complain about those $5000 bytes, it is just what our merry musicians would usually waste, right? :-P
2013-05-29 06:57
Bitbreaker

Registered: Oct 2002
Posts: 500
Quote: the original demo isnt an animation player :)

I don't think it's so much bigger than in the realtime version, at least when being in the front and at its largest zoom. Also, it still fits into a 16x16 with safety margin, i don't see how this brings trouble :-)
2013-05-29 06:59
Trash

Registered: Jan 2002
Posts: 122
@ Cruzer & HCL:
In my mind the compo was about the filler and nothing else.

What I'm not really clear about is what benchmark result that should be shown, what unit should be used, fps seems illogical optmized I expect a topcoder to reach 25 fps, average cycles per frame demands som calculations that eats rastertime or am I just stupid?
2013-05-29 07:06
Bitbreaker

Registered: Oct 2002
Posts: 500
Quoting Trash
@ Cruzer & HCL:
In my mind the compo was about the filler and nothing else.

What I'm not really clear about is what benchmark result that should be shown, what unit should be used, fps seems illogical optmized I expect a topcoder to reach 25 fps, average cycles per frame demands som calculations that eats rastertime or am I just stupid?


The benchmark works like this:

The raster irq counts up a counter each time it is called. The filler counts up rendered frames. When it has rendered 256 frames, it reads the counter and spits out the number.

Cheapest way to do so:
lda fcnt_l
sta $07e0
lda fcnt_h
sta $07e1

That'd be enough to make me happy.

This way, you can easily calculate fps or such on your own, but no need to waste too many valuable cycles and bytes on that.
2013-05-29 09:29
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: @ Cruzer & HCL:
In my mind the compo was about the filler and nothing else.

What I'm not really clear about is what benchmark result that should be shown, what unit should be used, fps seems illogical optmized I expect a topcoder to reach 25 fps, average cycles per frame demands som calculations that eats rastertime or am I just stupid?


Yep, about the filler, problem is that you have $5000 worth of animation data which prohibits unrolled filler code to some degree.
2013-05-29 10:18
Bitbreaker

Registered: Oct 2002
Posts: 500
Quote: Yep, about the filler, problem is that you have $5000 worth of animation data which prohibits unrolled filler code to some degree.

aren't those limitations there to make our life more exciting? :-) My yet version has still $1000 bytes free, and i have yet no idea on how to waste them. So stop the whining already and optimize! :-P
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 18 - 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
Endurion
zscs
Didi/Laxity
master_hacker
Knight Rider/TREX
celticdesign/G★P/M..
Mason/Unicess
Guests online: 124
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Wafer Demo  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Graphicians
1 Sulevi  (10)
2 Mirage  (9.8)
3 Lobo  (9.7)
4 Mikael  (9.7)
5 Archmage  (9.7)

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