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 > Sine sprites in the sideborder. VSP garbage and more
2018-01-22 11:35
Golara
Account closed

Registered: Jan 2018
Posts: 212
Sine sprites in the sideborder. VSP garbage and more

Hello everyone. I'm working on my first C64 demo / intro. I managed to open the sideborder at the top and obviously I immediately put some X-sinus sprites there (I'm still trying to figure out how a DYSP works, right know i have opened lines with 0 and 8 sprites). I noticed that the positioning of the sprites on the X axis is a bit weird. Position 0 is slighty on the left border, but if you want to go all the way to the left you have to use X 500 or there about. My question is, is there some sinus maker or converter that would take care of this ? (so it goes from 0 to ~500 looking like smooth movement to the left). Another question, what is the good way of handling the 9th bit of X position ? What I do is generate a 256 words sinus with values 0 to 500 and use c++ program to split that into 2 256 bytes tables like

sin_1:
1,2,3,4,5,6,7,55,33,....
sin_2:
1,0,0,0,0,1,0,0,1.... where 1 means to set the bit and 0 to not do that.
My sprite 0 is bugging out in the right most border while other sprites display just fine. Why is that ? I've read somewhere that sprite 0 is evil, but could not find any details on why.

I also do VSP by turning on the screen at the right moment together with XSCROLL for smooth scrolling. I see few pixel lines of garbage just above the image, I cover that with the illegal screen mode, disable it at line 56. Is that a good idea ? Another thing about VSP is that it seems to move the whole screen down by one char on the scrolled side (makes sence I guess, as the part of the chars that are outside of the image are displayed on the next text line). So should I copy the 25 lines of graphics in each column when scrolling for seamless scroll or do people not do that ?

Here's a picture of what it looks right know. A big mess !
(PETSCII picture by Archmage as a placeholder. I can't find any pics in binary and that was the easiest to take out of a compiled prg) Hope you have the patience to help a lamer out.
https://i.imgur.com/byWFRsH.jpg[/url]

HughJass from Poland
 
... 55 posts hidden. Click here to view all posts....
 
2018-01-25 17:48
ChristopherJam

Registered: Aug 2004
Posts: 1409
Huh. So I know the gap in X position comes from there being 63 cycles per line, hence 63*8=504 possible sprite start locations, but this thread got me wondering about NTSC.

I was worried that our friends across the pond might not be able to smoothly scroll an x-expanded sprite off the screen, as there are 8 positions for which no register value exists (65*8=520 locations, and you only get 512 from MSB+xpositionregister).

Going by a quick test in VICE however, it seems that position 511 is one pixel to the left of position 0, and position 0x1e9 covers all but the rightmost pixel of an x-expanded sprite. All is good, and those slackers across the ocean can just use 16 bit positions without any fuss.

I'm assuming vic artikel covers where the gap is, I'm just amused that it's not where I was concerned it might have been.
2018-01-25 17:50
ChristopherJam

Registered: Aug 2004
Posts: 1409
Gnarly tech tech, HughJass!
2018-01-25 18:01
Golara
Account closed

Registered: Jan 2018
Posts: 212
Quote: Gnarly tech tech, HughJass!

If you're talking about gaps in my sprites it's in the sprite definition, I drew them for multicolor but didn't switch to multicolor and I thought they looked kinda neat. I only spend about an hour each week day (when tired of coding enterprise(tm) c++ code), but I'll spend some more time on the weekend. I decided to start from scratch, because first I started with vsp and then multiplexer and opening borders, interrupts all over and no usefully code between them. Now I do a stable raster at line 250, disable bottom border and open the sides for bottom and top. Filling the nops with what I can (like this stretcher) and then I'll do smooth vsp again at line $30 and something cool in the middle again.... I like these old-school demos like raster blast or the demos from Upfront with lots of sprites and nice rasters etc. The part in Insomnia with tech tech image and dysp over it is super cool. I've been following the c64 and Amiga demoscene since 2013 or so, I never owned either computer (born in the 90s) but now I own both and finally started coding some shit on c64 last week.
2018-01-25 18:55
ChristopherJam

Registered: Aug 2004
Posts: 1409
Haha sorry, talking Australian. “Gnarly” = so good that it attracts the viewer’s attention and earns their respect.

Yes, the gaps are cool!
2018-01-25 19:01
Golara
Account closed

Registered: Jan 2018
Posts: 212
Quote: Haha sorry, talking Australian. “Gnarly” = so good that it attracts the viewer’s attention and earns their respect.

Yes, the gaps are cool!


This was my first go at drawing sprites (by typing bytes myself before finding a sprite editor, doh) I'll try to make a better logo, but I'm so inept in any form of arts haha. I'd like to make it as wide as the screen, but I don't think I'll have enough raster time to toy with 9th bit. Although definitely there's a way because people did full screen stretching scrollers with lots of colors so... I'm just missing out on something
2018-01-25 19:31
Mixer

Registered: Apr 2008
Posts: 452
Good work if just one week of c-64 coding!
2018-01-25 19:41
Golara
Account closed

Registered: Jan 2018
Posts: 212
Quote: Good work if just one week of c-64 coding!

thanks, but for the record, I've read lots of stuff on the c64, I knew most of the Vic tricks already how they work in theory, but it's always super exciting when it actually works. And I know x86 assembly, so jumping to 6502 wasn't that much harder. My colleagues at work are all high level c++ python etc, they don't care or get why I like the c64 so much lel.

EDIT. Progress on the wobbly sprite logo. I think it looks very nice, still no 9th bit manipulation, 4 sprites are always on the left and 2 on the right, but it already looks much better. I have 2 sin tables for the tech-tech, I replace them with self modyfing code, incrementing the high byte of the lda $xxxx, x instruction.

EDIT2. For some reason I thought ZP indirect reading from table would be much slower, but actually is only 1 cycle more than normal indexed read, so now I just change the pointer to the table. I also figured that if I wanted to smoothly move this logo (or even a scroller) I'd need to compute a table of X cords and $d010 vales for each sprite and each line (6 sprites, 42 lines) hmmmm
2018-01-27 01:07
Golara
Account closed

Registered: Jan 2018
Posts: 212
I mamanged to squize in the d010 writes so now I have the logo swinging in both borders (although the first sprite never goes further to the left than 0). But now I have some bugs, I think it's these late d010 and X write, that wasn't visible when the logo didn't occupy that much screen. Damn man.

2018-01-27 07:50
Oswald

Registered: Apr 2002
Posts: 5094
nice progress, you got this :)
2018-01-27 13:10
Digger

Registered: Mar 2005
Posts: 437
Hujas? The bug looks like you are off with $d010 table.
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 - 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
csabanw
Flex/Artline Designs
Magic/Nah-Kolor
psych
Guests online: 111
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 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

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