SIO Low Level Access

BIOS, Controllers, Memory Cards, Serial I/O, Parallel I/O, etc.
Post Reply
User avatar
danhans42
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 300
Joined: November 28th, 2012, 11:51 pm
IRC: danhans42
PlayStation Model: SCPH-7502
Want to Find: Inspiration
Location: West Yorkshire, UK
Contact:

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
♥ PSX - http://psx0.wordpress.com

My collection - SCPH-102/SCPH-7502, Yaroze Modded PSone, PocketStation (Clear), 2x Xplorer Carts, 2x Xplorer Pro, 2x AR Carts (1 with Ezoray), GS Pro 3, ISA Comms Link Card. Various USB serial devices, Gameshark Sharklink, Kentai Eddy, iMode Cable & other bits and bobs.

User avatar
Shendo
C Programming Expert
C Programming Expert
Posts: 238
Joined: March 21st, 2012, 4:34 am
I am a: Programmer
Motto: Never settle
PlayStation Model: SCPH-9002
Location: Croatia, EU

Re: SIO Low Level Access

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.
My PS1 consoles: 2 x SCPH-1002, SCPH-5552, SCPH-7002, 4x SCPH-9002, 2 x SCPH-102.
Dev console: SCPH-9002, MM3 - 7 wire modchip, PAL color mod, CH340 serial cable addon.

User avatar
danhans42
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 300
Joined: November 28th, 2012, 11:51 pm
IRC: danhans42
PlayStation Model: SCPH-7502
Want to Find: Inspiration
Location: West Yorkshire, UK
Contact:

Re: SIO Low Level Access

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.
♥ PSX - http://psx0.wordpress.com

My collection - SCPH-102/SCPH-7502, Yaroze Modded PSone, PocketStation (Clear), 2x Xplorer Carts, 2x Xplorer Pro, 2x AR Carts (1 with Ezoray), GS Pro 3, ISA Comms Link Card. Various USB serial devices, Gameshark Sharklink, Kentai Eddy, iMode Cable & other bits and bobs.

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: September 4th, 2013, 9:11 pm

Re: SIO Low Level Access

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!

User avatar
danhans42
/// PSXDEV | ELITE ///
/// PSXDEV | ELITE ///
Posts: 300
Joined: November 28th, 2012, 11:51 pm
IRC: danhans42
PlayStation Model: SCPH-7502
Want to Find: Inspiration
Location: West Yorkshire, UK
Contact:

Re: SIO Low Level Access

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,
♥ PSX - http://psx0.wordpress.com

My collection - SCPH-102/SCPH-7502, Yaroze Modded PSone, PocketStation (Clear), 2x Xplorer Carts, 2x Xplorer Pro, 2x AR Carts (1 with Ezoray), GS Pro 3, ISA Comms Link Card. Various USB serial devices, Gameshark Sharklink, Kentai Eddy, iMode Cable & other bits and bobs.

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: September 4th, 2013, 9:11 pm

Re: SIO Low Level Access

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 1 guest