Beginner's guide to connecting to the PSX.

General information to do with the PlayStation 1 Hardware. Including modchips, pinouts, rare or obscure development equipment, etc.
Post Reply
User avatar
sickle
Verified
C Programming Expert
C Programming Expert
Posts: 257
Joined: Jul 17, 2013
I am a: Chocolate-fueled pug fetish robot.
Location: Scotland

Beginner's guide to connecting to the PSX.

Post by sickle » January 20th, 2016, 2:22 am

I keep seeing the same questions about how to get the PSX set up for homebrew. To be fair, objectively it's probably a bit of a nightmare to figure out the best solution for you given that there are so many options spanning about 20 years, and various fragmented posts here and there might make things a little awkward. So here's a quick guide to the hardware side of things. Gives a shout if anything's inaccurate or could do with some clearing up.

There are about 5 main ways to get set up, in order of difficulty, (I'm bundling serial comms in), though there are others.

1- Dev Kit
2- Net Yaroze
3- Boot disc
4- Action Replay or clone (Excluding XPlorer)
5- XPlorer Cartridge (specifically)
(6- Emulate- http://problemkaputt.de/psx.htm)

I'll start with the 3 most awkward to get them out of the way. While this means you'll be reading through a bunch of things that possibly aren't appropriate to your situation I ask that you read it through since it's in this order for a reason! (Especially 3-5).

1-Dev Kit.
The dev kit included a card you'd plug into your PC with what is essentially a playstation built onto it. It's what most every game was developed on, alongside the Psy-Q software development kit. While not many people have or use the official dev kit, the Psy-Q SDK is still quite popular and has more or less all the tools needed for the software side of things. It's also available on Psxdev.
DevKit: http://www.psxdev.net/forum/viewforum.php?f=28
PsyQ: http://www.psxdev.net/downloads.html

2- Net Yaroze.
This was a hobbyist dev kit released by Sony. You get a shiny black playstation with boot CD to use the serial port, but it's expensive, and doesn't quite produce a standard PSX .EXE. You could however totally use this machine and cable with any of the other methods.
Yaroze: http://www.psxdev.net/yaroze.html

3- Boot disc.
It's so easy to boot a CDR or load an .exe from it. If you had a lot of time, money and patience you could absolutely burn every copy of your brew to a new disc, but you'll eventually burn out your laser (not immediately, a few hundred to a thousand boots perhaps). Ideally though you'd only want to make a boot disc to help with the final 2 methods. Again, I'm not saying do this every time, instead I'm saying use it once or twice to get you to a more permanent solution.

Some examples:

Cartridge:
- Wedge the disc lid sensor down and plug Action Replay/Xplorer in. When the disc slows down, replace it with the CDR and hit boot, or go into CD filesystem and launch your .EXE.

ModChip:
- Make an iso with your System.CNF and .EXE, license it with a third party tool. Burn it, boot it.
CD GEN - http://www.psxdev.net/help/cdrom_mastering.html
PSXLicense: - http://www.psxdev.net/forum/viewtopic.php?f=69&t=704

Disc Swap:
- Make an iso with your System.CNF and .EXE, license it with a third party tool. Burn it, wedge your PSX lid down and ready yourself for the frustration. What you'll be doing is swapping out the CDR and Black disc while the system boots. Start with Black, as the disc's about to spin up (from diamond->black screen) put the CDR in, it'll spin up and slow down twice. As soon as possible, pop the black disc back in for about a second. (Sometimes 5 seconds the disc will slow down and chug round slowly instead depending on the black game). The screen will blank, and you can put your CDR in. You can absolutely use this method in a pinch, but obviously it's fiddly, the timing changes depending on the model (though all work, including a PS2 in PS1 mode). Bear in mind you're exposing yourself to a laser, and you're probably screwing that laser up a little.
CD GEN - http://www.psxdev.net/help/cdrom_mastering.html
PSXLicense: - http://www.psxdev.net/forum/viewtopic.php?f=69&t=704

Modifying an existing disc:
- Say you have something like a demo disc. Once it's booted up, it's able to load other .EXE files off the disc. If you were to make an iso of this disc and burn it, you could pop it in after the disc had booted, then use the disc as normal, since the boot checks were already done. Now let's say you replace one of the demo .exe files with one of yours, the system isn't going to know and lauching your tekken 3 demo or whatever will launch your homebrew. Easiest way is to use IMGBurn to make the iso, a program to replace the .exe *inside the iso* then re-burn it with IMGBurn. You can't just edit the layout of the .ISO, or hex edit the file into the ISO as one will invalidate the table of contents and the other will invalidate the .ISO.
It is however much safer, and easier on your console.
PSX Mode 2 Replace Tool - http://sicklebrick.com/wp-downloads/sic ... EPLACE.rar
IMGBurn - http://www.imgburn.com/index.php?act=download&


4- Action Replay Cartridge. (Not XPlorer).
Notice how these (mostly) have a DB25 printer style parallel connector on them? Yeah don't go connecting that up to your PC just yet, there's a big voltage difference and things won't go well for you. There are however ISA (pre PCI) expansion cards for the PC that will drop you to the correct voltage and work as normal on a different port (Official, Clone or home made "Freewing").This is obviously less than ideal on modern PCs but using the parallel port offers slightly more control (than serial), especially with some of the third party ROMs available with debugging features. (Caetla is one example)
Good software to start with here (PC side) would be Catflap to send over your .EXEs, or XKiller if you want to replace the ROM on the cart over parallel. If your cart still isn't responding, use a boot disc to write the Caetla 0.34 or 0.35 ROM onto the cart, and everything should be peachy.

Alternatively, what you could do is modify your Action Replay to automatically boot something that uses the serial port (Shadow's PSXSerial is a good start), opening up the possibility of using USB adapters. A little slower than the parallel port, but so much more convenient. It's also your only option if your cart doesn't have a parallel port.
Full disclosure, I put UniROM together, but if you replace your cartridge's ROM with it it lets you instaboot PSXSerial and send .EXEs over right away. In this case, what you do is burn a boot disc that replaces the cartridge rom. From this point on, you can boot without CDs and use the parallel or serial port.
At this point (PC side) you'd be using PSXSerial for serial comms, or Catflap or Parallel comms.

Freewing - http://hitmen.c02.at/html/psx_hardware.html
Catflap (InpOut) - http://www.psxdev.net/forum/viewtopic.php?f=60&t=226
Catflap (GiveIO) - http://www.psxdev.net/forum/viewtopic.php?f=60&t=759
PSXSerial Hardware - http://www.psxdev.net/forum/viewtopic.php?f=62&t=425
PSXSerial Hardware - http://www.psxdev.net/forum/viewtopic.p ... 396&p=2915
PSXSerial with Arduino - http://www.psxdev.net/forum/viewtopic.php?f=47&t=760
PSXSerial (PC software) - http://www.psxdev.net/forum/viewtopic.php?f=69&t=378
UniROM - http://www.psxdev.net/forum/viewtopic.php?f=60&t=722
Caetla (All Versions) - http://www.psxdev.net/forum/viewtopic.p ... lit=caetla

5- XPlorer (Not action replay)
If the cart you have is specifically an XPlorer, then the DB25 printer style port can totally be plugged straight into your PC! Seriously that's it. On the PC side of things you could use Catflap, X-Killer, the official XLink software and launch .EXEs, memory edit and replace the rom.

Again, if you'd rather be using the serial port, burn UniROM to a bootdisc and replace your XPlorer's ROM. As before you can now use PSXSerial. For me anyway, this is by far the most convenient solution

<LINK> XKiller
Catflap (InpOut) - http://www.psxdev.net/forum/viewtopic.php?f=60&t=226
Catflap (GiveIO) - http://www.psxdev.net/forum/viewtopic.php?f=60&t=759
PSXSerial Hardware - http://www.psxdev.net/forum/viewtopic.php?f=62&t=425
PSXSerial Hardware - http://www.psxdev.net/forum/viewtopic.p ... 396&p=2915
PSXSerial with Arduino - http://www.psxdev.net/forum/viewtopic.php?f=47&t=760
PSXSerial (PC software) - http://www.psxdev.net/forum/viewtopic.php?f=69&t=378
UniROM - http://www.psxdev.net/forum/viewtopic.php?f=60&t=722

6- Emulate.
You're not guaranteed compatibility, but no$psx in particular does such a damn good job, and has a built in assembler plus various other useful tools! Definitely worth a shot, and a fantastic debugging aid!
P.s. you can totally load .EXEs!
Last edited by sickle on January 20th, 2016, 2:21 pm, edited 2 times in total.

User avatar
gwald
Verified
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » January 20th, 2016, 10:08 am

very good post! :clap
Going through this again in the last few weeks (I was setup in the late 90s), this is a great help.

In 2016, I would put in emulation, and as #1, in particular:
http://problemkaputt.de/psx.htm
It has TTY out, so you can see your printf's and a good vram viewer is helpful.
It's built of ASM debugging, tho.
For assets, use the binary to source code from: http://www.psxdev.net/downloads.html
And link them into the exec,as explained here by Greg
For more complicated stuff, yeah make an iso.. maybe even via make/batch? and then send it to the emulator.

I'm going to contact the dev to see if he can add a psexe/siocons/ez/etc script to load into ram and run... that would be ideal.
I'm willing to chip in $100US, but not sure how much he'd want for the feature... but would make PSXDEV'ing a whole lot easier.. at least for beginners... without hardware.

The next 'easiest', IMO is the serial port HW stuff, most computers still have them, and they still work like in the 90s.

Lastly, for those that have an LPT port on their computers, the AR stuff works on v3 HW and xplorer etc.

The ISA comms card and the dev boards.. well I think that's for the die hard, PSXDEV'ers :praise

Oh and the USB LTP and serial ports converters don't work.. the software isn't compatible.. ie trying to access the IRQ and I/O address that the converters don't emulate.
Unless it's specifically programmed for the USB ie PSXSerial, I don't know of any others.


More PSX hardware info here:

PS, the Net Yaroze isn't shinny :lol: -its mat black, with a grainy textured.. the controllers are the same :mrgreen:

User avatar
sickle
Verified
C Programming Expert
C Programming Expert
Posts: 257
Joined: Jul 17, 2013
I am a: Chocolate-fueled pug fetish robot.
Location: Scotland

Post by sickle » January 20th, 2016, 1:18 pm

hehe, some nice points there!
You're quite right with the emulation, it's not perfect, but no$psx it does a wonderful job of even the really low level stuff! Definitely my favourite emu! Would actually be pretty cool if it installed a virtual COM port driver you could fiddle with, now you mention it. (no$ is on the forums btw if you wanna ask him)

I totally forgot that the V3 gameshark and action replays worked out of the box too... the weird-shaped ones anyway.

I saw your post on the USB->SPP adapter earlier actually, was going to reply, but ran out of time. I tried writing an adapter on the arduino, but since you can't just send a byte... well. Some very tricky toggling going on there and it's very different on caetla/xplorer. (Also slow as sin and kinda incompatible with existing software as you need to buffer up a few bytes at a time and wait for specific responses... ughh!)

You're right, shiny was the wrong word... you know when something's cool you call it shiny though :p

User avatar
Squaresoft74
Verified
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 309
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » January 20th, 2016, 1:30 pm

Thanks for this topic, very informative, should be sticked. :clap

User avatar
Shadow
Verified
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » January 20th, 2016, 2:16 pm

Squaresoft74 wrote:Thanks for this topic, very informative, should be sticked. :clap
I'll get a write up done at some point and put in on the website under 'Help'.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

User avatar
sickle
Verified
C Programming Expert
C Programming Expert
Posts: 257
Joined: Jul 17, 2013
I am a: Chocolate-fueled pug fetish robot.
Location: Scotland

Post by sickle » January 20th, 2016, 2:22 pm

coolbeans =)

User avatar
gwald
Verified
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » January 22nd, 2016, 12:13 pm

Well just to add more info.
The Emulator + binary to source code works, but not with the yaroze stuff because of the libps.exe in ram.
The yaroze build requires a cdrom image and some how loading the libps.exe into ram first, then auto (siocons script) and executing at the exe's link address, which could be anywhere. :shock:
I'll start a new thread.

Not psx comms related but there is another SDK/toolchain... psxsdk.
Completely open source and legal (no Sony software used).
https://github.com/simias/psxsdk
Or
https://github.com/ColdSauce/psxsdk

Not sure which is the better

Edit: https://github.com/ColdSauce/psxsdk is better, it has better sprite scaling/rotating etc.
Last edited by gwald on June 22nd, 2016, 10:00 am, edited 1 time in total.

User avatar
Shadow
Verified
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » June 5th, 2016, 6:35 am

sicklebrick wrote: - Make an iso with your System.CNF and .EXE, license it with a third party tool. Burn it, boot it.
CD GEN - http://www.psxdev.net/help/cdrom_mastering.html
PSXLicense: - http://www.psxdev.net/forum/viewtopic.php?f=69&t=704
Do not use CDGEN anymore. It produces invalid track data in images.
I have since updated that tutorial with the correct method of mastering images (as of Revision 1.1).

Someone asked a few months ago how to make a disc image correctly (I can't find the post anymore which is a shame), but I finally managed to get around to updating that very old CDGEN based guide :P

gwald wrote:Not psx comms related but there is another SDK/toolchain... psxsdk.
Completely open source and legal (no Sony software used).
https://github.com/simias/psxsdk
Or
https://github.com/ColdSauce/psxsdk

Not sure which is the better
They both looks like forks to keep the repo spreading and alive. That's not the right way to handle things like this since you never know where on earth the original authors version came from, and where the primary working and committed version is. There are plenty of examples like this, such as the PlayStation 2's 'OpenPS2Loader' source. If someone were to commit a change to improve the logic of the SDK, he might be wasting his or her time in doing so.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

User avatar
gwald
Verified
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » June 8th, 2016, 9:22 am

Shadow wrote:
sicklebrick wrote:
gwald wrote:Not psx comms related but there is another SDK/toolchain... psxsdk.
Completely open source and legal (no Sony software used).
https://github.com/simias/psxsdk
Or
https://github.com/ColdSauce/psxsdk

Not sure which is the better
They both looks like forks to keep the repo spreading and alive. That's not the right way to handle things like this since you never know where on earth the original authors version came from, and where the primary working and committed version is. There are plenty of examples like this, such as the PlayStation 2's 'OpenPS2Loader' source. If someone were to commit a change to improve the logic of the SDK, he might be wasting his or her time in doing so.
Opensource is better for learning and developing with.

User avatar
Squaresoft74
Verified
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 309
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » May 25th, 2018, 11:14 am

Could some CatFlap, X-Killer, X-Link mods using nocashio.sys be done at all ?

User avatar
LameGuy64
Verified
Psy-Q Enthusiast
Psy-Q Enthusiast
Posts: 388
Joined: Apr 10, 2013
I am a: Hobbyist Game Developer
Motto: Commercial or not, play it!
PlayStation Model: H2000/7000
Location: Philippines
Contact:

Post by LameGuy64 » May 25th, 2018, 7:01 pm

I recommend using a Xplorer or Xplorer FX cartridge, flash it with Caetla and use Orion's inpout32 port of catflap to interface to it.
Please don't forget to include my name if you share my work around. Credit where it is due.

Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.

DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.

User avatar
Squaresoft74
Verified
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 309
Joined: Jan 07, 2016
PlayStation Model: SCPH-7502
Location: France
Contact:

Post by Squaresoft74 » May 26th, 2018, 2:03 am

I already have such setup :)
I meant if CatFlap, X-Killer, X-Link mods using the nocashio.sys driver could be done like the GiveIO/InpOut patched versions by Sicklebrick or Orion.

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests