Page 1 of 1

Beginner's guide to connecting to the PSX.

Posted: January 20th, 2016, 2:22 am
by sickle
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!

Re: Beginner's guide to connecting to the PSX.

Posted: January 20th, 2016, 10:08 am
by gwald
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:

Re: Beginner's guide to connecting to the PSX.

Posted: January 20th, 2016, 1:18 pm
by sickle
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

Re: Beginner's guide to connecting to the PSX.

Posted: January 20th, 2016, 1:30 pm
by Squaresoft74
Thanks for this topic, very informative, should be sticked. :clap

Re: Beginner's guide to connecting to the PSX.

Posted: January 20th, 2016, 2:16 pm
by Shadow
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'.

Re: Beginner's guide to connecting to the PSX.

Posted: January 20th, 2016, 2:22 pm
by sickle
coolbeans =)

Re: Beginner's guide to connecting to the PSX.

Posted: January 22nd, 2016, 12:13 pm
by gwald
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.

Re: Beginner's guide to connecting to the PSX.

Posted: June 5th, 2016, 6:35 am
by Shadow
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.

Re: Beginner's guide to connecting to the PSX.

Posted: June 8th, 2016, 9:22 am
by gwald
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.

Re: Beginner's guide to connecting to the PSX.

Posted: May 25th, 2018, 11:14 am
by Squaresoft74
Could some CatFlap, X-Killer, X-Link mods using nocashio.sys be done at all ?

Re: Beginner's guide to connecting to the PSX.

Posted: May 25th, 2018, 7:01 pm
by LameGuy64
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.

Re: Beginner's guide to connecting to the PSX.

Posted: May 26th, 2018, 2:03 am
by Squaresoft74
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.