SIO Low Level Access

BIOS, Controllers, Memory Cards, Serial I/O, Parallel I/O, etc.
Post Reply
danhans42
BANNED
BANNED
Posts: 329
Joined: Nov 28, 2012

SIO Low Level Access

Post by danhans42 » July 22nd, 2013, 1:02 am

Hi,

Just toying with an idea. Does anyone know how feasable it is to bypass the BIOS calls to access the SIO channel used for the memory cards and controllers? I'm thinking of Spi IO expanders or even a large SPI EEprom for data storage.

The Idea of an IO expander would be pretty cool to allow some GPIO for expansion and playing.

Any ideas?

Cheers

User avatar
Shendo
Verified
C Programming Expert
C Programming Expert
Posts: 250
Joined: Mar 21, 2012
I am a: Programmer
Motto: Never settle
PlayStation Model: SCPH-7502
Discord: ShendoXT
Location: Croatia, EU

Post by Shendo » July 22nd, 2013, 2:03 am

It can be done, in fact Tails92's SDK is accessing gamepads directly without BIOS.
Get the source and check "pad.c" in src.
You can also check out Martin's awesome PSX documentation which has many things covered,
including SIO communication.
Dev console: SCPH-7502, FreePSXBoot, CH340 serial cable.

danhans42
BANNED
BANNED
Posts: 329
Joined: Nov 28, 2012

Post by danhans42 » July 22nd, 2013, 11:23 pm

Cheers, I shall have a look when I am back at home. This is kind of what I had in mind...

Image
psx_spi_gpio.gif
You do not have the required permissions to view the files attached to this post.

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Sep 04, 2013

Post by legacy » September 5th, 2013, 8:27 am

danhans42 wrote:Hi,
SIO channel used for the memory cards and controllers?
SIO means "Serial IO" -> uart (asynchronous)
you probably mean "PAD" channel, which is similar to SPI (synchronous)

and your idea is a good idea!

danhans42
BANNED
BANNED
Posts: 329
Joined: Nov 28, 2012

Post by danhans42 » September 5th, 2013, 9:02 am

I know, but look at the CPU the pads use SIO channel 1 which is indeed SPI like,

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Sep 04, 2013

Post by legacy » September 5th, 2013, 9:26 pm

Is it SONY custom hw and protocol ? I know the PAD signals and protocol from the memorycard point of view, i don't know how the playstation is generating and handling bits, from what i see there is a dedicated hw which simply require a control_status, and a buffer to read/write from/to. So ... i don't know if that hardware is a real SPI (common and standard protocol), or if it is a customized ASIC.

Code: Select all


/*
    from BlackBag/Nagra PSX

    0x1f801040 - unsigned char data;
    0x1f801044 - unsigned short status;
    0x1f80104a - unsigned short cntl;
    0x1f80104e - unsigned short baud; not used???
*/

#define SIO_DATA(x)     *((unsigned char*)(0x1f801040 + (x<<4)))
#define SIO_STATUS(x)   *((unsigned short*)(0x1f801044 + (x<<4)))
#define SIO_CTRL(x)     *((unsigned short*)(0x1f80104a + (x<<4)))
#define SIO_BAUD(x)     *((unsigned short*)(0x1f80104e + (x<<4)))

The CPU is marked as "SONY", mmm :shrug

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests