Movie Object

Movie Object
Type of format Data format and Object file
First released 2006
Developer Blu-ray Disc Association
Filename extension MovieObject.bdmv
Limits 1,001 Objects allowed
Open Format? Yes
Free Format? ?
Magic Number MOBJ0100MOBJ0200 (BD) MOBJ0300 (UHD-BD)

A Movie Object is an executable object file with a set of navigation commands that start playlist playback upon user instruction or execute another Movie Object.

Its magic numbers are MOBJ0100 and MOBJ0200. For Ultra HD Blu-ray, its magic numbers are MOBJ0300.

 

Inside a Movie Object file. 

Example Code 

00000000 4D 4F 42 4A 30 32 30 30 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 26 00 00 00 00
00000030 00 02 00 00 00 01 21 81 00 00 00 00 00 01 00 00
00000040
00 00 00 00 00 01 21 81 00 00 00 00 00 01 00 00
00000050
00 00

     = The file's magic number (MOBJ0200)
     = Tells player the file size of the code (in bytes) (38 bytes)
     = Tells the player how many objects their are
     = A permission flag byte that shows the object's permissions of resume, menu call, and title search
     = Shows how many commands are for each object
     = The code of the actual navigation commands. After the last command of the last object, the file has no ending signature. 

 

Overall Structure

  • Overall File Header (fixed at start): 
    • Magic Number (8 bytes): "MOBJ0200" (hex: 4D 4F 42 4A 30 32 30 30) — identifies the file version/format.  
    • Total Code Size (3 bytes): Size of all following object data (example: 00 00 26 = 38 bytes). 
    • Number of Movie Objects (2 bytes): Total count of objects in the file. (e.g. 00 02 = 2 Objects. Max number of Objects are 1,001; in Hex that equals to 03 E9.
  • Then, repeated per Movie Object (no separators; sequential):
    • Permissions Flag (1 byte): The single-byte field controlling access (e.g., "02" or values like 00/10/80/etc.):
      • Bit-packed: Resume behavior (discard/suspend), Menu Call (enable/disable), Title Search (enable/disable).
      • Duplicates exist (e.g., 00 and 10 both = discard/enable/enable) assuming because low bits are often reserved/ignored by players.
    • Command Count (2 bytes): Number of navigation commands for this object (e.g. 00 01 means 1 command).
  • Navigation Commands (variable): Sequence of commands, each typically 8–12 bytes:
    • Opcode-based HDMV instructions (e.g., Move GPR/PSR, Branch/GoTo, conditional jumps, set registers for title selection, menu calls, etc.). Example: 21 81 00 00 00 00 00 01 00 00 00 00 = JumpTitle1; meaning it jumps to the first title.
    • No fixed length per command; parsed by length implied in opcode or fixed 8-byte structures in many cases.
  • End of File: No ending signature/marker. 
    • File ends immediately after the last command of the last object.

Object Permissions

Each Movie Object has permissions to control "Resume", "Menu Call", and "Title Search."

  • Resume: Prohibit or permit of resume play (under discard or suspend)
  • Menu Call:  Prohibit or permit of Menu calls (UO) (under disable or enable)
  • Title Search:  Prohibit or permit of title search  (under disable or enable)       

Object Permission List

   HX Resume Menu Call Title Search
   00 discard - enable - enable
   10 discard - enable - enable
   20 discard - enable - disable

   30
discard - enable - disable

   40
discard - disable - enable

   50
discard - disable - enable

   60
discard - disable - disable
   70 discard - disable - disable
   80 suspend - enable - enable
   90 suspend - enable - enable
   A0 suspend - enable - disable
   B0 suspend - enable - disable
   C0 suspend - disable - enable
   D0 suspend - disable - enable
   E0 suspend - disable - disable
   F0 suspend - disable - disable

 

Commands

Here's a short example of HDMV commands in a Movie Object file. 

Example Code 

00000000 4D 4F 42 4A 30 32 30 30 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 01 38 BA 00 00 00 00
00000030 00 18 80 00 08 63 50 00 00 01 00 00 0F EB 80 00
00000040 00 04 50 00 00 01 00 00 0A 27 00 00 0F EB 50 00
00000050 00 01 00 00 0F EB 00 00 0A 27 50 40 00 01 00 00
00000060 0F EC 00 00 FF FF 48 00 03 00 00 00 0F EB 00 00
00000070 0F EC 20 81 00 00 00 00 00 07 00 00 00 00 20 81
00000080 00 00 00 00 00 09 00 00 00 00 20 81 00 00 00 00
00000090 07 D5 00 00 00 00 20 81 00 00 00 00 00 09 00 00
000000A0 00 00 50 40 00 01 00 00 0F EB 00 00 00 00 50 00

Then you'll see the list of commands in it's hexadecimal values (colored) beside BDedit's human readable syntax.

Example Code 

[50000001,00000FEB ,80000004]  Move GPR4075PSR4 ;PSR4: Title Number (b15-b0) {1-999,$ffff}
[50000001,00000A27 ,00000FEB]  Move GPR2599GPR4075
[50000001,00000FEB ,00000A27]  Move GPR4075GPR2599
[50400001,00000FEC ,0000FFFF]  Move GPR407665535
[48000300,00000FEB ,00000FEC]  NE GPR4075GPR4076
[20810000,00000007 ,00000000]  GoTo 7
[20810000,00000009 ,00000000]  GoTo 9
[20810000,000007D5 ,00000000]  GoTo 2005
[20810000,00000009 ,00000000]  GoTo 9
[50400001,00000FEB ,00000000]  Move GPR40750
[50000001,000009F8 ,00000FEB]  Move GPR2552GPR4075

It is possible to edit the Movie Object file directly using a hex editor like ImHex or Hexed.it. But it's recommended to use Blu-ray editing software like BDedit or Scenarist. Unless, your a chad and knows each hexadecimal commands by heart.

    See: HDMV Command Language

 

 



Author(s) : Æ Firestone

on Thursday, February 19, 2026 | , , , | A comment?
0 responses to “Movie Object”

Leave a Reply

Popular Pages