Home  GBA  NGC  NGPC  FPGA  Mobile  GP32  NDS  Oldies  Misc  

Saturday 29 March 2008

Thomas is born

Thomas is born on March 19th. He's a nice little boy of 4Kg210 and 55cm. His older brother, my wife and I are very happy ;)

Wednesday 20 February 2008

CCCP

These last months (years, even), I have done much hardware-related stuff, but close to nothing on the software side, especially for the GBA which is a shame, as GBA development has been my main reason for setting up this website.

More than 2 years after my latest software release for the GBA, here is CCCP, which stands for Crystal Clear Clone for Portable (devices).



The original Crystal Clear game can be found here. This game is my wife's current favorite online game, especially for the multiplayer version she's playing to every day ;)

It has been an opportunity to use latest builds of DevkitARM and libgba that can be found here. Compared to the tools available some years ago, it's a huge improvement. Coding for GBA has never been easier, and I'm quite satisfied with what I've done with their help in about one week : a GBA project in C++, with sound, support for loading/saving, etc.

You can download the ROM here.

Tuesday 1 January 2008

Happy new year 2oo8

Happy new year !

2oo7 has been quite a good year for me, and I hope 2oo8 will be as nice. My wife and I are expecting a new kid (another little boy) to born in March, so it will be my main concern for this year at least ;) However, I hope to find some time to work on electronics, mainly FPGA-related stuff.

I have purchased a Terasic DE1 board, also known as Altera Cyclone II starter board. This board features almost anything I need for my projects about emulation of old computers and videogame consoles. This board has already been succesfully used on "larger" designs, such as the Minimig project (Amiga 500 in a FPGA), and there are many systems in the 16-bit era that I would like to have a look at...

Stay tuned ;)

Wednesday 5 December 2007

Oric in a FPGA - continued

I added a PS/2 keyboard interface to the system, which makes it possible to play a bit with the Basic.
Fabrice Frances also provided me a modified ROM that is able to somewhat "resume" the execution of the system, from a memory dump that can be done from his well-known emulator, Euphoric. So I designed a memory loader, that downloads the contents from such a dump into memory, with the help of a FTDI USB module. First results look nice :)

Oric1

Oric1

EDIT : DBug gave me some tips to fix the .TAP files header (disabling the autostart) and retreive information from it (like the start address). It means that along with Fabrice's ROM, it now brings a great testing solution :) Here you can see some of his demos running.

Oric1

Oric1

Sunday 18 November 2007

Oric-1 in a FPGA - bugfixes

I managed to fix some bugs in the ULA, and now it displays the Basic welcome screen correctly. The cursor also blinks like it was supposed to do.

Oric1

The "key pressed forever" issue was due to the PB3 input of the VIA that was incorrectly held high.
Next thing to do, add a PS/2 keyboard interface ;)

Tuesday 13 November 2007

Oric-1 in a FPGA - first good results

The project of emulating an Oric-1 in a FPGA is something I started some months ago... until my interest in doing such a thing faded a bit...
Fortunately, mostly because of the (then upcoming) Alchimie 7 party, I went back to this project. I didn't manage to have something working (at least showing some stuff on a TV) during this party, but I worked a bit on it, and managed to get some results in simulation.

Now, after a few days worth of work, here is a first version on the "Oric-on-a-chip" booting the Oric Atmos ROM :)

Oric1

You may notice some issues here : the first line is not what it is expected to be, and for some reason, it acts like the * keyboard key is pressed forever. But well, that's a good start anyway.
For the moment, there is no PSG implementation at all, and I guess the VIA and ULA code need some rework too :)

More to come soon, hopefully :)

Sunday 11 November 2007

Alchimie 7

My wife and I went to Alchimie 7 party. As usual it was a great party, with lots of geeks and a top-notch organization.

Here is what the event looks like :

Alch7_1

I made a small conference entitled "Emulation with a FPGA", mostly based on my work on the emulation of the Thomson MO5 in a FPGA.

Alch7_2

As I was here for the 3 days that lasted this event, I spent some time working on a project I started some months ago. I didn't manage to do all the stuff I wanted to do on it, but some progress has been made.

Alch7_3

This last picture should be enough for some people to understand what I'm currently working on... Hopefully, I would be able to show more in a few. Stay tuned !

Wednesday 24 October 2007

VieuMikro 2007

This year's VieuMikro meeting, organized by Silicium stood on October 13th and 14th.
Like all people attending this retro-computing meeting, I had a great time.

Here is a small picture of the event :

VM2K7_2
My own stuff :

VM2K7_1
I managed to test the HxC Floppy Drive Emulator on an Amstrad CPC 6128. It works flawlessly, adding therefore Amstrad computers to the large list of supported machines :)

VM2K7_3
See this forum thread for more pictures and comments. Among quite unusual machines (and people :P), stamba demonstrated an impressive set of electronic music stuff, many of them based on the Commodore 64 and various music peripherals.

Next week, I will go to the Alchimie 7 meeting, with hopefully many things to come. Stay tuned!

Wednesday 29 August 2007

MCU-based Floppy Drive Emulator

As you may (should :P) know, a Floppy Drive Emulator has been designed by Jean-Francois Del Nero. See http://torlus.com/floppy/ for more information.

His interface uses programmable logic (CPLD or FPGA) to deliver a perfect timing and emulation of a floppy drive. However, various projects exist, based on microcontrollers.
So I wanted to give it a try myself, using a microcontroller. I chose a LPC2106 mounted on a convenient DIP board (LPC-H2106 from Olimex), and started to work on it last week.

Unlike the current CLPD-based version from Jeff, it uses SD cards for storage, as in his WIP FPGA-based standalone version. With great help of Jeff, I eventually managed to get some good results, as you can see on these pictures :

HTDFE

HTDFE2

Thanks again Jeff for your time and patience ;)

As you're probably aware of, MCU are easier to use, and cheaper than programmable logic. However, they bring some limitations, and in such a project where timing is critical, there are some features (especially floppy write support), that are probably not possible with a MCU "alone". However, this work could be a good start to study solutions that could mix external (programmable) logic and MCUs, in order to keep the cost as low as possible, and make it easy to assemble by hand.
Stay tuned !

Monday 13 August 2007

Infoticaires 2007

Last week-end, I've been to the "Infoticaires 2007", a retro-computing convention. It was pretty cool as usual.

Here is an article about this event :
http://www.obsolete-tears.com/infoticaires-2007-dossier-106.html

It has been an opportunity for me to show the usbSID interface, and try to make the HxC Floppy Drive Emulator work on Amstrad CPC family of computers.
This last attempt failed, as I did not have the correct vhdl core version (and without Internet access during this week-end, I wasn't able to contact Jeff about it). Anyway, a new attempt is scheduled for VieuMikro 2007 (or sooner if I can).

About my own stuff, I've been playing these last weeks with AVR microcontrollers, and managed to write some code for SD cards reading, FAT file system handling and such... Things that would be handy for many projects I have in mind, but that's another story :)

Wednesday 4 July 2007

usbSID RELOADED !!!

This is a project I started some months ago : connect a C64 SID to a PC using the USB port, in order to listen to my favorites C64 tunes on the "real thing".

See my previous posts about it here and here.

To sum up, connecting a SID to the parallel port of a PC gives good results, but it was another story with USB, which works in "packetized" mode, and therefore my first attempts suffered from latency issues.

Some time ago, some people seeing my page contacted me about this project, with some new ideas. One of these ideas was to do the synchronization on the hardware side, rather than on the software side.

So here is the new interface :

usbSID_PIC

It features :

  • a PIC16F690 (here, installed on the "Low Pin Count Demo Board" from Microchip)
  • a FT245BM USB FIFO IC (on a handy DIP module)


Here is how it works (it's dead simple) : on the software side, SID commands are sent to the USB FIFO, and for each start of frame, it inserts a special value in the FIFO (a "marker").
On the hardware side, there is a Timer on the PIC (at 50Hz). When the Timer counter overflows, the PIC starts reading the FIFO and sends commands to the SID, until it finds a marker. Et voila !

Here is a small recording made using this interface (the music is Sanxion's loader tune, from Rob Hubbard) : usbSID Sanxion playback

The whole thing needs some rework, but I'm very happy with the first results. It could lead to one of the cheapest (and handiest) way to feel the SID magic ;)

Monday 19 March 2007

Thomson MO5 in a FPGA

Yet another old microcomputer in a FPGA :) This time, the "victim" is the Thomson MO5, a machine based on the Motorola 6809E microprocessor. This machine sold well in France, especially because Thomson was the company chosen by the French governement to try to "bring microcomputing to the masses", back in the 80s.

Now, some explanations about the project itself : as most of my Hector-related project is done, I had the idea to do something similar for the Thomson MO/TO microcomputers. A bit of googling led me to a thread in Logicielsmoto.com forums, where someone was saying that he made the implementation of the Thomson MO5 main component (a gate-array used for video and glue logic) into a CPLD. I managed to contact him, with the help of the Serveur87.com mailing list people. The author of the gate-array reimplementation accepted to share his work, and I managed to put things together using the System09's 6809 core, and writing a 6821 core. And here is the result :

FPGA MO5

Sorry for the bad picture, but that's all I can do for now... as the project is not finished. For instance there is no keyboard interface (EDIT : it is done now). But most of the system seems to work : CPU, ROM, RAM, video, interrupts...

I would especially like to thank :

  • Pierre Schmidt (Whitebird), author of the gate-array CPLD conversion. He is the person to give credit for this project, as without him, it would probably not exist.
  • Edouard Forler (FoolDuplex), who helped Pierre with his design, then helped me to contact Pierre, and for his advice.

EDIT : I just finished the keyboard interface today, now I can play with MO5 BASIC :) I've also updated the picture (click on it to get the full-size one).

Sunday 11 February 2007

Generic video signal adapter

These last days, I have been working on a small project : have an old "Pong" video game (here, from Univox) video output adapted to a TRS-80 monitor. Most "Pongs", including this one, are usually connected to a television through the antenna plug. As usual on this kind of devices, the video signal can easily be found right before the UHF modulator.

However, this one has an interesting "feature" : the video signal is inverted (!) and sits between 0.5V and 1.5V (1Vpp). The TRS-80 monitor expects a 2Vpp signal, between 0V and 2V. I also thought that it would be nice to be able to make a composite output too, so I started to think about a generic solution to perform this kind of operation (here, invert the signal, change its amplitude when needed and adjust it to the right reference voltage).

I thought that this kind of operation could be done with a Operational Amplifier (Op Amp, for short). So here is what I did :

  • From the positive voltage coming from the power supply of the device, generate a negative voltage. It has been done using this 555-Timer based voltage inverter circuit.
  • Regulate both the positive and negative voltages, to feed up the Op Amp with proper voltages. This has been done using LM1117 and LM2990 LDO regulators.
  • Finally, use the Op Amp to perform a voltage substraction and amplification. I used the MAX477, which is a bit overkill, as it has a 300Mhz bandwidth (!). But at least, there is no signal distortion issue, unlike with the basic 741 one I used for a first try :)

Here is the result :

PongTandy

There are probably better and cheaper solutions, but I'm quite happy with it, as I managed to design the circuit myself, provided that my knowledge about analog electronics is close to nothing :) Please let me know if you're interested in the schematics.

Note : the 555 voltage inverter circuit schematic has a small mistake in it : the R1 resistor needs to be connected between the 6 and 7 pins, V+ being connected to the 8 pin.

My Hector HRX in a FPGA documentation has been updated as well (the document is still in French). You can find the updated documentation here.

Wednesday 31 January 2007

Hector HRX in a FPGA

Wow, it has been some time since my last site update :)

However, I have been quite active these last months, as I started to work on a new project : emulate a Micronique Hector HRX in a FPGA.
The Hector family of computers were manufactured in the 80s. They were based on a Z80 microprocessor, and some 7400 series chips for the most. No ASIC of any kind :)

Below you can see a picture of the system running :

Hectorlus

More important than the project itself, here is the associated documentation (in French) (8MB PDF file) which contains a rather complete analysis of this machine. I think it's something worth reading for a beginner (provided he/she can read French).

For the moment, only ROM/RAM/CPU and video stuff is implemented, but I will add at least keyboard input soon. Once the project is finished, I will release its source files as well as an updated version of the documentation (and an English translation).

For more general information about these computers, please visit this page which contains very useful information (and helped me a lot for this work).

Sunday 3 December 2006

Vieumikro 2006

EDIT : you can find a detailed article, as well as links to many other articles, photos and videos, on this page at MO5.com

As I'm writing this, Vieumikro 2006 just happened this week-end.
Vieumikro is a meeting about old computers and game consoles. We all had a great time here.

VM2006
It was an opportunity for me to show some stuff :

I haven't many photos of the event myself, but I know that some people made a bunch of photos, and will show them on the web soon, so I'll link to their reviews once they're done.
Meanwhile, you will find below a small video of my own installation at this meeting, where you can see Defender of the Crown, my IntvFPGA gizmo, then see (and hear) the SID 6851 in action, through the parallel port interface :)