Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Awesome! I'd love to know how you are doing the non-scrolling HUD part at the bottom, I'm having trouble doing similar in my game miniMIKE.
I have a raster split, but it's not working properly...

I'm not sure how to do a camera or compensating for sprite to map collisions when the hardware scroll has changed either :( Any tips/hints would be great!

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!

Thanks for the update Monte!

I'm using an illegal screen mode for my bit of screen to hide the vertical scroll update too. I think I have my timing incorrect though. I can do full screen scrolling just fine but not with the HUD split. Are you using double buffering like me for the screen ram? What vertical positions are you doing the raster splits at? Maybe we could chat via X or similar?

I've sent you a message on BlueSky.