Device / Filesystem Access

From PSPWiki

Table of contents

Accessing of files on UMD

via Wipeout Pure Browser

Run the following code by accessing your webserver with the Wipeout Pure Webbrowser:

<html>
<head>
<title>UMD</title>
</head>
<body background="file://disc0:/PSP_GAME/PIC1.PNG">
<img src="file://disc0:/PSP_GAME/ICON0.PNG">
</body>
</html>

You might also use drive letter Z: as an alias to disc0.

Accessing of files on Memorystick

via Wipeout Pure Browser

Recent investigation shows that it's also possible to access file on memorystick:

<html>
<head>
<title>MS</title>
</head>
<body background="file://fatms0:/PSP/SAVEDATA/UCUS98612P0000/PIC1.PNG">
<img src="file://fatms0:/PSP/SAVEDATA/UCUS98612P0000/ICON0.PNG">
</body>
</html>

Accessing of files on Flash

via Wipeout Pure Browser

There are two types of flash memory accessible on your PSP:

flash0: is where the system files reside

flash1: is where configurations are store. e.g. key/button-assignment and so on

Finally accessing system files and unencrypted parts of the firmware is possible:

<html>
<head>
<title>Flash</title>
</head>
<body>
<a href="file://flash0:/vsh/etc/version.txt">version.txt</a><br>
</body>
</html>

The output for a version 1.00 PSP will look like:

release:1.00:
build:228,0,3,1,0:root@psp-vsh
system:17919@release_103a,0x01000300:
vsh:p4029@special_day1,v9972@special_day1,20041201:

The output for a version 1.50 PSP will look like:

release:1.50:
build:376,0,3,1,0:root@psp-vsh
system:20182@release_150,0x01050001:
vsh:p4201@release_150,v11079@release_150,20050201:

The output for a version 2.00 PSP will look like:

release:2.00:
build:725,0,3,1,0:root@psp-vsh
system:26084@release_200,0x02000010:
vsh:p4705@release_200,v15867@release_200,20050726:
target:1:WorldWide

An earlier leaked 1.00 firmware shows us:

release:1.00:
build:106,1:root@psp-vsh
system:16214,0x00100000:
vsh:2004_1104_s16214_p3883_v8335:

See Firmware 1.00 Filelist for a complete list of files residing either in flash0 or flash1.

Other schemes for fileaccess

There are also accessible files using the scheme:

file://host0:/www/index.html

host0 only seems to be used to access a DVD drive on a development workstation.

Other schemes, yet not known how to use:

javascript:
mailto:
proc:
fax:
tel:
news: 

proc:// seems to be a promising candidate for further explorations as it can be used to embed streamed content like audio and video as well as commands/calls to developer-crafted functions.

proc://<function>/[options] <location> and or <file> or <http link>

Function can be one of:

atrac3_http*
buttons
command
exists
psmf_http* 
sound
upload

command for example is being used to update game content for Wipeout Pure via

internet downloads:
proc://command/http://wipeoutpurepsp.scej-online.jp/downloads/pak_gamma1/download.pspdif

Probably the downloaded content will then be executed, in this case obviously as diff.

PSP FontCache Kernel module:

host0:../../../module/libfont.prx

List of accessible devices

ms0:       FAT access   - Memorystick
mscm:      BLOCK device - Memorystick
mscm0:     ?alias for ms0?
mscmX:     X = 1...9  (returns error 0x80220081)
fatms0:    ?alias for ms0?
mscmhc0:   ?alias for ms0?

msstor:    BLOCK device - Memorystick (entire stick, including mbr+partitions)
           (blocksize: 512 byte, driver: msstor.prx, sceMSstor_Driver)
msstor0:   ?alias for msstor0?
msstor0p1: ?partition1 of msstor0?

umd:       BLOCK device - UMD
           (blocksize: 2048 byte)
umd0:      ?alias for umd?
umd1:      ?alias for umd?
umd00:     ?alias for umd?
umd01:     ?alias for umd?
umd0X:     X = 2...7  (returns error 0x80010013)
umdXX:     X = 8...99 (returns error 0x8001B002)
disc0:     ?alias for umd? 
isofs:     ?alias for umd?
isofs0:    ?alias for umd?
isofs1:    ?alias for umd?

lflash:    BLOCK device - containing four FAT12 partitions:
           (blocksize: 512 byte, driver: lflash_fatfmt.prx, sceLflashFatfmt)
           0x00000000...0x017FC1FF FAT flash0:  size 24MB
           0x01800000...0x01BFC1FF FAT flash1:  size  4MB
           0x01C00000...0x01CFC1FF FAT unknown: size  1MB
           0x01D00000...0x01DEC1FF FAT unknown: size  1MB
lflashX:   X = 0...99 ?alias for lflash?
flash0:    FAT access - system data / firmware
flash1:    FAT access - configuration data
flashfat:  ?alias for flash0?
flashfat0: ?alias for flash0?
flashfat1: ?alias for flash1?

irda:      BLOCK device - Infrared IrDA port
           (blocksize: user, driver: sircs.prx, sceSIRCS_IrDA_Driver)
irdaX:     X = 0...9 ?alias for irda?

host0:     ?network access to development workstation?

wad:       ?no idea? (appears in Wipeout Pure)
prfat:     ?no idea?
prfatX:    X = 0...99 ?alias for prfat?