Jeffrey aka TwBurn is the man behind the USB2CDi adapter and the homebrew CD-i game called Nobelia.
As a professional programmer, he choose to give a “little” of his time to the CD-i scene, and hopefully for us, he is pretty good in what he do.
We all know the USB2CDi adapter that let you connect many modern controllers to your CD-i, but lately, he decided to start programming a CD-i game.
A Demo version will shortly see the day and it is the perfect time to interview him and see what is in his mind!
Omegalfa: Hey Jeffrey! How are you? For the people who still don’t know who you are, can you let us know a little bit more about you?
Where are you come from and what is your experience in the homebrew scene?
TwBurn: I’m Jeffrey, from the Netherlands. I don’t really have any experience with the homebrew scene, or game/hardware development. We had a CD-i player when I was a kid (my dad worked at Philips, he brought one home one day – first a 180/181 and later we got a 470, which I still have), I always loved that thing. A few years ago I bought two more players and a lot of accessories and games. During COVID I was looking for a new hobby, and remembered the boxes on the attic, it all spiraled out of control from there.
Omegalfa: You are the creator of the USB to CD-i adaptor (USB2CDi).
You can’t imagine how incredibly important it is for the interactive community.
You published your work on The World of CD-i Forum and we thank you for that.
Tell us more about that, what kind of hardware can you connect to the CD-i player?
TwBurn: The USB2CDi project is actually two parts. First there is the Arduino Library I created, which acts as an interface to the CD-i player. Then I connected an USB Host Adapter and wrote some examples, that translate input to the CD-i. The USB Host adapter also supports Bluetooth, so wireless controllers are supported as well.
So basically anything that you can connect to an Arduino can act as a controller for the CD-i. Stuff like joysticks, keyboard, mice. I also experimented with using a WiiMote as a sort of “peacekeeper”
You’re not limited to USB/BlueTooth input, you could also hook up a NES/SNES or the newer Wii-adapter like controllers (used by the NES/SNES mini for example).
In the current version I also support two players; if wired up correctly, and to a CD-i player that supports the splitter adapter, the USB2CDi can act as a splitter and provide input for two players, using a single Arduino/cable to the CD-i.
Omegalfa: Do you have a compatibility list?
TwBurn: I’ve got “production like” code for mouse, keyboard, WiiMote and Wii U Pro controller using Bluetooth, and a Magic NS stick, which you can connect all kinds of controllers to.
The main issue here is that for each kind of controller you need to load new code to the Arduino.
Omegalfa: Are you thinking in increasing the compatibility? What about a PlayStation or Xbox controller?
TwBurn: I don’t own those myself, so it’s hard to test it out. But with some programming knowledge it should be fairly straightforward to get them to work.
Omegalfa: You faced many difficulties for sure until you got a satisfying result. Can you tell us the biggest ones?
TwBurn: The biggest issue was getting the USB controllers to work without lag. The communication to the CD-i player is very slow (in the order of 40 updates/second) so the USB buffer would fill up while transmitting the current state, introducing “lag” – ie the cursor would keep moving for a bit even if you let go of the stick.
In the end I solved this by implementing the communication to the CD-i player myself, instead of relying on a serial library. The serial library would block while transmitting, while my own code works of timer interrupts, which doesn’t block the execution of code.
Omegalfa: How difficult do you think it is for a rooky to build one using your open-source in a scale between 0 to 10? How long would it take?
TwBurn: Provided you got the parts, basic soldering skills are required to build an adapter, shouldn’t take more than an hour or two. If you use controllers where there’s already code for, no programming experience is necessary, only install the Arduino suite to load the software onto the Arduino. If you have a controller that’s not yet implemented, a bit of programming experience is handy, but I’d be happy to help in those cases.
Omegalfa: Do you sell them? Already mounted?
TwBurn: I’ve sold a few so far, I still have parts left, if anyone is interested, I’d be happy to build a few more. I put them in a small case and a CD-i connector, so they’re ready to use. You’d only need a micro-USB cable to supply power to it.
Omegalfa: For many people, just making the USB2CDi would be a giant task, for you it wasn’t enough. So you decided to jump into a new challenge, create a new CD-i game!
The 1st homebrew CD-i game was Frog Feast back in 2005 by Charles Doty (Rastersoft) and many years later Gameblabla made Super Quartet in 2019, still under work (need to solve sound and other minor issues).
Why?
TwBurn: Because it seemed a nice and fun challenge, It hadn’t really been done before, and I was curious if I could pull it off.
Omegalfa: We are talking about a Bomberman style game but with a female character. Did you had already the idea in mind of this kind of game?
TwBurn: No, Initially I wanted to build something else first, but that would need more features, like scrolling. So I decided I’d make a more straight-forward game first, Bomberman seemed like a good idea, tile based, no scrolling, simple gameplay. While making the game I’d get more ideas and added those into it as well. So even at the moment there’s a lot more in the game than I originally planned.
I’m bad at graphics so I used open game assets, and I liked the style of both the tiles and the game character, so I took those.
Omegalfa: Nobelia is the game’s name. Any reason for this name?
TwBurn: It’s a wordplay on “Nobel” – as in Alfred Nobel, the inventor of dynamite. Nobelia can either refer to the female protagonist or to the mystical land she finds herself in – you can pick which you prefer for yourself 😉
Omegalfa: As professional programmer, this is your 1st game attempt?
TwBurn: Yes and no. I once made a version of Pac Panic for a 8k (iirc) javascript challenge (8K for the HTML, Javascript and images combined) – and at university we made a (multiplayer) game with cars that shoot vegetables at each other. But those are all ages ago.
Omegalfa: The game looks amazing!
A Demo version will be very soon available publicly with a free download and burnable on a CD-R.
Are you thinking in publishing it?
TwBurn: I might, I’m currently still thinking about where I want to take the game. The demo has 4 levels, each with it’s own “gimmick”, I’m not sure how many levels I’d want for a full game, and how I can keep them all interesting given the limited size of the screens. I might make a boxed version if there’s interest in that.
Omegalfa: I just can’t imagine how difficult it has been to just reach the 4 playable levels.
Can you tell us the biggest difficulties you faced?
TwBurn: Biggest hurdle was getting started, getting a development environment running and setting up the code to boot into a game. All the tools are severely outdated.
The rest was pretty straight forward, though the loading of assets and sound/music were the biggest problems.
Omegalfa: Cdifan, the man behind the CD-i emulator did helped you on both Nobelia and USB2CDi, would it be possible to, at least, make Nobelia?
TwBurn: Well, it certainly would have taken a lot longer, and I might not have figured everything out by myself.
Cdifan helped a lot with the coding aspect, giving hints on how to tackle certain problems.
Omegalfa: The documentation are enough? What would you like to see available to turn it easier for future people interested in making a CD-i game?
TwBurn: Once you have found all the documentation, and have a reasonable programming experience, it’s pretty understandable. The main issue is the outdated tools and compiler and such. They don’t run on modern PC’s, require a 32-bit Windows (VM) – and the compiler can be quite finicky/buggy at times.
Also testing the game can be tough. CD-i Emulator is a great help, since I don’t want to burn a CD-R for each build.
Omegalfa: How many levels the game will get?
TwBurn: I’m not sure yet, will depend on how many levels I can make without them becoming stale/repetitive.
Omegalfa: Are you going to add extra features on it?
I mean 2 players (head-to-head)? High scores? Options (music/SFX on/off and difficulty)? Credits page?
TwBurn: This one will remain one player, it’s more of a single-player-adventure kind of game than actual Bomberman at the moment. No scoring system, I wouldn’t know what would be an interesting way to assign scores to this. Options maybe if they would add something. I do plan on adding some buttons to the title screen, maybe a level select or a save feature. The demo doesn’t have lives, I don’t think I’ll add those because I feel that’s just artificial difficulty. I will remove the “resurrection” feature that’s currently there (if you press button 2 when you died, you’ll resurrect at the same place)
Omegalfa: Is the final version going to need the Digital Video Cartridge (DVC) for the extra memory?
TwBurn: No, I don’t think there will be a lot of things added that will require more memory. Levels are very small and only loaded in when needed.
Omegalfa: You are known as TwBurn on the web. The Discord server did helped in getting fast answers. How do think the people’s involvement and reaction about the Philips CD-i is getting outside the community?
TwBurn: The Discord really helped, I love that as a way for fast communication, so I was lucky that started around the same time I started building the game.
There are some phenomenal people on there, with very intimate knowledge of the hardware and software side of the CD-i, a great love for the system and the willingness to share and help others with their knowledge. Those really make the community.
The CD-i community seems quite segmented, there are a few different sites, Facebook and discord, for the (small) total size of the community this can be a bit challenging, to reach the right people.
Omegalfa: Thank you very much for the time you spend answering the questions.
What would you like to say to future interested people in developing CD-i homebrew titles?
TwBurn: Give it a go, it’s a lot of fun and if you get stuck there’s a lot of people, including me, that are willing to help! In all honesty I hope to inspire other people to take up the gauntlet and do some hardware/software development for the CD-i.
Thank you very much for your time Jeffrey, good luck with the development of this game and who knows… maybe another one in the future!
omegalfa 08/05/2021