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 > Static sprite multiplexing under moving FLD
2018-12-07 22:59
Digger

Registered: Mar 2005
Posts: 420
Static sprite multiplexing under moving FLD

So, I have an 8-sprite static multiplexer under a classic moving FLD and need to switch sprite pointers at constant rasterlines.

Since FLD pushes badlines down too, the pointer switching code executes at various places (including badlines), which basically desyncs everything including the FLD itself.

Any known (and simple enough) solutions to this?
Should I try a clockslide with a delay cycles LUT to compensate?

Thanks!
Digger/ESM
 
... 3 posts hidden. Click here to view all posts....
 
2018-12-08 08:28
oziphantom

Registered: Oct 2014
Posts: 478
how is your raster set up, are you just burning clocks per line? Could you switch to putting the triggers on a NMI off a Timer? then use a table to switch the NMI ptr to handle the cases where you need to set ptrs, just exit, restore sprite data etc?
2018-12-08 09:32
Digger

Registered: Mar 2005
Posts: 420
@Oswald: Exactly, but I meant I have to switch my sprite pointers after FLD, at the same rasterline every time despite of various FLD offsets.
@oziphantom: Thought about timers too, but then is variable timing too, depending on the FLD and badline offset, right?
2018-12-08 09:42
oziphantom

Registered: Oct 2014
Posts: 478
I was thinking you just fire it off every line, not sure how much FLD or what type of FLD you are doing exactly. and so each timer you change the NMI handler to do what you need for that line. which might just be, dec line counter and rti
2018-12-08 13:52
chatGPZ

Registered: Dec 2001
Posts: 11088
without saying what *exactly* you are trying to do, nothing can be said :) i dont see a problem at all with switching sprite pointers _after_ FLD for that matter - just do it :)
2018-12-08 15:09
Oswald

Registered: Apr 2002
Posts:
how about manipulating a speedcode from the outside, speedcode does d011, d018 access every line, but it is either lda or sta, then if you need new spritepointers you stick in an sta d018, if you are in fld you stick in sta d011's, if you are in an unfld-d char row have lda d011's instead of sta d011's. then timing is same for all lines at the price of a complicated manipulator running in the top / bottom borders.

edit: badlines will stop this from working correctly, well then some bne's to for skipping nops on badlines ? :P
2018-12-08 15:21
chatGPZ

Registered: Dec 2001
Posts: 11088
might also want to use overlapping sprite data. ever since i worked that out i use it for all kinds of things, makes "all of sprite" things like this almost trivial =)
2018-12-08 15:24
Oswald

Registered: Apr 2002
Posts:
btw I remember a release from recently doing just this? fullcr sprite layer + fld ?
2018-12-08 18:09
Digger

Registered: Mar 2005
Posts: 420
I am just an idiot. It won't work with waiting by wasting cycles comparing $d012, but obviously switching to a new IRQ just solved it.

Fine to close this thread.
2018-12-08 18:12
Rastah Bar

Registered: Oct 2012
Posts: 336
@Oswald: probably this one
Ghosts'n Goblins Demo

I think Digger's problem is that he sometimes needs to switch sprite pointers on a badline (when the change in sprite images has to appear one line after a badline). Groepaz made a good suggestion of using overlapping sprite data to solve that.
2018-12-09 05:43
oziphantom

Registered: Oct 2014
Posts: 478
You can patch and fix as well.

So you put the top of the sprite into the bottom of the sprites.. switch the ptrs, then mid sprite you restore the bottom back, no vertical loss, loose timings ( credit to DanP for the tip )
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
Advanced
Users Online
rambo/Therapy/ Resou..
Mason/Unicess
Laurent
psych
Guests online: 337
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 No Bounds  (9.6)
6 Comaland 100%  (9.6)
7 Uncensored  (9.6)
8 The Ghost  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 Party Elk 2  (9.7)
2 Cubic Dream  (9.6)
3 Copper Booze  (9.5)
4 Rainbow Connection  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Onscreen 5k  (9.5)
7 Dawnfall V1.1  (9.5)
8 Quadrants  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Nostalgia  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.8)
4 Acidchild  (9.7)
5 Starlight  (9.6)

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