Showing posts with label amiga. Show all posts
Showing posts with label amiga. Show all posts

Saturday, February 16, 2013

PCBs for USB Datasette and Wiimote2Amiga arrived

My USB Datasette and the Wiimote-Amiga-Joystick-Adapter (now better called "Wiimote2Amiga") finally reached the state of being implemented on professional PCBs using the company PCB-Pool.

2 "USB Datassettes" and 3 "Wiimote2Amiga" Boards are left

USB Datasette

Top: Old version with stripboard and cables. Bottom: New version with just one PCB.
The cables that were required for the connection to the datasette and the C64 itself are now gone and replaced with an edge connector and a female connector. This way it's a little bit more compact and less "wiry".

It even has a "feature" that you get if you design hardware without looking at the port locations.
WHY THERE IS IEC PORT? - Rage-Face from http://alltheragefaces.com
But as the main purpose of the device is the connection to the datasette without the usage of the c64 itself this is not that of a matter.

Wiimote2Amiga

Left: STEITEC Evalkit Version, Right: New PCB with everything in one.
The board equipped to my 1200 with plugged in bluetooth stick.
As this project never leaved the evaluation board before, this was my first circuit board with an LPC1768 controller. And of course this leads to some errors that are clearly visible in the photo.....
The current needed to drive this project is reduced by a fifth to 70mA (@5V) which is great for the Amiga 1200 which has a resistor in series at the joystick port effectively reducing the possible current you can draw.
Also the size of the device is now greatly reduced to 48x48 mm and should be small enough to be placed inside the "rear trap door" of an Amiga 1200 to make it even more compact.
To reduce problems with the C64's sound this board offers the possibility to disconnect the power supply of your computer from the device and a port to connect an external 5V source.

Conclusions

In the past I preferred designing with stripboards as they could be developed and debugged easily and incremental. But the beauty and cleannines of real etched PCBs is just untouchable.
As I had a minimum order quantity with boards as small as this I decided to sell the remaining unequipped boards for the cost price if there is interest.

Of course there is no warranty and I'm a little bit pedantic about releasing source code. ;-)


Saturday, January 5, 2013

Evaluating the Turbo Chameleon 64

On one of my last posts I've mentioned the Turbo Chameleon 64 that I've given myself as a Christmas present for 2012 :3. Also as I started a blog I thought myself it would be cool to review this litte beast.

Reconfigurable computers are something really fascinating. They bring back the devices of our childhood in hardware manner even if the original ones are not existing anymore. (I'm still asking myself If my Amiga is still functional in 2030 :-D)

During the last years a lot of projects were creating implementing a device like this. To name a few:

C-One (2002?) C64, Amstrad CPC, ZX Spectrum and Minimig Port (look below)
Minimig (2007?) Amiga 500 compatible
MMC-216 (?) Amiga 500, C64, Atari 2600, Apple II
Turbo Chameleon (2011?) Minimig Port, C64, ZX Spectrum

The list is very incomplete and I don't claim that it is correct! I might have forgotten some cores and some products.

There are also some other projects on the way that seem to be not complete yet. The natami (Native Amiga) and the FPGA Arcade Replay Board. These seem to have working hardware for developers but not yet anything to sell to customers.

Well again I'm way of. :-D Lets return to the chameleon.

I have to be honest. I haven't bought myself a reconfigurable computer until now. (I've built one 2 years ago... more of that later). As I'm a retro nerd I bought all of my homecomputers in their original hardware as I've feared that the cores aren't really authentic or compatible yet.

Let's see If I was right.

At the time of writing I investigated the state of development with these cores:
  • Beta-8c (nov 22 2012) Chameleon Core as C64 Core
  • minimig core by tobiflexx (may 17 2011) as the first amiga core
  • minimig core by retroramblings (jan 1 2013) as the second amiga core
  • spectrum 48k and 128k core v2.1 by Alessandro Dorigatti. (Oct 12, 2012)
I also use the docking station that let's you connect a real c64 keyboard or an amiga 500 keyboard (haven't tested it though) and 4 joysticks or mice.

My setup. Isn't it cute? Of course it's compatible to my Wiimote-Adapter :3
Even without the docking station you are able to connect a mouse and a keyboard using the ps/2 ports. The tests were made using two very old TFT monitors with 1280x1024 from ~2005 (asus and videoseven) and a samsung hd ready tv from 2007.

Let's dive in !

C64

As it comes preinstalled with the system I first tried this one after first updating it to the latest version. The chameleon is surprisingly flexible as you can use it with or as an c64. Yes you've read correctly.

Originally the chameleon was intended to be a expansion for your already existing commodore. It acts as somekind of mirrored chipset as you can decide which part of your hardware shall be implemented by the original device or the chameleon as it itself implements a sid, a vic II, a 6510 core (speed up) and a floppy station. There is even more but It's not my job to advertise it....

The question is .... do you need it connected to your already existing and working c64.... well....

It sure is an enhancement if you don't own a floppy station as the emulation seems to be really accurate with the games I've tested. But you still have to remember to enable it. Per default, the chameleon copies the program inside the image into the memory and executes it. In case of single loader games this is a quite good solution but not with multi loaders which need a real access to the image.

The SID emulation is quite limited. Even the VICE emulator is more accurate as the filters are missing at the current version. Let's see.... I own a real C64 because I want to have an authentic sound. There do exist hardware solutions for your pc because people in general like an authentic sound. The chameleon is still beta so I'm not allowed to nag about it. I just want to point this one out as I've first read about the limitation inside the manual.

The VIC emulation is accurate as far as I can tell. It's even very compatible to your monitor as you can choose between a few resolutions and frequencies. (The C64 in europe uses PAL. PAL uses 50Hz. VGA is minimum 60Hz). Per default 800x600@72hz is used. This seems to be usable but of course I've tried a little bit to improve. It turned out that 640x480@50 hz gives me an out of range. 640x480@60hz and @72hz gets me a strange crippled display. Any bigger resolution like 1024x768 has the effect that the display of the c64 is reduced to a very small window and the borders get somewhat big. With my setup the best result is archived using 800x600@50hz. This is even the true vertical frequency. I don't understand why @50hz is sharper than @72hz. I guess it has something todo with the monitor cable and inductive disturbance as the frequency is higher. Apart from that I'm happy with the picture. The colors are different but... hey... every C64 has different colors because of manufacturing differences at the analog circuit.
Original video comming from the C64 on a 1084 monitor

At the same time the output of the chameleon
Sadly I get some motion blur during side scrollers. But this doesn't mean the chameleon is bad. It means my TFT monitors are ready to be discarded >:-(.

Apart from that the chameleon is able to act as a third party cartridge. I've tested the "Final Cartridge 3" as I also own a real one. Really helpful for loading acceleration. ;-).

Without a real c64 in standalone mode it's pretty much the same experience as if you would use your real c64 with an chameleon and don't use the original video and audio output. The ps/2 interface does it's job as the keyboard. I haven't tried it but you can use it even as an external floppy emulator using a IEC cable.

Another feature worth to mention is the file browser which lets you operate with d64 files. You can copy d64 images to floppy (very slow!), copy files inside the image, copy files from the image and you can play SID files on the sd card. This features is just AWESOME ... but not yet perfect. I experienced a few files (e.g. Katakis) that are not playable. But I guess this is not the fault of the sid player as this particular file is also not playable with sidplay64. I'll assume it has something to do with the programs loading address of the player program.

--Conclusion--

It works and does it's job. I really need to revisit this one with another monitor someday. At the moment I still prefer my real C64 with accurate sound and with a "high definiton" 1084 monitor as it seems to be the more retro way. Also I like the sound of my "environmental disaster" which is the correct name for the 1541 disk station :-D.

To copy disk images to real floppy the Chameleon is nearly unusable as you copy about 8 images with your XM1541 when the little yellow pal has finished the first.

If you do own a 1084 because you already have an amiga, choose wisely. You still need a floppy station and some games if you go for the real c64. I spent about 95€ on all my c64 hardware if I remember. If you don't like working with floppyedy floppies go for the chameleon. The fact the sid filters are missing is not THAT big of a deal as most of the times you won't hear the difference while playing the game.

Minimig

This was the reason I've decided to buy the Chameleon in the first place. I've got a huge love for my Amiga and wanted to know how well the Minimig core manages to recreate it. I have to say that I have never seen the original minimig in live action. So this is my first time experiencing it with this port.

After putting everything needed onto the sdcard (kickstart and menu code) I started it up and instantly got a problem.
Test of the minimig core with a videoseven tft
As you can see the aspect ratio is wrong and some part of the image is missing. What really saddens me is that this monitor doesn't allow a manual setting of the picture in vertical ways but only horizontal. This way it's impossible to get to the missing lines at the bottom.

The Amiga has the same problem as the C64 if you want to connect it to VGA but in some sort of extended version. The info screen of the monitor tells me it's displaying 640x480@50Hz. This is wrong as it should be something like 640x512. I guess the monitor is unable to recognize the correct resolution and tries to find something similar. But the used mode is not out of range so I still get a picture displayed.

Then I tried it with my asus monitor.

Test of the minimig core with an asus tft
Argh!! The image fits perfectly. The aspect ratio seems to be correct and the picture is complete. But an ugly little window is displayed by the monitor. It says "AUSSER BEREICH" which is german for "OUT OF RANGE". I pressed all buttons but I doesn't want to go away >_<. The Samsung TV on the other hand just shows a black screen with "Not supported mode".

You have a problem here as you should use the amiga in PAL mode for compatibility. An alternative would be the usage of the NTSC mode which apparently solves the issue as it has a native resolution of 640x400@60hz which fits VGA a little bit better. But for what price. The games and their music are running to fast. Not to mention the PAL only games out there.

Apart from that the system seems to work. I can select ADF images, the game starts and I can play. The audio output is of really good quality.

I did have a few problems with the harddrive though. This minimig core offers you to select different styles of harddrive. It could be a HDF file in RDB mode that you might know from WinUAE and you can use a partition or even the whole sd card. The latter ways should be more performant in theory as the overhead of FAT management is not existend...
So I first tried to use a partition of the sd card as a harddisk but I couldn't get it mounted in linux. Keep in mind that you have a MBR partition table inside your sd card. Inside on of the partitions is a harddrive image with another RDB partition table. Linux was unable to understand that. We shouldn't even start talking about windows at the moment. Normally this works as I am able to mount the harddrive of my amiga 1200.......
But after using the HDF file I created with WinUAE everything went ok.

One thing I have to mention is that it is an amiga 500 with a lot of RAM and nothing more or less. Before buying the Chameleon I was used to some programs that need a 68020 as for example the great WHDload launcher iGame (has nothing to do with iPhone or iPad :-P). The core offers the optional cpu core called "020 alpha" and alpha is the name of the game as iGame crashes with the "guru 8000 0008". I'm used to some other type of guru message with iGame which tells you to replace the render.library. But no use here.... I guess the 020 core is still incomplete and a not yet functional instruction is used.

But a launcher is not essential to make WHDLoad work.... and It works as great as I am used to it on my 1200.

One thing I discovered (and should send to the author of the core) is a bug in the ps/2 to amiga mouse emulation that you might want to use if you don't possess a real amiga mouse which is unlikely as they break really fast....
A favourite game of my childhood is "Shufflepuck" which is a funny game about "air hockey". You control your paddle with the mouse and while doing so you do some fast movements with your hand. Now let's get technical:

--- technical stuff start ---
I assume the translation works just like yet another ps/2 to amiga mouse adapter. The adapter collects movement which is stored inside a variable. This variable is dec- or incremented as soon the adapter is able to quadrature modulate the movement to simulate the protocol that is used by normal mouses.
If you have a bad ps/2 adapter this variable is only 8 bit and tends to overflow. This way a fast move to right is converted to a fast move to the left for example. This is why my adapter has a speed setting and a 16 bit variable for the movement collection.
--- technical stuff end ---

So if you allready have a ps/2 adapter for your real amiga use this one as soon you get problems. Of course these do not appear on the workbench. it's just on games.

Now let's talk about compatibility. I've tried some games and a lot were working like a charm. One game that I somehow liked because of the soundtrack from Chis Hülsbeck is "Jim Power". I couldn't get this one working. I tried the WHDLoad version and one ADF image I've found. The ADF version simply crashes as soon a level starts. The WHDLoad one has no enemies :-D !!!! I'm totally unable to explain this.

-- Conclusion --

I really have to revisit this one with some newer monitor. A wrong display is simply annoying. To be fair I think I would get this result even if a put a scandoubler on a real amiga. Maybe it's possible to somehow transfer the video signal to a higher vertical frequency or scale it in hardware. But the first thing will lead to jumps or tearing and second would result into a bad quality. It's pretty difficult to decide here. The displayed picture is pretty sharp if you work with your workbench. It just reminds me of ... WinUAE :-D

There is a philosophical question about the difference between an software emulator and a fpga... I don't feel like discussing this right now. I just think about an amiga inside a raspberry pi. I wonder if this would work.

If you don't own a real amiga 500 or a amiga 1200 it might be some nice option. But if you own a 1200 together with turbo card and some great monitor I think you go better with this one. With the minimig port you miss the 68020 cpu and the AGA chipset which is needed by some games. I just think about "Super Stardust".

ZX Spectrum

Yay the Spectrum ! A lot of people I know are aware of the existence of the amiga 500 and the C64. But the Spectrum seems to be not that popular. Why? The original version doesn't has a sound chip (only a pc like speaker), no sprites and very limited graphics. And no floppy disk. Only the last Spectrum offers a disk drive... with 3" disks... :-O
And you thought 5 1/4" was strange
On the other hand the Spectrum offers some kind of charm and I somehow like the flare of it. So let's have a look at the spectrum core.

After putting everything needed to the sd card the spectrum boots directly into 48k BASIC which you either love or hate. Even the 128K core just uses this BASIC. I'm unable to understand that at this moment. The picture is kind of sharp and stable on the videoseven monitor. The Samsung TV says it's an unsupported mode.

This core has some very fascinating aspect as no tape drive is emulated. Instead it makes use of esxdos which is a firmware for a device called the divide. I don't want to get too technical yet but all you do for playing a game is pressing ShiftLock. After that a filebrowser starts up that lets you select some type of images. .Z80 and .TAP files do work well. .TZX, the most popular format is not supported but there is a reason for it.

.Z80 ist a simple snapshot format of the machines state. esxdos just takes it puts it into the RAM and starts it. Its kinda like starting a .PRG file on the C64.
.TAP is a tape image format more or less as it contains no pulsedata. Instead it contains the blocks of data that are saved on tape. No pulses but the data that is represented by them. This way this format is of course not useful for games with copy protection that tend to have crazy pulses to confuse normal loaders. But here is the trick. As you allready have the wanted data in it's wanted form esxdos seems to be capable of replacing the tape loader in the ROM and redirects the call to an internal handler to read tape data without a tape deck. I hope that wasn't to confusing. The effect is somewhat ingenious as this Spectrum loads tape images that are loading 3 minutes on a real device in an instant blink of an eye! I was simply amazed.

The downside is that you are unable to use .TZX images containg pulse data which are in general prefered If you use emulators. But that shouldn't be that big of a matter.

I tested a few games and all of them started and were playable for a few minutes (I didn't tested them fully)

Sadly I do have a problem with the mounting process with my sdcard. After you start the core the boot screen of esxdos is visible for a moment and then disappears to leave you alone in basic. After reading the manual and wildly penetrating the ShiftLock key I figured out that it failed to mount the card. The manual says you have to hold Space and press Esc, release Esc but keep Space holding. The boot screen of esxdos reappears again to flicker around desperately trying to get your card working. After a few flashes it says ok and you are allowed to press Esc again which resets your system to BASIC. And then ShiftLock gives you the launcher as promised.

I also found another solution that seems to work. After booting your Chameleon to the C64 core which it does normaly, remove the card and reinsert it. The next launch of the spectrum core seems to initialize the card directly on the first try. A little bit annoying... I guess the sd card initialisation code has to be fixed.

Also under normal circumstances you are unable to run "Turrican 2". I've mailed Alessandro Dorigatti and instantly got an answer. He mailed me that this game is a 128k game that also needs the 128k BASIC. He has given me instructions to get it working as it seemed to be an issue with esxdos. I don't know if I'm allowed to post that here but the reader sure knows where to dig^^. I want to thank Mr. Dorigatti and the author of esxdos for the fast help.

-- Conclusion --

The Spectrum Core works very well and is a real alternative to a real spectrum. I didn't have any issues with my monitor and the core of course also offers a kempston interface for your docking station. My personal highlight is the ultrafast loading of games which take about 3 to 34 minutes to load on a real machine. I could enjoy playing with this one instead of my real +2A system....

The Big Conclusion

If you are
  • crazy about fpga technologies,
  • crazy about reconfigurable computing,
  • thinking about buying a
    • minimig,
    • c-one
    • <place another similar product here>
  • a retro nerd,
  • or crazy in general
you should consider buying the chameleon. But if you are
  • not willing to experiment with possibly buggy cores and monitor modes
  • somewhat SID audiophile (if need the C64)
  • a high-end amiga user (if you need the minimig core) 
  • a xilinx fanboy that wants to hack that thing (it uses an altera fpga)
you problably won't be happy with it.

Wednesday, January 2, 2013

A few words on old floppy and tape media for retro gaming

Happy New Year :3

If you own a C64, an Amstrad CPC, an Amiga or a ZX Spectrum you might know the problem with old media. floppy and tape lasts not a long time and soon you are confronted with a vanishing game collection.

There are a lot projects that are trying to work against this process. I consider these different ways:

(1) Don't use legacy hardware. Use emulators.
(2) Use reconfigurable computers.
(3) Buy games from ebay.
(4) Use Floppy / Tape-Emulators or alike
(5) Buy Hardware that can transfer images to blank media.

As a gaming console collector option 1 is not tolerable... no authentic video and no authentic sound.... especially in the case of the C64 and the NES.

Option 2 is not very common yet. There are a lot of products for some systems. For example minimig, the c-one, the mmc-216 and the turbo chameleon 64. These solutions are perfect for preserving legacy hardware for the future. At time of writing I do own a turbo chameleon and it's most of the time like an emulator in terms of authenticity and not even 100% compatible if you want to play games that are not well known. You can say emulators did have a lot of time to be lead to perfection.

Option 3 is awful as the bought media someday will also lose data after a few years. If you are really retro and you don't want to spend a lot of money on ebay the options 4 and 5 are the way to go.

To further differentiate the option 4 I would like to split it in true drive emulation and system expansions.

Take for example a few floppy emulators.
SD HxC Floppy Emulator for Amiga 500, Amstrad CPC, Atari ST and SD2IEC for C64.

I have to admit, I don't own one of these. And I can tell you why. You get some kind of "emulation load time waiting syndrome". Just try to use winuae for amiga emulation without any floppy acceleration. Sometimes you wonder if the software is still loading or maybe has crashed as you are unable to hear the step motor of your floppy and sense the loading process.
You can also say that something like this destroys the whole experience of your retro gaming session. The only benefit is the obsolence of physical media, which maybe is easier and doesn't needs any space of storage.

A different solution in technical meaning is the usage of software to archive the goal. The WHDLoad Project has the goal to crack modify amiga games to make them possible to be installed on a hard drive. No disk swapping (not even virtual ones). And NO loading times. divIDE is a hardware expansion that does something simililar on the zx spectrum.
I don't know a c64 solution, but MMC64 seems to be the way to go for single loader games.

So, If you want to go for fast loading and no physical medium the latter ones are the way to go. I do especially like WHDLoad as these modified games are less crippled and less buggy than the ones in the past that had to fight with available disk space.

After these tinkering words lets dive into my favourite possibilitly: Bringing the real physical disk or tape back to life with the usage of images and hardware support. I want to share the ways I've discovered during my retro gaming life.

My Solutions

Amiga - Floppy

I always wanted to have a catweasel controller. It's a very flexible floppy controller that is capable of writing various formats. Amiga, c64 and some others. But the price tag was at the level of an amiga 1200 itself, so i gave it a pass.

The first solution I discovered was the Amiga Explorer. That was 10 years ago :-D. It offers access to filesystem and storage devices over the serial port. You just need some sort of serial cable as the software could be paired happily with amiga dos 1.3 that is installed on most amiga 500 models.
But it was rather slow and took about 11 minutes for a disk transfer. :-(

After that i tried crossdos. It makes your amiga capable of reading 720kb FAT formated disks. Use a software to split the 880kb adf image, transfer it using 2 disks and write it back to an floppy using the marvelous programm adf2disk.
But also slow and tedious.

... of course you can also use a terminal software with xmodem....

After I bought an amiga 1200 2 years ago I discovered a much better and faster solution. Hook up a cheap IDE hard drive to it and buy a amiga network card. It was only about 15€ if i remember. Install the miami tcp/ip stack and the ftp server ftpd. Transfer adf images using ftp and write them again using adf2disk. If you actually possess an 1200 model this is really the way to go if you don't want to use whdload, which needs a ram expansion for preloading. And that costs a lot of money .... but it was worth it. I've expanded my 1200 using the aca1230 from individual computers.

C64 - Floppy

This is one thing the MMC64 was created for. Grab your d64 images, put them onto a sd card, slam this device in you commodore and dump them all on real disks. The only problem is that you need to buy it.... and it doesn't exists anymore as it is replaced by the turbo chameleon. And this costs 200€... but was worth it... anyway...

A very cheap and successful solution is the usage of a XM1541. This is a cable that connects to your average gigantic and power hungry 1541 floppy station and your pcs parallel port. You can then use a linux or windows program to transfer d64 images with a lot of comfort.... I have very good experience using the OpenCBM linux drivers.
There is just one problem. It needs a parallel port and to make it more awful it has to be a true 5V one. Last year I've bought a new computer and yes it has a parallel port. And NO!! its not 5V compatible. Of course an alternative is created. The XS1541... but there is a lot more hardware on it as it isn't just a cable.

So this is difficult. If you still have a pc with a "real" parallel port, go for the XM1541 as it is very cheap and gives fast results.

The turbo chameleon is insanely expensive if you just want to use it as a "floppy / mmc64 - emulator" but it sure is an easy solution I will soon try do discover. The floppy emulation works great but..... "emulation load time waiting syndrome" in it's worst case. I've tried loading turrican using this and I've asked myself 2 times if it crashed before even playing the first level. I'm such an impatient person. >:-)

Atari ST - Floppy

The Atari ST offers two different solutions. As it uses a floppy controller that is very simililar to the ones inside your pc you could just use some imaging tools to write the .st image to a disk. Very easy and cheap if you still own a floppy drive in your pc that you just bought in 2012 :-P. (Worked great with Rodland for example)

But a lot of games (Turrican, Turrican 2 to name a few) use a special disk geometry that could not be handled by the rather restrictive controller inside the pc. So you need a different solution and It took me a long time to find it.

I created myself a 720kb disk using my pc with the programs JayMSA, Ghostlink, HSModem and HyperFormater. Don't ask me where I got it. The disk is now a few years old.

Connect your atari st with a null modem cable to your pc and use dosbox with the dos master program of ghostlink. You get an atari st that has mounted a folder on your pc and can write a disk image which does the job quite well.

I think the atari st was the most difficult of the things listet here as these tools were scattered around. Also it has the same problem as the "Amiga Explorer" as the solution is very slow as the baud rate is limited to 19200.

Amstrad CPC - Floppy

EASY !!! EASY-EASY !!!
Same situation as with the atari st and !NO! special disk geometry. Just use disk imaging software and some adapter that can be easily built with 2€ to connect a 3.5" floppy to your cpc. I combine it with komacopy to copy the 3.5" to a real 3" (no spelling error here) floppy as I don't want to modify my cpc to be able to boot of the external drive.

The adapter is very simple. Just cut an average floppy cable and connect it to an centronics adapter. But before you do that, look at the back of your cpc as the german cpcs seem to have a different connector compared to english ones.

ZX Spectrum, C64, Amstrad CPC - Tape

Do you know the feeling if you just used a cracked image security backup of your game and it crashes because some cracker didn't do it's job right. It happens a lot on c64 and cpc games if you try some cracked modified floppy versions. So what do you do if you couldn't find any different floppy version. Without any special hardware it's impossible to dump the original floppy version to a real disk. Even finding it is rather difficult. Yes, you bite into the sour apple (you say that in german) and use the tape version... the original and uncracked unmodifed ones. Also on most spectrums you have to do so as only the +3 posesses a floppy drive.

So first you try to take your tapedeck, plug it in to your line out of your pc and then use some software to simulate the playing of the audio waves to dump the image back to tape. And yes it works. But most of the time only with cracked tape images. I can hear you laughing! Yes! There is a copy protection on music tapes. It works using rather high frequencies that could not easily copied using your average stereo with noise reduction and all that shit.

So you need some device that is able to replay the image in a better way than the soundcard of your computer.
Stay tuned on this channel for the next article !! :-)
I want to describle a tape emulator that I've build myself to overcome this problem.



Friday, December 21, 2012

Amiga-Wiimote-Joystick-Adapter



My first topic. Yeah !
So lets start with something very personal and recently developed in this or the last year. I'm a very big fan of retro gaming. I'm used to have about 17 consoles and 7 home computers. Check out some photo !
Some of my consoles :3
In this post I want to go specific to the home computers. In my youth (The 90s) I got an amiga 500 from my dad. It was awesome then and it's awesome today. So, whats the problem you might guess. I can tell you. After a few years of playing with your gaming equipment, which also includes the joystick, the equipment breaks someday.

Here's a photo of my favourite gamepad. With this you are the king of Turrican !! ... or at least a few years before ...
What makes it great is the auto fire function which is controllable with a button and not a switch like some other joysticks have.
The AMIGA HYPERPAD. The name fits
The problem with these gamepads is the synthetic material that is used as spring for the buttons. After some use these tend to break. So... buy another one ? Yeah ! I wish we could today but thats not possible anymore. It's also a miracle for me how the other retro fans seem to handle this problem.

We need some replacement! I was inspired by the big number of "PS/2 to Amiga Mouse Adapters" that you can buy at some stores. These are also very important as the amiga mouses don't even last as long as the joysticks :-(. Of course I've built one myself with a PIC16F628. But thats not so special. Maybe later about that.
My PIC based ps/2 mouse adapter
What is more important is that there is no pendant for joysticks. Like... connecting an usb joystick to your amiga. Or... maybe ... a Wiimote ??
That would be crazy and ingenious at the same time. And it's wireless! OH MY GOD ! :-O. And most important, It's hardware that is still built today. ...And it probably will, as the Wii U also uses this...

So I've bought myself a ARM evaluation kit that is known to feature a USB Hostcontroller. It's this one from STEITEC.
ARM LPC1768 Cortex M3 LCD Board (STEITEC)
The positive thing about USB is that there is so much stuff that you can plug in it. Take for example USB Bluetooth adapters. They are so cheap. Much cheaper than a professional bluetooth module for industrial applications. And as matter of fact a lot of people just have them lying around.

After that I've discovered the mbed which offers also a LPC1768 and it's gigantic collection of libraries for miscellaneous purposes. On of these libraries is called "BlueUSB". It's a complete "usb-bluetooth-keyboard-mouse-wiimote"-stack, which is great for this project.

I've modified it a little bit to get it working on my STEITEC board. After that I was possible to get the button states printed on the debug uart. Then I designed a breakout board which has npn transistors for the open drain type of interface that is used by atari type joysticks. It also does the levelshifting as the amiga uses 5v and the ARM only can handle 3.3v like almost every new IC. Connected to the user I/O header I had to modify the sources again a little bit to get the logic I wanted. For example autofire... which is important If you like to play Turrican without having a cramp (right english word?) in your thumb ! Then after outputting the button states to the necessary GPIOs I had it working.
The whole project.
What you basically get is a clone of my amiga gamepad in the form of the wiimote. You hold it horizontal of course. The button 1 is fire, button 2 is auto-fire. The button A is secondary fire at the moment.

After a few weeks of usage I added support for usb mouses, the classic controller (better dpad somewhat) and usb joysticks.
The support for usb joysticks is something very important as this project has problems operating with the commodore 64. After plugging it in you can hear the noise that is caused on the voltate supply by the bluetooth module.
Not very nice and I don't know how to fix that as I'm a noob in analog design. Maybe some suggestions from the audience? :3

However on other systems like amiga, atari st, zx spectrum (kempston interface only!) and the amstrad cpc (only with adapter) it works perfectly.

The next step that is needed for this project is a dedicated printet circuit board especially for this purpose. This way I could also sell this boards...