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

Forums > C64 Coding > Is this a proper stable raster?
2010-09-21 00:37
Account closed

Registered: Jul 2009
Posts: 71
Is this a proper stable raster?

I was searching for stable raster interrupts and only found ugly looking code tbh. I came up with this little trick and wonder if it will be stable under all conditions...

It is on VICE but I haven't had the chance to test this interrupt on a real machine yet... This is what I do in the IRQ:

raster1:	lda #rast1
br1:		cmp $d012
		bne br1
		lda #$00
		sta $d020
		sta $d021
(rest of interrupt stuff goes here)

The code simply compares the value in $d012 with the value stored in there by the last IRQ call and waits until the raster makes the switch, then a built in delay of 5 x nop makes sure we are in between the left and right border flip. (4 x nop and 6x nop also seem to work so I chose the safe value of 5 nops).

It SEEMS to work properly but I forgot how I used to do stuff before my 20 year lunchbreak...

I managed to open up the border with my second attempt at an all dancing & singing piece of raster interrupts with music-assembler tunes playing. Next up is a bouncy sprite scroller in the lower (and side) border area.

2010-09-21 01:13

Registered: Dec 2001
Posts: 913
No, that's about as unstable as they get. Check Codebase for good code:

2010-09-21 04:28
Account closed

Registered: Apr 2002
Posts: 2238
stable raster my ass, here is 1988 method:

ldx #7 ; delay
bne .

lda #1
sta $D020
sta $d021

now adjust the ldx, and set d012 on the lines you want, using multiple interrupts

2010-09-21 08:17

Registered: Apr 2002
Posts: 4231
probably it got stable because you have a jmp * for "main" program. try it with nop bit $ea lda ($00,x) jmp 2nop and it will fail.
2010-09-21 08:23

Registered: Jan 2003
Posts: 347
With that you probably only were able to open the top/bottom border, not the sideborder, right?

Btw, in VICE you can set the VIC border size to Normal, Full or Debug. The latter option will show you that your raster is not stable, but flickering somewhere off-screen. Good enough for a lot of things, but not perfectly stable.
2010-09-21 09:07

Registered: Jan 2004
Posts: 99
heheh.. that's exactly the way i did back then. Put some nops here and there, have a jmp * for the main program and voila.
I didn't know it was unstable like hell (well, i did know, but had no solution for it), but by playing with those nops it became stable enough to do the thing.

maybe that's why i hated to open borders.. i couldn't manage it, now i know why :D
2010-09-21 10:13

Registered: May 2005
Posts: 89
There's a forum post floating around here in which I make the same mistake based on the confusion of what a stable raster actually is ;)

A stable raster is basically the luxury of having an exact X position on where your IRQ execution starts.

Your raster starts 'somewhere' off screen. Which is nice for rasterbars and many other cool fx, but this is not yet what stable means.

With a stable raster you should be able to see a non flickering line starting somewhere on-screen.

This way you can for example open the sideborder by adjusting the 38/40 column setting *exactly* in the 40th column. Without a stable raster, you'll never hit the 40th column each frame.
2010-09-21 10:19

Registered: Mar 2003
Posts: 1338
Imagine the amount of effort that would have been spared throughout the years if Commodore had simply included a switch in the VIC to disable the border. ;)
2010-09-21 10:22

Registered: Nov 2007
Posts: 349
Quote: Imagine the amount of effort that would have been spared throughout the years if Commodore had simply included a switch in the VIC to disable the border. ;)

Imagine how much poorer the scene history would have been if they did :)
2010-09-21 11:16

Registered: May 2004
Posts: 645
IMHO it always helps to have SOME SID tune playing inbetween.
You can more less be certain of something being stable or not.
JMP * oder BVC * wont do any good there.
2010-09-21 12:07
Account closed

Registered: Jul 2009
Posts: 71
well my last raster plays music and jumps to $ea31... It seems stable enoug to start outside screen but it does flicker one cycle.

Thanks for the infos
... 3 posts hidden. Click here to view all posts....
Previous - 1 | 2 - 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
Users Online
Codey/Second Dimension
Guests online: 26
Top Demos
1 Uncensored  (9.7)
2 Edge of Disgrace  (9.7)
3 Coma Light 13  (9.6)
4 The Shores of Reflec..  (9.6)
5 Comaland 100%  (9.6)
6 We Come in Peace  (9.6)
7 Lunatico  (9.6)
8 Incoherent Nightmare  (9.5)
9 Wonderland XII  (9.5)
10 Wonderland XIII  (9.5)
Top onefile Demos
1 Dawnfall V1.1  (9.5)
2 Synthesis  (9.5)
3 FMX Music Demo  (9.5)
4 Pandemoniac Part 2 o..  (9.5)
5 Daah, Those Acid Pil..  (9.5)
6 Treu Love [reu]  (9.5)
7 Merry Xmas 2017  (9.4)
8 Dawnfall  (9.4)
9 Gubbdata 2017 Invite  (9.3)
10 SidRok  (9.3)
Top Groups
1 Oxyron  (9.4)
2 Booze Design  (9.4)
3 Censor Design  (9.4)
4 Finnish Gold  (9.4)
5 Crest  (9.3)
Top Webmasters
1 Slaygon  (9.6)
2 Perff  (9.6)
3 Morpheus  (9.5)
4 Sabbi  (9.4)
5 CreaMD  (9.3)

Home - Disclaimer
Copyright © No Name 2001-2018
Page generated in: 0.292 sec.