Get free YouTube views, likes and subscribers
Get Free YouTube Subscribers, Views and Likes

A C64 Sprite Multiplexer - in BASIC!?

Follow
8-Bit Show And Tell

The Commodore 64's VICII video chip allows sprite multiplexing: dynamically reusing the sprites (or MOBs: Movable Object Blocks) to display more than the natural limit of 8. Normally sprite multiplexing requires the use of fast machine language code, but in 2008 programmer S.E.S. of Genesis Project managed the feat with a BASIC program: no assembly code required. But it's no ordinary use of BASIC either, and might actually be more complicated than the machine code version. Today we'll take a deep look at how this BASIC sprite demo works.

Download "BASIC sprite multiplexer" [2008]: https://csdb.dk/release/?id=91459

To support 8Bit Show And Tell:
Become a patron:   / 8bitshowandtell  
Onetime donation: https://paypal.me/8BitShowAndTell
2nd channel:    / @8bitshowandtell247  

PETSCII/Screencodes table: https://www.c64wiki.com/wiki/PETSCII...

C64 Programmer's Reference Guide (memory maps): https://archive.org/details/commodore...

Transactor's Complete Commodore Inner Space Anthology: https://archive.org/details/The_Compl...

Index:
0:00 RUNning BASIC Sprite Multiplexer
1:24 Trying to STOP the program
2:30 Line 1,4 Walkthrough: Sprite setup
5:26 Line 5: Loc. 648 (HIBASE), 56334 (CIA Control Register A)
10:30 Line 6: Printing a bunch of characters?
12:30 Line 2: WAIT for it
17:20 Line 3: The main multiplexer loop
18:18 String Examination program explanation
20:27 Examining Sprite Initialization String
31:16 Examining Main Multiplexer String
36:26 Back to the Multiplexer Demo
38:46 Why so crashy? KERNAL bug!
41:40 Sprite reuse; thanks!

posted by karubberduckygw