• Good day, Guest!
    Flowers in Chania

    OG is raising money to form a non profit community interest company enabling us to preserve more history than ever before!

    Unfortunately, like most things in life this is going to cost money and we're asking for some help from the community. All users will be given donator status, along with early updates and depending on how much you help us with we'll try to chuck in some free merch!

    This will cost us roughly $850 for two years including business address/phone number etc which is needed to register a business bank account within the UK.

    You can help us by making a custom pledge, or by making a general pledge as it all helps us greatly. We're happy for a one time donators via Ko-Fi, Patreon asks monthly so please be aware. To prevent charge backs we're unable to accept Paypal at this time. Although once live this will be sorted too!

    One time donations can be sent via our Ko-Fi,



    Or for monthly please visit our Patreon, Ko-Fi is preferred as they charge us less fee's. Become a Patron of Obscure Gamers!
  • The Obscure Gamers 2020 Light and Dark themes are now live! Please report any bugs and make any suggestions you may have to a member of staff.

PS1 More detailed info about the PS1 PIO expansion port?

ejack

Registered
Registered
Joined
Aug 25, 2019
Messages
14
Reaction score
0
Hi all!

I'd like to have more info about the expansion port: I see it used by cheat devices and PSIO so obviously it has great power but I can't find info as to why.
Of course I looked at Nocash's specs and it gives the pin names but I don't know more precisely what is possible, how to use it, etc.
Maybe my google-fu failed me on this one.
Thanks a lot for any info or link you may have for me.
 

megavolt85

DreamShell Developer
Refugee
Joined
Jun 17, 2019
Messages
59
Reaction score
81
AG User Name
megavolt85
AG Join Date
01.09.2015
Of course I looked at Nocash's specs and it gives the pin names but I don't know more precisely what is possible, how to use it, etc.
read many times
 

FREE_WORLD

Registered
Registered
Joined
May 30, 2019
Messages
31
Reaction score
6
AG User Name
davesandell
AG Join Date
October 2nd 2012
Work backwards - what are you trying to achieve? Then how can you get from a stock system to your required result? i.e. Does the expansion port hold the gateway to what you are wanting to do with the system? If so - then what do the pins do? Will this then allow you to get the results that you are seeking from the system...
 

Trimesh

2020 Donator
2020 Donator
Refugee
Registered
Joined
May 30, 2019
Messages
113
Reaction score
113
AG User Name
Trimesh
AG Join Date
Jul 4, 2008
It's basically just an extension of one of the internal buses in the console - it's got the lower 24 bits of the address bus, a 16 bit data bus and the necessary I/O strobes (read, write, chip select).

It's also got an interrupt line, DMA request and grant, an extra write strobe (apparently used for debug serial on the original target box) and an audio input (digital, basically Sony style 16 bit linear PCM running in slave transmitter mode).

The easiest way to use it is to just connect a ROM to CS0/ and make sure you have the correct magic data in the first 256 bytes - the boot ROM checks for the existence of a "Licensed by Sony Computer Entertainment Inc." string at a specific ROM address and if it's found will jump to the user supplied code.

Note that if you get control of the system using the hook at 0x1f000080 in the ROM it's in a half-initialized state and most of the system services won't work.
 

ejack

Registered
Registered
Joined
Aug 25, 2019
Messages
14
Reaction score
0
Thank you for your answers.
I'm currently working on the CD drive and didn't have time to learn about PIO from zero.
As a first try I thought I would edit the RAM like giving infinite life to a character as it's easy to see the result and I thought editing one byte would be easy, but I'll also look at what I can do with a ROM.
Thanks to you Trimesh I read about DMA and found some info about it so it will be enough for some time, I'll come back when I'm stuck again.
 

Trimesh

2020 Donator
2020 Donator
Refugee
Registered
Joined
May 30, 2019
Messages
113
Reaction score
113
AG User Name
Trimesh
AG Join Date
Jul 4, 2008
Thank you for your answers.
I'm currently working on the CD drive and didn't have time to learn about PIO from zero.
As a first try I thought I would edit the RAM like giving infinite life to a character as it's easy to see the result and I thought editing one byte would be easy, but I'll also look at what I can do with a ROM.
Thanks to you Trimesh I read about DMA and found some info about it so it will be enough for some time, I'll come back when I'm stuck again.
Just for clarity, although DMA is supported on the expansion port, it does not support an external bus master. The DMA has to be set up by the R3K and once it's running the DMA controller itself is the bus master. Basically, you can copy data from the expansion space to or from system memory without CPU intervention - but the process still has to be set up by the CPU first.
 

ejack

Registered
Registered
Joined
Aug 25, 2019
Messages
14
Reaction score
0
Thank you for the precision, playing with a ROM is indeed the simplest thing to do now.
Also I realized that injecting executables from the PIO would greatly help my other projects so maybe I'll change my priorities.
Sadly nearly each time I find subjects about this, they actually are about injecting code using devices like AR or Xploder
 
Last edited:

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
41
Reaction score
45
AG User Name
dh115
AG Join Date
15th September, 2007
I made a DIY romcart and it works fine with Sicklebricks ROMprod and EXE's (I tested sioload with it). Only issue is there is no switch functionality.
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
41
Reaction score
45
AG User Name
dh115
AG Join Date
15th September, 2007
256kb. It's just a bare rom, no logic on there or anything and ROMprod is designed for the Xplorer so expects the switch mapped to the xplorer addresses so wouldn't expect it to work.

I could disable the ROM with OE, CE or whatever if needed but haven't bothered.
 

Damian

Registered
Registered
Joined
Sep 15, 2019
Messages
3
Reaction score
1
AG User Name
Damian
AG Join Date
Feb 19, 2019
Was it possible to use parallel port as external storage? Something like you pop cartridge into port and after starting console you'll see a new menu that would allow to play audio CD's and manage memcards but also new menu where you can check what is installed and how much space was left. Then after starting for example Tekken 3 in options you can install important game data like sounds, models, textures and so on while FMVs and music is still played from CD?
 

Master991

Registered
Registered
Joined
Jun 9, 2019
Messages
1
Reaction score
0
AG User Name
Master991
I made a DIY romcart and it works fine with Sicklebricks ROMprod and EXE's (I tested sioload with it). Only issue is there is no switch functionality.
Can you link a scheme? thanks!
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
41
Reaction score
45
AG User Name
dh115
AG Join Date
15th September, 2007
No link, just forum posts on here and on psxdev.

Just wire up the ROM to the data and address lines, and CE OE etc and that's it.
 

ejack

Registered
Registered
Joined
Aug 25, 2019
Messages
14
Reaction score
0
No link, just forum posts on here and on psxdev.

Just wire up the ROM to the data and address lines, and CE OE etc and that's it.
I still haven't been able to try by myself but all that is needed for booting a ROM is D0-7, A0-18 (if 512kB), RD and CE, right?
 

ejack

Registered
Registered
Joined
Aug 25, 2019
Messages
14
Reaction score
0
And second question, what is the timeout for the bus, i.e what is the maximum delay between /RD begin brought low and the actual reading of the data?
I thought it'd be in nocash's specs but it doesn't look like so
 

Trimesh

2020 Donator
2020 Donator
Refugee
Registered
Joined
May 30, 2019
Messages
113
Reaction score
113
AG User Name
Trimesh
AG Join Date
Jul 4, 2008
And second question, what is the timeout for the bus, i.e what is the maximum delay between /RD begin brought low and the actual reading of the data?
I thought it'd be in nocash's specs but it doesn't look like so
The wait states on the various I/O regions are programmable in a rather complex and confusing way - using the defaults that are set up by the boot ROM (which is what you need for an expansion ROM), the accesses are fairly slow and anything with an access time of 150ns or better is OK.
 
Top