raphnet.net banner

Welcome

twitter@raphnetlabs
Contents: News | About me | Why this site?

News

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.
Raphnet adapter manager: Version 2.1.16 now released image
  • New 3.6.0 firmware for N64/Gamecube to USB adapters (adds Gamecube keyboard support)
  • Add support for GC/N64 to USB adapters v3.6.x
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
Maintenance:
  • Support for adapters running firmware version 3.6.x
Game Boy Camera save RAM photo to PNG image
Game Boy Camera save RAM photo to PNG
October 31, 2018 (Wednesday)
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.
Raphnet adapter manager: Version 2.1.14 now released image
  • New firmware for the DB9 to USB adapter (version 2.0.2):
    • Add an SMS mode (alternate product ID and name)
  • New firmware for the Wii accessory to USB adapter (version 2.1.1):
    • Add 8bitdo SF30 support
    • Report the controller type as Guitar instead of Classic controller when a guitar is connected.
    • Set unused/meaningless axes to zero when using a guitar.
  • New firmware for the Classic controller to Gamecube/Wii adapter (version 1.2):
    • Compatibility fix for the 8BitDo SF30 and other similar controllers.
    • Add basic Nunchuk support (Stick, C and Z mapped to Gamecube Stick, B and A)
  • Transfer pak: Add support for reading/writing Gameboy Camera ram
  • Fix a bug where a Gamecube controller to N64 adapter would be detected as an SNES controller to N64 adapter, but only when a Gamecube controller was connected.
  • Display the correct controller type when a Guitar is connected to a Wiimote accessory to USB adapter.
RC2018/09: Conclusion image
RC2018/09: Conclusion
October 2, 2018 (Tuesday)
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...
Raphnet adapter manager: Version 2.1.12 now released image
  • New firmware for GC/N64 to USB adapters (Improve force feedback/vibration)
  • Add support for the N64 to GC/Wii adapter version 2
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
RC2018/09: Modem monologue
September 14, 2018 (Friday)
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
RC2018/09: Flash chip emulation
September 13, 2018 (Thursday)
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
RC2018/09: My first SNES program
September 10, 2018 (Monday)
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
RC2018/09: Let's look at the 'game'
September 2, 2018 (Sunday)
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.
Raphnet adapter manager: Version 2.1.10 now released image
  • New firmware for the Megadrive to USB adapter: Now supports the Sega Megamouse
  • New firmware for Saturn to USB adapter: Adds the 3 mappings (SLS, SLS-Alt and VIP) from version 2. (Great for PS3 use)
  • Support for Saturn to USB button mapping selecting (choice stored in the adapter)
My Retro Challenge 2018/09 project image
My Retro Challenge 2018/09 project
August 28, 2018 (Tuesday)
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.
Raphnet adapter manager: Version 2.1.6 now released image
  • Add PSX to USB adapter support
  • Add Saturn to USB v2 adapter support
  • Add DB9 to USB adapter support
  • Support PSX memory card read/write through multitap (port 1)
  • Add firmware update v1.1 for Classic controller to GC/Wii adapter
  • Add firmware update v2.1 for SNES controller to GC/Wii adapter
  • Command-line: Add Gamecube and N64 keyboard poll tests (--gc_pollraw_keyboard and --n64_pollraw_keyboard)
  • Command-line: Add Wii Classic Controller raw poll test --wii_pollraw
  • Command-line: Add Playstation controller raw poll test --psx_pollraw
  • Command-line: Add --si_txrx to send arbitrary byte sequences to a GC/N64 controller/peripheral. (for research)
  • Command-line: Add --n64_crcd and --n64_crca to calculate CRCs (for research)
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
Bugfix/maintenance:
  • 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
My Retro Challenge 2018/04 project
April 24, 2018 (Tuesday)
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)
Raphnet adapter manager: Version 2.1.5 now released image
  • Add support for new NES to USB adapters (v2)
  • Add support for Classic controller to Gamecube adapter update (through GC to USB adapter)
  • Finalize PCEngine to USB adapter support (soon to be released)
  • Command-line: Add --gc_getid and --gc_getorigins
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
raphnetraw plugin: Version 1.0.4 released
November 22, 2017 (Wednesday)
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)
Raphnet adapter manager: Version 2.1.3 now released image
  • Firmwares are now bundled with the adapter manager
  • Add Wii accessory to USB adapter firmware version v2.1
  • Support for Wii accessory to USB adapter v2.1
  • Firmware update UI improvements:
    • File chooser opens in the directory containing firmwares compatible with the current adapter
    • Firmware file preview: Shows the release date and release notes for the selected file
  • Add missing dfu-programmer.exe (for firmware updates under Windows)
  • Add support for an old adapter (GCN64USB v2.2)
  • Add missing icons for file dialog
Raphnet adapter manager: Version 2.1.0 now released image
Support for new adapters:
  • Add support for raphnet SNES to USB adapter v2.0 (w/advXarch)
  • Add support for raphnet Dual SNES to USB adapter v2.0 (w/advXarch)
  • Add support for Wii accessory to USB adapters (WUSBMote) v2.0 (w/advXarch)
  • Add a N64 memory card stress test (command-line only)
raphnetraw plugin: Version 1.0.3 released image
Bugfixe(s):
  • 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
Adapter manager: Added support for the N64 Transfer Pak image
Add support for the N64 Transfer Pak:
  • Read ROM from ROM-Only, MBC1, MBC3 and MBC5 cartridges.
  • Read/Write save RAM for MBC1, MBC3 and MBC5 cartridges.
Booterify version 1.3 image
Booterify version 1.3
March 1, 2017 (Wednesday)
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...)
GC/N64 controller to USB adapter manager updated image
GC to N64 adapter management support:
  • Displays the firmware version
  • Displays some configuration parameters (currently read-only)
  • Firmware update functionality
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
raphnetraw plugin v0.9.4 now available
December 3, 2016 (Saturday)
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
My projects now on GitHub
November 19, 2016 (Saturday)
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
New DOS game for retro PCs: RATillery
September 5, 2016 (Monday)
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
Video Game Memories
May 1, 2016 (Sunday)
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
Computa games
April 13, 2016 (Wednesday)
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
PPUSBCOMM: Added disk image transfer
March 19, 2016 (Saturday)
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
Raphnet-tech is now on Facebook
February 28, 2016 (Sunday)
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
CGA to VGA converter using an FPGA
November 28, 2015 (Saturday)
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
The colors of video game consoles
June 24, 2015 (Wednesday)
An exercise in identifying the exact colors used by some video game consoles.
DIY SMS/MarkIII paddle controller image
DIY SMS/MarkIII paddle controller
March 28, 2015 (Saturday)
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
3D Printing
November 22, 2014 (Saturday)
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
AnodeSNES
September 7, 2014 (Sunday)
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.

Features:
  • 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
wusbmote: Update (Version 1.2)
May 4, 2014 (Sunday)
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
wusbmote: Small update (Version 1.1)
April 26, 2014 (Saturday)
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
3 Channel video buffer
April 13, 2014 (Sunday)
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
APF TV Fun console repair
March 17, 2014 (Monday)
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
VirtualBoy controller to USB adapter
March 1, 2014 (Saturday)
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
Repairing a Commodore 64
December 21, 2013 (Saturday)
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
Zaisu
December 8, 2013 (Sunday)
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
Dreamcast controller to USB adapter ready
November 2, 2013 (Saturday)
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
GC/N64 to USB : New pictures
October 10, 2013 (Thursday)
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.
USBTenki version 2.1.0 released image
USBTenki version 2.1.0 released
September 22, 2013 (Sunday)
  • [Firmwares] Updated V-USB to newer version.
  • Add support for high precision MS5611 pressure sensor.
  • Add support for the MLX90614 infrared temperature sensor.
  • RTD temperature calibration has changed (increased precision).
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
GC to NES v1.1.1 released
September 2, 2013 (Monday)
A new release incorporating minor changes to support the Atmega168 MCU.
Famicom controller to NES adapter image
Famicom controller to NES adapter
September 1, 2013 (Sunday)
An adapter for using Famicom controllers on a NES.
AcrylicSNES image
AcrylicSNES
July 6, 2013 (Saturday)
A four-player SNES to USB adapter made from acrylic and wood.
A frame for Tatami mats image
A frame for Tatami mats
July 4, 2013 (Thursday)
A simple tatami frame design, easy to build, to hold 5 tatami.
Book Bench image
Book Bench
June 30, 2013 (Sunday)
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
New: Gamecube controller to NES adapter
February 10, 2012 (Friday)
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
Project: Gamecube controller to N64
August 16, 2011 (Tuesday)
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
Project: Sega Saturn to USB adapter
July 2, 2011 (Saturday)
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
HPD-200 Sega paddle support
June 11, 2011 (Saturday)
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.
USBTenki version 1.7 now available image
USBTenki version 1.7 now available
August 16, 2010 (Monday)
New software to support an additional atmospheric pressure sensor and fix for a low temperature bug occuring with the MCP980x sensor.
New firmware for X2Wii N64 version image
New firmware for X2Wii N64 version
June 8, 2010 (Tuesday)
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.
USBTenki: USB-Connected temperature (and more!) sensors image
This project makes it possible to read a variety of sensors using an USB port.
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
NES/SNES controller to Gamecube/Wii adapter
February 28, 2007 (Wednesday)
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
Repairing an Atari 130xe
November 26, 2006 (Sunday)
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
NES/SNES controller to USB adapter
July 10, 2006 (Monday)
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
Using an SNES mouse on a PC
April 2, 2006 (Sunday)
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
Projection clock
January 31, 2006 (Tuesday)
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
Solder fume extractor
January 2, 2006 (Monday)
I build a solder fume extration system to prevent breathing too much bad stuff when soldering.
Homebuilt anemometer image
Homebuilt anemometer
October 30, 2005 (Sunday)
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
Reprogrammable Genesis/Megadrive cart
October 23, 2005 (Sunday)
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
AdLib sound card on parallel port
September 5, 2005 (Monday)
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
Reprogrammable NES cartridge
April 22, 2005 (Friday)
I modified a NES cartridge to be able to reprogram it.
SNES APU on a parallel port image
SNES APU on a parallel port
November 29, 2004 (Monday)
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
Caller-id for PC
April 19, 2003 (Saturday)
How I added a serial port to caller-id module to record the data on my PC.
DTMF decoder image
DTMF decoder
March 17, 2003 (Monday)
Building a DTMF tone decoder for use with a PC through an RS-232 port.
Phone audio interface image
Phone audio interface
March 4, 2003 (Tuesday)
How I built a phone audio interface.



goto top


About me

Hello, I'm Raphaël Assénat. I live near Montreal, a city located in Quebec province, Canada. I have two big passions in life: Computers and Electronics. Those two disciplines allows me to quench my desire to create things, my curiosity, and my desire to learn. I'm always working on many projects at the same time and I do not have enough time to do all the projects I'd like. But fortunately, once I begin working on a project, I rarely stop before it's finished.

Programming is my main hobby, and I doing it in C and assembly. Preferably on Linux or Unix platforms. I'm not interested at all by windows programming. What I like the most is when I have the chance to work on projects involving both programming and electronics. For instance, writing software to drive external circuitry designed by me, or even better, programming microcontrollers.

Other than computing and programming, I like to read, play piano and relax by playing RPG video games. (And thus many projects on this site are related to video games...)


goto top


Why this site?

  1. For sharing my knowledge with others.
  2. To have a presence on the net (Hey! I got my job thanks to this website).
  3. Being a geek, the idea of creating a personal website seemed to make sense.
  4. For fun!

goto top


Any trademarks used on this site are the property of their respective owners.
Copyright © 2002-2018, Raphaël Assénat
Website coded withWebsite coded with vimLast update: March 25, 2018 (Sunday)