协议命令参考

← 返回首页
本页内容整理自 newserv 项目的 docs/ 目录,覆盖 PSOBB 客户端与服务器之间的网络协议及游戏内子命令(0x60/0x62/0x6C/0x6D 载荷)两部分。操作码与处理函数名保持英文,以便与源码/抓包记录对照。

PSO 协议命令参考

本文档描述 PSO 客户端与 newserv 服务器之间使用的网络协议命令(操作码)。

概述

命令由 1 字节操作码(0x00–0xFF)标识。不同游戏版本的命令处理方式不同。服务器支持 14 个游戏版本:

列号版本
1PC_PATCH
2BB_PATCH
3DC_NTE
4DC_112000
5DCV1
6DCV2
7PC_NTE
8PC
9GCNTE
10GC
11EP3TE
12EP3
13XB
14BB

命令头格式

  • DC/GC/XB(PSOCommandHeaderDCV3): 4 字节 — command(1)、flag(1)、size(2)
  • PC(PSOCommandHeaderPC): 4 字节 — size(2)、command(1)、flag(1)
  • BB(PSOCommandHeaderBB): 8 字节 — size(2)、command(2)、flag(4)

源码命名规范

  • C_ 前缀:客户端→服务器(客户端发送)
  • S_ 前缀:服务器→客户端(服务器发送)
  • SC_ 前缀:双向(两端均可发送)

补丁服务器命令(仅 PC_PATCH / BB_PATCH)

操作码方向名称说明
0x02S→CServerInit_Patch补丁连接的服务器初始化
0x02C→S(响应)客户端确认补丁服务器初始化
0x04S→C(请求登录)服务器请求用户登录信息
0x04C→SLogin_Patch客户端发送用户名、密码、邮箱
0x06S→COpenFile_Patch打开文件进行补丁
0x07S→CWriteFileHeader_Patch写入补丁文件头
0x08S→CCloseCurrentFile_Patch关闭当前补丁文件
0x09S→CEnterDirectory_Patch进入补丁目录
0x0CS→CFileChecksumRequest_Patch向客户端请求文件校验和
0x0FC→SFileInformation_Patch客户端回复文件校验和/大小
0x10C→S(所有校验和完成)客户端完成所有校验和响应
0x11S→CStartFileDownloads_Patch开始文件下载

登录与认证命令

操作码方向处理函数版本说明
0x02/0x17S→CDC/PC/V3服务器初始化(加密设置)
0x03S→CBBBB 服务器初始化
0x05C→Son_05_XBXBXbox 断开连接(退出游戏)
0x05C→Son_ignored其他版本忽略(加密确认)
0x88C→Son_88_DCNTEDC_NTEDC NTE 登录
0x8BC→Son_8B_DCNTEDC_NTEDC NTE 扩展登录
0x90C→Son_90_DCDCDC V1 登录
0x91S→CDC/PC/V3服务器初始化(备用)
0x92C→Son_92_DCDCDC V1 注册
0x93C→Son_93_DCDCDC V1 含硬件信息的登录
0x93C→Son_93_BBBBBB 登录(多种子格式)
0x9AC→Son_9ADC/PC/V3使用 V1 序列号 + V2 序列号登录
0x9BS→C全部服务器初始化(备用)
0x9CC→Son_9CDC/PC/V3/BB注册
0x9DC→Son_9D_9EDC/PC/GC登录(DC/PC/GC 格式)
0x9EC→Son_9D_9EPC/GC登录(扩展格式)
0x9EC→Son_9E_XBXBXbox 登录
0xDBC→Son_DB_V3V3账号验证(V3)

导航与菜单命令

操作码方向处理函数说明
0x07S→C菜单项列表
0x08C→Son_08_E6请求游戏列表
0x09C→Son_09请求菜单项信息(任务/游戏/大厅详情)
0x0ES→C旧版加入游戏
0x10C→Son_10菜单选择(主菜单、游戏列表、任务列表等)
0x1FC→Son_1F请求信息菜单
0x84C→Son_84大厅选择
0xA0C→Son_A0切换飞船(返回飞船选择)
0xA1C→Son_A1切换区块(同切换飞船处理)
0xD6C→Son_D6_V3请求信息板 / 欢迎消息(V3)
0xE6C→Son_08_E6请求观战队伍列表(BB)

大厅与玩家管理

操作码方向处理函数说明
0x61C→Son_61_98发送玩家数据(角色数据)
0x64S→C加入游戏通知
0x65/0x67/0x68S→C加入大厅通知
0x66/0x69S→C离开大厅通知
0x83S→C大厅列表
0x88S→C箭头更新(大厅箭头)
0x95S→C设置公会卡号
0x96C→Son_96角色存档信息
0x98C→Son_61_98离开游戏(发送玩家数据)
0xC1S→C创建游戏

游戏命令与子命令

操作码方向处理函数说明
0x60C→S/S→Con_6x_C9_CB游戏子命令(广播给房间所有人)
0x62C→S/S→Con_6x_C9_CB游戏子命令(发给指定玩家)
0x6CC→S/S→Con_6x_C9_CB扩展游戏子命令(广播)
0x6DC→S/S→Con_6x_C9_CB扩展游戏子命令(发给指定玩家)
0xC9C→Son_6x_C9_CB / on_C9_XB游戏子命令(EP3/XB 变体)
0xCBC→Son_6x_C9_CB游戏子命令(EP3 变体)
0x30C→Son_30创建游戏

聊天与通信

操作码方向处理函数说明
0x01S→C向客户端发送文本消息
0x06C→Son_06聊天消息 / 聊天命令
0x11S→C系统消息(BB 中滚动显示)
0x1AS→C消息框
0x40C→S/S→C公会卡搜索
0xB0S→C文本消息(滚动)
0xC0C→Son_C0广播符号聊天
0xC1C→Son_C1_PC / on_C1_BB创建游戏(PC/BB)
0xC2C→Son_C2符号聊天
0xD8S→C/C→Son_D8信息板

任务系统

操作码方向处理函数说明
0xA2C→Son_A2请求任务列表
0xA2/0xA4S→C任务菜单条目
0x44/0xA6S→C打开任务文件
0x13/0xA7C→Son_13_A7_V3_V4任务文件写入确认
0xA9C→Son_A9取消任务选择
0xAAC→Son_AA更新任务统计信息
0xABS→C调用任务标签
0xACC→Son_AC_V3_BB任务文件已加载 / 可加入任务就绪
0xB2S→C执行代码(向客户端发送函数)
0xB3C→Son_B3执行代码结果(函数调用响应)

服务器系统命令

操作码方向处理函数说明
0x04S→C更新客户端配置
0x19S→C重连(重定向到另一台服务器)
0x1DC→Son_1DPing 响应
0xB1C→Son_B1请求服务器时间
0xB1S→C服务器时间响应
0xDES→C稀有怪物列表(BB)
0xEFS→C设置关机命令(BB)

BB 专属命令

操作码方向处理函数说明
0xDCC→Son_DC_BB请求公会卡数据
0xDC (01)S→C公会卡文件头
0xDC (02)S→C公会卡文件分块
0xDFC→Son_DF_BB挑战模式设置
0xE0C→Son_E0_BB请求系统文件
0xE1S→C系统文件已创建通知
0xE2C→Son_E2_BB同步系统文件
0xE3C→Son_E3_BB玩家预览请求 / 选择角色
0xE4S→C批准玩家选择 / 玩家预览
0xE5C→Son_E5_BB创建角色
0xE6S→C客户端初始化(BB)
0xE7C→Son_E7_BB同步存档文件
0xE8C→Son_E8_BB公会卡操作(添加/删除/备注/排序)
0xEAC→Son_EA_BB团队命令(创建/解散/添加/移除成员等)
0xEBC→Son_EB_BB流文件操作(索引/分块)
0xECC→Son_EC_BB离开角色选择
0xEDC→Son_ED_BB更新设置(选项/符号聊天/快捷语/按键配置/手柄配置/技能菜单/自定义/挑战记录)

BB 团队子命令(0xEA)

子操作码方向说明
0x01EAC→S创建团队
0x03EAC→S添加团队成员
0x05EAC→S移除团队成员
0x09EAS→C团队成员列表
0x0FEAC→S设置团队旗帜
0x11EAC→S更改团队成员权限等级
0x12EAS→C更新团队成员资格
0x13EAS→C玩家的团队信息(所有大厅客户端)
0x15EAS→C玩家的团队信息(单个客户端)
0x18EAS→C团队内部排名
0x19EAS→C团队奖励列表
0x1AEAS→C团队奖励列表(已购买)
0x1CEAS→C跨团队排名
0x1DEAS→C更新团队奖励标志
0x1EEAC→S重命名团队

第三章节(卡牌对战)命令

操作码方向处理函数说明
0xB7C→Son_B7_Ep3请求 EP3 排名/音乐更新
0xB7S→C排名更新
0xB9S→C媒体更新(地图、卡牌定义等)
0xBAC→Son_BA_Ep3Meseta 交易(在商店买/卖卡牌)
0xBAS→CMeseta 交易结果
0xBBS→C锦标赛观战队伍列表
0xCAC→Son_CA_Ep3卡牌对战服务器数据(游戏命令)
0xCCS→C确认锦标赛参赛
0xDCC→Son_DC_Ep3请求锦标赛列表(EP3)
0xE0S→C锦标赛列表
0xE1S→C游戏信息
0xE2C→Son_E2_Ep3锦标赛操作(列表/查询/参赛/退出)
0xE2S→C锦标赛参赛列表
0xE3S→C锦标赛游戏详情
0xE4C→Son_E4_Ep3卡牌对战桌面状态更新
0xE4S→C卡牌对战桌面状态
0xE5C→Son_E5_Ep3卡牌对战桌面确认
0xE5S→C卡牌对战桌面确认响应
0xE6C→S加入观战队伍
0xE7C→S创建观战队伍
0xE8S→C加入观战队伍响应
0xE9S→C离开观战队伍
0xEAS→C限时消息框
0xEEC→Son_EE_Ep3卡牌交易操作
0xEES→C卡牌交易状态推进 / 完成
0xEFC→Son_EF_Ep3卡牌拍卖
0xEFS→C开始卡牌拍卖

GC/Xbox 专属命令

操作码方向处理函数说明
0xD7C→Son_D7_GCGBA 游戏文件请求(GC)
0xD0C→Son_D0_V3_BB选择搜索条件更新(V3/BB)
0xD2C→Son_D2_V3_BB选择搜索请求(V3/BB)
0xD4C→Son_D4_V3_BB选择搜索结果选定(V3/BB)

DC NTE 专属命令

操作码方向处理函数说明
0x88C→Son_88_DCNTE登录
0x8AC→Son_8A连接信息
0x8BC→Son_8B_DCNTE扩展登录
0x8EC→Son_8E_DCNTE切换飞船(映射到 0xA0)
0x8FC→Son_8F_DCNTE切换区块(映射到 0xA1)

物品与商店命令

操作码方向说明
0x24S→C兑换秘密抽奖券结果(BB)
0x25S→CGallon 方案结果(BB)

PSO Protocol Commands Reference

This document describes the network protocol commands (opcodes) used between the PSO client and newserv server.

Overview

Commands are identified by a 1-byte opcode (0x00-0xFF). Each command may have different handlers depending on the game version. The server supports 14 game versions:

ColumnVersion
1PC_PATCH
2BB_PATCH
3DC_NTE
4DC_112000
5DCV1
6DCV2
7PC_NTE
8PC
9GCNTE
10GC
11EP3TE
12EP3
13XB
14BB

Command Header Formats

  • DC/GC/XB (PSOCommandHeaderDCV3): 4 bytes — command(1), flag(1), size(2)
  • PC (PSOCommandHeaderPC): 4 bytes — size(2), command(1), flag(1)
  • BB (PSOCommandHeaderBB): 8 bytes — size(2), command(2), flag(4)

Naming Convention in Source Code

  • C_ prefix: Client-to-server (client sends)
  • S_ prefix: Server-to-client (server sends)
  • SC_ prefix: Bidirectional (used in both directions)

Patch Server Commands (PC_PATCH / BB_PATCH only)

OpcodeDirectionNameDescription
0x02S→CServerInit_PatchServer initialization for patch connection
0x02C→S(response)Client acknowledges patch server init
0x04S→C(request login)Server requests user's login information
0x04C→SLogin_PatchClient sends username, password, email
0x06S→COpenFile_PatchOpen a file for patching
0x07S→CWriteFileHeader_PatchWrite file header during patching
0x08S→CCloseCurrentFile_PatchClose current file being patched
0x09S→CEnterDirectory_PatchEnter a directory during patching
0x0CS→CFileChecksumRequest_PatchRequest file checksum from client
0x0FC→SFileInformation_PatchClient responds with file checksum/size
0x10C→S(all checksums done)Client finished responding to all checksum requests
0x11S→CStartFileDownloads_PatchBegin file downloads

Login & Authentication Commands

OpcodeDirectionHandlerVersionsDescription
0x02/0x17S→CDC/PC/V3Server initialization (encryption setup)
0x03S→CBBServer initialization for BB
0x05C→Son_05_XBXBXbox disconnect (quit game)
0x05C→Son_ignoredOthersIgnored (encryption ack)
0x88C→Son_88_DCNTEDC_NTEDC NTE login
0x8BC→Son_8B_DCNTEDC_NTEDC NTE extended login
0x90C→Son_90_DCDCDC V1 login
0x91S→CDC/PC/V3Server init (alternate)
0x92C→Son_92_DCDCDC V1 registration
0x93C→Son_93_DCDCDC V1 login with hardware info
0x93C→Son_93_BBBBBB login (multiple sub-formats)
0x9AC→Son_9ADC/PC/V3Login with V1 serial + V2 serial
0x9BS→CAllServer init (alternate)
0x9CC→Son_9CDC/PC/V3/BBRegistration
0x9DC→Son_9D_9EDC/PC/GCLogin (DC/PC/GC format)
0x9EC→Son_9D_9EPC/GCLogin (extended format)
0x9EC→Son_9E_XBXBXbox login
0xDBC→Son_DB_V3V3Verify account (V3)

Navigation & Menu Commands

OpcodeDirectionHandlerDescription
0x07S→CMenu items list
0x08C→Son_08_E6Request game list
0x09C→Son_09Request menu item info (quest/game/lobby details)
0x0ES→CLegacy join game
0x10C→Son_10Menu selection (main menu, game list, quest list, etc.)
0x1FC→Son_1FRequest information menu
0x84C→Son_84Lobby selection
0xA0C→Son_A0Ship change (return to ship select)
0xA1C→Son_A1Block change (treated same as ship change)
0xD6C→Son_D6_V3Request info board / welcome message (V3)
0xE6C→Son_08_E6Request spectator team list (BB)

Lobby & Player Management

OpcodeDirectionHandlerDescription
0x61C→Son_61_98Send player data (character data)
0x64S→CJoin game notification
0x65/0x67/0x68S→CJoin lobby notification
0x66/0x69S→CLeave lobby notification
0x83S→CLobby list
0x88S→CArrow update (lobby arrows)
0x95S→CSet guild card number
0x96C→Son_96Character save info
0x98C→Son_61_98Leave game (send player data)
0xC1S→CCreate game

Game Commands & Subcommands

OpcodeDirectionHandlerDescription
0x60C→S/S→Con_6x_C9_CBGame subcommand (broadcast to room)
0x62C→S/S→Con_6x_C9_CBGame subcommand (to specific player)
0x6CC→S/S→Con_6x_C9_CBExtended game subcommand (broadcast)
0x6DC→S/S→Con_6x_C9_CBExtended game subcommand (to specific player)
0xC9C→Son_6x_C9_CB / on_C9_XBGame subcommand (EP3/XB variant)
0xCBC→Son_6x_C9_CBGame subcommand (EP3 variant)
0x30C→Son_30Create game

Chat & Communication

OpcodeDirectionHandlerDescription
0x01S→CSend text message to client
0x06C→Son_06Chat message / chat command
0x11S→CSystem message (scrolling on BB)
0x1AS→CMessage box
0x40C→S/S→CGuild card search
0xB0S→CText message (scrolling)
0xC0C→Son_C0Broadcast symbol chat
0xC1C→Son_C1_PC / on_C1_BBCreate game (PC/BB)
0xC2C→Son_C2Symbol chat
0xD8S→C/C→Son_D8Info board

Quest System

OpcodeDirectionHandlerDescription
0xA2C→Son_A2Quest list request
0xA2/0xA4S→CQuest menu entries
0x44/0xA6S→COpen quest file
0x13/0xA7C→Son_13_A7_V3_V4Quest file write confirmation
0xA9C→Son_A9Quest selection cancelled
0xAAC→Son_AAUpdate quest statistics
0xABS→CCall quest label
0xACC→Son_AC_V3_BBQuest file loaded / joinable quest ready
0xB2S→CExecute code (send function to client)
0xB3C→Son_B3Execute code result (function call response)

Server System Commands

OpcodeDirectionHandlerDescription
0x04S→CUpdate client config
0x19S→CReconnect (redirect to another server)
0x1DC→Son_1DPing response
0xB1C→Son_B1Request server time
0xB1S→CServer time response
0xDES→CRare monster list (BB)
0xEFS→CSet shutdown command (BB)

BB-Specific Commands

OpcodeDirectionHandlerDescription
0xDCC→Son_DC_BBGuild card data request
0xDC (01)S→CGuild card header
0xDC (02)S→CGuild card file chunk
0xDFC→Son_DF_BBChallenge mode settings
0xE0C→Son_E0_BBRequest system file
0xE1S→CSystem file created notification
0xE2C→Son_E2_BBSync system file
0xE3C→Son_E3_BBPlayer preview request / character select
0xE4S→CApprove player choice / player preview
0xE5C→Son_E5_BBCreate character
0xE6S→CClient init (BB)
0xE7C→Son_E7_BBSync save files
0xE8C→Son_E8_BBGuild card operations (add/delete/comment/sort)
0xEAC→Son_EA_BBTeam commands (create/disband/add/remove members, etc.)
0xEBC→Son_EB_BBStream file operations (index/chunk)
0xECC→Son_EC_BBLeave character select
0xEDC→Son_ED_BBUpdate settings (options/symbol chats/shortcuts/key config/pad config/tech menu/customize/challenge records)

BB Team Sub-Commands (0xEA)

Sub-opcodeDirectionDescription
0x01EAC→SCreate team
0x03EAC→SAdd team member
0x05EAC→SRemove team member
0x09EAS→CTeam member list
0x0FEAC→SSet team flag
0x11EAC→SChange team member privilege level
0x12EAS→CUpdate team membership
0x13EAS→CTeam info for player (all lobby clients)
0x15EAS→CTeam info for player (single client)
0x18EAS→CIntra-team ranking
0x19EAS→CTeam reward list
0x1AEAS→CTeam reward list (purchased)
0x1CEAS→CCross-team ranking
0x1DEAS→CUpdate team reward flags
0x1EEAC→SRename team

Episode 3 (Card Battle) Commands

OpcodeDirectionHandlerDescription
0xB7C→Son_B7_Ep3Request EP3 rank/music update
0xB7S→CRank update
0xB9S→CMedia update (maps, card definitions, etc.)
0xBAC→Son_BA_Ep3Meseta transaction (buy/sell cards at shop)
0xBAS→CMeseta transaction result
0xBBS→CTournament spectator team list
0xCAC→Son_CA_Ep3Card battle server data (game commands)
0xCCS→CConfirm tournament entry
0xDCC→Son_DC_Ep3Request tournament list (EP3)
0xE0S→CTournament list
0xE1S→CGame information
0xE2C→Son_E2_Ep3Tournament operations (list/check/enter/withdraw)
0xE2S→CTournament entry list
0xE3S→CTournament game details
0xE4C→Son_E4_Ep3Card battle table state update
0xE4S→CCard battle table state
0xE5C→Son_E5_Ep3Card battle table confirmation
0xE5S→CCard battle table confirmation response
0xE6C→SJoin spectator team
0xE7C→SCreate spectator team
0xE8S→CJoin spectator team response
0xE9S→CLeave spectator team
0xEAS→CTimed message box
0xEEC→Son_EE_Ep3Card trade operations
0xEES→CCard trade state advance / complete
0xEFC→Son_EF_Ep3Card auction
0xEFS→CStart card auction

GC/Xbox-Specific Commands

OpcodeDirectionHandlerDescription
0xD7C→Son_D7_GCGBA game file request (GC)
0xD0C→Son_D0_V3_BBChoice search criteria update (V3/BB)
0xD2C→Son_D2_V3_BBChoice search request (V3/BB)
0xD4C→Son_D4_V3_BBChoice search result select (V3/BB)

DC NTE-Specific Commands

OpcodeDirectionHandlerDescription
0x88C→Son_88_DCNTELogin
0x8AC→Son_8AConnection info
0x8BC→Son_8B_DCNTEExtended login
0x8EC→Son_8E_DCNTEShip change (maps to 0xA0)
0x8FC→Son_8F_DCNTEBlock change (maps to 0xA1)

Item & Shop Commands

OpcodeDirectionDescription
0x24S→CExchange secret lottery ticket result (BB)
0x25S→CGallon plan result (BB)

游戏子命令参考(0x60/0x62/0x6C/0x6D)

游戏子命令承载在主协议命令 0x60(广播)、0x62(发给指定玩家)、0x6C(扩展广播)、0x6D(扩展发给指定玩家)中。每个子命令有 1 字节的子操作码(0x00–0xFF)。

子命令头格式

标准头:4 字节 — subcommand(1)、size_in_dwords(1)、data... 扩展头(size=0):8 字节 — subcommand(1)、0x00、extended_size(4)、data...

版本映射

每个子命令有三列操作码:

  • DC NTE — Dreamcast 网络试玩版
  • DC 11/2000 — Dreamcast 原型(2000 年 11 月)
  • Final — 所有其他版本(DCV1、DCV2、PC、GC、EP3、XB、BB)

NONE 表示该子命令在对应版本中不存在。


玩家移动与位置

子操作码处理函数说明
6x1Fon_change_floor切换楼层(含传送/传送管道过渡)
6x20on_movement_xyz_with_floor设置含楼层的位置(SetPosition)
6x21on_change_floor切换楼层(备用)
6x24on_movement_xyz将玩家传送至 XYZ 坐标
6x3Eon_movement_xyz_with_floor停在指定位置
6x3Fon_movement_xyz_with_floor设置位置(备用)
6x40on_movement_xz步行到指定位置(XZ 平面)
6x41on_movement_xz跑向指定位置
6x42on_movement_xz跑向指定位置(备用)
6x55on_movement_xyz地图内传送
6x56on_movement_xyz设置玩家位置和朝向
6x94on_warp传送到另一区域

玩家状态与动画

子操作码处理函数说明
6x02forward_subcommand_m(基础转发)
6x03forward_subcommand_m(基础转发)
6x04forward_subcommand_m(基础转发)
6x05on_switch_state_changed开关状态改变
6x0Con_received_condition受到负面状态(状态异常)
6x0Eforward (entity_id_transcode)清除负面状态效果
6x17on_set_entity_pos_and_angle设置实体位置和朝向
6x23on_set_player_visible设置玩家可见性
6x2Fon_change_hp改变玩家 HP
6x30on_level_up玩家升级
6x4Aon_change_hp改变 HP(变体)
6x4Bon_change_hp改变 HP(变体)
6x4Con_change_hp改变 HP(变体)
6x4Don_player_died玩家死亡
6x4Eon_player_revivable玩家可被复活
6x4Fon_player_revived玩家已复活
6x52on_set_animation_state设置动画状态

物品与背包操作

子操作码处理函数说明
6x25on_equip_item装备物品
6x26on_unequip_item卸下物品
6x27on_use_item使用物品(消耗)
6x28on_feed_mag喂养 MAG
6x29on_destroy_inventory_item销毁背包中的物品
6x2Aon_player_drop_item玩家丢弃物品到地面
6x2Bon_create_inventory_item在背包中创建物品
6x59on_pick_up_item拾取物品(已确认)
6x5Aon_pick_up_item_request请求拾取物品
6x5Con_destroy_floor_item销毁地面物品
6x5Don_drop_partial_stack丢弃部分叠加物品
6x5Eon_buy_shop_item从商店购买物品
6x5Fon_box_or_enemy_item_drop箱子/怪物掉落物品通知
6x60on_entity_drop_item_request实体掉落物品请求
6x63on_destroy_floor_item销毁地面物品(备用)
6xA2on_entity_drop_item_request实体掉落物品请求(备用)

战斗与攻击

子操作码处理函数说明
6x46forward (entity_targets_transcode)攻击完成(命中目标)
6x47forward (entity_targets_transcode)释放技能(命中目标)
6x48on_cast_technique_finished技能释放完毕
6x49forward (entity_targets_transcode)发动光子爆发(命中目标)
6x89forward (entity_id_transcode)设置击杀实体 ID
6x8Fforward (entity_id_transcode)增加战斗伤害得分
6x91on_update_attackable_col_state更新可攻击碰撞状态
6xE4on_incr_enemy_damage累计敌方伤害(扩展)

Boss 行为

子操作码处理函数说明
6x10forward (entity_id_transcode)Dragon Boss 行为
6x11forward (entity_id_transcode)Dragon Boss 行为(备用)
6x12on_dragon_actionsDragon 特殊行为
6x13forward (entity_id_transcode)De Rol Le Boss 行为
6x14forward (entity_id_transcode)De Rol Le Boss 含目标行为
6x15forward (entity_id_transcode)Vol Opt Boss 行为
6x16on_vol_opt_actionsVol Opt Boss 特殊行为
6x18forward (entity_id_transcode)Vol Opt 第二阶段 Boss 行为
6x19forward (entity_id_transcode)Dark Falz 行为
6x84on_vol_opt_actionsVol Opt Boss 行为(V2+)
6x9Fforward (entity_id_transcode)Gal Gryphon Boss 行为
6xA0forward (entity_id_transcode)Gal Gryphon Boss 行为(备用)
6xA3forward (entity_id_transcode)Olga Flow Boss 行为
6xA4forward (entity_id_transcode)Olga Flow Boss 行为(备用)
6xA5forward (entity_id_transcode)Olga Flow Boss 行为(备用 2)
6xA8on_gol_dragon_actionsGol Dragon 行为
6xA9forward (entity_id_transcode)Barba Ray Boss 行为
6xAAforward (entity_id_transcode)Barba Ray Boss 行为(备用)

敌人与物体状态

子操作码处理函数说明
6x0Aon_update_enemy_state更新敌人状态
6x0Bon_update_object_state更新物体状态
6x76on_set_entity_set_flag设置实体集合标志
6x86on_update_object_state击中可破坏物体
6x9Con_set_enemy_low_game_flags_ultimate设置敌人标志(究极难度)

游戏同步与加入

子操作码处理函数说明
6x6Bon_sync_joining_player_compressed_state同步加入玩家状态(压缩,玩家 0)
6x6Con_sync_joining_player_compressed_state同步加入玩家状态(压缩,玩家 1)
6x6Don_sync_joining_player_compressed_state同步加入玩家状态(压缩,玩家 2)
6x6Eon_sync_joining_player_compressed_state同步加入玩家状态(压缩,玩家 3)
6x6Fon_sync_joining_player_quest_flags同步加入玩家的任务标志
6x70on_sync_joining_player_disp_and_inventory同步加入玩家的显示数据和背包

事件与地图触发器

子操作码处理函数说明
6x67on_trigger_set_event触发设置事件
6x68on_update_telepipe_state更新传送管道状态
6x69on_npc_controlNPC 控制
6x6Aon_set_boss_warp_flags设置 Boss 传送标志
6x75on_set_quest_flag设置任务标志
6x77on_sync_quest_register同步任务寄存器
6x93on_activate_timed_switch激活计时开关

通信

子操作码处理函数说明
6x06on_send_guild_card向其他玩家发送公会卡
6x07on_symbol_chat符号聊天
6x74on_word_select词语选择(预设短语)
6xBDon_ep3_private_word_select_bb_bank_actionEP3 私聊词语选择 / BB 银行操作
6xB2on_play_sound_from_player从玩家处播放音效

挑战与对战模式

子操作码处理函数说明
6x7Con_challenge_update_records更新挑战模式记录
6x7Don_update_battle_data更新对战模式数据
6x7Fon_battle_scores对战模式得分
6x97on_challenge_mode_retry_or_quit挑战模式重试或退出
6xCFon_battle_restart_bb对战模式重新开始(BB)
6xD0on_battle_level_up_bb对战模式升级(BB)
6xD1on_request_challenge_grave_recovery_item_bb挑战遗物恢复物品(BB)

BB 专属子命令

子操作码处理函数说明
6xB5on_open_shop_bb_or_ep3_battle_subs打开商店(BB)/ EP3 对战子命令
6xB7on_buy_shop_item_bb购买商店物品(BB)
6xB8on_identify_item_bb鉴定物品(鉴定师)
6xBAon_accept_identify_item_bb接受已鉴定物品
6xBBon_open_bank_bb_or_card_trade_counter_ep3打开银行(BB)/ 卡牌交易柜台(EP3)
6xC0on_sell_item_at_shop_bb在商店出售物品
6xC3on_drop_partial_stack_bb丢弃部分叠加物品
6xC4on_sort_inventory_bb整理背包
6xC5on_medical_center_bb医疗中心(治疗)
6xC6on_steal_exp_bb偷取经验(武器特殊效果)
6xC7on_charge_attack_bb蓄力攻击(武器特殊效果)
6xC8on_enemy_exp_request_bb请求敌人经验值
6xC9on_adjust_player_meseta_bb调整玩家 Meseta
6xCAon_quest_create_item_bb任务创建物品
6xCBon_transfer_item_via_mail_message_bb通过邮件转移物品
6xCCon_exchange_item_for_team_points_bb兑换物品为团队积分
6xD2on_write_quest_counter_bb写入任务计数器
6xD5on_quest_exchange_item_bb任务兑换物品
6xD6on_wrap_item_bb包装物品(礼物)
6xD7on_photon_drop_exchange_for_item_bb光子液兑换物品
6xD8on_photon_drop_exchange_for_s_rank_special_bb光子液兑换 S 级特殊
6xD9on_momoka_item_exchange_bbMomoka 物品兑换
6xDAon_upgrade_weapon_attribute_bb升级武器属性
6xDEon_secret_lottery_ticket_exchange_bb秘密抽奖券兑换
6xDFon_photon_crystal_exchange_bb光子晶体兑换
6xE0on_quest_F95E_result_bb任务 F95E 结果
6xE1on_quest_F95F_result_bb任务 F95F 结果
6xE2on_quest_F960_result_bb任务 F960 结果

EP3 卡牌对战子命令

子操作码处理函数说明
6xBCon_ep3_trade_card_countsEP3 交易卡牌数量
6xBFon_forward_check_ep3_lobbyEP3 大厅转发

Xbox 专属

子操作码处理函数说明
6xB3on_xbox_voice_chat_controlXbox 语音聊天控制
6xB4on_xbox_voice_chat_controlXbox 语音聊天控制

调试

子操作码处理函数说明
6xFFon_debug_info调试信息(扩展子命令,用于调试补丁)

汇总

已定义子命令总数:256(0x00–0xFF)

  • 有效处理函数(非 on_invalid):约 160
  • 仅转发(无服务器端逻辑):约 60
  • 服务器端处理:约 100

Game Subcommands Reference (0x60/0x62/0x6C/0x6D)

Game subcommands are carried inside the main protocol commands 0x60 (broadcast), 0x62 (to specific player), 0x6C (extended broadcast), 0x6D (extended to specific player). Each subcommand has a 1-byte sub-opcode (0x00-0xFF).

Subcommand Header Format

Standard header: 4 bytes — subcommand(1), size_in_dwords(1), data... Extended header (size=0): 8 bytes — subcommand(1), 0x00, extended_size(4), data...

Version Mapping

Each subcommand has three opcode columns:

  • DC NTE — Dreamcast Network Trial Edition
  • DC 11/2000 — Dreamcast prototype (Nov 2000)
  • Final — All other versions (DCV1, DCV2, PC, GC, EP3, XB, BB)

NONE means the subcommand does not exist for that version.


Player Movement & Position

Sub-opcodeHandlerDescription
6x1Fon_change_floorChange floor (includes teleport/pipe transitions)
6x20on_movement_xyz_with_floorSet position with floor (SetPosition)
6x21on_change_floorChange floor (alternate)
6x24on_movement_xyzTeleport player to XYZ position
6x3Eon_movement_xyz_with_floorStop at position
6x3Fon_movement_xyz_with_floorSet position (alternate)
6x40on_movement_xzWalk to position (XZ plane)
6x41on_movement_xzRun/move to position
6x42on_movement_xzRun/move to position (alternate)
6x55on_movement_xyzIntra-map warp
6x56on_movement_xyzSet player position and angle
6x94on_warpWarp to another area

Player State & Animation

Sub-opcodeHandlerDescription
6x02forward_subcommand_m(basic forward)
6x03forward_subcommand_m(basic forward)
6x04forward_subcommand_m(basic forward)
6x05on_switch_state_changedSwitch state changed
6x0Con_received_conditionReceived negative condition (status effect)
6x0Eforward (entity_id_transcode)Clear negative status effects
6x17on_set_entity_pos_and_angleSet entity position and angle
6x23on_set_player_visibleSet player visible
6x2Fon_change_hpChange player HP
6x30on_level_upPlayer level up
6x4Aon_change_hpChange HP (variant)
6x4Bon_change_hpChange HP (variant)
6x4Con_change_hpChange HP (variant)
6x4Don_player_diedPlayer died
6x4Eon_player_revivablePlayer became revivable
6x4Fon_player_revivedPlayer revived
6x52on_set_animation_stateSet animation state

Item & Inventory Operations

Sub-opcodeHandlerDescription
6x25on_equip_itemEquip item
6x26on_unequip_itemUnequip item
6x27on_use_itemUse item (consume)
6x28on_feed_magFeed MAG
6x29on_destroy_inventory_itemDestroy item in inventory
6x2Aon_player_drop_itemPlayer drops item to floor
6x2Bon_create_inventory_itemCreate item in inventory
6x59on_pick_up_itemPick up item (confirmed)
6x5Aon_pick_up_item_requestPick up item request
6x5Con_destroy_floor_itemDestroy floor item
6x5Don_drop_partial_stackDrop partial stack of items
6x5Eon_buy_shop_itemBuy item from shop
6x5Fon_box_or_enemy_item_dropBox/enemy item drop notification
6x60on_entity_drop_item_requestEntity drop item request
6x63on_destroy_floor_itemDestroy floor item (alternate)
6xA2on_entity_drop_item_requestEntity drop item request (alternate)

Combat & Attack

Sub-opcodeHandlerDescription
6x46forward (entity_targets_transcode)Attack finished (hit targets)
6x47forward (entity_targets_transcode)Cast technique (hit targets)
6x48on_cast_technique_finishedTechnique cast finished
6x49forward (entity_targets_transcode)Execute photon blast (hit targets)
6x89forward (entity_id_transcode)Set killer entity ID
6x8Fforward (entity_id_transcode)Add battle damage scores
6x91on_update_attackable_col_stateUpdate attackable collision state
6xE4on_incr_enemy_damageIncrement enemy damage (extended)

Boss Actions

Sub-opcodeHandlerDescription
6x10forward (entity_id_transcode)Dragon boss actions
6x11forward (entity_id_transcode)Dragon boss actions (alt)
6x12on_dragon_actionsDragon actions (special)
6x13forward (entity_id_transcode)De Rol Le boss actions
6x14forward (entity_id_transcode)De Rol Le boss actions with target
6x15forward (entity_id_transcode)Vol Opt boss actions
6x16on_vol_opt_actionsVol Opt boss actions (special)
6x18forward (entity_id_transcode)Vol Opt Phase 2 boss actions
6x19forward (entity_id_transcode)Dark Falz actions
6x84on_vol_opt_actionsVol Opt boss actions (V2+)
6x9Fforward (entity_id_transcode)Gal Gryphon boss actions
6xA0forward (entity_id_transcode)Gal Gryphon boss actions (alt)
6xA3forward (entity_id_transcode)Olga Flow boss actions
6xA4forward (entity_id_transcode)Olga Flow boss actions (alt)
6xA5forward (entity_id_transcode)Olga Flow boss actions (alt 2)
6xA8on_gol_dragon_actionsGol Dragon actions
6xA9forward (entity_id_transcode)Barba Ray boss actions
6xAAforward (entity_id_transcode)Barba Ray boss actions (alt)

Enemy & Object State

Sub-opcodeHandlerDescription
6x0Aon_update_enemy_stateUpdate enemy state
6x0Bon_update_object_stateUpdate object state
6x76on_set_entity_set_flagSet entity set flag
6x86on_update_object_stateHit destructible object
6x9Con_set_enemy_low_game_flags_ultimateSet enemy flags (Ultimate difficulty)

Game Sync & Join

Sub-opcodeHandlerDescription
6x6Bon_sync_joining_player_compressed_stateSync joining player state (compressed, player 0)
6x6Con_sync_joining_player_compressed_stateSync joining player state (compressed, player 1)
6x6Don_sync_joining_player_compressed_stateSync joining player state (compressed, player 2)
6x6Eon_sync_joining_player_compressed_stateSync joining player state (compressed, player 3)
6x6Fon_sync_joining_player_quest_flagsSync joining player quest flags
6x70on_sync_joining_player_disp_and_inventorySync joining player display data and inventory

Event & Map Triggers

Sub-opcodeHandlerDescription
6x67on_trigger_set_eventTrigger set event
6x68on_update_telepipe_stateUpdate telepipe state
6x69on_npc_controlNPC control
6x6Aon_set_boss_warp_flagsSet boss warp flags
6x75on_set_quest_flagSet quest flag
6x77on_sync_quest_registerSync quest register
6x93on_activate_timed_switchActivate timed switch

Communication

Sub-opcodeHandlerDescription
6x06on_send_guild_cardSend guild card to another player
6x07on_symbol_chatSymbol chat
6x74on_word_selectWord select (predefined phrases)
6xBDon_ep3_private_word_select_bb_bank_actionEP3 private word select / BB bank action
6xB2on_play_sound_from_playerPlay sound effect from player

Challenge & Battle Mode

Sub-opcodeHandlerDescription
6x7Con_challenge_update_recordsUpdate challenge mode records
6x7Don_update_battle_dataUpdate battle mode data
6x7Fon_battle_scoresBattle mode scores
6x97on_challenge_mode_retry_or_quitChallenge mode retry or quit
6xCFon_battle_restart_bbBattle mode restart (BB)
6xD0on_battle_level_up_bbBattle mode level up (BB)
6xD1on_request_challenge_grave_recovery_item_bbChallenge grave recovery item (BB)

BB-Specific Subcommands

Sub-opcodeHandlerDescription
6xB5on_open_shop_bb_or_ep3_battle_subsOpen shop (BB) / EP3 battle subs
6xB7on_buy_shop_item_bbBuy shop item (BB)
6xB8on_identify_item_bbIdentify item (Tekker)
6xBAon_accept_identify_item_bbAccept identified item
6xBBon_open_bank_bb_or_card_trade_counter_ep3Open bank (BB) / Card trade counter (EP3)
6xC0on_sell_item_at_shop_bbSell item at shop
6xC3on_drop_partial_stack_bbDrop partial stack
6xC4on_sort_inventory_bbSort inventory
6xC5on_medical_center_bbMedical center (heal)
6xC6on_steal_exp_bbSteal EXP (weapon special)
6xC7on_charge_attack_bbCharge attack (weapon special)
6xC8on_enemy_exp_request_bbEnemy EXP request
6xC9on_adjust_player_meseta_bbAdjust player meseta
6xCAon_quest_create_item_bbQuest create item
6xCBon_transfer_item_via_mail_message_bbTransfer item via mail
6xCCon_exchange_item_for_team_points_bbExchange item for team points
6xD2on_write_quest_counter_bbWrite quest counter
6xD5on_quest_exchange_item_bbQuest exchange item
6xD6on_wrap_item_bbWrap item (present)
6xD7on_photon_drop_exchange_for_item_bbPhoton Drop exchange for item
6xD8on_photon_drop_exchange_for_s_rank_special_bbPhoton Drop exchange for S-Rank special
6xD9on_momoka_item_exchange_bbMomoka item exchange
6xDAon_upgrade_weapon_attribute_bbUpgrade weapon attribute
6xDEon_secret_lottery_ticket_exchange_bbSecret lottery ticket exchange
6xDFon_photon_crystal_exchange_bbPhoton Crystal exchange
6xE0on_quest_F95E_result_bbQuest F95E result
6xE1on_quest_F95F_result_bbQuest F95F result
6xE2on_quest_F960_result_bbQuest F960 result

EP3 Card Battle Subcommands

Sub-opcodeHandlerDescription
6xBCon_ep3_trade_card_countsEP3 trade card counts
6xBFon_forward_check_ep3_lobbyEP3 lobby forward

Xbox-Specific

Sub-opcodeHandlerDescription
6xB3on_xbox_voice_chat_controlXbox voice chat control
6xB4on_xbox_voice_chat_controlXbox voice chat control

Debug

Sub-opcodeHandlerDescription
6xFFon_debug_infoDebug info (extended subcommand, used for debugging patches)

Summary

Total subcommands defined: 256 (0x00-0xFF)

  • Active handlers (not on_invalid): ~160
  • Forward-only (no server-side logic): ~60
  • Server-side processing: ~100