BDemu Drive Format

From PS3 Developer wiki
Jump to navigation Jump to search

What is BDemu?

BDemu stands for Blu-ray Disc emulator, and is used by devs and official game-testers to load games (via a tool called PS3gen, which is official Sony software). BDemu can be used on Debug/DEX consoles, CEX2DEX consoles and DECR/TOOL systems.

File Format

Disc Info

Array of these found at 0x40000 (static offset?). One for each disc image.

Offset Type Description
+0 char[0x81] Original disk image path / "(Copied by Generator)"
+0x81 long long Image size
+0x88 char[8] Disc Date
+0x90 char[0x70] ?
+0x100 char [0x20] Title ID
+0x120 char [0x20] Copyright Holder
+0x140 char[0x20] Producer
+0x160 char[8] Disc Date again?
+0x168 char[0x19] Disc type
"PlayStation Master Disc 2"
"PS3 Emulator Image Encryp"
"PS3 Emulator Image NoEncr"
"PlayStation Master Disc 3"
+0x181 char[0x17] ?
+ 0x198 char [0x68] Memorandum

Format an external HDD to BDemu

Warning
When formatted to BDemu, the entire usb-drive is formatted, and the whole partition table will be lost! The drive can however, at a later point be split up again to support multiple partitions. (see guide under this text)

There are 2 methods to format a drive for BDemu:

  1. Format on a Debug/DEX ps3 (under Debug Settings) - (Recommended)
  2. Format using Ps3Gen


It is recommended to format an external HDD on the PS3 (under debug settings) and NOT via ps3gen. This is to ensure support for future BDemu modifications

Offset where BDemu begins on external-hdd: 0000020000

How to split up ext. HDD to make it contain both BDemu and NTFS/FAT32 partitions.

Warning
Do not use BDemu game selecting on MultiMan when using customized partitions on the drive,

since doing that would render your custom partition table useless.

However you can recover, if you set the string back to the value you use beforehand in winhex(to allocate size),

and use a partition recovery software to recover the ntfs and/or fat32 partition(s).
Offset
The changed string at offset 0x01ca
* Format ext HDD on ps3 to BDemu, DON'T use ps3gen to do so!

* Connect the HDD to your PC;

* Start a HEX edit of your choice (i used winhex)

* In WinHEX, from the menu bar select “Tools -> Open Disk Drives”

* Now select the ext HDD that you just made BDemu

* Go to Offset “1CA”, you can use the command ALT + G (with WinHEX)


1 sector = 512 bytes
Size my HDD = 500107862016 bytes
500107862016 : 512 = 976773168 sectors
Convert 976773168 into HEX = 3A386030
Reversed bytes 3A|38|60|30 -> 30|60|38|3A Maximum size of partition 2TB

*. Now using the above procedure we can choose the size that we want to give our PS3 partition.
Example(these exact value's work on any drive that is larger than 300GB, as it allocates precisely 300GB for BDemu on the drive):
My HDD is 500GB and I want to dedicate the 300GB PS3, so I will do so
a. Size that I want to give to the partition = 300GB -> 322122547200 bytes
b. Transform the bytes into sectors 322122547200 : 512 = 629145600 sectors
c. Convert sectors into HEX 629145600 -> 25800000
d. Reversed bytes 25|80|00|00 -> 00|00|80|25
e. Finally, I replace it and save the changes.

* Now open a partition manager/tool to allocate a NTFS or FAT32 partition on the left-over free space.

* Done, enjoy a single usb drive for all your needs!

How to add and resize slots on a BDemu partition manually

(use Aldo's tool on the bottom of this page for an automated solution)

By default when you format your external drive to BDEMU on ps3 console it'll make 46GB sized partitions same goes with 
ps3gen BDEMU format utility except ps3gen will you give you 4 slots for games, problem is you can only have 4 and if your
 external isn't at least 184GB+ you can't use all partitions.

For instance since I am using a 32GB sandisk thumb drive i would only get one partition each time, meaning only one game.
 Because each partition has to take up 46GB (Bluray dual layer basically) it doesnt take your drive size like mine 32GB and
 divide by 4 slots meaning I should have four 10.6GB slots but it doesnt work that way.

So i found another way that works requires a hex editor. I'll use HxD for this tutorial or whatever you want to call it. I 
also used aldostools start_ps3gen.exe to have any # of slots I wanted up to 255 instead of just 1 or 4. (you can also edit 
the ps3gen dll to do this)

SETUP
1. Put start_ps3gen.exe in same folder as ps3gen (check both to run as admin)
2. Open start_ps3gen.exe pick number of slots you want.
3. ps3gen should start after you do this, pick command then BD Emulator HDD Utility...
(May have to format first on PS3 if run into problems)
4. pick your drive then pick Format HDD for BD emulator, say yes to all warnings.
5. this should make the # of slots you picked in step 2 into images on disc.
6. Now build a game in ps3 gen (find out how to do this yourself)
7. at the end of building game where you the select output image format pops pick For BD Emulator (direct) and choose Image0
8. Game will write to ext HD (takes about an hour for a 20gb game)

RESIZING
(Since you'll be fooling with your hard drive in this section, make sure you fully understand this guide to do this,
it works ive tested, i take no responsibility for possible damage)
9. Open Hxd (or other hex editor like winhex) go to Extras, open disk and pick your external disk with ps3 game and 
uncheck read only

10. Press ctl+g or pick search, Go to..., type in offset 20000

11. If you're in the right place to the right of the hex you should be able to read BD-EMU-1

12. At offset 20034 starts your first slot partition size 46GB hex 05D3A0

13. to the right of hex 05D3A0 there are some zeros then more hex this is the ACTUAL size of the game you just put on there

14. Open up calculator in windows, pick view, programmer take the ACTUAL SIZE OF GAME in hex and multiply by 4
example: my Resident evil 6 was 513F40 (10.1GB) multiply by 4 is 144FD00

15. Take this new hex value (ACTUAL GAME SIZE multiplied by 4 in hex value ex: 144FD00 for my RE6) and replace the 46GB hex
number with it so 05D3A0 (46GB partition size) becomes ACTUAL GAME SIZE multiplied by 4 hex value (Example: 144FD00 hex value)

16. As you may notice every other line there is pattern, each time you see 05D3A0 thats the next partition. 
Since I picked 3 slots I see this 05D3A0 3 times.

17.Pick file, save in HxD close program.

18. Add another game to Image1 (the next partition) via ps3gen and start from step 9, do this for each new game added

BDemu Drive Tools

Sources:

http://www.ps3hax.net/2012/10/guide-how-to-edit-the-size-of-slot-and-hdds-partition-in-ps3gen/

http://psx-scene.com/forums/f290/tutorial-bdemu-change-size-partitions-match-game-rather-than-46gb-default-dex-106748/