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 > Bobby Border
2022-11-01 08:31
Krill

Registered: Apr 2002
Posts: 2850
Bobby Border

One of the most impressive pieces of code (and design!) on this platform is still Glasnost 's part in Camel Park - the one from the screenshot, particularly the side-border DXYCP scroller.

Now, i've never really gotten around to analyse it thoroughly.

And being lazy... How? :)
2022-11-01 11:06
Oswald

Registered: Apr 2002
Posts: 5022
this is too high level so you just get some answer from a "stranger" here explaining it :D Maybe Clarence comes by. ;)
2022-11-01 11:10
Krill

Registered: Apr 2002
Posts: 2850
I was hoping for Glasnost himself to pop up, or someone else from Camelot relating old stories. =)
2022-11-01 20:00
Oswald

Registered: Apr 2002
Posts: 5022
looked at it in c64debugger, sprites are used if they were from miggy, each sprite contains those small bobs at varying Y positions, the rastercode rewrites sprite X, d010, sprite color, and multiplexes as needed, plus each line d016, d011,d018. only td011 is ldx'ed from a table everything else is is ldx #, plus A is used to write d018, it's value is eor #xx-ed as needed, probably this is selfmoded from the outside...

the logo is hires bitmap, always last pixelrow of a char row, so 63 cycle stretch, but I count 40 different lines, no idea how is that done, even without dd00... maybe its linecrunch / not linecrunched lines and after 25 lines its shifted enough so it reads from the same bitmap but not colliding with previously read data.
2022-11-01 23:38
Krill

Registered: Apr 2002
Posts: 2850
So much i knew from looking at the code back in the 90's. ;)

The bitmap stuff is something to do with linecrunch in hires mode, but i don't recall the details. Did a copy of it in the intro of Plushdos though. =)
2022-11-02 00:02
Krill

Registered: Apr 2002
Posts: 2850
Anyways, what i'm wondering about is how the scroller seems so... variable in Y-positioning the characters, while there are obviously very tight restrictions regarding multiplexing, especially with open sideborders.

My guess is that the entire movement and positioning was precalculated, and then some kind of best-fit algorithm (maybe with some manual tweaking) squeezed all individual frames into the corset of hardware limitations.
(There seem to be some artefacts regarding the positioning.)
2022-11-02 00:08
HCL

Registered: Feb 2003
Posts: 716
@Krill: I think you know all the tech that is behind that part(s). It's just executed to perfection. Sprites are on constant y-position and only moves in x-direction. Since it's moving rather quickly, i assume a few 256-byte tables for d010 are sufficient. Then the d011-stretcher effect in the background, you know how to do it.. but it has to be rather table-driven in order to not waste rastertime outside the timing, and the timing for it sort of comes for free..
2022-11-02 00:13
Krill

Registered: Apr 2002
Posts: 2850
The raster tricks themselves are not the question to me, indeed. :)

(I'm that guy who likes to respond to the old "Sprites or chars?" question with "Yes.")
2022-11-02 09:23
Oswald

Registered: Apr 2002
Posts: 5022
fix Y coordinate of the virtual bobs explains what you wanted to know I guess.
2022-11-02 09:28
Oswald

Registered: Apr 2002
Posts: 5022
framestepping it at YT, it seems like it is rather fixed in X, that makes the Xcoo "changes" easy :) so its basicly an only Y mover bob routine plotted into sprites with fixed X coo baked into sprite x changes.
2022-11-02 09:28
Krill

Registered: Apr 2002
Posts: 2850
Quoting Oswald
fix Y coordinate of the virtual bobs explains what you wanted to know I guess.
That much is obvious from just looking at it. What do you mean by "virtual"?
2022-11-02 09:43
Oswald

Registered: Apr 2002
Posts: 5022
Quote: Quoting Oswald
fix Y coordinate of the virtual bobs explains what you wanted to know I guess.
That much is obvious from just looking at it. What do you mean by "virtual"?


so what you wanted to know then, when you know how everything works?

individual sprites are teared up into virtual sprites with the xcoo changes.
2022-11-02 09:46
Krill

Registered: Apr 2002
Posts: 2850
Quoting Oswald
so what you wanted to know then, when you know how everything works?

individual sprites are teared up into virtual sprites with the xcoo changes.
More high-level: If/how the virtual character positions are mapped to the available slots.

"My guess is that the entire movement and positioning was precalculated, and then some kind of best-fit algorithm (maybe with some manual tweaking) squeezed all individual frames into the corset of hardware limitations.
(There seem to be some artefacts regarding the positioning.)"
2022-11-02 09:57
Oswald

Registered: Apr 2002
Posts: 5022
yeah the positional "bugs" with the scroller its somehow more visible. anyway you just sit down and use some high level language to try out sinuses, find best fit, fix those few issue remaining by hand I guess.
2022-11-02 11:44
Krill

Registered: Apr 2002
Posts: 2850
Quoting Oswald
anyway you just sit down and use some high level language to try out sinuses, find best fit, fix those few issue remaining by hand I guess.
Wonder how that looked like in 1994.
2022-11-02 15:44
Oswald

Registered: Apr 2002
Posts: 5022
well its not like 1994 was in the stone age, it could be done even in excel.
2022-11-02 17:41
trident

Registered: May 2002
Posts: 75
The idea of the routine feels a little similar to the lots-of-small-hz-sprites-over-a-fpp-logo in A load of old shit by Horizon (A Load of Old Shit). One difference is that the hz sprites are also d017-stretched into position.
2022-11-03 00:33
Krill

Registered: Apr 2002
Posts: 2850
Quoting Oswald
well its not like 1994 was in the stone age, it could be done even in excel.
Dude...

Of course, Turbo Pascal existed. If you had a PC.
Would still like some original stories about this.
2022-11-03 06:45
Martin Piper

Registered: Nov 2007
Posts: 636
I tend to use ICU64 or C64DebugGUI to find out what are sprites, chars, bitmaps, when and what the VIC writes are.

http://icu64.blogspot.com/
https://magoarcade.org/c64debuggui/
2022-11-03 09:35
Krill

Registered: Apr 2002
Posts: 2850
Quoting Martin Piper
I tend to use ICU64 or C64DebugGUI to find out what are sprites, chars, bitmaps, when and what the VIC writes are.
Still not the point.
2022-11-03 13:36
chatGPZ

Registered: Dec 2001
Posts: 11126
Quote:
Of course, Turbo Pascal existed. If you had a PC

And more importantly: Amigas, with a wide range of High level languages available. I remember reading about how eg Censor ppl used them a lot for certain things :)

I agree with the approach Krill proposed - seems to be the most sane (and easy!) one.
2022-11-03 14:14
Slammer

Registered: Feb 2004
Posts: 416
I remember we sat at Raz' dormroom while Glasnost was putting the final touch on it. He made the calculations for that one in Basic on the C64 if I recall correct.
2022-11-03 22:55
Oswald

Registered: Apr 2002
Posts: 5022
Quote: I remember we sat at Raz' dormroom while Glasnost was putting the final touch on it. He made the calculations for that one in Basic on the C64 if I recall correct.

classic :D
2022-11-04 01:37
Krill

Registered: Apr 2002
Posts: 2850
Quoting Oswald
classic :D
Indeed! =D
2022-11-05 15:30
Monte Carlos

Registered: Jun 2004
Posts: 351
@Slammer ... and then there was a little bug in the precalculator and he had to fix and run the 3h calculation again, I guess ;)
Maybe I'm wrong, but I can feel the sweat while the tool was running.
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
jmin
sailor/Triad
Airwolf/F4CG
CA$H/TRiAD
pcollins/Quantum
tlr
JEZ
chesser/Nigaz
Doc Snyder/ONS
Guests online: 154
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 NTSC-Fixers
1 Pudwerx  (10)
2 Booze  (9.7)
3 Stormbringer  (9.7)
4 Fungus  (9.6)
5 Grim Reaper  (9.3)

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