Skip to content
forked from wetor/LuckSystem

Prototype's galgame (Luca System Engine) tools, Decompile and Compile Luca System's script file

License

Notifications You must be signed in to change notification settings

AEBus/LuckSystem

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Luck System

LucaSystem engine galgame Emulator
LucaSystem 引擎解析工具

LucaSystem解析完成进度

Luca Pak 封包文件

  • 导出完成
  • 导入完成
    • 仅支持替换文件数据

Luca CZImage 图片文件

CZ0

  • 导出完成 32位
  • 导入完成 32位

CZ1

  • 导出完成 8位
  • 导入完成 8位

CZ2

  • 遇到问题,未解决

CZ3

  • 导出完成 32位
  • 导入完成 32位

CZ4

  • LucaSystemTools中完成

CZ5

  • 未遇到

Luca Script 脚本文件

  • 导出完成
  • 导入完成
  • 简单的模拟执行

笔记

根据时间,可以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

Luca Font 字体文件

  • 解析完成
  • 能够简单使用,生成指定文本的图像

info文件

  • 解析完成

Luca OggPak 音频封包

  • 导出完成

目前支持的游戏

  1. LB_EN:《Little Busters! English Edition》 Steam *优先
  2. 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引擎的游戏资源解析

1.22

  • 完成CZ1导入
  • 完成CZ0导出导入
  • 支持LB_EN BATTLE指令
  • 修正PAK文件ID,与脚本中的ID对应
  • 更换日志库为glog
  • 引入tui库tview

1.21

  • 完成LZW压缩
  • 完成图像拆分算法
  • 支持CZ3格式替换图像

2022.1.19

  • 支持替换pak文件内容并打包
    • 不支持修改文件名和增加文件
  • 不再以LucaSystem引擎模拟器为目标,现以替代LucaSystemTools项目为目标

8.13

  • 项目更名为LuckSystem
    • 目标为实现LucaSystem引擎的模拟器

8.12

  • 支持字库的加载
    • 字库info文件的解析与应用
    • 字库CZ1图像的解析
  • 现已支持根据文字内容,按指定字体生成文字图像

8.11

  • 支持动态加载pak中的文件
    • 加载pak仅加载pak文件头,内部文件需要时读取
  • 支持音频文件的oggpak的解包
  • 开始编写CZ图像解析
    • 完成通用lzw解压
    • 支持CZ3图像的加载

8.7

  • 完美支持脚本导出为文本、导入为脚本
  • 开始设计与编写模拟器主体

8.3

  • 支持pak文件的加载

8.1

  • 完成大部分导出模式功能
    • 解析文本
    • 合并导出参数和原脚本参数
    • 将文本中的数据合并到原脚本,并转为字节数据

7.28

  • 完善导出模式,支持更多指令

7.27 累积

  • 为虚拟机增加导入模式和导出模式
    • 导出模式:不执行引擎层代码,将脚本转为字符串并导出
    • 导入模式:开始设计与编写

7.13

  • 增加engine结构,即引擎层,与虚拟机做区分
    • 虚拟机:执行脚本内容,保存、计算变量等逻辑相关操作
    • 引擎:执行模拟器的显示、交互等

7.12

  • 支持表达式计算
    • 表达式的读取以及中缀表达式转后缀表达式
    • 后缀表达式的计算
  • 引擎中使用内置数据类型,不在使用包装数据类型

7.11

  • 重构代码结构,使用vm来处理脚本执行相关
  • 增加context,在执行中传递变量表等数据
  • 增加变量表,储存运行时变量
  • 优化参数的读取
  • 统一接口代码,虚拟机与引擎前端交互接口

6.30

  • 支持多游戏
  • 设计参数、函数等结构

6.28

  • 框架设计与编写
  • 第三方包的选择与测试
  • 支持LB_EN基本解析

计划

  • 支持更多LucaSystem引擎的游戏脚本解析
  • 完善引擎函数
  • 引擎层交互的初步实现

About

Prototype's galgame (Luca System Engine) tools, Decompile and Compile Luca System's script file

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%