How to have 9 sprites in a bitmap line

Is it possible to have more than 8 sprites in a bitmap line on a real Commodore 64 (not an emulator)? sprites don't have to be different.

+3


source to share


2 answers


Yes, it is possible to use assembly in interrupts. The interruption will be consistent with the video chip raster. After the first sprite has been rendered by the GPU (using the NOP to wait for the required amount of time), its position and shape will be changed further to the right. The interrupt then waits again until the sprite is reset to its original location, because the bitmap plant needs to "see" it there.



Using this technique, you can have more than 8 sprites in one bitmap line. This technique is similar to showing sprites in the border for the case for sprites in the left / right borders. Instead of changing case to make the screen narrower, you need to change the x-position of the sprite.

+5


source


The short answer is yes. Long answer: yes, but there are some caveats:

The VICII (video chip) reads 3 bytes of sprite data per bitmap for each of the 8 hardware sprites, and the buffered data should be displayed on the next bitmap.



If you render the hardware sprite a second time on a given raster, the buffer will be empty on the next raster, so on the next raster you will get a transparent bar in the sprite.

Also, the sprite data fetch happens around the end of the current raster / the beginning of the next one, so you are pretty much limited to duplicating sprite # 0 (since its data is fetched first), and even then the CRT ray is so far to the right of the screen that you you will need to remove the side area to see the visible duplicate sprite.

+7


source







All Articles