Beautiful. The motivation and execution. Everything about this is why I come to HN.
Related... for a native GB/DMG/Z80 take ... the original first person shooter for the Game Boy was Faceball 2000. (1991) The studio was full of coders who loved and admired Wolf 3D and everything that followed. By day, we were stuck coding variations of Z80 and 6502 assembly. I did the Sega Game Gear port. It was not good.
Glad to see some love for Wolf3d. It was an important step in the development of the FPS genre, but has always been overshadowed by Doom. As someone who could not play Doom on my 386, Wolfenstein I have many fond memories of this classic. I'm sure I'm not alone!
Really cool project! Since the hardware of the cartridge is fully customizable, wouldn't it be possible to port games that would normally not be playable on the GBC? You could add advanced hardware, that is nowadays so small that it fits on the cartridge, and the GBC would act more or less like a renderer of the pre-calculated output of those chips.
Probably yes, the NES is "easier" in this regard since char-rom is read from cart (so a cart only needs to provide the bits in correct order), the GB(C)'s have video-ram that contains all parts so you need to transfer it over. Don't exactly remember but iirc classic GB was a tad too slow for this, but GBC has a DMA that might be fast enough. (I've developed on classic GB mostly so don't know the characteristics of GBC mode).
I played a bit with original gameboy too. I was very surprised when, iirc, the cpu is not even fast enough to clear the screen in one vertical blank, or even in one frame! It takes like three to fully clear the map.
Yeah, you really need to structure your code around working with the tilemap system.
I did a small racing prototype with both vertical and horizontal scrolling and segmented my updates to 4x4 blocks of tiles per-frame (160x144 resolution so 20x18 of 32x32 tiles is visible at any point in time, so stippled updating 4x4 blocks outside of view is within the budget together with updating some of the tiles each frame)
Beautiful. The motivation and execution. Everything about this is why I come to HN.
Related... for a native GB/DMG/Z80 take ... the original first person shooter for the Game Boy was Faceball 2000. (1991) The studio was full of coders who loved and admired Wolf 3D and everything that followed. By day, we were stuck coding variations of Z80 and 6502 assembly. I did the Sega Game Gear port. It was not good.
Glad to see some love for Wolf3d. It was an important step in the development of the FPS genre, but has always been overshadowed by Doom. As someone who could not play Doom on my 386, Wolfenstein I have many fond memories of this classic. I'm sure I'm not alone!
Really hope this makes it to something like Modretro/Chromatic games collection. The box art looks fantastic, love seeing resurgance of Gameboy color.
Really cool project! Since the hardware of the cartridge is fully customizable, wouldn't it be possible to port games that would normally not be playable on the GBC? You could add advanced hardware, that is nowadays so small that it fits on the cartridge, and the GBC would act more or less like a renderer of the pre-calculated output of those chips.
Probably yes, the NES is "easier" in this regard since char-rom is read from cart (so a cart only needs to provide the bits in correct order), the GB(C)'s have video-ram that contains all parts so you need to transfer it over. Don't exactly remember but iirc classic GB was a tad too slow for this, but GBC has a DMA that might be fast enough. (I've developed on classic GB mostly so don't know the characteristics of GBC mode).
I played a bit with original gameboy too. I was very surprised when, iirc, the cpu is not even fast enough to clear the screen in one vertical blank, or even in one frame! It takes like three to fully clear the map.
Yeah, you really need to structure your code around working with the tilemap system.
I did a small racing prototype with both vertical and horizontal scrolling and segmented my updates to 4x4 blocks of tiles per-frame (160x144 resolution so 20x18 of 32x32 tiles is visible at any point in time, so stippled updating 4x4 blocks outside of view is within the budget together with updating some of the tiles each frame)
This is false. You can do it in 1. It just involves mid-frame tile switching IIRC or using characters / sprites to fill in the rest.
Related from back in the day, a Doom style (BSP) engine for the z80 calculators: https://www.benryves.com/journal/tags/Nostromo/all