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 > Sprite Multiplexing
2017-06-18 14:57

Registered: Nov 2005
Posts: 50
Sprite Multiplexing

Might seem a dumb question, but do you have to use an IRQ to multiplex sprites?

I've written a small multiplexor, but it's part of the game loop, checking D011/D012; but it only displays one lot of sprites, and to get the other set to show, I have to comment out the code for the first lot.

I don't think there's a reason I can't use an IRQ, but more curious on why my multiplexor doesn't work.
2017-06-18 15:11

Registered: Oct 2014
Posts: 173
If you want to just check D012 , sure. just you have to make sure you can actually hit the value.

LDA #150
- CMP D012

will only work if the code runs in the 63 clocks that 150 is valid.

You also need to be sure that another wait loop doesn't hit
$1XX where XX is the value you are comparing, as that will break your chain.

Put some lda #1,2...7 sta $d020 where your sprite code happens and make sure they fire where you think they do.
2017-06-18 15:27

Registered: Apr 2008
Posts: 263
You can write unrolled code, use delay loops or variable delay-routines, poll $d012 or use raster irq or timers to wait for a suitable moment to change sprite y positions.
2017-06-18 15:42

Registered: Nov 2005
Posts: 50
I know my code is hitting, because I also set the border colour when the multiplexor is active, and you can see them trigger. I might post some code when I get home. Maybe I've just overlooked something.
2017-06-18 16:01

Registered: Apr 2002
Posts: 4233
guess you need to reset the first lot of sprites after the 2nd lot was displayed.


wait raster1
setup lot1 to show


wait raster2
setup lot2 to show


and no you dont need an irq to multiplex. at the end of the day the irq does the same thing, just in a more flexible way.
2017-06-18 18:00

Registered: Aug 2004
Posts: 785
Forgive me if this is obvious, but you know the sprites have to be set up for the part of the screen currently being drawn, right?

Might be an idea to (eg) set $d021 to green after you set up the first set of sprites, then set it to red when you set up the second set of sprites.

If you don't have a green background for the area that should contain the first set of sprites, and a red background for the area that should contain the second set of sprites, then there's your problem.
2017-06-18 18:57

Registered: Nov 2005
Posts: 50
Right, okay, my question wasn't dumb, however, I was/am!

It turns out in my infinite wisdom, to forget the jmp at the end of my "config player sprites" code, so it was then rolling into the "config tiger sprites" code... Hence why I didn't see the player sprites.

So all fixed now. Thanks for everyones help :)
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
Guests online: 30
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 FMX Music Demo  (9.5)
2 Pandemoniac Part 2 o..  (9.5)
3 Daah, Those Acid Pil..  (9.5)
4 Dawnfall V1.1  (9.5)
5 Treu Love [reu]  (9.5)
6 In Memoriam BHF  (9.5)
7 Merry Xmas 2017  (9.4)
8 Dawnfall  (9.4)
9 SWiRL  (9.4)
10 Synthesis  (9.4)
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 Fullscreen Graphicians
1 Joe  (9.9)
2 Veto  (9.8)
3 Mirage  (9.7)
4 Jailbird  (9.6)
5 Hein  (9.5)

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