Pokemon Center | 口袋中心 以口袋妖怪为主题并带有其他动漫游戏的讨论

 找回密码
 加入口袋中心
搜索
查看: 173|回复: 2

金手指(Gameshark)机制原理

[复制链接]

21

回帖

145

现金

4

勋章券

新伙伴的欢笑

Rank: 3

积分
98
发表于 2024-10-10 23:23:39 | 显示全部楼层 |阅读模式
本帖最后由 puro0304 于 2024-10-10 23:23 编辑

这是我从一个介绍GB(C)的网站里面看到的,这个网站看下去真的是收获了一堆GB(C)知识。
看到这里好多使用金手指的玩家,所以就想告诉各位GB(C)金手指是怎么工作的?

以下是该网站地址连接:
https://gbdev.io/pandocs/Specifications.html

金手指都是8位16进制的一串数字/字母,比如美版红蓝的穿墙金手指010138CD这种。
从左到右:
1和2位代表SRAM bank,即使用此金手指会将SRAM切换到bank1,对于宝可梦游戏的SRAM,简单来说就是存档RAM。但金手指一般不会直接修改存档。
3和4位代表新数据,即使用此金手指会在对应的RAM位置写下01.
5678位代表位置,注意GB(C)记录位置都是先小后大的,38CD代表的是CD38。一般金手指写的都是WRAM(工作RAM)区域,也就是C000-DFFF这个区域。
所以总体的来说,就是切换SRAM的bank为01,并把01写入RAM的CD38位置上。


据了解,金手指的机理是通过挂钩原始的VBlank中断处理程序并每帧重写RAM数据来实现的。(或者你可以简单理解为每次GB(C)更新完所有RAM原本的数据就马上被金手指更新为规定的数据)
所以金手指有一个缺点,就是会占用GB(C)的CPU时间。(但现在我们都是用模拟器的,可以忽略这个缺点)还有它不能去修改ROM的程序,因为ROM在RAM里面是无法更改的。
回复

使用道具 举报

15

回帖

79

现金

0

勋章券

口袋学堂外的努力

Rank: 2Rank: 2

积分
38
发表于 2024-10-11 13:09:47 | 显示全部楼层
其实跟外挂一个原理:直接修改内存,而大多数游戏不能通过内存进行对游戏直接修改,所以不能改游戏资源(rom)
有需求发邮箱:htxx34zyx@126.com
什么资源都有
回复 支持 反对

使用道具 举报

15

回帖

79

现金

0

勋章券

口袋学堂外的努力

Rank: 2Rank: 2

积分
38
发表于 2024-10-11 13:10:48 | 显示全部楼层
先小后大...也就是说我先输入密码再开机?
有需求发邮箱:htxx34zyx@126.com
什么资源都有
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入口袋中心

本版积分规则

手机版|Archiver|Pokemon Center

GMT+8, 2024-10-31 11:29 , Processed in 0.097638 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表