DOS游戏水浒传

下载DOS模拟器DOSBOX可以运行

生命数修改

cseg01:0002464F mov byte ptr eax+1, 5 //设置偏移+1的指令(当前生命数)

cseg01:00024656 mov byte ptr eax+15E5h, 5//设置偏移5605的指令(备份生命数)

dseg02:00050847 word_50847 dw 104h //林冲血量260

dseg02:00050871 db 0DCh //鲁智深血量220

dseg02:0005089B db 0FAh //锦儿血量250

游戏目录下的PAK文件

37:文件总数

BACK01.PCX 301408:文件名和文件大小对

索引表以第一个PCX文件头结束

复制代码
// PCX文件头结构
#pragma pack(push, 1)
typedef struct {
    uint8_t manufacturer;   // 0x0A
    uint8_t version;        // 版本
    uint8_t encoding;       // 编码 (1=RLE)
    uint8_t bits_per_pixel; // 每像素位数
    uint16_t xmin, ymin;    // 图像范围
    uint16_t xmax, ymax;
    uint16_t hres, vres;    // 分辨率
    uint8_t ega_palette[48]; // EGA调色板
    uint8_t reserved;
    uint8_t color_planes;  // 颜色平面数
    uint16_t bytes_per_line; // 每行字节数
} PCXHeader;
#pragma pack(pop)
​
// 文件信息结构
typedef struct {
    char filename[20];
    long file_size;
    long index_offset;     // 索引表计算的偏移
    long actual_offset;    // 实际PCX头偏移
    int is_matched;        // 是否匹配成功
} FileEntry;
​
// PCX签名信息
typedef struct {
    long offset;           // PCX头偏移
    int is_used;           // 是否被使用
    char used_by[20];      // 被哪个文件使用
} PCXSignature;

总体流程:

分析文件结构:首先解析PAK文件的索引表,获取每个文件的文件名和大小。

计算文件偏移:索引表之后就是文件数据,根据索引表计算每个文件的起始偏移。

提取文件:根据偏移和大小,将每个文件数据读取出来,保存为独立的文件。

PCX图片用的8位色的调色板,用xnviewmp 看图软件可以浏览。

相关推荐
小小数媒成员3 小时前
UGUI原理(一)
开发语言·游戏·unity·游戏引擎
揽星河..20 小时前
【C语言】扫雷游戏
c语言·算法·游戏
郝学胜-神的一滴1 天前
AI 编程智能体 22:解析器赋能与实战落地全指南
人工智能·程序人生·游戏·unity·游戏引擎
云上工程笔记1 天前
用 AstraWork 复刻并二创一款网页地牢游戏:从链接到上线的完整工程实践
游戏
zrc0070071 天前
steam无法登录 steam错误 登录时出现错误。请稍后再试。解决办法 steam无法登录解决办法 湖南地区steam DNS问题解决办法
windows·经验分享·游戏·缓存·游戏程序·创业创新·玩游戏
大囚长1 天前
Kubernetes 的资源开销、适用边界,以及游戏与有状态负载的工程现实
游戏·容器·kubernetes
qq_25294131681 天前
三角洲第一人称射击游戏(FPS)角色部位检测数据集 | 游戏目标检测、角色部位识别、小目标检测9296期
目标检测·游戏·计算机·目标跟踪·三角洲·三角洲游戏·身体
william_yangshun2 天前
【AI实战】Claude-Code-Game-Studios中文版使用教程:把Claude Code改造成49个Agent的游戏工作室
人工智能·游戏
流浪打工人2 天前
快乐小鸡游戏
游戏
Solange__2 天前
在线3D预览器、Blender和游戏引擎怎么选?按5类任务比较格式、隐私与编辑性
人工智能·游戏·3d·游戏引擎·blender·1024程序员节·关卡设计