Exporting Save Files From a PS2 Memory Card

In the previous article, we analyzed the file system of the PS2 memory card. This time, we’ll dive straight into practice and write Python code to export specific game saves. The complete code for this article can be found at: ps2mc-browser. 01 Parsing the `SuperBlock The structure of theSuperBlock` is as follows, with a size of 340 bytes: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 struct SuperBlock { char magic[28]; char version[12]; uint16 page_size; uint16 pages_per_cluster; uint16 pages_per_block; uint16 unknown; // ignore uint32 clusters_per_card; uint32 alloc_offset; uint32 alloc_end; uint32 rootdir_cluster; uint32 backup_block1; // ignore uint32 backup_block2; // ignore uint32 unknown[2]; // ignore uint32 ifc_list[32]; uint32 bad_block_list[32]; // ignore byte card_type; byte card_flags; byte unknown; // ignore byte unknown; // ignore }; Use struct.unpack() to unpack: ...

2023-09-29 · caol64

Analysis of the PS2 Memory Card Storage Format

01 Preface As an 80s gamer, the PS2 game console has always held a special place in my heart. Over 20 years have passed, yet recently, due to the emulator, I rediscovered it. After revisiting games for a while, I had a sudden idea: could I recall my younger self with my current knowledge? So, I began creating this series of articles, starting with analyzing the file system of the PS2 memory card and gradually delving into its file storage mechanism and the save files of each game. My goal is to ultimately simulate the classic 3D character rotation effect from game saves using Python and OpenGL, commemorating the classic game console that once accompanied me through my youth. ...

2023-09-26 · caol64