the cutting room mirror

MR 05 V.BIN

This article has a talk page!
view on tcrf.net

This is a sub-page of Kinniku Banzuke Vol.1: Ore ga Saikyou no Otoko da!.

0x72200#

最左端スライスフラグをセット */
    movW.isFirstSlice = 1;

    /* フレームナンバー初期化 */
    movW.mov_now = 0;

    /* ストリーミング初期化&開始 */
    strInit( &movW.file, strCallback );

    /* VLCテーブルの展開 */
    DecDCTvlcBuild( ( unsigned short * )DECO_TBL );

    /* 最初のフレームの VLCデコードを行なう */
    while( strNextVlc( &movW.dec ) == -1 )
    {
        movW.cur_loc = movW.file;
        strKickCD( &movW.cur_loc );
    }

    /* 終了フラグのクリア */
    movW.endOfMovie = 0;

    /* 画面クリア */
    setRECT( &rect, mov->disp_vx, 0, VRAMPIX( mov->width, mov->is24bit ), mov->height * 2 );
    ClearImage( &rect, 0, 0, 0 );           /* 黒でクリア */

    movW.fade = 0;

    return( 1 );
}

/* アニメーションサブルーチン フォアグラウンドプロセス */
static int mov_play( void )
{
    sp_w;

    while( movW.endOfMovie == 0 )
    {
        /* VLCの完了したデータをDCTエンコード開始(MDECへ送信) */
        DecDCTin( movW.dec.vlcbuf[movW.dec.vlcid], DCT_MODE( mov->is24bit ) );

        /* DCTデコード結果の受信の準備をする            */
        /*   この後の処理はコールバックルーチンで行なう */
        DecDCTout( ( unsigned long * )movW.dec.imgbuf[movW.dec.imgid], movW.dec.slice.w * mov_bound16( movW.dec.slice.h ) / 2 );

#if FUTA_MOVIE
        /* 次のフレームのデータの VLC デコード */
        while( strNextVlc( &movW.dec ) == -1 )
        {
            /* 現在のロケーションの取得 */
            movW.mov_now = StGetBackloc( &movW.cur_loc );

            /* 不正なフレーム番号検出 */
            if( ( movW.mov_now > mov->tail ) || ( movW.mov_now <= 0 ) )
            {
                movW.cur_loc = movW.file;
            }
            strKickCD( &m

0x90400#

#########################################################
;
;       フェードアウトルーチン
;
#############################################################################*/
void Fade_Set(int palette_no,int no)
{
    sys_w;
    sp_w;
    register    Uchar   rgb;

    fade_timer=palette_no;
    if (palette_no>=0x0f){
        s->classw0[no].kind=0;
    }else{
        rgb=(0x10-palette_no+1)*8;
//      disp2d(no,SPD_FADE,STP10M10,0,0,6,0,ONE*7,ONE*7,0,0,rgb,rgb,rgb,0,1);
        if ( INTER_MODE == INT_VSYNC ){     /*進行中*/
            disp2d(no,SPD_FADE,STP10M10,0,0,14,0,ONE*8,ONE*7,0,0,rgb,rgb,rgb,0,1);
        }else{      /*ゲーム中*/
            disp2d(no,SPD_FADE,STP10M10,0,0,11,0,ONE*8,ONE*7,0,0,rgb,rgb,rgb,0,1);
        }
    }
}

int Fade_Add(int no)
{

    if (fade_timer<0x10){
        Fade_Set(fade_timer,no);
        fade_timer+=4;
        return(0);
    }else{
        Fade_Set(fade_timer,no);
        return(1);
    }
}

int Fade_Sub(int no)
{

    if (fade_timer>0){
        Fade_Set(fade_timer,no);
        fade_timer-=4;
        fade_timer2=2;
        return(0);
    }else{
        Fade_Set(0,no);
        if (fade_timer2>0

0x160C00#

            wk_step = TIT_MAIN_DSP1;
        }
        break;

    case    TIT_MAIN_DSP1:  //  PRESS START 表示開始
        set2dN( 0x05,0x3001,MODE256,0,-16,0x1d,(ttflg)?0xe0:0xf0,1,PR0 );   //  PRESS START
        wk_step = TIT_MAIN_KEY;
        break;

    case    TIT_MAIN_KEY:   //  キー操作監視
        nokey++;    //  監視タイマーカウントアップ
        timer++;    //  点滅タイマーカウントアップ

        cls0 = SETCLS0( 0x05 );
        if( timer%32 == 0 ) {   //  PRESS START 点滅
            cls0->kind = 1^cls0->kind;
            timer = 0;
        }

        if( JOYTRG0|JOYTRG1 ) { //  キー操作あり
            nokey = 0;          //  タイマークリア
            if( (JOYTRG0|JOYTRG1) & (P_START|P_RRIGHT) ) {
                wk_step = TIT_MAIN_FOUT;
                SD_call( SD_DECIDE );
            }
        }
        if( nokey > 60*10 ) {   //  時間切れ
            wk_step = TIT_MAIN_FOUT;
        }
        break;

    case    TIT_MAIN_FOUT:  //  フェードアウト
        if( Fade( (4<<4)|1, 0x02, 0x04 ) ) {
            sstep_up();
        }
        break;
    }
}


//==============================================================================
//  タイトル 後処理
//==============================================================================
static void Ti

0x168200#

-------------*/
/*                          include                                                                                         */
/*------------------------------------------------------------------*/
#include    "ps000.h"
#include    "gbl_data.h"                /* Global Data definition Header            */
#include    "disp3d.h"
#include    "taka.h"
#include    "game.h"

/*------------------------------------------------------------------*/
/*                          define                                                                                          */
/*------------------------------------------------------------------*/
/*肌の色*/
enum {
    SKINCOL_YL = 0,     /*黄色*/
    SKINCOL_WT,             /*白色*/
    SKINCOL_RB,             /*赤褐色*/
    SKINCOL_BK,             /*黒色*/
};
/*服の色*/
enum {
    WEARCOL_BK = 0,     /*黒色*/
    WEARCOL_WT,             /*白色*/
    WEARCOL_RD,             /*赤色*/
    WEARCOL_BL,             /*青色*/
    WEARCOL_YL,             /*黄色*/
    WEARCOL_GR,             /*緑色*/
    WEARCOL_PP,             /*紫色*/
    WEARCOL_OG,             /*橙色*/
};

/*服装による肌の色と服の色の組み合わせ*/
/*服装ごとにカラーバリエーションが8パターン用意されている*/
/*パターンを指定するようにする*/
typedef struct {
    char skin2; /*-1なら普通の肌色と同じ*/
    char skin3; /*-1なら普通の肌色と同じ*/
    short skin4;    /*-1なら普通の肌色と同じ*/
    char wear1[8];
    char wear2[8];
    char wear3[8];
    char weard1[8];
    char weard2[8];
    char weard3[8];
    char wear4[8];
    char no21[8];
    char _21s[8];
    char rogo[8];
}ED_PTN;
/*------------------------------------------------------------------*/
/*                          prototype                                                                                       */
/*------------------------------------------------------------------*/





/*---------------------------------------------

0x19CE00#

i++ ) {
        if( (bit>>(cnt-i-1))&0x1 ) {
            spd[z].offset_y = 0xffc2-(FN_SP*FN_MX+FN_SA*i); 
            z++;
        }
    }
}


//==============================================================================
//  フォント スライドイン・アウト
//------------------------------------------------------------------------------
//  パラメータ
//      io      :   0(イン)/1(アウト)
//      cno     :   フォント 登録パーツ番号
//      cnt     :   全フォント数(非表示分含む)
//      bit     :   表示ビット 0(なし)/1(あり)
//      tbl     :   ワークテーブル番号
//-------------------------------------------

0x1B4400#

, WEARCOL_GR, WEARCOL_PP, WEARCOL_OG },    /*wear1*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*wear2*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*wear3*/
        { WEARCOL_BK, WEARCOL_WT, WEARCOL_RD, WEARCOL_BL, WEARCOL_YL, WEARCOL_GR, WEARCOL_PP, WEARCOL_OG }, /*weard1*/
        { WEARCOL_WT, WEARCOL_BL, WEARCOL_WT, WEARCOL_WT, WEARCOL_BK, WEARCOL_WT, WEARCOL_WT, WEARCOL_WT }, /*weard2*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*weard3*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*wear4*/
        { WEARCOL_WT, WEARCOL_BL, WEARCOL_WT, WEARCOL_WT, WEARCOL_BK, WEARCOL_WT, WEARCOL_WT, WEARCOL_WT }, /*no21*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*_21s*/
        { WEARCOL_WT, WEARCOL_BL, WEARCOL_WT, WEARCOL_WT, WEARCOL_BK, WEARCOL_WT, WEARCOL_WT, WEARCOL_WT }, /*rogo*/
    },
/*#P*/
    {
        -1,-1,SKINCOL_BK,
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*wear1*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*wear2*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*wear3*/
        { WEARCOL_BK, WEARCOL_WT, WEARCOL_RD, WEARCOL_BL, WEARCOL_YL, WEARCOL_GR, WEARCOL_PP, W

0x1BA200#

               /* 一つ前の 入力値 */
    Ushort  joytrg;                 /* (joy_w ^ joyold) & joy_w */
    Ushort  joyntrg;                /* (joy_w ^ joyold) & joy_old */
    Uchar       anacon_fg;          /* アナコンのON/OFF      0:OFF       1:ON */
    signed char anacon_l_x; /* アナコン左レバーのx方向入力値 */
    signed char anacon_l_y; /* アナコン左レバーのy方向入力値 */
} JOY_W;

/*      アナコン用マクロ*/
#define ANACON_NEUTRAL      0x80    /*アナログコントローラの中間値*/
#define ANACON_ASOBI_MIN    0x60    /*アナログコントローラの遊び*/
#define ANACON_ASOBI_MAX    0xa0    /*アナログコントローラの遊び*/
#define AD_THRESHOLD_MIN    0x30    /*選択画面でデジタル入力的に使用する際の閾値*/
#define AD_THRESHOLD_MAX    0xd0    /*選択画面でデジタル入力的に使用する際の閾値*/

#define ANACON_L_CHECK(JOY) ((JOY.anacon_l_x) != 0 || (JOY.anacon_l_y != 0)) ? 1 : 0    /* 左レバーの入力のチェック */

/* -----------------------
 * TIM転送データ構造体
 * ----------------------- */

typedef struct _TIM_W {
    Uchar       ccode ; /* 画像データは DAT, カラーデータは DATCOL を指定 */
    Uchar       palet ; /* ccode == DATCOL の時のみ有効 */
    short x,y,w,h ;
    Ulong *tim ;
} TIM_W ;

/* -----------------------
 * カラーパレットアクセス
 * ----------------------- */

#define PALETW_SUU  0x100
#define PALETU(x) (s->palet[x].s[UPPER])
#define PALETV(x) (s->palet[x].s[LOWER])

/* ---------------------------------------------------------------------
 * スプライトパターンデータ構造体
 * ccode には 通常 DAT が入り、最後のデータには END が入ります。
 * SPD_W, OPD_W の ccode の扱いは ANIME_W, OBLOCK_W での cc

0x1BCE00#

e                                  */
   /*--------------------------------------------------------------------------*/

   u_long  ms;                         /*  マッスルランキング進行状況 (セーブ/ロード)      */
   /*--------------------------------------------------------------------------*/
   /*  保存データ   | 0:なし 1:あり                                           ( 0) */
   /*  キャラクター#   | システム共通(使用時はローカル変換する)                           ( 1) */
   /*  終了競技数 | 1~7                                                ( 5) */
   /*  順位       | 0~7(マクロで+1)                                         ( 8) */
   /*  競技内容   | 0:ALL 1:TEAM2 2:TEAM4                                 (11) */
   /*

0x1C0A00#

           /* レディース */
} PLAY_W;


/*--------------------------------------------------------------------------*/
/*                  jyanken work                                                                                                        */
/*--------------------------------------------------------------------------*/
#if 0
typedef struct _JYAN_LOG {
    Ulong jyanken;              /* ジャンケンの出目のログ */
} JYAN_LOG;

#define JYAN_DEME_01    0x00000003      //   1回目の出目
#define JYAN_DEME_02    0x0000000c      //   2回目の出目
#define JYAN_DEME_03    0x00000030      //   3回目の出目
#define JYAN_DEME_04    0x000000c0      //   4回目の出目
#define JYAN_DEME_05    0x00000300      //   5回目の出目
#define JYAN_DEME_06    0x00000c00      //   6回目の出目
#define JYAN_DEME_07    0x00003000      //   7回目の出目
#define JYAN_DEME_08    0x0000c000      //   8回目の出目
#define JYAN_DEME_09    0x00030000      //   9回目の出目
#define JYAN_DEME_10    0x000c0000      // 10回目の出目
#define JYAN_DEME_11    0x00300000      // 11回目の出目
#define JYAN_DEME_12    0x00c00000      // 12回目の出目
#define JYAN_DEME_13    0x03000000      // 13回目の出目
#define JYAN_DEME_14    0x0c000000      // 14回目の出目
#define JYAN_DEME_15    0x30000000      // 15回目の出目
#define JYAN_DEME_16    0xc0000000      // 16回目の出目


/*--------------------------------------------------------------------------*/
/*  loop 回目に出した型をログする型に変換するマクロ                                                  */
/*--------------------------------------------------------------------------*/
#define MAC_J_SET_FILTER(act, loop, val)    \
    (val = (act << loop*2));

/*---------------------------------------------------------------

0x1D0200#

    1999.08.09  松尾  DEMOモーションのファイル追加によるINDEX変更
    1999.08.07  中山  CDアドレス修正
    1999.08.04  清水  進行関連の各種定義を追加
    1999.08.04  松尾  松坂ユニフォームモデルの追加によるINDEX変更
    1999.07.27  松尾  だるまコナミモード用のアイテム定義追加
    1999.07.23  中山  アナウンサーモデル用定義追加
    1999.07.20  中山  data01.binのCD位置を変更
    1999.07.20  松尾  ブレイン用データのCDオフセットの変更忘れの直し
    1999.07.19  黄幡  キックターゲットのボードモーションデータのCDオフセットを定義
    1999.07.19  松尾  ユニフォームモデル追加にによるテーブル変更
    1999.07.16  松岡  モンスターボックスのファイル追加にによる変更
    1999.07.14  中山  ブレイン用データのCDオフセットを定義
    1999.07.13  中山  チェック関連追加
    1999.07.12  中山  CDアドレス変更
    1999.07.03  中山  CD焼きのためにいろいろ追加
    1999.06.19  黄幡  キックターゲットのコナミモードに対応するため、LOAD_ITEM_??のを定義を変更
    1999.06.15  松岡  LOAD_ITEM_CSR LOAD_ITEM_CSRを削除し、LOAD_ITEM_??のを追加
    1999.06.03  中山  2D関係のデータテーブル用の定義の追加
    1999.03.30  松岡  以下のファイルテーブル用の定義を追加
                            LOAD_P1_MODEL LOAD_P2_MODEL LOAD_PL_TEX LOAD_MOTION_DATA1 LOAD_MOTION_DATA2
                            LOAD_GROUND_MODEL LOAD_GROUND_CSR LOAD_ITEM_MODEL LOAD_ITEM_CSR
    1999.01.07  中山  少しファイルテーブル用定義の掃除

******************************************************************************/

/*  1ブロック2048バイト    */
#define BL  2048

/*読み込み関数の引数*/
#define LOAD_MC_PROGRAM             (0x00)      /*MODチップ対策プログラム*/
#define LOAD_CH00_PROGRAM           (0x01)      /*ストラック*/

0x1D2B10#

           1303    /*転がる:足をばたばた    */
#define SD_WA_DOWN3            1304    /*しりもち:どすっ          */
#define SD_WA_SLIDE1       1305    /*長い距離ひきずられる    */
#define SD_WA_SLIDE2       1306    /*短い距離ひきずられる    */
#define SD_WA_CSTEP1       1307    /*左足:足音汎用       

0x1E0600#

           /*ら*/
    F_K_RI,                         /*り*/
    F_K_RU,                         /*る*/
    F_K_RE,                         /*れ*/
    F_K_RO,                         /*ろ*/
    F_K_PA,                         /*ぱ*/
    F_K_PI,                         /*ぴ*/
    F_K_PU,                         /*ぷ*/
    F_K_PE,                         /*ぺ*/
    F_K_PO,                         /*ぽ*/
    F_2,                                /*2*/

    F_K_TA,                         /*た*/
    F_K_TI,                         /*ち*/
    F_K_TU,                         /*つ*/
    F_K_TE,                         /*て*/
    F_K_TO,                         /*と*/
    F_K_WA,                         /*わ*/
    f_dum02,                        /**/
    F_K_WO,                         /*を*/
    f_dum03,                        /**/
    F_K_N,                          /*ん*/
    F_K_LA,                         /*ぁ*/
    F_K_LI,                         /*ぃ*/

0x1E3600#

************/
extern char SD_status[];
extern int SD_title_ready;      /*gameinf.c*/
    /*ストラックアウト*/
extern short so_explain[];      /*g2d_00.c*/
extern short so_explain2[];     /**/
    /*キックターゲット*/
extern short kt_explain[];      /*g2d_00.c*/
    /*モンスターボックス*/
extern short mb_explain[];      /*g2d_02.c*/
    /*ショットガンタッチ*/
extern short st_explain[];      /*g2d_03.c*/
    /*タッグオブウォー*/
extern short tg_explain[];      /*g2d_04.c*/
    /*ハスラー*/
extern short hu_explain[];      /*g2d_05.c*/
    /*だる

0x2179C0#

, char *buff, int len);

 








int PCwrite (int f

0x240200#

> /* pad system hendler : アナログコントローラを使うためにインクルードする必要あり */
#include <libcd.h>
#include <libhmd.h>
#include <libsn.h>  /* PC file I/O uses libsn.h : */
#include <libmath.h>

#include <libmcrd.h>    /* メモリーカード用 k.shimizu Aug.06th 1999 */

#include "lt_sys.h"     /* PlayStation basis program System header           */
#include "lt_type.h"    /* Psy-Q Standard Types                                                  */
#include "lt_cls.h"
#include "lt_cd.h"

/* end of file */f8, 0xfdc5, 0x0011,},
{ 0x0fad, 0x018e, 0x0f92, 0xfffe, 0xfe1c,

0x249200#

* 飛び箱の記録           */

    short  time0;           /* システムタイマー0                */
    short  time1;           /* システムタイマー1                */
    CLASS_W  *pcls;     /* カレントワーク                  */
    CLASS1_W *pbox;     /* 飛び箱カレントワーク       */
    CLASS1_W *pbod;     /* ロイター版カレントワーク     */
    MB_SCRL  *scrl;     /* 競技ワーク(クリアあり) */

    /* エフェクト関係          */
    u_char ef_flg[10];/* エフェクトのON/OFF       */
    u_char GL_flg;      /* ガイドラインのON/OFF  */
    u_char try_cnt;     /* チャレンジ回数             */
    u_char set_disp_flg;
    u_char set_gage_flg;

    /* 視点関係             */
    u_char vstep;           /* 視点情報                 */
    u_char vno0,vno1;   /* 視点情報                 */
    u_char vmove;           /* 視点情報                 */
    short  vtime;           /* 視点情報                 */
    short  vtime2;      /* 視点情報                 */

    /* 選手の状況            */
    u_char now_kind;    /* 現在の居場所           */
    u_char now_ot;      /* 現在のOT配置          */

    /* 飛び箱のパラメータ */
    short  box_tall;    /* 飛び箱の高さ           */
    short  box_z0;      /* 飛び箱 前端           */
    short  box_z1;      /* 飛び箱 後端           */
    u_char box_now;     /* 飛び箱現在の段数 */
    u_char box_high;    /* 飛び箱の段数           */
    u_char box_smin;    /* 選択最小値                */
    u_char box_smax;    /* 選択最大値                */
    u_char box_best;    /* 飛び箱の記録           */

    u_char box_id;      /* 0:普通 1:コナミ1・・・   */

    u_char tention;     /* アナウンサーのテンション     */
    u_char now_ana;     /* 表示アナウンサー             */

    u_char mode;            /* 0:プラックティス 1:ノーマル   2:コナミモード  3:メモリカード */
    u_char data;            /* 0:飛び箱   1:コナミ1   2:コナミ2    */
    u_char level;           /* 0:ヨワイ  1:フツウ  2:ツヨイ  3:デビル  */
    u_char cpu_skip;    /* ON:CPUキャンセルOK  OFF:CPUを見る  */
    u_char skip_mode;   /* 0:NOスキップ 1:人スキップ 2:段スキップ */
    u_char end_mode;    /* エンディング状

0x24BA00#

54 のけぞり 審議用    254 */
        LAND_SIN2     ,     /* 55 着地 審議             255 */
        TOUCH3        ,     /* 56 手を付く              256 */
        PUSH3         ,     /* 57 超す                        257 */
        NOT_M4        ,     /* 58 */
        NOT_M5        ,     /* 59 */

        GON_EX1 = 80  ,     /* 60 ゴン特別出演1   260 */
        GON_EX2       ,     /* 61 ゴン特別出演2   261 */
        GON_EX3       ,     /* 62 ゴン特別出演3   262 */
        GON_EX4       ,     /* 63 ゴン特別出演4   263 */

        ANIME_MAX     ,     /*    最大値                           */
};                                      /* MB_ANIME_IDX                     */


/*----------------------------*/
/*      ビユーインデックス                         */
/*----------------------------*/
enum {
    VIEW_REP_SIN = 0,   /* 審議           */
    VIEW_REP_NG1    ,   /* 失敗1      */
    VIEW_REP_NG2    ,   /* 失敗2      */
    VIEW_REP_OK1    ,   /* 成功1      */
    VIEW_REP_OK2    ,   /* 成功2      */
};

enum {
    VWSW_WLD   = 0 ,    /* ワールド座標系                     */
    VWSW_CHR       ,    /* ローカル 座標系(選手)         */
    VWSW_CHR_WLD   ,    /* ローカル・ワールド座標系混載      */
    VWSW_WLD_CHR   ,    /* ワールド・ローカル座標系混載      */
};

enum {
    INFO_SET_DUMMY_RESULT,  /* 偽造結果格納   */
    INFO_SET_RESULT,    /* 結果格納         */
    INFO_SET_PASS  ,    /* パス段予約       */
    INFO_GET_PASSFG,    /* パスフラグ取得    */
    INFO_GET_NXSTEP,    /* 次段取得         */
    INFO_GET_ALIVE ,    /* 終了取得         */
    INFO_GET_KIROKU,    /* 記録取得         */
    INFO_GET_SAFE  ,    /* 結果取得         */
    INFO_GET_SAFE1 ,    /* 結果取得         */
    INFO_GET_SAFE2 ,    /* 結果取得         */
    INFO_GET_NALIVE,    /* 生存者数         */
};


enum {
        MB_DEMO_OPENING = 0,
        MB_DEMO_STEPDISP   ,
        MB_DEMO_BUST1      ,
        MB_DEMO_BUST2      ,
        MB_DEMO_PLAYCHECK  ,
        MB_DEMO_MISS_WA

0x252400#

ットガンタッチ*/
#define SD_SG_HSTEPL1       1295    /*助走遅い左足:体重重い   */
#define SD_SG_HSTEPR1       1296    /*助走遅い右足:体重重い   */
#define SD_SG_HSTEPL2       1297    /*助走中盤左足:体重重い   */
#define SD_SG_HSTEPR2       1298    /*助走中盤右足:体重重い   */
#define SD_SG_HSTEPL3       1299    /*助走速い左足:体重重い   */
#define SD_SG_HSTEPR3       1300    /*助走速い右足:体重重い   */
#define SD_SG_KYU               1301    /*足音きゅっ                         */
#define SD_SG_LSTEPL1       1302    /*助走遅い左足:体重軽い   */
#define SD_SG_LSTEPR1       1303    /*助走遅い右足:体重軽い   */
#define SD_SG_LSTEPL2       1304    /*助走中盤左足:体重軽い   */
#define SD_SG_LSTEPR2       1305    /*助走中盤右足:体重軽い   */
#define SD_SG_LSTEPL3       1306    /*助走速い左足:体重軽い   */
#define SD_SG_LSTEPR3       1307    /*助走速い右足:体重軽い   */
#define SD_SG_JUMP          1308    /*ジャンプ                              */
#define SD_SG_PRESS         1309    /*ボタン押し成功                   */
#define SD_SG_MISS          1310    /*ボタン押し失敗                   */
#define SD_SG_TOUCH1        1311    /*ボールタッチ1                   */
#define SD_SG_TOUCH2        1312    /*ボールタッチ2                   */
#define SD_SG_BOUN

0x260C00#

    B_TOTYU,                                    /*途中結果表示用BGM (LP)*/
    B_SOUGOU,                                   /*総合ランキング表 (LP)*/
};

/* コンパイルを通すための追加 */
#define B_MR_RPL3A  I_LARGE1                    /*失敗時のリプレーの曲1 (LP)*/
#define B_MR_RPL1B  I_LARGE1                    /*成功時のリプレーの曲2 (LP)*/
#define B_H_REP1        I_LARGE1                        /*ハスラーの成功時リプレーの曲 (LP)*/
#define B_H_REP2        I_LARGE1                        /*ハスラーの失敗時リプレーの曲*/

#endif  /*#ifndef _SD_OUEN_H*/

0x279A00#

t  try_len[PLAYER_NUM];        /*キャラの申告距離      */
    short  suc_len[PLAYER_NUM];     /*キャラの成功距離      */
    short  point[PLAYER_NUM];           /*キャラのポイント      */
    Uchar  try_suc[PLAYER_NUM];     /*成否のフラグ          */
    short  slen[2];                             /*申告距離を一時保存    */
    short  speed;                                   /*キャラの移動スピード  */
    short  max_speed;                           /*現時点の最高速度      */
    short  best_record;                     /*最高記録*/
    short  pad;
    short  my_best[PLAYER_NUM];     /*自己記録*/
    short  my_point[PLAYER_NUM];    /*得点*/
    Uchar  best_clear[PLAYER_NUM];/*最高記録を更新*/

    short  trylen2[PLAYER_NUM][3];  /*キャラの申告距離(2d用)*/
    Uchar  trysuc2[PLAYER_NUM][3];  /*成否のフラグ(2d用)  */

    Uchar  practice;                            /*CPU skipモード(test)*/
    Uchar  skip;                                    /*CPU 簡易スキップのフラグ*/
    Uchar  save;                                    /*リプレイセーブのフラグ*/
    Uchar  btime;                                   /*体の動きを見る*/
    Uchar  hit_pos;                             /*ボールの当たった場所 0:手以外 1:手*/
    Uchar  pad2[3];

    Ushort minlen;                              /*ボールとの距離の最小値*/
    Ushort switchtime;                      /*スイッチのタイムの一時確保*/
    Ushort switmot;                             /*スイッチモーションの一時確保*/
    Ushort smoke_time;                      /*スモーク用のタイマ*/

}SGT_ST;



/*リプレイのための型(保存用)*/
typedef struct{
    short  cxpos[REPLAY_TIME];      /*キャラのx座標     */
    short  czpos[REPLAY_TIME];      /*キャラのz座標     */
    Uchar  anim[REPLAY_TIME];           /*キャラのアニメ番号  最上位ビットは反転が入る*/
    Uchar  pose[REPLAY_TIME];           /*キャラのポーズ番号*/
    short  bxpos[REPLAY_TIME];      /*ボール

0x286400#

O08,                               /*「8枚」*/
    FS_O09,                             /*「9枚」*/
    FS_O10,                             /*「10枚」*/
    FS_O11,                             /*「11枚」*/
    FS_O12,                             /*「12枚」*/
    FS_O13,                             /*「13枚」*/
    FS_O14,                             /*「14枚」*/
    FS_O15,                             /*「15枚」*/
    FS_O16,                             /*「16枚」*/
    FS_O17,                             /*「17枚」追加*/
    FS_O18,                             /*「18枚」追加*/
    FS_O19,                             /*「19枚」追加*/
    FS_O20,                             /*「20枚」追加*/
    FS_O21,                             /*「21枚」追加*/
    FS_O22,                             /*「22枚」追加*/
    FS_O23,                             /*「23枚」追加*/
    FS_O24,                             /*「24枚」追加*/
    FS_O25,                             /*「25枚」追加*/
};

/*============================================================
==枚目(平坦)
============================================================*/
enum {
    FS_R01 = (FS_O25+1),    /*「1枚目」*/
    FS_R02,                             /*「2枚目」*/
    FS_R03,                             /*「3枚目」*/
    FS_R04,                             /*「4枚目」*/
    FS_R05,                             /*「5枚目」*/
    FS_R06,                             /*「6枚目」*/
    FS_R07,                             /*「7枚目」*/
    FS_R08,                             /*「8枚目」*/
    FS_R09,                             /*

0x28FE00#

U枚の的に向かってマウンドからボールを投げ、的を射抜いて下さい」*/

/*キックターゲット*/
    SA_A04,                             /*「用意された九枚の的を、サッカーのPK方式で打ち抜いて下さい」*/
    SA_A05,                             /*「持ち球が、残りの的の数を下まわるとその時点で競技終了になります」*/
    SA_A06,                             /*「的を一枚抜くごとに20pt加算、二枚抜きならさらに10pt加算されます」*/
    SA_A07,                             /*「パーフェクトを達成すると200ポイントです。それまでのボーナスがそこに加算されます」*/
};
/*==================================================

0x29C200#

uこれで競技終了です。最後の挑戦も無残に跳ね返されてしまいました」*/
    FM_K64,                             /*「飛び越すことができませんでした。ここで限界を迎えてしまったのでしょうか!」*/
    FM_K65,                             /*「またもや失敗です!モンスターボックスに圧倒されてしまったのでしょうか!」*/
    FM_K66,                             /*「チャンスを使い果たしてしまいました!己のすべてをぶつけた挑戦でしたが敗れてしまいました!」*/

/*・1回目失敗(記録挑戦失敗)*/
    FM_K67,                             /*「まず1回目の挑戦は失敗です」*/
    FM_K68,                             /*「ここは失敗してしまいました」*/
    FM_K69,                             /*「残念ながら1回目は失敗です」*/
    FM_K70,                             /*「惜しくもこの挑戦は失敗!」*/
    FM_K71,                             /*「残念ながら1回目は失敗です」*/
    FM_K72,                             /*「惜しくもこの挑戦は失敗!」*/
/*(しも)*/
    FM_K73,                             /*「次こそは記録の更新に期待しましょう」*/
    FM_K74,                             /*「果敢に挑んだがもろくも跳ね返されました」*/
    FM_K75,                             /*「しかしまだまだわかりません。次こそ更新して欲しい!」*/
    FM_K76,                             /*「未知の領域への最初の一歩です。がんばってください!」*/
    FM_K77,                             /*「記録の更新は次にお預け!次はきめてください!」*/
    FM_K78,                             /*「最初のチャンスは更新できず!次のチャンスを生かして欲しい!」*/

/*・1回目失敗(通常/激突)*/
    FM_K79,                             /*「1回目は激突してしまいました!」*/
    FM_K80,                             /*「激突しました」*/
    FM_K81,                             /*「残念ながら、飛び箱に激突です」*/
    FM_K82,                             /*「ぶつかってしまいました!」*/
/*(しも)*/
    FM_K89,                             /*「危機回避能力を作動させることができるのか!」*/
    FM_K90,                             /*「恐怖心が邪魔をしてうまく飛び込めなかっ

0x29F400#

/*「すばらしい記録の誕生に期待しましょう」*/
    AS_B06B,                            /*「集中力も重要なポイントの一つです」*/
    AS_B11B,                            /*「それでは、競技の方を見てみましょう」*/
};
/*============================================================
==競技開始
============================================================*/
enum {
/*パス*/
    /*かみ*/
    AM_F00A = (AS_B11B+1),/*「パスです。」*/
    AM_F01A,                            /*「この段はパスしていきます。」*/
    /*しも*/
    AM_F00B,                            /*「この程度は楽勝ということなのでしょう」*/
    AM_F01B,                            /*「当然でしょう」*/

/*開始直前*/
    AM_E00,                             /*「深い呼吸を何度も繰り返していきます、自分との戦いです。」*/
    AM_E01,                             /*「現在のスポーツにイメージトレーニングは欠かせない。」*/
    AM_E02,                             /*「きりりとした表情、より引き締まって見えます。」*/
    AM_E03,                             /*「先ほどと構えはまったく変わりません、平常心で望もうというのか?」*/
    AM_E04,                             /*「この瞳の向こう側に何を見ているのか?」*/
    AM_E05,                             /*「人間と飛び箱が相対峙しております。」*/
    AM_E05B,                            /*「この表情

0x2A2A00#

M_E22,                             /*「(22段、2m96cm)、」*/
    HM_E23,                             /*「(23段、3m06cm)、」*/
    HM_E24,                             /*「(24段、3m16cm)、」*/
    HM_E25,                             /*「(25段、3m26cm)、」*/
    HM_E26,                             /*「(26段、3m36cm)、」*/
    HM_E27,                             /*「(27段、3m46cm)、」*/
    HM_E28,                             /*「(28段、3m56cm)、」*/
    HM_E29,                             /*「(29段、3m66cm)、」*/
    HM_E30,                             /*「(30段、3m76cm)、」*/

/*高さ対比*/
    HM_H10A,                            /*「自動車ほどの高さがあります」*/
    HM_H10B,                            /*「冷蔵庫ほどの高さがあります」*/
    HM_H10C,                            /*「電話ボックスほどの高さがあります」*/
    HM_H10D,                            /*「フォークリフトほどの高さがあります」*/
    HM_H10G,                            /*「モアイほどの高さがあります」*/
    HM_H10H,                            /*「バスほどの高さがあります」*/
    HM_H10I,                            /*「二階立てバスほどの高さがあります」*/
    HM_E10J,                            /*「ワイン樽ほどの高さがあります」  追加*/
    HM_E10K,                            /*「灯台ほどの高さがあります」            追加*/

/*コナミモード*/
    HM_H11A,                            /*「自動車です」*/
    HM_H11B,                            /*「冷蔵庫です」*/
    HM_H11C,                            /*「電話ボックスです」*/
    HM_H11D,                            /*「フォークリフトです」*/
    HM_H11G,                            /*「モアイです」*/
    HM_H11H,                            /*「バスです」*/
    HM_H11I,                            /*「二階立てバスです」*/
    HM_E11J,                            /*「ワイン樽です」  追加*/
    HM_E11K,                            /*「灯台です」            追加*/

/*段数*/
    SM_L10,                             /*「10段」*/
    SM_L11,                             /*「11段」*/
    SM_L12,                             /*「12段」*/
    SM_L13,                             /*「13段」*/
    SM_L14,                             /*「14段」*/
    SM_L15,                             /*「15段」*/
    SM_L16,                             /*「16段」*/
    SM_L

0x2B1400#

    PWD1,           /*  パスワード表示(12)   */
    PWD2,           /*  △ボタン     (13)  */

    GREC,           /*  成績内容 (15段セット登録) */
                    /*  (スライド形式は専用タイプ)    */
                    /*    プレート           (14)  */
                    /*    選手名          (15) */
                    /*    順位数字/ポイントP (16)  */
                    /*    ポイント/記録      (17)    */
                    /*    プレイヤーマーク       (18)  */
                    /*    エディット選手名    (19) */
};




/*------------------------------------------------------------------------------*/
/*  プロトタイプ宣言                                                              */
/*------------------------------------------------------------------------------*/
#ifdef REAL_EXIST
    #define EXT             /*  実体モジュール存在      */
#else
    #define EXT extern      /*  外部モジュール参照      */
#endif

EXT void  SSub_wkInit( void );
EXT void  FaceSet( Uchar, Ushort, Uchar );
EXT Uchar FaceSio( Uchar, Uchar );
EXT void  VerAllSet( Uchar, Uchar, Uchar, Uchar );
EXT void  VerAllReset( Uchar, Uchar );
EXT void  OptionSet( Uchar, Uchar, Uchar, Uchar );
EXT void  OptSetSub( Uchar, Uchar, Uchar * );
EXT void  ConSet( Uchar*, Uchar, Ush

0x2BF600#

ナす)」*/
    SH_A07,                             /*「(第*テーブル)、かろうじてクリアです」*/
    SH_A09,                             /*「あとがないプレッシャーの中見事成功しました」*/

/*失敗*/
    SH_A10a,                            /*「残念ながら」*/
    SH_A10b,                            /*「(*回目の)ミスとなってしまいました」*/

    SH_A11a,                            /*「失敗です、残り」*/
    SH_A11b,                            /*「(*球と)なってしまいました」*/

    SH_A12a,                            /*「(*テーブルを)残して、」*/
    SH_A12b,                            /*「(*回目の)ミスを犯してしまいました」*/

    SH_A15,                             /*「(選手名)、どうも調子がでないよう

0x2D4400#

セにもかかわらず!」*/
    FG_K16,                             /*「懸命のダッシュと豪快なダイブを見せたが!」*/
    FG_K17,                             /*「筋肉の悲鳴が聞こえそうなダイブでしたが!」*/
/*(しも)*/
    FG_K18a,                            /*「差し出した手はボールにれませんでした!」*/
    FG_K18b,                            /*「一瞬の物理法則、ボールの落下のほうが早かった」*/
    FG_K19,                             /*「ボールの落下は伸ばした腕より一瞬早かった!」*/
    FG_K20,                             /*「ボールに嫌われたのか、タッチできない!」*/
    FG_K21,                             /*「地球の引力は一瞬早くボールを落とした!」*/
    FG_K22,                             /*「無情にもその手はボールのわずか手前だ!」*/
    FG_K23,                             /*「ボールの感触を確かめられなかった!」*/
/*追加:ボタン押し失敗*/
    FG_K24,                             /*「さっそうと飛び出していきましたが、ボールが落ちてきません」*/
    FG_K25,                             /*「弾丸のように飛び出したのもつかの間!」*/
    FG_K26,                             /*「すばらしい集中力を見せていたのですがここで大失敗!」*/
    FG_K27,                             /*「意気揚々としていたのですがここで出鼻をくじかれた!」*/
/*しも*/
    FG_K28,                             /*「ボタン押しを失敗してしまいました」*/
    FG_K29, 

0x2E2400#

               /*「だめか!やったか!」*/
    AD_H10,                             /*「どうだ!どうだー!」*/
    AD_H11,                             /*「ぐらぐらしています。」*/
    AD_H11B,                            /*「ぐらぐら揺れている!」*/
    AD_H12,                             /*「おっと危ない、おっと危ない。」*/
    AD_H12B,                            /*「おっと危ない、危ない。」*/
    AD_H13,                             /*「どうだ?グラグラ揺れている!」*/
    AD_H13C,                            /*「どうだ?揺れている!」*/
    AD_H13D,                            /*「揺れている!揺れている!」バリエーション*/

/*成功*/
    /*最後の駒を飛ばした*/
    AD_H14,                             /*「やったー!きめたー!」*/
    AD_H15,                             /*「やった!完全制覇だ!」*/
    AD_H15B,                            /*「やった!完全制覇!」*/
    AD_H16,                             /*「いった、いったー! きめました!」*/
    AD_H16B,                            /*「いった、いったー! きめました!」バリエーション*/
    AD_H17,                             /*「やった、やったー! やりました!」*/
    /*それ以外*/
    AS_G93,                             /*「決めたーっ!」*/
    AS_G92B,                            /*「いったーっ!」*/
    AS_G84,                             /*「見事決めたー!」*/
    AS_G85,                             /*「見事決めたー!」バリエーション*/
    AD_H18,                             /*「成功です!成功です!」*/
    

0x312200#

A何番いきますか?」*/
    FS_F03,                             /*「さあ、何番でしょうか?」*/
    FS_F04,                             /*「さあ、何番ですか?」*/
    FS_F05,                             /*「さあ、次は?」*/
    FS_F06a,                            /*「さあ、」*/
    FS_F06b,                            /*「どこを狙いますか、(選手名!)」*/
/*一番最初のとき汎用に混ぜる*/
    FS_F07,                             /*「(さあ)、何番から行きましょう。」*/
/*最後の2枚*/
    FS_F08,                             /*「どちらからいきますか?」*/
    FS_F09,                             /*「どちらから狙いますか?」*/
    FS_F10,                             /*「どちらを先に狙いますか?」*/
/*最後の1枚*/
    FS_F11,                             /*「さあ、ラストコールです!」*/
    FS_F12,                             /*「ラストコールをどうぞ!」*/
    FS_F13,                             /*「最後の宣言をお願いします!」*/
};
/*============================================================
==宣言に対して
============================================================*/
enum {
/*共通*/
    FS_G = (FS_F13+1),      /*「さあ次は?」*/
/*宣言に対して*/
    FS_G00,                             /*「1番です。1番のボードを狙います」*/
    FS_G01a,                            /*「1番」*/
    FS_G01b,                            /*「左上を狙います」*/
    FS_G01c,                            /*「アウトコース狙いです」*/

    FS_G03,                             /*「2番です。2番のボードを狙っていきます」*/
    FS_G04a,                            /*「2番」*/
    FS_G04b,                            /*「真ん中高めです」*/
    FS_G04c,                            /*「やや高めのコースを狙います」*/

    FS_G05,                             /*「3番です。3番を狙っていきます」*/
    FS_G06a,                            /*「3番」*/
    FS_G06b,                            /*「右上を狙います」*/
    FS_G06c,                            /*「インコースを攻めます」*/

    FS_G07,                             /*「4番です。4番のボードを狙います」*/
    FS_G08a,                            /*「4番」*/
    FS_G08b,                            /*「左を狙う

0x31DE00#

L,                         /*「6番9番の」*/
/*枚数*/
    SN_C02A,                            /*「0枚」*/
    SN_C02B,                            /*「1枚」*/
    SN_C02C,                            /*「2枚」*/
    SN_C02D,                            /*「3枚」*/
    SN_C02E,                            /*「4枚」*/
    SN_C02F,                            /*「5枚」*/
    SN_C02G,                            /*「6枚」*/
    SN_C02H,                            /*「7枚」*/
    SN_C02I,                            /*「8枚」*/
    SN_C02J,                            /*「98枚」*/
    SN_C02K,                            /*「10枚」*/
    SN_C02L,                            /*「11枚」*/
    SN_C02M,                            /*「12枚」*/
    SN_C02N,                            /*「13枚」*/
    SN_C02O,                            /*「14枚」*/
    SN_C02P,                            /*「15枚」*/
    SN_

0x344A00#

           SetG2dClear03( short );                         /*成功*/
int         SetG2dMiss03();                                         /*失敗*/
int         SetG2dResult03( short );                        /*結果表示*/
void        InitG2dRepPlate03( short, short );  /*リプレー・プレート表示*/
short       G2dReplayCtrl03();                                  /*リプレープレート・メインタスク*/
void        SetG2dSave03();                                         /*リプレープレート・セーブ点滅ON/OFF*/
void        SetG2dRew03();                                          /*リプレープレート・戻しボタンON/OFF*/
void        SetG2dFew03();                                          /*リプレープレート・送りボタンON/OFF*/
void        DelG2fRepPlate03();                                 /*リプレープレート・表示OFF*/

int         G2dTrans04();                                               /*データ読み込み 及び テクスチャ転送*/
void        SetG2dName0400( CLASS_W*, Uchar );  /*名前1表示*/
void        SetG2dName0401( CLASS_W*, Uchar );  /*名前2表示*/
void        SetG2dPoint04( CLASS_W*, Uchar );       /*ポイント表示*/
void        SetG2dAna04( Uchar, Uchar );                /*アナウンサー名表示*/
void        SetG2dIntro04( CLASS_W*, Uchar );       /*選手紹介表示*/
int         SetG2dPull04();                                         /*開始*/
int         SetG2dRound04( short );                         /*n回戦*/
int         SetG2dJudge04( CLASS_W*, short );       /*勝敗*/
int         SetG2dTitle04();                                        /*タイトル文字表示*/
void        InitG2dRepPlate04( short, short );  /*リプレー・プレート表示*/
short       G2dReplayCtrl04();                                  /*リプレープレート・メインタスク*/
void        SetG2dSave04();                                         /*リプレープレート・セーブ点滅ON/OFF*/
void        SetG2dRew04();                                          /*リプレープレート・戻しボタンON/OFF*/
void        SetG2dFew04();                                          /*リプレープレート・送りボタンON/OFF*/
void        DelG2fRepPlate04();     

0x359400#

ックリード*/
void        GameWaitTrans( int );
int         GameWaitStart( int );
int         SD_VoiceRead( short );
void        SD_VoicePlay();
int         SD_start_up();
int         VabTrans( int );
int         SD_call( int );
int         SD_vsync();
int         SetVoiceTbl( int );
void        disp3d_ana( CLASS_W*, u_char, short ,short, short , short );
void        Ana_Pose_Set(CLASS_W*, Uchar, Uchar );
void        class_gs3dAna( CLASS_W* );
void        AnaTimTrans( u_char* );
void        AnaDispSwitch( CLASS_W*, u_char );
void        AnaTexAnm( CLASS_W* );

/*****************************************************************************
//松岡 追加
*****************************************************************************/
u_char  CharTrans( short, u_char );                                     /*  キャラデータの読み込み    */
void        *memory_set( void *, char, size_t );                    /*  メモリーへのデータセット       */
void        disp_wall( CLASS1_W * );                                            /*  壁表示                     */
void        disp_ground( CLASS1_W * );                                      /*  地面表示                    */
void        disp5d( CLASS1_W *, u_char, u_char );                   /*  GROUND_MODEL 表示 */
void        disp5d2(CLASS1_W

0x390DA0#

;  .endef
   .def    _ANM_R; .scl    10; .type   0x8;    .size   4;  .endef
   .def    pd; .val    0;  .scl    8;  .type   0x1

0x3BF8E0#

0; .scl    8;  .type   0x3;    .endef
   .def    rotate; .val    32; .scl    8;  .type   0x5;    .endef
   .def    .eos;   .val    36; .scl    102;    .tag    .64fake;    .size   36; .endef
   .def    GsSPRITE;   .scl    13; .tag    .64fake;    .size   36; .type   0x8;    .endef
   .def    .65fake;    .scl    10; .type   0x8;    .size   8;  .endef
   .def    u;  .val    0;  .scl    8;  

0x3F5E00#

                        
    NT_E01O,                             
    NT_E01P,                             

 
    AN_K00A,                             
    AN_K00B,                             
    AN_K00C,                             
    AN_K00D,                             
    AN_K00E,                             
    AN_K00G,                             
    AN_K00H,                             
    AN_K00I,                             
    AN_K00J,                             
    AN_K00K,                             
    AN_K00K2,                            
    AN_K00O,                             
    AN_K00O2,                            
    AN_K00P,                             

 
    NT_F01A,                             
    NT_F01B,                             
    NT_F01B2,                            
    NT_F01C,                             
    NT_F01D,                             
    NT_F01E,                             
    NT_F01G,                             
    NT_F01H,                             
    NT_F01I,                             
    NT_F01J,                        

0x3FAAE0#

                    
    FH_E07,                              
 
    FH_E08,                              
    FH_E09,                              
    FH_E10,                              
    FH_E11,                              

 
    FH_E12,                              
    FH_E13,                              
    FH_E14,                              
    FH_E15,                              
 
    FH_E16,                              
    FH_E17,                              
    FH_E18,                              
    FH_E19,                              
 
    FH_E20,                              

0x468660#

sU_01240054(GsARGUNIT *);
   extern u_long *GsU_01240055(GsARGUNIT *);
   extern u_long *GsU_00080008(GsARGUNIT *);
   extern u_long *GsU_00080009(GsARGUNIT *);
   extern u_long *GsU_0008000c(GsARGUNIT *);
   extern u_long *GsU_0008000d(GsARGUNIT *);
   extern u_long *GsU_00080010(GsARGUNIT *);
   extern u_long *GsU_00080011(GsARGUNIT *);
   extern u_long *GsU_00080014(GsARGUNIT *);
   extern u_long *GsU_00080015(GsARGUNI

0x732400#

    Uchar       fileData[8196];                                                             /*8k まで取っておく    */
    int         i;
    RECT        rc;

    for (i = 0; i < 1; i++)
    {
        FileRead(OPDfile[i].fileName, fileData, OPDfile[i].size);
        rc.x = 768 + 32*(i%2);                                                          /*矩形値代入     */
        rc.y = 0 + (i/2) * 128;                                                         /*矩形値代入     */
        rc.w = 32;                                                                                  /*矩形値代入     */
        rc.h = 128;                                                                                 /*矩形値代入     */
        LoadImage(&rc, (Ulong *)fileData);                                  /*VRAM転送    */
        DrawSync(0);                                                                                /*描画待ち          */
    }

    FileRead(OPDfile[1].fileName, fileData, OPDfile[1].size);
    rc.x = 0;                                                                                           /*矩形値代入     */
    rc.y = 500;                                                                                     /*矩形値代入     */
    rc.w = 16;                                                                                      /*矩形値代入     */
    rc.h = 3;                                                                                           /*矩形値代入     */
    LoadImage(&rc, (Ulong *)fileData);                                      /*VRAM転送    */
    DrawSync(0);                                                                                    /*描画待ち          */
}


/********************************************************************************************/
/********************

0x73B400#

        Ranking();
        break;
    }
}

#if 0   /* コメント化 Aug.04th 1999 k.shimizu */
/*-----------------------------------------------------------------------------
;
;       選択画面
;
-----------------------------------------------------------------------------*/
void Select(void)
{
//  mode();
//  if (sp->stepw_end){
//      gstep_set(0);
//      step_up();
//  }
}
#endif

/*-----------------------------------------------------------------------------
;
;       エンディング
;
-----------------------------------------------------------------------------*/
void Ending(void)
{
/*
    sys_w;
    sp_w;
    sys0_w;
*/
}

/*-----------------------------------------------------------------------------
;
;       子プロセスへ
;
-----------------------------------------------------------------------------*/
static int ( *child_func )( void );
static int *child_func_tbl[] = {
                            (int *)child00 ,
                            (int *)child01 ,
                            (int *)child02 ,
                            (int *)child03 ,
                            (int *)child04 ,
                            (int *)child05 ,

0x750200#

ResetOpdPrim()の削除。不要な変数の削除
                                        OpdPtn()の修正
    1999/04/20  松岡  インクルードファイルを変更
    1999/01/22  松尾  画面分割対応OTパッケージの変更に伴いOTの指定変更
    1999/01/11  松尾  モーションのポーズ判定を追加
                                        登録プリミティブの型変更(POLY_FT4 -> SPRT)
    1999/01/06  松尾  内山氏が"いるか"で作った u_opdanm.c から流用
*************************************************************************/

/****************************************************************************/
/* パターンとアニメーションの管理                                          */
/****************************************************************************/
#include    "ps000.h"
#include    "gbl_data.h"                /* Global Data definition Header              */

#include    "opdanm.h"

/********************************************************************************************/
/**グローバル変数****************************************************************************/
static      OPD_HEAD        *adr[OPD_MAX];                  /*OPDアドレス情報                 */
static      short               opcnt;                                  /*OPD総登録数                       */

/********************************************************************************************/
/**プロトタイプ******************************************************************************/
void    InitOpd();                                              /*OPDアドレス情報の初期化*/
short   AddOpd(OPD_HEAD *opd);                      /*OPDの追加                */
void    DelOpd(short no);                                   /*OPDの削除                */
void    InitOpdAnm(OPD_ANM *anm, short anm_no, short frm_no, short pri);
                                                                                /*アニメの初期化           *

0x75D400#

ng)MODEL_TABLE  },     /*  98  ハスラー    */
    { 0x00082000/0x800+CD_DATA03, (0x00008f1c+0x7ff)/0x800, (Ulong)TIM_TABLE         },     /*  99              */
    { 0x0008b000/0x800+CD_DATA03, (0x00004f4d+0x7ff)/0x800, (Ulong)MODEL_TABLE   },     /*  9a  ダルマ    */
    { 0x00090000/0x800+CD_DATA03, (0x000068e8+0x7ff)/0x800, (Ulong)TIM_TABLE         },     /*  9b              */
    { 0x00097000/0x800+CD_DATA03, (0x00006b4d+0x7ff)/0x800, (Ulong)MODEL_TABLE   },     /*  9c              */
    { 0x0009e000/0x800+CD_DATA03, (0x00008230+0x7ff)/0x800, (Ulong)TIM_TABLE         },     /*  9d              */
    { 0x000a6800/0x800+CD_DATA03, (0x000069b5+0x7ff)/0x800, (Ulong)MODEL_TABLE   },     /*  9e              */
    { 0x000ad800/0x800+CD_DATA03, (0x000089dc+0x7ff)/0x800, (Ulong)TIM_TABLE         },     /*  9f              */
    { 0x000b6800/0x800+CD_DATA03, (0x00006939+0x7ff)/0x800, (Ulong)MODEL_TABLE   },     /*  a0              */
    { 0x000bd800/0x800+CD_DATA03, (0x0000a220+0x7ff)/0x800, (Ulong)TIM_TABLE         },     /*  a1              */
    { 0x000c8000/0x800+CD_DATA03, (0x00003ce9+0x7ff)/0x800, (Ulong)MODEL_TABLE   },     /*  a2  ブレイン   */
    { 0x000cc000/0x800+CD_DATA03, (0x00007f90+0x7ff)

0x76A600#

Callback(0);
                    CdControlF(CdlPause, 0);
printf("retry_error\n");
                    return -1;
                }
            }else {
                if ( result == CdlDiskError ){
printf("retry_seek_error\n");
                    return -1;
                }
            }
            break;
    }
    return pread_remain_sector;
}



void P_cbcdready(u_char intr, u_char *result)
{
    int     err = 0;
    int     pos;

    if (intr == CdlDataReady) {
        CdGetSector(pl_buf, 12/4);  // get header & sub-header
        pos = CdPosToInt((CdlLOC *)pl_buf);
        if (pl_oldpos == 0) {
            if (pl_pos != pos) {

0x778A00#

======================================================================
;
;       メイン処理
;
=============================================================================*/
int main(void)
{
//  sys_w;
    sp_w;
    long v_int(void);

#ifdef DEBUG
    vcnt0 = vcnt1 = 0;
    vcnt0_max = vcnt1_max = 0;
    vcnt0_tim = vcnt1_tim = 30;
    packet_size = 0;
#endif

    /*----------------------*/
    /*      init work                   */
    /*----------------------*/
    SD_lib_ready = 0;   /*1999.07.06    nakayama    サウンドライブラリがセットされるまで待つ*/
printf("1999.09.08 TBS評価バージョン");

    SetDispMask(0);
    SetVideoMode(MODE_NTSC);
    ResetCallback();
    CdInit();
    ResetGraph(0);
    SetGraphDebug(0);

    /* 割込み <inter.c> */
    sp->inter_n = 2;
    sp->done_flag = sp->inter_c = 0;
    sp->inter_mode = 0;

/*-----------------------------------------*/
/* 進行関連 (追加) k.shimizu Aug.04th 1999 */
/*-----------------------------------------*/
//  MCardInit();
    MemCardInit(0); /* メモリーカードシステム初期化      */
    MemCardStart(); /* メモリーカードシステム稼動開始 */

    joy_init();     /*デュアルショックの初期化はメモリーカードの初期化の後にやる*/

    /*----------------------*/
    /*      init interrupt      */
    /*----------------------*/

    EV=OpenEvent(RCntCNT3,EvSpINT,EvMdINTR,v_int);
    SetRCnt(RCntCNT3,1,RCntMdINTR);
    EnableEvent(EV);
    StartRCnt(RCntCNT3);

    cold_reset_init();
    ExitCriticalSection();

/*1999.07.05    nakayama    sound program read*/
    cd_read_step=CD_READ_INIT;
    OverLay( OVERLAY_SOUND );
    SsInit();

    SD_lib_ready = 1;   /*サウンドライ

0x7C0400#

n ending_spd[];
//extern memcard_spd[];
#if TEST
extern Ulong test_tpage_spd[];
#endif

/*----------------------型宣言-----------------------------------------------*/
void    set2d(Uchar,Ushort,Ulong,short,short,Uchar,Uchar,Uchar,short);
void    set2d2(Uchar,Ushort,Ulong,short,short,Uchar,Uchar,short,short,short,
                short,Uchar,short);
/*1999.01.19    中山*/
void SetSpd( SPD_W** spd_tbl );
/*1999.06.09    nakayama*/
void SetSpd2( SPD_W** spd_tbl );

SPD_W * GetSpd(Ushort spd);
Uchar set_x_classw0 (Uchar cls_no,long x);
Uchar set_y_classw0(Uchar cls_no,long y);
Uchar set_u_spd(Uchar cls_no,Uchar spd_no,Uchar spd_u);
Uchar set_v_spd(Uchar cls_no,Uchar spd_no,Uchar spd_v);

/*---------------------GLOBAL変数--------------------------------------------*/

/*#############################################################################
;
;       スプライトの表示
;
#############################################################################*/
void class_sprite (CLASS0_W *spr)
{
    sp_w;
    sys_w;
    regis

0x7C8200#

初期化処理のバグ修正
    1999/02/15  松岡  中山さん作成のカメラ処理を追加
    1999/02/05  松岡  いろいろ変更
    1999/01/20  杉山  仲間誘導モードのカメラワーク追加
    1999/01/19  杉山  いろいろ修正
    1999/01/18  杉山  初期バージョン
 *===========================================================================*/

/*------------------------------------------------------------------*/
/*                          include                                                                                         */
/*------------------------------------------------------------------*/
#include    "ps000.h"
#include    "gbl_data.h"                /* Global Data definition Header      */
#include    "camera.h"
#include    "disp3d.h"

/*------------------------------------------------------------------*/
/*                          define                                                                                          */
/*------------------------------------------------------------------*/

/*------------------------------------------------------------------*/
/*                          work                                                                                                */
/*------------------------------------------------------------------*/
static VIEW_INFO view_info;

extern ED_CAMERA* table_pt[];                       /* カメラデータへのポインタ*/

/*------------------------------------------------------------------*/
/*                          prototype                                                                                       */
/*------------------------------------------------------------------*/
void View_Init( void );
void View_Main( void );

int     SetCameraMode( Uchar kind );
int     GetCameraMode( void );
int     GetCameraFlag( void );
void    SetCameraAnime ( CLASS_W *cls,Uchar no );
void    StopCameraAnime( void );
int     CheckCameraAnime( void );

0x7DCA00#

pz,short rot_y )
{
    Ulong **addr;
    OBJ3D_W *pObj3D;
    register int i;

    pObj3D = &cls->obj3D_w[0];

    /* Model Set */
    side = side & 0x01;
    addr = (! side) ? (u_long **)HOMEMODEL_TABLE : (u_long **)AWAYMODEL_TABLE;
    for ( i=0; i<OBJ3DMAX; i++ ){
        pObj3D[i].be = 0;   /*念のため*/
    }
    for ( i=0; i<OBJ3DMAX; i++ ){
        if ( !addr[i] ) break;  /*終端に来たら終了*/

        if( ! obj_set_flg[ side ] ){
            set_obj3D       ( &pObj3D[i], addr[i], 0 ,POLY_NORMAL );    /* 初めての登録                   */
        } else {
            change_obj3D( &pObj3D[i], addr[i], 0 ,POLY_NORMAL );    /* 2回目以降の上書き用   */
        }

        if ( i > PARTS_LHAND )  /*見せたくないものは見せない*/
            pObj3D[i].be = 0;
    }

    obj_set_flg[ side ] = 1;                                                                    /* 登録フラグを立てる        */

    /* Param Set */
    Pose_Set ( cls, 0, 0 );
//  Pose_Set ( cls, cls->anime_no, cls->pose );
    cls->xposi = px;
    cls->yposi = py;
    cls->zposi = pz;
    setVector( &cls->rot , 0, rot_y, 0 );

        /*身長を元にスケールを設定する*/
    setVector( &cls->scale, ONE+ 16*(PD_HEIGHT(entrybox[cls->entry_no])-PD_HEIGHT(CR_KNE)),
                    ONE+ 16*(PD_HEIGHT(entrybox[cls->entry_no])-PD_HEIGHT(CR_KNE)),
                    ONE+ 16*(PD_HEIGHT(entrybox[cls->entry_no])-PD_HEIGHT(CR_KNE)) );

    cls->side = side;
    cls->kind = 1;
}

/*------------------------------------*/
/*      審判登録用                                           */
/*------------------------------------*/
/*  審判はMODEL_TABLE領域に読まれる       */
/*      index    : ファイル内番号                          */
/*      その他 : disp3dと同じ                     */
/*------------------------------------*/
void shinpan ( CLASS_W *c

0x7F2200#

    switch(cls->key_w & (P_LLEFT+P_LRIGHT)) {
    case P_LLEFT:       cx = -128;  break;
    case P_LRIGHT:  cx =    127;    break;
    default:                                        break;
    }
    switch(cls->key_w & (P_LUP  +P_LDOWN )) {
    case P_LUP:         cy = -128;  break;
    case P_LDOWN:       cy =    127;    break;
    default:                                        break;
    }

    if(pad->anacon_fg) {
        cx = (long)pad->anacon_l_x;
        cy = (long)pad->anacon_l_y;
    }

    ct = cx * 2 / 5;
    cls->rot.vy += (cy > 0) ? -ct : ct;
    speed = (cy >> 1);
    cls->dx = rsin(cls->rot.vy) * speed >> 12;
    cls->dz = rcos(cls->rot.vy) * speed >> 12;

    cls->xposi += cls->dx;
    cls->zposi += cls->dz;
/*
    FntPrint("%d %d %d \n",cls->xposi,cls->yposi,cls->zposi);
    FntPrint("%d %d %d \n",cls->rot.vx,cls->rot.vy,cls->rot.vz);
    FntPrint("%d %d    \n",rot,drot);
    FntPrint("%d %d %d \n",pad->anacon_fg,pad->anacon_l_x,pad->anacon_l_y);
    FntPrint("%d %d    \n",cx,cy);
*/

}

0x825600#

0x40,0x18,0x40,0x50,0xffb8,0x0023,0x7a},
    {DAT,0x40,0x18,0x00,0x50,0x000c,0x0023,0x7a},
    {END,0x60,0x20,0x00,0x00,0x004c,0x0015,0x7a},
    };



/* ######################################################################### */

SPD_W   dummy2_spd[]={{END}};

/* ######################################################################### */

Ulong   game_spd[] ={
/*---------------fade spd ----------------------*/
    (Ulong)fade_spd,        /* 0x00 */
/*---------------game spd ----------------------*/
    (Ulong)plate0

0x833200#

sck_w[port].dcnt[Num]++;
            ret = 1;
        }   else {
            ret = 0;
        }
    }

    if( sck_w[port].used[0] && sck_w[port].used[1] && Num ) {
        ret = 0;
        sck_w[port].timer[0] = sck_w[port].timer[1] = 0;
        sck_w[port].used[0] = sck_w[port].used[1] = 0;
        sck_w[port].dcnt[0] = sck_w[port].dcnt[1] = 0;
        ActuClr( port, Num );
    }
    return( ret );
}

/*#############################################################################
        毎フレーム行われる振動の処理
#############################################################################*/
void ShockON()
{
    volatile short  result;
    int i;
    sys0_w;

    for ( i=0; i<2; i++ ){
        if ( !sys0.buru_buru[i] )   /*振動が許可されていないときはバイバイ*/
            continue;

        buru_set( i, Padbuf[i] );       /*98.10.4   中山*/
        if( sck_w[i].ShockInfo.PtnNo == (-1) ) continue;    /* パターン指定無しは即リターン */

        if( sck_w[i].ShockInfo.Now == 0 ){  /* 初回のみ設定 */
            /* アクチュエータ 0 */
            sck_w[i].ShockInfo.Actu0 = Actu_ptn0[ sck_w[i].ShockInfo.PtnNo ];
            if( sck_w[i].ShockInfo.Actu0 != NULL ) sck_w[i].ShockInfo.Now = 1;
            /* アクチュエータ 1 */
            sck_w[i].ShockInfo.Actu1 = Actu_ptn1[ sck_w[i].ShockInfo.PtnNo ];
            if( sck_w[i].ShockInfo.Actu1 != NULL ) sck_w[i].ShockInfo.Now = 1;
            /* 両方 NULL の場合は特に設定の必要なし */
        }

        result  = Vibration( i, 0 );    /* 0 */
        result |= Vibration( i, 1 );    /* 1 */

        if( result == 0 ){  /* アクチュエータ 0/1 振動終了 */
            sck_w[i].ShockInfo.PtnNo = -1;
            sck_w[i].ShockInfo.Now = 0;
        }
    }
}

/*#########################################

0x848A00#

   /* 10 */
    { "TAKAHASHI_B\0" },/* 11 */
    { "IIDA_B\0" },         /* 12 */
    { "IHARA_B\0" },        /* 13 */
    { "NAKAYANA_B\0" }, /* 14 */
    { "FURUTA_B\0" },       /* 15 */
    { "MATSUZAKA_B\0" },        /* 16 */
};

static char cursol[][4] = {
    { " \0" },
    { ">\0" }
};

static u_char mode_maxno[] = {      /* モードの最大値 */
        5 ,     /* ストラック            */
        5-1 ,       /* キック          5   */
        2-1 ,       /* モンスター            */
        0       ,       /* ショットガン  コナミモードなし*/
        1       ,       /* タッグ         コナミモードなし*/
        0       ,       /* ハスラー             */
        11-1,       /* ダルマ             */
        1       ,       /* ブレイン            */
};

static char anime_name[][16] = {        /* モーション名 */
//  { "COMMON\0" },     /*  0*/
    { "STRACK OUT \0" },
    { "KICK TARGET\0" },
    { "MONSTER BOX\0" },
    { "SHOT GUN   \0" },
    { "TUG OF WAR \0" },
    { "HUSTLER    \0" },
    { "DARUMA     \0" },
    { "BRAIN PANIC\0" },    /* INDEX:8*/
//  { "DEMO       \0" },    /* INDEX:9*/
};


typedef struct {
    u_char step0;
    u_char step1;
    short    point;
    short stage_no;
    short chara_no1;
    short chara_no2;
    short mode_fg;
    short mode_no;
    short motion_no;                    /* 追加*/
} TEST_W;

static TEST_W Test;
/*------------------------------------------------------------------*/
/*                          prototype                                                                                       */
/*------------------------------------------------------------------*/
int Test_Init ( void );
int Test_Main ( void );


#define TEST_INIT       0
#define TEST_MAIN       1
#define TEST_RESULT 2

static int ( *test_func[] )() = {
    Test_Init       ,           /*  データ読み込み 初期化*/
    Test_Main       ,           /*  ゲームメイン処理*/
};

static void step0_set(u_ch

0x859E00#

U_00000011;
        break;
    case GsUG3:                     /* gour triangle */
        *( TypeUnit->ptr ) = ( u_long ) GsU_0000000c;
        break;
    case GsUGT3:                                        /* texture gour triangle */
        *( TypeUnit->ptr ) = ( u_long ) GsU_0000000d;
        break;
    case GsUG4:                                         /* gour quad */
        *( TypeUnit->ptr ) = ( u_long ) GsU_00000014;
        break;
    case GsUGT4:                                        /* texture gour quad */
        *( TypeUnit->ptr ) = ( u_long ) GsU_00000015;
        break;
#if 1
    case 0x00040049:                                /* none light PRIM_TYPE(LMD|TRI|TME); */

0x99BEA0#

y3;
    u_short n0, v0;
    u_short v1, v2;
    u_short v3, dummy4;
}       TMD_P_F4G;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, b1, dummy1;
    u_char  r2, g2, b2, dummy2;
    u_char  r3, g3, b3, dummy3;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
    u_short n3, v3;
}       TMD_P_G4G;

typedef stru