Game-makers creating new Game Boy games (2021)
arstechnica.com
arstechnica.com
I used to carry a Game Boy Color from about when I was 20 to when I was 26.
Recently, my girlfriend gave me some weird crummy little NES/GBC emulator device from AliBaba and I like it because it is lightweight, has a backlight; charges via USB and lasts forever. I love it.
At home, though; it’s strictly my SEGA, still. I don’t think I will ever evolve.
But it is very small and I think that along with save states and standby helps it be more of a pick up and play toy for short bursts, more so than my 3DS or vita.
https://wiki.gbatemp.net/wiki/List_of_3DS_homebrew_emulators
It looks like a very thin GBC with four buttons instead of two and two shoulder buttons, if that helps.
About the game, he said "Hi! The game is about writing. You play as a writer in the seek for inspiration. Moving to a small town after inheriting a house of a unknown relative you found mysterious facts about the family and the town. It’s a adventure rpg with a lot of minigames" https://www.reddit.com/r/RetroOtrop/comments/oa6pgw/rretroot...
A few days ago I played an Atari 8-bit online multiplayer racing game [0] live with a Twitch streamer [1], it's was mind-blowing. There's a lot of new fun stuff going on in retro gaming.
https://gbdev.io/guides/tools.html
There was a big Game Boy homebrew jam / compo in 2021 with more than a 100 entries. A bunch of them are well polished and have solid gameplay :
https://itch.io/jam/gbcompo21/entries
https://gbdev.io/gbcompo21.html
A lot can be found on itch.io using the "gameboy-rom" tag: https://itch.io/games/tag-gameboy-rom
GBStudio has really changed the landscape and brought a lot of people into homebrew development who might otherwise have not joined for lack of programming and tooling experience. In addition to that, there are also a good number of non-GBStudio releases happening (ASM, GBDK-2020, ZGB engine).
I just recently started going back through the code (6502 Assembly) trying to figure out what a given subroutine does.
If you’ve got nostalgia for one of these systems, and enjoy programming, I encourage you to give it a shot.
This must be different now, is it just that Nintendo doesn't care and all of the secret stuff you needed to know is in the public domain?
Really cool to see people doing this. Anyplace especially good to find more info on the hardware issues?
As for economic techniques, there’s a fun story about a third‐party developer named Color Dreams. They released several games, including Crystal Mines, without Nintendo approval, and made their own cartridges. As the story goes, Nintendo threatened to pull their stock from any toy store that sold unlicensed games, and all the stores naturally caved since Nintendo had the most popular titles. Color Dreams saw the writing on the wall, and came up with a strategy to target one market that Nintendo had no hold over: Christian bookstores. Color Dreams rebranded as “Wisdom Tree,” gave all their games a thin Biblical veneer, and started marketing their games heavily to the religious demographic. By all accounts it was a huge success (relatively speaking, for a completely independent publisher).
For an example of the results, check out their conversion of Wolfenstein, Super 3D Noah’s Ark (originally for SNES, now on Steam!): https://store.steampowered.com/app/371180/Super_3D_Noahs_Ark...
Thank you for sharing the wildest rebranding I have ever seen.
Hopefully it ends before Noah discovers wine and things get ugly.
"Nintendo doesn't care" is an approximation. They would, but hobbyists are too small for them to bother with legal action, since any recovered damages would be infinitesimal on Nintendo's scale.
https://en.wikipedia.org/wiki/Lexmark_International,_Inc._v.....
No, that's trademarks. The Nintendo name is also trademarked though, so you can't use it without permission.
For example there's a hack for Gameboy Tetris that retrofits modern Tetris mechanics into it
A quick search suggests that emulators do something slightly different called run-ahead. This is simpler because it only has to cope with a fixed latency. The graphics displayed are consistently a fixed number of frames ahead of the game state. For every frame it saves the state, runs the emulation forward a few frames, displays the frame and reverts the state.
But I agree; when I really want to feel nostalgic, I take a c64 with tape rec and load a game. Sit very quiet after the load command as any movement makes it fail and you can rewind and restart the 20min game load. Somehow it feels very relaxing to me.
I have been slowly rectifying this by obtaining old systems and playing the games on flash carts, on original hardware, on a CRT.
I generally prefer it to emulation. That true zero-lag feeling of real hardware is such a treat. But emulation is cool too. Sometimes, save states make the experience 100x more enjoyable.
It's like music. Generally I listen digitally, but records are really fun in their own way too. For me it's not really a war between the two.
2600 stuff in particular is cheap and easy to find.
I’m not hating on GB Studio. There have been great games created with it. I’m happy that more people are able to create games.
I’m glad I can still make money professionally with my programming skills… for now.
On my free time I'm working on a monster rpg (something like pokemon).
I also opted for a pixel look and a bitmap font.
It has its charm to work on this old style games.
The graphics are simple and easy to understand and read for the player.
Also something like pokemon gen 3 still looks good.
Or SNES games like Terranigma, Secret of Evermore and so on.
And even younger people like to play them.
Why add the additional barrier to entry that is needing to set up an emulator or own the ancient hardware and a flash cartridge?
The only benefit I see it adding is the developer may enjoy working through the hardware's limitations, but even then couldn't you arbitrarily set yourself comparable limitations?
Secondly, simply imposing limitations on yourself is not the same as having real limitations from the hardware. With real limitations, I spend hours upon days upon weeks trying to figure out the most clever ways working around limitations to create crazy effects. It's feels like a real personal achievement for myself as a developer if I pull something off that should normally be considered impossible.
Working around your own self-imposed limitations is just...lame and arbitrary.
Using the standard MBC1 mapper, the Game Boy can only address two 16KB chunks of ROM at a time (one “home bank” that’s always accessible and one swappable one), and figuring out how to work with that limitation cleanly is fundamental to the structure of your engine for larger productions. How can you reproduce that on a modern machine? Even if you committed to only accessing data in the original GB formats, in 16KB chunks, the code itself is never going to be the same size, and code faces the exact same restrictions. You’d need to self-impose the restriction of only writing GBZ80 code - at which point you’re developing for the real thing!
Likewise, the GBZ80 processor has very limited addressing modes, even compared to many of its contemporaries; to compensate, a well-designed engine is going to focus on organizing data into 256 byte “pages” (because you can index them by manipulating a single byte of a pointer), focus on linear data (to take advantage of the auto-increment/decrement addressing modes), and avoid indexing that would require multiplication (i.e. prefer “structs of arrays” rather than “arrays of structs”). And if you do need indexable non-byte sized data, you of course would prefer data that’s power-of-two sized so you can do that multiplication using shifts, and ideally 16-byte sized so you can use the SWAP instruction to go from index to pointer in one cycle.
Also, the Game Boy video hardware locks you out of VRAM while it’s drawing the screen - that is, almost all the time. Any VRAM updates need to run during Vblank or less commonly Hblank, usually in ridiculously tight interrupt handlers. Again, your engine needs to be organized around doing these updates as quickly as possible; consider that even something like drawing a fresh column of tiles to the screen is much harder than drawing a row (since you can’t use the CPU’s auto-increment addressing) and might be too slow if care isn’t taken. There’s no real way to reproduce this on a different system - all of the timing is off. Challenges like this are the “fun” of developing for the platform and can’t really be correctly captured without just developing for the platform.
It will just look strange full screen on a 27 inch display for example.
You can also target phones were you upscale the img by 4 times or so and it becomes pretty playable.
Also you don't have to stick to hardware limitations but you can.
For some its fun.
But you can also learn a lot about hardware programming because these old consoles like the game boy are pretty simple and 8-bit. So its also great for learning.
Counterpoint: targeting your game to the SNES platform (for example) means it will run on any system with a functional SNES emulator -- including ones that don't exist yet! -- and is less likely to require maintenance as those systems evolve.
It's "missed nostalgia" for me: while I played games from that era at the time, I was oblivious to how professional gamedev worked at the time (most I did was QBasic). So it's like people doing blacksmithing or woodworking that isn't required anymore.
Is anyone aware of such great homebrew toolkits for other retro platforms? I’d love to see something similar for, EG; the N64.
Like what? Phones? Is that it? Is that all we have to offer kids today, phones?
My daughter has been playing a Tetris like game on the Nintendo Switch, and I wish there was something like the old GameBoys: runs forever on batteries, small, durable, focused on games. I don't think such things exist anymore?
I raise the bar here: would an ASIC acting like the real hardware be really "native" or just emulation at the hardware level?
Fighting increasingly aggressive attempts to lock you out from your own hardware just doesn't seem worth it to me.
The article briefly mentions how this game is distributed:
> Freely available on Itch.io, a limited physical run of Deadeus was also sold through Spacebot Interactive, a one-man publisher founded by Chris Beach.
Deadeus: Pretty much a new-classic homebrew: https://izma.itch.io/deadeus
Soul Void: Great graphics, gothic: https://kadabura.itch.io/soul-void
Genesis: Decent shmup: https://user0x7f.itch.io/genesis
Among Us fangame: https://lumpytouch.itch.io/super-impostor-bros
Black Castle: A solid Platformer: https://user0x7f.itch.io/black-castle
Cavern: has some metroid feels: https://thegreatgallus.itch.io/cavern-mvm-9
Powa: Platformer: https://aiguanachein.itch.io/powa
The Bouncing Ball: Simple yet fun: https://gamejolt.com/games/the-bouncing-ball-gb/86699
Dangan: Bullet hell on the GB: https://snorpung.itch.io/dangan-gb
Quartet: Puzzle game: https://makrill.itch.io/quartet
Death Planet: Impressive GB graphics, great music: https://makrill.itch.io/death-planet
* BGB - http://bgb.bircd.org
* Emulicious - https://emulicious.net
* SameBoy - https://sameboy.github.io
Rather, I find it fun because of the technology and the constraints. The NES’s hardware is straightforward and easy to understand (but filled with cleverness and quirks, like all hardware from that era). The software side is primitive — games are typically hand-written in 6502 assembly, and there’s no operating system or standard library to hide the intricacies of the hardware. There’s something really refreshing about taking a break from our modern complicated tech stacks to go write 6502 assembly.
Some games suffer from the hardware limitations, but most are designed around these limitations, and the good games are very fun to play.
For someone like myself, and many other homebrew developers; it’s about unlocking the potential the hardware had. Look at Stunt Race FX for the Game Boy as a perfect example. IIRC, someone just ported DOOM to the bare-bones SEGA Genesis.
Nostalgia is why people play these games. (Well, that and they’re often excellent quality games.)
The challenge, and the learning of low level systems; is why homebrew developers choose these older systems to work with.
Hope that makes sense!