My favorites | Sign in
Logo
Project hosting will be READ-ONLY Wednesday, 7AM PST due to brief network maintenance
                
Search
for
Updated Aug 25, 2009 by justinhc...@hotmail.com
pxmFileFormat  
PXM file format description.

Header

000 4-byte signature: "PXM "
004 4-byte unsigned long: version number (currently "2")
008 4-byte unsigned long: version of the emulator used
00C 1-byte flags:
    bit 0: reserved, set to 0
    bit 1:
          if "0", movie begins from power-on
          if "1", movie begins from an embedded savestate
    bit 2:
          if "0", NTSC timing
          if "1", PAL timing
    bit 3:
          if "0", movie does not contain embedded memory cards
          if "1", movie does contain embedded memory cards
    bit 4:
          if "0", movie does not contain embedded cheat list
          if "1", movie does contain embedded cheat list
    bit 5:
          if "0", movie does not use hacks
          if "1", movie does use hacks such as "SPU/SIO IRQ always enabled"
    other: reserved, set to 0
00D 1-byte flags: reserved, set to 0
00E 1-byte unsigned char: controller port 1 type
00F 1-byte unsigned char: controller port 2 type
010 4-byte unsigned long: number of frames
014 4-byte unsigned long: rerecord count
018 4-byte unsigned long: offset to the savestate inside file
01C 4-byte unsigned long: offset to the memory card 1 inside file
020 4-byte unsigned long: offset to the memory card 2 inside file
024 4-byte unsigned long: offset to the cheat list inside file
028 4-byte unsigned long: offset to the CD-ROM IDs inside file
02C 4-byte unsigned long: offset to the controller data inside file
030 4-byte unsigned long: string length of author name
034 string: name of the author

Controller Types

01 Mouse
02 Negcon
03 Konami Gun
04 Standard
05 Analog Joystick
06 Namco Guncon
07 Analog Controller

Savestate

After the header comes a compressed savestate. If the movie starts from power-on, the "savestate" is only 4 empty bytes.

Memory Cards

After the savestate come two compressed memory cards. If the movie starts from a clean power-on, the "memory cards" are only 8 empty bytes (4 for each one).

Cheat List

After the memory cards comes a compressed cheat list. If the movie doesn't use them, the "cheat list" is only 4 empty bytes.

CD-ROM IDs

After the cheat list comes the CD-ROM ID chunk:

000 1-byte char: how many CDs does the movie use
001 9-byte string for each CD: CD-ROM ID of each CD used

Controller Data

After the CD-ROM IDs, comes the controller data.

Bytes per Frame

04 Mouse
02 Standard
06 Analog Joystick
06 Analog Controller

(The other controller types are currently not supported by PCSX.)

There's also an extra byte for control functions like Reset, Open/Close CD case, etc.

So, if the movie uses 2 standard controllers, we know it will use 5 bytes per frame (2 bytes for player 1, 2 bytes for player 2 and 1 byte for control functions).

Frame Data

The corresponding bytes indicate which buttons are pressed at each frame for each controller.

Standard Controller

000 2-byte unsigned short:
    bit 0: Select
    bit 1: unknown
    bit 2: unknown
    bit 3: Start
    bit 4: Up
    bit 5: Right
    bit 6: Down
    bit 7: Left
    bit 8: L2
    bit 9: R2
    bit 10: L1
    bit 11: R1
    bit 12: Triangle
    bit 13: Circle
    bit 14: Cross
    bit 15: Square

Analog Joystick/Controller

000 2-byte unsigned short: same as standard
002 1-byte unsigned char: left X
003 1-byte unsigned char: left Y
004 1-byte unsigned char: right X
005 1-byte unsigned char: right Y

(Values are in range 0-255, where 128 is center position.)

Mouse

000 2-byte unsigned short: same as standard
002 1-byte unsigned char: X movement
003 1-byte unsigned char: Y movement
Note: Values are in range 0-255, where 128 is center position

(Values are in range 0-255, where 128 is center position.)

Control Byte

The corresponding bits indicate which functions are used at each frame.

bit 1: Reset
bit 2: Open/Close CD case
bit 3: Enable/Disable "SIO IRQ Always Enabled" hack [4]
bit 4: Enable/Disable "SPU IRQ Always Enabled" hack [4]
bit 5: Enable/Disable cheats [5]
bit 6: Enable/Disable "Resident Evil 2/3 fix" hack [4]
bit 7: Enable/Disable "Parasite Eve 2 fix" hack[4]

[4]Note: These bits will be ignored at movie playback if the "hacks" header flag is not set.
[5]Note: These bits will be ignored at movie playback if the "cheats" header flag is not set.

Sign in to add a comment
Hosted by Google Code