Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Game-makers creating new Game Boy games (2021) (arstechnica.com)
155 points by Tomte on Jan 16, 2022 | hide | past | favorite | 88 comments


Games for the original Game Boy are actually the only games I play nowadays and I use the original hardware (with IPS screen mod which is amazing) - why? Several reasons: games are simple but fun and often quite challenging, they don't require a lot of time investment, you can play them anywhere, batteries in Game Boy last for soooo long so it's always ready and it's fun to collect the cartridges, preferably with a box (they look great on shelf and don't take much space). It's funny because I got the original Game Boy ~30 years ago and played the shit out of it and now I'm back to it :-)


I’ve basically stopped at my SEGA Saturn, gaming tech wise.

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.


As an old Saturn fan, any recommendations?


Link to the device at Alibaba?


Not OP, but I also bought such a device on Amazon two months ago. After doing some research, I went for the Anbernic RG351P. I've been quite happy so far.


Ambernics seem to be very high build quality. I got the RG280v myself after some research. It's not as powerful (so it can't play every PS1 game at full frame rate) and does not have analog sticks.

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.


Thanks both


I use a 3ds for that, it's easily modded and can emulate a lot of consoles:

https://wiki.gbatemp.net/wiki/List_of_3DS_homebrew_emulators


Unfortunately, again; my girlfriend purchased it for me months ago - it doesn’t appear to have any sort of branding on it, unfortunately. :(

It looks like a very thin GBC with four buttons instead of two and two shoulder buttons, if that helps.


Same setup and same reasons. Other advantages are that tactile buttons feel great and the games are designed to be a complete experience i.e. no in app purchases.


Amen to no in-app purchases.


My DS Lite has the same infinite battery. I turn it on once every 3 years to see if it still works and end up playing a game for 30 mins. I don't remember the last time i charged it ;) More than 3 years ago I'm sure.


Haha, I learned to solder a few weeks ago just to get my Emerald cartridge to run properly. I couldn't stop taking pictures of how beautiful Links Awakening DX was. I'd say DS also has a few games worthy of your attention.


I play them in HD via Gameboy Player + a good Cube upscaler. And you can get a SNES to Cube controller adapter for a good dpad. Throw in an Everdrive and it's heaven.


There's a Brazilian dev that is recreating his hometown in a GB game, he posts updates on https://www.reddit.com/r/RetroOtrop/

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...


Over the past 5 or so years, I've bought/pre-ordered at least 10 Atari 2600 games, on cart, on release day. Also, new hardware, controllers, specialty carts, AtariVox. I'm just realizing that I've spent more on 2600 stuff than I have on Steam.

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.

[0] http://8bit-slicks.com/

[1] https://youtu.be/RAh_Fh0DFRg?t=2346


Here's a guide which helps select tools for Game Boy homebrew development based on skill, experience and project scope:

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 wrote part of an NES game for my senior project just a couple of years ago. It was tough at the time, and quite Beyond anything I’d ever done programming otherwise.

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 is something you should share. Many would love to see what you came up with.


I did! I’m happy to answer any Questions If you have them. https://aaroneiche.com/2020/12/30/i-wrote-a-nintendo-game/


Long ago I had been told that you had to be an "official partner" -type relationship with Nintendo in order to be able to market games on their hardware. I assumed that meant there was some kind of hardware key or other secret you needed to have given to you or you just couldn't make things work.

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?


Nintendo used, or attempted to use, various hardware/software, legal, and economic techniques to force publishers to use their cartridges, for which they took a significant cut of sales. The hardware‐enforced logo mentioned in another comment was one technique, that was an attempt at abusing trademark (not copyright) law to limit third‐party cartridge manufacturers. However, the courts decisively struck that strategy down in Sega v. Accolade.

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...


> their conversion of Wolfenstein, Super 3D Noah’s Ark

Thank you for sharing the wildest rebranding I have ever seen.


How about Ultimate Doom -> Chex Quest?

https://en.wikipedia.org/wiki/Chex_Quest


There is an interesting anecdote in the Doom engine black book about working around the logo as well.


> Super 3D Noah’s Ark

Hopefully it ends before Noah discovers wine and things get ugly.


On the original Game Boy, the lockout is enforced by the "Nintendo" logo that you see on bootup. There is a bootup ROM in the hardware, which checks that this image exists in the cartridge ROM before issuing a jump instruction to any cartridge code. The image is copyrighted, so Nintendo's defense is to legally go after anyone who includes that copyrighted image in their ROM. It's a legal protection, not really a hardware protection; the hardware part has no secret and is easily defeated.

"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.


Besides Sega vs Accolade mentioned in a sibling comment, there's also this attempt --- which was similarly defeated:

https://en.wikipedia.org/wiki/Lexmark_International,_Inc._v.....


I see. Especially if the games were given away free, or at cost of hardware, there shouldn't be any lost revenue for Nintendo as long as they are no longer making games themselves. But you can loose copyright if you don't defend it right? And the copyright to their logo seems like something they would want to strongly protect.


> you can loose copyright if you don't defend it right

No, that's trademarks. The Nintendo name is also trademarked though, so you can't use it without permission.


That particular protection has been broken though. Hackers found another combination of bits that successfully allows the Gameboy to boot without being the Nintendo logo.


I wonder if that would have held up given Sega failing with something similar in https://en.wikipedia.org/wiki/Sega_v._Accolade


Not technically a "new" game but something I was pretty amazed to see yesterday is a homebrew port of Tomb Raider to the GBA called OpenLara. It runs surprisingly well getting 15-20 FPS on real hardware. Insanely impressive and much better than other 3D games on the system like Asterisk and Driver 3.


They're not really "new" either but there's also a thriving scene of modding/hacking official games

For example there's a hack for Gameboy Tetris that retrofits modern Tetris mechanics into it

https://www.romhacking.net/hacks/5813/


I had to look this up to see it, it's pretty awesome:

https://www.youtube.com/watch?v=igEUjEci-eg


The GBA port is new-ish but the OpenLara project itself is several years old.


I'm old enought that I experienced everything from the Atari VCS/2600 onward with physical hardware, which (a) is really hard/expensive to find and (b) makes the emulated experience less enjoyable. Do people who never had the original devices feel the same way or is this an old person problem?


Other way around for me, I've experienced a lot of the original hardware but actually find the emulated experience more enjoyable. Things like save states, upscaled resolution on 3D games, customizable controls, online netplay for games that only had local multiplayer etc. Also in recent years some emulators have implemented features like rolling back one or multiple frames to do an input before you actually pressed the button, leading to lower input latency than the original hardware (can't remember the name of this feature at the moment).


A lot of games and gameplay depends on timing; I can, given an Arcade joystick, over 35 years after I first played it, still play msx nemesis round and round without dying. I tried improved/enhanced versions and they messed with the timings; that killed a lot of nostalgia for me personally.


If I have muscle memory of a game (like pretty much any Mario game) I'll tweak things until the input latency is as close to the original hardware as possible, but otherwise I've found that it greatly improves the experience.


The rolling back technique you describe is often used for network play to hide the network latency ("rollback netcode"). When I first read about it I thought about using it to fix high emulator input latency, but never got round to 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.


Like you, went through all of that as well; I liked it so much that I started buying old computers in the 90s (when many of these were cheap or even free to pick up); I have well over 1000 rare ones and I regularly try them (they are pretty robust; I even rarely have capacitor issues). Although I enjoy the real thing more (joysticks, especially Arcade with 2 buttons, are so much better for me than modern ones); I like handheld emulators, simply because they work everywhere. I cannot take my msx, zx spectrum or vcs 2600 on the road with me and with an emulator handheld device I just bring everything, including the dev environments.

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'm old, but I missed out on a lot of the original systems back in the day.

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.


I much prefer original hardware, but not necessarily in the original state. My consoles are RGB modded, and I make use of flashcarts and things like PS-IO.


I also experienced them all first hand. I remember being blown away by my friend's dad's brand new Pong game in about 1976. I still have quite a bit of old 8-bit and newer hardware stored away (I've even got one of the earliest five C64's currently known). Truthfully, pulling the old hardware out now is not nearly as satisfying as running an emulator. When I want to relive, say, my teenage days playing Amiga mod disks while I did my homework, it's a pain in the rear to get the old Amiga 2000 up and running, while it is a matter of seconds to fire up the emulator. Last time I dug out my Sun 3/80 and tried to boot it, it led to a weeks worth of repairing hardware, finding a modern compatible AUI ethernet adapter, digging up the old sunos4 install files, and getting it all installed.


I find the opposite myself. I have a load of old hardware including my original SNES from when it was released but I find myself playing an Anbernic RG351MP far more. It’s portable, plays games well enough that I can’t discern from the original, things like scraping original manuals, preview videos and ratings makes it a really nice browsing experience and retroachievements it’s a really fun new addition to old gaming experiences I’ve had. Retro emulation is really a lot of fun these days.


I also experienced the games on the real hardware but last time that I tried to emulate them purely for nostalgia reasons I didn't notice anything wrong with emulation.


I ended up with a stack of 2600s a few years back. I used to go to estate sales, (for older people that had died), and almost universally they had a 2600 with a box of games. And I would give the organizers $10 and walk out with the whole thing. NESes common too. Would recommend giving estate sales a chance if you live in the USA.


It's an objective fact that paddle games from the 2600 have never been, and I believe never will be, emulated properly. On original hardware and a CRT TV, it feels like your physically touching the paddle on the screen through the paddle. The lack of lag is insane.

2600 stuff in particular is cheap and easy to find.


I was learning cgb programming for a little while. It’s challenging but so different from my day job that I found it refreshing. When I discovered GB Studio I became defeated. I felt that my skill was trivialized. Low-code/no-code won. I tried GB Studio but clicking everything together was not exciting to me. I understand that programming is only a means to an end but for me it is interesting. I considered switching to agb but I see a “studio” in development for that platform also.

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.


I had similar feelings when I first saw it. My response was to focus on making things that you can't using GB Studio - pushing the hardware to its limits, playing with novel control/graphics schemes, doing things that make people say "you can do that on a gameboy?". I was never really much of a game designer so I enjoy this "technical challenge" work more anyway.


The question is why not?

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.


I can understand making a retro style game, most of the games I play look like they're from the SNES era.

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?


One advantage is that your game can work on any device that can support an emulator. An electron app aint got nothing compared to the portability of a NES or Gameboy game.

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.


Plus, some limitations are impossible to correctly self-impose without just embracing the gestalt of the hardware. A few examples:

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.


You can make them game boy only but also compile to another target like windows or macos.

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.


> Why add the additional barrier to entry that is needing to set up an emulator or own the ancient hardware and a flash cartridge?

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.


I've been working off and on on a DOS game using the rise of the triad source and the tools of the time (map editor, deluxe paint, etc), as well as some conversion utilities I wrote myself to help with modern-to-ancient quality of life stuff.

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.


While existing consoles basically program "like a PC", older hardware has different programming models that you might simply be more comfortable in. It's like its own game engine, not just "slower CPU" or "less colors" and "less memory".


Have a blog or updates or anything for the game? I love me a good monster battle rpg


The tooling and assets available for this mode of development are really good -- and GB Studio, the mentioned one, can export for the browser, so distribution can be really convenient as well.


While not quite as WYSIWYG, jo-engine for SEGA Saturn homebrew development has been a massive blessing to me, and I’m sure dozens of other Saturn enthusiasts as well:

https://jo-engine.org

Is anyone aware of such great homebrew toolkits for other retro platforms? I’d love to see something similar for, EG; the N64.


libdragon is what you are looking for: https://github.com/DragonMinded/libdragon


It’s for the same reason I build games for a day job and then turn around and build more games as a side project at night. It’s too damned fun making fun, and when you make something intentionally not for profit that multiplies the effect.


Same. Spend 5 days a week working on a commercial game dev project then on weekends I can’t wait to work on my hobby game dev ha


> The world may have moved on to sleeker, less bulky technology

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?


The newly released Analogue Pocket also plays GB Studio games natively, which might increase interest in this homebrew scene even more.


Is an FPGA acting like the real hardware really "native" or just emulation on hardware level? Serious question.


This has been a hot topic on the homebrew scene after Analogue Pocket's release.

I raise the bar here: would an ASIC acting like the real hardware be really "native" or just emulation at the hardware level?


They love Nintendo, but Nintendo doesn't love them back. That always seemed sad to me. It's obviously too late for them now, but lesson for the next generation: don't fall in love with closed platforms!

Fighting increasingly aggressive attempts to lock you out from your own hardware just doesn't seem worth it to me.


What are people using to play the games?


Most homebrew is distributed l as ROM files for use in emulators (because that’s easiest), and you can also play these ROM files on the original hardware if you have a flashcart. Some homebrew developers actually manufacture and sell cartridges for their games (though usually this is in addition to a digital release, and not the primary means of distribution).

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.


do you have a recommendation for a good one?


Here's a bunch, a mix of ASM, GBStudio, GBDK and ZGB

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


There was some infamous RPG homebrew for the GB but now I can't remember which one. There was lots of exploration. Do you know some recent ones?


Emulators?


The GB emulators most commonly for homebrew development are the following. They all have debuggers and a high level of accuracy. Emulicious has C source debugging when using VSCode (or Sublime Text, though that's not yet released.)

* BGB - http://bgb.bircd.org

* Emulicious - https://emulicious.net

* SameBoy - https://sameboy.github.io


I use an Everdrive GB


Tetris for the original Gameboy is the greatest video game of all time.


Nostalgia is a powerful motivator


There’s more to it than just nostalgia — I’ve spent a lot of time in the past several years writing NES emulators, experimenting with making little “games”/proof-of-concepts, and of course just playing NES games. But I wasn’t born when the NES was around; I didn’t grow up with the NES so I don’t really have any nostalgia for it.

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.


Off-topic: What browser/OS are you using? I ask because you have em-dashes and fancy quotes.


I typed that comment on iOS Safari, which defaults to smart punctuation (and I've never bothered to turn it off).


Thanks for the info. I prefer the fancy punctuation. I wonder if I can switch it on in other browsers, an extension maybe..


For myself and many, many other homebrew developers, it has little to do with nostalgia, and much to do with learning and the forced limitations that come with the hardware.

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!


Also scarcity breeds innovation. There is no simpler computer that still has software development than the knockoff Z80. It's not easy making fun toys on a computer so small that has been around for nearly 50 years. We're all standing on the shoulders of giants.


It's also about the most advanced hardware a solo developer has a reasonable chance of making a game for that would rival games of the time. Much newer and the consoles won't be as well-documented, and 3D graphics add layers of complication.


I think the Game Boy Advance is probably the most modern/advanced console that has that benefit.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: