ckn吧 关注:1,615贴子:7,448
  • 17回复贴,共1

精灵宝可梦 皮卡丘版 商店扩容方法 附151扩容版

只看楼主收藏回复

初代的商店能买到的东西不多,就算是彩虹市的百货也就那么几个,其中最为烦恼的是很多技能机器只有一个。除了开老金、改存档,就只能去游戏rom里面修改商品列表。
怎么做呢?
首先,去找个最简单的商店。例如常磐的商店。这家店的商品列表:
精灵球,伤药,解毒药,解麻药,灼伤药。
查金手指可知他们各自对应的编号应该是04 14 0b 0f 0c。
猜测在rom当中应该也是这样写出商店物品列表的。
于是用winhex打开游戏rom,搜上面这段十六进制数据。
果然搜到了,前后看了一下,有几段格式相似的商品列表数据,最开头的地址在233b,FE开头,接着一个字节是商品种类数,后面商品列表,最后FF结束。
直接对照金手指编辑rom就可以更改商品种类,但很遗憾,原本只卖5种商品的常磐店,改来改去还是五种,不能卖多几种,如果插入多一个字节,整个文件都会错误的。这样的话,要让技能机都有得卖,商店之间就不太好卖重复的东西,最好是扩容。
不过就算从国外找到gen1商店修改器,也没法扩容(估计原理就是跟上面的编辑方法一样)。
我们不能这样就算了,去调试吧,打开bgb加载游戏,因为233b在rombank0,直接就可以给233b设置一个断点。
进常磐商店,跟卖家对话。程序中断,看到有个地址在读取233b处的数据(忘了是什么地址了,288x附近吧)。
看到hl=233b,那么就要知道是谁写了这个233b。
经过一番寻找,确定了是在上面的287e写进来的,233b这个数字是读取了4d17、4d18而来。
那么翻到4d17处,此时活动的是rom bank 7,在rom文件里面的地址只需这样换算:
4d17-4000+1c000=1cd17
winhex查到1cd17处看到3b23,确认是了,那怎么扩容呢?只有一个办法,把原来的商品列表数据遗弃掉,另外找一片空白处重写。
我们翻到rombank0的末尾,发现就剩三个字节的空白(00),没法写在这里。属于rombank7的尾部则有大量空白,1e6e0是一处好地方,就写在这里。比如这样写:
fe0a04140b0f0ce2e3e4e8faff
这样就能卖到十个商品种类了。
然后计算一下这个地址
1e6e0-1c000+4000=66e0
回去1cd17处,把e066写进去,保存,完事。
经过测试,同个列表的商品最多不能超过十五项(包括取消),否则会出现错误。所以最多卖十四个商品。
我已经做好了一个扩容的版本,蓝本是借用吧里的@南球 制作的151版本。
商品物价我已经调整了。
二楼发链接


IP属地:广东1楼2018-05-11 19:57回复
    度盘/s/15i8A5aUwTAp94qSuTWyMpA 密:4c7e
    除了石英高原以外,其他地方的商店都已经扩容过了,原本各自售卖的物品没有变化,后面加多了一些技能机等。
    价格都被我修改过了。跑遍整个地图可以买到所有TM技能机器,其他能卖的我尽量都在彩虹市大厦售卖。


    IP属地:广东2楼2018-05-11 20:04
    收起回复
      2025-05-19 17:41:01
      广告
      背包能扩容吗


      IP属地:吉林来自手机贴吧4楼2018-05-12 08:27
      收起回复