I'm developing a PIC based USB host solution primarily for the Amiga range of computers, but it will work on anything using the Atari 2600 (VCS) joystick port de facto standard which includes VIC-20 and C64.
The prototype of Wild Port currently supports HID devices (joystick, mouse, keyboard) and hubs on the USB side, it connects to the 9-pin joystick port on the classic computer. There is also a serial RS-232 port for configuration.
Here is a photo of the prototype running on breadboard.
* Standard digital joystick functionality with 3 fire buttons
* Amiga 3-button mouse support with pseudo wheel functionality
* Full CD32 joypad hardware emulation
* Keyboard WASD style joystick implementation
* Serial RS-232 port for button configuration and settings
* Settings can be saved
* WHDLoad compatible
* Fits A600 joystick port
Wild Port is designed with focus on compatibility and reliability for gamers like myself. In order to protect the classic hardware a poly switch (aka PTC fuse) is installed on the 5V line (pin 7) and it uses a transistor solution where the classic computer feeds its own signal to ground, just like a standard digital joystick. However, CD32 joypad support is the exception as it requires additional signalling and communication protocol, but it does behave like an original CD32 controller on the joystick port side.
The "pseudo wheel" feature mentioned for the mouse support relies on FreeWheel
for Amiga, specifically the "Middle Button: Click: Movement -> Scroll" setting enabled which Wild Port emulates and maps to the wheel on the USB mouse, the benefit is that it does not require any additional drivers installed. The wheel works well in some software like Workbench, JanoEditor, and iBrowse, but not so well in others, but neither does FreeWheel standard operation in those cases.
Keyboard to joystick support was added mostly for fun, since it is part of the USB HID standard, but perhaps there are people out there who would like to control the games using a USB keyboard (when only joystick is supported in the game).
The WHDLoad compatible feature was added mainly to point out that Wild Port works on the joystick port hardware level, and does not suffer from the gaming limitations of software based USB stack like Poseidon. There is no software required on the classic computer except a terminal program to optionally configure the device.
The project is in development stage, next up I will be soldering some prototype boards and send out for testing. Schematics is completed but still need to design the final production PCB layout. To allow for hardware hacking, as in easy modification and that true classic feeling; Wild Port will be using through-hole (DIP) sized components on a single sided board layout. I've managed to source the components locally here in Bangkok, but if stock runs out it might be necessary to redesign the board using surface mount technology. Also managed to source cables with contacts which actually fits the A600 joystick port. There will be a case, most likely ABS plastic (roughly sized 120x75x35mm), there are some cool aluminium ones but it just doesn't feel right, it should look like the computers we love.
I'm still allowing for feature creep so any ideas are welcome.
This is also posted here:
Attached prototype schematic.