I've sent you a message on BlueSky.
Monte Boyd
Creator of
Recent community posts
Hey Paul,
I don't know if I'm doing things the best way but for the HUD, I have a 1st raster split which sets $D011 to %01110111. This is an illegal screen mode which turns the screen off. Unlike setting bit 4 of $D011 to 0, which blanks the whole screen, this method allows you to only turn it off at a raster split.
I then have another raster split further down which turns the screen back on and sets the X and Y hardware scrolls to 0.
My 'camera' is pretty primitive compared to others. Basically once it has started scrolling in X or Y it will complete the full 8 pixel shift even if the player has stopped moving. So it never stops in the middle of an incomplete hardware scroll if that makes sense.
For collisions with the map, I convert the entity screen coordinates to char space and then check against that. Converting the screen coordinates is basically subtracting the current hardware scroll value and the borders, then dividing by 8. This is something I'd like to do more efficiently because it requires word size calculations for any entity any time it is needs to be used for a collision. But at least it works!