PS2 Partition types

Berion

Developer
What's is the difference between partitions with various prefixes? Let's say that "__" is a system kind partition, and "+" is user kind partition. But what about "PP."? And from where those crazy names come from? :)

I see that unofficial LaunchELF v4.43a (2019-01-11) allow creating only "+" type and during format, create by default few system partitions. So it is impossible to create "PP." one by wLE?

PS: Does "__mbr" is just binary blob (raw access)?
 
The partition's type is determine by a field in the APA header, while its name could indicate its purpose.
According to Sony, these prefixes have the following meaning:
PrefixDescription
PPPartition Parent
PCPartition Child
An application may consist of one parent, and one or more child partitions. These are not to be confused with the main and sub APA partitions - for which every APA "partition" actually consists of one main and up to 64 sub-partitions.
These partitions (the parent and child) will appear in the browser.

The partitions created after formatting begin with double underscores. So it can be said that these are for system use, by Sony software.

__mbr has no filesystem. Its body contains the boot loader. As a system partition, it doesn't have an icon and its APA extended attribute area (accessed by opening the APA partition with the open function) is unused. Depending on the version of the HDD Utility Disc, its APA extended attribute area was once used as temporary storage for the PFS bitmap in fsck (since the IOP only has 2MB).

As for the homebrew world, our partitions somehow begin with a plus (+). But there's actually no requirement for this. This restriction has just existed for a long time, perhaps dating back all the way to sjeep's original contribution to the PS2SDK.
If I had to guess, it was made this way to prevent users from creating partitions that appear as "corrupted data" in the browser. For a partition to be considered valid, it must have icons written into its extended attribute area.
 
Last edited:
Thank You for well explained answer. Meanwhile I have read some documentation of APA and I cannot put this mapping into my imagination. It is something like streams in NTFS but on partition table level or maybe more like extended partitions in MBR/GPT scheme (mostly troubled me CPs)?
 
It's not like your usual partitioning scheme (at least not like MBR). There's more than a handful of partitions and there's no partition table.

It's more like a linked list of slices, regardless of whether the region is used or not. Truly unused space is always towards the end of the disk. Any unused space (likely deleted partitions) in-between are still linked, but are marked as empty and are named __empty. The smallest slice is 128MB, while the largest is 1/32 of the disk, capped to 32GB (from what I remember anyway). The links between partitions do not have to be ordered.

Since it's a linked list of partitions, things get ugly once the cache runs out of entries (which can happen once you have something like a 160GB disk). The disk will get commanded to scan across vast numbers of sectors, whenever a partition is opened.
 
APA involves the whole disk. The only reason why the PSX could have its disk split into 2, is because the classic PS2 ATA interface is emulated in some form. So HDD.IRX thinks there is only either 2 or 40GB, while the remainder of the space is used by the DVRP.

I suppose you could create "holes" in an APA disk, between two APA partitions. Since it has a linked-list format, it is not directly possible to tell where "lost" space is.
 
These are not to be confused with the main and sub APA partitions - for which every APA "partition" actually consists of one main and up to 64 sub-partitions.

Could You elaborate more about this? To be precise: what is the difference between CP and sub partition?

And/or maybe You have some very good documentation like for devs (i.e also interesting me an attribute area)?

These partitions (the parent and child) will appear in the browser.

Only if they doesn't have dot at start in partition label, and icon in header - is this correct?


I'm writing a complex tutorial which covering up FHDB/HDOSD/PSBBN/Linux but I want also add some semi-technical explanations for curious peoples but without going to deep in technicals. So I need fully understand the structure and play with it to check/break it etc. ^^

APA involves the whole disk.

What if APA is in GPT protective area (it isn't larger than 512B, right?), and APA map first 128MiB and name it as i.e "__gpt", while any standard PC partitions starting beyond area defined by PS2 and user must of course aware it? Or does "__mbr" must be on specified address, and is not read by console from APA but hardcoded LBA?

Well this doesn't help anyhow in PS2 homebrew world but could allow interesting hybrid disk creation while user could use disk in different environments without killing each other. Of course if user wouldn't create/modify already existing PS2 partitions because the rest of HDD would be see as free space.
 
Last edited:
Could You elaborate more about this? To be precise: what is the difference between CP and sub partition?

Allow me to deviate from the terminology used by Sony. Sony called everything a "partitition", but let's call a single game content that appears in the HDD Browser an "Installation".
An Installation can consist of 1 main APA partition, with up to 64 sub-partitions associated to give the desired amount of space.

As with DLCs you find with the PSP, PS3 and PS4, a game could have multiple separate content associated with it; the game itself, DLC1, DLC2 etc. All of which can appear in the browser as installations.
In such a case, the game could be the Parent (Partition Parent/PP), while its associated DLCs are Children (Partition Child/PC).

And/or maybe You have some very good documentation like for devs (i.e also interesting me an attribute area)?

This information is only available from the Sony SDK.

Only if they doesn't have dot at start in partition label, and icon in header - is this correct?
I don't know what's the selection criterion for the browser, but partitions that do not follow the standard naming convention are ignored.

What if APA is in GPT protective area (it isn't larger than 512B, right?), and APA map first 128MiB and name it as i.e "__gpt", while any standard PC partitions starting beyond area defined by PS2 and user must of course aware it? Or does "__mbr" must be on specified address, and is not read by console from APA but hardcoded LBA?

__mbr is always assumed to begin from sector 0 and the whole disk is assumed to be usable (up to the last LBA).
 
Understood. Thanks. ^^

Since it's a linked list of partitions, things get ugly once the cache runs out of entries

Also could You elaborate more about it? What situations cause cache runs out?

- - -

Yes, that I think I'm understand but I have in mind something like below procedure and in theory such hybrid disk should be doable. ^^

1. Creating APA with all needed partitions.
2. Modifying APA to move "__system", "__sysconf", "__common" etc. outside first 512B+128MiB.
3. Modifying APA to create "__gpt" from space right after APA table and before another first partition like i.e "__system".
4. Modifying APA to create "__pcfs" from space user want to use for i.e for NTFS partition (the easiest would be just using sectors from the end of disk).
5. Creating GPT with filled MBR Protective area by APA.
6. Modifying GPT to use space earlier specified as "__pcfs" to raw partition and creating i.e NTFS fs on it.

In such way, both worlds can coexists without knowledge about each other and corrupting each other. Points no.3 and 4 are to prevent overwriting data belong to PC. User also cannot create new partitions or changing size of this i.e NTFS. And PS2 will not kill PC stuff because she will have marked those space as existing partitions.

Assumptions:
  • APA fitting into 512B
  • Attributes area for partitions aren't part of partitions physically but written in APA table.
 
Last edited:
What "__net" purpose is for? I saw that wLE doesn't see it and uLE kHn allow me even go there (it is empty). Is it used only for PSBBN? I read on old assembler-games threads that this partition somehow is important and containing per console DRM for installed content from BB channels. It is only purpose?
 

Similar threads

Back
Top