Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

I've only played this single player, but the AI puts up a good challenge! The narrowing playfield is a really great idea. Despite the simple controls, I'm not sure I have a full grasp of how the pushing mechanic works yet. I look forward to trying this with a friend because I suspect there will be some fun mind games that make the gameplay a bit deeper.

One minor issue I found is that you write to palettes too soon after power-on when the PPU may still be initializing, so those writes can be ignored. (You can test this in Mesen with Settings -> Emulation -> NES -> "Clear PPU $2000/1/5/6/7 throughout first frame after reset/power-on".)

(2 edits)

ooh!! I thought I was doing the PPU wakeup properly, but apparently not then! Thanks for teaching me :) Out of curiosity -- what's the visible symptom on which you diagnosed this error? Or are you going through and debugging the submissions for common mistakes in general? :) 


ps. and thank you for the very kind words!! it's so nice to hear everybody say such nice things about our first ever NES creation <3 

pps. yeah the push mechanic is a bit weird 😅 basically you only push for a few hundred ms after pressing B, but on top of that the physics is a bit weird and pushes wrong.

(+1)

I played all of the compo games in Mesen with every developer option turned on (and using Random Values for "Default power on state for RAM"). Those are the options in the top half of Settings -> Emulation -> NES. They're off by default because they usually just make the experience worse for non-developers, but developers should really keep them on to catch real-hardware bugs. The symptom is that the game's palette will be randomly wrong when the game is repeatedly power cycled, because palette RAM will start with random contents and the game's palette writes are ignored by the PPU when they occur during the first ~30,000 cycles. On a real console, this probably only matters if the game is on a real cartridge rather than a flash cart; with a flash cart, the PPU won't be initializing when the game first launches and the correct palette will already be in palette RAM when the game is reset.

In terms of code, I think your issue is just that you don't do a single BIT $2002 (PPU STATUS) before your first call to the function that waits for the bit 7 of $2002 to become 1. Apparently the state of this flag is random at power-on and you need to make sure it's clear before the wait loop.

I'm really happy to see new developers submitting things to the competition and I'm hopeful you stick with it! :)