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 > DYPP
2017-03-29 13:36
Rudi
Account closed

Registered: May 2010
Posts: 125
DYPP

Hi,
DYPP - Different Y Pixel Position.
I don't seem to find an explanation on this effect on C64 on codebase or anywhere. Maybe its in another thread here on csdb, then please provide an link.

I know the basics of sines, ive made sinescroll on PC, but its easier there since you can look up the framebuffer directly, via sine-tables and so on.

Im wondering how this effect is easily made on C64. I believe there are more than one way, but i guess one way is slower than the other; for example moving each column-bit (inside a char) in realtime. The other way I think is having the chars animated, similar to a twister. Though, im thinking each angle is used for lookup table. I just dont seem to get it right in my mind to start coding on this effect. I've seen several early cracktros and demos that does this very fast, but haven't had the time to reverse-engineer the binaries. If you have any tips and info i'd appreciate it, or even better; write an explanation for codebase.
Thanks
 
... 43 posts hidden. Click here to view all posts....
 
2020-01-16 14:25
Sam

Registered: Aug 2010
Posts: 13
I'm too stupid to figure out the trick in the multi-dypp-part of "Crest Avantgarde". Would anyone care to share any thoughts on that? I did a couple of dypp-routines in 1989-1992, but I always sucked in "vic tricks", amongst a lot of other things I sucked and keep sucking in.

The DYPP in Anal Intruder uses the same trick than mekanix, based on what I read about Mekanix here, no VSP (is vsp = vertical screen position here?) involved, but a lot suckier code optimizations.

Wouldn't a VSP trick to create a dypp just generate a static "road" of text? Unless the VSP is there just to save cycles when scrolling, but the pixel-per-pixel-sine has to be created in other ways, to have the text moving/animated.
2020-01-16 15:37
Oswald

Registered: Apr 2002
Posts: 5018
Mekanix does a true dypp when only 1 is shown, and fake char anim when 2 AFAIK.
2020-01-16 16:21
Krill

Registered: Apr 2002
Posts: 2846
If the multi-DYPP part in Crest Avantgarde uses VSP, it only does so for the scrolling (and/or the moving colour gradient).

As for the actual DYPP effect, i guess there's a lot of copying of pre-rendered animated characters going on.
Note how the sine period is rather short, so there aren't so many frames to cycle through until wrap.
Also note how parts of many different characters are identical, possibly reducing the amount of animation data so that everything just barely fits into 64 kilobytes.
2020-01-17 08:29
Sam

Registered: Aug 2010
Posts: 13
Thanks, Krill! I can sleep at night again :-) I had a memory of the wave being bigger, but looking at the effect again I realise that it was a much tighter loop than I imagined. The biggest trick, to me, here is the clever font. I should have noticed the lack of special characters right away *shame*.

BTW, my dypp in "Typical" had no special chars because each character shape was a speedcoded lda ora sta and I was too lazy to do all the chars. IIRC there was still memory left though.
2020-01-17 08:59
Krill

Registered: Apr 2002
Posts: 2846
I wonder if the char-transpose approach (swap pixel rows and columns in an 8x8 pixel grid) discussed in https://csdb.dk/forums/?roomid=11&topicid=121737#139125 may in practice really be useful for things like DYPP. =)
2020-01-17 11:03
HCL

Registered: Feb 2003
Posts: 716
Quote: Mekanix does a true dypp when only 1 is shown, and fake char anim when 2 AFAIK.

Nope. it's exactly the same DYPP code when i show 1 and 2 scrolls. When showing 1 DYPP there is a double y-sinus, but when showing 2 DYPPs there are single y-sinuses.. simply because i don't have time to calculate TWO double y-sinuses :(. despite calculating 39 chars instead of 40 :P
2020-01-17 12:11
Sam

Registered: Aug 2010
Posts: 13
HCL, your routine is a big improvement from my trick then, I just precalculated the sinus wave + the char fits. Using regular DYCP + selected char animations, are you moving the chars up and down with just basic DYCP or is there more going on there?
2020-01-17 14:10
HCL

Registered: Feb 2003
Posts: 716
Damn it, i just checked the code (TurboAssembler code from 2005). In single-mode i calculate 160 double-sin values (all 40 chars :P). Then i sort out the lowest one for each char (lda + 3 compares per char), and save as y-offset. Next i do a similar compare to sort out char-internal y-difference, where only [-, 0, +] are taken care of -> 27 different combinations where each one has its corresponding pre-calculated font (pre-calculated during fade-in of course). Then shuffle the data.

The double dypp skips alot of the above. Seems like it just picks a sinus value for the whole char, and then picks another sinus value (should be aprox the derivative..) and use for the tilting angle.. In the end it is the same copy-code and everything else work the same, but yeah it's a cheat! So.. Sorry Oswald, you were right.. You are always right :).
2020-01-18 17:06
Oswald

Registered: Apr 2002
Posts: 5018
Nah no, I find myself often on the wrong :) But having coded in turbo asm is cool, I did that in early 2000's hehe :)
2020-01-18 17:11
PAL

Registered: Mar 2009
Posts: 269
https://youtu.be/-9F5z8K0PXY?t=1874

NOW THIS IS A DYPP - by yours truly and pantaloon :-)
Previous - 1 | 2 | 3 | 4 | 5 | 6 - 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
Asphodel
Mibri/ATL^MSL^PRX
theK/ATL
Enforcer/Deers
t0m3000/ibex-crew
Krill/Plush
Nordischsound/Hokuto..
Knight Rider/TREX
PopMilo/TempesT
Sentinel/Excess/TREX
Guests online: 143
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 Diskmag Editors
1 Jazzcat  (9.4)
2 Magic  (9.4)
3 hedning  (9.2)
4 Elwix  (9.1)
5 A Life in Hell  (9.1)

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