A while ago I wanted to make my own PS1 modchips, but having never programmed my own PIC chips before, I wasn't sure where to begin. I wanted to make a "newbie-friendly" guide for somebody who's never done this before which involves making your own cheap serial programmer. This has been tested using Windows XP 32-bit and Windows 7 64-bit, using PICPgm version 18.104.22.168. *Obligatory “I not responsible for any damage caused by using this guide" warning* First, there’s lots of different types of PIC chips and different types of programmers and programming software. We’re going to use a simple serial JDM programmer and a program called PICPgm in this guide. As for the chips, it depends on what modchip you want. 12F508/12F509, 12F629 are the most common, though others can work as well. Most Hex files that you would want to use were originally written for the now obsolete one-time-programmable 12C508 chip, but most if not all of the relevant Hex files work perfectly on the rewritable 12F508 chips. I have personally used MM3, Mayumi v4, and Stealth 2.8a Hex files designed for 12C508 on a 12F508 and it worked without issue. The programmer used in this guide does not support 12C508; you need a different programmer and program for that. I have used the programmer below with the following chips: 12F508, 12F629, 12F675, 12F683. The type of chip (Hex file) to use is determined by which PS1 console you have, as certain chips work better with certain consoles (this is just a general guideline): Fat SCPH-100x = Stealth 2.8a Fat SCPH-500x-900x = MM3 or Mayumi v4 PSOne Slim = MM3 for NTSC, OneChip for PAL consoles There are many more different types of modchips (Hex files) to use, but in 2015 these are most likely the best to use (others may have different opinions; these are from my research online). Most other Modchips (Hex files) are for the most part outdated (the PS1 is nearly 20 years old…) and/or don’t support “stealth” (read more). It’s important to note there are many “anti-mod” PS1 games that will fail to play on many Modchipped systems if it detects them and we must use a “stealth” modchip to bypass this. All the chips above support this (the Stealth 2.8a partially supports this but is the best for the 100x series). If stealth is not working, you will see a screen that says “Software Terminated” after the game boots and will fail to play. In 2015 this is not a major problem anymore because there are patches online which allow you to patch your backups for almost all games if you need to. Do some research on PS1 modchips if unsure what to use. List of protected games here: http://consolecopyworld.com/psx/psx_protected_games.shtml On top of the anti-mod protection built into certain games, there’s also a copy-protection called LibCrypt in certain games which must be ripped/copied a certain way or it will fail to play. This is independent of the modchip in the system. There are also patches online for these types of games. First, you must build the serial JDM programmer. It can be made for a few dollars and with basic soldering skills. You need a serial port on your computer. A desktop is preferred but some laptops also have serial ports (apparently some laptop serial ports do not receive enough power and this may be a problem). USB-to-serial connectors will NOT work (I tested this personally). In the schematic the USB cable you see is only to power the programmer. If you don’t see a serial port on the back of your computer, check the inside of your computer on the motherboard for a header/port named “COM” as even many modern desktops have this port, but you need an adapter to plug the programmer into it. You can also check the manual for your motherboard to see if this COM port exists. These adapters can be purchased on eBay for about $1-2. Parts list for the programmer: Female serial header or cable 22k resistor 2.2k resistor 10k resistor BS170 transistor 8-pin DIP socket USB cable (male end) Schematic: This is what my first programmer looked like (all the components are soldered to the wires and wrapped in electrical tape): http://i.imgur.com/F4EVN0H.jpg Here’s what you need: -JDM programmer which we built above -PICPgm (Download it, it’s free - http://picpgm.picprojects.net/download.html) -PC with serial port -PIC chips as mentioned above. 12F508/12F509 or 12F629 or others, depending on what modchip you want. -Hex file of the modchip you want (Use Google) Install PICPgm. Plug in your programmer and then open PICPgm. The programmer may be automatically detected, but click ‘Hardware’ then ‘Hardware/Selection Configuration’. Select JDM Programmer and your appropriate COM port and hit OK. (If you are unsure of which COM port, go to ‘Device Manager’ in Windows, then ‘Ports’, and you’ll see ‘Communications Port (COMX)’, X being the port number.) If it’s working it should recognize the programmer and say “JDM Programmer” at the bottom of PICPgm. Plug in your chip into the programmer. Make sure to plug it in the right way! Select the chip type. Read the chip. It should take about 5 seconds. If the chip is blank, you can hit Cancel when it asks you to save as there’s no point in saving it. Go to Code Mem. It should be all 0FFF’s except for the last few which will be different, such as 0C2A (example only, yours may be different), these are the calibration bits**. PICPgm deals with this automatically so we don’t have to. Read more at the bottom about the OSSCAL/calibration bits. **Certain PICs such as 12F683 do not have calibration bits at the bottom. If it’s reading all 3FFF’s, including at the bottom, it is not reading the chip properly. Don’t try and write to the chip until you’re sure it’s being read properly as you may ruin the chip. From here, click ‘File>Load HEX File’ and find the Hex you want to program onto the chip. The code will load and you’ll see it in Code Mem. Optionally, click ‘Config Bits’ and make sure that ‘CP’ (Code Protect) is Disabled as this will cause chips to not be read properly. There’s no point in code protecting it anyways. It’s generally Disabled by default, but certain Hex files may set it to Enabled. Hit the Program button and wait. It should take about 15-20 seconds. Hit the Read button again, and then Cancel as we don’t need to save it. If the code looks the same and it reads fine, then your chip is good to go! Test it out in the system. Make sure that you use the correct wiring diagram for your chip, as different chips may have different wiring diagrams. If your backup boots, then all is good! If you have one of the protected anti-mod games handy, try it out and make sure you don’t get the “Software Terminated”. If you don’t get an error, then stealth is working (or you have a pre-patched backup). Extra info: -If you’re going to be testing a few chips, rather than soldering the chip directly to the PS1, solder an 8-pin DIP socket like you used in building the programmer so you can easily swap out chips. -Make sure to note the OSSCAL value (last few bits, C20 for example) on paper somewhere for each chip as it’s unique. It’s the oscillator calibration setting, and some software will overwrite it. PICPgm handles this automatically so you shouldn't have to worry about it, but not all software will do this. It can also potentially become corrupt during a bad write if something goes wrong. If you happen to overwrite it, you can fix it in PICPgm under Config Mem. If you overwrite with a different value then the chip will not work. Note that some PICs do not have OSSCAL values, such as 12F683. Read this for a good technique on how to note the OSCCAL value for each chip: http://picprojects.org.uk/projects/piccal.htm It doesn't mention 12F508/12F509 in the page, but it applies as well. Hex-to-binary converter: http://www.binaryhexconverter.com/hex-to-binary-converter This method has saved chips for me in the past. Note: I did not cover every single scenario and console revision and this is meant to be a starting point to making your own modchip.