PS2汉化1 字库处理

2023-11-10

引语

其实字库处理很难说有一个统一的方法,不同的程序都需要不同方法来处理。

关于常见位图字库的详细信息

下面是字库存在于ELF/ERX文件时的处理思路。

字模替换

天真朴素、最通用的处理方式。适用于原字库大小能够塞下汉化所用的全部文字的情况。

这种情况只要对码表进行整理,完成码点的重映射即可,可以说非常的简单。

但是,如果汉化用字超出了……呢?

字库扩容

如果游戏利用的是ROM媒介,比如古早的游戏机将ROM映射到内存地址上那样的话,由于ROM本身的特性,在游戏原始ROM尾端附加字库是可能的。那么只要移动字库到尾端,然后维护字库的指针即可。

然而,PS2上,由于程序是被加载到内存中,而且各个内存都有被利用的可能性(通过堆分配等),如果真的要移动到尾端,你还需要继续维护成吨的代码,确保字库占有的内存不被利用掉。你可能需要修改malloc(甚至可能是开发商自己实现的)等一系列函数。然后才能将字库移动过去。

字库减色(有损压缩)

如果原始字库不是单色(1bpp)而是4色甚至16色的话,牺牲一些精度来保证容量是完全可以接受的。

难点在于,这次需要修改从字库取字的例程了。

而根据游戏的不同,取字例程要改到什么程度是不一定的。有的游戏可能拥有不止一个取字例程,那么也都需要改变。

以GUST的游戏为例,除了主字库之外,游戏还有一个小号的字模“缓冲区”。程序首先在缓冲区中找字,找不到的话再去字库取字,并保存到缓冲区。之后再从缓冲区中复制到其他各种地方染色、缩放等。所以,最简单的方法就是修改从字库复制字符到缓冲区的例程。将取得的1bpp字模加色到4bpp后贴回去即可。

字库压缩

将字库数据压缩,然后运行时解压到压缩时腾出的空间中,然后再令取字例程从那里取字。代价是会带来巨大的运行时开销。压缩率高时尤是。

结语

大概,就这些吧?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PS2汉化1 字库处理 的相关文章

  • Markdown快速入门教程

    Markdown 的目标是实现 易读易写 并强调它的 可读性 因此Markdown 的语法全由标点符号所组成 并经过严谨慎选 是为了让它们看起来就像所要表达的意思 以下是Markdown 大部分的语法 常用语法 文字样式 文字字体 类别 语
  • float,flex和grid布局

    页面布局往往会影响着整体的结构与项目的样式 通常我们用的布局方式有三种 float flex grid 1 float或position布局 1 1概念 首先对于一个页面来说 有浮动流 文档流 文本流这几种模式 而float布局则是脱离文档
  • MySQL的架构体系

    在对MySQL深入的学习之前 我们首先要了解MySQL的一个完整的架构 首先了解到MySQL是一个开源的数据库管理系统 它相对于Oracle更加地轻量 成本低 随着功能的日益完善 它也变得备受企业的喜爱 尤其是中小企业 有图可知 MySQL
  • 京东云高可用业务架构建设

    本文以 2022 年一个实际项目为基础 来演示在京东云上构建高可用业务的整个过程 公有云及私有云客户可通过使用京东云的弹性 IAAS PAAS 服务 创建高可用 高弹性 高可扩展 高安全的云上业务环境 提升业务 SLA 提升运维自动化水平
  • 某大型项目 三巡工作(服务器巡检脚本)

    bin bash 参数定义 date date Y m d H M S centosVersion awk print NF 1 etc redhat release VERSION date F 日志相关 LOGPATH tmp awr
  • 2022 年企业 Java 面试前复习的正确姿势(已助力 512 人入职大厂)

    前言 这份面试清单是今年 1 月份之后开始收集的 一方面是给公司招聘用 另一方面是想用它来挖掘在 Java 技术栈中 还有一些知识点是我还在探索的 我想找到这些技术盲点 然后修复它 以此来提高自己的技术水平 说实话刚开始的时候整理这些面试题
  • Docker第二篇-Linux和Windows下安装Docker

    文章目录 Docker版本说明 CentOS安装Docker 前提条件 安装 镜像加速 删除Docker CE Windows安装Docker 前提条件 安装 镜像加速 Docker版本说明 Docker 分为 CE 和 EE 两大版本 C
  • 树莓派烧录

    准备工作 树莓派 一张SD卡 SD尽可能的大 不然安装完系统 就没什么空间了 建议64G 软件准备 1 洗卡软件 SDcard Formatter 2 烧录软件 win32diskimager 3 镜像文件 可以从树莓派官网进行下载Rasp
  • MySQL数据行溢出的深入理解

    一 从常见的报错说起 故事的开头我们先来看一个常见的sql报错信息 相信对于这类报错大家一定遇到过很多次了 特别对于OMG这种已内容生产为主要工作核心的BG 在内容线的存储中 数据大一定是个绕不开的话题 这里的数据 大 远不止存储空间占用多
  • jenkins搭建自动化部署(Windows)

    官网 https jenkins io 选择相应版本下载 安装后找到安装目录下jenkins war 可以放在tomcat下运行 也可直接运行命令 java jar jenkins war 启动 关闭命令 net start jenkins
  • mysql 5.6压缩安装_mysql5.6zip格式安装过程

    第一步 到官网下载mysql 5 6 44 winx64的压缩包文件格式 第二步 在我的电脑 gt 属性 gt 高级 gt 环境变量 path变量中添加mysql bin文件夹的路径 第三步 配置完环境变量之后先别忙着启动mysql 我们还
  • 08-分布式

    1 分布式中 接口的幂等性的设计 在高并发场景的架构里 幂等性是必须得保证的 比如说提交作业 查询和删除不在 幂等讨论范围 1 建唯一索引id 每次操作 都根据操作和内容生成唯一的id 在执行之前先判断id是否存在 如果不存在 则 执行后续
  • rem的使用方式

    rem是什么 rem是指相对于根元素的字体大小的单位 在日常开发过程中我们通常把根元素 html body 的字体设置为10px 方便于我们计算 此时子元素的1rem就相当于10px rem与em的区别 各自的优缺点 em子元素字体大小的e
  • CVPR 2019 论文大盘点—人体姿态篇

    CV君盘点了CVPR 2019 中有关人体姿态的论文 其中研究 3D人体姿态估计的论文最多 有 11 篇 研究 2D 姿态估计的 7 篇 姿态迁移 2 篇 人体图像生成 1 篇 人体捕捉 2 篇 另外还有2篇创建了新的基准数据集 姿态估计是

随机推荐

  • python云图

    安装相关插件 python3 m pip install jieba wordcloud matplotlib import matplotlib pyplot as plt import jieba from wordcloud impo
  • 【Spring Boot】【前后端分离】后端接口返回结果统一封装

    文章目录 创建 SpringBoot 项目 封装返回结果 实现返回对象的自动封装 处理异常 测试 最近在尝试使用前后端分离的模式写一个简单的个人博客 遇到接口数据返回结构的问题 在网上查了一圈 发现了一个很好用的方法 在复现的过程中也遇到了
  • 算法设计与分析课后总结

    算法设计与分析课后总结 算法设计与分析 第1章 算法设计基础 课后习题 第二章算法分析基础 课后习题 1 考虑下面算法 回答下列问题 算法完成什么功能 算法的基本语句时什么 基本语句执行了多少次 2 分析以下程序段中基本语句的执行次数 要求
  • 100天精通Python(可视化篇)——第92天:Pyecharts绘制炫酷柱状图、条形图实战大全

    文章目录 专栏导读 1 基础柱状图 2 旋转x轴标签 3 旋转坐标轴 4 添加坐标轴名称 5 添加标记点 6 添加标注线 7 添加数据 8 添加自定义背景图 9 堆叠柱状图 10 柱状图与折线图组合 11 三维柱状图 12 水平滑动 鼠标滚
  • 包、模块、函数的关系结构

    三者关系 python中程序的结构是由包 模块 函数 类大致构成 其关系如下 package module function 模块定义与调用 1 python中一个 py文件都可以是一个module module可以有函数 类 代码组成 如
  • 使用python解决中英混合参考文献中et al 和等的问题

    这个代码使用zipfile将docx进行解压 然后操作document xml文件 找到中文中的et al之后替换为 等 然后再压缩为docx import zipfile import re import os import shutil
  • curl服务器文件,curl 向远程服务器传输file文件

    public function upload 获取上传文件信息 文件名称以自己实际上传文件名称为准 fileinfo FILE filename 请求参数 依据商户自己的参数为准 requestParam version requestPa
  • 声网(agora)音视频通话sdk—微信小程序demo

    首先需要注册一个声网账号 注册成功后创建项目 appid是指声网项目的appid 后续会在小程序的配置文件中用到 微信小程序接入视频通话 需要声网给开通小程序的权限 给声网邮箱发送邮件 注明开通微信小程序接入权限 并给发送appid app
  • Python代码扫描:企业级代码代码安全漏洞扫描Bandit

    目录 什么是Bandit 特点 安装 配置 配置Bandit Pycharm配置外置工具 使用实践 命令行参数 检查单个文件 检查整个目录 PyCharm中对单个文件或者项目目录的扫描 一个使用案例 应用场景 总结 参考资料 注意 后续技术
  • js DOM

    DOM Document Object Model HTML 和 XML 文档的编程接口 通过 DOM JavaScript 能够访问和改变 HTML 文档的所有元素 1 查找 通过 id 查找 HTML 元素 div div 2 通过标签
  • Paper and Codes Leaderboard

    目录 介绍 模型入选标准 1 目标检测 Paper and Codes for COCO by 2023 3 31 COCO FPS Models by 2023 02 18 Look at Batch Size 2 图像分类 ImageN
  • 【Backbone: MLP-Mixer】MLP-Mixer: An all-MLP Architecture for Vision

    Abstract CNN和attention based结构很棒 但不是必须的 本文提出MLP Mixer 一种基于多层感知机 MLPs 的框架 包含两种layers 1 channel mixing MLPs 应用在image patch
  • C++(30)——lambda表达式原理及应用

    lambda lambda这个词起源于数学上的 在C 中利用lambda表达式 可以方便的定义和创建匿名函数 lambda可以看做函数对象的升级版 改进了函数对象以下的缺点 使用在泛型算法中的参数传递的过程中 比较性质 自定义操作 优先级队
  • J2EE之自定义MVC框架知识(中篇)

    J2EE之自定义MVC框架知识 中篇 文章目录 J2EE之自定义MVC框架知识 中篇 前言 1 优化中央控制器中的action容器 使其加载变成可配置的 1 1 编写 xml文件 config xml 1 2 导入XML建模相关的类 Act
  • INNO setup 制作安装包

    1 获取SQLserver安装路径vardbpath string rtn boolean rtn RegQueryStringValue HKEY LOCAL MACHINE SOFTWAREMicrosoftMSSQLServerSet
  • 95-38-150-Buffer-CompositeByteBuf

    文章目录 1 概述 2 继承关系 1 概述 CompositeByteBuf实际就是个ByteBuf的包装器 它将多个ByteBuf组合成一个集合 然后对外提供统一的ByteBuf接口 2 继承关系
  • 对象,我遇见了你

    对象 什么是对象 对象属性 Object assign Object create Object is Object keys Object values Object entries Object fromEntries Object t
  • Day 21 B. T-primes

    Problem We know that prime numbers are positive integers that have exactly two distinct positive divisors Similarly we l
  • Windows下安装nvm及搭建Angular环境的步骤整理

    环境 操作系统 windows 8 1 安装nvm nvm windows 下载https github com coreybutler nvm windows releases 我把nvm noinstall zip解压到c dev nv
  • PS2汉化1 字库处理

    引语 其实字库处理很难说有一个统一的方法 不同的程序都需要不同方法来处理 关于常见位图字库的详细信息 下面是字库存在于ELF ERX文件时的处理思路 字模替换 最天真朴素 最通用的处理方式 适用于原字库大小能够塞下汉化所用的全部文字的情况