A Homebrew Draws Near!
A blog series by @Scrobins
Episode 24: Super Tilt Bro.
Homebrew first caught my eye when I sought to build out my game collection and I discovered new games for old consoles. Some games that stood out reinvented accessories like Super Russian Roulette’s use of the Zapper and Tailgate Party’s use of the Power Pad, while others applied modern gaming ideas to the old hardware like Candelabra: Estocerro and Spook-o’-tron’s use of both NES controllers in a way that mimics the Wii’s nunchuck dual joysticks. In this spirit homebrew continually evolves, and sometimes that growth breaks through a once-impossible barrier. The nights of couch co-op gameplay grow longer as the next must-have homebrew comes in riding a technological leap that could only have come from the creative wizardry of this community. And yet more than anything else, all you can do is wonder what might come next along the path laid here.
For this entry, I’m covering Super Tilt Bro. and the Rainbow Wi-Fi chipset, a fighting game for the NES developed by Sylvain Gadrat and going global with Wi-Fi-enhanced NES power thanks to the mad science of Antoine Gohin of Broke Studio fame. As of the time of this writing, the development of the game and the chipset continues in earnest, but the current build of the game is available to play here with the capabilities to play others elsewhere in the world.
In the meantime, VGS recently hosted a Super Tilt Bro. tournament last month. I certainly got my butt handed to me, but if you start practicing next year and hound the staff, we might do it again next year!
@RogerBidon (Sylvain Gadrat): developer (Super Tilt Bro.)
@Broke Studio (Antoine Gohin): publisher (Super Tilt Bro.) & developer (Rainbow Wi-Fi chipset)
Cart and Instructions from initial sale
Super Tilt Bro.’s origins track all the back to the era of Nintendo Age. Sylvain first created a thread for the game on NESDev on December 29, 2016 as his entry in the 2016 NESDev Competition. Described as a demake of the Super Smash Bros. series with the goal of being accessible, yet something to master, Sylvain noted he had been working on the game since the previous April.
Following the competition, Sylvain created a thread on NintendoAge about the game’s continuing development on May 15, 2018. Copies of the existing build were sold on cartridges to excited fans. The development thread continued to Video Game Sage on October 31, 2019, but its association with the Rainbow Wi-Fi cart in development from Broke Studio first appeared on VGS on March 18, 2020 in its own dedicated thread. Something especially notable about Sylvain’s posts is the abundant sharing of his programming notes, offering an educational resource alongside his development updates.
Screenshot from Super Tilt Bro.’s entry in the 2016 NESDev Compo
Super Tilt Bro. describes itself as a versus platformer or brawler, channeling the Super Smash Bros. entries of more modern consoles. You have your choice of characters: Sinbad, the scimitar-wielding, high-jumping, nimble one; Kiki, the slower, but stronger squirrel who can draw new platforms; Pepper, the versatile, teleporting witch; and what’s this…a new challenger approaches…VGS’s own mascot, The Sage, a heavy fighter who wields a long staff. Play against the computer, a friend, or see what you draw in the game’s online mode, duking it out across a host of arenas.
The development of the characters reflects Sylvain’s love for the open-source community, with Sinbad drawn by Zi Ye and popularized in Ogre3D; Tyson Tan’s Kiki the Cyber Squirrel, famed as the mascot to KDE’s Krita; and Pepper from David Revoy’s Pepper&Carrot comics.
Definitely check out this witchin’ comic
Controls are simple, but there’s nuance and fast finger work to be mastered. Left and right on the d-pad move you accordingly, while up makes you jump, and down creates a shield. The A-button is your normal attack, and the B-button unleashes your character’s special moves.
Super Tilt Bro. is a fighting game that manages to be a fun NES game and yet somehow doesn’t feel like an NES game. Controls and movement are so fluid, and the sprite animation is so detailed that the game could be mistaken for an “8-bit inspired” game taking advantage of more modern tech, but no, Super Tilt Bro. is built faithfully within the NES’ limits. I’m not averse to crediting some of this to sheer black magic. Focused on doing a few things incredibly well, this game highlights where homebrew outshines the licensed era with its labor of love development, progressing at its own pace rather than some artificial corporate calendar.
Gameplay is fun, and the various playable fighters have very different stats and skills. There is enough familiarity inspired from a similar famed franchise to orient you to the basic mechanics of Super Tilt Bro., which is good because the fights move so quickly that you won’t have more than a moment to get your bearings before crossing swords. And getting your bearings is important. At the moment there isn’t an easy way to identify which player you are in online mode, so it is conceivable you sacrifice a life thinking you are a different player than you actually are, and accidentally walk yourself right off the edge of the stage (cough, cough, Deadeye). Between standard attacks, combos, jumping, shielding, and whatever you call the sorcery some players summon to recover from going over the cliff, there is a lot to do that makes this game a fast-paced frenzy that will pull you into the screen with intense concentration. Despite all that I’m still laughably terrible at this game, getting my butt whooped over and over during VGS’ recent tournament. Whatever, it’s not losing if you’re having fun, right?
The graphics are colorful and detailed despite their small size, which serves to make the arena as large as possible, which are themselves scenic delights (at least before blood is spilt). Each of every sprite’s pixels are functional, with smooth animations such that you are never at a loss to understand what is happening during the fight. Meanwhile the music carries an addictive, pretty intensity that communicates a fierce battle is at hand, but it’s with cute characters so it’s actually charming instead of gruesome, and therefore it’s all ok (though the 8-bit gladiators may disagree).
For the dual stories behind Super Tilt Bro. and the Rainbow Wi-Fi chipset and the dream of bringing them together, I talked to the developers of both…
-Before we dive into Super Tilt Bro., I would love to talk about you and your background. What first inspired you to become a homebrewer? What is your origin story?
Computers always have been a part of my life. Here is a photograph before I even had a beard!
My dad always has been into computers and programming. Being always around him to ask what he was doing, he showed me the Pascal programming language. I was more than enthusiastic! I rapidly got the bug, and figured I could dive in the family's library. There were two books of interest: a Pascal manual, and an assembly one. I learned Pascal reading the first manual, and reprogramming assembly examples in Pascal.
As a teenager I knew enough to make small windowed applications, be it fun little tools to help with homework, small games to play with friends, or "virus" to display dumb error messages on professor's screen. I rapidly knew that I wanted to pursue programming studies, which I did, studying mostly algorithmic, software engineering, and C++.
On the side of my studies, I discovered Linux and the free culture. The idea that software should be free to share, study, and improve greatly resonated in me. I am now convinced that sharing the software we write is the good move. Trying to "protect" it wastes time and forbids people to come to help but does not prevent plagiarism. There is a reason Blender took over 3DSmax, OBS took over XSplit, ... This software allows their users to contribute in the most direct way.
With my degree in C++, and good knowledge of Linux, I easily found a job in the Video over IP industry. I developed server software that serves television, and video on demand. Typically, the servers behind the TV offer of internet providers or the web VOD of TV channels.
I worked 11 years full time on this industry, and now ... here I am! Since January 1, 2021, I changed my status to work freelance. I take contracts in the Video over IP industry to pay rent, while saving most of my time to work on Super Tilt Bro. I am not sure how much time it will last, but 2021 is definitely the homebrewing year.
Of course, I began homebrewing before leaving my salary for that. It actually came by itself. When I found my childhood NES dormant in a storeroom, I couldn't resist the urge to try to program something on it. It began by going on Wikipedia to learn that the CPU was a 6502, I then learned the basics of the 6502's assembly, and finally found the incredible resources that are the NESDev wiki and forums. With this newly acquired basic knowledge, I wanted a big project. Something to learn. Something that I would not finish, just leave when it would bore me or when I would have nothing more to learn. Spoiler: developing on the NES is not boring, and there is always something to learn! It's been five years, and there is no plan to stop soon.
-Your name is Sylvain, but your online presence revolves around the name Roger Bidon. What is the significance of that name?
Haha! You know, online games tend to give you small rewards for following them on social media. New colors for your characters, small in-game money, things like that. "Roger Bidon", which in French means "Roger Fake", was a fake Twitter account I created to "follow" a game. The thing, is that one day I really needed a Twitter account, and the platform wouldn't let me create a new one ... "Roger Bidon" is my screen name since that day
-Who are your influences? And whose work are you watching closely now?
In the programming world, my first passion, there are so many people. Mike Acton, Jason Turner, Herb Sutter, and Glenn Fiedler are some of the stars. The truth also is that a lot of great essays simply come from anonymous blog authors.
Of course, working on a platform-fighter game for years, I went deep in the genre. Super Tilt Bro. draws mechanics and inspiration from Super Smash Bros., Rivals of Aether, Brawlout, and Brawlhalla.
Also, reading articles or watching talks from game designers as I found them, but I would have no specific name, just watching what's hot at the moment. I try to focus on game designers working on current games though. I view Super Tilt Bro. as a modern game on an old system, and so it should follow modern game-design concepts.
Finally, there is not only gameplay anymore. Super Tilt Bro. is a game, a network of servers, a website, and a community. Thanks to online connectivity everything is linked together. There, other online games are the best inspiration. For example, the "private" game mode, to play with friends without lobby, directly comes from Antihero, full leaderboard on the website is what Starcraft II and League of Legends do, physical edition "whishlist" is obviously derived from Steam's concept, ...
-How would you describe your design aesthetic, what to you are the hallmarks of a game made by you?
Knowing there is only one (non-game jam) game by me, it may be extrapolating a little bit.
A friend of mine once said, "the game is like you, real technical skill in a facetious package." As a programmer-first, I love to write original code and I naively go head-first in the most feared challenges. "8-bit rollback netcode? Sure, couldn’t be THAT hard!" That's, for me, the best way to learn. On the other side, when I make a game, I don't want it to be a technical demo. I avoid, for example, to market the game as "written in assembly", it is true, it impresses people but is actually of no value for the player.
All things considered, I'd say a game by Roger Bidon has a highly technical code base but tries to be a good game first. That said, I am without doubt better at programming than any other game-making skill.
-What tools do you use to code and create?
My workstation is a Linux PC, with VIM as text editor, and The Gimp for pixel art. Nothing fancy here, your typical open-source workstation, except for The Gimp which is a bit outdated, this choice is just because habits are hard to change.
My main emulator is FCEUX, with Mesen as a backup when its fancy tools are needed. Nowadays, people tend to prefer Mesen but I had to patch the emulator to support the Wi-Fi mapper by Broke Studio, and FCEUX happens to be easier to hack into (it is fully developed in C++ instead of a mix of C++ and C#.) FCEUX also is the base of the HTML5 emulator, that eases maintaining Wi-Fi patch on both. Also, FCEUX development is steady while Mesen needs a new champion.
Of course there are a lot of home-made helper scripts. Be it debug/profiling scripts for the emulators, or scripts that convert images to assembly code. I also use The Gimp as a character editor, by respecting some layer-naming convention I store all my animations in a graphic file and convert them at build time.
Language-wise, the game was originally fully written in assembly, I then integrated C parts for the menus. The C is compiled with 6502-gcc which is a bit tricky to setup but gives largely better results than the common cc65. The assembler used is xa6502, it is an older assembler than ca65 and is more direct: there is no linking, binary code is directly output, meaning that it can directly output NES ROM files (or anything else really) by itself.
Finally, the server is developed in C++. It notably integrates a 6502 CPU emulator to be able to run the same game logic as the NES, and output savestates. It is used to help the NES with the rollback netcode, and since recently to produce replay files of games played online.
Whoops, it is quite a lot of tools-listing here. The main takes are that I use very little common tools (no NES Screen Tool, nor ca65 for example), and a lot of weird choices. Why? Mainly, because they are fun to work with
-Super Tilt Bro. debuted as an entry in the 2016 NESDev Coding Competition. What inspired you to participate that year? Do you plan on creating something again in the future once you’ve finished Super Tilt Bro.?
In 2016, I was a complete tourist in the NESDev community. Even retro gaming was new to me, as I started programming on the NES before falling in love with retro gaming. So, I just discovered the scene and saw there was a NESDev compo, I asked myself "why not register?" I happened to start development at a good time to be eligible. And I regret nothing, it was a very nice introduction to the community: having something to show while watching the work of more qualified devs, it was really a nice experience!
Participating in another iteration of the NESDev compo after Super Tilt Bro. is finished always has been in the plans! Sadly, Super Tilt Bro. is not made to be finished one day. There is always something to improve, to work upon. I'll have to plan to allow myself some time to participate in another edition, without abandoning my main project.
-When you created a thread on NintendoAge for Super Tilt Bro. in May 2018, you noted your desire to create an iteration of the Super Smash Bros. genre for the NES. What about that series resonates so strongly with you?
We played Super Smash Bros. for hours every day with my brother. When we were bored, we played. When we had something to celebrate, we played. When sad, nothing like a game to feel better. Disagreeing? Let's settle it in a game! ...
Super Smash Bros. saw us grow-up. Adding this to the fact that it is a genre mostly absent from the NES, it was the perfect project to work on.
Super Smash Bros. for the 64, where dreams began and childhoods ended
-Interest was so strong on NintendoAge and at gaming conventions that you released a small run of cartridges of Super Tilt Bro. version 1.0 (approximately 59). Was this version different from the game found on Action 53, Volume 3, which published entries from the 2016 NESDev Coding Competition?
The full history is that there was the version for the competition, the one on the Action 53, Volume 3. Later, in October 2018 the 1.0 was burnt on nine cartridges intended to be sold at retro gaming events as a humble curiosity. The interest surprised me, so I asked publicly and discovered that 50 more carts were needed to satisfy everybody. This second batch actually had the version 1.1 which slightly improved NTSC compatibility. Since then, I am working on the version 2 with intermediate versions being released digitally only (for free).
The compo version was terribly incomplete. Did you know that it was ranked just before the last place in the compo? The last place was for a game that did not had sound ... In Super Tilt Bro. I rushed sound integration at the very end of the deadline ^_^' The IA present on the Action 53, Volume 3 was also a post-competition addition, before that it was exclusively a two-player game.
From memory, notable additions between the Action 53, Volume 3, and Super Tilt Bro. 1.0 are a better IA, with difficulty setting, four stages instead of one, and the possibility to choose your character's colors.
The version 1.1 was also re-published as part of the Action 53, Volume 4. So it can easily be compared. Gikkman did exactly that at the beginning of this video https://www.youtube.com/watch?v=PH30VykY3Ow
Fun fact that I don't know if it is documented anywhere: cartridge version 1.0 was translated in French, and for 1.1 some are in French others in English, depending on who ordered it.
-What went through your mind seeing people so many excited to play Super Tilt Bro. that they were asking for a version 1.0 cart release while you were still working on the game?
Actually, I thought I was done with the game when preparing the 1.0 release. It was a fun experiment, I was releasing the game I had in mind, and having fun playing it.
But, in the middle of releasing it, Broke Studio revealed plans to bring Wi-Fi connectivity for the NES. This completely changed my mind. Going on the internet with the NES was a thing I dreamed of back in the time. I had to be involved! "Super Tilt Bro. online" was now bound to happen.
-Those cartridges have become collector’s items. One recently appeared as a donation to Kevin Hanley’s NES Spectrum Marathon as part of a raffle prize. Do you think you might ever make more to whet fans’ appetites while development continues?
Oh! I just learned about Super Tilt Bro. being in a prize pack of the marathon by reading the question ^_^' That's neat!
Speaking of which, this year’s marathon is coming soon on September 16-18!
I won't produce more version 1 cartridges by myself. Firstly because many are waiting for the Wi-Fi cartridges, I cannot produce other carts without causing some serious misunderstanding. Some may be lured, expecting the Wi-Fi cartridge and feel let down when receiving an old version of the game. Also version 2 is far superior in all matters, if new cart had to be released I would encourage going with the version being developed.
That said, if you really want a version 1 cartridge, it is possible. It always has been, and will always be. It takes some efforts that I am no more disposed to do myself, but you can re-build the ROM from the source code, flash it on carts, print labels and manuals. I even published a Super Tilt Bro. do it yourself guide (in French only, sorry) here: http://www.yaronet.com/topics/188767-devlog-super-tilt-bro/2#post-43
That's the whole point of the free and open-source culture: as an author I am not here to prevent usage, or own the game. I am producing this game to be enjoyed however you want, and explicitly not limiting its usage to what I have in mind.
-What new challenges or surprises surfaced in developing Super Tilt Bro.? What lessons did you learn that you would like to share with the people who aspire to follow in your footsteps?
Do not follow my footsteps, create your own!
I did absolutely everything that is recommended beginners avoid in game development. On any gamedev community, we say again and again: begin with a small project, put deadlines, finish your game, have a budget, publish small games before starting anything serious, and most importantly, we insist, really, DO NOT QUIT YOUR JOB!
All these are wise recommendations, really. I did not follow them because I have safety nets, and life is too short to miss the opportunity to work on such a dream project. The thing is coding day and night is my conception of fun, certainly not yours, and this project is my own dream.
So, really, do not follow my footsteps. The one thing important in game development is to have fun. That's the whole point of this industry, right? So, find what is fun to you! (And setup safety nets when it is risky.)
The major lesson learned is that developing a game is far more than coding it. Graphics, sound, game design, marketing, community management, publishing, manufacturing, developing tools, and there are more on the list! All these take very different skills, going solo-dev you will inevitably have to learn some. That's cool, the work is multifaceted, just don't think you will be improving your game 100% of the time, and do not underestimate the task.
The big surprise that I'd never thought when I started hacking in assembly, is that it would push me to meet formidable people. Going to game events with something to show, it is unavoidable to meet a lot of passionate people and make some friends.
-I always ask my interviewees whether there is a reflection of themselves in the game’s protagonist or other characters, do you identify with any of them? Sinbad, Kiki, and Pepper are all also characters from open-source graphical software. Is that in tribute to their creators’ efforts to help other artists develop? What made these three characters stand out so much that you included them in Super Tilt Bro.?
Licenses are important to me. I am convinced that open-source licenses are superior but the point is freedom. If some entity puts restrictive license on their creation, that's in their full right. This messages me that I am not allowed to work on their creation. Nintendo is notably vocal about not appreciating infringement. With that in mind, I could not use their characters in an homage-game, that would make no sense if they took it as an insult.
Starting an open-source game, being sold to the open-source culture, what made sense was to create a game starring open-source mascots! The first one was Sinbad. Here the choice is purely practical: Sinbad is badass and wears scimitars; he is perfect for a fighting game. He is also very simple, green torso, white pants: perfect for the limited NES' palette!
When adding new characters, I searched for mascots with a strong personality as they are inherently more interesting. Who wants to play a sitting penguin? Bonus points if the project deserves more awareness, if the character balances protagonists' genders and is appropriate for a playstyle I want to add to the game. Kiki and Pepper checked all the marks
Kiki, Krita’s lovable mascot who is bolstering homebrew’s robust squirrel community
These characters are completely a reflection of my view of the world while being a tribute to their respective authors. Now that I am more involved than ever in homebrews, who can say, maybe a homebrew character will join the roster one day.
-How did you first connect with Broke Studio to work together on a Wi-Fi-enabled Super Tilt Bro. cartridge that would connect players over vast distances?
As soon as I heard of Wi-Fi for the NES, I wanted that for Super Tilt Bro. I immediately patched an emulator with my ideal view of how it would work, coded a minimal server, implemented a naive netcode in the game, just to see if it would work. And it worked! Limited to the local network, and full of glitches, but with unlimited potential!
I do not remember how I contacted him but from that point we worked in a joint effort to make it a reality. In the early days Broke Studio invited me to join a chat room about internet on the NES, with very notable members of the community. I was humbled, I just found the gurus of the internet, and by some miracle was part of the group!
-What was the working dynamic like in your collaboration with him?
I am implementing a game with strict requirements, and he is developing a cartridge that must fit the most possible uses. Our projects are mutually beneficial. Also, thanks to my career in Video over IP, I bring experience of network protocols while he teaches me the realities of electronics.
When any of us needs something from the other or has progress to share we simply contact online. No real formality or precises dynamic, depending on the subject it can be a simple discussion or we can remotely work together for days.
-What is the reaction at game events when people try your game and experience a Wi-Fi chipset working on an NES?
The pandemic hit at exactly the wrong time for showing progress on Wi-Fi at events. Luckily, as I answer your question, I am back from the first event where I was able to show two networked NESs.
There are two kinds of audiences: some come for the game itself and play it, with the network being a fun little fact. Others come for the Wi-Fi demo and are completely blown away to see it running really smoothly (when it does not crash ... there is still some work )
That's stunning to be animating such a stand, as both reactions are heartwarming. People that come to play have fun with the game, which is the most authentic compliment I can receive. Those that are interested by the Wi-Fi have tons of questions and want to know everything, which is touching praise
-There has been a lot of support and enthusiasm for Super Tilt Bro., thanks to your hype-building on social media. How does it feel to see so many people foaming at the mouth to play your game?
It is incredible to see. The big event was the release of the trailer, with my little following I was not prepared to see it going viral. I actually posted it and gone to the grocery. When I returned, thinking it would gather something like 20 likes, I received one message from a friend: "Damn, your twitter!", the trailer already gathered ten thousand views! I was like: I need to park my car before the heart attack!
That's definitely something to live. Day to day reality is quieter though, it boosted my Twitter account and helped to get attention of the first community members, but the hype around the game shows indirectly. Great feeling when you present your game to somebody, and the person already heard about it!
What is really heart-warming though is to hear of people actually playing the game. When a review appears saying that a group of friends plays once a week, or when two players get excited when disputing a tournament match on Discord. Each time, that makes my day!
-You mention in your press kit that the game engine has a WTFPL license, which is France’s closest equivalent to releasing it into the public domain, so others can do what they want with it. Do you have any secret, specific hopes what some will use your engine to create?
I just do not want to limit creativity of anybody. Super Tilt Bro. is made for the community and to bring joy, not to be mine.
I openly hope that this codebase helps someone out there one day. Special gratification points if it is for technical reason, like the 8-bit netcode
-What about Super Tilt Bro. are you most proud of?
Succeeding in making a game that people actually play. Making a game is easy, making a fun game is doable, making a game that people are willing to spend more than a handful of minutes on is surprisingly hard. There are always much better alternatives to your game, and people's time is precious.
-Are there any other projects you have lined up on the horizon, NES or otherwise? Any dream projects?
Dream project: Super Tilt Bro.
Thanks to self-updatable Wi-Fi cartridges, the physical release does not necessarily signal the end of development. The crazy dream would be to gain enough following to start a Patreon for continued development. That would make Super Tilt Bro. a living game, evolving as time passes.
-Are there any homebrew games in development that you are excited to play?
Anything from Morphcat games is always a gem! Can't wait to put my hand on Witch n' Wiz also.
They do seem to be up to something lately…
-I really appreciate you taking the time to talk with me and share your experiences. Is there anything else you would like to tell readers and fans?
Have fun, play your games, and tell the creators that you played. They love to hear it!
-Before we dive into the Rainbow Wi-Fi chipset cartridge and Super Tilt Bro., I would love to talk about you and your background. What first inspired you to become a homebrewer and publisher/distributor? What is the origin story of Broke Studio?
This is a fun story. My father, who is an electronic engineer now retired, started to work on a project to automate and remotely control his house heating system. A few years ago, I was staying with them and asked him about how the project was going and what was new since last time. The more I asked about it the more I was interested in it, to the point where I ended up participating in the project and learned how to program a microcontroller and work with hardware stuff. I have a classic web programming (PHP/SQL/HTML/CSS) background so that was quite different!
Once the project was over (~mid 2015), I wanted to extend the experience and apply it to video games. So I looked for an old system that would be great to work with (even if they’re really all interesting!). On one side, I grew up with an Amstrad CPC 464 at home and I have a lot of great memories with it (I learned how to code in Basic with it). On the other side, I have great memories playing the NES at a friend’s house. After looking for some information on both systems on the Internet, I discovered the NESDev website, NintendoAge website, and the wonderful community around the NES, and I decided that I’d try to make something for the NES.
I slowly learned how to code for the system using 6502 assembly and made small projects. One of them was Pair the Pets, my first real game, even if it’s a very simple one. I released it in July 2015. I also learned more complex things like scrolling (including multi directional scrolling), scanline IRQ, bankswitching etc.
Shot of screen of Pair the Pets
At the end of 2016, someone on the NESDev forums was looking for a dev that could code a Super Mario-like platformer for a very specific project. I asked for more details and learned that the project wasn’t 100% sure and that the timing to do it was very short. I started working on a simple platformer prototype to save some time, using Twin Dragons assets from Surt. In the end, the project didn’t make it, but I ended up with a platformer prototype, so my time wasn’t wasted after all.
That’s when I remembered that the 2016 NESDev Compo was still running and ended 2 months later, so I thought I’d participate with the prototype. Of course I needed to improve it, polish it, and most of all, finish in time. Such a challenge… Anyway I worked hard on this Twin Dragons/platformer prototype, my friend Martin helped me with some pixel art additions, and my other friend Matthieu from the brilliant chiptune band Please Lose Battle composed some music and sound effects. We submitted the entry in time and finally discovered a month later that Twin Dragons’ demo won the 2016 NESDev Compo. If I am honest, I knew I had a good shot at it, but I didn’t think I could win, there were very strong contenders (I’m looking at you Nebs ’n Debs!).
Screenshot from Twin Dragons demo in the 2016 NESDev Compo
Winning the competition was very exciting, and I didn't want to stop here. So I convinced Martin and Matthieu to work with me on a full version of Twin Dragons and we launched a Kickstarter campaign for it in May 2017. This was meant to finance the cartridge production because I wanted to make the game no matter what.
A bit less than a year later, the game was ready, I had all the cartridges on hand ready to be shipped, but I also was in the middle of redoing the house we had just bought with my girlfriend. So my parents came to help, my father with some house work, and my mother prepared the packages for the backers.
After that, I was so thrilled by the experience, I thought that it could be nice to offer to help other developers releasing their game, and that’s really how Broke Studio began, besides releasing Twin Dragons.
And then Micro Mages joined the party, then Nebs ‘n Debs, then Lizard etc. I’m so happy to work with so many talented devs/people. It may sound a bit naive/idealistic/demagogic/you-name-it, but that’s really how I feel about this adventure.
-Who are your influences? And whose work are you watching closely now?
Tough question, there are so many great and talented folks in the NESDev community. At the very beginning I discovered Kevin (KHAN Games), Vectrex28 (FG Software), Beau (Sole Goose Productions) miau6502 & Nicolas Betoux (Morphcat Games), and many others and they were all an inspiration. A lot of great folks joined the community since and unfortunately I struggle to find enough time keeping up with all the NESDev news and the work I have with Broke Studio, so I won’t try to name anyone, but I’m very happy that the community keeps on growing!
-You burst onto the homebrew scene with Twin Dragons, which won the 2016 NESDev Coding Competition, and have since worked on an array of homebrew games. How would you describe your aesthetic?
Twin Dragons was really my very first real video game, the idea with it wasn’t to try anything new but rather do something very classic, straightforward, and easy to apprehend. I’m not a good gamer so I wanted a game that anyone could play (well at least the first levels O:).
So no specific aesthetic here, at least nothing I’m aware of, just the pleasure of doing a project I would enjoy as a gamer. I have some ideas for new games, I just need to find time to make them...
-What tools do you use to code and create?
I use Visual Studio Code to write code, the CC65 suite to compile it and FCEUX or Mesen to test it. I also use Shiru’s tools, NES Screen Tool and NES Space Checker. I used Tiled to create Twin Dragons and Basse Def Adventures levels and custom tools to convert them to data usable by my code. I don’t compose music/SFX myself, but the artists I worked with usually use FamiTracker or FamiStudio, both great tools with great communities.
All of these tools are available for free and most of them have been released by the community which is awesome, I cannot be grateful enough for this.
-Another fascinating aspect of Broke Studio is that you are involved with homebrew games across multiple consoles. What has led you to transcend consoles when many others prefer to stick to one in particular?
Curiosity I guess Famicom was a logical step from the NES for me because the game code remains the same (with sometimes an additional Japanese translation).
I love adding new consoles to the catalog and discover how other systems work. I started working on Mega Drive/Genesis release with Arkagis Revolution when Sik was looking for a publisher. I thought it’d be fun to try to publish a Mega Drive game. That’s how it started. I’m currently trying to set up a production chain for Gameboy games. Hopefully it won’t take too long…
Screenshot from Arkagis Revolution for the Sega Genesis
-Do you have a favorite console you prefer to program or publish for?
Of course the NES because that’s where everything started, and it’s the one I feel the most comfortable with (at least for now!) But I have to admit that I’m also attracted to other systems and hopefully one day I’ll find time to play a bit with these.
-In addition to programming games, you also publish games from other developers. What services does Broke Studio advertise to potential clients? Who do you wish to attract with your services?
After the release of Twin Dragons, I thought it could be interesting to offer my services to other developers since I already had a supply chain in place and some knowledge.
That could be a one-off all-in-one service, from physical game production to shipping to the customers. That’s what I did for Project Blue, Flea!, Tapeworm, Turtle Paint, The Adventures of Panzer, Shera, KUBO, From Below, and others. There’s not really a minimum quantity required but I can get decent prices starting at 25/30 copies, so I think that’s pretty cool. I think this service is interesting for people who handle the funding part themselves through a crowdfunding campaign, eBay, Etsy, or whatever and don’t want to handle the physical production and shipping themselves.
The other option is to add a game to Broke Studio’s catalog but I have to admit that I can be a bit picky on the game quality for this option. I try to offer a good and consistent selection of games. That may sound stupid or unfair to some people and I respect that, but that’s how it is.
-Is Broke Studio hiring? Are you looking to bring on more partners, generally or with particular skills, to expand your capabilities?
I’d love to, but unfortunately, I don’t have the money to hire anyone. Since this year I’ve been working with a freelance community manager because that’s something I’m really bad at doing and don’t like doing. I think that if I were to hire someone it would be a person who could handle shop orders, game assembling, customer service etc., so I can focus on creating a new game Maybe one day?!
-How difficult is it managing supply chains to publish games for different consoles given the unique challenges inherent to the NES, Famicom, and Sega Genesis?
It’s not always easy, especially during these times because of chip shortage, increase of shipping fees and raw material. I try to keep prices as reasonable as I can, but it’s getting harder and harder. I may have to increase the prices a bit at some point. Also, I try to offer good quality materials, so sometimes you have to pay a bit more for this. Of course I have to work with manufacturer in China for some parts, but I try to work with local suppliers or at least suppliers located in Europe as much as I can.
-It seems just about every new homebrew includes an announcement that you’re the game’s publisher and distributor. How does it feel to one of the go-to people for the physical releases of homebrew games?
Ahah I’m not sure that I publish every new homebrew A friend of mine (@OriginalFei on Twitter) has been into homebrew games for so many years now, and not only for the NES, so he’s helping me find new cool projects that would be nice to publish, and sometimes devs directly contact me. I really don’t feel like one of the go-to people for physical release and I feel so small compared to some other much bigger (retro) publishers, but I love what I do so I'm always flattered when a dev agrees on having their game published by Broke Studio
Fei, a pretty cool dude in homebrew
-What first inspired you to develop a Wi-Fi chipset that would enable Internet connectivity for the NES?
My dad (again!) talked to me about this cheap Wi-Fi chip, the ESP8266. Thinking about it I thought « that could be fun to connect the NES to the internet through this thing ». I also wondered if other people had already tried something like this for the NES, I couldn’t be the first to think about this! I discovered the amazing work of Rachel Simone Weil: the ConnectedNES project. This project is so cool, it was a huge inspiration and motivation for me to make my own. I know Memblers worked on some device to connect the NES to a computer through the controller port 2 and USB, which was pretty cool too. Definitely a lot of inspiring people in the NESDev community.
Rachel Simone Weil’s ConnectedNES
Naturally, my first prototype was a Wi-Fi module that could be plugged into the controller port 2 (https://www.youtube.com/watch?v=tK1qEAI-mGE) but it was very slow, and not super stable/reliable (especially when you try to get something PAL/NTSC compatible). It was early 2018. After some time, I moved on to a cart-based solution for speed and ease of use dev-wise, and the very first prototype was made around August 2018.
The idea of having a game that could update itself to fix bugs or download new content to add some maps/levels/puzzles, or even offer online gaming for an old system is really exciting!
-You’ve named this project “Rainbow.” What is the significance of that name for you?
There are two reasons for this name.
The first one is because when I was learning Verilog and was playing with my CPLD dev board, I wired it with a lot of colored floating wires as you can see in this Tweet (https://twitter.com/Broke_Studio/status/1031836021976170497), and it looked a lot like a rainbow.
Second reason is because Kevin Hanley (KHAN games) is working on a game called Unicorn, which is based on an old BBS game called Legend of the Red Dragon, and therefore needs a connection to the outside world to be played online. This project would be a great opportunity to help him, and as everyone knows, unicorns love rainbows
-In researching the history of Internet connectivity in console gaming, I learned about a number of projects, such as the Famicom Computer Network System, Sega Meganet, XBAND, Sega Channel, and the Teleplay Modem. Had you heard of these projects before? Did any of them serve as reference points in your work on the Rainbow Wi-Fi cartridge?
I heard about some of these projects, but I had never looked more into it. I really started everything from scratch, and I was learning at the same time. That’s why the project is taking so long But today it’s pretty stable and I’m very happy with its current state. Hopefully I’ll have more dev cart ready soon for curious NESDev-ers. I can’t wait to see what people will make of this!
-How did you first connect with Sylvain to work on this iteration of Super Tilt Bro.? What was the working dynamic like in your collaboration together?
I heard about Sylvain from the 2016 NESDev compo (his entry was the very first version of Super Tilt Bro. at the time IIRC), and I met him for the first time in 2017 at a really cool retro event in France which is called « Retro Gaming Connexion » (or RGC for short) where he showcased his game Super Tilt Bro. Early 2018 he made a custom FCEUX version with network support to see what could be done to get Super Tilt Bro. playable online. I guess it was another motivation for me to create a device that could help. Since then we’ve been working together to improve the Rainbow mapper/protocol to be easy to use and efficient. Really happy with the result of this collaboration so far. He also helped me a lot porting the mapper to FCEUX so we can test on computer before real hardware.
Since his game should be the very first one using the Rainbow mapper, the mapper and the Rainbow protocol is really tailored to its needs, but we tried to keep everything as generic as possible so it will be easy for other devs to use it for their own projects. And of course, I’m really open to feedback/remarks from new devs who want or need a new feature or something like that.
-What new challenges or surprises surfaced in developing the Rainbow cartridge as opposed to creating a game such as Twin Dragons? What lessons did you learn that you would like to share with the people who aspire to follow in your footsteps?
That’s a tough one. Twin Dragons was the first real game I made, so I learned a lot of stuff (almost everything I may say) all along the way. Be it level design, assembly tricks to improve performance, but also team management since we were 3 to work on the project, find suppliers for physical production, learn how to design our own PCB... I learned a lot on every aspect.
The Rainbow project is a totally different beast since it’s not a game and it’s mostly hardware oriented. It’s an all new journey here. I had to learn Verilog language which is a hardware description language to “program” those CPLD/FPGA chips we see more and more now. I had to learn how to code for the ESP8266 to make its firmware. I had to learn some hardware aspect to make everything interact correctly. I have no specific knowledge in the hardware domain so it has not always been easy, but I had people around I could count on. A huge thanks to Paul Molloy from Infinite NES Lives who gave me great advice/insights and also for his great INLretro flasher. And thanks to my dad who has helped me designed the PCB and also helped me fix some weird hardware issues I could never have figured out alone.
Both projects are very different and I learned a lot with both. One of the lessons I learned is to try not to give up too soon when you face an obstacle/wall. Sometimes you really want to stop because it’s too hard, or because you think you’ll never make it anyway, and I think I proved myself wrong most (all?) of the time. It wasn’t easy that’s for sure, but it was worth it. Don’t give up and take the time you need!
-As one of the few people heavily involved on both sides, which is more fun or fascinating to you: the hardware or software side of homebrew?
I love both sides, I guess it depends. I’ve spent a lot of time working on hardware stuff lately, and today I really miss coding a game. But at the same time, I have other hardware ideas I want to make too. Life’s too short
-With Super Tilt Bro. to demonstrate the capabilities of the Rainbow Wi-Fi cartridge, do you have any further aspirations for other games that might take advantage of the technology?
I have some game ideas, but I’m not sure that I’ll be able to pull them off (at least not all of them). Making an online game requires a game server, and that’s really a daunting task depending on the kind of game you’re making. Sylvain did an outstanding work in this regard for Super Tilt Bro. Playing a real-time online game on the NES without lag. It’s just insane when you think of it! Some would even call it witchcraft! So I have ideas but who knows if I’ll ever code them…
-What about the Rainbow cartridge are you most proud of?
Making it work! As I mentioned above, I had to learn a lot of things to get all the pieces to work together, so there’s definitely not one thing in particular that I’m proud of. I’m proud of the project in its entirety, and most importantly to be able to offer this tool to other devs so they can make awesome projects with it!
The Rainbow WI-Fi chipset
-Do you have any plans to adapt the Rainbow to other consoles such as the Famicom, SNES, or Sega Genesis/Mega Drive?
Yes of course, that’s a part of what I meant above about the other hardware ideas Famicom and Genesis/Mega Drive are on top of the list indeed. And of course I’d love to port it to other consoles like SNES, Gameboy, why not Neo Geo. I tried to make the protocol as agnostic of the NES as possible so it can be easily ported to other platforms. I’m pretty sure Genesis/Mega Drive will be next on the list.
-Are there any other projects you have lined up on the horizon? Any dream projects?
Main project for now is having the Rainbow NES cart released and probably Super Tilt Bro. Soon after that. I have two dream projects: one would be a point and click game with a twist for the NES, and the other one would be an online game exploiting the potential of the Rainbow cart.
-Are there any homebrew games in development that you are excited to play?
Sadly, I already have a big backlog of NES homebrews I want to play (Rollie, NEScape, Anguna, …) BUT, I’m always looking for new KHAN games releases, FrankenGraphics also works on some very interesting projects I’d love to try when they’re out, of course the next Morphcat Games hit too. Again; I can’t name everyone, there are so much cool stuff I see on Twitter!
-I really appreciate you taking the time to talk with me and share your experiences. Is there anything else you would like to tell readers and fans?
Well thank YOU for your interest and for being so patient, waiting for me to answer all the questions, I’m so sorry it took SO long. Thanks to all the people who enjoy Broke Studio’s work, that means a lot to me, sorry for not naming every nice people in the NESDev community, you’re all awesome, keep on making games and don’t give up!
Also, I’m always open to suggestions, comments, ideas, so feel free to send me a message if you feel you need to. Sometimes it takes time for me to reply, but I usually reply to everyone.
Thanks for tuning in to this latest episode of the series that continues to take deep dives into promising homebrew games coming across the finish line. What are your thoughts on Super Tilt Bro., the Rainbow Wi-Fi chipset, and the talented developers revolutionizing NES homebrew? What homebrews are you eagerly looking forward to? Perhaps you’ll see it here soon when…A Homebrew Draws Near! Command?