the cutting room mirror

MR 00 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!.

0x2FA00#

6
    sw  $0,16($sp)
    .set    noreorder
    .set    nomacro
    jal disp4d_BOT
    sw  $0,20($sp)
    .set    macro
    .set    reorder


    .loc    1 723
LM167:
    addu    $4,$18,11452
    li  $5,19           # 0x00000013
    move    $6,$0
    move    $7,$6
    sw  $0,16($sp)
    .set    noreorder
    .set    nomacro
    jal disp4d_BOT
    sw  $0,20($sp)
    .set    macro
    .set    reorder


    .loc    1 724
LM168:
    addu    $4,$18,11636
    li  $5,20           # 0x00000014
    move    $6,$0
    move    $7,$6
    sw  $0,16($sp)
    .set    noreorder
    .set    nomacro
    jal disp4d_BOT
    sw  $0,20($sp)
    .set    macro
    .set    reorder


    .loc    1 728
LM169:
$Le9:
    .bend   $Le9    62
    li  $2,32           # 0x00000020
$L66:
    sb  $2,249($21)
    li  $2,192          # 0x000000c0
    sb  $0,248($21)
    sb  $2,250($21)

    .loc    1 731
LM170:
    .set    noreorder
    .set    nomacro
    jal So_Gstep_Up
    sb  $16,312($18)
    .set    macro
    .set    reorder


    .loc    1 734
LM171:
    lw  $31,48($sp)
    lw  $21,44($sp)
    lw  $20,40($sp)
    lw  $19,36($sp)
    lw  $18,32($sp)
    lw  $17,28($sp)
    lw  $16,24($sp)

    .loc    1 733
LM172:
    move    $2,$0

    .loc    1 734
LM173:
    .set    noreorder
    .set    nomacro
    j   $31
    addu    $sp,$sp,56
    .set    macro
    .set    reorder


    .loc    1 734
LM174:
    .end    So_Model_Init
    .align  2
    .def    So_First_Init;  .val    So_First_Init;  .scl    2;  .type   0x24;   .endef
    .globl  So_First_Init

    .loc    1 741
LM175:

    .loc    1 741
LM176:
    .ent    So_First_Init
So_First_Init:
    .frame  $sp,32,$31      # vars= 0, regs= 4/0, args= 16, extra= 0
    .mask   0x80070000,-4
    .fmask  0x00000000,0
$Lb10:
    .begin  $Lb10   1
    .def    sp; .val    17; .scl    4;  .tag    .143fake;   .size   520;    .type   0x18;   .endef
    .def    s;  

0x47400#

addu   $16,$16,-10
    addu    $2,$2,1
    lui $3,%hi(panel) # high
    addiu   $3,$3,%lo(panel) # low
    mult    $16,$2
    sll $2,$20,2
    addu    $2,$2,$20
    sll $5,$18,1
    addu    $5,$5,$18
    sll $5,$5,3
    addu    $5,$5,$18
    addu    $5,$5,$2
    sll $5,$5,4
    addu    $5,$5,$3

    .loc    1 1851
LM939:
    lui $6,%hi(ball) # high
    addiu   $6,$6,%lo(ball) # low

    .loc    1 1848
LM940:
    mflo    $7
    #nop
    #nop
    subu    $2,$0,$7
    sh  $2,34($5)

    .loc    1 1851
LM941:
    lh  $3,2($6)
    #nop
    sll $4,$3,1
    addu    $4,$4,$3
    sll $4,$4,3
    addu    $3,$3,-1
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$6
    lhu $2,12($2)
    addu    $4,$4,$6
    addu    $2,$2,$19
    sh  $2,12($4)

    .loc    1 1852
LM942:
    lh  $3,2($6)
    #nop
    sll $4,$3,1
    addu    $4,$4,$3
    sll $4,$4,3
    addu    $3,$3,-1
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$6
    lhu $2,14($2)
    addu    $4,$4,$6
    subu    $2,$2,$17
    sh  $2,14($4)

    .loc    1 1854
LM943:
    sw  $19,16($5)

    .loc    1 1855
LM944:
    sw  $17,20($5)

    .loc    1 1856
LM945:
    lw  $31,36($sp)
    lw  $20,32($sp)
    lw  $19,28($sp)
    lw  $1

0x55200#

161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8150($2)
    lbu $3,161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8152($2)
$L606:

    .loc    1 2501
LM1374:
    lui $2,%hi(ball+2428) # high
$L612:
    lw  $2,%lo(ball+2428)($2)
    #nop
    slt $2,$19,$2
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L610
    lui $2,%hi(so) # high
    .set    macro
    .set    reorder


    .loc    1 2503
LM1375:
    lw  $4,%lo(so)($2)
    #nop
    lbu $3,161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8142($2)
    lbu $3,161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8144($2)
    lbu $3,161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8146($2)

    .loc    1 2504
LM1376:
    lbu $3,161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8148($2)
    lbu $3,161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8150($2)
    lbu $3,161($4)
    #nop
    sll $2,$3,1
    addu    $2,$2,$3
    sll $2,$2,3
    subu    $2,$2,$3
    sll $2,$2,3
    addu    $2,$2,$17
    sh  $0,8152($2)
$L610:

    .loc    1 2506
LM1377:
$Le49:
    .bend   $Le49   46
    lw  $31,36($sp)
    lw  $20,32($sp)
    lw  $19,28($sp)
    lw  $18,24($sp)
    lw  $17,20($sp)
    lw  $16,16($sp)
    #nop
    .set    noreorder
    

0x60600#

レス参照
                    HM_PARTS_TABLE[],HM_HEAD_TABLE[],
                    AM_PARTS_TABLE[],AM_HEAD_TABLE[]
************************************************************************/

#ifndef 
#define 

/************************************************************************
 *      include     file                     declarations                                                           *
 ***********************************************************************/

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

0x9DE00#

}
    adr[cnt] = opd;                                              

    return cnt;                                                      
}
 
 
 
 
 
 
 
void    DelOpd(short no)
{
    if(opcnt == 0)
    {
        return;                                                                  
    }

    opcnt--;                                                                     
    adr[no] = (0) ;                                                      
}
 
 
 
 
 
 
 
 
 
 
void    InitOpdAnm(OPD_ANM *anm, short anm_no, short frm_no, short pri)
{
    anm->anm    = anm_no;                                        
    anm->frm    = frm_no-1;                                  
    anm->pri    = pri;                                           
    anm->time = 0;                                               
    anm->ptn    = 0;                                                 
    anm->xx     = 0;                    

0xADBF8#

   GsADIV_8;   .type   0xc;    .endef
    .def    b0; .val    6;  .scl    8;  .type   0xc;    .endef
    .def    code;   .val    7;  .scl    8;  .type   0xc;    .endef
    .def    r1; .val    8;  .scl    8;  .type   0xc;    .endef
    .def    g1; .val    9;  .scl    8;  .type   0xc;    .endef
    .def    b1; .val    10; .scl    8;  .type   0xc;    .endef
    .def    dummy1; .val    11; .scl    8;  .type   0xc;    .endef
    .def    r2; .val    12; .scl    8;  .type   0xc;    .endef
    .def    g2; .val    13; .scl    8;  .type   0xc;    .endef
    .def    b2; .val    14; .scl    8;  .type   0xc;    .endef
    .def    dummy2; .val    15; .scl    8;  .type   0xc;    .endef
    .def    n0; .val    16; .scl    8;  .type   0xd;    .endef
    .def    v0; .val    18; .scl    8;  .type   0xd;    .endef
    .def    v1; .val    20; .scl    8;  .type   0xd;    .endef
    .def    v2; .val    22; .scl    8;  .type   0xd;    .endef
    .def    .eos;   .val    24; .scl    102;    .tag    .78fake;    .size   24; .endef
    .def    TMD_P_F3G;  .scl    13; .tag    .78fake;    .size   24; .type   0x8;    .endef
    .def    .79fake;    .scl    10; .type   0x8;    .size   28; .endef
    .def    out;    .val    0;  .scl    8;  .type   0xc;    .endef
    .def    in; .val    1;  .scl    8;  .type   0xc;    .endef
    .def    dummy;  .val    2;  .scl    8;  .type   0xc;    .endef
    .def    cd; .val    3;  .scl    8;  .t

0xECA00#

RGUNIT *);
    extern u_long *GsU_00020016(GsARGUNIT *);
    extern u_long *GsU_00020017(GsARGUNIT *);
    extern u_long *GsU_0102000e(GsARGUNIT *);
    extern u_long *GsU_0102000f(GsARGUNIT *);
    extern u_long *GsU_01020016(GsARGUNIT *);
    extern u_long *GsU_01020017(GsARGUNIT *);

     
    extern u_long *GsU_0000020b(GsARGUNIT *);
    extern u_long *GsU_0000020f(GsARGUNIT *);
    extern u_long *GsU_00000213(GsARGUNIT *);
    extern u_long *GsU_00000217(GsARGUNIT *);
    extern u_long *GsU_00020209(GsARGUNIT *);
    extern u_long *GsU_0002020b(GsARGUNIT *);
    extern u_long *GsU_0002020d(GsARGUNIT *);
    extern u_long *GsU_0002020f(GsARGUNIT *);
    extern u_long *GsU_00020211(GsARGUNIT *);
    extern u_long *GsU_00020213(GsARGUNIT *);
    extern u_long *GsU_00020215(GsARGUNIT *);
    extern u_long *GsU_00020217(GsARGUNIT *);
    extern u_long *GsU_00040249(GsARGUNIT *);
    extern u_long *GsU_0004024d(GsARGUNIT *);
    extern u_long *GsU_00040251(GsARGUNIT *);
    extern u_long *GsU_00040255(GsARGUNIT *);
    extern u_long *GsU_00100209(GsARGUNIT *);
    extern u_long *GsU_0010020b(GsARGUNIT *);
    extern u_long *GsU_0010020d(GsARGUNIT *);
    extern u_long *GsU_0010020f(GsARGUNIT *);
    extern u_long *GsU_00100211(GsARGUNIT *);
    extern u_long *GsU_00100213(GsARGUNIT *);
    extern u_long *GsU_00100215(GsARGUNIT *);
    extern u_long *GsU_00100217(GsARGUNIT *);
    extern u_long *GsU_00200209(GsARGUNIT *);
    extern u_long *GsU_0020020d(GsARGUNIT *);
    extern u_long *GsU_00200211(GsARGUNIT *);
    extern u_long *GsU_00200215(GsARGUNIT *);
    extern u_long *GsU_00

0x137D80#

e for stdio initialization

R6025
- pure virtual function call

R6024
- not enough space for _onexit/atexit table

;   .scl    8;  .type   0xc;    .endef
    .def    g0; .val    5;  .scl    8;  .type   0xc;    .endef
    .def    b0; .val    6;  .scl    8;  .type   0xc;    .endef
    .def    code;   .val    7;  .scl    8;  .type   0xc;    .endef
    .def    v0; .val    8;  .scl    8;  .type   0xd;    .endef
    .def    v1; .val    10; .scl    8;  .type   0xd;    .endef
    .def    v2; .val    12; .scl    8;  .type   0xd;    .endef
    .def    v3; .val    14; .scl    8;  .type   0xd;    .endef
    .def    .eos;   .val    16; .scl    102;    .tag    .86fake;    .size   16; .endef
    .def    TMD_P_NF4;  .scl    13; .tag    .86fake;    .size   16; .type   0x8;    .endef
    .def    .87fake;    .scl    10; .type   0

0x13D400#

;  .scl    10; .type   0x8;    .size   84; .endef
    .def    limit;  .val    0;  .scl    8;  .type   0xf;    .endef
    .def    hwd;    .val    4;  .scl    8;  .type   0x5;    .endef
    .def    vwd;    .val    8;  .scl    8;  .type   0x5;    .endef
    .def    shift;  .val    12; .scl    8;  .type   0x4;    .endef
    .def    org;    .val    16; .scl    8;  .type   0x1f;   .endef
    .def    pk; .val    20; .scl    8;  .type   0x1f;   .endef
    .def    otz;    .val    24; .scl    8;  .type   0x5;    .endef
    .def    adivz;  .val    28; .scl    8;  .type   0x5;    .endef
    .def    adivw;  .val    32; .scl    8;  .type   0x3;    .endef
    .def    adivh;  .val    34; .scl    8;  .type   0x3;    .endef
    .def    flg;    .val    36; .scl    8;  .type   0x5;    .endef
    .def    minx;   .val    40; .scl    8;  .type   0x3;    .endef
    .def    miny;   .val    42; .scl    8;  .type   0x3;    .endef
    .def    maxx;   .val    44; .scl    8;  .type   0x3;    .endef
    .def    maxy;   .val    46; .scl    8;  .type   0x3;    .endef
    .def    hwd0;   .val    48; .scl    8;  .type   0x3;    .endef
    .def    vwd0;   .val    50; .scl    8;  .type   0x3;    .endef
    .def    tag;    .val    52; .scl    8;  .type   0x1f;   .endef
    .def    si; .val    56; .scl    8;  .tag    .27fake;    .size   28; .type   0x8;    .endef
    .def    .eos;   .val    84; .scl    102;    .tag    .110fake;   .size   8

0x16D200#

TOR *v2,
        short *uv0,short *uv1,short *uv2,EVECTOR **evmx);
extern long Clip4FT(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
        short *uv0,short *uv1,short *uv2,short *uv3,EVECTOR **evmx);
extern long Clip4FTP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
        short *uv0,short *uv1,short *uv2,short *uv3,EVECTOR **evmx);
extern long Clip3G(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
        CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,EVECTOR **evmx);
extern long Clip3GP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
        CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,EVECTOR **evmx);
extern long Clip4G(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
        CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,CVECTOR *rgb3,
        EVECTOR **evmx);
extern long Clip4GP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
        CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,CVECTOR *rgb3,
        EVECTOR **evmx);
extern long Clip3GT(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
        short *uv0,short *uv1,short *uv2,
        CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,
        EVECTOR **evmx);
extern long Clip3GTP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
        short *uv0,short *uv1,short *uv2,
        CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,
        EVECTOR **evmx);
extern long Clip4GT(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
        short *uv0,short *uv1,short *uv2,short *uv3,
        CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,CVECTOR *rgb3,
        EVECTOR **evmx);
extern long Clip4GTP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
        short *uv0,short *uv1,short *uv2,short *uv3,
        CVECTOR *rgb0,CVECTOR *r,/pre>

=={{hex|0x175200}}==
<pre>d    GsMulCoord2(MATRIX * m1, MATRIX * m2);
    void    GsMulCoord3(MATRIX * m1, MATRIX * m2);
    void    GsGetLw(GsCOORDINATE2 * m, MATRIX * out);
    void    GsGetLs(GsCOORDINATE2 * m, MATRIX * out);
    void    GsGetLws(GsCOORDINATE2 * m, MATRIX * outw, MATRIX * outs);

    u_long  GsLinkObject3(unsigned long pmd_base, GsDOBJ3 * objp);
    void    GsLinkObject4(unsigned long tmd_base, GsDOBJ2 * objp, int n);
    void    GsLinkObject5(unsigned long tmd_base, GsDOBJ5 * objp, int n);

    void    GsSetLightMatrix(MATRIX * mp);
    void    GsSetLightMatrix2(MATRIX * mp);
    int     GsSetRefView2(GsRVIEW2 * pv);
    int     GsSetRefView2L(GsRVIEW2 * pv);
    int     GsSetView2(GsVIEW2 * pv);
    void    GsSetLsMatrix(MATRIX * mp);
    void    GsSetClip2D(RECT * rectp);
    void    GsInitVcount();
    long    GsGetVcount();
    void    GsClearVcount();
    void    GsDefDispBuff2(u_short x0, u_short y0, u_short x1, u_short y1);
    void    GsDrawOtIO(GsOT *ot);
    PACKET *GsGetWorkBase();
    void    GsInitGraph2( u_short x, u_short y, u_short intmode, u_short dith, u_short vrammode);
    void    GsSortObject4J(GsDOBJ2 *objp, GsOT *otp, int shift, u_long *scratch);
    void    GsClearDispArea(unsigned char r, unsigned char g, unsigned char b);

    u_long *GsPresetObject(GsDOBJ5 * objp, u_long * base_addr);
    void    GsScaleScreen(SVECTOR * scale);

    PACKET *GsA4divF3L(TMD_P_F3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divF3LFG(TMD_P_F3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
               

0x17EA00#

GUNIT_ANIM *);
    extern int  GsU_03002032(GsARGUNIT_ANIM *);
    extern int  GsU_03002033(GsARGUNIT_ANIM *);
    extern int  GsU_03002039(GsARGUNIT_ANIM *);
    extern int  GsU_0300203a(GsARGUNIT_ANIM *);
    extern int  GsU_0300203b(GsARGUNIT_ANIM *);
    extern int  GsU_03002111(GsARGUNIT_ANIM *);
    extern int  GsU_03002112(GsARGUNIT_ANIM *);
    extern int  GsU_03002119(GsARGUNIT_ANIM *);
    extern int  GsU_0300211a(GsARGUNIT_ANIM *);
    extern int  GsU_03002910(GsARGUNIT_ANIM *);
    extern int  GsU_03002911(GsARGUNIT_ANIM *);
    extern int  GsU_03002912(GsARGUNIT_ANIM *);
    extern int  GsU_03002919(GsARGUNIT_ANIM *);
    extern int  GsU_0300291a(GsARGUNIT_ANIM *);
    extern int  GsU_03003010(GsARGUNIT_ANIM *);
    extern int  GsU_03003011(GsARGUNIT_ANIM *);
    extern int  GsU_03003012(GsARGUNIT_ANIM *);
    extern int  GsU_03003013(GsARGUNIT_ANIM *);
    extern int  GsU_03003019(GsARGUNIT_ANIM *);
    extern int  GsU_0300301a(GsARGUNIT_ANIM *);
    extern int  GsU_0300301b(GsARGUNIT_ANIM *);
    extern int  GsU_03003020(GsARGUNIT_ANIM *);
    extern int  GsU_03003021(GsARGUNIT_ANIM *);
    extern int  GsU_03003022(GsARGUNIT_ANIM *);
    extern int  GsU_03003023(GsARGUNIT_ANIM *);
    extern int  GsU_03003029(GsARGUNIT_ANIM *);
    extern int  GsU_0300302a(GsARGUNIT_ANIM *);
    extern int  GsU_0300302b(GsARGUNIT_ANIM *);
    extern int  GsU_03003030(GsARGUNIT_ANIM *);
    extern int  GsU_03003031(GsARGUNIT_ANIM *);
    extern int  GsU_03003032(GsARGUNIT_ANIM *);
    extern int  GsU_03003033(GsARGUNIT_ANIM *);
    extern int  GsU_03003039(GsARGUNIT_ANIM *);
    extern int  GsU_0300303a(GsARGUNIT_

0x186E00#

col = 0;                            
        kongou[i].opd.dflag = 1;
        kongou[i].opd.tpos = 0;
        kongou[i].opd.tx = anime_vram[0];
        kongou[i].opd.ty = anime_vram[1];
        kongou[i].pal=0x2d;
        kongou[i].opd.cx = (s->palet[ kongou[i].pal ].s[1 ]) ;
        kongou[i].opd.cy = (s->palet[ kongou[i].pal ].s[0 ]) ;
        kongou[i].opd.aw = load_kongo_anm[sp->kongoupat ];
        kongou[i].opd.ph = load_kongo_ptn[sp->kongoupat ];
        kongou[i].anm.opd = AddOpd(&kongou[i].opd);
        kongou[i].func = wait_func[sp->kongoupat ][i];
        kongou[i].step = 0;

0x1D65FE#

fl70;  .scl    16; .type   0xb;    .endef
    .def    AS_H29C;    .val    4071;   .scl    16; .type   0xb;    .endef
    .def    AS_H31B;    .val    4072;   .scl    16; .type   0xb;    .endef
    .def    AS_H27; .val    4073;   .scl    16; .type   0xb;    .endef
    .def    AS_H28; .val    4074;   .scl    16; .type   0xb;    .endef
    .def    AS_H30B;    .val    4075;   .scl    16; .type   0xb;    .endef
    .def    AS_H32B;    .val    4076;   .scl    16; .type   0xb;    .endef
    .def    AS_H33A;    .val    4077;   .scl    16; .type   0xb;    .endef
    .def    AS_H33B;    .val    4078;   .scl    16; .type   0xb;    .endef
    .def    .eos;   .val    4;  .scl    102;    .tag    .222fake;   .size

0x29F400#

102;   .tag    .176fake;   .size   4;  .endef
    .def    .177fake;   .scl    15; .type   0xa;    .size   4;  .endef
    .def    FS_F00; .val    3391;   .scl    16; .type   0xb;    .endef
    .def    FS_F01; .val    3392;   .scl    16; .type   0xb;    .endef
    .def    FS_F02; .val    3393;   .scl    16; .type   0xb;    .endef
    .def    FS_F03; .val    3394;   .scl    16; .type   0xb;    .endef
    .def    FS_F04; .val    3395;   .scl    16; .type   0xb;    .endef
    .def    FS_F05; .val    3396;   .scl    16; .type   0xb;    .endef
    .def    FS_F06a;    .val    3397;   .scl    16; .type   0xb;    .endef
    .def    FS_F06b;    .val    3398;   .scl    16; .type   0xb;    .endef
    .def    FS_F07; .val    3399;   .scl    16; .type   0xb;    .endef
    .def    FS_F08; .val    3400;   .scl    16; .type   0xb;    .endef
    .def    FS_F09; .val    3401;   .scl    16; .type   0xb;    .endef
    .def    FS_F10; .val    3402;   .scl    16; .type   0xb;    .endef
    .def    FS_F11; .val    3403;   .scl    16; .type   0xb;    .endef
    .def    FS_F12; .val    3404;   .scl    16; .type   0xb;    .endef
    .def    FS_F13; .val    3405;   .scl    16; .type   0xb;    .endef
    .def    .eos;   .val    4;  .scl    102;    .tag    .177fake;   .size   4;  .endef
    .def    .178fake;   .scl    15; .type   0xa;    .size   4;  .endef
    .def    FS_G;   .val    3406;

0x2B6E00#

LM232:
    sra $3,$4,16
    .set    noreorder
    .set    nomacro
    beq $3,$0,$L75
    li  $2,715784192            # 0x2aaa0000
    .set    macro
    .set    reorder


    .loc    1 485
LM233:
    ori $2,$2,0xaaab
    mult    $3,$2

    .loc    1 484
LM234:
    lui $2,%hi(konami_pos) # high
    sh  $0,%lo(konami_pos)($2)

    .loc    1 487
LM235:
    li  $2,-112         # 0xffffff90
    sh  $2,6($16)

    .loc    1 488
LM236:
    li  $2,16           # 0x00000010

    .loc    1 485
LM237:
    sra $4,$4,31

    .loc    1 488
LM238:
    sh  $2,8($16)

    .loc    1 489
LM239:
    sh  $2,20($16)

    .loc    1

0x2BF200#

n  2
    .def    SetG2dSTAGE_infK00; .val    SetG2dSTAGE_infK00; .scl    2;  .type   0x24;   .endef
    .globl  SetG2dSTAGE_infK00

    .loc    1 883
LM555:

    .loc    1 883
LM556:
    .ent    SetG2dSTAGE_infK00
SetG2dSTAGE_infK00:
    .frame  $sp,72,$31      # vars= 0, regs= 8/0, args= 40, extra= 0
    .mask   0x807f0000,-4
    .fmask  0x00000000,0
    .def    num;    .val    4;  .scl    17; .type   0x3;    .endef
$Lb34:
    .begin  $Lb34   1
    .def    sp; .val    19; .scl    4;  .tag    .143fake;   .size   520;    .type   0x18;   .endef
    .def    s;  .val    22; .scl    4;  .tag    _SYS_W; .size   21168;  .type   0x18;   .endef
    .def    spd;    .val    18; .scl    4;  .tag    _SPD_W; .size   12; .type   0x18;   .endef
    subu    $sp,$sp,72
    sw  $18,48($sp)
    move    $18,$4

    .loc    1 884
LM557:
    lui $2,%hi(spw) # high

    .loc    1 883
LM558:
    sw  $19,52($sp)

    .loc    1 884
LM559:
    addiu   $19,$2,%lo(spw) # low

    .loc    1 885
LM560:
    lui $2,%hi(sys) # high

    .loc    1 883
LM561:
    sw  $31,68($sp)
    sw  $22,64($sp)
    sw  $21,60($sp)
    sw  $20,56($sp)
    sw  $17,44($sp)
    sw  $16,40($sp)

    .loc    1 888
LM562:
    lbu $3,430($19)

    .loc    1 888
LM563:
    #nop
    .set    noreorder
    .set    nomacro
    bne $3,$0,$L148
    addiu   $22,$2,%lo(sys) # low
    .set    macro
    .set    reorder


    .loc    1 889
LM564:
    sll $20,$18,16
    sra $21,$20,16
    .set    noreorder
    .set    nomacro
    blez    $21,$L149
    li  $4,12           # 0x0000000c
    .set    macro
    .set    reorder


    .loc    1 890
LM565:
    li  $5,4109         # 0x0000100d
    move    $6,$0
    move    $7,$6
    move    $17,$4
    li  $2,10           # 0x0000000a
    li  $16,1           # 0x00000001
    sw  $0,16($sp)
    sw  $17,20($sp)
    sw  $0,24($sp)
    sw  $2,28($sp)
    .set    noreorder
    .set    

0x2C6C00#

7,10($3)

    .loc    1 1296
LM849:
$L256:
    addu    $5,$5,1
    slt $2,$5,5
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L257
    addu    $3,$3,12
    .set    macro
    .set    reorder


    .loc    1 1300
LM850:
    li  $4,4            # 0x00000004
    li  $5,38           # 0x00000026
    move    $6,$0
    move    $7,$6
    li  $2,11           # 0x0000000b
    sw  $2,20($sp)
    li  $2,10           # 0x0000000a
    li  $16,1           # 0x00000001
    sw  $0,16($sp)
    sw  $0,24($sp)
    sw  $2,28($sp)
    .set    noreorder
    .set    nomacro
    jal set2d
    sw  $16,32($sp)
    .set    macro
    .set    reorder


    .loc    1 1301
LM851:
    .set    noreorder
    .set    nomacro
    jal GetSpd
    li  $4,38           # 0x00000026
    .set    macro
    .set    reorder

    move    $4,$2

    .loc    1 1302
LM852:
    sll $2,$19,16
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L261
    li  $2,3            # 0x00000003
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    j   $L262
    sb  $16,10($4)
    .set    macro
    .set    reorder

$L261:
    sb  $2,10($4)
$L262:

    .loc    1 1303
LM853:
    sll $2,$19,16
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L271
    li  $2,1            # 0x00000001
    .set    

0x2CEA00#

           # 0x000001e0

    .loc    1 1427
LM651:
    .set    noreorder
    .set    nomacro
    jal Random
    sh  $2,68($3)
    .set    macro
    .set    reorder

    lw  $3,%lo(kt)($16)
    subu    $2,$0,$2
    lw  $3,524($3)
    addu    $2,$2,-160
    sh  $2,72($3)

    .loc    1 1430
LM652:
    lui $16,%hi(kt) # high
$L453:
    lw  $2,%lo(kt)($16)
    #nop
    lw  $2,14224($2)
    #nop
    lbu $4,18($2)
    .set    noreorder
    .set    nomacro
    jal KTalk_Order
    addu    $4,$4,11
    .set    macro
    .set    reorder


    .loc    1 1431
LM653:
    .set    noreorder
    .set    nomacro
    jal SD_call
    li  $4,1299         # 0x00000513
    .set    macro
    .set    reorder


    .loc    1 1432
LM654:
    lw  $2,%lo(kt)($16)
    #nop
    lw  $3,796($2)
    li  $2,1            # 0x00000001
    sb  $2,254($3)

    .loc    1 1433
LM655:
    lw  $3,%lo(kt)($16)
$L436:
    lbu $2,2($3)
    #nop
    addu    $2,$2,1

    .loc    1 1435
LM656:
    .set    noreorder
    .set    nomacro
    j   $L351
    sb  $2,2($3)
    .set    macro
    .set    reorder

$L414:

    .loc    1 1440
LM657:
    lw  $2,64($6)
    #nop
    lbu $2,1116($2)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L450
    lui $2,%hi(kt) # high
    .set    macro
    .set    reorder


    .loc    1 1442
LM658:
    lbu $2,22($6)
    #nop
    bne $2,$0,$L416

    .loc    1 1445
LM659:
    lw  $2,40($6)
    #nop
    lhu $2,0($2)
    #nop
    andi    $2,$2,0x8000
    beq $2,$0,$L417
    lbu $2,23($6)
    lw  $4,316($6)
    addu    $2,$2,3
    lw  $3,20($4)
    sra $2,$2,1
    addu    $3,$3,$2
    sw  $3,20($4)
$L417:

    .loc    1 1446
LM660:
    lw  $4,%lo(kt)($17)
    #nop
    lw  $2,40($4)
    #nop
    lhu $2,0($2)
    #nop
    andi    $2,$2,0x2000
    beq $2,$0,$L415
    lbu $3,23($4)
    li  $2,-1431655765          # 0xaaaaaaab
    multu

0x305A00#

rDpq3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
            SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6);
extern void RotAverageNclipColorCol3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
            SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6);
extern void RotColorDpq_nom(SVECTOR *v0,SVECTOR *v1,CVECTOR *v2);
extern long RotColorDpq3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
            SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6);
extern void NormalColor_nom(SVECTOR *v0);
extern void NormalColor3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void NormalColorDpq_nom(SVECTOR *v0,CVECTOR *v1,long p);
extern void NormalColorDpq3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
            CVECTOR *v3,long p);
extern void NormalColorCol_nom(SVECTOR *v0,CVECTOR *v1);
extern void NormalColorCol3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
            CVECTOR *v3);

 





































































































extern void RotSMD_F3(long *pa,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_G3(long *pa,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_FT3(long *pa,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_GT3(long *pa,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_F4(l

0x30F400#

G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastF4GLFG(TMD_P_F4G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastF4GNL(TMD_P_F4G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG4GL(TMD_P_G4G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG4GLFG(TMD_P_G4G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG4GNL(TMD_P_G4G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG4M(TMD_P_G4 *op, VERT *vp, VERT *np, PACKET *pk, 
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG4MFG(TMD_P_G4 *op, VERT *vp, VERT *np, PACKET *pk, 
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastTG4M(TMD_P_TG4 *op, VERT *vp, VERT *np,

0x316C00#

U_03002912(GsARGUNIT_ANIM *);
    extern int  GsU_03002919(GsARGUNIT_ANIM *);
    extern int  GsU_0300291a(GsARGUNIT_ANIM *);
    extern int  GsU_03003010(GsARGUNIT_ANIM *);
    extern int  GsU_03003011(GsARGUNIT_ANIM *);
    extern int  GsU_03003012(GsARGUNIT_ANIM *);
    extern int  GsU_03003013(GsARGUNIT_ANIM *);
    extern int  GsU_03003019(GsARGUNIT_ANIM *);
    extern int  GsU_0300301a(GsARGUNIT_ANIM *);
    extern int  GsU_0300301b(GsARGUNIT_ANIM *);
    extern int  GsU_03003020(GsARGUNIT_ANIM *);
    extern int  GsU_03003021(GsARGUNIT_ANIM *);
    extern int  GsU_03003022(GsARGUNIT_ANIM *);
    extern int  GsU_03003023(GsARGUNIT_ANIM *);
    extern int  GsU_03003029(GsARGUNIT_ANIM *);
    extern int  GsU_0300302a(GsARGUNIT_ANIM *);
    extern int  GsU_0300302b(GsARGUNIT_ANIM *);
    extern int  GsU_03003030(GsARGUNIT_ANIM *);
    extern int  GsU_03003031(GsARGUNIT_ANIM *);
    extern int  GsU_03003032(GsARGUNIT_ANIM *);
    extern int  GsU_03003033(GsARGUNIT_ANIM *);
    extern int  GsU_03003039(GsARGUNIT_ANIM *);
    extern int  GsU_0300303a(GsARGUNIT_ANIM *);
    ex

0x3A8400#

now_x,short speed){
    sp_w;
    register Uchar i;
    
    if(abs(now_x-next_x)<speed){
        return(next_x);
    }
    return(now_x+SGN(next_x-now_x)*speed);
}

//////////////////////////////////////////////////////////////////

b,0x31,0x00,0x04,0x7f,0x98,0xba,
0xcb,0x08,0x3f,0xfe,0xf1,0x0c,0x41,0xbc,0xab,0x89,0x14,0x81,0x01,0x80,0xc8,0xa9,
0xcb,0xcc,0xcc,0x8a,0x36,0x02,0x00,0x00,0x20,0x63,0xa8,0xcc,0xcc,0xbc,0x9a,0x31,
0x80,0x20,0x11,0x22,0x54,0x86,0xa9,0x0c,0x3f,0xee,0xff,0xe2,0xff,0x10,0x41,0x9a,
0x68,0x45,0

0x3B0400#

***********************************************************/
SPD_W   fade_spd[] = {  //99.5.24   nakayama
/*  ccode,xsize,ysize,u,v,offset_x,offset_y palette */
    {DAT,    0x20, 0x20,     0xc8,   0x60, -0x20 , -0x20 , COL_FADE},
    {DAT,    0x20, 0x20,     0xc8,   0x60, +0x00 , -0x20 , COL_FADE},
    {DAT,    0x20, 0x20,     0xc8,   0x60, -0x20 , +0x00 , COL_FADE},
    {END,    0x20, 0x20,     0xc8,   0x60, +0x00 , +0x00 , COL_FADE},
};

/******************************************************************************
;
;       ゲーム中のSPDデータ g_com.opd
;
******************************************************************************/
SPD_W   plate01_spd[]={
    /*  ccode,xsize,ysize,u,v,offset_x,offset_y palette */
    {DAT,0x28,0x10,0x00,0x00,0xff23,0x0052,0x5b},
    {DAT,0x38,0x18,0x80,0x20,0xff20,0x0050,0x5f},
    {END,0x80,0x18,0x80,0x00,0xff58,0x0050,0x5f},
    };

SPD_W   name01_spd[]={
    /*  ccode,xsize,ysize,u,v,offset_x,offset_y palette */
    {DAT,0x10,0x10,0x00,0x00,0xff58,0x0052,0x01},
    {DAT,0x10,0x10,0x00,0x00,0xff69,0x0052,0x01},
    {DAT,0x10,0x

0x3C1A00#

 ((Padbuf[1][1] == 0x73) && ((Padbuf[1][2]&0xf0) == 0xf0)) {
            joy->anacon_fg = 1;
            joy->anacon_l_x = anacon_caribrate(Padbuf[1][6]);/* 98.9.01 sugi*/
            joy->anacon_l_y = anacon_caribrate(Padbuf[1][7]);/* 98.9.01 sugi*/
        } else {
            joy->anacon_fg = 0;
            joy->anacon_l_x = 0;
            joy->anacon_l_y = 0;
        }
//      if (PAUSE_OK_FLAG){
//          for(i=0;i<2;i++){
//          if (CheckTrg(i+JOY1,P_START)){
//              if (PAUSE_FLAG==OFF){
//                  if (PLAYMODE==P1vsCP && i==1){
//                      break;
//                  }
//                  pause_no=i;
//                  SD_call(SD_CTL_PAUSE);
//                  PAUSE_FLAG=ON;
//                  s->pause_step=0;
//                  s->pause_step_s=0;
//                  set_pause(0x0c);
//              }
//          }
//      }
//  }
}

/*  98.9.01 sugi    新規作成のアナコン用の関数*/
signed char anacon_caribrate(unsigned char buf)
{
    /*遊びの範囲内の場合は*/
    if ((buf > ANACON_ASOBI_MIN) && (buf < ANACON_ASOBI_MAX))   return(0);

    return(buf - ANACON_NEUTRAL);   /*それ以外は、中間値からの差分を取る*/
}

/*#############################################################################
;
;       キー入力チェック
;
#############################################################################*/
int joy_check(int id,int mode,long check_trg)
{
    sp_w;
    register    Ushort  j_tmp;

    j_tmp = (mode==SCAN) ? (sp->joyw[id].joy_w) : (sp->joyw[id].joytrg);
    if ((j_tmp&check_trg)>=check_trg){
        return(ON);
    }else{
        return(OFF);
    }
}
/*/////////////////////////////////////////////////////////////////////////////
//振動機能 内部関数
/////////////////////////////////////////////

0x5D8200#

x800 },        /*06    だるま*/
    { VTOFS07, (1644+0x7ff)/0x800 },        /*07    ブレインパニック*/
#else
    { "v_00.bin", 7064 },       /*00    ストラックアウト*/
    { "v_00.bin", 7064 },       /*01    キックターゲット*/
    { "v_02.bin", 4372 },       /*02    モンスターボックス*/
    { "v_03.bin", 2796 },       /*03    ショットガンタッチ*/
    { "v_04.bin", 2608 },       /*04    タッグオブウォー*/
    { "v_05.bin", 3136 },       /*05    ハスラー*/
    { "v_06.bin", 2604 },       /*06    だるま*/
    { "v_07.bin", 1644 },       /*07    ブレインパニック*/
#endif
};

0x632E00#

_sound_ctors_size
 80030A54  _sound_data_obj
 800313BD  _sound_data_objend
 80030A54  _sound_data_org
 800313BD  _sound_data_orgend
 00000969  _sound_data_size
 800326B0  _sound_dtors_obj
 800326B0  _sound_dtors_objend
 800326B0  _sound_dtors_org
 800326B0  _sound_dtors_orgend
 00000000  _sound_dtors_size
 8002B7A8  _sound_obj
 800326B0  _sound_objend
 8002B7A8  _sound_org
 800326B0  _sound_orgend
 8002B7A8  _sound_rdata_obj
 8002BBEA  _sound_rdata_objend
 8002B7A8  _sound_rdata_org
 8002B

0x845200#

A描画リクエスト */
        GsDrawOt(&SepOT[0].ot[ACTIVE_SIDE]);

#ifdef DEBUG
        packet_size = ( Ulong ) GsGetWorkBase () - ( Ulong ) GPUADDRESS;
        /* 使用パケットサイズの表示 */
        if( PACKETMAX < packet_size )   FntPrint( "PACKET OVERRRR");
#endif

//      SD_vsync();                             /*1999.07.03    nakayama    サウンド*/
        ShockON();                                                              /* 振動機能のタスク */
        STIMER++;                                                                   /* システムタイマー sp_w */

#if SAMPLE_FLG
if ( font_switch ){
#else
if ( INTER_MODE != INT_GAME ){
#endif
//      FntPrint(buff);
//      FntFlush(-1);
}

    }
}

0x8A4400#

, (0x0000d7c0+0x7ff)/0x800, (Ulong)ANIME_TABLE2         ,2},       /*  63  選手別DEMO */
    { 0x0016c800/0x800+CD_DATA01, (0x0000d7c0+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  64  選手別DEMO */
    { 0x0017a000/0x800+CD_DATA01, (0x0000d7c0+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  65  選手別DEMO */
    { 0x00187800/0x800+CD_DATA01, (0x0000d7c0+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  66  選手別DEMO */
    { 0x00195000/0x800+CD_DATA01, (0x0000d090+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  67  選手別DEMO */
    { 0x001a2800/0x800+CD_DATA01, (0x0000d428+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  68  選手別DEMO */
    { 0x001b0000/0x800+CD_DATA01, (0x0000d7c0+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  69  選手別DEMO */
    { 0x001bd800/0x800+CD_DATA01, (0x0000d7c0+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  6a  選手別DEMO */
    { 0x001cb000/0x800+CD_DATA01, (0x0000d090+0x7ff)/0x800, (Ulong)ANIME_TABLE2      ,2},       /*  6b  選手別DEMO */

        /*グラウンドモデル data02.bin*/
    { 0x00000000/0x800+CD_DATA02, (0x0000755d+0x7ff)/0x800, (Ulon

0x993200#

y_nothing1(short, short, unsigned char, unsigned char);
extern void dmy_SsNoteOn (short, short, unsigned char, unsigned char);
extern void dmy_SsSetProgramChange(short, short, unsigned char); 
extern void dmy_SsGetMetaEvent(short, short, unsigned char); 
extern void dmy_SsSetPitchBend(short, short);
extern void dmy_SsSetControlChange(short, short, unsigned char); 
extern void dmy_SsContBankChange(short, short); 
extern void dmy_SsContDataEntry(short, short, unsigned char);
extern void dmy_SsContMainVol(short, short, unsigned char);  
extern void dmy_SsContPanpot(short, short, unsigned char);
extern void dmy_SsContExpression(short, short, unsigned char); 
extern void dmy_SsContDamper(short, short, unsigned char); 
extern void dmy_SsContExternal(short, short, unsigned char); 
extern void dmy_SsContNrpn1(short, short, unsigned char); 
extern void dmy_SsContNrpn2(short, short, unsigned char); 
extern void dmy_SsContRpn1(short, short, unsigned char); 
extern void dmy_SsContRpn2(short, short, unsigned char); 
extern void dmy_SsContResetAll(short, short);
extern void dmy_SsSetNrpnVabAttr0(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr1(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr2(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr3(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr4(short, short, short, VagAtr, short, unsigned char);
extern void dmy_Ss

0x99D200#

iceAttr *arg);

extern void SpuLSetVoiceAttr (int num, SpuLVoiceAttr *argList);

extern void SpuSetVoiceVolume (int vNum, short volL, short volR);
extern void SpuSetVoiceVolumeAttr (int vNum, short volL, short volR,
                   short volModeL, short volModeR);
extern void SpuSetVoicePitch (int vNum, unsigned short pitch);
extern void SpuSetVoiceNote (int vNum, unsigned short note);
extern void SpuSetVoiceSampleNote (int vNum, unsigned short sampleNote);
extern void SpuSetVoiceStartAddr (int vNum, unsigned long startAddr);
extern void SpuSetVoiceLoopStartAddr (int vNum, unsigned long lsa);
extern void SpuSetVoiceAR (int vNum, unsigned short AR);
extern void SpuSetVoiceDR (int vNum, unsigned short DR);
extern void SpuSetVoiceSR (int vNum, unsigned short SR);
extern void SpuSetVoiceRR (int vNum, unsigned short RR);
extern void SpuSetVoiceSL (int vNum, unsigned short SL);
extern void SpuSetVoiceARAttr (int vNum, unsigned short AR, long ARmode);
extern void SpuSetVoiceSRAttr (int vNum, unsigned short SR, long SRmode);
extern void SpuSetVoiceRRAttr (int vNum, unsigned short RR, long RRmode);
extern void SpuSetVoiceADSR (int vNum, unsigned short AR, unsigned short DR,
                 unsigned short SR, unsigned short RR,
                 unsigned short SL);
extern void SpuSetVoiceADSRAttr (int vNum,
                 unsigned short AR, unsigned short DR,
                 unsigned short SR, unsigned short RR,
                 unsigned short SL,
                 long ARmode, long SRmode, long RRmode);

extern void SpuGetVoiceVolume (int vNum, short *volL, short

0x9A2200#

pe_se = SD_se_ouen  [SD_stream1-2000].size_e ;
                trans_cnt2 = 0;
                SE_BGM_fade = 0;
            } else {
                fp_se = SD_se_stream[SD_stream1].size_s + 0 ;
                fpe_se = SD_se_stream[SD_stream1].size_e ;
                trans_cnt = 0;
            }
            str_se_size = fpe_se*0x800;

            if(fpe_se <= 1) {
                wait_x = 0;
                SD_intse = 0;
                break;
            }

            CdControlF(0x09 ,0);
            wait_x = 0;
            SD_intse++;
# 497 "SD_STRV.C"

            break;

 
        case 0x71 :

            result = CdSync(1,sub_status);
            if( result == 0x02  ) {              
                if( (sub_status[0] & 0x10) == 0x10) {
                    SD_intse = 0x7f ;
                    break;
                }
                param[0] = 0x80  | 0x20 ;    
 
                CdControl( 0x0e , param, 0 );
                CdIntToPos(fp_se, &loc);
                if ( CdControl(0x02 ,(u_char *)&loc, 0 ) ){
                    SD_intse++;
                }else{
printf("check 2\n");
                    SD_intse = 0x70 ;        
                }
            } else {
                if ( result = 0x05  ){
printf("check 1\n");
                    se1_err++;
                    if(se1_err > 20) {
                        se1_err = 0;
                        SD_intse = 0x7f ;    
                    }else{
                        SD_intse = 0x70 ;        
                    }
                }
            }
# 542 "SD_STRV.C"

                break;

 
        case 0x71 +1:

            result = CdSync(1,sub_status);
            if( result == 0x02 ) {              
                if( (sub_status[0] & 0x10) == 0x10) {
                    SD_intse = 0x7f ;
                    break;
                }
 
                if ( KCdRead( fp_se, fpe_se, (void*)str_se_buf ) ){
                    sec_cnt = 0;
                    read_end = read_end_p = 0;
                    SD_intse++;
                }
            }else {
                if ( result == 0x05  ){
printf("check 3\n");
                    SD_intse = 0x70 ;
                    break;
                }
            }

0xD08400#

x0c, 0x11, 1, PR3 },
    { S_BT2, 0x3077,      0, -SP*MV, 0x0c, 0x07, 1, PR3 },
    { S_BU1, 0x3078,      0, -SP*MV, 0x0c, 0x73, 1, PR3 },
    { S_BU2, 0x3079,      0, -SP*MV, 0x0c, 0x73, 1, PR3 },

    { GAGE1, 0x307a,      0,      0, 0x0c, 0x0a, 0, PR7 },
    { GAGE2, 0x307b,      0,      0, 0x0c, 0x0a, 0, PR7 },
    { GAGE3, 0x307c,      0,      0, 0x0c, 0x0a, 0, PR7 },
    { PMARK, 0x3085,      0,      0, 0x0c, 0x22, 0, PR7 },
    { PNAME, 0x3086,      0,      0, 0x07, 0x04, 0, PR7 },
    { S_CUR, 0x3088,   0x29,      0, 0x0d, 0xd0, 0, PR6 },
    { S_PMK, 0x3089,   0x29,      0, 0x0c, 0x22, 0, PR5 },
    { NINZU, 0x307f,      0,      0, 0x0c, 0x01, 1, PR7 },
    { KMARK, 0x308a,      0,      0, 0x0c, 0x22, 1, PR4 },
    { ENTRY, 0x307d,      0,      0, 0x0c, 0x12, 0, PR7 },
    { PRESS, 0x307e,      0,      0, 0x0c, 0x09, 0, PR7 },
    { ENT_C, 0x3087,      0,      0, 0x0c, 0x12, 0, PR7 },
};

enum {          //  上記テーブル内容に対応
    TOP1 = 0,   //  PA_TI~
    TOP2 = 6,   //  GAGE1~

    DT_ON = 0,  //  表示ON
    DT_BURU,    //  ブル!
    DT_SLIDE,   //  スラ

0xD0D600#

   spd[ 9].offset_y = ypos+0x10;
//  spd[10].ysize = (wkt)? 0x10:0x00;   spd[10].offset_y = ypos+0x20;
    xp[0] = (0xff86+0x29)-((wkt<11)?(wkt*4):0x29);
    xp[1] = (0x0053-0x29)+((wkt<11)?(wkt*4):0x29);
    spd[ 7].offset_x = xp[0];
    spd[ 8].offset_x = xp[1];
    spd[ 9].offset_x = xp[1];
    spd[10].offset_x = xp[1];

    if( wkt > 0 ) {
        if( (FaceOn[1]&0x40) == 0 ) {
        //  SetPF4(0xff86+2,ypos+2,0x28-4,0x30-4,0x00,0x00,0x00,PR6,1);
            SetPF4(xp[0],0x0033,((wkt<11)?(wkt*4):0x28),0x30,0x00,0x00,0xff,PR6,1);
        }
        

0xD0FC00#

_x = 0x0004;   spd[3].offset_y = 0x0018;

    cls0 = SETCLS0( wno+1 );    cls0->kind = 0; //  Ì«ÝÄ(06) OFF
    cls0 = SETCLS0( wno+2 );    cls0->kind = 0; //  Ì«ÝÄ(07) OFF
}

4  )

#define E_MES1 ( KOJIN1 && !TUG )
#define E_MES2 ( KOJIN1 &&  TUG )
#define E_MES3 ( (pos_sav[MODE_SELECT]==0) && (pos_sav[RANKING_SELECT]==1) )
#define E_MES4 ( (pos_sav[MODE_SELECT]==1) && (pos_sav[GAME_SELECT]==4) )
#define E_MES5 ( (pos_sav[MODE_SELECT]==0) && (pos_sav[RANKING_SELECT]==2) )
#define E_MES6 ( (pos_sav[MODE_SELECT]

0xD1AA00#

J_SP*mx+sa*i);
            set2dN( cno+tcnt+i,sno+tcnt+i,MODE16,0,0,0x0b,0x03,1,pri );
            cls0 = SETCLS0( cno+tcnt+i );
            if( type == 2 ) {   //  バージョン設定専用(項目数に注意!右項目も登録!)
                cls0->xposi = -(MJ_SP*mx+sa*i);
            }
            else {
                cls0->xposi = +(MJ_SP*mx+sa*i);
            }
        }
    }
    /* モードセレクトの場合 (コナミモード判別に使用) */
    if( sno == 0x300b ) {       /* SPD番号 変更時は要注意 */
        for( i=0; i<5; i++ ) {  /* 項目数  変更時は要注意 */
            if( !EX_OK ) {
                cls0 = SETCLS0( cno+i );
                cls0->yposi = 24;
                if( i == 2 ) {
                    cls0->kind = 0;
                }
            }
        }
    }
    sbit = 0;
}


//==============================================================================
//  選択項目 スライドイン・アウト
//------------------------------------------------------------------------------
//  パラメータ
//      io      :   0(イン)/1(アウト)
//      cno     :   選択項目登録パーツ番号
//      cnt     :   パーツ数(cnoから連続で)
//      pos     :   選択位置番号
//      cur     :   カーソル登録パーツ番号
//      type    :   設定タイプ(0:左→右/1:左→左/2:左→左(VerAll)/3:左右→左右)
//                                            (4:タイプ2 左右版 Option)
//------------------------------------------------------------------------------
//  戻り値     :   0(処理中)/1(処理終了)
//==============================================================================
Uchar MojiSio( Uchar io, Uchar cno, Uchar cnt, Uchar pos, Uchar cur, Uchar type )
{
    sys_w;

    Uchar       i, end, mx, sa, tcnt;
    CLASS0_W    *cls0;

    tcnt = (type<3)?cnt:(type==4)?cnt:cnt/2;    //  パーツ数が偶数の場合用
    sa = ((cnt==8)&&(type==0))? MJ_SA8:MJ_SA;
    if( io == 0 ) { //  スライ

0xD30400#

    {  60,  25, 160,  40, 150,  10,  30,  30, 0x4, (kSt4|kKi1|kDa2|kBr3) },
    { 120,  30, 240,  60,   0,  50,  80,  90, 0x7, (kSt3|kKi2|kDa2|kBr4) },
    {  35, 145,  80,  80, 150,  90, 155,  10, 0xc, (kSt1|kKi1|kDa3|kBr2) },
    {  85,  60, 140,  40, 100, 110,  35,  60, 0xd, (kSt2|kKi2|kDa1|kBr2) },

    {  55, 100, 160,  80,   0,  30, 145, 100, 0x2, (kSt1|kKi2|kDa3|kBr4) }, /* 同内容 8種類 */
    {  55, 100, 160,  80,   0,  30, 145, 100, 0x2, (kSt1|kKi2|kDa3|kBr4) },

    { 115, 180,  80, 100,   0,  70,   5,  20, 0x5, (kSt2|kKi1|kDa2|kBr1) },
    { 115, 180,  80, 100,   0,  70,   5,  20, 0x5, (kSt2|kKi1|kDa2|kBr1) },

    {  20,  35, 240,  40,   0,  80,  15,  70, 0x9, (kSt3|kKi2|kDa3|kBr4) },
    {  20,  35, 240,  40,   0,  80,  15,  70, 0x9, (kSt3|kKi2|kDa3|kBr4) },

    {  40, 220, 120,  20, 100,  90,  65,  50, 0x3, (kSt4|kKi2|kDa2|kBr2) },
    {  40, 220, 120,  20, 100,  90,  65,  50, 0x3, (kSt4|kKi2|kDa2|kBr2) },

    {  95, 150,  40, 140,   0, 110, 120,  90, 0x8, (kSt3|kKi1|kDa1|kBr3) },
    {  95, 150,  40, 140,   0, 110

0xD3B400#

E16,0,0,0x0a,0x0f,1,PRB ); //  BG D
        cls0 = SETCLS0( BG_0 );
        cls0->r = cls0->g = cls0->b = 0;    //  輝度を下げる
        spd = (SPD_W *)cls0->chara;
        spd[21].ccode = DAT;
    //  md_step = MOD_BG_FIN;
        md_step = S_BGM_WAIT;
        break;

    case    S_BGM_WAIT:
#if (BGM_CALL)
        if( SD_status[22] == 1 ) {  /* BGMが鳴り出したら */
            md_step = MOD_BG_FIN;
        }
#else
        md_step = MOD_BG_FIN;
#endif
        break;

    case    MOD_BG_FIN: //  フェードイン
        if( Fade( (4<<4)|0, LOGO, 2 ) ) {
            md_step = MOD_BG_U1;
        }
        break;

    case    MOD_BG_U1:  //  BG(手前)出力 (画面外)
        set2dN( BG_1,0x3006,MODE16,0,0,0x09,0x0e,1,PR6 );   //  BG UU
        cls0 = SETCLS0( BG_1 ); cls0->yposi -= BG_U_MV;
        set2dN( BG_2,0x3007,MODE16,0,0,0x09,0x0e,1,PR6 );   //  BG UD
        cls0 = SETCLS0( BG_2 ); cls0->yposi += BG_U_MV;
        set2dN( BG_3,0x3008,MODE16,0,0,0x09,0x0e,1,PR6 );   //  BG UR
        cls0 = SETCLS0( BG_3 ); cls0->xposi += BG_U_MV;
        set2dN( BG_4,0x3009,MODE16,0,0,0x09,0x0e,1,PR6 );   //  BG UL
        cls0 = SETCLS0( BG_4 ); cls0->xposi -= BG_U_MV;
        md_step = MO

0xD3FA00#

,0),FC(sts,2),FC(sts,3),0x06,PR7 );    //  (tp:6)
        FontSet( FNT2,FC(sts,1),FC(sts,2),FC(sts,4),0x07,PR7 ); //  (tp:7)
        result = 1;
        break;
    case    1:          //  フォントスライドイン
        if( FCON( sts ) ) {
            result |= FontSio( 0,FNT1,FC(sts,2),FC(sts,3),0 ) << 3; //  (tp:6)
            result |= FontSio( 0,FNT2,FC(sts,2),FC(sts,4),1 ) << 4; //  (tp:7)
        //  result |= (sts == LOAD_SELECT)? 0<<5:1<<5;
            result |= 1<<5;
        }
        else {
        //  result |= (1<<3)|(1<<4)|(1<<5);
            result |= (sts==LOAD_SELECT)? (1<<3)|(1<<4):(1<<3)|(1<<4)|(1<<5);
        }
        break;
    case    2:          //  フォントスライドアウト
        if( FCON( sts ) ) {
            result |= FontSio( 1,FNT1,FC(sts,2),FC(sts,3),0 ) << 3; //  (tp:6)
            result |= FontSio( 1,FNT2,FC(sts,2),FC(sts,4),1 ) << 4; //  (tp:7)
        //  result |= (sts == LOAD_SELECT)? 0<<5:1<<5;
            result |= 1<<5;
        }
        else {
        //  result |= (1<<3)|(1<<4)|(1<<5);
            result |= (sts==LOAD_SELECT)? (1<<3)|(1<<4):(1<<3)|(1<<4)|(1<<5);
        }
        break;
    case    3:          //  フォント座標リセット
        FontReset( FNT1,FC(sts,2),FC(sts,3) );  //  (tp:6)
        FontReset( FNT2,FC(sts,2),FC(sts,4) );  //  (tp:7)
        result = 1;
        break;
    }
    return( result );
}


//==============================================================================
//  状態ステータスチェック処理
//==============================================================================
static Uchar NS_CHK( Uchar sts, Uchar pos, short key )
{
    Uchar res = 0;

    switch( sts ) {
    //============
    //  モードセレクト
    //============
    case    MODE_SELECT:
        if( key == P_RRIGHT ) {
            if( pos == 0 ) {            //  マッスルランキング

0xD48A00#

xffb8,0x0f},
    {DAT,0x10,0x40,0xf0,0xc0,0xff40,0xfff8,0x0f},
    {DAT,0x10,0x40,0xf0,0xc0,0xff40,0x0038,0x0f},
    {DAT,0x40,0x08,0xc0,0xf8,0xff50,0x0070,0x0f},
    {DAT,0x40,0x08,0xc0,0xf8,0xff90,0x0070,0x0f},
    {DAT,0x40,0x08,0xc0,0xf8,0xffd0,0x0070,0x0f},
    {DAT,0x40,0x08,0xc0,0xf8,0x0010,0x0070,0x0f},
    {DAT,0x40,0x08,0xc0,0xf8,0x0050,0x0070,0x0f},
    {DAT,0x20,0x08,0xe0,0xf8,0x0090,0x0070,0x0f},
    {DAT,0x10,0x40,0xf0,0xc0,0x00b0,0xfff8,0x0f},
    {DAT,0x10,0x40,0xf0,0xc0,0x00b0,0x0038,0x0f},
    {END,0x10,0x40,0xf0,0xc0,0x00b0,0xffb8,0x0f},
};

SPD_W   bg_uu_spd[]={       //  BG U    上
    {DAT,0x40,0x40,0x00,0x00,0xff40,0xff88,0x0e},
    {DAT,0x40,0x40,0x40,0x00,0xff80,0xff88,0x0e},
    {DAT,0x40,0x40,0x00,0x40,0xffc0,0xff88,0x0e},
    {DAT,0x40,0x40,0x40,0x40,0x0000,0xff88,0x0e},
    {DAT,0x40,0x40,0x80,0x00,0x0040,0xff88,0x0e},
    {END,0x40,0x40,0xc0,0x00,0x0080,0xff88,0x0e},
};

SPD_W   bg_ud_spd[]={       //  BG U    下
    {DAT,0x18,0x18,0x60,0xa0,0xff40,0x0060,0x0e},
    {DAT,0x40,0x18,0x80,0x40,0xff58,0x0060,0x0e},
    {DAT,0x40,0x18,0xc0,0x40,0xff98,0x0060,0x0e},
    {DAT,0x40,0x18,0x80,0x58,0xffd8,0x0060,0x0e},
    {DAT,0x40,0x18,0xc0,0x58,0x0018,0x0060,0x0e},
    {DAT,0x28,0x10,0x30,0xf0,0x0058,0x0068,0x0e},
    {END,0x28,0x10,0x58,0xf0,0x0080,0x0068,0x0e},
};

SPD_W   bg_ur_spd[]={       //  BG U    右
    {DAT,0x18,0x30,0x60,0xb8,0x00a8,0xff98,0x0e},
    {DAT,0x18,0x40,0x18,0x80,0x00a8,0xffc8,0x0e},
    {DAT,0x18,0x40,0x18,0xc0,0x00a8,0x0008,0x0e},
    {END,0x20,0x30,0x30,0x80,0x00a0,0x0048,0x0e},
};

SPD_W   bg_ul_spd[]={       //  BG U    左
    {DAT,0x18,0x20,0x60,0

0xD4CA00#

,
    {DAT,0x10,0x10,0x00,0x40,0xff8c,0x0048,0x03},
    {END,0x10,0x10,0xf0,0x20,0xff98,0x0048,0x03},
};

SPD_W   c_data_spd[]={      //  カーソル
    //  DATA1
    {DAT,0x38,0x10,0x80,0xa0,0xff6c,0xffdc,0x10},
    {DAT,0x10,0x10,0xf0,0xa0,0xffa4,0xffdc,0x10},
    //  DATA2
    {DAT,0x38,0x10,0x80,0xa0,0xff6c,0x0000,0x10},
    {DAT,0x10,0x10,0xf0,0xa0,0xffa4,0x0000,0x10},
    //  DATA3
    {DAT,0x38,0x10,0x80,0xa0,0xff6c,0x0024,0x10},
    {DAT,0x10,0x10,0xf0,0xa0,0xffa4,0x0024,0x10},
    //  DATA4
    {DAT,0x38,0x10,0x80,0xa0,0xff6c,0x0048,0x10},
    {END,0x10,0x10,0xf0,0xa0,0xffa4,0x0048,0x10},
};

SPD_W   t_data1_spd[]={     //  画面タイトル
    //  DATA SELECT
    {DAT,0x18,0x18,0x40,0x00,0xff5c,0xffa4,0x10},
    {DAT,0x18,0x18,0x00,0x00,0xff6d,0xffa4,0x10},
    {DAT,0x18,0x18,0x00,0x48,0xff7e,0xffa4,0x10},
    {DAT,0x18,0x18,0x00,0x00,0xff8e,0xffa4,0x10},
    {DAT,0x10,0x18,0x70,0x30,0xffa8,0xffa4,0x10},
    {DAT,0x10,0x18,0x58,0x00,0xffb8,0xffa4,0x10},
    {DAT,0x10,0x18,0x58,0x18,0xffc8,0xffa4,0x10},
    {DAT,0x10,0x18,0x58,0x00,0xffd8,0xffa4,0x10},
    {DAT,0x18,0x18,0x28,0x00,0xffe4,0xffa4,0x10},
    {END,0x18,0x18,0x00,0x48,0xfff4,0xffa4,0x10},
};

SPD_W   t_data2_spd[]={     //  画面タイトル
    //  データの選択
    {DAT,0x10,0x10,0xf0,0x50,0x0012,0xffa8,0x02},
    {DAT,0x10,0x10,0x90,0x30,0x0020,0xffa8,0x02},
    {DAT,0x10,0x10,0xe0,0x30,0x002e,0xffa8,0x02},
    {DAT,0x10,0x10,0xd0,0x20,0x003c,0xffa8,0x02},
    {DAT,0x10,0x10,0x80,0x00,0x004b,0xffa8,0x02},
    {END,0x10,0x10,0x90,0x00,0x005a,0xffa8,0x02},
};

SPD_W   font02_1_spd[]={    //  フォント(tp:06)
    {DAT,0x10,0x10,0x90,0x80,0xff5e,0xffc2,0x

0xD59E00#

8,0x80,0x000c,0xffe2,0x03},
    //  ストラックアウトⅠ Ver.2 → ストラックアウト Ver.2
    {DAT,0x18,0x00/*0x08*/,0xa0,0x88,0xfff4,0xffe2,0x03},
    {DAT,0x18,0x00/*0x08*/,0xb8,0x88,0x000c,0xffe2,0x03},
    //  ストラックアウトⅠ Ver.3 → ストラックアウト Ver.3
    {DAT,0x18,0x00/*0x08*/,0xa0,0x90,0xfff4,0xffe2,0x03},
    {DAT,0x18,0x00/*0x08*/,0xb8,0x90,0x000c,0xffe2,0x03},
    //  ストラックアウトⅡ → タートル
    {DAT,0x30,0x00/*0x08*/,0x80,0xb0,0xfff4,0xffe2,0x03},
    {END,0x00,0x00/*0x00*/,0x90,0x80,0x0004,0xffdc,0x03},   //  ダミー(xsize:0)
    //  デフォルトは先頭以外 ysize

0xD5DC00#

DAT,0x10,0x20,0x60,0xa0,0x000a,0x0038,0x20},
    {DAT,0x10,0x18,0x70,0xb8,0xfffa,0x0038,0x20},
    {DAT,0x10,0x18,0x60,0xc0,0xffea,0x0038,0x20},
    {DAT,0x08,0x08,0x78,0xd0,0xffe2,0x0050,0x20},
    {DAT,0x08,0x08,0x70,0xd0,0xfffa,0x0050,0x20},
    {DAT,0x08,0x08,0x60,0xd8,0xffea,0x0050,0x20},
    {DAT,0x18,0x08,0x68,0xd8,0xffba,0x0008,0x20},
    {DAT,0x18,0x08,0x68,0x50,0xffba,0x0030,0x20},
    {DAT,0x20,0x18,0x60,0xe0,0xffca,0x0038,0x20},
    {DAT,0x08,0x08,0x78,0xf8,0xffca,0x0000,0x20},
    {DAT,0x08,0x08,0x70,0xf8,0xffc2,0x0028,0x20},
    {DAT,0x08,0x08,0x60,0xf8,0xffc2,0x0018,0x20},
    {DAT,0x08,0x08,0x68,0xf8,0xffc2,0x0020,0x20},
    {DAT,0x10,0x08,0x60,0x78,0xffb2,0x0038,0x20},
    {DAT,0x08,0x18,0x68,0x88,0xffca,0x0018,0x20},
    {END,0x10,0x08,0x70,0x40,0xffc2,0x0010,0x20},
};

//-----------------------------------------------
//      キャラクターセレクト
//-----------------------------------------------
SPD_W   face1_spd[]={       //  キャラ顔(上段)
    {DAT,0x28,0x30,0x00,0x00,(+0x14)+0xff86,0x0002,0x90},   /* 00(1/1) */       /* 9人仕様対応 */
    {DAT,0x

0xD62C00#

x10,0x10,0x50,0x50,0x007b,0x0031,0x03},
    {DAT,0x10,0x10,0x00,0x50,0x0083,0x0031,0x03},
    {DAT,0x10,0x10,0x20,0x40,0x008b,0x0031,0x03},
    //  ブレインパニック
    {DAT,0x10,0x10,0x60,0xa0,0x0035,0x003d,0x03},
    {DAT,0x10,0x10,0x70,0x90,0x0042,0x003d,0x03},
    {DAT,0x10,0x10,0x10,0x80,0x004d,0x003d,0x03},
    {DAT,0x10,0x10,0x00,0xa0,0x0059,0x003d,0x03},
    {DAT,0x10,0x10,0x10,0xa0,0x0065,0x003d,0x03},
    {DAT,0x10,0x10,0x50,0x90,0x0072,0x003d,0x03},
    {DAT,0x10,0x10,0x60,0xb0,0x007d,0x003d,0x03},
    {END,0x10,0x10,0x50,0x80,0x0089,0x003d,0x03},
};

SPD_W   c_exgm_spd[]={      //  カーソル
    //  ストラックアウト
    {DAT,0x70,0x20,0x80,0x80,0xff56,0xffec,0x10},
    {DAT,0x10,0x20,0xf0,0x80,0xffc6,0xffec,0x10},
    //  キックターゲット
    {DAT,0x70,0x20,0x80,0x80,0xff56,0x000e,0x10},
    {DAT,0x10,0x20,0xf0,0x80,0xffc6,0x000e,0x10},
    //  モンスターボックス
    {DAT,0x70,0x20,0x80,0x80,0xff56,0x0030,0x10},
    {DAT,0x10,0x20,0xf0,0x80,0xffc6,0x0030,0x10},
    //  ハスラー
    {DAT,0x70,0x20,0x80,0x80,0x0030,0xffec,0x10},
    {DAT,0x10,0x20,0xf0,0x80,0x00a0,0xffec,0x10},
    //  ダルマ
    

0xD71E00#

 0xff );                           //  プレート設定(spd操作リセット)
        PMarkSet( cno+8+i, 0xff, r_info[type][i].Sousa );   //  プレイヤーマークセット
        JunSet( cno+16+i, 0xff, r_info[type][i].Rank );     //  順位数字セット
        NameSet( cno+24+i, r_info[type][i].Chara, 0xff );   //  選手名セット
        PointSet( cno+32+i, 0, Rsum[type][i] );             //  ポイントセット
        RecordSet( cno+32+i, 0xff, i );                     //  競技ランキング成績設定(spd操作リセット)
    }
    rbit = 0;
}


//==============================================================================
//  ランキング スライドイン・アウト
//----

0xD77600#

===========================================
//  トータルランキング演出 落下/拡縮/フラッシュ
//------------------------------------------------------------------------------
//  パラメータ
//      cno     :   登録パーツ番号(先頭 ~8人分固定)
//------------------------------------------------------------------------------
//  戻り値     :   0(処理中)/1(処理終了)
//==============================================================================
Uchar FallFL( Uchar cno )
{
    sys_w;

    Uchar       i, n;
    Ushort      rnum;
    CLASS0_W    *cls0;
    SPD_W

0xD7CC00#

00;
        }
        else {
            spd[24].xsize = 0x08;
            spd[25].xsize = 0x08;
            spd[26].xsize = 0x08;
            spd[27].xsize = u_wk[0]-0x18;

            spd[28].xsize = 0x08;
            spd[29].xsize = 0x08;
            spd[30].xsize = 0x08;
            spd[31].xsize = u_wk[0]-0x18;
        }
        if( u_wk[0] == PH3_4 ) {
            u_wk[0] = 0;
            u_wk[1]++;
        }
        else {
            spd[23].ccode = DAT;
            spd[31].ccode = END;
        }
        break;
    case    4:  //  フェーズ4
        u_wk[0]++;
        if( u_wk[0] <= 0x08 ) {
            spd[32].ysize    = u_wk[0];
            spd[33].ysize    = 0x00;
            spd[34].ysize    = 0x00;
            spd[35].ysize    = 0x00;
            spd[36].ysize    = 0x00;

            spd[37].ysize    = 0x00;
            spd[38].ysize    = 0x00;
            spd[39].ysize    = 0x00;
            spd[40].ysize    = 0x00;
            spd[41].ysize    = u_wk[0];
            spd[41].offset_y = (0x0028+0x08)-u_wk[0];
        }
        else if( u_wk[0] <= 0x10 ) {
            spd[32].ysize    = 0x08;
            spd[33].ysize    = u_wk[0]-0x08;
            spd[34].ysize    = 0x00;
            spd[35].ysize    = 0x00;
            spd[36].ysize    = 0x00;

            spd[37].ysize    = 0x00;
            spd[

0xD85C00#

o+4 ); cls0->kind = 0;
        return;
    }
    else {
        spd[0].ccode = DAT;      spd[0].ysize = 0x00;
        cls0 = SETCLS0( cno );   cls0->kind = 1;
        cls0 = SETCLS0( cno+4 ); cls0->kind = 1;
    }

    /* 選手名 */
    NameSet( cno, PNO(lno), 0xff );

    /* モード/競技名 */
    cls0 = SETCLS0( cno+4 );
    spd = (SPD_W *)cls0->chara;
    for( i=0; i<6; i++ ) {  /* モード名 */
        for( n=0; n<mdTop[1][i]; n++ ) {
            spd[ mdTop[0][i]+n ].ysize = (i==MDK(lno))? 0x08:0x00;
        }
    }
    for( i=0; i<8; i++ ) {  /* 競技名 */
        for( n=0; n<gmTop[1][i]; n++ ) {
            spd[ gmTop[0][i]+n ].ysize = (i==GMK(lno))? 0x08:0x00;
        }
    }

    /* データ情報 */
    cls0 = SETCLS0( cno+8 );
    spd = (SPD_W *)cls0->chara;
    for( i=0; i<8; i++ ) {  /* データ情報 */
        for( n=0; n<dtTop[1][i]; n++ ) {
            spd[ dtTop[0][i]+n ].ysize = (i==GMK(lno))? 0x10:0x00;
        }

        if( i == GMK(lno) ) {   /* 該当競技記録セット */
            switch( i ) {
            case    0:  /* ストラックアウト  */
            case    1:  /* キックターゲット */
                spd[ dtTop[0][i] ].ysize = 0x10;
                spd[ dtTop[0][i] ].u     = 0x10*REC(lno);

0xD9DC00#

ss[tno].cur, 0x20 );
                wkt = 0xff;
            }
            else {
                rk_step = 10;
                wkt = 0;
            }
        }
        else {
            if( wopen == 0 ) {
                SD_call( SD_WINDOW );
                wopen = 1;
            }
            if( wkt == 0xff ) {
                rk_step = 12;
            }
        }
        break;
    case    12:
        /*  確認待ち/接続チェック */
        SetWIN( S_WIN, 0x4091, 0xff, mess[tno].wc, mess[tno].hc, 0x20 );
        pos = MCurPos( MSG_C );

        if( (JOYTRG0&P_RRIGHT) && (pos!=0xff) ) {   /*  ○ボタン押下時処理  */
            switch( msg ) {
                /*  OKタイプ  */
            case    MES_NOFILE2:    /*  (OK) データなし     */
            case    MES_FORMAT2:    /*  (OK) 未フォーマット        */
            case    MES_SVEND:      /*  (----) セーブ完了       */
            case    MES_LDEND:      /*  (----) ロード完了       */
                mcWaitResult( RES_OK );
                rk_step = 20;
                wkt = 2;
                next = 0xff;
                break;
                /*  Yes/Noタイプ  */
            case    MES_OVERWRT:    /*  (確認) 上書き        */
            case    MES_NOFILE1:    /*  (確認) データなしセーブ */
            case    MES_FORMAT1:    /*  (確認) 未フォーマット        */
            case    MES_FMEND:      /*  (確認) フォーマット完了   */
            case    MES_LDYN:       /*  (確認) ロード           */
                if( pos ) {
                    

0xDA8600#

文字 */
    /* SET UP */
    {DAT,0x10,0x10,0x20,0x60,0xff98,0x0018,0x03},
    {DAT,0x10,0x10,0x40,0x40,0xffa2,0x0018,0x03},
    {DAT,0x10,0x10,0x30,0x60,0xffae,0x0018,0x03},
    {DAT,0x10,0x10,0x40,0x60,0xffbf,0x0018,0x03},
    {DAT,0x10,0x10,0x70,0x50,0xffc9,0x0018,0x03},
    /* 設定 */
    {DAT,0x10,0x10,0x80,0x70,0xff9a,0x0026,0x03},
    {END,0x10,0x10,0x90,0x70,0xffa9,0x0026,0x03},
};

SPD_W   opt_repl_spd[]={    /* 文字 */
    /* REPLAY */
    {DAT,0x10,0x10,0x10,0x60,0xff98,0x003c,0x03},
    {DAT,0x10,0x10,0x40,0x40,0xffa2,0x

0xDAEE00#

0x08,0xa0,0x10,0xffb9,0x000c,0x03},
    {DAT,0x08,0x08,0xa0,0x10,0xffc1,0x000c,0x03},
    {DAT,0x08,0x08,0x88,0xc8,0xffcd,0x000c,0x03},
    {DAT,0x08,0x08,0xa8,0x08,0xffd6,0x000c,0x03},
    {DAT,0x08,0x08,0xa8,0x00,0xffde,0x000c,0x03},
    {DAT,0x08,0x08,0xa8,0x00,0xffe6,0x000c,0x03},
    {DAT,0x08,0x08,0xa0,0x10,0xffee,0x000c,0x03},
    {DAT,0x08,0x08,0xa0,0x20,0xfff6,0x000c,0x03},
    {DAT,0x08,0x08,0xa0,0x00,0xfffe,0x000c,0x03},
    /* TEAM2 BATTLES */
    {DAT,0x08,0x08,0xa8,0x00,0xffb1,0x000c,0x03},
    {DAT,0x08,0x08,0xa0,

0xDB5200#

0x00,0x80,0x0025,0x004e,0x05}, /*           一位(m)  */
    {DAT,0x10,0x10,0x00,0x80,0x003a,0x004e,0x05},   /*           十位(cm) */
    {DAT,0x10,0x10,0x00,0x80,0x0043,0x004e,0x05},   /*           一位(cm) */
    {DAT,0x38,0x10,0x00,0xe0,0x002e,0x004e,0x05},   /*  mcm             */
    /* THE TUG-OF-WAR */
    {DAT,0x30,0x10,0x80,0x90,0x001d,0x004e,0x05},   /*  1回戦(2:y+0x10/決:y+0x20)  */
    /* HUSTLER */
    {DAT,0x10,0x10,0x00,0x80,0x001c,0x004e,0x05},   /*  記録数字    */
    {DAT,0x28,0x10,0x00,0xf0,0x002a,0x004e,0x05},   /*  テーブル       */
    /* DARUMA */
    {DAT,0x10,0x10,0x00,0x80,0x001c,0x004e,0x05},   /*  記録数字    */
    {DAT,0x10,0x10,0x10,0xc0,0x002a,0x004e,0x05},   /*  段           */
    /* BRAIN PANIC */
    {DAT,0x10,0x10,0x00,0x80,0x001c,0x004e,0x05},   /*  記録数字    */
    {END,0x30,0x10,0x00,0xd0,0x0026,0x004e,0x05},   /*  ステージ       */
};

SPD_W   rpdt1_spd[]={       /*  DATA1 */
    {DAT,0x10,0x10,0x30,0x40,0xff70,0xffdc,0x03},
    {DAT,0x10,0x10,0x00,0x40,0xff7a,0xffdc,0x03},
    {DAT,0x10,0x10,0x30,0x60,0xff85,0xffdc,0x03},
    {DAT,0x10,0x10,0x00,0x40,0xff8e,0xffdc,0x03},
    {END,0x10,0x10,0xc0,0x20,0xff9a,0xffdc,0x03},
};

SPD_W   rpdt2_spd[]={       /*  DATA2 */
    {DAT,0x10,0x10,0x30,0x40,0xff70,0x0000,0x03},
    {DAT,0x10,0x10,0x00,0x40,0xff7a,0x0000,0x03},
    {DAT,0x10,0x10,0x30,0x60,0xff85,0x0000,0x03},
    {DAT,0x10,0x10,0x00,0x40,0xff8e,0x0000,0x03},
    {END,0x10,0x10,0xd0,0x20,0xff9a,0x0000,0x03},
};

SPD_W   rpdt3_spd[]={       /*  DATA3 */
    {DAT,0x10,0x10,0x30,0x40,0xff70,0x0024,0x03},
    {DAT,0x10,0x10,0x00,0x40,0xff7a,0x0024,0x03},
    {DAT,0x10,0x10,0x30,0x60,0xff85,0x0024,0x03},
    {DAT,0x10,0x10

0xDC3E00#

------------------------------------------*/
/*  セーブ/ロード時のデータ情報取得                                                 */
/*------------------------------------------------------------------------------*/
/*  パラメータ                                                                      */
/*      dat     :   データバッファ                                                   */
/*      ofs     :   データオフセット                                                   */
/*      siz     :   データサイズ                                                    */
/*      max     :   データサイズMAX値 (新規作成時用に取得しておく)                    */
/*      typ     :   データタイプ (データセット時の判断に使用 本当は嫌なんだけど...)  */
/*-----------------------------------------------------------

0xDCAC00#

fd2,0x0008,0x2a},
    {DAT,0x10,0x10,0xd0,0x40,0xffe0,0x0008,0x2a},
    {DAT,0x10,0x10,0x30,0x30,0xffee,0x0008,0x2a},
    {DAT,0x10,0x10,0x10,0x00,0xfffc,0x0008,0x2a},
    {DAT,0x10,0x10,0x50,0x00,0x000a,0x0008,0x2a},
    {DAT,0x10,0x10,0x30,0x20,0x0018,0x0008,0x2a},
    {DAT,0x10,0x10,0x90,0x30,0x0026,0x0008,0x2a},
    {DAT,0x10,0x10,0xe0,0xc0,0xffc0,0x0020,0x2a},
    {DAT,0x10,0x10,0xa0,0xc0,0xffce,0x0020,0x2a},
    {DAT,0x10,0x10,0x10,0x90,0x0007,0x0020,0x2a},
    {DAT,0x10,0x10,0xd0,0x90,0x0016,0x0020,0x2a},
    {DAT,0x10,0x10,0xd0,0xa0,0x0025,0x0020,0x2a},
    {END,0x10,0x10,0x20,0x70,0x0034,0x0020,0x2a},
};
SPD_W   warn062_spd[]={
    {DAT,0x10,0x10,0x40,0x50,0xff9f,0xfff8,0x2a},
    {DAT,0x10,0x10,0x50,0x50,0xffae,0xfff8,0x2a},
    {DAT,0x10,0x10,0x60,0x50,0xffbd,0xfff8,0x2a},
    {DAT,0x10,0x10,0x40,0x70,0x0012,0xfff8,0x2a},
    {DAT,0x10,0x10,0x40,0x70,0x002e,0xfff8,0x2a},
    {DAT,0x10,0x10,0x40,0x50,0xffc3,0x0008,0x2a},
    {DAT,0x10,0x10,0xb0,0x10,0x0058,0xfff8,0x2a},
    {DAT,0x10,0x10,0xc0,0x10,0x0034,0x0008,0x2a},
    {END,0x10,0x10,0x

0xDCE400#

d5,0xffd0,0x2a},
    {DAT,0x10,0x10,0x20,0x80,0xffe3,0xffd0,0x2a},
    {DAT,0x10,0x10,0x80,0x80,0xfff1,0xffd0,0x2a},
    {DAT,0x10,0x10,0xe0,0x70,0xffff,0xffd0,0x2a},
    {DAT,0x10,0x10,0x60,0x80,0x000d,0xffd0,0x2a},
    {DAT,0x10,0x10,0xb0,0xa0,0x001b,0xffd0,0x2a},
    {DAT,0x10,0x10,0x10,0x80,0x0037,0xffd0,0x2a},
    {DAT,0x10,0x10,0xc0,0xa0,0x0045,0xffd0,0x2a},
    {DAT,0x10,0x10,0x90,0x90,0x0053,0xffd0,0x2a},
    {DAT,0x10,0x10,0x40,0x70,0xffad,0xffe0,0x2a},
    {DAT,0x10,0x10,0x90,0x90,0xffbb,0xffe0,0x2a},
    {DAT,0x10,0x10,0x40,0x90,0xffc9,0xffe0,0x2a},
    {DAT,0x10,0x10,0x90,0x80,0xffd7,0xffe0,0x2a},
    {DAT,0x10,0x10,0x50,0x80,0xfff3,0xffe0,0x2a},
    {DAT,0x10,0x10,0x70,0x30,0x0001,0xffe0,0x2a},
    {DAT,0x10,0x10,0x20,0x20,0x002e,0xffe0,0x2a},
    {DAT,0x10,0x10,0x70,0x20,0x003c,0xffe0,0x2a},
    {DAT,0x10,0x10,0x40,0x60,0xff92,0xfff8,0x2a},
    {DAT,0x10,0x10,0xc0,0x80,0xffa2,0xfff8,0x2a},
    {DAT,0x10,0x10,0x10,0x80,0xffb2,0xfff8,0x2a},
    {DAT,0x10,0x10,0xc0,0xa0,0xffc2,0xfff8,0x2a},
    {DAT,0x10,0x10,0x90,0x90,0xffd2,0xfff8,0x2a},

0xDD2600#

-----------------------------------+ */

    /* ------------------------------------------------------------ */
    /* コントローラが差し替えられたり、端末種別が切り替えられ              */
    /* たりしてライブラリがコントローラ情報をアクセスしに行ったとき */
    /* アクチュエータの設定位置情報送信済みフラグをクリアする              */
    /* ------------------------------------------------------------ */
    if(initlevel == PadStateFindPad) ctrl->Send = 0;

    /* ---------------------------------------------------- */
    /* アクチュエー

0xDD8C00#


/*髪 4タイプ/32color*/
short hair_pal_v[][2] = {   /*size w=32,h=1 髪色*/
    { EPV_P1_X+0x80, EPV_P1_Y },        /*黒色*/
    { EPV_P1_X+0xa0, EPV_P1_Y },        /*茶色*/
    { EPV_P1_X+0xc0, EPV_P1_Y },        /*金色*/
    { EPV_P1_X+0xe0, EPV_P1_Y },        /*赤色*/
};

/*アンチ 16タイプ/16collor*/
short anti_pal_v[][2] = {   /*size w=16,h=1 肌色*4+髪色*/
    { EPV_P2_X+0x00, EPV_P2_Y },        /*黄黒*/
    { EPV_P2_X+0x10, EPV_P2_Y },        /*黄茶*/
    { EPV_P2_X+0x20, EPV_P2_Y },        /*黄金*/
    { EPV_P2_X+0x30, EPV_P2_Y },        /*黄赤*/
    { EPV_P2_X+0x40, EPV_P2_Y },        /*白黒*/
    { EPV_P2_X+0x50, EPV_P2_Y },        /*白茶*/
    { EPV_P2_X+0x60, EPV_P2_Y },        /*白金*/
    { EPV_P2_X+0x70, EPV_P2_Y },        /*白赤*/
    { EPV_P2_X+0x80, EPV_P2_Y },        /*褐黒*/
    { EPV_P2_X+0x90, EPV_P2_Y },        /*褐茶*/
    { EPV_P2_X+0xa0, EPV_P2_Y },        /*褐金*/
    { EPV_P2_X+0xb0, EPV_P2_Y },        /*褐赤*/
    { EPV_P2_X+0xc0, EPV_P2_Y },        /*黒黒*/
    { EPV_P2_X+0xd0, EPV_P2_Y },        /*黒茶*/
    { EPV_P2_X+0xe0, EPV_P2_Y },        /*黒金*/
    { EPV_P2_X+0xf0, EPV_P2_Y },        /*黒赤*/
};

/*肌1    4タイプ/32color*

0xDDCA00#

ear2*/
        { -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*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*no21*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*_21s*/
        { -1, -1, -1, -1, -1, -1, -1, -1 }, /*rogo*/
    },
/*#R*/
    {
        -1,-1,-1,
        { WEARCOL_BK, WEARCOL_WT, WEARCOL_RD, WEARCOL_BL, WEARCOL_YL, WEARCOL_GR, WEARCOL_PP, WEARCOL_OG }, /*wear1*/
        { WEARCOL_OG, WEARCOL_BK, WEARCOL_WT, WEARCOL_WT, WEARCOL_WT, WEARCOL_WT, WEARCOL_BK, WEARCOL_WT }, /*wear2*/
        { WEARCOL_OG, WEARCOL_BK, WEARCOL_BK, WEARCOL_RD, WEARCOL_GR, WEARCOL_BK, WEARCOL_BK, WEARCOL_BL }, /*wear3*/
        { WEARCOL_BK, WEARCOL_BK, WEARCOL_BK, WEARCOL_BK, WEARCOL_BK, WEARCOL_BK, WEARCOL_BK, WEARCOL_BK }, /*weard1*/
        { WEARCOL_BK, WEARCOL_WT, WEARCOL_RD, WEARCOL_BL, WEARCOL_YL, WEARCOL_GR, WEARCOL_PP, WEARCOL_OG }, /*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_WT, 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_WT, WEARCOL_WT, WEARCOL_WT, WEARCOL_WT }, /*rogo*/
    },
/*#S*/
    {
        -1,SKINCOL_BK,-1,

0xDE1E00#

======
//1999.01.18    中山
//BG表示関連
//===================================================================*/
#define     BG_INF_MAX  4       /*BGハンドラの最大数(同時に表示できるBG面の最大数)*/



/*===================================================================*/
/*  Macro define                                                                                                         */
/*===================================================================*/
#define sys_w       register    SYS_W       *s=&sys
#define sys0_w  register    SYS0_W  *s0=&sys0
#define sp_w        register    SP_W        *sp=&s

0xDE3E00#

d;

/*1999.04.14    深野*/
    OBJ3D_W                 obj3D_w [ 1 ];

    MATRIX              ls;                                     /*  ローカルスクリーンマトリクス  */

                                                                            /* Free Work */
    Uchar                   step0;
    Uchar                   step1;
    Uchar                   step2;
    Uchar                   pclip;          /* OFF:表示 ON:非表示 */
    short                   time0;
    short                   time1;
    short                   time2;
    short                   work0;
    short                   work1;
    short                   work2;
    short                   work3;
    short                   work4;
    short                   work5;
    short                   work6;

} CLASS1_W;


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

0xDE8200#

データ送信位置設定関数コール済みフラグ */
    unsigned char Send;
} ACTU_CTRL;

/******************************************************************************
    振動コントロール
    1P 2P 二つ分のみ
******************************************************************************/
typedef struct {
    ACTU_CTRL ActuCtrl;
    SHOCK_INFO ShockInfo;
    short timer[2];
    char used[2];
    char dcnt[2];
} SCK_W;


/*--------------------------------------------------------------------------*/
/*                  Player's work                                                                                                       */
/*--------------------------------------------------------------------------*/
typedef struct  _PLAY_NAME {                    /* キャラクタの名前他プロふぃーる管理*/
    Schar       name[16];                                       /* 名前 */
    Uchar       age;                                                /* 年齢 */
    Uchar       job;                                                /* 職業 */
    Uchar       modelType;                                  /* 表示モデル(のインデックス) */
                                                                            /* 性別は表示モデルから判定する */
    Uchar       dummy;
    Ulong       param;                                          /* 能力パラメータ */
                                                                            /* 1バイトで2値もてば8個 */
} PLAY_NAME;

typedef struct  _EVENT_RANK {                   /* 各競技の記録保持者*/
    Schar       playerIndex;                                /* 名前へのインデックス */
    Uchar       dummy[3];
    Ulong       record;                                         /* 記録 */
} EVENT_RANK;

typedef struct  _POINT_RANK {                   /* 総合戦でのポイントランキング*/
    Schar       playerIndex;                                /* 名前へのインデックス */
    Uchar       dummy;
    Ushort  point;                                          /* ポイント */
} POINT_RANK;

typedef struct _S_PLAY {                            /* 個人ランキング戦用*/
    Schar       playerIndex;                                /* 名前へのイン

0xDF0200#

[追加 OPD_ANM
    1999/01/11  松尾  アニメの停止モード追加。半透明モードの内容変更。
    1999/01/06  松尾  OPD表示テスト用
*************************************************************************/

#define OPD_MAX     (512)
#define ANM_MAX     (512)

#define AN_NONE     0x00        /*デフォルト値                            */
#define AN_END      0x01        /*終了フラグON                       */
#define AN_STOP     0x02        /*終了時停止フラグON                    */
#define AN_COL      0x04        /*パレット番号(パターン+アニメ)モード   */
#define AN_SEMI     0x08        /*透明フラグON                       */
#define AN_FREEZ    0x40        /*アニメの停止                            */

#define AN_RATE0    0x00        /*半透明モード:0.5 x Back + 0.5  x Forward */
#define AN_RATE1    0x10        /*                      :1.0 x Back + 1.0  x Forward */
#define AN_RATE2    0x20        /*                      :1.0 x Back - 1.0  x Forward */
#define AN_RATE3    0x30        /*                      :1.0 x Back + 0.25 x Forward */
/* 詳しくは GetTPage() の解説参照*/

/************************/
/*パターン実データ構造体*/
/************************/
typedef struct {
        short   px,py;                      /*左上X,Y座標                           */
        Uchar   csr,uv;                     /*CSR番号,UV(上位4bitV,下位4bitU) */
        Uchar   pw,ph;                      /*幅,高さ                              */
        Uchar   col,hv;                     /*予備用                               */
} OPD_PATTERN_HEADER;

/************************/
/*アニメ実データ構造体    */
/************************/
typedef struct _OPD_ANM_W {
        short   ptn;                            /*パターン番号                        */
        short   time;                           /*表示時間                              */
} OPD_ANM_W;

/****************************/
/*アニメ管理パラメータ構造体*/
/****************************/
typedef struct{
    Ushort  anm;                        

0xE7B400#

45,                                /*「これはすごい!」*/
    AS_G47,                             /*「日本一!」*/
    AS_G49,                             /*「お見事でした!」*/
    AS_G57,                             /*「どうだ!宣言通り! 」*/
    AS_G58,                             /*「どうだ!宣言通り! 」バリエーション*/

/*2枚抜き*/
    AS_G40,                             /*「2枚抜きー!」*/
    AS_G40B,                            /*「2枚抜きー!」バリエーション*/
    AS_G38,                             /*「2枚抜きだー!」*/
    AS_G38B,                            /*「2枚抜きだー!」バリエーション*/
    AS_G37,                             /*「すごいぞ2枚抜きー!」*/
    AS_G37B,                            /*「すごいぞ2枚抜きー!」バリエーション*/
    AS_G35,                             /*「いった!2枚抜きー!」*/
    AS_G36,                             /*「いった!2枚抜きー!」バリエーション*/
    AS_G34,                             /*「抜いた!2枚抜き!」*/
    AS_G34B,                            /*「抜いた!2枚抜き!」バリエーション*/
    AS_G32,                             /*「やった!2枚抜きだー!」*/
    AS_G28,                             /*「見事2枚抜きー!」*/
    AS_G29,                             /*「見事に射抜いていったー!」*/
    AS_G24,                             /*「お-っと、出た!2枚抜き。2枚抜きが出た-!」*/
    AS_G25,                             /*「お-っと、出た!2枚抜き。2枚抜きが出た-!」バリエーション*/
    AS

0xE88600#

I」*/
   FM_C06,                             /*「挑戦者とともに成長を続けるという天井知らずのプレッシャーを与えてきます!」*/
   FM_C07,                             /*「世界中の挑戦者たちに底知れぬ恐怖を与え続けてきたその雄姿はいまだ健在であります!」*/

   FM_C08,                             /*「そして今日も命知らずの猛者たちが挑みます!」*/
   FM_C09,                             /*「その巨大な難関こそ、モンスターボックスであります!」*/
   FM_C10,                             /*「さあ、そして今また新たな挑戦者とともに不動の存在感を際立たせます」*/
};

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

0xE90200#

滑走路。その滑走路を進んでいきます」バリエーション*/
    AM_G11,                             /*「さぁ筋肉の神風が行きます!」*/
    AM_G11B,                            /*「この男の動きに、誰もが注目しています!」*/
    AM_G11H,                            /*「さぁ筋肉の神風が行きます!」バリエーション*/
    AM_G12,                             /*「モンスターボックスの向こう側、その楽園を目指して」*/
/*跳躍時*/
    AM_H00,                             /*「いったか!」*/
    AM_H01,                             /*「さぁ行きます。どうだ!」*/
    AM_H02,                             /*「さぁどうだ!」*/
    AM_H02B,                            /*「さぁどうでしょう!」*/
    AM_H03,                             /*「人類の限界に!」*/
    AM_H04,                             /*「雲に向かって!」*/
    AM_H05,                             /*「さぁ、踏み出す!」*/
};
/*============================================================
==成否判定
============================================================*/
enum {
/*成功*/
    AS_G93 = (AM_H05+1),    /*「決めたーっ!」*/
    AS_G92B,                            /*「いったーっ!」*/
    AD_H14,                             /*「やったー!きめたー!」*/
    AM_I00,                             /*「とんだー!」*/
    AM_I00B,                            /*「とんだー!」バリエーション*/
/*失敗*/
    AS_H09,                             /*「(*球)失敗!」*/
    AS_H10,                             /*「(*球)失敗です!」*/
    AS_H17,                             /*「駄目だー!」*/
    AS_H17B,                            /*「駄目だー!」バリエーション*/
    AM_I01,                             /*「乗ってしまった!」*/
    AM_I02,                             /*「衝突ー!」*/
    AM_I02B,                            /*「真正面からぶつかった!」*/
    AM_I02C,                            /*「おおっと!激突!」*/
    AM_I02D,                            /*「衝突ー!」バリエーション*/
/*微妙な判定*/
    AM_K00,                             /*「微妙なところでしたが」*/
    AM_K00C,                            /*「これはどうでしょう? 微妙なところです」*/
    AM_K04,                             /*「かなり微妙

0xEAC400#

0A = (AH_E08+1),   /*「(さあ)、(第3テーブルを)」*/
    /*共通 しも*/
    AH_F00B,                            /*「選びました」*/

    AH_F01,                             /*「ここからが勝負です」*/
    AH_F02,                             /*「難しくなってきました」*/
    AH_F03,                             /*「さあここからです」*/
    AH_F04,                             /*「この位置から狙っていくようです」*/
    AH_F05,                             /*「パーフェクトまであとわずか」*/
    AH_F06B,                            /*「さあいよいよファイナルテーブルです、パーフェクトなるでしょうか」*/
    AH_F07,                             /*「集中力を高めています」*/
    AH_F07Z,                            /*「コンセントレーションが高まってきました」*/
    AH_F08,                             /*「集中しています」*/
    AH_F08Z,                            /*「さぁ、集中」*/
};
/*============================================================
==ショット後
============================================================*/
enum {
/*ショット直後*/
    AH_I00 = (AH_F08Z+1),   /*「さぁ、決まるか!」*/
    AH_I00B,                            /*「(選手名!)自信たっぷり!」*/
    AH_I00C,                            /*「(選手名!)自信たっぷり!」バリエーション*/
    AH_I00D,                            /*「いきました」*/
    AH_I00E,                            /*「さぁ、

0xEC6600#

///////////////////////////////////////////
/*************************************************************
アナウンサー:進藤
*************************************************************/
/*============================================================
==競技説明
============================================================*/
enum {
   SA_A20 = (FG_P90CM+1),/*「挑戦距離は10mからです。競技前に自分で挑戦距離を申告して下さい」*/
   SA_A21,                             /*「距離の申告は3回です。その3回のうちにできるだけ距離を

0xEE5600#

YN) || (msg == MES_NOWLD) ) {
            SetMsg( 0, MSG_1, mess[tno].sno, mess[tno].cur, 0 );
            fst = 0;
        }
        if( msg > MES_NON ) {
            tno = msg & 0xf;
            op_step = 11;
        }
        else if( msg == MES_NOWLD ) {
            op_step = 21;
        }
        else if( msg == MES_LDYN ) {
            tno = 0x14;
            op_step = 11;
        }
        if( blk || fst ) {
            SetMsg( 1, MSG_1, mess[tno].sno, mess[tno].cur, 0 );
            if( blk ) {
                blk = 0;
            }
        }
        break;
    case    11:
        /*  ウィンドウ処理中   */
        if( SetWIN( S_WIN, 0x308f, wkt, mess[tno].wc,

0xF0A200#

    AS_G20B,                            /*「(*枚目!)決めたー!」バリエーション*/
    AS_G19,                             /*「最高のスタートを切っています(選手名!)」(3枚連続)*/
    AS_G19B,                            /*「最高のスタートを切っています(選手名!)」(3枚連続)バリエーション*/
    AS_G18,                             /*「さぁ、これで合計(*枚!)」*/
    AS_G18B,                            /*「これで合計(*枚!)」*/
    AS_G17,                             /*「これで、(*枚!)」*/
    AS_G17B,                            /*「これで、(*枚!)」バリエーション*/
    AS_G15,                             /*「いいぞ、(選手名!) 」*/
    AS_G16,                             /*「いいぞ、(選手名!) 」バリエーション*/

/*宣言どおり*/
    AS_G67,                             /*「宣言通り!」*/
    AS_G65,                             /*「狙った通り!」*/
    AS_G66,                             /*「狙った通り!」バリエーション*/
    AS_G63,                             /*「宣言通り!鮮やか!」*/
    AS_G60,                             /*「宣言通り! 」*/
    AS_G59,                             /*「(*番、)宣言通り!」*/
    AS_G54,                             /*「宣言通りです! 」*/
    AS_G54B,                            /*「宣言通りです! 」バリエーション*/
    AS_G26,                             /*「宣言通り抜いて行ったぁ!」*/
    AS_G45,                             /*「これはすごい!」*/
    AS_G47,                             /*「日本一!」*/
    AS_G49,                             /*「お見事でした!」*/
    AS_G57,                             /*「どうだ!宣言通り! 」*/
    AS_G58,                             /*「どうだ!宣言通り! 」バリエーション*/

/*2枚抜き*/
    AS_G40,                             /*「2枚抜きー!」*/
    AS_G40B,                            /*「2枚抜きー!」バリエーション*/
    AS_G38,                             /*「2枚抜きだー!」*/
    AS_G38B,                            /*「2枚抜きだー!」バリエーション*/
    AS_G37,                             /*「すごいぞ2枚抜きー!」*/
    AS_G37B,                            /*「すごいぞ2枚抜きー!」バリエーション*/
    AS_G35,                             /*「いった!2枚抜きー!」*/
    AS_G36,                     

0x11C8E00#

0; .val    5;  .scl    8;  .type   0xc;    .endef
    .def    clut;   .val    6;  .scl    8;  .type   0xd;    .endef
    .def    tu1;    .val    8;  .scl    8;  .type   0xc;    .endef
    .def    tv1;    .val    9;  .scl    8;  .type   0xc;    .endef
    .def    tpage;  .val    10; .scl    8;  .type   0xd;    .endef
    .def    tu2;    .val    12; .scl    8;  .type   0xc;    .endef
    .def    tv2;    .val    13; .scl    8;  .type   0xc;    .endef
    .def    p0; .val    14; .scl    8;  .type   0xd;    .endef
    .def    r0; .val    16; .scl    8;  .type   0xc;    .endef
    .def    g0; .val    17; .scl    8;  .type   0xc;    .endef
    .def    b0; .val    18; .scl    8;  .type   0xc;    .endef
    .def    p1

0x1217400#

9
LM64:

    .loc    1 309
LM65:
    .ent    SD_sfx10_vol
SD_sfx10_vol:
    .frame  $sp,24,$31      # vars= 0, regs= 1/0, args= 16, extra= 0
    .mask   0x80000000,-8
    .fmask  0x00000000,0
    .def    i;  .val    4;  .scl    17; .type   0x3;    .endef
    subu    $sp,$sp,24

    .loc    1 310
LM66:
    lui $2,%hi(sfx_vol+2) # high

    .loc    1 311
LM67:
    lui $3,%hi(s_attr1) # high

    .loc    1 310
LM68:
    sh  $4,%lo(sfx_vol+2)($2)

    .loc    1 311
LM69:
    li  $2,8388608          # 0x00800000
    sw  $2,%lo(s_attr1)($3)
    addiu   $3,$3,%lo(s_attr1) # low

    .loc    1 312
LM70:
    li  $2,3            # 0x00000003

    .loc    1 309
LM71:
    sw  $31,16($sp)

    .loc    1 312
LM72:
    sw  $2,4($3)

    .loc    1 313
LM73:
    lui $2,%hi(spuvol) # high
    addiu   $2,$2,%lo(spuvol) # low
    sll $4,$4,16
    sra $4,$4,15
    addu    $4,$4,$2
    lhu $2,0($4)
    #nop
    sll $2,$2,7
    sh  $2,8($3)

    .loc    1 314
LM74:
    lhu $2,0($4)

    .loc    1 315
LM75:
    move    $4,$3

    .loc    1 314
LM76:
    sll $2,$2,7

    .loc    1 315
LM77:
    .set    noreorder
    .set    nomacro
    jal SpuSetVoiceAttr
    sh  $2,10($3)
    .set    macro
    .set    reorde

0x1293600#

ト
                cls0 = SETCLS0( cno+i );
                if( cls0->xposi > OUTPL ) {
                    cls0->xposi -= MJ_SP;
                    /* スライド音コールチェック */
                    if( (sbit&(1<<i)) == 0 ) {
                        sbit |= (1<<i);
                        SD_call( SD_SLIDEOUT );
                    }
                }
                else {
                    /* 見えなくなったら表示OFF */
                    PartsOFF( cno+i );
                    if( ++end == tcnt ) {
                        return( 1 );
                    }
                }
                //  選択位置でカーソル移動
                if( i == pos ) {
                    cls0 = SETCLS0( cur );
                    cls0->xposi -= MJ_SP;
                }
            }
            else if( type == 2 ) {      //  

0x1294E00#

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     :   ワークテーブル番号
//-------------------------------------------

0x129E400#

AA4  CD_status
 80022AA8  CD_status1
 80022AAC  CD_nopen
 80022AB0  CD_pos
 80022AB4  CD_mode
 80022AB5  CD_com
 80022AB8  DS_active
 80022ABC  CD_comstr
 80022B3C  CD_intstr
 80022E10  Hcount
 80023F40  Vcount
 80023F90  _snd_vmask
 80023FC0  _snd_seq_tick_env
 80024118  _spu_EVdma
 8002411C  _spu_keystat
 80024120  _spu_trans_mode
 80024124  _spu_rev_flag
 80024128  _spu_rev_reserve_wa
 8002412C  _spu_rev_offsetaddr
 80024130  _spu_rev_attr
 80024144  _spu_RQvoice
 80024148  _spu_RQmask
 8002414C  _spu_voice_centerNote
 8002417C  _spu_env
 80024180  _spu_isCalled
 80024190  _spu_RXX
 800241A8  _spu_tsa
 800241AC  _spu_transMode
 800241B0  _spu_addrMode
 800241B4  _spu_mem_mode
 800241B8  _spu_mem_mode_plus
 800241BC  _spu_mem_mode_unit
 800241C0  _spu_mem_mode_unitM
 800241C4  _spu_inTransfer
 800241C8  _spu_transferCallback
 800241CC  _spu_IRQCallback
 800241F0  _spu_AllocBlockNum
 800241F4  _spu_AllocLastNum
 800241F8  _spu_memList
 80024200  _spu_zerobuf
 80024720 

0x12E4380#

NE-----------------------------------------------*/
/*----------------------型宣言---------------------------------------------

0x12F3600#

ハ置に作られる
//8x8pixでモジュールを組んだ場合、CSR1枚につき最大$800バイトのメモリーが消費される
//あたり判定などの事情が無い限りはセルは16x16pixで組むのが望ましい
//
//  in: mapマップ情報構造体  cellセルが展開される場所 palette(0~$ff)  tpage(先頭テクスチャページ)
============================================================================*/
#if 0
void CreateCell( MAP_INF* map, GsCELL* cell, unsigned char palette, unsigned short tpage )
{
    sys_w;
    register unsigned short* index;
    register unsigned 

0x1330C00#

   20,         /* 7:だるま*/
                        15,         /* 8:ぶれいんぱにっく*/
                        4 ,         /* 9:でも*/
#endif
};

static  short anmNum =  0;
static  short anmPlay = 0;

/*------------------------------------------------------------------*/
/*                          Func                                                                                                */
/*------------------------------------------------------------------*/

static void PC_StepSet( CLASS_W *cls, Uchar step )
{
    cls->mainstep = step;
    cls->substep    = 0;
}
static void PC_SpeedSet( CLASS_W *cls, short speed,short num )
{
    cls->speed += speed / num;
    if(cls->speed > speed)  cls->speed = speed;
}


/*------------- 動作処理 -------------------------------------------*/
void Character( void )
{
    sp_w;
    sys_w;
    CLASS_W *cls;
    short i,pc;

    cls = &s->classw[0];
    for(i=0; i<CLASSW_SUU; i++,cls++ ) {
        if(! cls->kind)
            continue;
        sp->left_key = cls->key_w >> 12;        /* なんかのおまじない*/

        if(! cls->cpu) {                                        /* PCの場合 */
            PC_CheckKey( cls );
        }

        PC_Main(cls);
    }
}


/*------------- 動作処

0x1333600#

       /* 38 ケインスペシャルの着地  238 */
        LAND_GON      ,     /* 39 ゴン専用着地           239 */
        PUSH_IKE      ,     /* 40 池谷 超す             240 */
        KAM_RUN_IKE   ,     /* 41 池谷 構え 走り  241 */
        RUN_IKE       ,     /* 42 池谷 走り             242 */
        FUMIKIRI_IKE  ,     /* 43 池谷 踏み切り       243 */
        HARAU         ,     /* 44 手を払う              244 */
        MAGURO_OTI    ,     /* 45 着地 不様             245 */
        LAND_NO       ,     /* 46 着地 生                  246 */
        KONA2         ,     /* 47 粉つける2         247 */
        LAND_OK2      ,     /* 48 着地 OK2                248 */
        LAND_OK3      ,

0x1373320#

攻,Sカ,支,PS,JP, 人 頭の  国   利,  年        1.札幌
// 長,重,体,当,タ, 防,ST,トラ,HD,CV, 種 特徴  籍   足,  齢        Rk.A) 4-4-2A
   {86,87,64,66,37,38,73,24,53,73,YEL|Y_HD8|JP|R_FOOT,41},     /*    GK 1. 570926   */         /* ディド 

0x14AC9E0#

K_2    */
   { 0,26, 60*256, SE_DEF_

0x14AFE30#

SD_def_vol_save();
    SD_sfx00_vol(12);
    SD_sfx10_vol(12);

    bgm_vol = spuvol[12];
    XA_lch = XA_rch = 0;

    sec_secnt = sec_cnt = 0;
}

/*****************************************************
==  VABデータをセットする
==  ノンブロックリードを行うので終了を監視しておくこと
==  in: int no VABテーブルへのオフセット 0~
==  out:    0(継続中)  1(終了)
*****************************************************/
int VabTrans( int no )
{
#if !SD_CD
    long fp,leng

0x14C4DC0#

if ( CdRead (fpe_se, (void *) str_se_buf, CdlModeSpeed) ){