the cutting room mirror

OTHER2.BIN

This is a sub-page of Uchi ni Pochi ga Yattekita in my pocket.

0x90A00#

変更

    1998.08.17                   〃  椛澤  幸弘
                                        未使用の変数を削除
                                        各if文の変数の型を整合

    1998.08.22                   〃  椛澤  幸弘
                                        注釈文追加

    1998.08.24                   〃  椛澤  幸弘
                                        アタリ判定修正

    1998.08.26                   〃  椛澤  幸弘
                                        Ver. 4.3に対応
                                        輝度変更関数の引き数を修正
 *******************************************************************/
#if 0
==================================================================
    【備考】
    ・アニメーションの繰り返し表示方法
        初期の設定は最終フレームを表示した後はそのまま停止します。
        最初から表示するにはframeメンバを0に設定しますが、
        アニメーションの最終フレームであるかを調べなければなりま
        せん。例を参照してください。
        (別に調べなくてもframeメンバを0に設定すると最初のフレーム
        から表示し直しますので問題ありません。ただ途中のフレームから
        最初に戻りますが・・・)

main(){
    unsigned    long    ot[2][256];

    MAGIC   magic;

        :
        :
        :
        :


    /* main loop */
    for(;;){

        :
        :
        :   /*  何らかの処理  */
        :

        if(magic.state==-1){    /*  state=-1とは最終フレームまで表示したことを意味する   */
            magic.frame=0;  /*  フレームの初期化    */
        };

        magic_draw2(ot[index],&magic);  /*  描画  */

    };
};

==================================================================
#endif

#include    <sys\types.h>

#include    <libetc.h>
#include    <libgte.h>
#include    <libgpu.h>
#include    <libgs.h>
#include    <libmath.h>
#ifdef  VER43
#include    <libhmd.h>
#endif

#include    "k_main.h"
#include    "k_file.h"
#include    "k_magic.h"

0x91200#

XY;

/*------------------------------------------------------------------
    諸関数宣言
  ------------------------------------------------------------------*/
void    magic_clear(void);

void    magic_load_tim(int no,MAGIC *);
void    magic_load_clt(MAGIC *);

void    magic_pat_draw2(unsigned long *,MAGIC *,K_MP_Header *,unsigned long);
int     magic_draw2(unsigned long *,MAGIC *);

void    magic_set_tone_obj(MAGIC *,short,short obj,unsigned long);
void    magic_set_tone_pat(MAGIC *,short,unsigned char);
void    magic_set_tone_ani(MAGIC *,short,unsigned char);
void    magic_tone_pat_init(MAGIC *,int);
void    magic_tone_obj(MAGIC *,int,unsigned long,unsigned char);
void    magic_tone_pat(MAGIC *,int,unsigned char);
void    magic_tone_ani(MAGIC *,int,unsigned char);

int     magic_get_pattern(MAGIC *,int,K_PatData **);
int     magic_get_object(MAGIC *,int i,int j,K_ObjData **);

int     magic_cross_pattern(MAGIC *,int,MAGIC *,int);
int     magic_cross_rect(RECT,RECT);

void    magic_chg_ani(MAGIC *,int);

/*------------------------------------------------------------------
    変数宣言
  ------------------------------------------------------------------*/
#if USE_SPRITE
GsSPRITE    KMgPolyFT4[2][256];
#else
POLY_FT4    KMgPolyFT4[2][256];
#endif

int         KMgIndexPoly=0;

unsigned    long    Z;

MATRIX  M;
GsCOORDUNIT Coord;

/*------------------------------------------------------------------
    初期化
    【入力】
    なし
    【出力】
    なし
    【備考】
    なし
  ------------------------------------------------------------------*/
void    magic_

0xA0200#

=================================================*/

//===================================================================
//  Type define                                                      
/*===================================================================
 変数の型の定義
 バージョン及び仕向け地の管理 ------------------------------------*/
#define CD_MAIN         0       /* デバッグシステム 0
                                 CDシステム     1
                                 擬似システム     2(オプティマイズ2) */
/*------------------------------------------------------------------*/
typedef unsigned char   Uchar;
typedef unsigned short  Ushort;
typedef unsigned long   Ulong;
typedef unsigned int    Uint;

typedef signed char     Schar;
typedef signed short    Sshort;
typedef signed long     Slong;
typedef signed int      Sint;

typedef volatile char   Vchar;
typedef volatile short  Vshort;
typedef volatile long   Vlong;
typedef volatile int    Vint;

typedef volatile unsigned char  VUchar;
typedef volatile unsigned short VUshort;
typedef volatile unsigned long  VUlong;
typedef volatile unsigned int   VUint;

typedef volatile signed char    VSchar;
typedef volatile signed short   VSshort;
typedef volatile signed long    VSlong;
typedef volatile signed int     VSint;

/* PS-Xシステムに必要なインクルードファイル */
#include <libetc.h>
#include <libgte.h>
#include <libgpu.h>
#include <libgs.h>
#include <libspu.h>

#include "ac_plyr.h"
#include "bg_w.h"
#include "obj_w.h"
#include "result.h"
#include "acio.h"

// ROM内関数をオリジナル関数に
//(ROM内関数は処理が重いため)

#define labs(l) h_labs(l)

0xA0A00#

strcat(dest, src)  h_strcat(dest, src)
#define strncat(dest, src, n)   h_strncat(dest, src, n)

// ディザ処理 on/off
#define DTD 1   // ディザ処理 on

// 画面解像度
#define X_RES   320     // X方向
#define Y_RES   240     // Y方向

// クリップサイズ
#define CLIP_SIZE1  40
#define CLIP_SIZE2  48
#define CLIP_SIZE   CLIP_SIZE1

//   PS-XはLITTLE ENDIANESS。
#define     UPPER       1
#define     LOWER       0

// 標準ラベル定義

#define     ERR         0
#define     OK          1
#define     FALSE       0
#define     TRUE        1
#define     ON          1
#define     OFF         0
#define     YES         0
#define     NO          1
#define     DUMMY       0
#define     JOYA        1
#define     JOYB        0
#define     NULL_PNT    (void *)0x00000

// パッドボタン定義

#define PADLup     (1<<12)
#define PADLdown   (1<<14)
#define PADLleft   (1<<15)
#define PADLright  (1<<13)
#define PADRup     (1<< 4)
#define PADRdown   (1<< 6)
#define PADRleft   (1<< 7)
#define PADRright  (1<< 5)
#define PADi       (1<< 9)
#define PADj       (1<<10)
#define PADk       (1<< 8)
#define PADl       (1<< 3)
#define PADm       (1<< 1)
#define PADn       (1<< 2)
#define PADo       (1<< 0)
#define PADh       (1<<11)
#define PADL1      PADn
#define PADL2      PADo
#define PADR1      PADl
#define PADR2      PADm
#define PADstart   PADh
#define PADselect  PADk

#define PADLEFT     (PADLleft | PADL1 | PADL2)                  // 左方向
#define PADRIGHT    (PADLright | PADR1 | PADR2)                 // 右方向
#define PADNEXT     (PADRright | PADstart | PADRdown)           // 次へ
#define PADSELECT   (PADLleft | PADLright | PADLup | PADLdown | PADL1 | PADL2 | PAD

0xCDE00#

ータアドレス */
    COL_BACK_ADR,       /* パレットデータアドレス */
    0,                  /* ファイルサイズ */
    704,   0,           /* テクスチャの転送先座標 */
    320, 120,           /* テクスチャのサイズ */
      0, 497,           /* パレットの転送先座標 */
      0,                /* 初期パレット番号 */
      1,                /* 8bit CLUT */
      0                 /* 半透明レート */
  };
static BG_DATA_T    bg_COL_G_BG_BG  =
  /* コーラレースのゴール後の背景(#031) */
  {
    COL_G_BG_ADR,       /* テクスチャデータアドレス */
    COL_G_BG_ADR,       /* パレットデータアドレス */
    0,                  /* ファイルサ

0xCE200#

1,         /* パレットの転送先座標 */
      0,                /* 初期パレット番号 */
      1,                /* 8bit CLUT */
      0                 /* 半透明レート */
  };

/*-------------------------------------------------------------------*/
/*      ミニゲーム呼び出し                                            */
/*-------------------------------------------------------------------*/
char cola_main(void)
{

    switch( g_status )
    {
    case 0:
        return cola_init();
    case 1:
        return cola_main2();
    case 2:
        return cola_result();
    default:
        return -1;
    }
}
/*-------------------------------------------------------------------*/
/*      ミニゲーム初期化                                             */
/*-------------------------------------------------------------------*/
short cola_init(void)
{
  gam_w;
  register SCORE_T *sc = &result_score;

    set_cmdtbl();   //19980605sgy コマンドテーブルをセット

  /* ------------ ゲーム用キャラクターをロード --------  */
  obj_load2(&obj_FIRE_NO);      /* コーラ缶の炎 */
  obj_load2(&obj_FIRE_NOd1);    /* コーラ缶の炎 分割追加分 */
  obj_load2(&obj_CAN_NO);       /* コーラ缶 */
  obj_load2(&obj_PISTON_NO);    /* コーラ車のピストン */
  obj_load2(&obj_TIRE_NO);      /* コーラ車のタイヤ */
  obj_load2(&obj_CAR_NO);       /* コーラ車本体 */
  obj_load2(&obj_SHADOW_NO);    /* コーラ車の影 */
  obj_load2(&obj_CAR2_NO);      /* コーラ車の2Pカラー */
  obj_load2(&obj_SIGNAL_NO);    /* 信号のベース */
  obj_load2(&obj_LAMP_NO);      /* 信号のランプ */
  obj_load2(&obj_GOAL_NO);      /* ゴールの缶 */
  obj_load2(&obj_KMH_OBJ);      /* km/h */
  bg_load2(&bg_COLA_BACK_BG);   /* コーラ競技場 */
  bg_load2(&bg_

0xE0200#

er[3];
        Sshort          score_counter[3];
        Sshort          ox[3];
        Sshort          ox_timer[3];            /* 52bytes */

        Sshort          effect_step[3][10];     /*80*/
        Sshort          effect_timer[3][10];    /*80*/
        Slong           effect_x[3][10];        /*160*/
        Slong           effect_y[3][10];        /*160*/
        Slong           effect_xx[3][10];       /*160*/
        Slong           effect_yy[3][10];       /*160*/
        
        Sshort          gameover_step[3];
        Sshort          gameover_timer[3];
        Slong           gameover_x[3];
        Slong           gameover_y[3];
        Slong           gameover_xx[3];
        Slong           gameover_x_aim[3];      /*40*/

        Sshort          zoom;                   /* 現在のズーム値 */
        Sshort          zoom_tmp;

        Sshort          win_x;
        Sshort          win_y;
        Sshort          win_z;
        Sshort          win_r;
        Sshort          win_step;
        Sshort          win_timer;              /* 16 */

        Sshort          cont_sd_flag[3];        /*4*/ /* コンテぃニュー、途中参加音フラグ */
} RESULT_T;

typedef struct {
        Sshort          type;           /* 結果発表の種類              */
        Sshort          qualify;        /* ゲームクリア条件             */
        Sshort          time_limit;     /* 制限時間                     */
        Sshort          be[3];          /* ゲーム参加判定              */
                                        /*  0=Yes   1=No                */
        Sshort          hit[3];         /* 得点                           */
        Sshort          miss[3];        /* 減点                           */
        Sshort          score[3];       /* スコア(クリア条件と無関係)   */
        Sshort          time[3];        /* クリアタイム(1/60単位)       */
        Sshort          clear[3];       /* クリアフラグ                   */
        Sshort          res[3];         /* 予備                           */

} SCORE_T;

#define SCORE_TIME  0
#define SCORE_ONLY  1
#define TIME_ONLY   2
#define VS_ONLY     3

#endif
 x0, short y0, Ushort clut, short u0, short v0,
        short w, short h, Ushort tpage, Ushort pri, short otn);