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 看图软件可以浏览。

相关推荐
德迅云安全—珍珍40 分钟前
2核2G的云服务器可以架设游戏吗?
运维·服务器·游戏
一起养小猫2 小时前
Flutter for OpenHarmony 实战:贪吃蛇游戏核心架构设计
flutter·游戏
张较瘦_6 小时前
[论文阅读] AI + 软件工程 | 突破AAA游戏测试瓶颈!选择性插桩让代码覆盖“轻装上阵”
论文阅读·游戏·软件工程
嫂子开门我是_我哥6 小时前
第十七节:项目实战1:猜数字游戏(模块化开发实现)
开发语言·python·算法·游戏
子春一7 小时前
Flutter for OpenHarmony:用 Flutter 构建一个数字猜谜游戏:从零开始的交互式应用开发
javascript·flutter·游戏
一起养小猫8 小时前
Flutter for OpenHarmony 实战:碰撞检测算法与游戏结束处理
算法·flutter·游戏
上海云盾第一敬业销售9 小时前
深入解析:游戏盾与零信任在服务器防护中的应用对比
运维·服务器·游戏
晚霞的不甘10 小时前
Flutter 方块迷阵游戏开发全解析:构建可扩展的关卡式益智游戏
前端·flutter·游戏·游戏引擎·游戏程序·harmonyos
zilikew11 小时前
Flutter框架跨平台鸿蒙开发——谁是卧底游戏APP的开发流程
flutter·游戏·华为·harmonyos·鸿蒙
金山毒霸电脑医生1 天前
植物大战僵尸融合版下载与安装教程:PC/安卓/iOS 全面指南
游戏·ios·植物大战僵尸·植物大战僵尸融合版·游戏工具