yksoft1 发表于 2020-5-21 08:39

口袋妖怪源码泄露系列——火红,绿毛虫进化为裂空座

这段时间任天堂的泄露实在是太劲爆了,口袋的1-3世代都没落下,据说今天初代绿的源码也要被放出来了。
火红叶绿Debug模式。当初IS的GBA SDK用的居然是gcc2.9来编译,而不是想象中的CodeWarrior之类。

Debug功能测试视频
https://www.bilibili.com/video/BV1Jt4y11768/

绿毛虫进化为裂空座:



hu794 发表于 2020-5-21 08:43

mjzs07 发表于 2020-5-21 08:44

有金银吗,想看聪哥的部分

yksoft1 发表于 2020-5-21 08:53

mjzs07 发表于 2020-5-21 08:44
有金银吗,想看聪哥的部分

金银里就看到一个压缩怪兽图像文件的工具是岩田聪写的。贴一点点吧
/*
*        ポケモングラフィックデータの圧縮・バンク詰めコンバータ
*                Created by S.Iwata / HAL Laboragtory, Inc.
*/
#include<stdio.h>
#include<stdlib.h>

typedef        unsigned char        BYTE;
typedef        unsigned int        WORD;
typedef unsigned long        DWORD;


/* ファイルに1バイト出力 */
void putByte(BYTE, FILE*);
/* ファイルfpiの内容を圧縮してfpoに出力し圧縮後のサイズを返す */
int vpack(FILE *fpi, FILE *fpo);
/* 圧縮用データバッファ(データ出力に使用) */
extern BYTE data[];

/* データ種別定義 */
typedef enum {
MonsFront = 0,        /* モンスター正面 */
MonsBack,                /* モンスター背面 */
UnknownFront,                /* アンノーン正面 */
UnknownBack,                /* アンノーン背面 */
Trainer                /* トレーナー */
} DKind;

/* データ断片 */
typedef struct {
DKind        kind;                /* データ種別 */
int        idno;                /* データID(モンスター番号) */
int        bank;                /* バンク番号 */
long        bpoint;                /* バンク内のポインタ */
int        size;                /* この情報のサイズ */
} BLOCKREC;/*
*        データ圧縮ユーティリティー
*                Written by S.Iwata
*                        on April,1989
*                revised by M.Kanai
*                        on Aug., 1989
*                revised by T.Gunji
*                        on May., 1994
*                revised by S.Iwata
*                        on September, 1996
*                revised by S.Iwata
*                        on September, 1998
*
*/
#include<stdio.h>
#include<stdlib.h>

typedef        unsigned char        BYTE;
typedef        unsigned int        WORD;
typedef unsigned long        DWORD;

#define        TRUE        1
#define        FALSE        0
#define        FILENAMELENGTH        64                /* ファイル名用バッファの大きさ */
#define        DATASIZELIMIT        65536                /* 扱えるデータの最大値 64KB */
#define        EMPTY        (WORD)DATASIZELIMIT        /* ハッシュテーブル内で空きを示す */
#define        HASHTABLESIZE        131111                /* 素数 524287 512KB */
                                        /* (old-version 131111) */

BYTE        data;        /* 圧縮データバッファ */
BYTE        algorythm;        /* 圧縮アルゴリズム */
WORD        compLength;        /* 圧縮対象データ長 */
WORD        reference;        /* 参照インデックス */
WORD        originalSize = 0;                /* 圧縮前のデータ長 */
WORD        packedSize = 0;                        /* 圧縮後のデータ長 */
WORD        nrefHash;
WORD        vrefHash;

BYTE        invertTable;                /* 左右反転用テーブル */
#define        Invert(n)        (invertTable) /* 左右反転データを得る */


#define NORMAL                (BYTE)0                /* 非圧縮通常データ */
#define RUNLENGTH        (BYTE)1                /* 1データ連続 */
#define RUNLENGTH2        (BYTE)2                /* 2データ交互連続 */
#define INCRUNLEN        (BYTE)3                /* インクリメンタルデータ連続 */
#define REFERENCE        (BYTE)4                /* 通常データ参照 */
#define REFERLR                (BYTE)5                /* 左右反転データ参照 */
#define REFERUD                (BYTE)6                /* 上下反転データ参照 */
#define        SPECIAL                (BYTE)7                /* 特殊データ */
#define        ENDMARK                (BYTE)0xff        /* データ終端 */



MungBeanSoup 发表于 2020-5-21 09:50

原来这个进化只是自己改了源码重新编译的结果。。。
还以为GF真会玩系列

riin 发表于 2020-5-21 10:06

一个陆仁贾 发表于 2020-5-21 10:30

草,欢乐多,绿毛虫真的可以进化成裂空座了

—— 来自 HUAWEI SPN-AL00, Android 9上的 S1Next-鹅版 v2.2.2.1

丹德里恩 发表于 2020-5-21 10:33

人生オワタ 发表于 2020-5-21 10:39

初代的开发时长还真的是长

不可避免 发表于 2020-5-21 10:53

有这个源码后,GBA上的改版能有什么新活?

yksoft1 发表于 2020-5-21 10:57

不可避免 发表于 2020-5-21 10:53
有这个源码后,GBA上的改版能有什么新活?

基本不会有,gba的rom都被人家反汇编个遍了。加新东西倒是可以,只不过一大堆数据文件要修改。

woodcoin 发表于 2020-5-21 11:46

看看注释也是很有趣的..

yksoft1 发表于 2020-5-21 12:25

woodcoin 发表于 2020-5-21 11:46
看看注释也是很有趣的..

反正觉得三世代很多代码就是把二世代的汇编给移植了。。

坛子漆黑 发表于 2020-5-21 13:27

什么,裂空座真的是绿毛虫进化来的

yksoft1 发表于 2020-5-21 16:22

坛子漆黑 发表于 2020-5-21 13:27
什么,裂空座真的是绿毛虫进化来的

只是改了一下代码玩梗。不过至少这一世代的非法精灵判定不包括裂空座,进化了还能控制。

harry3 发表于 2020-5-21 16:49

如何评价这些c的代码水平

yksoft1 发表于 2020-5-21 18:45

harry3 发表于 2020-5-21 16:49
如何评价这些c的代码水平

个人觉得其实还可以。就是很多源文件像是汇编直接改回来的

Gandalf 发表于 2020-5-21 19:05

烈空座幼崽在路上了

谷恒条野 发表于 2020-5-21 20:14

看到暴鲤龙飞天想起特别篇漫画里的飞天暴鲤龙

Cylap 发表于 2020-5-21 21:13

https://p.sda1.dev/0/af5d14994c48543e5ee978e02a3b09f8/-cd2dba11668d290.jpg这个跟以前那些改版有什么不一样吗

—— 来自 HUAWEI COR-AL00, Android 9上的 S1Next-鹅版 v2.2.2.1

yksoft1 发表于 2020-5-21 22:54

Cylap 发表于 2020-5-21 21:13
这个跟以前那些改版有什么不一样吗

—— 来自 HUAWEI COR-AL00, Android 9上的 S1Next-鹅版 v2.2.2.1 ...

这不是改版,这是官方当年的源码泄露,我稍微修改了三行编译了一下。。

mjzs07 发表于 2020-5-22 00:53

yksoft1 发表于 2020-5-21 08:53
金银里就看到一个压缩怪兽图像文件的工具是岩田聪写的。贴一点点吧




感谢,这段炸裂啊,没有这压缩,金银做出不来

黑星逆 发表于 2020-5-22 02:08

这个源码能分享吗?

yksoft1 发表于 2020-5-22 09:37

mjzs07 发表于 2020-5-22 00:53
感谢,这段炸裂啊,没有这压缩,金银做出不来

金银的所有怪兽/训练师图像加起来在ROM里只占用224KB。

yksoft1 发表于 2020-5-22 09:38

黑星逆 发表于 2020-5-22 02:08
这个源码能分享吗?

这玩意4chan很容易找吧,找/ppg/。
不会fq下载的话,我可以打个包。。

黑星逆 发表于 2020-5-22 23:18

yksoft1 发表于 2020-5-22 09:38
这玩意4chan很容易找吧,找/ppg/。
不会fq下载的话,我可以打个包。。

感谢指路,已经拿到了!

yksoft1 发表于 2020-5-23 02:04

//---------------------------------------------------------------------------------------------
/**
*        改造で作られたポケモンかどうかチェック
*
* @param        client_no        チェックするクライアント
*
* @return        1:不正ではない        0:不正
*
*/
//---------------------------------------------------------------------------------------------

int        HuseiPokemonCheck(u8 client_no)
{
        int        ret;

        //相手側のチェックは不要
        if(MineEnemyCheck(client_no)==SIDE_ENEMY){
                return 1;
        }
        //デオキシス、ミュウ以外のチェックは不要
        if(((PokeParaGet(&PokeParaMine],ID_monsno,0))!=MONSNO_DEOKISISU)&&
           ((PokeParaGet(&PokeParaMine],ID_monsno,0))!=MONSNO_MYUU)){
                return 1;
        }
        ret=PokeParaGet(&PokeParaMine],ID_event_get_flag,0);
        return ret;
}

火叶里检查配信怪是否合法的代码。不过这两个配信怪本身都来自配信道具船票,那个可没有任何特殊检查。

里村紅葉 发表于 2020-5-23 18:25

yksoft1 发表于 2020-5-23 21:21

黑星逆 发表于 2020-5-22 23:18
感谢指路,已经拿到了!

今晚珍钻的也泄露了。就是看makefile,估计依赖的开发工具链有点复杂。。
页: [1]
查看完整版本: 口袋妖怪源码泄露系列——火红,绿毛虫进化为裂空座