Programmer Hardware
The controller was programmed using very simple programmer. I like using simple tools for simple tasks :)
Here is the hardware:

Click images to enlarge
It has a bit dirty design but it works for me and I don’t think something much more is needed. All you have to think about is
how to connect wires to the correctly to the chosen ATMega8 package. Other Atmel AVR controllers may also porgrammed using this programmer.
Programmer Software
I use PonyProg to program the controller. You can find the latest version on this website:
   
Link: http://www.lancos.com/prog.html
Programming Procedure
- Connect the controller to USB port on your computer. This is needed to provide +5V power supply. Connect the programmer to LPT1 port on your computer. Connect the programmer to your controller (I use simple LAN patch cord).
- Start PonyProg program. On first start it proposes to make calibration to adjust itself to your PC speed. Let it do it. Alternatively use Setup->Calibration from menu.
- Make setup of programmer interface using Setup->Interface Setup... Make settings according to picture below.

Click image to enlarge
- Select ATMega8 chip as the device you want to programm from menu Device->ATMega8 as shown on the picture.

Click image to enlarge
- Open mjoy.hex file using menu File->Open Program (FLASH) File...
- Program the chip using Command->Write Program (FLASH) menu.
- Program the chip configuration bits using Command->Security and Configuration bits... Set flags as shown below and hit Write to program them.

Click image to enlarge
- Close PonyProg, disconnect the programmer and replug your new megajoystick to USB port.
Enjoy!