LucaSystem engine galgame Emulator
LucaSystem 引擎解析工具
- 导出完成
- 导入完成
- 仅支持替换文件数据
- 导出完成 32位
- 导入完成 32位
- 导出完成 8位
- 导入完成 8位
- 遇到问题,未解决
- 导出完成 32位
- 导入完成 32位
- LucaSystemTools中完成
- 未遇到
- 导出完成
- 导入完成
- 简单的模拟执行
根据时间,可以LucaSystem的脚本类型分为三个版本,目前仅研究V3版本,即最新版本。LucaSystemTools支持V2版本的脚本解析
类型 | 长度 | 名称 | 说明 |
---|---|---|---|
uint16 | 2 | len | 代码长度 |
uint8 | 1 | opcode | 指令索引 |
uint8 | 1 | flag | 一个标志,值0~3 |
[]uint16 | 2 * n | data0 | 未知参数,其中n=flag(flag<3),n=2(flag==3) |
params | len -4 -2*n | params | 参数 |
uint8 | k | align | 补齐位,其中k=len%2 |
- 解析完成
- 能够简单使用,生成指定文本的图像
- 解析完成
- 导出完成
- LB_EN:《Little Busters! English Edition》 Steam *优先
- SP:《Summer Pockets》 Nintendo Switch
-
MESSAGE (LB_EN、SP)
-
SELECT (LB_EN、SP)
-
IMAGELOAD (LB_EN、SP)
-
BATTLE (LB_EN)
-
UNKNOW0 (仅LB_EN出现)
-
EQU
-
EQUN
-
ADD
-
RANDOM
-
IFN
-
IFY
-
GOTO
-
JUMP
-
FARCALL
-
MOVE
其余指令的数据均为未处理或者解析
- 支持命令行使用或tui使用(现在需要使用test来调用各种功能模块)
- 支持更多LucaSystem引擎的游戏资源解析
- 完成CZ1导入
- 完成CZ0导出导入
- 支持LB_EN BATTLE指令
- 修正PAK文件ID,与脚本中的ID对应
- 更换日志库为glog
- 引入tui库tview
- 完成LZW压缩
- 完成图像拆分算法
- 支持CZ3格式替换图像
- 支持替换pak文件内容并打包
- 不支持修改文件名和增加文件
- 不再以LucaSystem引擎模拟器为目标,现以替代LucaSystemTools项目为目标
- 项目更名为LuckSystem
- 目标为实现LucaSystem引擎的模拟器
- 支持字库的加载
- 字库info文件的解析与应用
- 字库CZ1图像的解析
- 现已支持根据文字内容,按指定字体生成文字图像
- 支持动态加载pak中的文件
- 加载pak仅加载pak文件头,内部文件需要时读取
- 支持音频文件的oggpak的解包
- 开始编写CZ图像解析
- 完成通用lzw解压
- 支持CZ3图像的加载
- 完美支持脚本导出为文本、导入为脚本
- 开始设计与编写模拟器主体
- 支持pak文件的加载
- 完成大部分导出模式功能
- 解析文本
- 合并导出参数和原脚本参数
- 将文本中的数据合并到原脚本,并转为字节数据
- 完善导出模式,支持更多指令
- 为虚拟机增加导入模式和导出模式
- 导出模式:不执行引擎层代码,将脚本转为字符串并导出
- 导入模式:开始设计与编写
- 增加engine结构,即引擎层,与虚拟机做区分
- 虚拟机:执行脚本内容,保存、计算变量等逻辑相关操作
- 引擎:执行模拟器的显示、交互等
- 支持表达式计算
- 表达式的读取以及中缀表达式转后缀表达式
- 后缀表达式的计算
- 引擎中使用内置数据类型,不在使用包装数据类型
- 重构代码结构,使用vm来处理脚本执行相关
- 增加context,在执行中传递变量表等数据
- 增加变量表,储存运行时变量
- 优化参数的读取
- 统一接口代码,虚拟机与引擎前端交互接口
- 支持多游戏
- 设计参数、函数等结构
- 框架设计与编写
- 第三方包的选择与测试
- 支持LB_EN基本解析
- 支持更多LucaSystem引擎的游戏脚本解析
- 完善引擎函数
- 引擎层交互的初步实现