I guess an array with a nibble (half a byte) per pixel would do, but then maybe that approach will take up too much memory.
Guess you've seen this.
Thanks, I didn't notice the Java code link before. This is very helpful for trying to implement the same demo on the TI. If I load the playfield image (background.png) into Magellan it calculates 253 vertical character transitions, so it should be possible to make a 2 pixel smooth scroller for this demo.
I can use a ROM banks for storing the collision map since so I'm not so worried about the space. For this demo it would take 40K.
I still don't know how the collision map was produced. I think you need a tool where you can draw as many normal vectors on top of the playfield image as you like, and then the tool interpolates the vectors and calculates the collision map.
There is a Java tool in the source code for the C64 Pinball Dreams demo, but I'm not sure yet what it's for and how it works:
Look under PD/tools/PD/run.bat