InterDVDInstruction๏ƒ

Inherits: Object

Encodes 8-byte DVD-Video Interaction Machine commands for IFO authoring.

Description๏ƒ

Compiles on-disc VM instructions (groups 0-6, GPRM/SPRM, Link/Jump/Call/RSM). The DVD player executes them after burn. There is no in-engine interpreter or disc player.

Methods๏ƒ

PackedByteArray

encode(group: int, op: int, cmp: int, dest_reg: int, dest_sprm: bool, src: int, src_reg: bool, src_sprm: bool, link: int, from_domain: int, to_domain: int, link_target: int) static

PackedByteArray

encode_break() static

PackedByteArray

encode_exit() static

PackedByteArray

encode_goto(line: int) static

PackedByteArray

encode_jump_vts_ptt(from_domain: int, title: int, ptt: int) static

PackedByteArray

encode_link(kind: int, from_domain: int, to_domain: int, target: int) static

PackedByteArray

encode_nop() static

PackedByteArray

encode_rsm(from_domain: int) static

PackedByteArray

encode_set(op: int, gprm: int, src: int, src_reg: bool, src_sprm: bool) static

PackedByteArray

encode_set_gprmmd(gprm: int, value: int, counter: bool) static

PackedByteArray

encode_set_hl_btnn(button: int) static

PackedByteArray

encode_set_nvtmr(seconds: int, pgc: int) static

PackedByteArray

encode_set_stn(audio: int, subtitle: int, subtitle_on: bool, angle: int) static


Enumerations๏ƒ

enum Group: ๐Ÿ”—

Group GROUP_SPECIAL = 0

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!

Group GROUP_SET_SYSTEM = 2

There is currently no description for this enum. Please help us by contributing one!

Group GROUP_SET = 3

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!

Group GROUP_CMP_SET_SYSTEM = 5

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!


enum Compare: ๐Ÿ”—

Compare CMP_ALWAYS = 0

There is currently no description for this enum. Please help us by contributing one!

Compare CMP_AND = 1

There is currently no description for this enum. Please help us by contributing one!

Compare CMP_EQ = 2

There is currently no description for this enum. Please help us by contributing one!

Compare CMP_NE = 3

There is currently no description for this enum. Please help us by contributing one!

Compare CMP_GE = 4

There is currently no description for this enum. Please help us by contributing one!

Compare CMP_GT = 5

There is currently no description for this enum. Please help us by contributing one!

Compare CMP_LE = 6

There is currently no description for this enum. Please help us by contributing one!

Compare CMP_LT = 7

There is currently no description for this enum. Please help us by contributing one!


enum SetOp: ๐Ÿ”—

SetOp SET_NOP = 0

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_ASSIGN = 1

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_SWAP = 2

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_ADD = 3

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_SUB = 4

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_MUL = 5

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_DIV = 6

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_MOD = 7

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_RANDOM = 8

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_AND = 9

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_OR = 10

There is currently no description for this enum. Please help us by contributing one!

SetOp SET_XOR = 11

There is currently no description for this enum. Please help us by contributing one!


enum LinkKind: ๐Ÿ”—

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!

LinkKind JUMP_TT = 5

There is currently no description for this enum. Please help us by contributing one!

LinkKind JUMP_VTS_TT = 6

There is currently no description for this enum. Please help us by contributing one!

LinkKind JUMP_VTS_PTT = 7

There is currently no description for this enum. Please help us by contributing one!

LinkKind CALL_SS = 8

There is currently no description for this enum. Please help us by contributing one!

LinkKind JUMP_SS = 9

There is currently no description for this enum. Please help us by contributing one!

There is currently no description for this enum. Please help us by contributing one!


enum Domain: ๐Ÿ”—

Domain DOMAIN_FPC = 0

There is currently no description for this enum. Please help us by contributing one!

Domain DOMAIN_VMG = 1

There is currently no description for this enum. Please help us by contributing one!

Domain DOMAIN_VTSM = 2

There is currently no description for this enum. Please help us by contributing one!

Domain DOMAIN_VTST = 3

There is currently no description for this enum. Please help us by contributing one!


enum SPRM: ๐Ÿ”—

SPRM SPRM_M_ASN = 0

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_ASTN = 1

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_SPSTN = 2

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_AGL_N = 3

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_TT_N = 4

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_VTS_TT_N = 5

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_TT_VTS_N = 6

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_PTT_N = 7

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_HL_BTNN = 8

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_NVTMR = 9

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_NV_PGC = 10

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_P_N = 11

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_PTT_N2 = 12

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_CN = 13

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_VIDEO_CFG = 14

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_AUDIO_CFG = 15

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_INI_AUD_LANG = 16

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_INI_AUD_EXT = 17

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_INI_SP_LANG = 18

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_INI_SP_EXT = 19

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_REGION = 20

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_RESERVED_21 = 21

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_RESERVED_22 = 22

There is currently no description for this enum. Please help us by contributing one!

SPRM SPRM_RESERVED_23 = 23

There is currently no description for this enum. Please help us by contributing one!


Method Descriptions๏ƒ

PackedByteArray encode(group: int, op: int, cmp: int, dest_reg: int, dest_sprm: bool, src: int, src_reg: bool, src_sprm: bool, link: int, from_domain: int, to_domain: int, link_target: int) static ๐Ÿ”—

Encodes one 8-byte instruction. Returns an empty array when the domain transfer is illegal.


PackedByteArray encode_break() static ๐Ÿ”—

Encodes Break (00 02).


PackedByteArray encode_exit() static ๐Ÿ”—

Encodes Exit (30 01).


PackedByteArray encode_goto(line: int) static ๐Ÿ”—

Encodes Goto to instruction line line (1-128).


PackedByteArray encode_jump_vts_ptt(from_domain: int, title: int, ptt: int) static ๐Ÿ”—

Encodes JumpVTS_PTT to title / ptt after validating the domain matrix.


Encodes a Link, Jump, Call, or RSM command after validating the domain matrix.


PackedByteArray encode_nop() static ๐Ÿ”—

Returns eight zero bytes (NOP).


PackedByteArray encode_rsm(from_domain: int) static ๐Ÿ”—

Encodes Resume. Legal only from VMG or VTSM.


PackedByteArray encode_set(op: int, gprm: int, src: int, src_reg: bool, src_sprm: bool) static ๐Ÿ”—

Encodes a set-op targeting a GPRM (assign, swap, add, SET_RANDOM in the range 1 through src, and, or, xor, and similar ops).


PackedByteArray encode_set_gprmmd(gprm: int, value: int, counter: bool) static ๐Ÿ”—

Encodes SetGPRMMD for GPRM gprm.


PackedByteArray encode_set_hl_btnn(button: int) static ๐Ÿ”—

Encodes SetHL_BTNN for button 1-36.


PackedByteArray encode_set_nvtmr(seconds: int, pgc: int) static ๐Ÿ”—

Encodes SetNVTMR.


PackedByteArray encode_set_stn(audio: int, subtitle: int, subtitle_on: bool, angle: int) static ๐Ÿ”—

Encodes SetSTN. Pass -1 for a stream that should not change.