Page 1 of 1

Testing homebrew on real hardware via Xplorer/Xploder

Posted: Sun Aug 24, 2014 10:02 pm
by patrickvogt

I would like to test some PSX homebrew on the real hardware. This can be done with an old Win98-PC and the Xploder/Xplorer cheat device. I wanted to try to replace the Win98-PC with a modern Linux/Win8 32 or 64 bit PC.

I recently build a litte cable and tool to sniff on the communication between my old Win98-PC and the Xploder. The result was basically what is on Martin Korths site (Link: ... sxplorerio).

I tried to implement the protocoll (on Linux using the basic 'outb' and 'inb' system calls (which needs root access), see by using the following 'protocoll/handshake' to determine if the byte was sent successfully (again from Martin Korths site):
== To send a byte to psx ==
out data to psx
set printer select line high
wait for ack from psx to go high
set printer select line low
wait for ack from psx to go low
Unfortunately, this doesn't work for me. When I try to use X-Killer (unlicensed program to communicate with the Xplorer/Xploder e.g. to look at the RAM) after my program was executed the X-Killer will always get a timeout. So I guess something is working, but it is not fully working.

Did anyone implement this protocoll to send a byte / upload a bin file into the memory via the xplorer/xploder? Do I need to set some special options of the port, e.g. synchronous mode?

Thanks in advance

Re: Testing homebrew on real hardware via Xplorer/Xploder

Posted: Wed Aug 27, 2014 9:21 pm
by patrickvogt

so I switched to something easier: Freeze and Unfreeze of the PSX. The code in the attachment contains a Linux program (needs to be executed as root) to Freeze and Unfreeze the PSX while playing a game using the Xploder.

My Xploder (Basic) has the V2 Rom and the bytes for freeze are 0x57, 0x4C and for unfreeze you do a 0x57, 0x52.

So the protocoll/handshake to send a byte definitely works.

I think the problem with the file upload is the length field. I guess it should be longer than the 3 bytes (perhaps 4 bytes, although you only need 3 bytes to specify a length within 0...2MB), so in my case (see above) the xploder expected probably 0x006800XX bytes (where XX is represents the first real data byte) instead of the wanted 0x006800 bytes. I have to investigate this further. X-Killer and Xlink will timeout because they do a negotiation/initialization with the Xploder. So if the xploder is still in the "want to receive data bytes" mode it doesn't want to do any negotation.

Re: Testing homebrew on real hardware via Xplorer/Xploder

Posted: Wed Aug 27, 2014 11:18 pm
by DS_Marine
I don't know about that xploder thing, but what I do know is that you may need to experiment with different settings of the paralell port.
Older ports where SPP (standard paralell port), slower and easier to get it working. There are also ECP and EPP mode, with DMA assisted transfers, so you might want to try all modes.