Hello, I'm Raphaël Assenat. I grew up near Montreal, Canada. I have always had a strong interest for computers and electronics, and over the years, I completed several projects in those fields. I setup this website to share some of them.

What I find most enjoyable is using C and assembly to program embedded systems (micro-controllers) and video games for old consoles and computers. I also love video games from the 80's and 90's, which is why a majority of my projects also have something to do with with games...

I just hope that you will find something useful here, or otherwise worthy of interest. Cheers!

Support me!
Buy Me a Coffee at ko-fi.com


Raphnet adapter manager: Version 2.1.30 now available image
Improved the user interface for two player adapters and added a new firmware. Details:
  • Add Famicom controller to USB adapter firmware v2.2 (Adds two player and SNES controller support)
  • On two player adapters, also display the controller type detected in port 2.
DONKEY.SMS for Windows and Linux image
A PC version (Windows and Linux) of my DONKEY.SMS Master System game is now available. No emulator required. Can be played using a mouse, keyboard or a game controller.
Raphnet adapter manager: Version 2.1.29 now available image
  • Should fix most cases of Failed to open adapter under Windows when using RGB lighting control software, such as RGB Fusion, G HUB, Windows Dynamic lighting, etc...
  • Add Dreamcast to USB adapter firmware v2.1
Box design for SKBN image
The physical edition of my game SKBN does not include a box at the moment, but I designed a box for customers willing to print one at home.

flat box artwork
SKBN v2.0 (SMS game) image
After about a year of working part time on this project, version 2 is finally ready!
  • Added 100 raphnet levels (mostly very easy)
  • Added more levels by Jacques Duthen, previously unpublished: Sokogen-990702, Sokogen-990917, and Sokogen-991123
  • Updated the title screen
  • Added options and credits screens
  • Add themes: New (V2), Mac and Ksoko. V1 theme still available.
  • Change keys in-game: Button 1 opens the menu, Button 2 undos the last push.
  • Support for point mode (with path finding)
  • Support for the Sports Pad and the Mega Mouse
  • Add background music (can be turned off in the options)
vspcplay version 1.4 released image
  • Add an option to output a Wave file (--waveout)
  • Add options to mute/unmute specific channels (--mute and --unmute command-line options)
  • Add keyboard controls (1-8 to toggle mute, 0 to toggle mute all/none, N/P to play next/previous song, R to restart song, ESC to quit)
  • Fix a bunch of buffer overflows, fix warnings, some code cleanup...
Extenmote 2.2.1 released image
  • Add an option for Gamecube controllers where the L/R buttons are triggered early using the analog reading from the L/R sliders. This option is toggled with A+B+X+Y+L and is remembered between power cycles.
Raphnet adapter manager: Version 2.1.26 now available image
  • New Classic controller to USB adapter firmware version 2.2.7:
    • Add an option to invert the Y or X joystick axis.
    • Mouse mode: Wii Guitars now supported.
    • Mouse mode: Add an option to disable Nunchuk scrolling.
    • Correct values used for D-Pad as axes option (was broken since v2.2.2)
  • New PSX Controller to USB adapter firmware version 1.0.2:
    • Add support for the PSX Analog Joystick (SCPH-1110). Should also work for the Dual Analog Controller.
    • Add support for the Playstation mouse (SCPH-1030)
    • Use slower timing when poll interval is >= 10ms. With this change, some 3rd party controllers may work.
Super Sudoku version 1.1 image
I released a new version of my Homebrew Sudoku SNES game. The changes are:
  • Use an opaque background on the grid to (hopefully) avoid eyestrain
  • Also use less bright colors on the grid.
  • Slow down the background scrolling to (hopefully) make it less distracting.
raphnetraw plugin: Version 1.0.7 available for Project 64 image
  • Fix controller swapping for some games.
  • Show a message box when attempting to configure the plugin. (contributed by CEnnis91)
SKBN v1.4 (SMS game) image
Correct the spelling of 'Dimitri & Yorick'
Arcade Volleyball for SMS image
When I learned that the C source code for the Amiga version of Arcade Volleyball was available, I immediately thought, why not port this game to the SMS? It should be a nice little week-end project! (and it was!)

This game was inspired by Pong so I added support for the Sega HPD-200 Paddle. But even with standard controllers, it's a lot of fun, especially when played between friends!
SKBN: A Sokoban clone for the Sega Master System image
For the smspower.org 2021 coding competition, I made this Sokoban clone for the Master System. Contains over 1000 levels and saves the progress in the cartridge.
SD-Cart JR: New software released, improved boot ROM image
  • BIOS : Improvements for co-existing with another hard drive BIOS. By default, the SD-Cart JR becomes the last drive in the system. (tested only with JR-IDE)
  • BIOS : Add an options menu to allow non-default behavior, such as:
    • Installing the SD-Cart JR as the first drive in a system with another hard drive BIOS (existing hard drive becomes second hard drive and remains accessible)
    • Installing as single drive (other hard drive not accessible)
    • Not installing the SD-Cart BIOS.
    • The option menu count down can be skipped by pressing ESC.
  • sdcart.sys : Add support for command-line options /Y (always install) and /A (install only if card present). Also displays the drive letter it got assigned to on DOS 5.
  • sdpart.com : Add a 'b' command for some BIOS tests. (for debugging purposes)
Versions: sdpart.com v0.5, sdcart.sys v0.5, bios v0.41
New firmware version (3.6.1) for GC/N64 to USB adapters image
  • Alter timing so the brawler64 wireless gamepad will work. Those will now work with a poll interval >= 2ms on single port adapters, and >= 4ms on dual port adapters.
  • Add a feature to swap the main analog stick and the D-Pad
  • Save memory in usb.c (no user visible effects)
  • Correct bootloader entry address (maybe less chances of failing)
DONKEY.GG: Game Gear version of my DONKEY.SMS homebrew game image
The Game Gear portable game system shares a lot of its architecture with the SMS and is supported by devkitSMS. So why not? Here comes DONKEY.GG!
SMS/Mark-III cartridge reader/programmer image
I recently designed a game cartridge programmer/reader for the Sega Master System (SMS) / Mark III / Game Gear ecosystem, because I wanted to program the SMS and Game Gear flash cartridges I designed, but as it turns out, it is also quite useful to try out games from my cartridge collection in emulators.
Reprogrammable SMS and Game Gear cartridge PCBs image
For a game project, I was called upon to design the cartridge circuit boards for SMS and Game Gear I present in this article. My design includes a 512 kB Flash chip, has a CPLD-based mapper and allows saving scores/progress directly on Flash. (code available on github.com)
DONKEY.SMS version 1.2 image
Compatibility fix for Megadrive controllers
SD-Cart JR: 3D-printed enclosure image
I previously shared .STL files for printing an enclosure, but the model was not tested it in real life. So I ordered a print from a commercial service, made out of nylon using an SLS process. The result is very good and everything fitted without rework.
DONKEY.SMS: A game for Master System inspired by DONKEY.BAS image
I needed a test ROM for a Master System cartridge and wished to learn about game programming for SMS. So I had fun making this little game.
SD-Cart JR: New software released image
Compatiblity improvements and fixes.
  • sdpart.com / sdcart.sys : Add retries reading MBR (fixes some non-working cards)
  • sdcart.sys : Use CMD13 (Send Status) instead of CMD10 (Read CID) to detect card changes (Solves occasional errors with some cards)
  • sdpart.com : Add more error checking, display card info before reading MBR, so at least some info is displayed if the read fails.
  • BIOS : When reading a sector fails, it is retried at least once. (Fixes issues with some cards where drive C: would not be available)
Versions: sdpart.com v0.4, sdcart.sys v0.3, bios v0.30
QuickSilver cartridge for PCjr - A look at the BIOS patches it includes image
When inserted, this cartridge makes a PCjr boot faster. For fun this week-end I examined in detail what changes it makes to the PCjr BIOS to achieve this.
Megadrive/SMS controller adapter and 64 kb EPROM cartridge PCB for my MSX image
The RetroChallenge ended many months ago, but that did not stop me from continuing to experiment with my MSX computer. I recently completed two projects: First a 64 kB EPROM ROM cartridge PCB, to avoid long cassette load times for a game, and a Megadrive/SMS controller adapter, because I did not own a joystick. Follow the link for pictures, wiring tables and schematics.
RetroChallengeRetry 2020/04 image
There is an unofficial RetroChallenge this month, the RetroChallengeRetry! So I bought a kind of computer I know nothing about and have zero experience using: An MSX computer. My goals: Make it work, play games, and if I have time, program something on it!
PCjr cartridge PCB version 3 image
I recently updated my 64k PCjr cartridge PCB design to offer greater flexibility. It can now use any Chip Select, can replace the system BIOS and now also supports 32k chips.
StellarRoads: Platform game for PC (DOS)  image
StellarRoads is a 2D scrolling platformer where you can only go forward and survive by skillfully controlling the vessel's speed and jumping right on time!

Heavily influenced by the well known 1993 classic SkyRoads by Bluemoon, StellarRoads can be seen as a sort of 2D "demake" of SkyRoads.

Platform: DOS (or DOSBox)
Video modes: VGA, Tandy or CGA
Sound: PC Speaker, Tandy or Adlib

Carefully coded in x86 assembly to run well original hardware, even at only 4.77MHz with CGA. I hope this game will be yet one more game worth enjoying on your retro PCs!
Boxed edition of RATillery (DOS Game) now available from Côté Gamers! image
A physical edition of RATillery, including a box, the game on floppy and a set of postcards can now be ordered from Côté Gamers.

The game in this edition is a new version with many improvements over the free version:
  • VGA 256 color suport (320x200)
  • VGA 16 color support (640x480)
  • AdLib, OPL2LPT and Tandy sound support
  • In-game timer (those who thing too much loose their turn!)
  • Training mode (get better through challenges)
  • A much stronger AI adversary (for playing alone)
Do not miss your chance to add this physical edition of RATillery to your collection! Visit the Côté Gamers product page for more information.
M0100 Mouse adapter for Apple IIc image
None of my Macintosh M0100 mouse would work on my Apple IIc, so I corrected the problem by building a simple adapter. Pictures, schematics and ready-to-use adapters available.
SNES to Megadrive/Genesis adapter: Firmware version 1.6 image
  • Add a new mapping (SNES 6 - Hold R)
First project documented for RC2019/10: PCjr cartridge image
This month, for the RetroChallenge, I'm trying to finish and document a few projects. Here is the first one: A PCjr cartridge PCB project with a 3D-printed enclosure, and a cartridge version of Alley Cat for the PCjr!
Booterify version 1.6 image
First version able to convert executables to PCjr cartridge ROMs.
  • Bios parameter block and output file padding can now be disabled using -f 0
  • Add the jrromchk tool, to convert between .JRC and raw PCjr ROM formats
  • Add a loader for PCjr cartridges (pcjrloader.asm)
RetroChallenge 2019/10 image
October 2019. It's already time for another RetroChallenge!

Lately and this month in particular, I've been and will be very busy... While this did not stop me from working on a few retro gaming and computing projects, I have not taken the time to finish them and document everything on my website as I usually do... So! That's exactly what I hope to acheive this month: Finish, document and publish a few projects.
raphnetraw plugin: New version available for mupen64-plus image
Maintenance for mupen64plus only: (for project64, see previous releases)
  • Update to input plugin API 2.1.0
Now on Kickstarter: A Boxed edition for my DOS game RATillery image
A Kickstarter campaign is in progress for a professionlly printed high quality edition, including a box, a 40 pages manual/making-of, a 3.5inch floppy disk containing the game + extras.

The game itself is a new version with many improvements over the free version:
  • VGA 256 color suport (320x200)
  • VGA 16 color support (640x480)
  • AdLib, OPL2LPT and Tandy sound support
  • In-game timer (those who thing too much loose their turn!)
  • Training mode (get better through challenges)
  • A much stronger AI adversary (for playing alone)
Do not miss your chance to own this new high quality physical edition of the game!

Please back the project on Kickstarter.
Famicom network controller HVC-051 image
Documenting the protocol of the HVC-051 controller for Famicom.
RC2019/03: Project completed! image
I finished my RetroChallenge projet just in time! I built a cartridge and the ROM version 1.0 is available for download.
RC2019/03: Super Sudoku ROM version 0.3 released image
In this week's update:
  • Part 14: Testing the cartridge PCB: It works!
  • Part 15: Adding sound effects
  • Part 16: ROM Version 0.3 available for download.
RC2019/03: Super Sudoku ROM version 0.2 released image
The game is almost complete! New in this release:
  • Standard controllers supported
  • Better hint function
  • Automatic Sudoku solver
  • In-game clock
RC2019/03: Designing PCB for the cartridge image
This week, I designed a PCB to build a cartridge for my SNES Sudoku game. Now waiting for the boards... I hope they'll work!
Wii graphics tablets data format image
As far as I know, two different types of graphics tablets were made available for Wii and for a project I'm working on, I need to be able to communicate with both models. So I acquired them and figured out how they communicate. The process is documented on this page.
RC2019/03: Super Soduku! (ROM now Available) image
My Sudoku game for SNES is progressing well! Many updates this week:
  • Part 3: Using a sprite
  • Part 4: Issues on real hardware
  • Part 5: Validating moves
  • Part 6: Hints
  • Part 7: Sudoku puzzles
  • Part 8: A first relase (v0.1) - Test it!
  • Part 9: New goals
RC2019/03: Super Sudoku 2019! image
For the March 2019 edition of the RetroChallenge, I'm making a Sudoku game for SNES, with NTT Data Keypad support (a controller/numeric keypad combo). In this post, I talk about my development tools, I set goals and start working on the game.
My Retro Challenge 2019/03 project image
In the previous edition (RC2018/09) I learned a bit of SNES programming, but all I did was a controller test ROM. So for RC2019/03, to avoid forgetting what I managed to learn about 65816 assembly language and SNES architecture, I intend to put my skills to use to make an SNES game, something I've always wanted to do!
Booterify version 1.4 image
  • Initialize the command-line fields of the PSP correctly for .COM executables. (Use length of 1 and add a 0D terminator instead of zero'ing everything)
  • Implement int 21h,02 (DOS putchar)
  • Add a version string in the loader and in the tool
  • Add a makefile for cross-compiling the windows version with MXE
Extenmote 2.1.1 released image
  • Add a new button mapping. (Enabled with L+R+Z+Joystick_down)
  • Improve joystick analog range in 'high resolution' mode.
  • N64: ZL and ZR are not longer tied. By default, only Zr is used now. The old combined behavior can be toggled with L+R+Z+Joystick_up.
Opl2lpt, The hard way. image
Back in 2005, I built an interface to control an ISA AdLib card with a parallel port. I recently noticed that my design is compatible with the recent opl2lpt project, so it can also be used with utilities or games with opl2lpt support.
Recently released DOS games with physical editions image
A short page where I attempt to list all recent DOS games for which physical editions have been made or attempted. How many games did I miss?
SMS to MarkIII/SMS-J cartridge adapter image
A project from 4 years ago I never posted: Circuit and 3D-printable enclosure for an SMS to MarkIII/SMS-J adapter.
XHE-3 adapter for PC Engine image
The XHE-3 adapter for PC Engine made it possible to use the XE1-AP analog controller with certain games. I was curious about how this rare adapter worked so I reverse engineered one and built an equivalent. Schematics and printed circuit boards available.
Update: Writing an emulator to play RATillery on Android, part 12 image
I decided to port RATillery (written in 8086/8088 assembly) to Android, but without rewriting the game. Hence the project is to create my own 8088 emulator, and I am attempting to do it entirely using Java.

In this sixth edition:
  • Part 12: Let there be sound! (PC speaker emulation)
Update: Writing an emulator to play RATillery on Android, part 11 image
I decided to port RATillery (written in 8086/8088 assembly) to Android, but without rewriting the game. Hence the project is to create my own 8088 emulator, and I am attempting to do it entirely using Java.

In this fifth edition:
  • Part 11: Being nicer to the CPU (and battery). Where I explain how I stop the game from using 100% of the CPU (or 100% of one core) all the time.
New firmware version (3.5.0) for GC/N64 to USB adapters image
  • Add gamecube keyboard support
raphnetraw plugin: New versions available for pj64 and mupen64-plus image
  • Support for adapters running firmware version 3.6.x
Game Boy Camera save RAM photo to PNG image
Reading the Game Boy Camera save RAM data is possible with a Transfer Pak and my N64 to USB adapter, and to convert this data to standard images I decided to make my own tools. One is a command-line tool for Linux, and the other is a Javascript/HTML5 version which runs locally in a browser.
RC2018/09: Conclusion image
This edition of the RetroChallenge is (already!) over. My overall goal was to learn as much as I could about the NDM24 Modem for Super Famicom, and I think I was successful. I now know enough to write my own code to communicate with it. I also know more about what this JRA PAT "game" was and even modified an emulator to let it run as "well" as it does on real hardware: That is to say that in both cases, the game hits the wall of failing to communicate with its server.
RC2018/09: Modem emulation now works and establishes a TCP connection image
I figured out the missing bits using a logic analyzer and modem emulation finally works! But a the game still needs a server...
RC2018/09: Let's look inside the NDM24 modem image
As I wait for a logic analyser to arrive (to figure out why emulation is not working), I look inside the modem to see what else I can learn and notice a debug port I will probably use.
RC2018/09: Modem monologue image
Modem emulation is half working. JRA PAT sends AT commands, but the answers won't get through yet. I will need to probe the signals on the modem to learn more.
RC2018/09: Flash chip emulation image
I implemented basic (functional I think, but not accurate in terms of timings) flash memory emulation. JRA PAT now gets to the point where it want to communicate with the modem. Now I can start trying to emulate it.
RC2018/09: My first SNES program image
I taught myself a bit of SNES programming and created a simple ROM: a controller test supporting the NTT Data Keypad.
RC2018/09: A start at emulation and some new goals image
This is the second update, where I seriously start working on emulation, but as I also learn that almost everything I intended to find out is already documented, I set some new goals.
RC2018/09: Let's look at the 'game' image
This is the first update, where I connect the modem and keypad controller to a Super Nintendo (yes, wrong region) to see what this is all about. I also manage to dial into another computer and try making sense of the first (and only) data frame sent by the game.
My Retro Challenge 2018/09 project image
My project for this edition: Learn everything I can about the NDM24 modem for Super Famicom:
  • Find out how the modem communicates with the console through a controller port.
  • Learn more about the modem. How fast (or slow) is it? Does it use standard AT commands?
  • Attempt to make everything work in an emulator. (Communication with the modem and modem commands?)
  • Pretend the connection succeeds to see what happens.
  • Attempt to understand the nature of the exchanges between the game and the server.
In other words: I am going to spend several hours working on figuring out how an obscure and (now) mostly useless piece of hardware almost nobody has ever heard of nor cares about works. And I know I'll enjoy it!
Update: Writing an emulator to play RATillery on Android, part 10 image
I decided to port RATillery (written in 8086/8088 assembly) to Android, but without rewriting the game. Hence the project is to create my own 8088 emulator, and I am attempting to do it entirely using Java.

In this fourth edition:
  • Adapting the UI for touch screen interaction
  • Try the Beta app now!
More coming up, stay tuned.
Update: Writing an emulator to play RATillery on Android, parts 7 to 9 image
I decided to port RATillery (written in 8086/8088 assembly) to Android, but without rewriting the game. Hence the project is to create my own 8088 emulator, and I am attempting to do it entirely using Java.

In this third edition:
  • Keyboard support
  • In-game bugs
  • Optimisations for faster emulation (12 times faster)
More coming up, stay tuned.
Update: Writing an emulator to play RATillery on Android, parts 5 and 6 image
I decided to port RATillery (written in 8086/8088 assembly) to Android, but without rewriting the game. Hence the project is to create my own 8088 emulator, and I am attempting to do it entirely using Java.

In this second edition:
  • Tandy 16 color video to Bitmap
  • Implementation errors
  • The title screen works!
Additional sections will be appended to the page in the following weeks.
mobile8088: Writing an emulator to port RATillery to Android image
I decided to port RATillery (written in 8086/8088 assembly) to Android, but without rewriting the game. Hence the project is to create my own 8088 emulator, and I am attempting to do it entirely using Java.

In this edition:
  • Introduction
  • Android and Java
  • General architecture
  • Implementing the CPU
  • A first image
Additional sections will be appended to the page in the following weeks.
NTT Data Keypad for Super Famicom controller (NDK10) image
A while ago I bought a pair of unusual Super Famicom controllers that were part of (or for use with) a Super Famicom modem kit. I had a bit of fun figuring out how they work and this page is the result.
PSX Memory Card Manager: Updated after 17 years! image
  • Now also works under Windows (download the .zip)
  • Support titles in Japanese correctly (convert Shift_JIS to Unicode)
  • Now compiles with Qt4 (with the help of Qt3 compatibility classes)
  • Now built using qmake
  • License updated to GPLv3 (License text now also included)
RC2018/04: RainZapper v2 (Now with CGA and VGA support!) image
Version 2 of the mini-game RainZapper I made for the April 2018 edition of the Retro Challenge is now available. New in this version: CGA and VGA adapter support. Tandy adapters are of course still supported. All these versions are also playable using a mouse, a good (but inferior) alternative to the NES Zapper which requires building an adapter...
raphnetraw plugin: Version 1.0.5 released image
  • Add protection against invalid commands (Fixes errors when using more than one controller pak)
  • Disabled logging (slight increase in performance)
My Retro Challenge 2018/04 project image
I guess I should have written about this at the beginning of the month, but better late than never! Here's what I'm doing for RC2018/04:
  • Design an adapter to connect an original NES Zapper to a Tandy 1000 EX PC.
  • Code a Duck Hunt clone and/or an original mini-game if I find inspiration.
  • Use the Tandy-specific 16 color video mode. (It would be a shame not to!)
And if I have enough time:
  • Also support CGA 320x200 video, and test the game on my XT-clone with a CGA card.
  • Experiment a bit to find out if an unmodified Zapper can also work on a VGA monitor.
  • Let the game also be played using a mouse (speed could be accelerated to make aiming more difficult.)
Things are going quite well so far, so I will most likely have time for the sub quests listed above!
New firmware version (3.5.1) for GC/N64 to USB adapters image
  • Fix never-stopping vibration issues (Dolphin)
New firmware version (3.5.0) for GC/N64 to USB adapters image
New features and bugfixes:
  • Add a triggers as buttons mode for Gamecube controllers
  • Add a disable analog triggers mode for Gamecube controllers
  • Internal changes to workaround a presumed Windows bug (Joystick ID confusion where the second controller stops working or gives an error in the Game controller test dialog)
  • Implement a feature to let the adapter manager query the feature set of the current firmware.
raphnetraw plugin: Version 1.0.4 released image
pj64 plugin version 1.0.4 and mupen64plus plugin version 1.0.1:
  • Add support for the upcoming 3.5.x adapter firmware (2-player adapters won't work properly otherwise)
raphnetraw plugin: Version 1.0.3 released image
  • Fix ports 1 and 3 special version
  • Another attempt to fix netplay (version 1.0.2 did not work)
New firmware version (v2.1) for the Gamecube to N64 adapter image
  • Add a new conversion mode for Joystick values: Extended (where Gamecube values are forwarded to the N64 without transformations)
  • Fix erratic button mashing behaviour in Shadows of the empire
  • Set lock bits to protect bootloader from erasure
Booterify version 1.3 image
Disk images now have a standard FAT12 filesystem so besides being bootable, floppies may also contain extra data (.EXE version of the program, documentation, etc...)
raphnetraw plugin: Version 1.0.1 released image
Add another special build where two-port adapters act as N64 ports 1 and 3. (This is in the hope that the Densha de GO! controller will then work.)
GC/N64 to USB adapter firmware 3.4.0 released image
Performance improvement:
  • New IO request for even lower latency when using the raphnetraw plugins.
  • Reduced memory footprint.
raphnetraw plugin: Transfer Pak, N64 mouse and Bio Sensor support confirmed image
A user tested the Transfer Pak and I was able to test a N64 mouse and the Bio Sensor (for Tetris 64). As I expected, everything already just worked and no changes were required.
raphnetraw plugin v0.9.4 now available image
Maintenance release:
  • Improved structure and separation for easier maintenance of the code shared between the Project 64 and mupen64plus versions of this plugin.
  • Support for the upcoming 3.4.x adapter firmware (will provide even lower latency/overhead)
Extenmote 2.1.0: NES Classic Edition now supported. image
My extenmote project which permits the connection of NES, SNES, Gamecube, N64 and other controllers to Wii remotes (by emulating a classic controller) now also works on the NES Classic Edition. But this needs more testing... Please test and report if you can!
Direct N64 controller access plugins for mupen64plus and Project 64 (Experimental) image
These plugins use the direct controller access feature offered by my N64 to USB adapters (versions 3 and up) to let the emulated game communicate with the controllers directly. As as result, the rumble pak, controller pak (mempak) and potentially other accessories are automatically supported! (Updated: Now for Project 64 too!)
My projects now on GitHub image
In the hope that it will make contributing easier (and therefore less rare), I decided to push many of my projects on GitHub. But I will continue to do official releases on this website, and the option of contacting me by email to discuss anything about a project remains.
New DOS game for retro PCs: RATillery image
RATillery is a simple artillery game inspired by gorillas but written to run even on early PCs. In RATillery, two fireball-throwing rats fight atop stacks of crates in a warehouse. Try the game online, or download it for your old PCs!

Minimum system requirements: 64kb free memory, 64kb free hard drive (or floppy) space, CGA video card.
Adding a component video (YPbPr) output to an SNES console image
Adding an Y/Pb/Pr (also known as Component video) to some SNES models is possible, and my triple video buffer board is perfect for this project. Visit the page for an example.
PC-Booter (re)creation tool: Booterify image
A tool to convert 16-bit .EXE et .COM executables to bootable floppy images without DOS. Can recreate the original experience of some old PC booter games or add a nice extra touch to homebrew retro works.
Updated firmware for the 4 NES/SNES controllers to USB adapter project (4nes4snes) image
New in version 1.5:
  • NES buttons have been reassigned to match SNES buttons. This makes it possible to switch controller type without reconfiguring anything. Works great for RetroPie...
Video Game Memories image
Mini-reviews and screenshots of PC games I played as a child. Did we play the same games? They are all excellent games I invite you to (re)discover on your retro PCs or using DosBox!
Computa games image
25 years ago in the course of the 1990-91 school year, as my third grade class visited the computer room for the first time I remember playing Computa games (FR: Jeux de calcul) by André Normandeau. Today, following an interview with the author, I have the pleasure of relating how this educative math game came into existence, and I am delighted to offer an online version.

Do you remember playing it? Try it with your kids, it's fun!
PPUSBCOMM: Added disk image transfer image
Besides sending files to your retro PC system, PPUSBCOMM can now receive a disk image, writing it directly to a target floppy disk. Similar to ADT (Apple Disk Transfer) targeting Apple II computers, but for PCs. Ideal to recreate system and PC booter games disks.
Raphnet-tech is now on Facebook image
Stay informed about my projects, updates, and raphnet-tech new products by liking the raphnet-tech Facebook page.
Third generation of my GC/N64 controller to USB adapter image
This new version, based on my Multiuse PCB-X board, beats previous versions in performance and features:
  • USB full speed (12 Mbit/s)
  • Very low latency (approx. 6ms worst case)
  • Configurable controller poll frequency (Maximum 500Hz)
  • Firmware update possible and easy
  • N64 mempak read/write
End of page bonus: Latency explained: What is latency, how it happens, how we can minimize it and a raphnet vs. competition comparative table.
PPUSBCOMM: USB to Parallel port file transfer image
PPUSBComm is a tool to copy files from a Linux system with USB ports to a system running DOS with a parallel port. I created this tool to send games and software I download to my Tandy 1000 EX.
Multiuse PCB-X : A small multipurpose PCB with an USB micro-controller image
This USB-specialized circuit board design is inspired from my previous Multiuse Tiny 1 and Multiuse PCB2 projects. This time, since a micro-controller with native USB support is used, it is possible to transfer data at 12 Mbit/s (Full speed) unlike the older designs which, due to the use of a software-only USB implementation (V-USB), were limited to 1.5 Mbit/s (Low speed).
CGA to VGA converter using an FPGA image
I simply wanted to have fun with an old Tandy 1000 EX computer, but the image quality using the NTSC video output was unbearable. The alternative was to use a CGA monitor of course! But as I don't own one, I started looking at how I could build a CGA to VGA adapter, which I was able to build using an FPGA development kit. The project was the perfect excuse to acquire one. See the page for notes, explanations, schematics and source code (at your own risk).
The colors of video game consoles image
An exercise in identifying the exact colors used by some video game consoles.
DIY SMS/MarkIII paddle controller image
Unable to find one at a reasonable price, I built my own Paddle Controller for Sega Master System. Schematics, source code and files for 3D printing are available.
Setting up the stack for SMS games on Megadrive image
A quick hack I made to improve the compatibility of an SMS to Megadrive cartridge adapter by having an AVR micro-controller drive instructions on the bus before the game runs.
3D Printing image
I recently began experimenting with a 3D printer and created a page to expose some of the parts I made. Files in .STL format are most of the time included in case someone would want to print one too.
MarkIII cartridge to Megadrive/Genesis adapter image
When I was designing my SMS (non-Japanese) to Megadrive/Genesis cartridge adapter, I learned that the Japanese version of this console used a different connector (44 pins instead of 50). So I decided to also design an adapter for Japanese cartridges.
AnodeSNES image
A 4x SNES to USB adapter built in a beautiful enclosure machined from a solid block of aluminium with a black anodized finish.
SMS cartridge to Megadrive/Genesis adapter image
I had known for a long time that Sega Master System (SMS) games can be played on a Sega Megadrive/Genesis (SMD) console using a simple 50 to 64 pin adapter, and thought a few times about making one. So when I was told my SNES to SMD controller adapter did not work when a SMS game was being played, it was all I needed as an excuse to design and build an SMS to SMD adapter.
New entry in the NES mods page: Using SNES controllers on a NES image
It has been known for a long time that using SNES controllers on a NES was possible and easy to do using simple wiring. So this is nothing new, but since I recently built such an adapter, I just thought I'd document it on this page.
SNES controller to Playstation adapter image
Schematics and firmware for my SNES controller to Playstation adapter project.

  • Supports original SNES controllers and most clones.
  • Acts like an original Playstation digital controller.
  • Two button mappings are available
wusbmote: Update (Version 1.2) image
New features:
  • Add mouse support (Using Nunchuk or Classic controller)
    • Classic controller mouse scroll using right stick
    • Nunchuck mouse scroll wheel by moving then holding C
  • Configuration now stored in EEPROM. Includes:
    • Serial number
    • Operating mode (Mouse or Joystick)
    • Mouse parameters: Divisor, deadzone, invert wheel.
  • Implement an HID Feature report to set configuration
  • Add a Linux tool to set configuration through USB (Uses hidapi)
  • Change VID/PID
  • Atmega168 now compatible (Use Makefile.atmega168)
  • Code cleanup
NES/SNES/N64/GC controller to Wiimote adapter update (v1.9.5) image
  • New Gamecube button mapping
  • Triple click on START button now triggers the HOME button (SNES/NES/GC/N64)
  • Prevent a 8 bit overflow from occuring with some cheap controller clones. Fixes the 'joystick left/down direction does not work' problem, but keep in mind the overall quality of the controller won't increase. It will work as badly as it does on a real N64.
  • Fix N64/Gamecube communication timing (note: No effect on 'lag' or lantency)
  • Fix eeprom init bug (Last mapping not saved)
  • Improved controller auto-detection
wusbmote: Small update (Version 1.1) image
The Wiimote accessory (Nunchuk, Classic controller, etc) has been updated (simple maintenance):
  • Update V-USB and fixes for modern GCC
  • Optimized I2C code
GC/N64 controller to USB version 2.9.1 image
Minor fixes and improvements:
  • Prevent 8bit overflow from occuring. Helps some cheap 3rd party controllers that have the "Left not working" problem. (Thanks to this fix, those "should never be bought" controllers change from "totally unusable" to "frankly not very good")
  • Fix non-working timeout when waiting for the controller. The adapter now enumerate without controllers as it used to.
3 Channel video buffer image
Having been in need of a video buffer for two projects[1][2] in a row, I thought it would be nice to have a small circuit board with all the required components. So I designed one.
Possible uses:
  • Adding composite video outputs on old consoles.
  • Video amp for video game RGB mods.
  • Video buffer/repeater (eg: To display the same picture on multiple monitors)
APF TV Fun console repair image
A friend entrusted me with an old APF TV Fun videogame console for repair. On the following page, I give details on the repairs and modifications I performed.
VirtualBoy controller to USB adapter image
So you want to play with a Virtual Boy emulator on your PC, depriving yourself the pleasure of adopting an unpleasant posture and of getting a headache? At least, don't go so far as to deny yourself the privilege of holding the real controller in your hands! (Ok, I admit I never really tried a real Virtual Boy. Maybe it's not that bad...)

Anyway, in order to use a Virtual boy controller on a PC, I designed an adapter. The schematics, wiring and source code are on this page.
Repairing a Commodore 64 image
I won a « commodore 64 - working » on a popular auction site. Well there must have been some mistake for the machine I received did not actually work. And I wanted a working C64 right now. Returning it and trying to win another one would surely take too long... So I got a partial refund (« Working » auction converted to « As-is - untested ») and impatiently began the repair.

Visit the page to read about the repair details and an unexpected issue with my LCD TV (+ its complicated solution).
Zaisu image
I own a kotatsu (炬燵), that is a low Japanese table covered by a blanket. An electric heater placed underneath warms the kotatsu. By sitting with the blanket draped over our legs, we manage to keep warm in winter despite the lower house temperature. But sitting on the floor and on your legs tends to become uncomfortable after a while. Also, fully extending the legs under the table to catch more heat is difficult without something to rest your back. The japanese Zaisu (座椅子) chair is a perfect solution. This is like an ordinary chair but without legs. But as these are rather rare here in Canada, except in specialized (and expensive) importation stores, I decided to build my own.
GC/N64 to USB project: Gamecube keyboard support added to firmware v2.9 image
The Gamecube keyboard is now supported and can be used normally under Windows and Linux. Note that I only tested ASCII model ASC-1901P0. This keyboard has a dual-connector cable. The gray connector is for the keyboard function and the purple one for the Joystick function. To use both functionalities simultaneously, two adapters are required. As this is a Japanese style keyboard, there are a few unusual keys and many won't produce the labelled characters unless the PC is configured to use a Japanese Keyboard.
New Dreamcast to USB firmware adds Keyboard support image
New in version 1.2:
  • Dreamcast keyboard support (Tested: HKT-7600 and HKT-4000)
  • Increased poll rate for better responsiveness
  • Display an image on the LCD if present. (Hardcoded image. Not usable by emulators)
The keyboard can be used as a normal Japanese keyboard under Linux and Windows!
Dreamcast controller to USB adapter ready image
The Dreamcast controller to USB adapter I have been working on for the last few weeks is finally ready. The first version supports the official Sega controller. Also, the mouse is partially supported.
SNES controller to Genesis/Megadrive adapter: Update image
New features:
  • Added two new Genesis mappings
  • Added a new Atari mapping
  • Added support for 2nd fire button (Amiga)
  • Added auto-fire for Atari mode (Button 1/Fire). Selectable auto-fire speed 30Hz, 25Hz, 20Hz, 16.667Hz, 15Hz and 12.5Hz
  • Auto-fire lock mode for Button 1/Fire. (Toggled by START)
Dreamcast controller to USB adapter project: Adding partial mouse support image
This week-end I decided to add support for the Dremcast mouse I had received during the week. But for now, it will only be partially supported (no wheel) due to technical limitations.
Dreamcast controller to USB adapter project: Prototype working image
This weekend, I implemented frame reception and USB communication. I now have a working prototype. All that is left is cleaning up the code and drawing a schematic for release.
GC/N64 to USB : New pictures image
A few pictures to demonstrate how a N64 controller can be converted to USB by installing the circuit within.
Dreamcast controller to USB adapter project: Progress, transmission is a success image
I began writing the firmware. First step, implement a transmission routine in assembler to achieve a timing identical (or very close) to what is shown on http://mc.pp.se/dc/, but also to what I see on my Dreamcast bus with the scope. Status: Transmission is a success. But looking at the result on a scope is obviously not very useful, so the next step is implementing reception. More fun to come!
SNES controller to Genesis/Megadrive adapter: Update image
Implemented Atari/Commodore support:
  • Two selectable button mappings
  • Enabled by grounding PB1. Note: A slightly different DB9 wiring is required.
Beginning Dreamcast controller to USB adapter project image
I have received many requests and while I had been looking forward to the challenge of building this adapter, due to other not less interesting projects, it took a very long time before I finally began working on it. This time, following a suggestion and contrary to my habit of only posting projects in their completed form with the source and schematics, I decided to create a build log page I would update as things progress.
SNES controller to Genesis/Megadrive adapter image
If you want to play games on your Genesis/Megadrive console but have a strong preference for SNES controllers, or own many cool arcade sticks for the SNES which you'd like to use, an adapter to connect SNES controllers to your Genesis/Megadrive is exactly what you need.

GC to NES v1.1.1 released image
A new release incorporating minor changes to support the Atmega168 MCU.
Famicom controller to NES adapter image
An adapter for using Famicom controllers on a NES.
AcrylicSNES image
A four-player SNES to USB adapter made from acrylic and wood.
A frame for Tatami mats image
A simple tatami frame design, easy to build, to hold 5 tatami.
Book Bench image
This small shelf, with it's shape evoking a bench hence it's name, Book Bench, lets small books vertically sit on it. Thanks to the reclined position, the books are stable and the need for bookends is done away with, saving up space.
Two NES/SNES controllers to USB adapter image
This is a two player variation of my 4nes4snes project. The firmware is modified to expose only two controllers to the PC, preventing two extra controllers from needlessly appearing if an two player adapter is built.
Extenmote: NES, SNES, N64 or Gamecube controller on Wii or Wii U through a Wii remote. image
The gamecube ports have been removed from the new Wii consoles and the Wii U does not have any. This new project works around the problem by using the Wiimote extension port like the classic controller does. This provides a way to play virtual console titles with the original controllers again on the Wii U and regular Wii consoles (with or without gamecube ports).
2013-01-30: Version 1.5 now available!
wusbmote: Wiimote accessory to USB adapter image
This new project makes it possible to use Wiimote accessories such as the Nunchuk, the Classic Controller and the Wii Motion Plus. Official versions and clones such as the wireless Nunchuk are also supported. Works as is on most operating systems thanks to the USB HID implementation.
USB_Game16: 16 buttons to USB (4 directions) image
A project for using 16 buttons (4 directonals) as a standard USB Joystick. Ideal for custom joysticks and PC-based arcade cabinets.
The 4nes4snes projet now supports SNES multitaps image
The new firmware version 1.3 adds support for the SNES multitap. So far, it has only been tested with a Naki Tribal tap.
New: Gamecube controller to NES adapter image
With this project, it is possible to use a Gamecube controller on a NES. Perfect for a wireless solution involving the Nintendo Wavebird. And in an attempt to profit from the additional elements of the gamecube controller, the firmware has special features such as Turbo and mario-auto-run modes. It's fun!
Famicom controller II microphone support (as a button) image
The Famicom controller II does not have select or start buttons, but it has a built-in microphone! This new firmware makes it possible to use the microphone as a button.
Small project: Plastic bag sealer made from spare parts image
I was looking to ship small electronic components in anti-static bags, reusing the bags I had on hand, but they were all too big. The obvious solution was to cut them to a reasonable size and seal the edges with a bag sealer. However, I did not want to buy one so I built this simple version using components I had in stock.
N64/Gamecube to USB : Rumble Pack / Vibration finally supported! image
The new firmware version 2.0 adds support for the long awaited N64 Rumble Pack and Gamecube vibration feature! Special thanks to Sean Green for providing an updated device descriptor and an example main.c from his own project for me to use and finally implement this feature. Without this, I don't think I would have ever taken the time to add this feature.
Project: Gamecube controller to N64 image
A new project designed for using a Gamecube controller on the N64 console. Provides a way to solve the worn-out N64 controllers, or the problem of cables (Wavebird supported!). The firmware, with programmable button mappings and low latency algorithm insures a smooth gaming experience.
Project: Sega Saturn to USB adapter image
This project makes it possible to use Sega Saturn peripherals (controllers, mouse) on a PC though the USB ports. The current firmware supports the Basic controller, the analogic controller and the mouse (aka. Shuttlemouse)
Projet Gamecube/N64 to USB : Version 1.4 image
Gamecube communication code more robust, increased reliability and compatibility, Japan import white Gamecube controller support confirmed.
HPD-200 Sega paddle support image
Added Sega Paddle support (HPD-200). Auto-detected in DB9 mode. If the circuit is installed inside the controller, the two buttons can be wired independently.
N64 HORI-mini support for the Gamecube/N64 USB adapter project image
New firmware version 1.3 introduces a new algorithm which was specially written to work correctly with HORI-mini N64 pads. This new release also supports changing between N64 and Gamecube controller at runtime (without reconnecting the USB cable). Also, the requirement of having a controller present for the adapter to be detected by the computer is gone.
Forgotten project: USB-Controlled High power RGB LED image
A microcontroller circuit and software to control a powerful 3 color led (Red, Green and Blue) to obtain a variety of hues and intensities, computer-controller through USB. Forgotten for 4 years, I wrote the remaining parts, translated to english and finally published this project.
New firmware for X2Wii N64 version image
With Rumble Pack support! Now for the Atmega88 instead of the discontinued Atmega8.
New 4nes4snes firmware version 1.2 image
  • Added NES fourscore support. At power up only, when a fourscore is detected in port 1, fourscore mode is entered and ports 1 and 2 are used to read up to 4 NES controllers.
  • Implemented Live autodetection. This allows NES and SNES controllers to be changed during use, so power cycling the adapter is no longer necessary. This feature can be disabled by closing JP1.
  • License changed to GPLv2.
New project: Atari Jaguar controller to USB image
With this new project, an Atari Jaguar controller can be converted to USB. It's also possible to build an adapter if you do not wish to alter the original hardware.
Gamecube/Nintendo 64 controller to USB adapter image
A friend wanted to play N64 games on his PC with an original controller... So I built him an adapter to do it, with Gamecube as a bonus. As usual, the project is open-source.
Kenwood IR keyboard to standard PC keyboard (PS2) adapter. image
I received a small wireless keyboard (IR based) meant to be used with a Kenwood audio system. Wanting to use it with a PC instead, I built a receiving that connects to a PC as a standard PS/2 keyboard.
4 Controllers (NES and SNES mix) to USB adapter image
Following my single NES/SNES controller to USB project, I have been asked several times if a multi-player version would be possible. Now I finally found the time to do it.
NES/SNES controller to Gamecube/Wii adapter image
A new project for converting a NES/SNES controller to Gamecube/Wii. The main goal is of course to be able to use the original controllers to play Wii Virtual console games. As usual, the project is open-source.
Repairing an Atari 130xe image
A page about how I brought back to life an Atari 130xe.
Opening of the raphnet.net online store image
I decided to open a small store to answer demand for pre-built versions and kits of my projects. Not many products at the moment, but many are to come!
NES/SNES controller to USB adapter image
Parallel ports are getting rarer these days, so it is about time we find a new port to use for PC interfacing in replacement of the slowly disappearing parallel port. I managed to do an USB version. The solution is fully open-source so anyone with the right equipment and skills should be able to convert a controller or build an adapter.
Using an SNES mouse on a PC image
Nintendo produced a mouse for the SNES. The mouse was sold with a game called Mario-Paint which was a drawing game (similar to paint brush). I still have a Nintendo mouse but I thought it was sad not to use it anymore so I found a way to use it with my PC.
Projection clock image
How I built a simple projection clock from a cheap watch.
Hacking a NES console to play VS arcade games image
In order to improve the low scores I kept getting on the Super Mario Bros arcade, I decided to mod a NES console to make the NES version of SMB run on it. The result: A dedicated Super Mario Bros VS. console, without a cartridge (no bad contacts) with switches on the front panel to tweak some aspects of the game (A user friendly version of dip switches found on the arcade motherboard).
Solder fume extractor image
I build a solder fume extration system to prevent breathing too much bad stuff when soldering.
Homebuilt anemometer image
I wanted to build a measuring instrument which must be placed outside, exposed to the natural elements. So I built an anemometer...
Reprogrammable Genesis/Megadrive cart image
I built a reprogrammable cartridge to be able to try out demos and homebrew games on the real thing. Pictures, schematics, PCB artwork and software tools are all available.
AdLib sound card on parallel port image
I felt like listening to the sound of my old AdLib sound card again, but my computer does not have an ISA slot so I built a parallell port interface.
Reprogrammable NES cartridge image
I modified a NES cartridge to be able to reprogram it.
SNES APU on a parallel port image
A page demonstrating how an SNES audio processing unit can be connected to a PC parallel port for listening to .spc files.
Caller-id for PC image
How I added a serial port to caller-id module to record the data on my PC.
DTMF decoder image
Building a DTMF tone decoder for use with a PC through an RS-232 port.
Phone audio interface image
How I built a phone audio interface.