the cutting room mirror

EVENT.BIN

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

0x9C00#

\\include/k_model.h" 2


# 1 "c:/psx/include/libetc.h" 1 3
 



 




extern int PadIdentifier;
 
























            



 









 


 





 





int CheckCallback(void) ;
void PadInit(int mode);
int ResetCallback(void) ;
int RestartCallback(void) ;
int StopCallback(void) ;
int VSync(int mode);
int VSyncCallback(void (*f)()) ;
long GetVideoMode (void);
long SetVideoMode (long mode);
u_long PadRead(int id);
void PadStop(void);






# 12 "..\\include/k_model.h" 2

# 1 "c:/psx/include/libgte.h" 1 3
 






 










 






# 135 "c:/psx/include/libgte.h" 3



typedef struct  {
    short   m[3][3];     
        long    t[3];        
} MATRIX;

typedef struct {         
    long    vx, vy;
    long    vz, pad;
} VECTOR;
    
typedef struct {            
    short   vx, vy;
    short   vz, pad;
} SVECTOR;
           
typedef struct {            
    u_char  r, g, b, cd;
} CVECTOR;
           
typedef struct {         
    short vx, vy;
} 

0xEA00#

ipmode);       
extern void RotRMD_GT4(long *pa,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        

extern void RotRMD_SV_F3(long *pa,long *va,u_long *ot,int otlen,int id, 
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_G3(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_FT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_FT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_GT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        

extern long p2otz(long p, long projection);
extern long otz2p(long otz, long projection);

 


















































# 13 "..\\include/k_model.h" 2

# 1 "c:/psx/include/libgpu.h" 1 3

0x12A00#

      TMD_P_F3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
}       TMD_P_G3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, b1, dummy1;
    u_char  r2, g2, b2, dummy2;
    u_short n0, v0;
    u_short v1, v2;
}       TMD_P_F3G;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, b1, dummy1;
    u_char  r2, g2, b2, dummy2;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
}       TMD_P_G3G;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short v0, v1;
    u_short v2, p;
}       TMD_P_NF3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, b1, p1;
    u_char  r2, g2, b2, p2;
    u_short v0, v1;
    u_short v2, p;
}       TMD_P_NG3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short n0, v0;
    u_short v1, v2;
    u_short v3, p;
}       TMD_P_F4;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
    u_short n3, v3;
}       TMD_P_G4;

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

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, 

0x15400#

d 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

0x17400#

 PACKET *pk, 
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastTG3MFG(TMD_P_TG3 *op, VERT *vp, VERT *np, PACKET *pk, 
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastF4GL(TMD_P_F4G *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

0x1AC00#

ong *GsU_000c0050(GsARGUNIT *);
    extern u_long *GsU_000c0051(GsARGUNIT *);
    extern u_long *GsU_000c0054(GsARGUNIT *);
    extern u_long *GsU_000c0055(GsARGUNIT *);
    extern u_long *GsU_0100020d(GsARGUNIT *);
    extern u_long *GsU_01000215(GsARGUNIT *);

    extern u_long *GsU_00100008(GsARGUNIT *);
    extern u_long *GsU_00100009(GsARGUNIT *);
    extern u_long *GsU_0010000a(GsARGUNIT *);
    extern u_long *GsU_0010000b(GsARGUNIT *);
    extern u_long *GsU_0010000c(GsARGUNIT *);
    extern u_long *GsU_0010000d(GsARGUNIT *);
    extern u_long *GsU_0010000e(GsARGUNIT *);
    extern u_long *GsU_0010000f(GsARGUNIT *);
    extern u_long *GsU_00100010(GsARGUNIT *);
    extern u_long *GsU_00100011(GsARGUNIT *);
    extern u_long *GsU_00100012(GsARGUNIT *);
    extern u_long *GsU_00100013(GsARGUNIT *);
    extern u_long *GsU_00100014(GsARGUNIT *);
    extern u_long *GsU_00100015(GsARGUNIT *);
    extern u_long *GsU_00100016(GsARGUNIT *);
    extern u_long *GsU_00100017(GsARGUNIT *);
    extern u_long *GsU_00300008(GsARGUNIT *);
    extern u_long *GsU_0

0x137C00#

_objend
 800BB1C8  _ev_uesaka_bss_org
 800BB1CC  _ev_uesaka_bss_orgend
 00000004  _ev_uesaka_bss_size
 800BB1CC  _ev_uesaka_ctors_obj
 800BB1CC  _ev_uesaka_ctors_objend
 800BB1CC  _ev_uesaka_ctors_org
 800BB1CC  _ev_uesaka_ctors_orgend
 00000000  _ev_uesaka_ctors_size
 800BAD04  _ev_uesaka_data_obj
 800BB1C8  _ev_uesaka_data_objend
 800BAD04  _ev_uesaka_data_org
 800BB1C8  _ev_uesaka_data_orgend
 000004C4  _ev_uesaka_data_size
 800BB1CC  _ev_uesaka_dtors_obj
 800BB1CC  _ev_uesaka_dtors_objend
 800BB1CC  _ev_uesaka_dtors_org
 800BB1CC  _ev_uesaka_dtors_orgend
 00000000  _ev_uesaka_dtors_size
 800B9000  _ev_uesaka_obj
 800BB1CC  _ev_uesaka_objend
 800B9000  _ev_uesaka_org
 800BB1CC  _ev_uesaka_orgend
 800B9004  _ev_uesaka_rdata_obj
 800B9094  _ev_uesaka_rdata_objend
 800B9004  _ev_uesaka_rdata_org
 800B9094  _ev_uesaka_rdata_orgend
 00000090  _ev_uesaka_rdata_size
 800BB1C8  _ev_uesaka_sbss_obj
 800BB1C8  _ev_uesaka_sbss_objend
 800BB1C8  _ev_uesaka_sbss_org
 800BB1C8  _ev_uesaka_

0x141E00#

puGetVoiceVolume
 80036834  _SsVmAlloc
 80036AC4  _SsVmDoAllocate
 80036C94  _SsVmDamperOff
 80036CA4  _SsVmDamperOn
 80036CB4  _SsVmFlush
 80037144  SpuSetNoiseVoice
 80037174  _SpuSetAnyVoice
 80037434  SpuSetReverbVoice
 80037464  SpuSetKey
 80037624  SpuGetVoiceEnvelope
 80037644  _SsVmInit
 80037994  SpuInitMalloc
 800379F4  _spu_setInTransfer
 80037A1C  _spu_getInTransfer
 80037A34  _SsVmKeyOn
 80037F90  _SsVmKeyOff
 800380F8  _SsVmSeKeyOn
 800381E4  _SsVmSeKeyOff
 80038218  KeyOnCh

0x14BA00#

, p3;
    u_char  r2, g2, b2, p4;
    u_char  r3, g3, b3, p5;
    u_short v0, v1;
    u_short v2, v3;
}       TMD_P_TNG4;

struct TMD_STRUCT {
    u_long *vertop;          
    u_long  vern;            
    u_long *nortop;          
    u_long  norn;            
    u_long *primtop;         
    u_long  primn;           
    u_long  scale;           
};

 












typedef struct {
    short   vx, vy, vz;
    u_char  tu, tv;
}       VERT;

typedef struct {
    short   vx, vy, vz;
    u_char  tu, tv;
    CVECTOR col;
}       VERTC;


typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg0;        
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_FT4 si;         
}       GsADIV_FT4;

typedef struct {
    VERT    vt[4];
}       GsADIV_P_FT4;



typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg0;        
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_GT4 si;         
}       GsADIV_GT4;

typedef struct {
    VERTC   vt[4];
}       GsADIV_P_GT4;


typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg0;        
    long 

0x14C400#

   shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_GT3 si;         
}       GsADIV_GT3;

typedef struct {
    VERTC   vt[3];
}       GsADIV_P_GT3;

typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_G3 si;      
}       GsADIV_G3;

typedef struct {
    VERTC   vt[3];
}       GsADIV_P_G3;

typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_F3 si;      
}       GsADIV_F3;

typedef struct {
    VERT    

0x14CA00#

;
    void    GsSetWorkBase(PACKET * outpacketp);

    void    GsSortObject3(GsDOBJ3 * objp, GsOT * ot, int shift);
    void    GsSortObject4(GsDOBJ2 * objp, GsOT * ot, int shift, u_long * scratch);
    void    GsSortObject5(GsDOBJ5 * objp, GsOT * ot, int shift, u_long * scratch);
    void    GsSortObject5J(GsDOBJ5 * objp, GsOT * ot, int shift, u_long * scratch);

    void    GsSortSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortSpriteB(GsSPRITE * sp, GsOT * ot, unsigned short pri,
                unsigned short flip);
    void    GsSortFastSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortFastSpriteB(GsSPRITE * sp, GsOT * ot, unsigned short pri,
                unsigned short flip);
    void    GsSortFlipSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortBg(GsBG * bg, GsOT * ot, unsigned short pri);
    void    GsSortFastBg(GsBG * bg, GsOT * ot, unsigned short pri);
    void    GsInitFixBg16(GsBG * bg, u_long * work);
    void    GsSortFixBg16(GsBG * bg, u_long * work, GsOT * otp, unsigned short pri);
    void    GsInitFixBg32(GsBG * bg, u_long * work);
    void    GsSortFixBg32(GsBG * bg, u_long * work, GsOT * otp, unsigned short pri);
    void    GsSortLine(GsLINE * lp, GsOT * ot, unsigned short pri);
    void    GsSortGLine(GsGLINE * lp, GsOT * ot, unsigned short pri);
    void    GsSortBoxFill(GsBOXF * bp, GsOT * ot, unsigned short pri);
    void    GsSortPoly(void *pp, GsOT * ot, unsigned short pri);

    void    GsClearOt(unsigned short offset, unsigned short point, GsOT * otp);
    GsOT   *GsSortOt(

0x154E00#

T_ANIM *);
    extern int  GsU_03002030(GsARGUNIT_ANIM *);
    extern int  GsU_03002031(GsARGUNIT_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 *);
    exte

0x155200#

1b(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 *);
    extern int  GsU_0300303b(GsARGUNIT_ANIM *);
    extern int  GsU_03003111(GsARGUNIT_ANIM *);
    extern int  GsU_03003112(GsARGUNIT_ANIM *);
    extern int  GsU_03003119(GsARGUNIT_ANIM *);
    extern int  GsU_0300311a(GsARGUNIT_ANIM *);
    extern int  GsU_03003910(GsARGUNIT_ANIM *);
    extern int  GsU_03003911(GsARGUNIT_ANIM *);
    extern int  GsU_03003912(GsARGUNIT_ANIM *);
    extern int  GsU_03003919(GsARGUNIT_ANIM *);
    extern int  GsU_0300391a(GsARGUNIT_ANIM *);
    extern int  GsU_03004010(GsARGUNIT_ANIM *);
    extern int  GsU_03004011(GsARGUNIT_ANIM *);
    extern int  GsU_03004012(GsARGUNIT_ANIM *);
    extern int  GsU_03004013(GsARGUNIT_ANIM *);
    extern int  GsU_03004019(GsARGUNIT_ANIM *);
    extern int  GsU_0300401a(GsARGUNIT_ANIM *);
    extern int  GsU_0300401b(GsARGUNIT_ANIM *);
    extern int  GsU_03004020(GsARGUNIT_ANIM *);
    extern int  GsU_03004021(GsARGUNIT_ANIM *);
    extern int  GsU_03004022(GsARGUNIT_ANIM *);
    extern int  GsU_03004023(GsA

0x155A00#

   extern int  GsU_03004112(GsARGUNIT_ANIM *);
    extern int  GsU_03004119(GsARGUNIT_ANIM *);
    extern int  GsU_0300411a(GsARGUNIT_ANIM *);
    extern int  GsU_03004910(GsARGUNIT_ANIM *);
    extern int  GsU_03004911(GsARGUNIT_ANIM *);
    extern int  GsU_03004912(GsARGUNIT_ANIM *);
    extern int  GsU_03004919(GsARGUNIT_ANIM *);
    extern int  GsU_0300491a(GsARGUNIT_ANIM *);
    extern int  GsU_03005010(GsARGUNIT_ANIM *);
    extern int  GsU_03005011(GsARGUNIT_ANIM *);
    extern int  GsU_03005012(GsARGUNIT_ANIM *);
    extern int  GsU_03005013(GsARGUNIT_ANIM *);
    extern int  GsU_03005019(GsARGUNIT_ANIM *);
    extern int  GsU_0300501a(GsARGUNIT_ANIM *);
    extern int  GsU_0300501b(GsARGUNIT_ANIM *);
    extern int  GsU_03005020(GsARGUNIT_ANIM *);
    extern int  GsU_03005021(GsARGUNIT_ANIM *);
    extern int  GsU_03005022(GsARGUNIT_ANIM *);
    extern int  GsU_03005023(GsARGUNIT_ANIM *);
    extern int  GsU_03005029(GsARGUNIT_ANIM *);
    extern int  GsU_0300502a(GsARGUNIT_ANIM *);
    extern int  GsU_0300502b(GsARGUNIT_ANIM *);
    extern int  GsU_03005030(GsARGUNIT_ANIM *);
    extern int  GsU_03005031(GsARGUNIT_ANIM *);
    extern int  GsU_03005032(GsARGUNIT_ANIM *);
    extern int  GsU_03005033(GsARGUNIT_ANIM *);
    extern int  GsU_03005039(GsARGUNIT_ANIM *);
    extern int  GsU_0300503a(GsARGUNIT_ANIM *);
    extern int  GsU_0300503b(GsARGUNIT_ANIM *);
    extern int  GsU_03005111(GsARGUNIT_ANIM *);
    extern int  GsU_03005112(GsARGUNIT_ANIM *);
    extern int  GsU_03005119(GsARGUNIT_ANIM *);
    extern int  GsU_0300511a(GsARGUNIT_ANIM *);
    extern int  GsU_03005910(GsARGUNIT_ANIM *);
    exter

0x156400#

*);
    extern int  GsU_03010310(GsARGUNIT_ANIM *);
    extern int  GsU_03010311(GsARGUNIT_ANIM *);
    extern int  GsU_03010312(GsARGUNIT_ANIM *);
    extern int  GsU_03010321(GsARGUNIT_ANIM *);
    extern int  GsU_03010322(GsARGUNIT_ANIM *);
    extern int  GsU_03010341(GsARGUNIT_ANIM *);
    extern int  GsU_03010342(GsARGUNIT_ANIM *);
    extern int  GsU_03010371(GsARGUNIT_ANIM *);
    extern int  GsU_03010372(GsARGUNIT_ANIM *);

     
    extern u_long *GsU_06000100(GsARGUNIT *sp);
    extern u_long *GsU_0600100c(GsARGUNIT *sp);
    extern u_long *GsU_06001014(GsARGUNIT *sp);
    extern u_long *GsU_0600110c(GsARGUNIT *sp);
    extern u_long *GsU_06001114(GsARGUNIT *sp);
    extern u_long *GsU_0600200c(GsARGUNIT *sp);
    extern u_long *GsU_06002014(GsARGUNIT *sp);
    extern u_long *GsU_0600300c(GsARGUNIT *sp);
    extern u_long *GsU_06003014(GsARGUNIT *sp);
    extern u_long *GsU_0600400c(GsARGUNIT *sp);
    extern u_long *GsU_06004014(GsARGUNIT *sp);
    extern u_long *GsU_0600500c(GsARGUNIT *sp);
    extern u_long *GsU_06005014(GsARGUNIT *sp);

     
    ext

0x156C00#

nitRstVtxMIMe(u_long *primtop, u_long *hp);
    extern void GsInitRstNrmMIMe(u_long *primtop, u_long *hp);






# 17 "..\\include/k_hmd.h" 2






 




 


typedef struct  _MODEL_HMD{
    signed  int     show;            
    signed  long    cnt_ani;         
    signed  long    cnt_blk;         

    VECTOR      scale;               

    GsUNIT      object[(32) ]; 

    GsCOORDUNIT *coord;              

    GsSEQ        *seq[32];           

    unsigned    long    address;     
}MODEL_HMD;


 


extern  void    hmd_init(MODEL_HMD *,GsOT *);
extern  void    hmd_draw(MODEL_HMD *,GsOT *);
extern  void    hmd_init_ani(unsigned long int,GsSEQ **);
extern  void    hmd_link_driver_prim(unsigned long *,GsTYPEUNIT *,GsSEQ **);
extern  void    hmd_link_driver_ani(void);
extern  void    hmd_trans(GsCOORDUNIT *);
extern  void    hmd_scale(GsCOORDUNIT *,VECTOR *);
extern  void    hmd_link(GsUNIT *,unsigned long,unsigned long);
# 17 "..\\include/k_model.h" 2


 


 


 


extern  void    model_init(void);
extern  void    model_draw(GsOT *);

 


extern  MODEL_HMD   Hmd[18 ];
# 11 "m_move.c" 2

0x157400#

    long      amb[3];   
}K_SCENE_VIEW;



 


extern  K_SCENE_VIEW    Scene;
extern  GsF_LIGHT   Light[3];

 





extern  void    k_scene_set(int);



extern  int     k_scene_load(int);

# 12 "m_move.c" 2

# 1 "..\\include/k_magic.h" 1
 






# 1 "c:/psx/include/sys\\types.h" 1 3
 


 



# 80 "c:/psx/include/sys\\types.h" 3

# 8 "..\\include/k_magic.h" 2















 
















 


 
typedef struct  _OBJ{
    signed      short   x,y;             

    unsigned    char    size_x,size_y;   

    unsigned    char    u,v;             

    unsigned    char    num_csr,         
                        num_pal;         

    unsigned    short   flag;            

    unsigned    short   tone_flag;           
    unsigned    char    tone_rate;           
    unsigned    char    red;

    unsigned    char    green;
    unsigned    char    blue;                
    unsigned    char    trans_flag;          
    unsigned    char    trans_rate;          

    unsigned    short   scale;               
    unsigned    short   rotate;              

}K_ObjData;

 
typedef struct  _PAT_DATA{
    unsigned    long    cnt_obj;     

    signed      short   pivot_x;     
    signed

0x157C00#

igned  char    tone_ani_r;
    unsigned    char    tone_ani_g;
    unsigned    char    tone_ani_b;
    unsigned    char    dummy;;

    signed  short   x,   
                    y,   
                    z;   

    unsigned    short   no_ani;  
    unsigned    short   no_pat;  

    unsigned    short   trans_flag;  
    unsigned    short   trans_rate;  
                                     




    unsigned    short   ani;     
    unsigned    short   pat;     
    unsigned    short   timer;   

    signed  short   tone_pat;    
    signed  short   tone_ani;    

    unsigned    short   cx,      
                        cy;

    unsigned    short   cw,      
                        ch;

    unsigned    long    frame;   

    unsigned    long    tone_obj;    

    unsigned    long    priority;    

    unsigned    long    address_mp;              

    unsigned    long    address_tim[12 ];    

    unsigned    long    address_clt;             

    SVECTOR     vect;

    GsIMAGE     tim[12 ];    

}MAGIC;

 



 


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

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

extern  void    magic_set_tone_obj(MAGIC *,short,short obj,unsigned long);
ext

0x158400#






 
 




 
 
 

extern void heya_init(void);                                     
extern Schar heya_main (Schar fu);                                   
extern void kasoru_left(void);                                   
extern void kasoru_down(void);                                   
extern void pad(Uchar tmp0,Schar tmp1);                                  
extern void pad2(Uchar tmp0);                                    
extern void speed(Uchar i);                                      
extern void komannd(void);                                       
extern Schar coma_main (void);
extern void coma_init (void);
extern char fe_in_ic (int i,short max,short ryou);
extern char fe_in_ic (int i,short max,short ryou);
extern void ko_bu_me (void);
extern Schar pad_idou(Schar i);
extern Schar pad_idou2(Schar i);
extern Schar pad_idou3(Schar i);
extern void he_idou (void);
extern void he_idou2 (void);    
extern void fed (Uchar fla,Uchar lv);                                
extern void unnti_init (Schar fu,Schar fu2);                         
extern void ste_init(void);
extern Schar seve (Ulong so_no,Uchar fu,Uchar fu2,Schar fu3);
extern Schar load_main (Ulong so_no);
extern Uchar format_msin (Uchar so_no);
extern void sin

0x158C00#

xist_check(Uchar so_no,Schar fu);
extern int GetCardEntry(int cnct, int slot,Schar fu);
extern Uchar format_main (Uchar so_no);
extern void clock_ch (Schar fu);
extern void clock_ch2 (Schar fu);
extern void tv_heya(void);
extern void ko_yo_init(void);
extern void gm_init(void);
extern void cad_init (void);
extern void T_dokuro(void);
extern void new_load (void);
extern Schar  bat_ending_main(void);
extern void bat_end_init(void);
extern void set_data(Schar fu);
extern void get_data(Schar fu);
extern Schar  sanpo_sele (void);
extern void toon_set(Schar fu);
extern void fed_init (Uchar fu);
extern Schar room_chn(Schar i);
extern void ko_bu_me_init (void);
extern void time_col (void);
extern void tousann (void);
extern Schar pda_main(void);
extern void pda_main_init(void);
extern Schar lo_roop(Schar fu,Schar fu2);
extern Schar lo_main_pad(Schar fu);
extern void lo_ain(void);
extern Schar pda_main(void);
extern void pda_init(void);
extern void lo_font(Schar fu);
extern Schar lo_fed_o

0x159200#

ed (Schar fu);
extern void yazi_init(void);
extern Schar  aku_main (void);
extern void unnti_del_heya (void);
extern Schar seve_main (Ulong so_no,Uchar fu,Schar fu2);
extern Schar  lo_main_saki(void);
extern Schar se_main(Schar fu);
extern void unnti_idou (void);
extern Schar card_stat_ch(void);
extern Schar nem_ent(Schar fu,Schar  fu2);
extern Schar maiku_main_init(void);
extern void daays_hyou(void);
 
enum{                                        
    HEYA_INIT,
    HEYA_FED_IN,
    HEYA_MEIN,
    HEYA_COMAN,
    HEYA_IBEN,
    HEYA_BUNNKI_INIT,
    HEYA_BUNNKI_MAIN,
    HEYA_IBOU_SENNTAKU,
    HEYA_IBOU_HEYAKAE,
    HEYA_TEL,
    HEYA_EVE_INIT,
    HEYA_EVE,
    HEYA_DAY,
    HEYA_SANPO_SELE,
    HEYA_ACS_MAIN,
};  
 
 
 
typedef struct _SME {
 
    Sshort pry_name[7];                              
    Sshort dog_name[7];                              
    Sshort un_x[6][8];                               
    Sshort un_y[6][8];                               
    Sshort un_z[6][8];                               
    Uchar  un_ko[6];                                 
    Uchar  un_fu[6][8];                              
    Schar  pry_hoppy[16];                            
    char   pry_sei;                                  
    Schar  k_speed;                                  
    Schar  ana;                                      
    Schar  bgm;                                      
    Schar  snd;                                      
    Schar  setu;                                     
    Uchar  speed ;                                   

    Uchar  day;                                      
    Uchar  hour;                                     
    Uchar  fun;                                      
    Uchar  eve_tou[8];                               
    Uchar  end_good;                                 
    long   dog_kensyu;                               
    Schar  ikeda[4];                                 
 
    Uchar  dog_h_no ;                                
    Uchar  dog_l_s ;                                 
    Uchar  dog_lb_12;                                
    Uchar  dog_gk_12;                                
    Uchar  heya_no ;                                 
    Schar  heya_idou ;                               
    Schar  angle_no;                    

0x159C00#

M_acs_t0[10][8][7];
extern signed  short M_acs_t1[10][3];

extern signed   short M_gp[150];

extern unsigned  short M_hukuw[2][20]; 
extern unsigned  short M_hukpal[3][24];
extern signed short Mn; 
extern signed short Mnx;
extern signed short Mny;
extern signed short Mnv;
extern signed   char M_gei_akic; 

extern signed   short M_inusize_tb[10]; 
extern signed   short M_inuwait_tb[10]; 
extern signed   short M_himan_tb[16]; 
extern signed   short M_inusize_t; 
extern signed   short M_inu_maxsize; 
     
extern signed   short M_kensyu[4];                                  
extern signed   short M_tosi[4];                                    
extern signed   short M_seibetu[4];                                 
extern signed   short M_taityo[4];                                  
extern signed   short M_wait[4];                                    
extern signed   short M_dokyo[4];                                   

extern signed   short M_hitp[4];                 
extern signed   short M_gaman[4];                
extern signed   short M_speed[4];                
extern signed   short M_syuchu[4];               
extern signed   short M_kiok[4];                 
extern signed   short M_himan[4];                
exter

0x15A400#

extern signed   short M_lccnt[4][3];             


extern signed   short M_dogv[4];                 
extern signed   short M_dogxy[8];                
extern signed   short M_dogoxy[8];               
extern signed   short M_dogvo[4];                
extern signed   short M_dogxyo[8];           
extern signed   short M_dogms[100];          
extern signed   short M_dogmc[4];            
extern signed   short M_dogmvs[40];          
extern signed   short M_xylock[16];          

extern signed   char M_mst[41];              
extern signed   char M_mstc[41];             

extern signed   short M_dogmm[4];            
 
 
 
 
extern signed   short M_hfrag[20];           
 
 
 
 
 
 
 
 
 
extern signed   short M_exhno[4][20];        
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
extern signed   short M_esabox[20];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
extern signed   short M_unth[10];
 
 
 
 
 
 
extern signed   short M_cole_lock[20];
 
 
 
extern signed char M_hmdno[8];
extern signed   short M_wasonde[10];

 
extern signed   short M_heya_chok[10];
 
 
 
 
 
 
 
 
 
 
extern signed short M_

0x15AC00#

r M_tensu[5]; 

 
 
extern void M_demo_int(void);
extern void M_int(void);
extern void M_esahmd_set(void);
extern signed int M_hmd_int(int n);
extern void M_nxroom_ini(int rn);
extern void M_nxroom_chg(void);
extern void M_mosbrock_bchg(void);
extern void M_mosbrock_rchg(void);
extern void M_mosbrock_chg(void);
extern signed int M_heya_chg(int hno);
extern void M_heya_dli(int hno);
extern signed int M_neroom(int nh,int eh);
extern void M_hpxy_chg(int x,int y,int oh,int nh);
extern void M_dog_open(void);
extern void M_moning(void);
extern void M_liv0_set(void);
extern void M_liv1_set(void);
extern void M_kage_set(void);
extern void M_kage_set0(int d,int v,int nc);
extern void M_kage_set1(int d,int v);
extern void M_kage_set2(int d,int v,int nc);
extern void M_kage_set3(int d0,int d1,int v,int nc);
extern void M_kage_set4(void);
extern void M_dog_scale(void);
extern void M_hmd_cls(int n);
extern void M_mov_int(void);
extern void M_igint(void);
extern signed int M_konomi(int c);
e

0x15B600#

xtern void M_naderu_off(void);
extern void M_naderu2(void);
extern void M_situke_chkg(void);
extern void M_oko_cup(int c,int p);
extern void M_kanjyo_up(int lv);
extern void M_kanjyo_down(int lv);
extern void M_burasi(void);
extern void M_burasi_out(void);
extern void M_burasi_posset(void);
extern void M_burasi_pos(void);
extern void M_burasi_gejiw(void);
extern void M_oyatu(void);
extern void M_oyatu_s0(void);
extern signed int M_oyatu_s1(void);
extern void M_oyatu_s2(void);
extern void M_oy

0x15BE00#

id M_mosset40(int p);
extern signed int M_rndxymov(int px,int py,int sx,int sy);
extern signed int M_chturn(int x,int y);
extern signed int M_mosset40i(int p);
extern void M_mcset_sub(int c);
extern void M_mcend_sub(void);
extern void M_unti_set(void);

 
extern void Minu_comset(void);
extern void Move_hima(void);
extern void M_neru(void);
extern void Move_hima00(void);
extern void Move_hima10(void);
extern signed int Move_hima20(void);
extern void Move_hima30(void);
extern void M_haraheri(v

0x15C400#

t M_tvs0(int x,int y,int v);
extern void M_asonde(void); 
extern void M_asonde_cls(void);
 
extern void M_cncount(void);
extern void M_byoki_main(void);
extern void M_byoki_mosset(void);
extern void M_upin(void);
extern void M_upout(void);
extern void M_upchout(void);
extern void M_up_kmchg(void);

 
extern signed int M_dogmt02(int c);
extern signed int M_dogmt33(int c);
 
extern signed int M_dpmov(int sx,int sy,int ex,int ey,int v);
extern void M_dpmovs0(int n,int ct,int hn,int yx,int yy);
extern signed int M_dogbakset(void);
extern void M_dogbbakset(int bs);
extern void M_pusxy(int c,int x,int y);
extern void M_setbpus(void);
extern void M_setbp(int kb,int sc,int nx,int ny);
extern void M_bpinit(void);
extern signed int M_xyh(int x0,int y0,int x1,int y1);
extern signed int M_movgom(int sx,int sy,int ex,int ey,int tv,int mh);
extern signed int M_poiv(int sx,int sy,int ex,int ey);
extern signed int M_v1v2(int v1,int v2);
extern signed int M_vset(int v);
extern void M_movexy(int nx

0x15CC00#

npo(void);
extern void M_ivch_sanpocls(void);
extern int M_ivch_unko(void);
extern void M_ivch_unkocls(void);
extern int M_ivch_like(void);
extern void M_ivch_likecls(void);
extern signed int M_ivch_unkos0(void);
extern signed int M_ivch_goch(void);
 
extern void M_cpad(void);
extern void M_set_ohrroom(void);
extern void M_pat_move(void);
extern void tuma_xy(int n);
extern void tuma_axy(int n,int md);
extern signed int M_pat_s00(void);
 
extern signed int M_rnd(int dmax);
extern void M_bgm_set(void);
extern int  M_kigen_updown(int n);
extern int  M_gei_chyarenge(int g);
extern int  M_gei_updown(int g,int n);
extern void M_sanpo_set(void);
extern void M_rtxset_op(void);
extern void M_rtxset_rm(void);
extern void M_rtxchg_op(int p,int t);
extern void M_rtxchg_opg(void);
extern void M_rtxchg_rm(int t);
extern void M_rtxchg_col(int t);
extern void M_rtxchg_cols(int t);
extern void M_rtxcol_init(void);
extern void M_rtxcol_add(int b);
extern void M_rtxcol_del(int b);
extern void M_rtxc

0x15D200#

ys\\types.h" 1 3
 


 



# 80 "c:/psx/include/sys\\types.h" 3

# 8 "..\\include/t_pad.h" 2







 
























 


















 



















extern  void setPad(int port);

 
typedef struct  _OBJ_PAD_SYS{
    unsigned    char    flag,    

                        type;    
                                 
                                 
                                 
                                 

    unsigned    char    data[32];    
}OBJ_PAD_SYS;



 
typedef struct  _OBJ_PAD_INP{
    signed  char    flag;    

    unsigned    char    type;    

    unsigned    char    input[2];

    signed  char    data[32];

}OBJ_PAD_INP;



 
typedef struct  _OBJ_PAD_USE{
    signed  char    flag;    

    unsigned    char    type;    

    unsigned    short   input;   

    unsigned    short   trg;     

    unsigned    short   weit;    

    unsigned    short   sin;     

    signed  short   history[16];     

    signed  short   mx,  
                    my,
                    dx,
                    dy,
                    dz;

    unsigned    int time,    
                    count;   
}OBJ_PAD_USE;


 


extern  void    pad_init(void);
extern  void    pad_read(void);
extern  void    pad_watch(void);

 


extern  OBJ_PAD_USE PadUse[8];
# 18 "m_move.c" 2

 


 




extern SME_W sme;

 
void M_moveinit(int m)
 
{
int  l,nxp,ex,ey;
    if(M_heyabb[Mn][0]==-1){
        M_dogmvs[Mn*10]=-1;
        M_dogmvs[Mn*10+1]=-1;
        return;
    }
    if (m==3){
         
        l=0;
        while (l!=300){
            if (M_heyabb[Mn][l*2]==-1){
                break;
            }
        l+=1;
        }   
        if (l>16){
            M_dogmvs[Mn*10]=2;
        }else{
            M_dogmvs[Mn*10]=0;
        }
    }else{
         
        M_dogmvs[Mn*10]=m;
    }   
    m=M_dogmvs[Mn*10];
    

0x15DA00#

    nxp=0;
    ex=M_heyabb[Mn][nxp*2];
    ey=M_heyabb[Mn][nxp*2+1];

    if (M_dogmvs[Mn*10]==1){
        M_dogmvs[Mn*10+1]=mmas_set(M_dogxy[Mn*2],M_dogxy[Mn*2+1],ex,ey,1);

    }else{
        M_dogmvs[Mn*10+1]=mmas_set(M_dogxy[Mn*2],M_dogxy[Mn*2+1],ex,ey,0);
    }

    M_dogmvs[Mn*10+2]=0;

    M_dogmvs[Mn*10+3]=M_dogxy[Mn*2];
    M_dogmvs[Mn*10+4]=M_dogxy[Mn*2+1];
    M_msc[Mn][0]=0;
    M_msc[Mn][1]=-1;
 
    M_dogmvs[Mn*10+7]=0;
    if ((M_seikak[Mn]==6)&&(M_kanjyo[Mn]!=3))M_dogmvs[Mn*10]=1; 
 








}
 
void M_movetbinit(int x,int y)
 
{

    M_dogmvs[Mn*10+1]=mmas_set(M_dogxy[Mn*2],M_dogxy[Mn*2+1],x,y,0);
    if (M_dogmvs[Mn*10+1]==0) {
        M_dogmvs[Mn*10]=-3;  
        M_dogmvs[Mn*10+1]=40; 
    }else{
        M_dogmvs[Mn*10]=-2;  
    }
    M_dogmvs[Mn*10+2]=0;
    M_dogmvs[Mn*10+3]=M_dogxy[Mn*2];
    M_dogmvs[Mn*10+4]=M_dogxy[Mn*2+1];
    M_dogmvs[Mn*10+5]=x;
    M_dogmvs[Mn*10+6]=y;
    M_msc[Mn][0]=0;
    M_msc[Mn][1]=-1;
 
    M_dogmvs[Mn*10+7]=0;
 




}
 
void M_mtarn(int v)
{

    M_dogmvs[Mn*10]=-4;  
    M_dogmvs[Mn*10+1]=40; 
    M_dogmvs[Mn*10+2]=0;
    M_dogmvs[Mn*10+3]=M_dogxy[Mn*2];
    M_dogmvs[Mn*10+4]=M_dogxy[Mn*2+1];
    M_dogmvs[Mn*10+5]=v;
    M_msc[Mn][0]=0;
    M_msc[Mn][1]=-1;
 
 
    M_dogmvs[Mn*10+7]=0;
 




}

 
void M_move(void)
{
int  ox,oy,nx,ny,nxp,ex,ey,mc,nc,md,nv,ev,ov;
    if ((M_dogmvs[Mn*10]==-1)||(M_dogmvs[Mn*10+1]==-1))return;



    if (M_dogmvs[Mn*10]==-4){
        if(M_cole_lock[7]>100){
            M_dogmvs[Mn*10]=-1;
            return;
        }
        mmc_set();
        M_move_tr(); 
        return;
    }
    if (M_dogmvs[Mn*10]==-3){
        if(M_

0x15E400#

ogv[Mn],ov,1000)==-1)M_dogv[Mn]=ov;

         
        M_dogxy[Mn*2]=ox+((ex-ox)*(nc+1))/mc;
        M_dogxy[Mn*2+1]=oy+((ey-oy)*(nc+1))/mc;

         
        if (M_pos[Mn]!=6){
             
            md=0;           
            mmc_set2(10);
            M_pos[Mn]=5;
        }else{
             
            md=1;
            M_pos[Mn]=6;
            if (M_cole_lock[9]==1){
                mmc_set2(39);
            }else{
                mmc_set2(26);
            }
        }

         
        nc+=1;
        if (nc==mc){
             
            nxp+=1;
            M_dogmvs[Mn*10+5]=nxp;
            if (M_heyabb[Mn][nxp*2]==-1){
                 
                M_ovecnt[Mn]=1; 
                M_dogmvs[Mn*10]=-1;
                M_heyabb[Mn][0]=-1;         
                if (M_hfrag[1]==4){
                    M_hfrag[1]=0;
                }
                if (M_hfrag[1]==3){
                     
                    M_nxroom_chg(); 
                    return;
                }
                if (M_exhno[Mn][1]==2){
                    M_exhno[Mn][1]=0;
                    return;
                }

                nextpoint(); 
                M_movpt_chk();

                return;
            }
             
            M_dogmvs[Mn*10+3]=M_dogxy[Mn*2];
            M_dogmvs[Mn*10+4]=M_dogxy[Mn*2+1];
            if (M_dogmvs[Mn*10]==2){
                 
                if (M_xyh(M_dogxy[Mn*2],M_dogxy[Mn*2+1],M_heyabb[Mn][nxp*2],M_heyabb[Mn][nxp*2+1])<20){
                     
                

0x15EC00#

)
{
    if (M_dogmvs[Mn*10+7]!=c){
 
 
        M_motion_chg(c);
        M_dogmvs[Mn*10+7]=c;
    }
}
 
void M_move_t(void)
{
int  mc,nc;

        mc=M_dogmvs[Mn*10+1];            
        nc=M_dogmvs[Mn*10+2];            
         
        if ((M_mc[4]==1)||(M_mosbuff[2]==2)){
            M_dogv[Mn]+=13;
        }else{
            M_dogv[Mn]+=25;
        }
        M_dogv[Mn]=M_vset(M_dogv[Mn]);

         
        nc+=1;
        if (nc==mc){
             
            M_dogmvs[Mn*10]=-1;
            M_ovecnt[Mn]=1;
            return;
        }
        M_dogmvs[Mn*10+2]=nc;
        M_ovecnt[Mn]=3;
        M_movpt_chk();
}
 
void M_move_tr(void)
{
int  md,nv,ev;
        if (M_xylock[Mn*4]==0){
             
            md=70;
        }else{      
            md=70;
        }
        if ((M_mc[4]==1)||(M_mosbuff[2]==2))md=md/2;
 
 
 
        ev=M_dogmvs[Mn*10+5];
        nv=M_dogv[Mn];
         
        if (nv>ev){
            if ((nv-ev)<2048) md=(-md);
        }else{
            if ((ev-nv)>2047) md=(-md);
        }

        M_dogv[Mn]+=md;
        M_dogv[Mn]=M_vset(M_dogv[Mn]);
         
        if (abs(M_dogv[Mn]-ev)<abs(md)){
             
            M_dogmvs[Mn*10]=-1;
            M_ovecnt[Mn]=3;
            
            M_motion_chg(10);
            M_movpt_chk();
            M_pos[Mn]=5;
            retur

0x188200#

方法を説明しないで子供達のプレイを見ていると、カーソルを犬に当てて○ボタンを押していたり、移動したい所
にカーソルを持っていって○ボタンを押していたり、空の餌箱にカーソルをあわせて○ボタンを押してみたりをほぼ必ず行い
ます。これはカーソルがあって方向キーで動かせるから、「これで何かをするんだ」と思いこんでしまうようです。
 現状でカーソルを使って行う作業は4つ。「お散歩に行く」「うんちをかたずける」「日記を開く」「電話をかける」です。
「お散歩に行く」に関しては「×ボタンで移動」に含めちゃっても良いと思います。別に犬アイコンに含めても良い。
「うんちをかたずける」に関しては犬アイコンの項目に「お掃除」というのを設けて、それを選択したらほうきとちりとりマー
クが出てうんちをかたづける。という風にした方が良いのでは。
「日記を開く」に関しても犬アイコンの項目としてあっても良いんじゃないでしょうか。
「電話をかける」に関しても同様です。それにこれはリビングでアップ画面になると画面左下にアイコンが出てきている時点で
「部屋にあるモノをクリックしてアクションする」と云うデザインからははずれていますよね。

・「ご飯は一回食べると全部無くなった方が良い」
 今の仕様では3回食べないとご飯が無くなりませんが、一回食べただけで空になった方が分かり易いし「あれ?ちょっとしか
食べないよ?病気なのかな?」と云う誤解も生みません。「病気になってご飯をちょっとしか食べなくなる」という処理が入っ
ているなら分かりますが、現状のモノには無いようなので全部無くなった方が良いと思います。
 それに、現状だと犬の方からプレイヤーに訴えかけてくる要素が少ないので、一回たべきりにする事で「腹減った」と訴えか
けてくる(餌箱を持ってくる)回数も増えて結果良

0x188C00#

て「あれっ?」
と云う顔をしているのを何回か見ました。せっかく楽しんで貰っているのを「ブツッ」と断ち切ってしまうのはちょっと可哀想です。
 ついでに犬が寝ている画面をスキップ出来るようにもして欲しいです。

・「プレイヤーと犬にデフォルトの名前を」
 デフォルトの名前はあった方が良いと思います。後、名前入力はSTARTボタンで「OK?」の画面までスキップできるようにして欲
しいです。これは最近では常識なのではないでしょうか。
 ついでに言うとカーソルの動きはもっと早い方が良いと思います。

・「どこかに日付の表示が欲しい。時計に午前と午後の表記が欲しい。」
 日付は次の日になるまで分かりません。午前、午後は全然分かりません。今は光の当たり方で午前、午後を表現しているみたいで
すが、全然分からないです。

・「ペットショップでアドバイスを」
 ペットショップに電話をすると今の犬の状態を教えてくれるのですが、頑固、大人しい等マイナスイメージの状態の時は、「もっ
と○○してあげたら良いわね。」とかアドバイスをくれた方が良い。

・「ボールとぬいぐるみの明確な違いを」
 「おもちゃで遊ぶ」時にボールとぬいぐるみとラッパが選べ

0x189400#

端な性格付けがあった方が良いと思います。
 例えば、柴犬→シーズー→パグ→ヨークシャーテリア→ビーグルの順に難易度が設定されてるとか、柴犬はやたらなつきやすいけ
ど頭がよろしくなく芸を全然覚えてくれない、またシーズーは頭は非常に良いが愛想がない。等。

と、まぁ皆さんの苦労も考えずにずらずら書いてしまいましたが、これも一つの意見として快く受けとめてあげて下さい。

以上

0x1A0400#

id PadInit(int mode);
int ResetCallback(void) ;
int RestartCallback(void) ;
int StopCallback(void) ;
int VSync(int mode);
int VSyncCallback(void (*f)()) ;
long GetVideoMode (void);
long SetVideoMode (long mode);
u_long PadRead(int id);
void PadStop(void);






# 4 "m_mset0.c" 2

# 1 "c:/psx/include/libgte.h" 1 3
 






 










 






# 135 "c:/psx/include/libgte.h" 3



typedef struct  {
    short   m[3][3];     
        long    t[3];        
} MATRIX;

typedef struct {         
    long    vx, vy;
    long    vz, pad;
} VECTOR;
    
typedef struct {            
    short   vx, vy;
    short   vz, pad;
} SVECTOR;
           
typedef struct {            
    u_char  r, g, b, cd;
} CVECTOR;
           
typedef struct {         
    short vx, vy;
} DVECTOR;


typedef struct {        
    SVECTOR v;       
    VECTOR sxyz;         
    DVECTOR sxy;         
    CVECTOR rgb;         
    short txuv,pad;      
    long chx,chy;        
} EVECTOR;

typedef struct {
    SVECTOR v;
    u_char uv[2]; u_short pad;     
    CVECTOR c;
    DVECTOR sxy;        
    u_long  sz;             

0x1A0A00#

RVECTOR r0,r1,r2,r3;
    CRVECTOR4 cr[5];    
} DIVPOLYGON4;           

typedef struct {
        short   xy[3];
        short   uv[2];
        short   rgb[3];
} SPOL;

                                         
typedef struct {
        short   sxy[4][2];               
        short   sz[4][2];                
        short   uv[4][2];                
        short   rgb[4][3];               
        short   code;                    
} POL4;

typedef struct {
        short   sxy[3][2];
        short   sz[3][2];                
        short   uv[3][2];
        short   rgb[3][3];
        short   code;                    
} POL3;

typedef struct {
        SVECTOR         *v;                      
        SVECTOR         *n;                      
        SVECTOR         *u;                      
        CVECTOR         *c;                      
        u_long          len;                     
} TMESH;

typedef struct {
        SVECTOR         *v;                      
        SVECTOR         *n;                      
        SVECTOR         *u;                      
        CVECTOR         *c;                      
        u_long          lenv;                    
        u_long          lenh;                    
} QMESH;


 








extern void InitGeom();

extern void EigenMatrix(MATRIX *m, MATRIX *t);
extern int  IsIdMatrix(MATRIX *m);
extern MATRIX *MulMatrix0(MATRIX *m0,MATRIX *m1,MATRIX *m2);
extern MATRIX *MulRotMatrix0(MATRIX *m0,MATRIX *m1);
extern MATRIX *M

0x1A1200#

 *v0,SVECTOR *v1);
extern VECTOR *ApplyTransposeMatrixLV(MATRIX *m,VECTOR *v0,VECTOR *v1);
extern MATRIX *RotMatrix(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixXZY(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixYXZ(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixYZX(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixZXY(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixZYX(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrix_gte(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixYXZ_gte(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixZYX_gte(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixX(long r,MATRIX *m);
extern MATRIX *RotMatrixY(long r,MATRIX *m);
extern MATRIX *RotMatrixZ(long r,MATRIX *m);
extern MATRIX *RotMatrixC(SVECTOR *r,MATRIX *m);
extern MATRIX *TransMatrix(MATRIX *m,VECTOR *v);
extern MATRIX *ScaleMatrix(MATRIX *m,VECTOR *v);
extern MATRIX *ScaleMatrixL(MATRIX *m,VECTOR *v);
extern MATRIX *TransposeMatrix(MATRIX *m0,MATRIX *m1);
extern MATRIX *CompMatrix(MATRIX *m0,MATRIX *m1,MATRIX *m2);
extern MATRIX *CompMatrixLV(MATRIX *m0,MATRIX *m1,MATRIX *m2);

extern void MatrixNormal(MATRIX *m, MATRIX *n); 
extern void MatrixNormal_0(MATRIX *m, MATRIX *n);
extern void MatrixNormal_1(MATRIX *m, MATRIX *n);
extern void MatrixNormal_2(MATRIX *m, MATRIX *n);

extern void SetRotMatrix(MATRIX *m); 
extern void SetLightMatrix(MATRIX *m);
extern void SetColorMatrix(MATRIX *m);
extern void SetTransMatrix(MATRIX *m);
extern void PushMatrix();
extern void PopMatrix();
extern void ReadRotMatrix(MAT

0x1A1E00#

ColorLight(VECTOR *v0,CVECTOR *v1,long p,CVECTOR *v2);
extern void DpqColor(CVECTOR *v0,long p,CVECTOR *v1);
extern void DpqColor3(CVECTOR *v0,CVECTOR *v1,CVECTOR *v2,
           long p,CVECTOR *v3,CVECTOR *v4,CVECTOR *v5);
extern void Intpl(VECTOR *v0,long p,CVECTOR *v1);
extern VECTOR *Square12(VECTOR *v0,VECTOR *v1);
extern VECTOR *Square0(VECTOR *v0,VECTOR *v1);
extern VECTOR *SquareSL12(SVECTOR *v0,VECTOR *v1);
extern VECTOR *SquareSL0(SVECTOR *v0,VECTOR *v1);
extern SVECTOR *SquareSS12(SVECTOR *v0,SV

0x1A2600#

TOR *base);
extern long RotAverage3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
            long *sxy0,long *sxy1,long *sxy2,long *p,long *flag);
extern long RotAverage4(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
            long *sxy0,long *sxy1,long *sxy2,long *sxy3,
            long *p,long *flag);
extern long RotNclip3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
            long *sxy0,long *sxy1,long *sxy2,long *p,long *otz,
            long *flag);
extern long RotNclip4(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
            long *sxy0,long *sxy1,l

0x1A2C00#

OR *v5,CVECTOR *v6,
            long *sxy0,long *sxy1,long *sxy2,
            CVECTOR *v7,CVECTOR *v8,CVECTOR *v9,
            long *otz,long *flag);                    
extern long RotColorMatDpq(SVECTOR *v0,SVECTOR *v1,CVECTOR *v2,long *sxy,
            CVECTOR *v3,long matc,long flag);
extern void ColorMatDpq(SVECTOR *v0,CVECTOR *v1,long p,CVECTOR *v2,long matc);
extern void ColorMatCol(SVECTOR *v0,CVECTOR *v1,CVECTOR *v2,long matc);
extern void LoadAverage12(VECTOR *v0,VECTOR *v1,long p0,long p1,VECTOR *v2);
extern void LoadAverageShort12(SVECTOR *v0,SVECTOR *v1,long p0,long p1,
            SVECTOR *v2);
extern void LoadAverage0(VECTOR *v0,VECTOR *v1,long p0,long p1,VECTOR *v2);
extern void LoadAverageShort0(SVECTOR *v0,SVECTOR *v1,long p0,long p1,
            SVECTOR *v2);
extern void LoadAverageByte(u_char *v0,u_char *v1,long p0,long p1,u_char *v2);
extern void LoadAverageCol(u_char *v0,u_char *v1,long p0,long p1,u_char *v2);
extern long VectorNormal(VECTOR *v0, VECTOR *v1);
extern long VectorNormalS(VECTOR *v0, SVECTOR *v1);
extern long Vector

0x1A3400#

t id,int backc);
extern void RotPMD_G4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_FT4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_GT4(long *pa,u_long *ot,int otlen,int id,int backc);

extern void RotPMD_SV_F3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_G3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_FT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_FT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_GT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);


extern void InitClip(EVECTOR *evbfad,long hw,long vw,long h,long n

0x1AB200#

GsOT * ot, int shift, u_long * scratch);

    void    GsSortSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortSpriteB(GsSPRITE * sp, GsOT * ot, unsigned short pri,
                unsigned short flip);
    void    GsSortFastSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortFastSpriteB(GsSPRITE * sp, GsOT * ot, unsigned short pri,
                unsigned short flip);
    void    GsSortFlipSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortBg(GsBG * bg, GsOT * ot, unsigned short pri);
    void    GsSortFastBg(GsBG * bg, GsOT * ot, unsigned short pri);
    void    GsInitFixBg16(GsBG * bg, u_long * work);
    void    GsSortFixBg16(GsBG * bg, u_long * work, GsOT * otp, unsigned short pri);
    void    GsInitFixBg32(GsBG * bg, u_long * work);
    void    GsSortFixBg32(GsBG * bg, u_long * work, GsOT * otp, unsigned short pri);
    void    GsSortLine(GsLINE * lp, GsOT * ot, unsigned short pri);
    void    GsSortGLine(GsGLINE * lp, GsOT * ot, unsigned short pri);
    void    GsSortBoxFill(GsBOXF * bp, GsOT * ot, unsigned short pri);
    void    GsSortPoly(void *pp, GsOT * ot, unsigned short pri);

    void    GsClearOt(unsigned short offset, unsigned short point, GsOT * otp);
    GsOT   *GsSortOt(GsOT * ot_src, GsOT * ot_dest);
    GsOT   *GsCutOt(GsOT * ot_src, GsOT * ot_dest);
    void    GsDefDispBuff(unsigned short x0, unsigned short y0, unsigned short x1, unsigned short y1);
    void    GsSortClear(unsigned char, unsigned char, unsigned char, GsOT *);
    void    GsGetTimInfo(unsigned long *im, GsIMAGE * tim);

0x1ABC00#

 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,
                         int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divF3NL(TMD_P_F3 * 

0x1AC400#

atch);
    PACKET *GsA4divG3NL(TMD_P_G3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divNG3(TMD_P_NG3 * op, VERT * vp, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divG4L(TMD_P_G4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divG4LFG(TMD_P_G4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                         int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divG4NL(TMD_P_G4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divNG4(TMD_P_NG4 * op, VERT * vp, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTF3L(TMD_P_TF3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTF3LFG(TMD_P_TF3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
              

0x1ACA00#

np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTF4NL(TMD_P_TF4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                         int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTNF4(TMD_P_TNF4 * op, VERT * vp, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTF4LM(TMD_P_TF4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTF4LFGM(TMD_P_TF4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTF4NLM(TMD_P_TF4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                         int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTNF4M(TMD_P_TNF4 * op, VERT * vp, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTG3L(TMD_P_TG3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTG3LFG(TMD_P_TG3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTG3NL(TMD_P_TG3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                         int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTNG3(TMD_P_TNG3 * op, VERT * vp, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTG4L(TMD_P_TG4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int s

0x1AD200#

k, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTG4LFGM(TMD_P_TG4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTG4NLM(TMD_P_TG4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                         int shift, GsOT * ot, u_long * scratch);
    PACKET *GsA4divTNG4M(TMD_P_TNG4 * op, VERT * vp, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
    PACKET *GsTMDfastF3GL(TMD_P_F3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastF3GLFG(TMD_P_F3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastF3GNL(TMD_P_F3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG3GL(TMD_P_G3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG3GLFG(TMD_P_G3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsTMDfastG3GNL(TMD_P_G3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsPrstF3GL(TMD_P_F3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsPrstF3GLFG(TMD_P_F3G *op, VERT *vp, VERT *np, PACKET *pk,
                        int n, int shift, GsOT *ot, u_long *scratch);
    PACKET *GsPrstF3GNL(TMD_P_F3G *op, VERT *vp, VERT *np, PACKET *pk

0x1ADC00#

t, 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, PACKET *pk, 
                        int n, int shift, GsOT *ot, u_long *scratch);
    PA

0x1AE400#

D_P_TF4 *op, VERT *vp, VERT *np, PACKET *pk, 
                        int n, int shift, GsOT *ot, u_long *scratch);







 
extern RECT CLIP2;       
extern short PSDBASEX[2], PSDBASEY[2];   
extern short PSDIDX;         
extern u_long PSDCNT;        
extern _GsPOSITION POSITION;     
extern DRAWENV GsDRAWENV;    
extern DISPENV GsDISPENV;    
extern MATRIX GsLSMATRIX;    
extern MATRIX GsWSMATRIX;    
extern MATRIX GsWSMATRIX_ORG;    
extern long HWD0, VWD0;      
extern MATRIX GsLIGHTWSMATRIX;   
extern MATRIX GsIDMATRIX;    
extern MATRIX GsIDMATRIX2;   
extern PACKET *GsOUT_PACKET_P;   
extern long GsADIVZ;         
extern short GsADIVW, GsADIVH;   
extern int GsLIGHT_MODE;     
extern u_long GsMATE_C, GsLMODE, GsLIGNR, GsLIOFF, GsZOVER, GsBACKC, GsNDIV;
extern u_long GsTRATE, GsTON, GsDISPON;


# 1133 "c:/psx/include/libgs.h" 3


# 1244 "c:/psx/include/libgs.h" 3


# 1355 "c:/psx/include/libgs.h" 3


# 1466 "c:/psx/include/libgs.h" 3



# 7 "m_mset0.c" 2

# 1 "..\\include/k_file.h" 1
 
 
 
 
 
 
 
 
 




#

0x1AEA00#

# 233 "c:/psx/include/r3000.h" 3












# 11 "c:/psx/include/kernel.h" 2 3




# 1 "c:/psx/include/asm.h" 1 3
 


 







































# 77 "c:/psx/include/asm.h" 3



 







































 




































# 15 "c:/psx/include/kernel.h" 2 3



  











































































struct ToT {
    unsigned long *head;
    long size;
};

struct TCBH {
    struct TCB *entry;   
    long flag;
};

struct TCB {
    long status;
    long mode;
    unsigned long reg[40 ];  
    long system[6];          
};

struct EvCB {
    unsigned long desc; 
    long status;
    long spec;
    long mode;
    long (*FHandler)();
    long system[2];          
};


struct EXEC {                   
        unsigned long pc0;      
        unsigned long gp0;      
        unsigned long t_addr;   
        unsigned long t_size;   
        unsigned long d_addr;   
        unsigned long d_size;   
        unsigned long b_addr;   
        unsigned long b_size;   
    unsigned long s_addr;
    unsigned long s_size;
    unsigned long sp,fp,gp,ret,base;
};


struct XF_HDR {
    char key[8];
    unsigned long text;
    unsigned long data;
    struct 

0x1AF200#

* );
typedef void ( *DslRCB )( u_char, u_char*, u_long* );

 


typedef struct {
    u_char minute;       
    u_char second;       
    u_char sector;       
    u_char track;        
} DslLOC;

 


typedef struct {
    u_char file;         
    u_char chan;         
    u_short pad;
} DslFILTER;

 


typedef struct {
    u_char val0;         
    u_char val1;         
    u_char val2;         
    u_char val3;         
} DslATV;

 






typedef struct {
    DslLOC pos;      
    u_long size;         
    char name[ 16 ];     
} DslFILE;


 


typedef struct {
    u_short id;
    u_short type;
    u_short secCount;
    u_short nSectors;
    u_long frameCount;
    u_long frameSize;

    u_short width;
    u_short height;
    u_long dummy1;
    u_long dummy2;
    DslLOC loc;
} StHEADER;      






















 







void StSetRing( u_long* ring_addr, u_long ring_size );
void StClearRing( void );
void StUnSetRing( void );
void StSetStream( u_long mode, u_long start_frame, u_long end_frame,
  void ( *func1 )(), void ( *func2 )() );
void StSetEmulate( u_long* addr, u_long mode, u_long start_frame,
  u_long end_frame, void ( *func1 )(), void ( *func2 )() );
u_long StFreeRing( u_long* base );
u_long StGetNext( u_long** addr, u_long** header );
u_long StGetNextS( u_long** addr, u_long** header );
u_short StNextStatus( u_long** addr, u_long** header );
void StRingStatus( short* free_sectors, short* over_sectors );
void StSetMask( u_long mask, u_long start, u_long end );
void StCdInterrupt( void );
int StGetBackloc( DslLOC* loc );
int StSetChanne

0x1AFA00#

u_char DsStatus( void );
int DsShellOpen( void );

int DsMix( DslATV* vol );
int DsGetSector( void* madr, int size );
int DsGetSector2( void* madr, int size );
int DsGetToc( DslLOC* loc );
void ( *DsDataCallback( void ( *func )() ) );
int DsDataSync( int mode );
DslLOC* DsIntToPos( int i, DslLOC* p );
int DsPosToInt( DslLOC* p );
int DsSetDebug( int level );
DslLOC* DsLastPos( DslLOC* p );
u_char DsLastCom( void );

char* DsComstr( u_char com );
char* DsIntstr( u_char intr );

int DsStartReadySystem( DslRCB func, int count );
void DsEndReadySystem( void );
int DsReadySystemMode( int mode );

int DsControlF( u_char com, u_char* param );
int DsControl( u_char com, u_char* param, u_char* result );
int DsControlB( u_char com, u_char* param, u_char* result );

int DsRead( DslLOC* pos, int sectors, u_long* buf, int mode );
int DsReadSync( u_char* result );
DslCB DsReadCallback( DslCB func );
void DsReadBreak( void );
int DsRead2( DslLOC* pos, int mode );

DslFILE* DsSearchFile( DslFILE* fp, char* name );
int DsReadFile( char* file, u_long* addr, int nbyte );
struct EXEC* DsReadExec( char* file );
int DsPlay( int mode, int* tracks, int offset );






# 14 "..\\include/k_file.h" 2


typedef struct {                             
             char   name[32];                
    unsigned long   size;                    
    unsigned long   address;                 
    unsigned long   offset;                  
    unsigned long   handle;                  
} FILE;

void    file_init( void );
int     load_file( int, unsigned long, unsigned long, unsigned long );



# 8 "m_mset0.c"

0x1B0200#

   flg;
    MATRIX          matrix;
    MATRIX          workm;
    SVECTOR         rot;
    struct _GsCOORDUNIT *super;
}   GsCOORDUNIT;

typedef struct {
    MATRIX      view;
    GsCOORDUNIT *super;
}       GsVIEWUNIT;

typedef struct {
    long        vpx, vpy, vpz;
    long        vrx, vry, vrz;
    long        rz;
    GsCOORDUNIT     *super;
}       GsRVIEWUNIT;

typedef struct {
    GsCOORDUNIT *coord;  
    unsigned long   *primtop;
}       GsUNIT;

typedef struct {
    unsigned long   type;
    unsigned long   *ptr;
}   GsTYPEUNIT;

typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
}   GsARGUNIT;

typedef struct {
    DVECTOR     vec;
    short       otz;
    short       p;
}       GsWORKUNIT;

typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    unsigned long   *primtop;
    SVECTOR     *vertop;
    SVECTOR     *nortop;
}   GsARGUNIT_NORMAL;

typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    unsigned long   *primtop;
    SVECTOR     *vertop;
    GsWORKUNIT  *vertop2;
    SVECTOR     *nortop;
    SVECTOR     *nortop2;
}   GsARGUNIT_SHARED;
    
typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    unsigned long   *imagetop;
    unsigned long   *cluttop;
}   GsARGUNIT_IMAGE;

typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    unsigned long   *polytop;
    unsigned long   *boxtop;
    unsigned long   *pointtop;
    SVECTOR     *nortop;
}   G

0x1B0A00#

;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    unsigned long   *lparam;
    GsCOORDUNIT *coord;
    GsCOORDUNIT *rcoord;
}   GsARGUNIT_LIGHT;

typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    u_long      *coord_sect;
    long        *mimepr;
    u_long      mimenum;
    u_short     mimeid, reserved;
    u_long      *mime_diff_sect;
}   GsARGUNIT_JntMIMe;


typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    u_long      *coord_sect;
    u_short     mimeid, reserved;
    u_long      *mime_diff_sect;
}   GsARGUNIT_RstJntMIMe;

typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    long        *mimepr;
    u_long      mimenum;
    u_short     mimeid, reserved;
    u_long      *mime_diff_sect;
    SVECTOR     *orgs_vn_sect;
    SVECTOR     *vert_sect;
    SVECTOR     *norm_sect;
}   GsARGUNIT_VNMIMe;

typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    u_short     mimeid, reserved;
    u_long      *mime_diff_sect;
    SVECTOR     *orgs_vn_sect;
    SVECTOR     *vert_sect;
    SVECTOR     *norm_sect;
}   GsARGUNIT_RstVNMIMe;
  
typedef struct {
    unsigned long   *primp;
    GsOT        *tagp;
    int     shift;
    int     offset;
    PACKET      *out_packetp;
    long        header_size;
    unsigned long   *htop;
    unsigned long   *ctop;
    unsigned long   *ptop;
} GsARGUNIT_ANIM;

typedef struct {
    short       idx;
    u_char      sid;
    u_char      pad;
} GsSEH;

typedef struct {
    u_long      rewrite_idx;
    u_shor

0x1B1200#

   extern u_long *GsU_00000008(GsARGUNIT *);
    extern u_long *GsU_00000009(GsARGUNIT *);
    extern u_long *GsU_0000000c(GsARGUNIT *);
    extern u_long *GsU_0000000d(GsARGUNIT *);
    extern u_long *GsU_00000010(GsARGUNIT *);
    extern u_long *GsU_00000020(GsARGUNIT *);
    extern u_long *GsU_00000011(GsARGUNIT *);
    extern u_long *GsU_00000014(GsARGUNIT *);
    extern u_long *GsU_00000015(GsARGUNIT *);
    extern u_long *GsU_00020008(GsARGUNIT *);
    extern u_long *GsU_00020009(GsARGUNIT *);
    extern u_long *GsU_0002000c(GsARGUNIT *);
    extern u_long *GsU_0002000d(GsARGUNIT *);
    extern u_long *GsU_00020010(GsARGUNIT *);
    extern u_long *GsU_00020011(GsARGUNIT *);
    extern u_long *GsU_00020014(GsARGUNIT *);
    extern u_long *GsU_00020015(GsARGUNIT *);
    extern u_long *GsU_0000000a(GsARGUNIT *);
    extern u_long *GsU_0000000b(GsARGUNIT *);
    extern u_long *GsU_0000000e(GsARGUNIT *);
    extern u_long *GsU_0000000f(GsARGUNIT *);
    extern u_long *GsU_00000012(GsARGUNIT *);
    extern u_long *GsU_00000013(GsARGUNIT *);
    extern u_long *GsU_00000016(GsARGUNIT *);
    extern u_long *GsU_00000017(GsARGUNIT *);
    extern u_long *GsU_00030008(GsARGUNIT *);
    extern u_long *GsU_00030009(GsARGUNIT *);
    extern u_long *GsU_0003000c(GsARGUNIT *);
    extern u_long *GsU_0003000d(GsARGUNIT *);

0x1B1C00#

long *GsU_0005004d(GsARGUNIT *);
    extern u_long *GsU_00050050(GsARGUNIT *);
    extern u_long *GsU_00050051(GsARGUNIT *);
    extern u_long *GsU_00050054(GsARGUNIT *);
    extern u_long *GsU_00050055(GsARGUNIT *);
    extern u_long *GsU_00040058(GsARGUNIT *);
    extern u_long *GsU_00040059(GsARGUNIT *);
    extern u_long *GsU_0004005c(GsARGUNIT *);
    extern u_long *GsU_0004005d(GsARGUNIT *);
    extern u_long *GsU_01000000(GsARGUNIT *);
    extern u_long *GsU_0100000c(GsARGUNIT *);
    extern u_long *GsU_0100000d(GsARGUNIT *);
    extern u_long *GsU_01000014(GsARGUNIT *);
    extern u_long *GsU_01000015(GsARGUNIT *);
    extern u_long *GsU_0102000c(GsARGUNIT *);
    extern u_long *GsU_0102000d(GsARGUNIT *);
    extern u_long *GsU_01020014(GsARGUNIT *);
    extern u_long *GsU_01020015(GsARGUNIT *);
    extern u_long *GsU_01040048(GsARGUNIT *);
    extern u_long *GsU_01040049(GsARGUNIT *);
    extern u_long *GsU_0104004c(GsARGUNIT *);
    extern u_long *GsU_0104004d(GsARGUNIT *);
    extern u_long *GsU_01040050(GsARGUNIT *);
    extern u_long *GsU_01

0x1B2400#

UNIT *);
    extern u_long *GsU_0020000d(GsARGUNIT *);
    extern u_long *GsU_00200010(GsARGUNIT *);
    extern u_long *GsU_00200011(GsARGUNIT *);
    extern u_long *GsU_00200014(GsARGUNIT *);
    extern u_long *GsU_00200015(GsARGUNIT *);
    extern u_long *GsU_0120000c(GsARGUNIT *);
    extern u_long *GsU_0120000d(GsARGUNIT *);
    extern u_long *GsU_01200014(GsARGUNIT *);
    extern u_long *GsU_01200015(GsARGUNIT *);
    extern u_long *GsU_00240048(GsARGUNIT *);
    extern u_long *GsU_00240049(GsARGUNIT *);
    extern u_long *GsU_0024004c(GsARGUNIT *);
    extern u_long *GsU_0024004d(GsARGUNIT *);
    extern u_long *GsU_00240050(GsARGUNIT *);
    extern u_long *GsU_00240051(GsARGUNIT *);
    extern u_long *GsU_00240054(GsARGUNIT *);
    extern u_long *GsU_00240055(GsARGUNIT *);
    extern u_long *GsU_01240048(GsARGUNIT *);
    extern u_long *GsU_01240049(GsARGUNIT *);
    extern u_long *GsU_0124004c(GsARGUNIT *);
    extern u_long *GsU_0124004d(GsARGUNIT *);
    extern u_long *GsU_01240050(GsARGUNIT *);
    extern u_long *GsU_01240051(GsARGUNIT *);
    e

0x1B2C00#

 *GsU_000c0051(GsARGUNIT *);
    extern u_long *GsU_000c0054(GsARGUNIT *);
    extern u_long *GsU_000c0055(GsARGUNIT *);
    extern u_long *GsU_0100020d(GsARGUNIT *);
    extern u_long *GsU_01000215(GsARGUNIT *);

    extern u_long *GsU_00100008(GsARGUNIT *);
    extern u_long *GsU_00100009(GsARGUNIT *);
    extern u_long *GsU_0010000a(GsARGUNIT *);
    extern u_long *GsU_0010000b(GsARGUNIT *);
    extern u_long *GsU_0010000c(GsARGUNIT *);
    extern u_long *GsU_0010000d(GsARGUNIT *);
    extern u_long *GsU_0010000e(GsARGUNIT *);
    extern u_long *GsU_0010000f(GsARGUNIT *);
    extern u_long *GsU_00100010(GsARGUNIT *);
    extern u_long *GsU_00100011(GsARGUNIT *);
    extern u_long *GsU_00100012(GsARGUNIT *);
    extern u_long *GsU_00100013(GsARGUNIT *);
    extern u_long *GsU_00100014(GsARGUNIT *);
    extern u_long *GsU_00100015(GsARGUNIT *);
    extern u_long *GsU_00100016(GsARGUNIT *);
    extern u_long *GsU_00100017(GsARGUNIT *);
    extern u_long *GsU_00300008(GsARGUNIT *);
    extern u_long *GsU_00300009(GsARGUNIT *);
    extern u_long *GsU_0030

0x1B3400#

IT *);
    extern u_long *GsU_0114004c(GsARGUNIT *);
    extern u_long *GsU_0114004d(GsARGUNIT *);
    extern u_long *GsU_01140050(GsARGUNIT *);
    extern u_long *GsU_01140051(GsARGUNIT *);
    extern u_long *GsU_01140054(GsARGUNIT *);
    extern u_long *GsU_01140055(GsARGUNIT *);
    extern u_long *GsU_01340048(GsARGUNIT *);
    extern u_long *GsU_01340049(GsARGUNIT *);
    extern u_long *GsU_0134004c(GsARGUNIT *);
    extern u_long *GsU_0134004d(GsARGUNIT *);
    extern u_long *GsU_01340050(GsARGUNIT *);
    extern u_long *GsU_01340051(GsARGUNIT *);
    extern u_long *GsU_01340054(GsARGUNIT *);
    extern u_long *GsU_01340055(GsARGUNIT *);

    extern u_long *GsU_0020000a(GsARGUNIT *);
    extern u_long *GsU_0020000b(GsARGUNIT *);
    extern u_long *GsU_0020000e(GsARGUNIT *);
    extern u_long *GsU_0020000f(GsARGUNIT *);
    extern u_long *GsU_00200012(GsARGUNIT *);
    extern u_long *GsU_00200013(GsARGUNIT *);
    extern u_long *GsU_00200016(GsARGUNIT *);
    extern u_long *GsU_00200017(GsARGUNIT *);
    extern u_long *GsU_0030000a(GsARGUNIT *);
    e

0x1B3A00#

(GsARGUNIT *);
    extern u_long *GsU_0120000f(GsARGUNIT *);
    extern u_long *GsU_01200016(GsARGUNIT *);
    extern u_long *GsU_01200017(GsARGUNIT *);

    extern u_long *GsU_0002000a(GsARGUNIT *);
    extern u_long *GsU_0002000b(GsARGUNIT *);
    extern u_long *GsU_0002000e(GsARGUNIT *);
    extern u_long *GsU_0002000f(GsARGUNIT *);
    extern u_long *GsU_00020012(GsARGUNIT *);
    extern u_long *GsU_00020013(GsARGUNIT *);
    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_00000000(GsARGUNIT *);

    extern u_long *GsU_05000000(GsARGUNIT *);
    extern u_long *GsU_05000001(GsARGUNIT *);

     
    extern u_long *GsU_07000100(GsARGUNIT *);
    extern u_long *GsU_07010100(GsARGUNIT *);
    extern u_long *GsU_07020100(GsARGUNIT *);
    extern u_long *GsU_07030100(GsARGUNIT *);

     
    extern u_long *GsU_07000200(GsARGUNIT *);
    extern u_long *GsU_07010200(GsARGUNIT *);
    extern u_long *GsU_07020200(GsARGUNIT *);
    extern u_long *GsU_07030200(GsARGUNIT *);
    
     
    extern u_long *GsU_03000000(GsARGUNIT_ANIM *);
    
     
    extern int  GsU_03000001(GsARGUNIT_ANIM *);
    extern int  GsU_03000002(GsARGUNIT_ANIM *);
    extern int  GsU_03000003(GsARGUNIT_ANIM *);
    extern int  GsU_03000009(GsARGUNIT_ANIM *);
    extern int  GsU_0300000a(GsARGUNIT_ANIM *);
    extern int  GsU_0300000b(GsARGUNIT_ANIM *);
    extern int  GsU_03000010(

0x1B4200#

;
    extern int  GsU_0300002a(GsARGUNIT_ANIM *);
    extern int  GsU_0300002b(GsARGUNIT_ANIM *);
    extern int  GsU_03000030(GsARGUNIT_ANIM *);
    extern int  GsU_03000031(GsARGUNIT_ANIM *);
    extern int  GsU_03000032(GsARGUNIT_ANIM *);
    extern int  GsU_03000033(GsARGUNIT_ANIM *);
    extern int  GsU_03000039(GsARGUNIT_ANIM *);
    extern int  GsU_0300003a(GsARGUNIT_ANIM *);
    extern int  GsU_0300003b(GsARGUNIT_ANIM *);
    extern int  GsU_03000100(GsARGUNIT_ANIM *);
    extern int  GsU_03000111(GsARGUNIT_ANIM *);
    extern int  GsU_03000112(GsARGUNIT_ANIM *);
    extern int  GsU_03000119(GsARGUNIT_ANIM *);
    extern int  GsU_0300011a(GsARGUNIT_ANIM *);
    extern int  GsU_03000901(GsARGUNIT_ANIM *);
    extern int  GsU_03000902(GsARGUNIT_ANIM *);
    extern int  GsU_03000909(GsARGUNIT_ANIM *);
    extern int  GsU_0300090a(GsARGUNIT_ANIM *);
    extern int  GsU_03000910(GsARGUNIT_ANIM *);
    extern int  GsU_03000911(GsARGUNIT_ANIM *);
    extern int  GsU_03000912(GsARGUNIT_ANIM *);
    extern int  GsU_03000919(GsARGUNIT_ANIM *);
    extern int  GsU_0300091a(GsARGUNIT_ANIM *);
    extern int  GsU_03001010(GsARGUNIT_ANIM *);
    extern int  GsU_03001011(GsARGUNIT_ANIM *);
    extern int  GsU_03001012(GsARGUNIT_ANIM *);
    extern int  GsU_03001013(GsARGUNIT_ANIM *);
    extern int  GsU_03001019(GsARGUNIT_ANIM *);
    extern int  GsU_0300101a(GsARGUNIT_ANIM *);
    extern int  GsU_0300101b(GsARGUNIT_ANIM *);
    extern int  GsU_03001020(GsARGUNIT_ANIM *);
    extern int  GsU_03001021(GsARGUNIT_ANIM *);
    extern int  GsU_03001022(GsARGUNIT_ANIM *);
    extern int  GsU_03001023(GsARGUNIT_ANIM *);
    ex

0x1B4C00#

IM *);
    extern int  GsU_03002019(GsARGUNIT_ANIM *);
    extern int  GsU_0300201a(GsARGUNIT_ANIM *);
    extern int  GsU_0300201b(GsARGUNIT_ANIM *);
    extern int  GsU_03002020(GsARGUNIT_ANIM *);
    extern int  GsU_03002021(GsARGUNIT_ANIM *);
    extern int  GsU_03002022(GsARGUNIT_ANIM *);
    extern int  GsU_03002023(GsARGUNIT_ANIM *);
    extern int  GsU_03002029(GsARGUNIT_ANIM *);
    extern int  GsU_0300202a(GsARGUNIT_ANIM *);
    extern int  GsU_0300202b(GsARGUNIT_ANIM *);
    extern int  GsU_03002030(GsARGUNIT_ANIM *);
    extern int  GsU_03002031(GsARGUNIT_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(G

0x1B5600#

IT_ANIM *);
    extern int  GsU_03004011(GsARGUNIT_ANIM *);
    extern int  GsU_03004012(GsARGUNIT_ANIM *);
    extern int  GsU_03004013(GsARGUNIT_ANIM *);
    extern int  GsU_03004019(GsARGUNIT_ANIM *);
    extern int  GsU_0300401a(GsARGUNIT_ANIM *);
    extern int  GsU_0300401b(GsARGUNIT_ANIM *);
    extern int  GsU_03004020(GsARGUNIT_ANIM *);
    extern int  GsU_03004021(GsARGUNIT_ANIM *);
    extern int  GsU_03004022(GsARGUNIT_ANIM *);
    extern int  GsU_03004023(GsARGUNIT_ANIM *);
    extern int  GsU_03004029(GsARGUNIT_ANIM *);
    ext

0x1BC400#

tern void M_asonde_cls(void);
 
extern void M_cncount(void);
extern void M_byoki_main(void);
extern void M_byoki_mosset(void);
extern void M_upin(void);
extern void M_upout(void);
extern void M_upchout(void);
extern void M_up_kmchg(void);

 
extern signed int M_dogmt02(int c);
extern signed int M_dogmt33(int c);
 
extern signed int M_dpmov(int sx,int sy,int ex,int ey,int v);
extern void M_dpmovs0(int n,int ct,int hn,int yx,int yy);
extern signed int M_dogbakset(void);
extern void M_dogbbakset(int bs);
extern void M_pusxy(int c,int x,int y);
extern void M_setbpus(void);
extern void M_setbp(int kb,int sc,int nx,int ny);
extern void M_bpinit(void);
extern signed int M_xyh(int x0,int y0,int x1,int y1);
extern signed int M_movgom(int sx,int sy,int ex,int ey,int tv,int mh);
extern signed int M_poiv(int sx,int sy,int ex,int ey);
extern signed int M_v1v2(int v1,int v2);
extern signed int M_vset(int v);
extern void M_movexy(int nx,int ny,int v,int h);
extern signed int M_lxyins(int x,int y)

0x1BCA00#

xtern signed int movbreak(int nx,int ny,int nv,int nxp);
extern signed int nextpoint(void);
extern signed int line_chk(void);
extern signed int mmas_set(int sx,int sy,int ex,int ey,int md);
 
extern int M_iv_chk(void);   
extern int M_ivch_esa(void); 
extern void M_ivch_esacls(void);
extern int M_ivch_byoki(void);
extern void M_ivch_byokicls(void);
extern int M_ivch_tataku(void);
extern void M_ivch_tatakucls(void);
extern int M_ivch_sanpo(void);
extern void M_ivch_sanpocls(void);
extern int M_ivch_unko(void);
extern void M_ivch_unkocls(void);
extern int M_ivch_like(void);
extern void M_ivch_likecls(void);
extern signed int M_ivch_unkos0(void);
extern signed int M_ivch_goch(void);
 
extern void M_cpad(void);
extern void M_set_ohrroom(void);
extern void M_pat_move(void);
extern void tuma_xy(int n);
extern void tuma_axy(int n,int md);
extern signed int M_pat_s00(void);
 
extern signed int M_rnd(int dmax);
extern void M_bgm_set(void);
extern int  M_kigen_updown(int n);
extern int  M_gei_chyarenge(int g);
extern int  M_gei_updown(int g,int n);
extern void M_sanpo_set(void);
extern void M_rtxset_op(void);
extern void M_rtxset_rm(void);
extern void M_rtxchg_op(int p,int t);
extern void M_rtxchg_opg(void);
extern void M_rtxchg_rm(int t);
extern void M_rtxchg_col(int t);
extern void M_rtxchg_cols(int t);
extern void M_rtxcol_init(void);
extern void M_rtxcol_add(int b);
extern void M_rtxcol_del(int b);
extern void M_rtxcol_s0(void);
extern void M_acschg_col(int t);
extern void M_

0x1BD200#

# 17 "..\\include/i_table.h" 2


 

extern unsigned long    _i_motbl1[];

 

extern unsigned long    _i_motbl2[];

 

extern GsF_LIGHT        i_light[6];                  
extern          long    i_amb[6];                    

 

extern unsigned long    i_sys_tbl1[];

 

extern unsigned long    i_sys_tbl2[];



# 17 "m_mset0.c" 2

# 1 "..\\include/i_work.h" 1
 
 
 
 
 




 

# 1 "c:/psx/include/sys\\types.h" 1 3
 


 



# 80 "c:/psx/include/sys\\types.h" 3

# 12 "..\\include/i_work.h" 2










 

extern unsigned short   i_db_stat;                   

 

extern unsigned char    i_body_tim1[4160];           
extern unsigned char    i_body_tim2[2112];           

extern unsigned long    i_hmd_adr[16 ];  
extern unsigned long    i_hmd_siz[16 ];  
extern          char    i_kensyu[16 ];       
extern          char    i_now_motion;                



extern unsigned char    i_f_tbl[89 ];            
extern unsigned char    i_mabataki;                  

 
extern          int     i_mot_num;                   
 

 

extern GsIMAGE          i_f_tim;                     
extern          int     i_font_xy[4];                
extern unsigned short   i_font_pal;                  
extern unsigned char    i_font_rts;                  
extern unsigned char    i_font_wait[2];              
extern unsigned short   *i_f_str_adr;                
extern          char    i_font_p[3];                 
extern          char    i_font_cnt[3];               
extern GsSPRITE         i_f_data1[16 * 8  ];         
extern GsSPRITE         i_f_data2[8];                
extern GsSPRITE         i_f_data3[1];                
extern unsigned short   i_font_stat;                 
extern unsigned c

0x1BDC00#

[hn]+1; 

}
 
void M_mosset000(void)
{
    if (M_rnd(30)>10){
         
        switch (M_seikak[Mn]){
        case 0: 
            M_mcset_sub(37); 
            break;
        case 1: 
            M_mcset_sub(0); 
            M_mcset_sub(0); 
            break;
        case 2: 
            M_mcset_sub(37); 
            break;
        case 3: 
            M_mcset_sub(35); 
            break;
        case 4: 
            if (M_rnd(10)>4){
                M_mcset_sub(34); 
                M_mcset_sub(33); 
            }else{              
                M_mcset_sub(0); 
                M_mcset_sub(17); 
            }
            break;
        case 5: 
            M_mcset_sub(35); 
            break;
        case 6: 
            M_mcset_sub(27); 
            break;
        case 7: 
            M_mcset_sub(0); 
            break;
        case 8: 
            if (M_rnd(20)>2){
                M_mcset_sub(49); 
            }else{
                M_mcset_sub(45); 
                M_mcset_sub(11); 
                M_mcset_sub(46); 
            }
            break;
        case 9: 
            M_mcset_sub(51); 
            break;
        case 10:    
            M_mcset_sub(0); 
            break;
        default:break;

        }       
    }else{
        M_mcset_sub(0); 
    }

}





 
void M_mosset10(void)
{
int nx,ny,ex,ey,nh,i;
    nh=M_heyano[Mn];
    i=0;
    M_msc[Mn][0]=1; 
     
    nx=M_dogxy[Mn*2

0x1BE400#

eak;
                    case 1:M_mcset_sub(37);break;
                    case 2:M_mcset_sub(37);M_mcset_sub(41);M_mcset_sub(35);M_mcset_sub(41);break;
                    case 3:M_mcset_sub(37);break;
                    case 4:
                        if (M_hfrag[10]>120){
                            M_mcset_sub(45);M_mcset_sub(1);M_mcset_sub(18);M_mcset_sub(19);
                            M_mcset_sub(1);M_mcset_sub(62);M_mcset_sub(69);M_mcset_sub(67);
                            M_mcset_sub(67);
                            M_mcset_sub(67);M_mcset_sub(67);M_mcset_sub(67);M_mcset_sub(71);
                            M_mcset_sub(66);M_mcset_sub(46);M_mcset_sub(3);
                            M_hfrag[10]=-100;
                        }else{
                            if(M_rnd(4)==0){
                                M_mcset_sub(3);M_mcset_sub(0);
                            }else{
                                M_mcset_sub(0);M_mcset_sub(3);M_mcset_sub(0);
                            }
                        }
                        break;
                    case 5:
                        if (M_rnd(3)==0){
                            M_mcset_sub(0);M_mcset_sub(5);M_mcset_sub(0);
                            M_mcset_sub(22);M_mcset_sub(23);
                        }else{
                            M_mcset_sub(0);M_mcset_sub(29);M_mcset_sub(0);M_mcset_sub(35);
                        }
                        break;
                    case 6:
                        if (M_rnd(3)==0){
                            M_mcset_sub(17);M_mcset_s

0x1BEA00#

_sub(38);break;
                    case 2:M_mcset_sub(41);M_mcset_sub(22);M_mcset_sub(23);M_mcset_sub(41);break;
                    case 3:M_mcset_sub(37);break;
                    case 4:
                        if (M_hfrag[10]>120){
                            M_mcset_sub(45);M_mcset_sub(1);M_mcset_sub(18);M_mcset_sub(19);
                            M_mcset_sub(12);
                            M_mcset_sub(62);M_mcset_sub(69);M_mcset_sub(67);M_mcset_sub(67);
                            M_mcset_sub(67);M_mcset_sub(67);M_mcset_sub(71);
                            M_mcset_sub(66);M_mcset_sub(24);M_mcset_sub(25);
                            M_hfrag[10]=-100;
                        }else{
                            if(M_rnd(4)==0){
                                M_mcset_sub(22);M_mcset_sub(23);M_mcset_sub(0);
                            }else{
                                M_mcset_sub(0);M_mcset_sub(22);M_mcset_sub(23);M_mcset_sub(0);
                            }
                        }
                        break;
                    case 5:
                        if (M_rnd(3)==0){
                            M_mcset_sub(0);M_mcset_sub(0);M_mcset_sub(5);
                            M_mcset_sub(0);M_mcset_sub(22);M_mcset_sub(23);
                        }else{
                            M_mcset_sub(0);M_mcset_sub(29);M_mcset_sub(0);M_mcset_sub(35);
                        }
                        break;
                    case 6:
                        if (M_rnd(3)==0){
                            M_mcset_sub(17);M_mcset_sub(29);M_mcset_sub(27);M_mcset_sub(51);
                        }else{
                            M_mcset_sub(35);M_mcset_sub(22);M_mcset_sub(23);
                            M_mcset_sub(53);M_mcset_sub(27);
                        }
                        break;
                    case 7:
                        if (M_rnd(3)==0){
                            M_mcset_sub(3);
                        }else{
                            M_mcset_sub(29);M_mcset_sub(35);
                        }
                        break;
                    case 8:M_mcset_sub(3);M_mcset_sub(49);M_mcset_sub(35);break;
                    case 9:M_mcset_sub(0);M_mcset_sub(35);M_mcset_sub(3);M_mcset_sub(0);break;
                    default:break;
                }
            }
    }e

0x1BF200#

(67);M_mcset_sub(67);M_mcset_sub(71);
                            M_mcset_sub(66);M_mcset_sub(46);M_mcset_sub(3);
                            M_hfrag[10]=-200;
                        }else{
                            if(M_rnd(4)==0){
                                M_mcset_sub(3);M_mcset_sub(0);
                            }else{
                                M_mcset_sub(0);M_mcset_sub(3);M_mcset_sub(0);
                            }
                        }
                        break;
                    case 5:M_mcset_sub(5);M_mcset_sub(0);M_mcset_sub(3);break;
                    case 6:M_mcset_sub(17);M_mcset_sub(35);M_mcset_sub(0);break;
                    case 7:M_mcset_sub(35);M_mcset_sub(0);break;
                    case 8:M_mcset_sub(49);M_mcset_sub(35);M_mcset_sub(49);M_mcset_sub(49);break;
                    case 9:M_mcset_sub(51);M_mcset_sub(35);M_mcset_sub(51);M_mcset_sub(51);break;
                    default:break;
                }
            }else{
                 
                switch (M_seikak[Mn]){
                    case 0:M_mcset_sub(37);break;
                    case 1:M_mcset_sub(38);break;
                    case 2:M_mcset_sub(37);break;
                    case 3:M_mcset_sub(37);break;
                    case 4:
                        if (M_hfrag[10]>60){
                            M_mcset_sub(45);M_mcset_sub(1);M_mcset_sub(18);M_mcset_sub(19);
                            M_mcset_sub(12);
                            M_mcset_sub(62);M_mcset_sub(69);M_mcset_sub(67);M_mcset_sub(67);
                            M_mcset_sub(67);M_mcset_sub(67);
                            M_mcset_sub(67);M_mcset_sub(67);M_mcset_sub(67);M_mcset_sub(71);
                            M_mcset_sub(66);M_mcset_sub(24);M_mcset_sub(25);
                            M_hfrag[10]=-200;
                        }else{
                            if(M_rnd(4)==0){
                                M_mcset_sub(22);M_mcset_sub(23);M_mcset_sub(0);
                            }else{
                                M_mcset_sub(0);M_mcset_sub(22);M_mcset_sub(23);M_mcset_sub(0);
                            }
                        }
                        break;
                    case 5:M_mcset_sub(5);M_mcset_sub(

0x1BFC00#

mcset_sub(15);M_mcset_sub(16);M_mcset_sub(14);M_mcset_sub(15);
                    M_mcset_sub(16);M_mcset_sub(14);M_mcset_sub(15);M_mcset_sub(16);
                    M_mcset_sub(2);M_mcset_sub(48);
                    M_mcset_sub(46);M_mcset_sub(3);break;
                case 5:M_mcset_sub(2);M_mcset_sub(20);M_mcset_sub(21);M_mcset_sub(61);break;
                case 6:M_mcset_sub(2);M_mcset_sub(2);M_mcset_sub(78);break;
                case 7:M_mcset_sub(2);M_mcset_sub(2);M_mcset_sub(79);break;
                case 8:M_mcset_sub(2);M_mcset_sub(78);M_mcset_sub(78);break;
                case 9:M_mcset_sub(2);M_mcset_sub(79);M_mcset_sub(79);break;
            }
        }else{
            switch (M_seikak[Mn]){
                case 0:M_mcset_sub(64);M_mcset_sub(2);break;
                case 1:M_mcset_sub(2);M_mcset_sub(64);M_mcset_sub(2);break;
                case 2:M_mcset_sub(2);M_mcset_sub(64);M_mcset_sub(2);break;
                case 3:M_mcset_sub(2);M_mcset_sub(64);break;
                case 4:M_mcset_sub(2);M_mcset_sub(20);M_mcset_sub(21);break;
                case 5:M_mcset_sub(2);M_mcset_sub(20);M_mcset_sub(21);M_mcset_sub(2);break;
                case 6:M_mcset_sub(20);M_mcset_sub(21);

0x1C0400#

sub(1);M_mcset_sub(11);M_mcset_sub(1);break;
                    case 8:M_mcset_sub(50);M_mcset_sub(50);M_mcset_sub(36);M_mcset_sub(50);break;
                    case 9:M_mcset_sub(52);M_mcset_sub(52);M_mcset_sub(36);break;
                    default:break;
                }
        }else{
                switch (M_seikak[Mn]){
                    case 0:M_mcset_sub(1);M_mcset_sub(1);M_mcset_sub(14);break;
                    case 1:M_mcset_sub(1);M_mcset_sub(8);M_mcset_sub(9);M_mcset_sub(1);
                        M_mcset_sub(18);M_mcset_sub(19);break;
                    case 2:M_mcset_sub(1);M_mcset_sub(6);M_mcset_sub(8);M_mcset_sub(9);
                        M_mcset_sub(6);break;
                    case 3:M_mcset_sub(1);M_mcset_sub(36);M_mcset_sub(4);M_mcset_sub(24);
                        M_mcset_sub(25);break;
                    case 4:M_mcset_sub(1);M_mcset_sub(4);M_mcset_sub(1);break;
                    case 5:M_mcset_sub(1);M_mcset_sub(4);M_mcset_sub(24);M_mcset_sub(25);break;
                    case 6:M_mcset_sub(50);M_mcset_sub(24);M_mcset_sub(25);M_mcset_sub(36);
                        M_mcset_sub(24);M_mcset_sub(25);M_mcset_sub(46);break;
                    case 7:M_mcset_sub(1);M_mcset_sub(18);M_mcset_sub(19);M_mcset_sub(1);brea

0x1C0E00#

|((ln>1)&&(mc<2)&&(M_heya_chok[3]==0))){
        ex=M_xylock[Mn*4+1];
        ey=M_xylock[Mn*4+2];
        ev=M_xylock[Mn*4+3];
         
         
        cn0=M_lxyins2(ex,ey,M_heyano[Mn]); 
        if ((cn0!=0)||(ex==0)||(ey==0)){
            M_xylock[Mn*4]=0;
            return;
        }
         
        nh=M_heyano[Mn];
        i=0;
         
        nx=M_dogxy[Mn*2];
        ny=M_dogxy[Mn*2+1];
        nv=M_dogv[Mn];
        if ((abs(ex-nx)<210)&&(abs(ey-ny)<210)&&(M_v_chk(ev,nv,200)==0)){
             
            M_motion_chg(0);
            M_xylock[Mn*4]=0;
            return;
        }
        M_msc[Mn][0]=1; 
        M_mosset40i(0); 

0x1C1600#

            
                if (M_dpmov(nx,ny,x,y,M_vset(nv+ev))==0){   
                    M_mtarn(M_vset(nv+ev));             
                    tf=1;
                    if (M_xylock[Mn*4]!=0) M_xylock[Mn*4]=3;
                }
            }else{
                 
                if (M_dpmov(nx,ny,x,y,M_vset(nv+ev))==0){   
                    M_mtarn(M_vset(nv+ev));             
                    tf=1;
                    if (M_xylock[Mn*4]!=0) M_xylock[Mn*4]=3;
                }
            }
            if (tf==0){
                if (M_xylock[Mn*4]!=0) M_xylock[Mn*4]=2;
                if (M_dogbakset()==-1){
                     
 
                    M_mtarn(M_vset(nv+1024));               

                }
            }
        M_noline[Mn]=0;
        M_mcset_sub(

0x1C1A00#

;
        case 3:M_mcset_sub(45);M_mcset_sub(47);M_mcset_sub(69);break;
        case 4:M_mcset_sub(45);M_mcset_sub(47);M_mcset_sub(70);break;
        case 5:return(-1);
        case 6:M_mcset_sub(10);break;
         
        case 10:M_mcset_sub(46);break;
        case 12:M_mcset_sub(47);break;
        case 13:M_mcset_sub(47);M_mcset_sub(69);break;
        case 14:M_mcset_sub(47);M_mcset_sub(70);break;
        case 15:M_mcset_sub(46);break;
        case 16:M_mcset_sub(46);M_mcset_sub(10);break;
         
        case 20:M_mcset_sub(48);M_mcset_sub(46);break;
        case 21:M_mcset_sub(48);break;
        case 23:M_mcset_sub(69);break;
        case 24:M_mcset_sub(70);break;
        case 25:M_mcset_sub(48);M_mcset_sub(46);break;
        case 26:M_mcset_sub(48);M_mcset_sub(46);M_mcset_sub(10);break;
         
        case 30:M_mcset_sub(71);M_mcset_sub(48);M_mcset_sub(46);break;
        case 31:M_mcset_sub(71);M_mcset_sub(48);break;
        case 32:M_mcset_sub(71);break;
        case 34:M_mcset_sub(72);break;
        case 35:M_mcset_sub(71);M_mcset_sub(48);M_mcset_sub(46);break;
        case 36:M_mcset_sub(71);M_mcset_sub(48);M_mcset_sub(46);M_mcset_sub(10);break;
         
        case 40:M_mcset_sub(73);M_mcset_sub(48);M_mcset_sub(46);break;
        case 41:M_mcset_sub(73);M_mcset_sub(48);break;
        case 42:M_mcset_sub(73);break;
        case 43:M_mcset_sub(74);break;
        case 45:M_mcset_sub(73);M_mcset_sub(48);M_mcset_sub(46);break;
        case 46:M_mcset_sub(73);M_mcset_sub(48);M_mcset_sub(46);M_mcset_sub(10);break;
         
        case 50:M_mcset_sub(0);break;
        case 51:M_mcset_sub(45);break;
        case 52:M_mcset_sub(45);M_mcset_sub(47);break;
        case 53:M_mcset_sub(

0x1C2400#

>matrix.t[2]=hb2;       
   Hmd[0].coord->matrix.t[0]=hb0;       

}

0x1C2600#

iu $2,$2,%lo(M_dogmm) # low
    addu    $2,$3,$2
    sh  $18,0($2)
    .set    noreorder
    .set    nomacro
    j   $L239
    li  $2,4            # 0x00000004
    .set    macro
    .set    reorder

$L217:
    slt $2,$2,4
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L248
    lui $2,%hi(M_dogmm) # high
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_rnd
    li  $4,3            # 0x00000003
    .set    macro
    .set    reorder

    lh  $3,%lo(Mn)($19)
    #nop
    sll $3,$3,1
    addu    $3,$3,$16
    lh  $16,0($3)
    li  $4,3            # 0x00000003
    .set    noreorder
    .set    nom

0x1C2A00#

i  $2,4            # 0x00000004
    sh  $18,0($3)
$L239:
    sh  $2,10($17)
    .set    noreorder
    .set    nomacro
    jal M_saisok_setp
    sh  $0,12($17)
    .set    macro
    .set    reorder

    j   $L194
$L218:
    lui $3,%hi(M_ms) # high
    addiu   $3,$3,%lo(M_ms) # low
    sll $2,$5,2
    addu    $2,$2,$5
    sll $2,$2,2
    addu    $2,$2,$3
    lb  $3,0($2)
    li  $2,63           # 0x0000003f
    .set    noreorder
    .set    nomacro
    beq $3,$2,$L246
    lui $2,%hi(M_esabox+10) # high
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_rnd
    li  $4,10           # 0x0000000a
    .set    macro
    .set    reorder

    slt $2,$2,4
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L221
    lui $2,%hi(M_esabox+10) # high
    .set    macro
    .set    reorder

    jal aisyu_set
    j   $L194
$L221:
$L246:
    .set    noreorder
    .set    nomacro
    j   $L194
    sh  $0,%lo(M_esabox+10)($2)
    .set    macro
    .set    reorder

$L215:
    jal M_esabox_poschk
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L224
    lui $2,%hi(M_dogxy) # high
    .set    macro
    .set    reorder

    lh  $3,%lo(M_dogxy)($2)
    lh  $4,22($17)
    #nop
    subu    $3,$3,$4
    bgez    $3,1f
    subu    $3,$0,$3
1:
    slt $3,$3,15
    .set    noreorder
    .set    nomacro
    bne $3,$0,$L226
    addiu   $2,$2,%lo(M_dogxy) # low
    .set    macro
    .set    reorder

    lh  $2,2($2)
    lh  $3,24($17)
    #nop
    subu    $2,$2,$3
    bgez    $2,1f
    subu    $2,$0,$2
1:
    slt $2,$2,15
    beq $2,$0,$L225
$L226:
    jal M_dogbakset
    li  $3,-1           # 0xffffffff
    .set    noreorder
    .set    nomacro
    bne $2,$3,$L247
    lui $2,%hi(M_ovecnt) # high
    .set    macro
    .set    reorder

    lui $2,%hi(M_dogv) # high
    lh  $3,%lo(Mn)($19)
    addiu   $2,$2,%lo(M_dogv) 

0x1C3200#

t  nomacro
    jal M_msadd
    li  $4,60           # 0x0000003c
    .set    macro
    .set    reorder

    j   $L194
$L224:
    jal esatabe_set
    li  $2,2            # 0x00000002
    .set    noreorder
    .set    nomacro
    jal M_upin
    sh  $2,10($17)
    .set    macro
    .set    reorder

    j   $L194
$L214:
    jal M_esapos_set
    lui $2,%hi(M_esabox+10) # high
    .set    noreorder
    .set    nomacro
    j   $L194
    sh  $18,%lo(M_esabox+10)($2)
    .set    macro
    .set    reorder

$L230:
    jal M_asonde_cls
    jal M_upout
    jal M_dogbakset
    lui $2,%hi(M_esabox) # high
    addiu   $16,$2,%lo(M_esabox) # low
    lui $2,%hi(Mn) # high
    lui $3,%hi(M_dogmm) # high
    addiu   $3,$3,%lo(M_dogmm) # low
    lh  $2,%lo(Mn)($2)
    lui $4,%hi(M_gei_akic) # high
    sll $2,$2,1
    addu    $2,$2,$3
    lbu $3,%lo(M_gei_akic)($4)
    sh  $0,10($16)
    sh  $0,0($2)
    lui $2,%hi(M_unth+4) # high
    sh  $0,30($16)
    sh  $0,%lo(M_unth+4)($2)
    sll $3,$3,24
    sra $2,$3,24
    srl $3,$3,31
    addu    $2,$2,$3
    sra $2,$2,1
    .set    noreorder
    .set    nomacro
    jal M_esahmd_set
    sb  $2,%lo(M_gei_akic)($4)
    .set    macro
    .set    reorder

    lh  $2,6($16)
    #nop
    bgez    $2,$L194
    .set    noreorder
    .set    nomacro
    j   $L194
    sh  $0,6($16)
    .set    macro
    .set    reorder

$L232:
    jal M_asonde_cls
    lui $2,%hi(Mn) # high
    lui $3,%hi(M_hang) # high
    lh  $2,%lo(Mn)($2)
    addiu   $3,$3,%lo(M_hang) # low
    sll $2,$2,1
    addu    $2,$2,$3
    lh  $2,0($2)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L233
    move    $4,$0
    .set    macro
    .set    reorder

    lui $2,%hi(M_esabox) # high
    addiu   $2,$2,%lo(M_esabox) # low
    li  $3,4            # 0x00000004
    sh  $3,10($2)
    .set    noreorder
    .s

0x1C3C00#

obl    esatabe_set
    .ent    esatabe_set
esatabe_set:
    .frame  $sp,32,$31      # vars= 0, regs= 4/0, args= 16, extra= 0
    .mask   0x80070000,-4
    .fmask  0x00000000,0
    subu    $sp,$sp,32
    li  $4,33           # 0x00000021
    lui $3,%hi(M_msc) # high
    sw  $16,16($sp)
    lui $16,%hi(Mn) # high
    lh  $5,%lo(Mn)($16)
    addiu   $3,$3,%lo(M_msc) # low
    sw  $31,28($sp)
    sw  $18,24($sp)
    sw  $17,20($sp)
    sll $2,$5,2
    addu    $2,$2,$5
    sll $2,$2,3
    addu    $2,$2,$3
    li  $3,1            # 0x00000001
    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    sb  $3,0($2)
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,58           # 0x0000003a
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,58           # 0x0000003a
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,58           # 0x0000003a
    .set    macro
    .set    reorder

    lui $3,%hi(M_esabox) # high
    lui $2,%hi(i_f_tbl) # high
    addiu   $18,$2,%lo(i_f_tbl) # low
    addiu   $17,$3,%lo(M_esabox) # low
    lbu $4,58($18)
    lbu $3,33

0x1C4400#

/0, args= 16, extra= 0
    .mask   0x80010000,-4
    .fmask  0x00000000,0
    lui $2,%hi(M_esabox+36) # high
    lh  $2,%lo(M_esabox+36)($2)
    subu    $sp,$sp,24
    sw  $31,20($sp)
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L262
    sw  $16,16($sp)
    .set    macro
    .set    reorder

    lui $2,%hi(sme+420) # high
    lbu $3,%lo(sme+420)($2)
    li  $2,3            # 0x00000003
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L263
    move    $16,$0
    .set    macro
    .set    reorder

    jal M_esa_pakus
    j   $L262
$L263:
$L268:
    .set    noreorder
    .set    nomacro
    jal M_esa_pakus
    addu    $16,$16,1
    .set    macro
    .set    reorder

    slt $2,$16,10
    bne $2,$0,$L268
$L262:
    lw  $31,20($sp)
    lw  $16,16($sp)
    addu    $sp,$sp,24
    j   $31
    .end    M_esa_paku
    .align  2
    .globl  M_esa_pakus
    .ent    M_esa_pakus
M_esa_pakus:
    .frame  $sp,0,$31       # vars= 0, regs= 0/0, args= 0, extra= 0
    .mask   0x00000000,0
    .fmask  0x00000000,0
    lui $2,%hi(M_mc) # high
    lhu $3,%lo(M_mc)($2)
    #nop
    addu    $2,$3,-33
    sltu    $2,$2,2
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L316
    lui $2,%hi(M_esabox)

0x1C4A00#

ddu    $2,$2,1
    addu    $3,$3,10
    sh  $2,%lo(M_hang)($5)
    .set    noreorder
    .set    nomacro
    j   $L275
    sh  $3,12($4)
    .set    macro
    .set    reorder

$L271:
$L316:
    addiu   $3,$2,%lo(M_esabox) # low
    lh  $6,36($3)
    #nop
    beq $6,$0,$L270
    lhu $2,34($3)
    lh  $5,38($3)
    addu    $4,$2,1
    slt $2,$5,300
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L273
    sh  $4,34($3)
    .set    macro
    .set    reorder

    li  $5,1            # 0x00000001
    move    $9,$3
    li  $8,1717960704           # 0x66660000
    ori $8,$8,0x6667
    sll $2,$4,16
    sra $7,$2,16
    move    $4,$6
$L277:
    mult    $4,$8
    sra $3,$4,31
    mfhi    $10
    #nop
    #nop
    sra $2,$10,2
    subu    $2,$2,$3
    .set    noreorder
    .set    nomacro
    beq $2,$7,$L310
    addu    $5,$5,1
    .set    macro
    .set    reorder

    slt $2,$5,11
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L277
    addu    $4,$4,$6
    .set    macro
    .set    reorder

$L275:
    li  $5,1            # 0x00000001
    li  $8,1431633920           # 0x55550000
    ori $8,$8,0x5556
    lui $2,%hi(M_esabox) # high
    addiu   $6,$2,%lo(M_esabox) # low
    lh  $4,36($6)
    lh  $7,34($6)
    move    $3,$4
$L283:
    mult    $3,$8
    sra $2,$3,31
    mfhi    $10
    #nop
    #nop
    subu    $2,$10,$2
    .set    noreorder
    .set    nomacro
    beq $2,$7,$L313
    addu    $5,$5,1
    .set    macro
    .set    reorder

    slt $2,$5,4
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L283
    addu    $3,$3,$4
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    j   $L315
    lui $2,%hi(M_esabox) # high
    .set    macro
    .set    reorder

$L312:
    lui $5,%hi(M_hang) # high
    lui $4,%hi(M_dayct) # high
    addiu   $4,$4,%lo(M_dayct) # low
    sh  $0,30($9)
    lhu $2,%lo(M_hang)($5)
    

0x1C5200#

reorder
    .set    nomacro
    beq $2,$7,$L312
    addu    $5,$5,1
    .set    macro
    .set    reorder

    slt $2,$5,11
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L291
    addu    $4,$4,$6
    .set    macro
    .set    reorder

$L289:
    li  $5,1            # 0x00000001
    lui $2,%hi(M_esabox) # high
    addiu   $6,$2,%lo(M_esabox) # low
    lh  $4,36($6)
    lh  $7,34($6)
    move    $3,$4
$L297:
    srl $2,$3,31
    addu    $2,$3,$2
    sra $2,$2,1
    .set    noreorder
    .set    nomacro
    beq $2,$7,$L313
    addu    $5,$5,1
    .set    macro
    .set    reorder

    slt $2,$5,3
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L297
    addu    $3,$3,$4
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    j   $L315
    lui $2,%hi(M_esabox) # high
    .set    macro
    .set    reorder

$L313:
    lhu $2,6($6)
    #nop
    addu    $2,$2,-100
    .set    noreorder
    .set    nomacro
    j   $L286
    sh  $2,6($6)
    .set    macro
    .set    reorder

$L314:
    lui $5,%hi(M_hang) # high
    lui $4,%hi(M_dayct) # high
    addiu   $4,$4,%lo(M_dayct) # low
    sh  $0,30($7)
    lhu $2,%lo(M_hang)($5)
    lhu $3,12($4)
    addu    $2,$2,1
    addu    $3,$3,10
    sh  $2,%lo(M_hang)($5)
    .set    noreorder
    .set    nomacro
    j   $L302
    sh  $3,12($4)
    .set    macro
    .set    reorder

$L287:
    move    $7,$3
    move    $4,$6
$L304:
    .set    noreorder
    .set    nomacro
    bgez    $4,$L306
    move    $2,$4
    .set    macro
    .set    reorder

    addu    $2,$4,3
$L306:
    lh  $3,34($7)
    sra $2,$2,2
    .set    noreorder
    .set    nomacro
    beq $2,$3,$L314
    addu    $5,$5,1
    .set    macro
    .set    reorder

    slt $2,$5,11
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L304
    addu    $4,$4,$6
    .set    macro
    .set    reorder

$L302:
    lui $2,%

0x1C5E00#

´oreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,1            # 0x00000001
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,8            # 0x00000008
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,9            # 0x00000009
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,35           # 0x00000023
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mcset_sub
    li  $4,1            # 0x00000001
    .set    macro
    .set    reor

0x1D5600#

S017) # low
    .set    macro
    .set    reorder

$L236:
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L240
    li  $2,11           # 0x0000000b
    .set    macro
    .set    reorder

    lui $2,%hi(sme+386) # high
    lbu $2,%lo(sme+386)($2)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L241
    li  $2,13           # 0x0000000d
    .set    macro
    .set    reorder

    sw  $2,16($sp)
    li  $4,-42          # 0xffffffd6
    li  $5,-17          # 0xffffffef
    lui $6,%hi(MES006) # high
    .set    noreorder
    .set    nomacro
    j   $L252
    addiu   $6,$6,%lo(MES006) # low
    .set    macro
    .

0x1D5A00#

.set   macro
    .set    reorder

    li  $2,13           # 0x0000000d
    sw  $2,16($sp)
    li  $4,-56          # 0xffffffc8
    li  $5,48           # 0x00000030
    lui $6,%hi(MES013) # high
    .set    noreorder
    .set    nomacro
    j   $L250
    addiu   $6,$6,%lo(MES013) # low
    .set    macro
    .set    reorder

$L244:
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L246
    li  $2,13           # 0x0000000d
    .set    macro
    .set    reorder

    sw  $2,16($sp)
    li  $4,-56          # 0xffffffc8
    li  $5,48           # 0x00000030
    lui $6,%hi(MES014) # high
    .set    noreorder
    .set    nomacro
    j   $L250
    addiu   $6,$6,%lo(MES014) # low
    .set    macro
    .set    reorder

$L246:
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L211
    li  $4,-56          # 0xffffffc8
    .set    macro
    .set    reorder

    sw  $3,16($sp)
    li  $5,48           # 0x00000030
    lui $6,%hi(MES015) # high
    addiu   $6,$6,%lo(MES015) # low
$L250:
    .set    noreorder
    .set    nomacro
    jal i_print
    move    $7,$0
    .set    macro
    .set    reorder

$L211:
    lw  $31,32($sp)
    lw  $17,28($sp)
    lw  $16,24($sp)
    addu    $sp,$sp,40
    j   $31
    .end    fuki
    .rdata
    .align  2
$LC3:
    .byte   0
    .byte   1
    .byte   2
    .byte   6
    .byte   7
    .align  2
$LC4:
    .byte   0
    .byte   0
    .byte   3
    .byte   2
    .byte   2
    .byte   0
    .byte   0
    .byte   5
    .byte   4
    .byte   4
    .text
    .align  2
    .globl  douraku
    .ent    douraku
douraku:
    .frame  $sp,112,$31     # vars= 64, regs= 8/0, args= 16, extra= 0
    .mask   0x807f0000,-4
    .fmask  0x00000000,0
    subu    $sp,$sp,112
    sw  $18,88($sp)
    move    $18,$4
    sw  $22,104($sp)
    lui $2,%hi($LC3) # high
    sw  $31,108($sp)
    sw  $21,100($sp)
    sw  $20,96($sp)
    sw  $19,92($sp)
    sw  $17,84($sp)
    sw  $16,8

0x1D6200#

(mk+1)($3)
    move    $19,$2
    sltu    $2,$3,6
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L261
    lui $2,%hi($L349) # high
    .set    macro
    .set    reorder

    addiu   $2,$2,%lo($L349) # low
    sll $3,$3,2
    addu    $3,$3,$2
    lw  $2,0($3)
    #nop
    j   $2
    .rdata
    .align  3
$L349:
    .word   $L262
    .word   $L280
    .word   $L287
    .word   $L290
    .word   $L331
    .word   $L342
    .text
$L262:
    li  $4,2            # 0x00000002
    .set    noreorder
    .set    nomacro
    jal fed
    li  $5,255          # 0x000000ff
    .set    macro
    .set    reorder

    lui $3,%hi(mk+1) # high
    li  $2,1            # 0x00000001
    sb  $2,%lo(mk+1)($3)
    sll $2,$18,24
    sra $2,$2,24
    slt $2,$2,2
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L263
    lui $2,%hi(Magic) # high
    .set    macro
    .set    reorder

    addiu   $2,$2,%lo(Magic) # low
    li  $3,-210         # 0xffffff2e
    sh  $3,13476($2)
    .set    noreorder
    .set    nomacro
    j   $L351
    li  $3,-190         # 0xffffff42
    .set    macro
    .set    reorder

$L263:
    move    $17,$0
    lui $2,%hi(new) # high
    addiu   $21,$2,%lo(new) # low
    addu    $16,$sp,16
    lui $2,%hi(sp) # high
    addiu   $20,$2,%lo(sp) # low
$L268:
    lui $2,%hi(sme+386) # high
    lbu $2,%lo(sme+386)($2)
    #nop
    sll $3,$2,2
    addu    $3,$3,$2
    addu    $3,$3,$16
    sll $2,$18,24
    sra $2,$2,24
    addu    $3,$3,$2
    lb  $2,48($3)
    #nop
    sll $2,$2,4
    addu    $2,$2,$21
    lw  $4,8($2)
    addu    $5,$sp,24
    .set    noreorder
    .set    nomacro
    jal GsGetTimInfo
    addu    $4,$4,4
    .set    macro
    .set    reorder

    lw  $5,36($sp)
    lhu $2,28($sp)
    lhu $3,30($sp)
    lhu $6,32($sp)
    lhu $7,34($sp)
    move    $4,$16
    sh  $2,16($sp)
    sh  $3,18($sp)
    sh  $6,20($sp)
    .set    n

0x1D6C00#

   $2,16777216         # 0x01000000
    sw  $2,0($3)
    li  $2,128          # 0x00000080
    sb  $2,20($3)
    sb  $2,21($3)
    sb  $2,22($3)
    li  $2,30           # 0x0000001e
    sh  $2,24($3)
    li  $2,65           # 0x00000041
    sh  $2,26($3)
    li  $2,4096         # 0x00001000
    sll $5,$5,24
    sra $5,$5,24
    slt $5,$5,2
    sb  $0,14($3)
    sb  $0,15($3)
    sh  $0,16($3)
    sh  $2,28($3)
    sh  $2,30($3)
    .set    noreorder
    .set    nomacro
    bne $5,$0,$L268
    sw  $0,32($3)
    .set    macro
    .set    reorder

    lui $2,%hi(Magic) # high
    addiu   $2,$2,%lo(Magic) # low
    li  $3,-160         # 0xffffff60
    sh  $3,13476($2)
    li  $3,-180         # 0xffffff4c
$L351:
    sh  $3,13478($2)
    lui $16,%hi(Magic) # high
    addiu   $16,$16,%lo(Magic) # low
    addu    $4,$16,13456
    move    $5,$0
    .set    noreorder
    .set    nomacro
    jal magic_chg_ani
    sw  $0,13508($16)
    .set    macro
    .set    reorder

    lui $2,%hi(sme) # high
    addiu   $17,$2,%lo(sme) # low
    lb  $2,390($17)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L271
    sb  $0,13456($16)
    .set    macro
    .set    reorder

    li  $4,33554432         # 0x02000000
    .set    noreorder
    .set

0x1D7400#

tz $2,$L261
    li  $2,2            # 0x00000002
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    j   $L261
    sb  $2,1($16)
    .set    macro
    .set    reorder

$L287:
    lui $2,%hi(Magic) # high
    addiu   $17,$2,%lo(Magic) # low
    lb  $3,13457($17)
    li  $2,-1           # 0xffffffff
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L354
    sll $2,$19,3
    .set    macro
    .set    reorder

    sll $2,$18,24
    sra $16,$2,24
    slt $2,$16,2
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L357
    lui $2,%hi(mk+1) # high
    .set    macro
    .set    reorder

    li  $4,-43          # 0xffffffd5
    li  $5,-34          # 0xffffffde
    lui $6,%hi(MES000) # high
    addiu   $6,$6,%lo(MES000) # low
    .set    noreorder
    .set    nomacro
    jal i_print2n
    move    $7,$0
    .set    macro
    .set    reorder

    sb  $0,12992($17)
    lui $2,%hi(mk+1) # high
$L357:
    li  $3,3            # 0x00000003
    sb  $3,%lo(mk+1)($2)
    addu    $2,$sp,$16
    lb  $4,56($2)
    jal fuki
    .set    noreorder
    .set    nomacro
    j   $L354
    sll $2,$19,3
    .set    macro
    .set    reorder

$L290:
    lui $2,%hi(i_font_stat) # high
    lhu $3,%lo(i_font_stat)($2)
    #

0x1D7C00#

t_stat)($3)
$L295:
    andi    $2,$4,0x0020
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L261
    lui $2,%hi(i_font_stat) # high
    .set    macro
    .set    reorder

    lhu $2,%lo(i_font_stat)($2)
    #nop
    andi    $2,$2,0x8000
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L297
    lui $2,%hi(sme) # high
    .set    macro
    .set    reorder

    addiu   $16,$2,%lo(sme) # low
    lb  $2,390($16)
    #nop
    bne $2,$0,$L359
    li  $4,33554432         # 0x02000000
    .set    noreorder
    .set    nomacro
    jal SoundCall
    ori $4,$4,0x0001
    .set    macro
    .set    reorder

    lb  $2,390($16)
$L359:
    li  $16,1           # 0x00000001
    bne $2,$16,$L301
    .set    noreorder
    .set    nomacro
    jal SoundCall
    li  $4,33554432         # 0x02000000
    .set    macro
    .set    reorder

$L301:
    li  $4,1664876544           # 0x633c0000
    .set    noreorder
    .set    nomacro
    jal SoundCall
    ori $4,$4,0x6c12
    .set    macro
    .set    reorder

    sll $2,$18,24
    sra $4,$2,24
    li  $2,2            # 0x00000002
    .set    noreorder
    .set    nomacro
    bne $4,$2,$L308
    lui $2,%hi(mk+16) # high
    .set    macro
    .set    reorder

    lh  $3,%lo(mk+16)($2)
    #

0x1EC600#

long flag);
extern void ColorMatDpq(SVECTOR *v0,CVECTOR *v1,long p,CVECTOR *v2,long matc);
extern void ColorMatCol(SVECTOR *v0,CVECTOR *v1,CVECTOR *v2,long matc);
extern void LoadAverage12(VECTOR *v0,VECTOR *v1,long p0,long p1,VECTOR *v2);
extern void LoadAverageShort12(SVECTOR *v0,SVECTOR *v1,long p0,long p1,
           SVECTOR *v2);
extern void LoadAverage0(VECTOR *v0,VECTOR *v1,long p0,long p1,VECTOR *v2);
extern void LoadAverageShort0(SVECTOR *v0,SVECTOR *v1,long p0,long p1,
           SVECTOR *v2);
extern voi

0x1ECC00#

xtern void RotPMD_G3(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_FT3(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_GT3(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_F4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_G4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_FT4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_GT4(long *pa,u_long *ot,int otlen,int id,int backc);

extern void RotPMD_SV_F3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_G3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_FT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
            int backc);
extern void RotPMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int 

0x1ED400#

 *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 *u

0x1EDA00#

extern void RotTrans_nom(SVECTOR *v0);
extern void RotAverage3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void RotNclip3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void RotAverageNclip3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void RotAverageNclipColorDpq3_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, 

0x1EE400#

ong *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_SV_FT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotSMD_SV_GT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        



extern void RotRMD_F3(long *pa,u_long *ot,int otlen,int id,     
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_G3(long *pa,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_FT3(long *pa,u_long *ot,int otlen,int id

0x1EEC00#

;      
extern void RotRMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_FT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        
extern void RotRMD_SV_GT4(long *pa,long *va,u_long *ot,int otlen,int id,
            int sclip, int hclip, int vclip, int nclipmode);        

extern long p2otz(long p, long projection);
extern long otz2p(long otz, long projection);

 


















































# 13 "..\\include/k_model.h" 2

# 1 "c:/psx/include/libgpu.h" 1 3

0x1EF400#

g0, b0;     
    DR_ENV  dr_env;      
} DRAWENV;
           
typedef struct {
    RECT    disp;        
    RECT    screen;      
    u_char  isinter;     
    u_char  isrgb24;     
    u_char  pad0, pad1;  
} DISPENV;

 


typedef struct {
    unsigned    addr: 24;
    unsigned    len:   8;
    u_char      r0, g0, b0, code;
} P_TAG;
    
typedef struct {
    u_char  r0, g0, b0, code;
} P_CODE;
    
typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    short   x1, y1;
    short   x2, y2;
} POLY_F3;               

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    short   x1, y1;
    short   x2, y2;
    short   x3, y3;
} POLY_F4;               

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    u_char  u0, v0; u_short clut;
    short   x1, y1;
    u_char  u1, v1; u_short tpage;
    short   x2, y2;
    u_char  u2, v2; u_short pad1;
} POLY_FT3;              

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    u_char  u0, v0; u_short clut;
    short   x1, y1;
    u_char  u1, v1; u_short tpage;
    short   x2, y2;
    u_char  u2,

0x1EFC00#

r3, g3, b3, p3;
    short   x3, y3;
    u_char  u3, v3; u_short pad3;
} POLY_GT4;              

 


typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    short   x1, y1;
} LINE_F2;               

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    u_char  r1, g1, b1, p1;
    short   x1, y1;
} LINE_G2;               

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    short   x1, y1;
    short   x2, y2;
    u_long  pad;
} LINE_F3;               

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    u_char  r1, g1, b1, p1;
    short   x1, y1;
    u_char  r2, g2, b2, p2;
    short   x2, y2;
    u_long  pad;
} LINE_G3;               

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    short   x1, y1;
    short   x2, y2;
    short   x3, y3;
    u_long  pad;
} LINE_F4;               

typedef struct {
    u_long  tag;
    u_char  r0, g0, b0, code;
    short   x0,     y0;
    u_char  r1, g1, b1, p1;
    short   x1, y1;
    u_char  r2, g2, b2, p2;
    short   x2, y2;
    u_char  r3, g3, b3, p3;
    short   x3, y3;

0x1F0400#

ag;
    u_long  code[2];
} DR_AREA;               
           
typedef struct {
    u_long  tag;
    u_long  code[2];
} DR_OFFSET;                 
           
typedef struct {             
    u_long  tag;
    u_long  code[5];
} DR_MOVE;

typedef struct {             
    u_long  tag;
    u_long  code[3];
    u_long  p[13];
} DR_LOAD;

typedef struct {
    u_long  tag;
    u_long  code[1];
} DR_TPAGE;              

typedef struct {
        u_long  tag;
        u_long  code[2];
} DR_STP;                                

 





 


typedef struct {
    u_long  id; 
    u_char  r0, g0, b0, p0;      
    u_char  r1, g1, b1, p1;      
    u_char  r2, g2, b2, p2;      
    u_char  r3, g3, b3, p3;      
    u_short tpage, clut;         
    u_char  u0, v0, u1, v1;      
    u_char  u2, v2, u3, v3;
    
     
    SVECTOR x0, x1, x2, x3;      
    SVECTOR n0, n1, n2, n3;      
    
     
    SVECTOR *v_ofs;          
    SVECTOR *n_ofs;          
    
    u_short vert0, vert1;        
    u_short vert2, vert3;       
    u_short norm0, norm1;        
    u_short norm2, norm3;

    
} TMD_PRIM;

 


typedef struct {
    u_long  mode;        
    RECT    *crect;      
    u_long  *cad

0x1F0E00#

*rect, u_long *p);
extern u_long *ClearOTag(u_long *ot, int n);
extern u_long *ClearOTagR(u_long *ot, int n);
extern u_long *FntFlush(int id);
extern u_long *KanjiFntFlush(int id);
extern u_long DrawSyncCallback(void (*func)());
extern u_short GetClut(int x, int y) ;
extern u_short GetTPage(int tp, int abr, int x, int y) ;
extern u_short LoadClut(u_long *clut, int x, int y);
extern u_short LoadClut2(u_long *clut, int x, int y);
extern u_short LoadTPage(u_long *pix, int tp, int abr, int x, int y, i

0x1F1600#

(POLY_G4 *p) ;
extern void SetPolyGT3(POLY_GT3 *p) ;
extern void SetPolyGT4(POLY_GT4 *p) ;
extern void SetSemiTrans(void *p, int abe) ;
extern void SetShadeTex(void *p, int tge) ;
extern void SetSprt(SPRT *p) ;
extern void SetSprt16(SPRT_16 *p) ;
extern void SetSprt8(SPRT_8 *p) ;
extern void SetTexWindow(DR_TWIN *p, RECT *tw);
extern void SetTile(TILE *p) ;
extern void SetTile1(TILE_1 *p) ;
extern void SetTile16(TILE_16 *p) ;
extern void SetTile8(TILE_8 *p) ;
extern void TermPrim(void *p) ;
ex

0x1F1C00#

       GsVIEW2;

typedef struct {
    long    vpx, vpy, vpz;
    long    vrx, vry, vrz;
    long    rz;
    GsCOORDINATE2 *super;
}       GsRVIEW2;

typedef struct {
    int     vx, vy, vz;
    unsigned char r, g, b;
}       GsF_LIGHT;


typedef struct {
    unsigned p:24;
    unsigned char num:8;
}       GsOT_TAG;


typedef struct {
    unsigned long length;
    GsOT_TAG *org;
    unsigned long offset;
    unsigned long point;
    GsOT_TAG *tag;
}       GsOT;

typedef struct {
    unsigned long attribute; 
    GsCOORDINATE2 *coord2;   
    unsigned long *tmd;
    unsigned long id;
}       GsDOBJ2;

typedef struct {
    unsigned long attribute; 
    GsCOORDINATE2 *coord2;   
    unsigned long *pmd;  
    unsigned long *base;     
    unsigned long *sv;   
    unsigned long id;
}       GsDOBJ3;

typedef struct {
    unsigned long attribute; 
    GsCOORDINATE2 *coord2;   
    unsigned long *tmd;
    unsigned long id;
}       GsDOBJ4;

typedef struct {
    unsigned long attribute;
    GsCOORDINATE2 *coord2;
    unsigned long *tmd;
    unsigned long *packe

0x1F2400#

    unsigned char r1, g1, b1;
}       GsGLINE;

typedef struct {
    unsigned long attribute;
    short   x, y;
    unsigned short w, h;
    unsigned char r, g, b;
}       GsBOXF;

typedef struct {
    short   dqa;
    long    dqb;
    unsigned char rfc, gfc, bfc;
}       GsFOGPARAM;


typedef struct {
    unsigned long pmode;
    short   px, py;
    unsigned short pw, ph;
    unsigned long *pixel;
    short   cx, cy;
    unsigned short cw, ch;
    unsigned long *clut;
}       GsIMAGE;

typedef struct {
    short   offx, offy;
}       _GsPOSITION;

typedef struct {
    GsDOBJ2 *top;
    int     nobj;
    int     maxobj;
}       GsOBJTABLE2;

typedef struct {
    PACKET
    * (*f3[2][3]) ();
    PACKET
    * (*nf3[2]) ();
    PACKET
    * (*g3[2][3]) ();
    PACKET
    * (*ng3[2]) ();
    PACKET
    * (*tf3[2][3]) ();
    PACKET
    * (*ntf3[2]) ();
    PACKET
    * (*tg3[2][3]) ();
    PACKET
    * (*ntg3[2]) ();
    PACKET
    * (*f4[2][3]) ();
    PACKET
    * (*nf4[2]) ();
    PACKET
    * (*g4[2][3]) ();
    PACKET
    * (*ng4[2]) ();
    PACKET
    * (*tf4[2][3]) ();
    PAC

0x1F2A00#

      TMD_P_F3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
}       TMD_P_G3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, b1, dummy1;
    u_char  r2, g2, b2, dummy2;
    u_short n0, v0;
    u_short v1, v2;
}       TMD_P_F3G;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, b1, dummy1;
    u_char  r2, g2, b2, dummy2;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
}       TMD_P_G3G;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short v0, v1;
    u_short v2, p;
}       TMD_P_NF3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, b1, p1;
    u_char  r2, g2, b2, p2;
    u_short v0, v1;
    u_short v2, p;
}       TMD_P_NG3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short n0, v0;
    u_short v1, v2;
    u_short v3, p;
}       TMD_P_F4;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
    u_short n3, v3;
}       TMD_P_G4;

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

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  r0, g0, b0, code;
    u_char  r1, g1, 

0x1F3200#

ypedef struct {
    u_char  out, in, dummy, cd;
    u_char  tu0, tv0;
    u_short clut;
    u_char  tu1, tv1;
    u_short tpage;
    u_char  tu2, tv2;
    u_short p;
    u_short n0, v0;
    u_short v1, v2;
}       TMD_P_TF3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  tu0, tv0;
    u_short clut;
    u_char  tu1, tv1;
    u_short tpage;
    u_char  tu2, tv2;
    u_short p;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
}       TMD_P_TG3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  tu0, tv0;
    u_short clut;
    u_char  tu1, tv1;
    u_short tpage;
    u_char  tu2, tv2;
    u_short p0;
    u_char  r0, g0, b0, p1;
    u_short v0, v1;
    u_short v2, p2;
}       TMD_P_TNF3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  tu0, tv0;
    u_short clut;
    u_char  tu1, tv1;
    u_short tpage;
    u_char  tu2, tv2;
    u_short p0;
    u_char  r0, g0, b0, p1;
    u_char  r1, g1, b1, p2;
    u_char  r2, g2, b2, p3;
    u_short v0, v1;
    u_short v2, p4;
}       TMD_P_TNG3;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  tu0, tv0;
    u_short clut;
    u_char  tu1, tv1;
    u_short tpage;
    u_char  tu2, tv2;
    u_short p0;
    u_char  tu3, tv3;
    u_short p1;
    u_short n0, v0;
    u_short v1, v2;
    u_short v3, p2;
}       TMD_P_TF4;

typedef struct {
    u_char  out, in, dummy, cd;
    u_char  tu0, tv0;
    u_short clut;
    u_char  tu1, tv1;
    u_short tpage;
    u_char  tu2, tv2;
    u_short p0;
    u_char  tu3, tv3;
    u_short p1;
    u_short n0, v0;
    u_short n1, v1;
    u_short n2, v2;
    u_short n3, v3;
}       TMD_P_TG4;

typedef struct 

0x1F3A00#

 g2, b2, p4;
    u_char  r3, g3, b3, p5;
    u_short v0, v1;
    u_short v2, v3;
}       TMD_P_TNG4;

struct TMD_STRUCT {
    u_long *vertop;          
    u_long  vern;            
    u_long *nortop;          
    u_long  norn;            
    u_long *primtop;         
    u_long  primn;           
    u_long  scale;           
};

 












typedef struct {
    short   vx, vy, vz;
    u_char  tu, tv;
}       VERT;

typedef struct {
    short   vx, vy, vz;
    u_char  tu, tv;
    CVECTOR col;
}       VERTC;


typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg0;        
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_FT4 si;         
}       GsADIV_FT4;

typedef struct {
    VERT    vt[4];
}       GsADIV_P_FT4;



typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg0;        
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_GT4 si;         
}       GsADIV_GT4;

typedef struct {
    VERTC   vt[4];
}       GsADIV_P_GT4;


typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg0;        
    long    flg;         
    short 

0x1F4200#

ruct {
    VERT    vt[4];
}       GsADIV_P_F4;


typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_FT3 si;         
}       GsADIV_FT3;

typedef struct {
    VERT    vt[3];
}       GsADIV_P_FT3;

typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_GT3 si;         
}       GsADIV_GT3;

typedef struct {
    VERTC   vt[3];
}       GsADIV_P_GT3;

typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_G3 si;      
}       GsADIV_G3;

typedef struct {
    VERTC   vt[3];
}       GsADIV_P_G3;

typedef struct {
    u_long  limit;       
    long    hwd, vwd;    
    int     shift;       
    u_long *org;         
    u_long *pk;      
    long    otz;         
    long    adivz;       
    short   adivw, adivh;    
    long    flg;         
    short   minx, miny, maxx, maxy;  
    short   hwd0, vwd0;  
    u_long *tag;         
    POLY_F3 si;      
}       GsADIV_F3;

typedef struct {
    VERT    vt[3];
}       GsA

0x1F4C00#

d    GsSortFastSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortFastSpriteB(GsSPRITE * sp, GsOT * ot, unsigned short pri,
                unsigned short flip);
    void    GsSortFlipSprite(GsSPRITE * sp, GsOT * ot, unsigned short pri);
    void    GsSortBg(GsBG * bg, GsOT * ot, unsigned short pri);
    void    GsSortFastBg(GsBG * bg, GsOT * ot, unsigned short pri);
    void    GsInitFixBg16(GsBG * bg, u_long * work);
    void    GsSortFixBg16(GsBG * bg, u_long * work, GsOT * otp, unsigned short pri);
    void    GsInitFixBg32(GsBG * bg, u_long * work);
    void    GsSortFixBg32(GsBG * bg, u_long * work, GsOT * otp, unsigned short pri);
    void    GsSortLine(GsLINE * lp, GsOT * ot, unsigned short pri);
    void    GsSortGLine(GsGLINE * lp, GsOT * ot, unsigned short pri);
    void    GsSortBoxFill(GsBOXF * bp, GsOT * ot, unsigned short pri);
    void    GsSortPoly(void *pp, GsOT * ot, unsigned short pri);

    void    GsClearOt(unsigned short offset, unsigned short point, GsOT * otp);
    GsOT   *GsSortOt(GsOT * ot_src, GsOT

0x1F5400#

d 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

0x1F5E00#

           int shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divG4L(TMD_P_G4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                      int shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divG4LFG(TMD_P_G4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                        int shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divG4NL(TMD_P_G4 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divNG4(TMD_P_NG4 * op, VERT * vp, PACK

0x1F6600#

 shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divTNF4M(TMD_P_TNF4 * op, VERT * vp, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divTG3L(TMD_P_TG3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divTG3LFG(TMD_P_TG3 * op, VERT * vp, VERT * np, PACKET * pk, int n,
                       int shift, GsOT * ot, u_long * scratch);
   PACKET *GsA4divTG3NL(TMD_P_TG3 * op, VERT * vp, VERT * np, PACKET * 

0x202400#

rt M_lccnt[4][3];           


extern signed   short M_dogv[4];                 
extern signed   short M_dogxy[8];                
extern signed   short M_dogoxy[8];               
extern signed   short M_dogvo[4];                
extern signed   short M_dogxyo[8];           
extern signed   short M_dogms[100];          
extern signed   short M_dogmc[4];            
extern signed   short M_dogmvs[40];          
extern signed   short M_xylock[16];          

extern signed   char M_mst[41];              
extern signed   char M_mstc[41];             

extern signed   short M_dogmm[4];            
 
 
 
 
extern signed   short M_hfrag[20];           
 
 
 
 
 
 
 
 
 
extern signed   short M_exhno[4][20];        
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
extern signed   short M_esabox[20];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
extern signed   short M_unth[10];
 
 
 
 
 
 
extern signed   short M_cole_lock[20];
 
 
 
extern signed char M_hmdno[8];
extern signed   short M_wasonde[10];

 
extern signed   short M_heya_chok[10];
 
 
 
 
 
 
 
 
 
 
extern signed short M_oyatu_w0[10]; 
ext

0x202C00#

 
extern void M_demo_int(void);
extern void M_int(void);
extern void M_esahmd_set(void);
extern signed int M_hmd_int(int n);
extern void M_nxroom_ini(int rn);
extern void M_nxroom_chg(void);
extern void M_mosbrock_bchg(void);
extern void M_mosbrock_rchg(void);
extern void M_mosbrock_chg(void);
extern signed int M_heya_chg(int hno);
extern void M_heya_dli(int hno);
extern signed int M_neroom(int nh,int eh);
extern void M_hpxy_chg(int x,int y,int oh,int nh);
extern void M_dog_open(void);
extern void M_moning(void);
extern void M_liv0_set(void);
extern void M_liv1_set(void);
extern void M_kage_set(void);
extern void M_kage_set0(int d,int v,int nc);
extern void M_kage_set1(int d,int v);
extern void M_kage_set2(int d,int v,int nc);
extern void M_kage_set3(int d0,int d1,int v,int nc);
extern void M_kage_set4(void);
extern void M_dog_scale(void);
extern void M_hmd_cls(int n);
extern void M_mov_int(void);
extern void M_igint(void);
extern signed int M_konomi(int c);
extern signed int M_

0x203400#

(int c);
extern void M_gei_sic(void);
extern void M_gei_sicoff(void);
extern void M_ch_ls(void);
extern signed int M_situke_chk(void);

 
extern void M_exhno_sumi(void);
extern void M_tataku(void);
extern void M_tataku_off(void);
extern void M_tataku2(void);
extern void M_sumi_nigeru(void);
extern void M_othr_heya(void);
extern void M_run_maru(void);
extern void M_set_hmdpos(void);
extern void M_run_stop(void);
extern void M_run_stopr(void);
extern void M_naderu(void);
extern void M_naderu_off(void);
extern void M_naderu2(void);
extern void M_situke_chkg(void);
extern void M_oko_cup(int c,int p);
extern void M_kanjyo_up(int lv);
extern void M_kanjyo_down(int lv);
extern void M_burasi(void);
extern void M_burasi_out(void);
extern void M_burasi_posset(void);
extern void M_burasi_pos(void);
extern void M_burasi_gejiw(void);
extern void M_oyatu(void);
extern void M_oyatu_s0(void);
extern signed int M_oyatu_s1(void);
extern void M_oyatu_s2(void);
extern void M_oyatu_t2int(void);
e

0x203A00#

rn void imu_mov0(void);
extern int M_od_mov(void);
extern int M_unth_xychk(void);
extern void M_home_off(void);

 
extern void M_dogrun(void);
extern void M_doggo(void);
extern void M_tukami(void);
extern void Mnext_msetm(void);
extern void Mnext_mset(void);
extern void M_motion_chg(int mn);
extern void M_motion_gchg(void);
extern void pos_set(int cm);
extern void M_dsset(void);
extern signed int M_dp_hnchk(void);
extern void M_ln_set(void);
extern void tukami_over(void);
extern void M_sinset(int no);
extern void sim_set(int nt);
extern void M_seityo(void);
extern void M_right_set(void);
extern void M_right_set5(void);
extern void furi(int r);
extern void M_run_stopm(void);

 
extern void M_mosset00(void);

extern void Minu_comset(void);
extern void M_mosset000(void);
extern void M_mosset10(void);
extern void M_mosset20(void);
extern void M_mosset30(void);
extern void M_matiad(void);
extern void M_kubifuri(void);
extern void M_lockxy_set(void);
extern void M_mosset40(int p);
extern signed int M_rndxymov(int px,int py,int sx,int sy);
extern signed int M_chturn(int x,int y);
extern signed int M_mosset40i(int p);
extern void M_mcset_sub(int c);
extern void M_mcend_sub(void);
extern void M_unti_set(void);

 
extern void Minu_comset(void);
extern void Move_hima(void);
extern void M_neru(void);
extern void Move_hima00(void);
extern void Move_hima10(void);
extern signed int Move_hima20(void);
extern void Move_hima30(void);
extern void M_haraheri(void);
extern void 

0x204400#

y,int v);
extern void M_asonde(void); 
extern void M_asonde_cls(void);
 
extern void M_cncount(void);
extern void M_byoki_main(void);
extern void M_byoki_mosset(void);
extern void M_upin(void);
extern void M_upout(void);
extern void M_upchout(void);
extern void M_up_kmchg(void);

 
extern signed int M_dogmt02(int c);
extern signed int M_dogmt33(int c);
 
extern signed int M_dpmov(int sx,int sy,int ex,int ey,int v);
extern void M_dpmovs0(int n,int ct,int hn,int yx,int yy);
extern signed int M_dogbakset(void);
extern void M_dogbbakset(int bs);
extern void M_pusxy(int c,int x,int y);
extern void M_setbpus(void);
extern void M_setbp(int kb,int sc,int nx,int ny);
extern void M_bpinit(void);
extern signed int M_xyh(int x0,int y0,int x1,int y1);
extern signed int M_movgom(int sx,int sy,int ex,int ey,int tv,int mh);
extern signed int M_poiv(int sx,int sy,int ex,int ey);
extern signed int M_v1v2(int v1,int v2);
extern signed int M_vset(int v);
extern void M_movexy(int nx,int ny,int v,int h

0x204C00#

void M_ivch_sanpocls(void);
extern int M_ivch_unko(void);
extern void M_ivch_unkocls(void);
extern int M_ivch_like(void);
extern void M_ivch_likecls(void);
extern signed int M_ivch_unkos0(void);
extern signed int M_ivch_goch(void);
 
extern void M_cpad(void);
extern void M_set_ohrroom(void);
extern void M_pat_move(void);
extern void tuma_xy(int n);
extern void tuma_axy(int n,int md);
extern signed int M_pat_s00(void);
 
extern signed int M_rnd(int dmax);
extern void M_bgm_set(void);
extern int  M_kigen_updown(int n);
extern int  M_gei_chyarenge(int g);
extern int  M_gei_updown(int g,int n);
extern void M_sanpo_set(void);
extern void M_rtxset_op(void);
extern void M_rtxset_rm(void);
extern void M_rtxchg_op(int p,int t);
extern void M_rtxchg_opg(void);
extern void M_rtxchg_rm(int t);
extern void M_rtxchg_col(int t);
extern void M_rtxchg_cols(int t);
extern void M_rtxcol_init(void);
extern void M_rtxcol_add(int b);
extern void M_rtxcol_del(int b);
extern void M_rtxcol_s0(void);
exter

0x205400#

struct VHB_DATA_Tag {
    unsigned long       offset;
    unsigned long       VHsize;
    unsigned long       VBsize;
};
typedef struct VHB_DATA_Tag     VHB_DATA;

 
struct SEP_DATA_Tag {
    unsigned long       offset;
    unsigned long       size;
    short               max;
};
typedef struct SEP_DATA_Tag     SEP_DATA;


 
typedef struct {
    u_char      hour, min, sec, cflag;
    u_long      vcount;
} TIME_W;

 
typedef struct _VOL_W {
    short       master, tmp;
} VOL_W;

 
typedef struct _FADE_W {
    short       time, cnt;
    int         (*func)();
} FADE_W;

 
typedef struct _VOICE_W {
    signed char     stat, vab, vol, pad0;
    signed char     no, prog, tone, note;
} VOICE_W;

 



struct BGM_WORK_Tag {
    short           on_off;
    VOL_W           vol;
    FADE_W          fade;
    short           vab, sep, scene;
    signed char     no, rep, i_vol, stat;
    TIME_W          time;
};
typedef struct BGM_WORK_Tag     BGM_WORK;

 
struct SE_WORK_Tag {
    short           on_off;
 
    short           vab[2];                  

0x205E00#

extern int SndCtrl_ClearReverb( u_long arg );

 
extern int SndLoad_SE( u_long arg );
extern int SndLoad_SND( u_long arg );
extern int SndLoad_BGM( u_long arg );

 
extern int SndBGM_On( u_long arg );
extern int SndBGM_Off( u_long arg );
extern int SndBGM_FadeIn( u_long arg );
extern int SndBGM_FadeOut( u_long arg );
extern int SndBGM_Play( u_long arg );
extern int SndBGM_Stop( u_long arg );
extern int SndBGM_Pause( u_long arg );
extern int SndBGM_Replay( u_long arg );
extern int SndBGM_SetV

0x206600#

# 17 "..\\include/i_table.h" 2


 

extern unsigned long    _i_motbl1[];

 

extern unsigned long    _i_motbl2[];

 

extern GsF_LIGHT        i_light[6];                  
extern          long    i_amb[6];                    

 

extern unsigned long    i_sys_tbl1[];

 

extern unsigned long    i_sys_tbl2[];



# 9 "m_ove00.c" 2

# 1 "..\\include/i_work.h" 1
 
 
 
 
 




 

# 1 "c:/psx/include/sys\\types.h" 1 3
 


 



# 80 "c:/psx/include/sys\\ty

0x206C00#

        

 

 
extern unsigned short   is_stat;                     

 

extern          short   i_vab_id;                    

 

 

 

extern  signed  short   i_gb_step[3];                

 

typedef struct  _i_fade16 {                              
    unsigned short  x;               
    unsigned short  y;               
    unsigned char   mode;            
    signed char     count;           
    unsigned long   clut[8];         
} I_FADE16_T;


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
# 10 "m_ove00.c" 2


 

extern SME_W sme;
extern MST_W mst;
extern EVE_W eve;

 
 
void Minu_comset(void)
{
    if (M_heya_chok[7]>2)return; 
    if (M_drmask[0]==0) {
         
        M_neru();            
        M_unko();            
        M_haraheri();        
        M_yafu();            
        M_tel_mov();         
         
        M_oyatu_inu();       
        M_gei_main();        
    }
    if (M_drmask[0]==0) M_otachi();      
     
    Move_hima();     
}


 
void Move_hima(void)
{
         
    if (M_drmask[0]==0){
        M_us_heyaset();  
        M_matiad();      
        M_asonde();      
        Move_hima00();   
        Move_hima10();   
        Move_hima20

0x207400#

Mn]; 
        tv[7]=0; 
        if (M_iq[Mn]<7) tv[7]=(7-M_iq[Mn])*3;

        ts=M_rnd(60)+tv[0]+tv[1]-tv[2]-tv[3]-tv[4]-tv[5]+tv[6]-tv[7];
        if (ts<0) ts=0;
         
        if ((tl*240)<(ts*ts)){
             
            M_mosset00(); 
            M_msadd(1);
             
        }
    }
  }
}
 
void Move_hima10(void)
{
int tl,ts,tm;
if ((M_ovecnt[Mn]==0)&&(M_xylock[0]==0)&&(M_esabox[5]==0)){
if (((M_pos[Mn]>0)&&(M_pos[Mn]<5))||(M_unth[1]!=0)||(M_exhno[Mn][1]==2))return;
    tl=2;
    if (M_tosi[Mn]>5) tl+=(M_tosi[Mn]-4)/2; 
    if ((M_odekake[Mn]==0)&&(M_rnd(tl)==1)&&(M_dp_hnchk()==0)){
        tl= M_houch[Mn]-20; 
        ts=10;
        tm=0;
         
         
         
         
        if (M_seikak[Mn]==0) tl=tl-10;
        if (M_seikak[Mn]==1) tl=tl-5;
        if (M_seikak[Mn]==2) tl=tl+15;
        if (M_seikak[Mn]==3) tl=tl+10;
        if (M_seikak[Mn]==5) tl=tl+5;
        if (M_seikak[Mn]==6) tl=tl+15;
        if (M_seikak[Mn]==7) tl=tl-20;
        if (M_seikak[Mn]==8) tl=tl+10;
        if (M_seikak[Mn]==10) tl=tl-50;

        if (M_iq[Mn]<7) tl+=(7-M_iq[Mn])*4;  

         
        if (M_himan[Mn]>10) ts+=(M_himan[Mn]-10)*10;
        if (M_himan[Mn

0x207C00#

1,ot)==-1) return(0); 
    
        if ((M_pos[Mn]==0)||(M_pos[Mn]==5)||(M_pos[Mn]==6)){
            rd=M_rnd(20);   
             
            if (((rd*3)<hi)||((si==1) && (M_rnd(10)<3))){
                M_mosset40(2); 
                M_msadd(32);
                 
                return(0);
            }
             
            if ((rd<hi)||((si==1) && (M_rnd(10)<3))){
                M_mosset40(1); 
                M_msadd(32);
                 
                return(0);
            }
        }
         
        if (M_pos[Mn]==1){
            if ((hi>9)&&(M_rnd(10)>3)){
                M_mosset40(2);       
                M_msadd(32);
                 
                return(0);
            }
             
             
            if (((si==1) && (M_rnd(10)<3))||((si==0) && ((M_rnd(30)<2)))) {
                if (M_rnd(10)>2){
                    M_mosset40(0);       
                    M_msadd(33);
                     
                    return(0);
                } else {
                    M_mosset40(2); 
                    M_msadd(32);
                     
                    return(0);
                }   
            }
        }
         
        if ((M_pos[Mn]==2)||(M_pos[Mn]==3)||(M_pos[Mn]==4)){
            if ((hi>5)&&(M_rnd(10)>2)){
                return(0);   
            }
             
             
            if (((si==1) && (M_rnd(10)<4))||((si==0) && ((M_rnd(30)<2)))) {
                if (M_rnd(10)>2){
                    M_mosset40(0);       
                    M_msadd(40);
                     
            

0x208400#

t0[M_seikak[Mn]])==0){
                        if (sme.heya_no==sme.dog_h_no){     
                                M_sumi_nigeru(); 
                                return;
                        }else{
                            M_psheya(sme.heya_no); 
                            M_exhno_sumi();
                            return;
                        }
                    }
                    break;
                case 2: 
                case 3: 
                case 4: 
                case 5: 
                    if (M_rnd(Move_hima30_t0[M_seikak[Mn]])==0){
                        if (sme.heya_no==sme.dog_h_no){     
                                M_psheya(sme.heya_no); 
                                return;
                        }else{
                            M_psheya(sme.heya_no); 
                            return;
                        }
                    }
                    break;
                case 6: 
                case 8: 
                case 9: 
                    if (M_rnd(Move_hima30_t0[M_seikak[Mn]])==0){
                        if (sme.heya_no==sme.dog_h_no){     
                                M_rnheya2();
                                 
                                return;
                        }else{
                            M_rnheya2();
                             
                            return;
                        }
                    }
                    break;
                case 7: 
                    if (M_rnd(Move_hima30_t0[M_seikak[Mn]])==0){
                        if (sme.heya_no==sme.dog_h_no){     
                            M_psheynr(0);
                            M_exhno[Mn][0]=2;
                            return;
                        }else{
                            M_psheynr(0);
                            M_exhno[Mn][0]=2;
        

0x208E00#

==3){
        if (M_esabox[14]!=sme.heya_no){
             
            M_exhno[Mn][0]=-1;
            M_exhno[Mn][1]=0;
            M_cole_lock[9]=0;
            M_exhno[Mn][7]=1; 
             
            M_msc[Mn][0]=0;             

            M_xylock[0]=0;
            M_ovecnt[Mn]=0;
        }
        if (M_esabox[3]>0){
            M_esapos_set();
            M_esabox[5]=1;
        }
    }

    if(M_esabox[5]==4){
        if (M_esabox[14]!=sme.heya_no){
             
            if (M_esabox[6]>2)
                 
                M_esabox[6]=1;
                M_exhno[Mn][0]=-1;
                M_exhno[Mn][1]=0;
                M_cole_lock[9]=0;
                M_exhno[Mn][7]=1; 
                 
                M_msc[M

0x209600#

                           if(M_dogbakset()==-1){  
                                M_mtarn(M_dogv[Mn]+1024);
                            }
                            M_ovecnt[Mn]=10;
                        }else{
                            M_saisok_setp(0);
                        }
                        M_msadd(60);
                        return;
                    }
                     
                    esatabe_set();
                    M_esabox[5]=2;
                    M_upin();
                }
            }else{
                    M_esapos_set();
                    M_esabox[5]=1;
                    return;
            }
                break;
            case 2:
                M_asonde_cls();
                 
                M_upout();
                M_dogbakset();

0x209C00#

mcset_sub(34);
     
     
     
    M_mcend_sub(); 
    M_msadd(62);
    M_esabox[17]=0;
    M_esabox[19]=M_esabox[3];
     
}
 
void M_esa_paku(void)
{
int l;
    if (M_esabox[18]!=0){
        if (sme.heya_no==3){
            M_esa_pakus();
        }else{
            for ( l = 0; l < 10; l++ ) {
                M_esa_pakus();
            }
        }
    }
}
void M_esa_pakus(void)
{
int m;
    if ((M_mc[0]!=33)&&(M_mc[0]!=34)&&(M_mc[0]!=58)){
         
            M_esabox[17]=0; 
            M_esabox[18]=0; 
            M_esabox[19]=0; 
            return;
    }
    if (M_esabox[18]!=0){
        M_esabox[17]+=1;

        if (M_esabox[19]>299){
             
            for ( m = 1; m < 11; m++ ) {
                if ((M_esabox[18]*m/10)==M_esabox[17]){
                    M_hang[0]+=1;
                    M_esabox[15]=0;
                    M_dayct[6]+=10;
                    break;
                }
            }
            for ( m = 1; m < 4; m++ ) {
                if ((M_esabox[18]*m/3)==M_esabox[17]){
                    M_esabox[3]-=100;
                    break;
                }
            }
        }else if (M_esabox[19]>199){
             
            for ( m = 1; m < 11; m++ ) {
                if ((M_esabox[18]*m/7)==M_esabox[17]){
                    M_hang[0]+=1;
                    M_esabox[15]=0;
                    M_dayct[6]+=10;
            

0x20A400#

    }
    M_mcend_sub(); 
    M_msadd(63);
     
}
 
void keikok_set(void)
{
 
        switch(M_esabox[6]){
            case 0:
                if ((sme.heya_no==3)&&(M_heyano[Mn]==3)&&(M_esabox[4]==sme.heya_no)){
                    M_esabox[6]=5;
                }else{
                    if(M_esabox_poschk()!=0){
                         
                        if (M_esabox[2]==0){
                            M_saisok_setp(0);
                            M_esabox[6]=0;
                        }else{
                            M_saisok_setp(1);
                            M_esabox[6]=3;
                        }
                        M_msadd(60);
                        return;
                    }
                     
                    M_msc[Mn][0]=1; 
                    M_mcset_sub(33);
                    M_mcend_sub(); 
                    M_msadd(66);
                     
                    M_esabox[6]=1;
                }
                    break;
            case 1:
                    if(M_esabox_poschk()!=0){
                         
                        if (M_esabox[2]==0){
                            M_saisok_setp(0);
                            M_esabox[6]=0;
                        }else{
                            M_saisok_setp(1);
                            M_esabox[6]=3;
                        }
                        M_msadd(60);
                        return;
                    }
                 
                M_msc[Mn][0]=1; 
                M_mcset_sub(34); 
                M_mcend_sub(); 
 
 
                M_esabox[2]=1;
                M_esabox[6]=2;
                break;
            case 2:
                 


                if (M_unth[2]==0){
            

0x20AC00#

                break;
            case 6:
                if(sme.un_ko[sme.dog_h_no]==8){
                     
                    M_saisok_setp(1);
                    M_esabox[6]=3;
                    M_exhno[Mn][8]=0;
                    M_esabox[4]=M_exhno[Mn][0];         
                    M_msadd(60);
                    M_unth[0]=0;
                }else{
                     
                    M_msc[Mn][0]=1; 
                    M_mcset_sub(80); 
                    M_mcend_sub(); 
                    M_msadd(66);
                    M_esabox[6]=7;
                }
                break;
            case 7:
                 
                    M_unti_set();
                    M_saisok_setp(1);
                    M_esabox[6]=3;
                    M_exhno[Mn][8]=0;
                    M_esabox[4]=M_exhno[Mn][0];         
                    M_msadd(60);
                    M_unth[0]=0;
                break;
            default:break;
        }
}
 
void saisok_set(void)
{
 
    if ((M_msc[Mn][M_msc[Mn][0]]!=-1)&&(M_msc[Mn][0]!=0))return; 

            if(((M_rnd(5)>1)&&(M_esabox[6]==2))||(M_heya_ch1(M_heyano[Mn])!=sme.heya_no)){
                 
                if((M_heya_ch1(M_heyano[Mn])!=sme.heya_no)||(M_esabox[13]==0)){
                    M_saisok_setp(1);
                }else{
                    M_saisok_setp(2);
                }
                M_esabox[6]=0;
            }else if ((M_rnd(2)==1)&&(M_esabox[6]==2)){
                 
                saisok_setrv();
                M_esabox[6]=0;

0x20B400#

xhno[Mn][8]=1;
    M_esabox[14]=sme.heya_no;
}
 
void saisok_sets(void)
{
    M_msc[Mn][0]=1; 
    if (M_byoki[0]>10){
         
        if (M_rnd(3)==1){
            M_mcset_sub(53);
            M_mcset_sub(45);
            M_mcset_sub(8);
            M_mcset_sub(9);
            M_mcset_sub(1);
            M_mcset_sub(8);
            M_mcset_sub(9);
            M_mcset_sub(46);
            M_mcset_sub(53);
        }else if (M_rnd(2)==1){
            M_mcset_sub(53);
            M_mcset_sub(37);
            M_mcset_sub(53);
            M_mcset_sub(53);
        }else{
            M_mcset_sub(53);
            M_mcset_sub(53);
            M_mcset_sub(45);
            M_mcset_sub(1);
            M_mcset_sub(8);
            M_mcset_sub(9);
            M_mcset_sub(1);
            M_mcset_sub(46);
            M_mcset_sub(53);
        }
    }else if (M_byoki[0]>6){
         
        if (M_rnd(3)==1){
            M_mcset_sub(45);
            M_mcset_sub(8);
            M_mcset_sub(9);
            M_mcset_sub(1);
            M_mcset_sub(8);
            M_mcset_sub(9);
            M_mcset_sub(46);
            M_mcset_sub(53);
        }else if (M_rnd(2)==1){
            M_mcset_sub(53);
            M_mcset_sub(45);
            M_mcset_sub(1);
            M_mcset_sub(8);
            M_mcset_sub(9);
            M_mcset_sub(46);
        }else{
            M_mcse

0x20BC00#

_sub(1);
            M_mcset_sub(8);
            M_mcset_sub(9);
            M_mcset_sub(46);
        }else{
            M_mcset_sub(29);
            M_mcset_sub(35);
            M_mcset_sub(37);
            M_mcset_sub(0);
        }
    }else if(M_seikak[Mn]<6){
         
        if (M_rnd(9)>5){
            M_mcset_sub(37);
            M_mcset_sub(45);
            M_mcset_sub(63);
            M_mcset_sub(46);
            
        }else if (M_rnd(10)>4){     
            M_mcset_sub(0);
            M_mcset_sub(37);
            M_mcset_sub(37);
        }else{
            M_mcset_sub(37);
            M_mcset_sub(0);
            M_mcset_sub(37);
        }
    }else if(M_seikak[Mn]<8){
         
        if (M_rnd(9)>5){
            M_mcset_sub(49);
            M_mcset_sub(0);
            M_mcset_sub(49);
        }else if (M_rnd(10)>4){     
            M_mcset_sub(49);
            M_mcset_sub(38);
            M_mcset_sub(0);
            M_mcset_sub(49);
        }else{
            M_mcset_sub(49);
            M_mcset_sub(49);
            M_mcset_sub(38);
            M_mcset_sub(0);
            M_mcset_sub(49);
        }
    }else{
         
        if (M_rnd(9)>5){
            M_mcset_sub(49);
            M_mcset_sub(49);
            M_mcset_sub(51);
            M_mcset_sub(49);
            M_mcset_sub(49);
        }else if (M_rnd(10)>4){     
            M_mcset_sub(51);
            M_mcset

0x20C400#

                        M_rnheya2();
                        if ((M_esabox[4]==sme.heya_no)&&(M_esabox[2]==0)){
                            if(M_xyh(M_dogxy[0],M_dogxy[1],M_exhno[Mn][2],M_exhno[Mn][3])>500)break;                        }
                    }
                    sme.heya_no=i;

                    M_exhno[Mn][9]=3;
                    M_unth[1]=2; 
                    M_msadd(66);
                }
                break;
            case 2: 
                 
                unkop(300);
                M_unth[1]=3; 
                break;
            case 3: 
                 
                unkop(-600);
                M_unth[1]=4; 
                break;
            case 4: 
                 
                unkop(300);
                M_unth[1]=5; 
                break;
            case 5: 
                 
                M_msc[Mn][0]=1; 
                M_mcset_sub(0);
                M_mcend_sub(); 
                 
                M_unth[1]=6; 
                break;
            case 6: 
                 
                unkop(300);
                M_unth[1]=7; 
                break;
            case 7: 
                 
                unkop(-600);
                M_unth[1]=8; 
                break;
            case 8: 
                 
                unkop(600);
                M_unth[1]=9; 
                break;
            case 9: 
                 
                unkop(-300);
                M_unth[1]=10; 
                break;
            case 10:
                 
                M_msc[Mn][0]=1; 
                M_mcset_sub(80); 
                M_mcend_sub(); 
                M_msadd(69);
                M_unth[1]=11; 
                M_unth[8]=M_do

0x21A400#

et noreorder
    .set    nomacro
    bne $2,$0,$L30
    lui $2,%hi(M_exhno) # high
    .set    macro
    .set    reorder

    addiu   $2,$2,%lo(M_exhno) # low
    sll $3,$4,2
    addu    $3,$3,$4
    sll $3,$3,3
    addu    $3,$3,$2
    lh  $2,2($3)
    li  $21,2           # 0x00000002
    .set    noreorder
    .set    nomacro
    beq $2,$21,$L30
    lui $2,%hi(M_tosi) # high
    .set    macro
    .set    reorder

    addiu   $2,$2,%lo(M_tosi) # low
    addu    $2,$5,$2
    lh  $3,0($2)
    #nop
    slt $2,$3,6
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L34
    move    $16,$21
    .set    macro
    .set    reorder

    addu    $2,$3,-4
    srl $3,$2,31
    addu    $2,$2,$3
    sra $2,$2,1
    addu    $16,$2,2
$L34:
    lui $2,%hi(M_odekake) # high
    addiu   $2,$2,%lo(M_odekake) # low
    addu    $2,$5,$2
    lh  $2,0($2)
    #nop
    bne $2,$0,$L30
    .set    noreorder
    .set    nomacro
    jal M_rnd
    move    $4,$16
    .set    macro
    .set    reorder

    move    $18,$2
    li  $2,1            # 0x00000001
    bne $18,$2,$L30
    jal M_dp_hnchk
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L30
    li  $17,10          # 0x0000000a
    .set    macro
    .set    reorder

    move    $19,$0
    lui $3,%hi(M_h

0x21AE00#

eorder
    .set    nomacro
    bne $2,$0,$L67
    slt $2,$4,5
    .set    macro
    .set    reorder

    addu    $3,$4,-10
    sll $2,$3,2
    addu    $2,$2,$3
    sll $2,$2,1
    addu    $17,$17,$2
    slt $2,$4,5
$L67:
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L47
    subu    $3,$7,$4
    .set    macro
    .set    reorder

    sll $2,$3,2
    addu    $2,$2,$3
    sll $2,$2,1
    addu    $17,$17,$2
$L47:
    lui $3,%hi(M_sym) # high
    addiu   $3,$3,%lo(M_sym) # low
    addu    $2,$5,$6
    sll $2,$2,1
    addu    $2,$2,$3
    lh  $4,0($2)
    #nop
    slt $6,$4,11
    .set    noreorder
    .set    n

0x21B600#

56:
    bgez    $16,$L57
    move    $16,$0
$L57:
    .set    noreorder
    .set    nomacro
    jal M_rnd
    li  $4,10           # 0x0000000a
    .set    macro
    .set    reorder

    slt $2,$2,$16
    beq $2,$0,$L30
    bne $19,$0,$L30
    .set    noreorder
    .set    nomacro
    jal M_rnd
    move    $4,$17
    .set    macro
    .set    reorder

    slt $2,$2,10
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L30
    lui $3,%hi(M_iflg) # high
    .set    macro
    .set    reorder

    lh  $2,0($22)
    addiu   $3,$3,%lo(M_iflg) # low
    sll $2,$2,1
    addu    $2,$2,$3
    lhu $2,0($2)
    #nop
    andi    $2,$

0x21BE00#

$L76
    lui $2,%hi(M_hirou) # high
    .set    macro
    .set    reorder

    addiu   $2,$2,%lo(M_hirou) # low
    addu    $2,$5,$2
    lh  $18,0($2)
    lui $2,%hi(M_byoki) # high
    lh  $3,%lo(M_byoki)($2)
    addiu   $4,$2,%lo(M_byoki) # low
    slt $2,$3,6
    bne $2,$0,$L79
    addu    $18,$18,$3
$L79:
    lh  $3,2($4)
    #nop
    slt $2,$3,6
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L110
    lui $2,%hi(M_seikak) # high
    .set    macro
    .set    reorder

    addu    $18,$18,$3
$L110:
    addiu   $2,$2,%lo(M_seikak) # low
    addu    $2,$5,$2
    lh  $17,0($2)
    li  

0x21C600#

eorder

    move    $16,$2
    sll $2,$16,1
    addu    $2,$2,$16
    slt $2,$2,$18
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L89
    li  $2,1            # 0x00000001
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    bne $17,$2,$L112
    slt $2,$16,$18
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_rnd
    li  $4,10           # 0x0000000a
    .set    macro
    .set    reorder

    slt $2,$2,3
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L88
    slt $2,$16,$18
    .set    macro
    .set    reorder

$L89:
    li  $4,2            # 0x000000

0x21CE00#

4,30           # 0x0000001e
    .set    macro
    .set    reorder

    slt $2,$2,2
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L92
    lui $2,%hi(Mn) # high
    .set    macro
    .set    reorder

$L95:
    .set    noreorder
    .set    nomacro
    jal M_rnd
    li  $4,10           # 0x0000000a
    .set    macro
    .set    reorder

    slt $2,$2,3
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L107
    li  $4,2            # 0x00000002
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    jal M_mosset40
    move    $4,$0
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nom

0x21D600#

0000001
    .set    macro
    .set    reorder

    li  $4,41           # 0x00000029
$L108:
    jal M_msadd
$L76:
    move    $2,$0
$L109:
    lw  $31,32($sp)
    lw  $19,28($sp)
    lw  $18,24($sp)
    lw  $17,20($sp)
    lw  $16,16($sp)
    addu    $sp,$sp,40
    j   $31
    .end    Move_hima20
    .globl  Move_hima30_t0
    .data
    .align  2
Move_hima30_t0:
    .byte   6
    .byte   3
    .byte   2
    .byte   2
    .byte   4
    .byte   5
    .byte   2
    .byte   4
    .byte   3
    .byte   7
    .globl  Move_hima30_t1
    .align  2
Move_hima30_t1:
    .byte   10
    .byte   3
    .byte   2
    .byte   2
    .byte   10
    .b

0x21DE00#

et reorder

    lui $2,%hi(M_odekake) # high
    addiu   $2,$2,%lo(M_odekake) # low
    addu    $2,$5,$2
    lh  $2,0($2)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L179
    lui $2,%hi(M_odekake) # high
    .set    macro
    .set    reorder

    lui $2,%hi(M_pos) # high
    addiu   $2,$2,%lo(M_pos) # low
    addu    $2,$5,$2
    lh  $2,0($2)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L179
    lui $2,%hi(M_odekake) # high
    .set    macro
    .set    reorder

    lui $2,%hi(M_seikak) # high
    addiu   $2,$2,%lo(M_seikak) # low
    addu    $2,$5,$2

0x21E600#

low
    lbu $3,420($4)
    lbu $2,416($4)
    #nop
    bne $3,$2,$L130
$L169:
    jal M_sumi_nigeru
    j   $L116
$L130:
    lbu $4,420($4)
    jal M_psheya
    jal M_exhno_sumi
    j   $L116
$L135:
    lui $3,%hi(Mn) # high
    lui $2,%hi(M_seikak) # high
    lh  $3,%lo(Mn)($3)
    addiu   $2,$2,%lo(M_seikak) # low
    sll $3,$3,1
    addu    $3,$3,$2
    lui $2,%hi(Move_hima30_t0) # high
    lh  $3,0($3)
    addiu   $2,$2,%lo(Move_hima30_t0) # low
    addu    $3,$3,$2
    lb  $4,0($3)
    jal M_rnd
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L178
    lui $17,%hi(

0x21EE00#

ke) # low
    sll $4,$3,1
    addu    $2,$4,$2
    lh  $3,0($2)
    li  $2,1            # 0x00000001
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L180
    lui $3,%hi(Mn) # high
    .set    macro
    .set    reorder

    lui $2,%hi(M_pos) # high
    addiu   $2,$2,%lo(M_pos) # low
    addu    $2,$4,$2
    lh  $2,0($2)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L153
    lui $2,%hi(M_seikak) # high
    .set    macro
    .set    reorder

    addiu   $16,$2,%lo(M_seikak) # low
    addu    $3,$4,$16
    lui $2,%hi(Move_hima30_t1) # high
    lh  $3,0($3)
    addiu   $2,$2,%lo(Move

0x21F600#

00000001
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L153
    lui $2,%hi(M_seikak) # high
    .set    macro
    .set    reorder

    addiu   $2,$2,%lo(M_seikak) # low
    addu    $2,$4,$2
    lui $3,%hi(Move_hima30_t3) # high
    lh  $2,0($2)
    addiu   $3,$3,%lo(Move_hima30_t3) # low
    addu    $2,$2,$3
    lb  $4,0($2)
    jal M_rnd
    bne $2,$0,$L153
    jal M_mosset30
    .set    noreorder
    .set    nomacro
    j   $L172
    li  $4,30           # 0x0000001e
    .set    macro
    .set    reorder

$L153:
    jal M_dp_hnchk
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L182
    l

0x21FC00#

der

    lui $3,%hi(M_exhno) # high
    lh  $4,%lo(Mn)($16)
    addiu   $3,$3,%lo(M_exhno) # low
    sll $2,$4,2
    addu    $2,$2,$4
    sll $2,$2,3
    addu    $2,$2,$3
    li  $3,-1           # 0xffffffff
    sh  $3,0($2)
    lui $3,%hi(M_cole_lock+18) # high
    sh  $0,2($2)
    sh  $0,%lo(M_cole_lock+18)($3)
    li  $3,1            # 0x00000001
    sh  $3,14($2)
$L157:
    lui $2,%hi(M_byoki) # high
$L182:
    lh  $2,%lo(M_byoki)($2)
    #nop
    slt $2,$2,11
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L183
    lui $2,%hi(M_byoki+2) # high
    .set    macro
    .set    reorder

    lui $6,%hi(Mn) # high
    lui $2,%hi(M_pos) # high
    lh  $4,%lo(Mn)($6)
    addiu   $5,$2,%lo(M_pos) # low
    sll $2,$4,1
    addu    $2,$2,$5
    lh  $2,0($2)
    #nop
    slt $2,$2,3
    .set    noreorder
    .set    nomacro
    beq $2,$0,$L158
    lui $3,%hi(M_msc) # high
    .set    macro
    .set    reorder

    addiu   $3,$3,%lo(M_msc) # low
    sll $2,$4,2
    addu    $2,$2,$4
    sll $2,$2,3
    addu    $2,$2,$3
    li  $3,1            # 0x00000001
    sb  $3,0($2)
    lh  $2,%lo(Mn)($6)
    #nop
    sll $2,$2,1
    addu    $2,$2,$5
    lh  $3,0($2)
    #nop
    .set    noreorder
    .set    noma

0x220400#

$0,$L176
    lui $2,%hi(M_byoki+2) # high
    .set    macro
    .set    reorder

$L184:
    lh  $2,%lo(M_byoki+2)($2)
    #nop
    slt $2,$2,6
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L167
    lui $17,%hi(Mn) # high
    .set    macro
    .set    reorder

    lui $2,%hi(M_pos) # high
    lh  $3,%lo(Mn)($17)
    addiu   $2,$2,%lo(M_pos) # low
    sll $3,$3,1
    addu    $3,$3,$2
    lh  $16,0($3)
    li  $2,1            # 0x00000001
    bne $16,$2,$L167
    .set    noreorder
    .set    nomacro
    jal M_rnd
    li  $4,2            # 0x00000002
    .set    macro
    .set    reorder

    beq $2,$0,$L167
$L176:
    li  $4,4            # 0x00000004
    lui $2,%hi(M_msc) # high
    lh  $5,%lo(Mn)($17)
    addiu   $2,$2,%lo(M_msc) # low
    sll $3,$5,2
    addu    $3,$3,$5
    sll $3,$3,3
    addu    $3,$3,$2
    sb  $16,0($3)
$L177:
    jal M_mcset_sub
$L175:
    jal M_mcend_sub
    j   $L116
$L167:
    jal M_mosset20
    li  $4,20           # 0x00000014
$L172:
    jal M_msadd
$L116:
    lw  $31,24($sp)
    lw  $17,20($sp)
    lw  $16,16($sp)
    addu    $sp,$sp,32
    j   $31
    .end    Move_hima30
    .align  2
    .globl  M_haraheri
    .ent    M_haraheri
M_haraheri:
    .frame  $sp,40,$31  

0x220E00#

) # low
    sll $2,$2,1
    addu    $2,$2,$3
    sh  $0,0($2)
$L189:
    lh  $2,6($16)
    #nop
    .set    noreorder
    .set    nomacro
    blez    $2,$L231
    lui $2,%hi(M_esabox) # high
    .set    macro
    .set    reorder

    jal M_esapos_set
    li  $2,1            # 0x00000001
    sh  $2,10($16)
    lui $2,%hi(M_esabox) # high
$L231:
    addiu   $4,$2,%lo(M_esabox) # low
    lh  $3,10($4)
    li  $2,4            # 0x00000004
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L232
    lui $3,%hi(M_ms) # high
    .set    macro
    .set    reorder

    lui $2,%hi(sme+420) # high
    lh  $3,28($4)

0x221600#

   $2,$2,$3
    lh  $3,0($2)
    li  $2,-1           # 0xffffffff
    .set    noreorder
    .set    nomacro
    beq $3,$2,$L234
    lui $2,%hi(Mn) # high
    .set    macro
    .set    reorder

    .set    noreorder
    .set    nomacro
    j   $L185
    sb  $6,0($5)
    .set    macro
    .set    reorder

$L195:
    lui $2,%hi(Mn) # high
$L234:
    lui $3,%hi(M_ovecnt) # high
    lh  $4,%lo(Mn)($2)
    addiu   $3,$3,%lo(M_ovecnt) # low
    sll $2,$4,1
    addu    $2,$2,$3
    lh  $2,0($2)
    #nop
    .set    noreorder
    .set    nomacro
    bne $2,$0,$L185
    lui $3,%hi(M_exhno) # high
    .set    macro
    .se

0x221E00#

set    reorder

    lui $4,%hi(M_seikak) # high
    lh  $3,%lo(Mn)($17)
    addiu   $4,$4,%lo(M_seikak) # low
    sll $3,$3,1
    addu    $3,$3,$4
    lhu $4,0($3)
    #nop
    sll $4,$4,16
    sra $3,$4,16
    srl $4,$4,31
    addu    $3,$3,$4
    sra $3,$3,1
    addu    $3,$3,$2
    slt $16,$16,$3
    .set    noreorder
    .set    nomacro
    beq $16,$0,$L185
    lui $4,%hi(M_cole_lock) # high
    .set    macro
    .set    reorder

$L235:
    lh  $3,%lo(M_cole_lock)($4)
    li  $2,2            # 0x00000002
    .set    noreorder
    .set    nomacro
    bne $3,$2,$L202
    lui $2,%hi(M_jhuku) # hig