Its Alive


It has taken me longer to get this one out then expected, as I had the GBDK C code, all ready to be ported across to the NES. However, I was not aware that the 6502 CPU takes more commands to do the same stuff on average, of the Z80. And as a result my NES version, breached the 32k limit imposed in GBDK, of have a ROM with no memory controller. This then meant that I had to recode the game into ROM banks and I had not previously got them working on any of the other consolse, that GBDK 2020 supports. Thankfully I didn't give up and forced myself to get this port out and have learnt some key things in the process with ROM banks. When working with different ROM banks, you need to split you code into segments, with ROM bank 0 being the king as it is always active. So any code that needs to be run always, should be put there and everything that is only active for short periods should be in other ROM banks. In my game I had the mainLoop, LevelManger, various String and TilePlot functions along with SpriteManger and SoundManger in Bank 0 and everything else was split across banks. With the Data for the Tiles being in Bank 3 and the core game code - GameManager, PlayerManager & Baddie Manager being in Bank 2. The Level Data was put in Bank 0 in the end. As I was having issues with how exactly I can draw the Screen from a DataBank and fill in the Collision Map from the same DataBank. To set the tiledata, I would call functions inside the other banks, which would work with the static const data there. But I also found trying to printout Error Messages from those banks also created crashes! as the char pointers would become corrupted when printing them out, via the print functions in Bank 0. So had to resort to creating a list of error codes, which could be sent to the ErrorTrap function, which in turn would display a number relating to an error type, if it occurred. I Now think I can tackle larger projects on the various GBDK consoles, as previously, I was trying to keep within the 32k limit to not have to handle bank switching headaches. I was also surprised how fast the NES seems to handle doing stuff with the Display off and then turning it back on, which at times seemed instant. Could be different on a real NES, I guess, as I am only working with Emulators at the moment. Overall this feels like a slightly different game over the other versions, which is a good thing. 

Files

GemDash8.nes 64 kB
18 hours ago
OUT-GemDash8.zip Play in browser
18 hours ago

Get GemDash8 NES

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.