BytorioGet started

Source reference

sdk/resource-protocol.json

{
  "status": "published-resource-av-1",
  "version": 9,
  "oggProtocol": 9,
  "maxOggStreams": 4,
  "maxOggSourceBytes": 2097152,
  "maxOggEncodedBytes": 4194304,
  "maxOggDecoderBytes": 8388608,
  "oggChunkFrames": 1024,
  "oggRequestWords": 10,
  "stableVersion": 4,
  "meshProtocol": 5,
  "texturedProtocol": 6,
  "alphaProtocol": 7,
  "effectProtocol": 8,
  "materialEffect": 2,
  "blendAlpha": 0,
  "blendAdditive": 1,
  "materialCutout": 1,
  "defaultAlphaCutoff": 128,
  "maxAlphaCutoff": 255,
  "texturedVertexBytes": 24,
  "texturedUvOffset": 16,
  "maxTextureCoordinate": 1024,
  "kindMaterial": 17,
  "kindTexturedMesh": 18,
  "addressClamp": 0,
  "addressRepeat": 1,
  "meshVertexBytes": 16,
  "meshIndexBytes": 4,
  "maxMeshVertices": 65536,
  "maxMeshIndices": 98304,
  "maxTrianglesPerCommit": 65536,
  "maxVoxelAxis": 32,
  "maxVoxelFaces": 16384,
  "maxVoxelCellsPerCommit": 131072,
  "cameraBytes": 96,
  "cameraLightOffset": 64,
  "cameraAmbientOffset": 76,
  "cameraFogColorOffset": 80,
  "cameraFogStartOffset": 84,
  "cameraFogEndOffset": 88,
  "cameraPaddingOffset": 92,
  "meshColorOffset": 12,
  "meshSubpixelScale": 256,
  "max3dCoordinate": 10000,
  "kindMesh": 13,
  "kindDepth": 14,
  "kindCamera": 15,
  "kindVoxel": 16,
  "modelBytes": 64,
  "depthBytes": 4,
  "abi": 2,
  "magic": 827348545,
  "headerBytes": 64,
  "commandBytes": 32,
  "descriptorBytes": 32,
  "maxCommands": 16384,
  "maxPayload": 1048576,
  "maxSlots": 1024,
  "handleIndexBits": 16,
  "handleGenerationBits": 16,
  "maxResourceBytes": 67108864,
  "audioReasonNatural": 1,
  "audioReasonStopped": 2,
  "audioReasonCancelled": 3,
  "maxImageAxis": 1024,
  "minSampleRate": 8000,
  "maxSampleRate": 96000,
  "graphicsFractionBits": 16,
  "paletteEntries": 256,
  "maxAffineCoefficient": 16,
  "defaultRgbaPipelineId": 4294967293,
  "defaultIndexPipelineId": 4294967294,
  "invalidPipelineId": 4294967295,
  "opcodes": {
    "create_texture": 1,
    "create_sample": 2,
    "write_texture": 3,
    "write_sample": 4,
    "destroy_texture": 5,
    "destroy_sample": 6,
    "create_target": 7,
    "create_palette": 8,
    "create_color_table": 9,
    "create_row_table": 10,
    "create_pipeline": 11,
    "write_buffer": 12,
    "destroy_resource": 13,
    "begin_pass": 16,
    "end_pass": 17,
    "clip": 18,
    "transform": 19,
    "bind": 20,
    "rect": 21,
    "clear": 22,
    "draw": 23,
    "copy": 24,
    "present": 25,
    "readback": 26,
    "text": 27,
    "sprite": 28,
    "audio_bus": 32,
    "audio_stream": 33,
    "audio_play_sample": 34,
    "audio_play_stream": 35,
    "audio_stop": 36,
    "audio_release": 37,
    "audio_voice_control": 38,
    "audio_bus_gain": 39,
    "audio_stream_write": 40,
    "audio_destroy": 41,
    "audio_wavetable": 42,
    "audio_instrument": 43,
    "audio_edit": 44,
    "audio_note_on": 45,
    "audio_note_off": 46,
    "audio_node_control": 47,
    "audio_effects": 48,
    "audio_destroy_synth": 49,
    "audio_source": 50,
    "audio_source_destroy": 51,
    "audio_ogg_stream": 52,
    "audio_stream_end": 53,
    "create_mesh": 64,
    "create_depth": 65,
    "create_camera": 66,
    "create_voxel": 67,
    "edit_voxel": 68,
    "begin_3d": 69,
    "draw_mesh": 70,
    "create_textured_mesh": 71,
    "create_material": 72,
    "draw_textured_mesh": 73,
    "create_cutout_material": 74,
    "create_effect_material": 75
  },
  "formats": {
    "index8": 1,
    "rgba8": 2,
    "f32": 3,
    "stencil8": 4
  },
  "header": {
    "magic": 0,
    "abi": 4,
    "headerBytes": 8,
    "session": 12,
    "tick": 16,
    "phase": 24,
    "sequence": 28,
    "count": 32,
    "commandsOffset": 36,
    "commandsBytes": 40,
    "payloadOffset": 44,
    "payloadBytes": 48
  },
  "command": {
    "opcode": 0,
    "recordBytes": 2,
    "flags": 4,
    "id": 8,
    "argsOffset": 12,
    "argsBytes": 16,
    "dataOffset": 20,
    "dataBytes": 24,
    "reserved": 28
  },
  "descriptor": {
    "audio_ogg_stream": ["content", "loop", "loop_start", "loop_end", "reserved", "reserved", "reserved", "reserved"],
    "create_texture": [
      "format",
      "width",
      "height",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_sample": [
      "format",
      "frames",
      "channels",
      "rate",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "write_texture": [
      "x",
      "y",
      "width",
      "height",
      "offsetBytes",
      "strideBytes",
      "reserved",
      "reserved"
    ],
    "write_sample": [
      "firstFrame",
      "frames",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "destroy_texture": [],
    "destroy_sample": [],
    "create_target": [
      "format",
      "width",
      "height",
      "stencil",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_palette": [
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_color_table": [
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_row_table": [
      "rows",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_pipeline": [
      "format",
      "blend",
      "colorTable",
      "writeMask",
      "stencilCompare",
      "stencilMasks",
      "stencilOps",
      "transparentIndexPlusOne"
    ],
    "write_buffer": [
      "offsetBytes",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "destroy_resource": [],
    "begin_pass": [
      "pipeline",
      "clearEnabled",
      "clearColor",
      "clearStencilEnabled",
      "clearStencil",
      "reserved",
      "reserved",
      "reserved"
    ],
    "end_pass": [],
    "clip": [
      "x",
      "y",
      "width",
      "height",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "transform": [
      "aQ16",
      "bQ16",
      "cQ16",
      "dQ16",
      "txQ16",
      "tyQ16",
      "reserved",
      "reserved"
    ],
    "bind": [],
    "rect": [
      "xQ16",
      "yQ16",
      "widthQ16",
      "heightQ16",
      "color",
      "reserved",
      "reserved",
      "reserved"
    ],
    "clear": [
      "color",
      "stencilEnabled",
      "stencil",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "draw": [
      "srcX",
      "srcY",
      "srcWidth",
      "srcHeight",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "copy": [
      "destination",
      "srcX",
      "srcY",
      "width",
      "height",
      "dstX",
      "dstY",
      "reserved"
    ],
    "present": [
      "palette",
      "rows",
      "repeat",
      "background",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "readback": [
      "source",
      "x",
      "y",
      "width",
      "height",
      "reserved",
      "reserved",
      "reserved"
    ],
    "text": [
      "xQ16",
      "yQ16",
      "color",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "sprite": [
      "sprite",
      "xQ16",
      "yQ16",
      "widthQ16",
      "heightQ16",
      "tint",
      "reserved",
      "reserved"
    ],
    "audio_bus": [
      "parent",
      "gain",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "audio_stream": [
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "audio_play_sample": [
      "atLo",
      "atHi",
      "sample",
      "bus",
      "rate",
      "gain",
      "pan",
      "loop"
    ],
    "audio_play_stream": [
      "atLo",
      "atHi",
      "stream",
      "bus",
      "gain",
      "pan",
      "reserved",
      "reserved"
    ],
    "audio_stop": [
      "atLo",
      "atHi",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "audio_release": [
      "atLo",
      "atHi",
      "frames",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "audio_voice_control": [
      "atLo",
      "atHi",
      "parameter",
      "value",
      "rampFrames",
      "reserved",
      "reserved",
      "reserved"
    ],
    "audio_bus_gain": [
      "atLo",
      "atHi",
      "gain",
      "rampFrames",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "audio_stream_write": [
      "atLo",
      "atHi",
      "frames",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "audio_destroy": [
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_mesh": [
      "vertices",
      "indices",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_depth": [
      "width",
      "height",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_camera": [
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_voxel": [
      "width",
      "height",
      "depth",
      "palette",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "edit_voxel": [
      "x",
      "y",
      "z",
      "width",
      "height",
      "depth",
      "reserved",
      "reserved"
    ],
    "begin_3d": [
      "camera",
      "clearDepth",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ],
    "create_textured_mesh": ["vertices", "indices", "reserved", "reserved", "reserved", "reserved", "reserved", "reserved"],
    "create_material": ["texture", "addressU", "addressV", "reserved", "reserved", "reserved", "reserved", "reserved"],
    "create_effect_material": ["texture", "addressU", "addressV", "blend", "depthTest", "depthWrite", "reserved", "reserved"],
    "create_cutout_material": ["texture", "addressU", "addressV", "alphaCutoff", "reserved", "reserved", "reserved", "reserved"],
    "draw_textured_mesh": ["material", "reserved", "reserved", "reserved", "reserved", "reserved", "reserved", "reserved"],
    "draw_mesh": [
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved",
      "reserved"
    ]
  },
  "configuration": {
    "exports": {
      "game_resource_protocol": "()->u32",
      "game_resource_configure": "(session:u32)->u32",
      "game_commit": "()->u32",
      "game_commit_size": "()->u32",
      "game_commit_ack": "(sequence:u32)->u32",
      "game_resource_mailbox": "()->u32",
      "game_resource_mailbox_capacity": "()->u32",
      "game_resource_mailbox_size": "(bytes:u32)->u32",
      "game_profile": "()->u32",
      "game_required_features": "()->u32"
    },
    "capabilities": "Fixed resource-av-1 feature mask 7 and limits from profiles/resource-av-1.json; exact SDK/ABI/protocol negotiation before init",
    "input": "game_update(buttons:u32,pointerActive:u32,x:f64,y:f64); completion/audio-status mailbox delivered before each update",
    "acknowledgement": "accepted packet sequence, synchronous before next callback; failure terminates session"
  },
  "maxTargets": 8,
  "maxReadbacks": 4,
  "maxReadbackBytes": 1048576,
  "maxCompletionPayload": 1048576,
  "maxPixelWork": 16777216,
  "drawData": [
    "xQ16",
    "yQ16",
    "widthQ16",
    "heightQ16",
    "palette",
    "tint",
    "flags",
    "reserved"
  ],
  "mailbox": {
    "magic": 827867725,
    "headerBytes": 16,
    "recordBytes": 32,
    "maxRecords": 4,
    "record": [
      "id",
      "format",
      "width",
      "height",
      "offsetBytes",
      "lengthBytes",
      "reserved",
      "reserved"
    ],
    "header": {
      "magic": 0,
      "count": 4,
      "bytes": 8,
      "session": 12
    }
  },
  "audioRate": 48000,
  "audioChannels": 2,
  "audioFramesPerTick": 800,
  "maxVoices": 16,
  "maxBuses": 8,
  "maxStreams": 4,
  "maxStreamFrames": 8192,
  "maxStreamChunks": 64,
  "maxAudioEvents": 4096,
  "maxAudioBatches": 8,
  "audioLeadFrames": 2400,
  "audioHorizonFrames": 96000,
  "maxAudioSnapshotBytes": 8388608,
  "audioPageFrames": 256,
  "maxAudioDeviceBlock": 2048,
  "maxAudioCompletions": 64,
  "audioMailboxCompletions": 16,
  "audioStatusBytes": 448,
  "audioMaxExactFrame": 9007199254740991,
  "audioPauseFadeFrames": 64,
  "maxAudioTransfers": 4,
  "maxAudioDeviceRate": 192000,
  "audioMetadataReservationBytes": 5242880,
  "maxRuntimeBytes": 167772160,
  "maxAudioRuntimeBytes": 83886080,
  "maxInstruments": 64,
  "maxInstrumentNodes": 16,
  "maxBusNodes": 8,
  "maxActiveNodes": 320,
  "maxDelayFrames": 96000,
  "minWaveFrames": 32,
  "maxWaveFrames": 2048,
  "maxWaves": 64,
  "graphHeaderBytes": 16,
  "graphNodeBytes": 64,
  "noNode": 4294967295,
  "kindWavetable": 11,
  "kindInstrument": 12,
  "nodes": {
    "input": 1,
    "sample": 2,
    "wavetable": 3,
    "noise": 4,
    "constant": 5,
    "mix": 6,
    "gain": 7,
    "adsr": 8,
    "lfo": 9,
    "filter": 10,
    "delay": 11,
    "pan": 12,
    "output": 13
  },
  "parameters": {
    "frequency": 1,
    "phase": 2,
    "wave": 3,
    "rate": 4,
    "gain": 5,
    "secondary_gain": 6,
    "depth": 7,
    "pan": 8,
    "cutoff": 9,
    "resonance": 10,
    "delay_frames": 11,
    "feedback": 12,
    "wet": 13,
    "attack": 14,
    "decay": 15,
    "sustain": 16,
    "release": 17
  },
  "graph": {
    "header": [
      "nodes",
      "historyFloats",
      "reserved",
      "reserved"
    ],
    "node": [
      "kind",
      "inputA",
      "inputB",
      "source",
      "frequencyInput",
      "phaseInput",
      "gainInput",
      "flags",
      "p0",
      "p1",
      "p2",
      "p3",
      "p4",
      "p5",
      "p6",
      "p7"
    ],
    "indices": "zero-based; inputs must precede their consumer; noNode denotes an absent input"
  },
  "preparedOnlyOpcodes": [
    "audio_source",
    "audio_source_destroy"
  ],
  "audio_wavetable": [
    "framesPerWave",
    "waveCount",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved"
  ],
  "audio_instrument": [
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved"
  ],
  "audio_edit": [
    "atLow",
    "atHigh",
    "firstSourceFrame",
    "frameCount",
    "reserved",
    "reserved",
    "reserved",
    "reserved"
  ],
  "audio_note_on": [
    "atLow",
    "atHigh",
    "instrument",
    "bus",
    "frequencyHzBits",
    "velocityBits",
    "panBits",
    "reserved"
  ],
  "audio_note_off": [
    "atLow",
    "atHigh",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved"
  ],
  "audio_node_control": [
    "atLow",
    "atHigh",
    "instrumentOrZeroForBus",
    "nodeIndex",
    "parameter",
    "valueBits",
    "rampFrames",
    "busFlag"
  ],
  "audio_effects": [
    "atLow",
    "atHigh",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved"
  ],
  "audio_destroy_synth": [
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved",
    "reserved"
  ],
  "experimental3d": {
    "profile": "compact-3d-preview-1",
    "protocol": 5,
    "status": "experimental",
    "vertex": [
      "x:f32",
      "y:f32",
      "z:f32",
      "color:rgba8"
    ],
    "indices": "zero-based u32 following vertex bytes",
    "matrix": "column-major f32[16]",
    "depth": "f32 normalized device depth; strict less-than",
    "voxelCells": "index8; x fastest, then y, then z; zero empty"
  }
}