diff options
Diffstat (limited to '')
| -rwxr-xr-x | include/game.h | 248 | ||||
| -rw-r--r-- | include/rvl/GXFrameBuffer.h | 1305 | ||||
| -rw-r--r-- | kamek_pal.x | 70 | 
3 files changed, 1613 insertions, 10 deletions
diff --git a/include/game.h b/include/game.h index 6cdc4f6..42304a5 100755 --- a/include/game.h +++ b/include/game.h @@ -39,6 +39,13 @@ float sin(float x);  float ceil(float x);
  float floor(float x);
  }
 +enum Direction {
 +	RIGHT = 0,
 +	LEFT = 1,
 +	UP = 2,
 +	DOWN = 3,
 +};
 +
  bool DVD_Start();
  bool DVD_End();
 @@ -500,6 +507,9 @@ public:  	u32 _otherDatum[38];
  	static WLClass *instance;
 +
 +	void demoControlAllPlayers();
 +	void disableDemoControl(bool uselessVar);
  };
 @@ -1583,6 +1593,12 @@ public:  	void executeState_##NAME(); \
  	void endState_##NAME();
 +#define DECLARE_STATE_VIRTUAL(NAME) \
 +	static State StateID_##NAME; \
 +	virtual void beginState_##NAME(); \
 +	virtual void executeState_##NAME(); \
 +	virtual void endState_##NAME();
 +
  #define CREATE_STATE(CLASS, NAME) \
  	CLASS::State CLASS::StateID_##NAME \
  		(#CLASS "::StateID_" #NAME, \
 @@ -2184,7 +2200,7 @@ public:  	u8 eatenState;	// 0=normal,2=eaten,4=spit out
  	u8 _36D;
  	Vec scaleBeforeBeingEaten;
 -	u32 _37C, _380, _384, _388;
 +	u32 _37C, lookAtMode, _384, _388;
  	u8 stageActorType;
  	u8 which_player;		// _38D
  	u8 disableFlagMask, currentLayerID;
 @@ -2204,7 +2220,7 @@ public:  	const char *GetExplanationString();
 -	virtual bool _vf60(); // does stuff with BG_GM
 +	virtual bool isOutOfView(); // does stuff with BG_GM
  	virtual void kill(); // nullsub here, defined in StageActor. probably no params
  	virtual int _vf68(); // params unknown. return (1) might be bool
  	virtual u8 *_vf6C(); // returns byte 0x38D
 @@ -2362,24 +2378,38 @@ class dPlayerInput_c {  class daPlBase_c : public dStageActor_c {
  	public:
  		// Can't be assed to build full headers right now
 -		u8 data[0xEA4 - 0x394];
 +		u8 data[0x45C - 0x394];
 +		float demoMoveSpeed;
 +		u8 data3[0xEA4 - 0x460];
  		dPlayerInput_c input;
  		// We're at 0x1008 now
 -		u8 data2[0x1464 - 0x1008];
 +		u8 data2[0x1418 - 0x1008];
 +		dStateWrapper_c<daPlBase_c> demoStates;
 +		u32 demoStateParam;
 +		u32 _1458, _145C;
 +		u8 _1460;
  		dStateWrapper_c<daPlBase_c> states2;
 +		void justFaceSpecificDirection(int direction);
 +		void moveInDirection(float *targetX, float *speed);
 +		bool isReadyForDemoControlAction();
 +
  		void setAnimePlayWithAnimID(int id);
  		void setAnimePlayStandardType(int id);
  		void setFlag(int flag);
  		void clearFlag(int flag);
  		bool testFlag(int flag);
 +
 +		static daPlBase_c *findByID(int id);
  };
  class dAcPy_c : public daPlBase_c {
  	public:
  		// Can't be assed to build full headers right now
  		void *getYoshi(); // 80139A90
 +
 +		static dAcPy_c *findByID(int id);
  };
  daPlBase_c *GetPlayerOrYoshi(int id);
 @@ -2408,16 +2438,17 @@ public:  };
 -/* TODO
  class dActorState_c : public dStageActor_c {
  public:
 +	dActorState_c();
  	~dActorState_c();
 -	virtual void _vfD4();
 -	virtual void _vfD8();
 -	virtual void _vfDC();
 +	dStateWrapper_c<dActorState_c> acState;
 +
 +	virtual void beginState_Gegneric();
 +	virtual void executeState_Gegneric();
 +	virtual void endState_Gegneric();
  };
 -*/
  class dActorMultiState_c : public dStageActor_c {
 @@ -2787,6 +2818,40 @@ class dWaterManager_c {  class BgGmBase : public dBase_c {
  public:
 +	struct something_s {
 +		u16 x, y;
 +		int layer, countdown, tile;
 +	};
 +	struct limitLineEntry_s {
 +		float leftX, rightX;
 +		float _8, _C, _10, y, _18, _1C, _20, _24, _28, _2C;
 +		float zoneY, zoneHeight, zoneX, zoneWidth;
 +		u16 flags; // documented in idb struct, kind of
 +	};
 +	struct manualZoomEntry_s {
 +		float x1, x2, y1, y2;
 +		u8 unkValue6, zoomLevel, firstFlag;
 +	};
 +	struct beets_s {
 +		float _0, _4;
 +		u8 _8;
 +	};
 +
 +	u32 behaviours; //type?
 +
 +	int somethingCount;
 +	something_s somethings[256];
 +
 +	// Limit lines grouped by:
 +	// 64 zones; 8 groups IDed by mysterious setting; 16 lines per group
 +	limitLineEntry_s limitLines[64][8][16];
 +
 +	manualZoomEntry_s manualZooms[64];
 +
 +	u32 _8F478, _8F47C;
 +
 +	beets_s beets1[100];
 +	beets_s beets2[100];
  	// TODO, a lot
  	u16 *getPointerToTile(int x, int y, int layer, int *pBlockNum = 0, bool unused = false);
 @@ -2975,6 +3040,7 @@ public:  	void plotPixel(u16 x, u16 y, GXColor pixel);	// 802C1570
 +	void *getBuffer() const { return buffer; }
  	u16 width;
  	u16 height;
 @@ -3577,6 +3643,11 @@ inline int GetAreaNum() {  	return st[0x120E];
  }
 +inline u8 *GetStaffCreditScore() {
 +	char *thing = ((char*)StagePtr) + 0x11FC;
 +	return *((u8**)thing);
 +}
 +
  class ClassWithCameraInfo {
 @@ -3855,8 +3926,12 @@ class dYesNoWindow_c : public dBase_c {  };
 +class daBossDemo_c;
  class StageE4 {
  	public:
 +		u8 ___[0x14];
 +		daBossDemo_c *currentBossDemo;
 +		// NOT COMPLETE
  		static StageE4 *instance;
  		void killAllEnemiesAtLevelEnd(int type);
 @@ -3891,5 +3966,160 @@ struct PlayerAnimState {  };
  extern PlayerAnimState PlayerAnimStates[177];
 +
 +class daEnBossKoopaDemoPeach_c : public dEn_c {
 +	public:
 +		mHeapAllocator_c allocator;
 +		int stage;
 +		nw4r::g3d::ResFile resFile;
 +		m3d::mdl_c model;
 +		m3d::anmChr_c chrAnm;
 +		m3d::anmTexPat_c patAnm;
 +		u8 _mysteryData[0x38];
 +		int counter;
 +		u16 _628;
 +		float _62C;
 +		u32 cageID;
 +		bool dontCallYet;
 +		mEf::es2 effects[1];
 +
 +
 +		int onCreate();
 +		int onDelete();
 +		int onExecute();
 +		int onDraw();
 +
 +		daEnBossKoopaDemoPeach_c();
 +		~daEnBossKoopaDemoPeach_c();
 +
 +		Vec2 _vf70();
 +
 +		virtual void beginState_Wait();
 +		virtual void executeState_Wait();
 +		virtual void endState_Wait();
 +		virtual void beginState_Call();
 +		virtual void executeState_Call();
 +		virtual void endState_Call();
 +		virtual void beginState_Turn();
 +		virtual void executeState_Turn();
 +		virtual void endState_Turn();
 +		virtual void beginState_Open();
 +		virtual void executeState_Open();
 +		virtual void endState_Open();
 +		virtual void beginState_Rescue();
 +		virtual void executeState_Rescue();
 +		virtual void endState_Rescue();
 +		virtual void beginState_Thank();
 +		virtual void executeState_Thank();
 +		virtual void endState_Thank();
 +
 +		REF_NINTENDO_STATE(Wait);
 +		REF_NINTENDO_STATE(Call);
 +		REF_NINTENDO_STATE(Turn);
 +		REF_NINTENDO_STATE(Open);
 +		REF_NINTENDO_STATE(Rescue);
 +		REF_NINTENDO_STATE(Thank);
 +};
 +
 +class dStageActorMgr_c {
 +	public:
 +		int depthCounter1, depthCounter2, depthCounter3, depthCounter4;
 +
 +		u16 storedShorts[1000];
 +		u8 storedBytes[1000];
 +
 +		u16 _BC8;
 +		bool _BCA, dontRunThings;
 +		u32 lastScreenLeft, lastScreenTop, _BD4, _BD8;
 +
 +		static dStageActorMgr_c *instance;
 +};
 +
 +class daBossDemo_c : public dActorState_c {
 +	public:
 +		int onCreate();
 +		int onDelete();
 +		int onExecute();
 +		int onDraw();
 +		void willBeDeleted();
 +
 +		int counter;
 +		u32 _3D4, idOfOtherActor;
 +
 +		virtual void beginState_Ready();
 +		virtual void executeState_Ready();
 +		virtual void endState_Ready();
 +		virtual void beginState_BattleStDemo();
 +		virtual void executeState_BattleStDemo();
 +		virtual void endState_BattleStDemo();
 +		virtual void beginState_BattleIn();
 +		virtual void executeState_BattleIn();
 +		virtual void endState_BattleIn();
 +		virtual void beginState_BattleEdDemo();
 +		virtual void executeState_BattleEdDemo();
 +		virtual void endState_BattleEdDemo();
 +
 +		virtual bool beatLevel();
 +		virtual void exitLevel();
 +
 +		virtual void beginSomething() { }
 +		virtual void endSomething() { }
 +
 +		virtual u32 getIdOfOtherActor() { return idOfOtherActor; }
 +		virtual void setIdOfOtherActor(int id) { idOfOtherActor = id; }
 +
 +		virtual bool vf128() { return false; }
 +		virtual u32 justReturnField3D4_decidesIfEndBattle() { return _3D4; }
 +		virtual bool vf130() { return true; }
 +
 +		virtual dStageActor_c *getActorPointerForSomething() { return 0; }
 +
 +		virtual void init();
 +
 +		USING_STATES(daBossDemo_c);
 +		REF_NINTENDO_STATE(Ready);
 +		REF_NINTENDO_STATE(BattleStDemo);
 +		REF_NINTENDO_STATE(BattleIn);
 +		REF_NINTENDO_STATE(BattleEdDemo);
 +};
 +
 +class BalloonRelatedClass {
 +	public:
 +		static BalloonRelatedClass *instance;
 +
 +		u32 ___[0x20];
 +		u32 _20;
 +};
 +
 +class Stage80 {
 +	public:
 +		static Stage80 *instance;
 +
 +		float acparamb1, acparambptr, acparamb2, acparamb3, acparamb4;
 +		float acparam1, acparamptr, acparam2, acparam3, acparam4;
 +		float screenXOffset, screenYOffset;
 +		u32 someFlag; // &1 = dEn_c::add2ToYSpeed(), &2 = pow, &4 = mpgp
 +		u32 _34;
 +		u8 _38, _39;
 +		int lengthOfPow, lengthOfMPGP;
 +};
 +
 +class dTheEnd_c : public dBase_c {
 +	public:
 +		m2d::EmbedLayout_c layout;
 +		dStateWrapper_c<dTheEnd_c> state;
 +
 +		nw4r::lyt::Pane *rootPane;
 +
 +		bool layoutLoaded, willShow, willHide, animationPlaying;
 +};
 +inline dTheEnd_c *GetTheEnd() {
 +	char *thing = ((char*)StagePtr) + 0x1200;
 +	return *((dTheEnd_c**)thing);
 +}
 +
 +extern void *_8042A788;
 +extern "C" void sub_8019C390(void *, int);
 +
  #endif
 diff --git a/include/rvl/GXFrameBuffer.h b/include/rvl/GXFrameBuffer.h new file mode 100644 index 0000000..a6dd635 --- /dev/null +++ b/include/rvl/GXFrameBuffer.h @@ -0,0 +1,1305 @@ +/*---------------------------------------------------------------------------*
 +  Project:  Dolphin GX library
 +  File:     GXFrameBuffer.h
 +
 +  Copyright 1998- 2002 Nintendo. All rights reserved.
 +
 +  These coded instructions, statements, and computer programs contain
 +  proprietary information of Nintendo of America Inc. and/or Nintendo
 +  Company Ltd., and are protected by Federal copyright law.  They may
 +  not be disclosed to third parties or copied or duplicated in any form,
 +  in whole or in part, without the prior written consent of Nintendo.
 +
 +  $Log: GXFrameBuffer.h,v $
 +  Revision 1.4  2006/08/10 13:38:01  urata
 +  Removed all rendermodes of progressive 50Hz.
 +
 +  Revision 1.3  2006/05/18 09:40:10  urata
 +  Added the rendermode of progressive for PAL and MPAL.
 +
 +  Revision 1.2  2006/02/04 11:56:46  hashida
 +  (none)
 +
 +  Revision 1.1.1.1  2005/12/29 06:53:28  hiratsu
 +  Initial import.
 +
 +  Revision 1.1.1.1  2005/05/12 02:41:07  yasuh-to
 +  Ported from dolphin source tree.
 +
 +    
 +    19    2002/02/12 14:29 Hirose
 +    Added GXNtsc480ProgSoft mode.
 +    
 +    18    2002/07/24 9:06 Hirose
 +    Resolved version conflicts.
 +    
 +    18    2002/04/09 15:15 Hirose
 +    const type specifier support. (worked by hiratsu@IRD)
 +    
 +    17    2001/11/15 9:24p Hirose
 +    Added GXGetYScaleFactor and GXGetNumXfbLines.
 +    
 +    16    2001/11/02 5:33p Hashida
 +    Renamed eu60 -> eurgb60
 +    
 +    15    2001/11/01 3:37p Hashida
 +    Added EURGB60 mode support.
 +
 +    14    2001/10/18 11:54a Hashida
 +    No change.
 +
 +    13    2001/10/14 8:05p Hashida
 +    Added RenderModeObj for EU60 mode.
 +    
 +    12    2001/09/21 3:44p Hashida
 +    Fixed wrong settings for Y origin in the double strike modes.
 +    
 +    11    2001/07/26 6:04p Carl
 +    Fixed extern for GXPal524IntAa.
 +    
 +    10    2001/04/12 3:49p Carl
 +    Added stuff for NTSC progressive modes.
 +    
 +    9     2001/01/11 4:31p Hashida
 +    Added a comment to show developers what the actual settings for each
 +    render mode is.
 +    
 +    8     2000/08/10 2:39p Carl
 +    Fixed GX_MAX_Z16 to equal GX_MAX_Z24.
 +    Added a comment to deprecate its usage.
 +    
 +    7     2000/06/06 1:29p Carl
 +    Removed obsolete API.
 +    
 +    6     2000/04/26 4:09p Alligator
 +    mod GXSetDispCopyFrame2Field to take GXCopyMode as param
 +    
 +    5     2000/04/08 2:47p Hirose
 +    Updated GXSetCopyFilter.
 +    
 +    4     2000/03/23 4:23p Carl
 +    Added GXAdjustForOverscan prototype.
 +    
 +    3     2000/03/13 6:18p Danm
 +    Fixed AA sampling locations to use x,y pairs.
 +    
 +    2     2000/02/12 5:16p Alligator
 +    Integrate ArtX source tree changes
 +    
 +    10    1999/10/13 5:19p Alligator
 +    changed CopySrc functions to use xorig, yorig, wd, ht
 +    
 +    9     1999/09/30 10:40p Yasu
 +    Renamed some GX functions and enums
 +    
 +    8     1999/09/24 4:23p Yasu
 +    Add GX_MAX_Z24/16 macro
 +
 +    7     1999/09/22 6:14p Yasu
 +    Changed the parameter of GXSetDispCopySrc and GXSetTexCopySrc().
 +
 +    6     1999/09/21 2:33p Alligator
 +    add aa flag, if aa set 16b pix format
 +
 +    5     1999/09/16 3:42p Alligator
 +    update render mode api
 +
 +    4     1999/09/09 3:04p Alligator
 +    move GXSetRenderMode to GX lib from emu
 +
 +    3     1999/09/02 3:18p Ryan
 +    Made Frame Buffer Api changes
 +
 +    2     1999/07/28 4:07p Alligator
 +    update header files and emulator for hw changes
 +
 +    1     1999/07/14 4:20p Alligator
 +    Split gx.h into individual header files for each major section of API
 +  $NoKeywords: $
 + *---------------------------------------------------------------------------*/
 +
 +#ifndef __GXFRAMEBUFFER_H__
 +#define __GXFRAMEBUFFER_H__
 +
 +#ifdef __cplusplus
 +extern "C" {
 +#endif
 +
 +/*---------------------------------------------------------------------------*/
 +
 +/*---------------------------------------------------------------------------*/
 +/*  Render Modes                                                             */
 +/*    (see the bottom of this file for actual settings used for each         */
 +/*     render mode)                                                          */
 +/*---------------------------------------------------------------------------*/
 +extern GXRenderModeObj GXNtsc240Ds;
 +extern GXRenderModeObj GXNtsc240DsAa;
 +extern GXRenderModeObj GXNtsc240Int;
 +extern GXRenderModeObj GXNtsc240IntAa;
 +extern GXRenderModeObj GXNtsc480IntDf;
 +extern GXRenderModeObj GXNtsc480Int;
 +extern GXRenderModeObj GXNtsc480IntAa;
 +extern GXRenderModeObj GXNtsc480Prog;
 +extern GXRenderModeObj GXNtsc480ProgSoft;
 +extern GXRenderModeObj GXNtsc480ProgAa;
 +extern GXRenderModeObj GXMpal240Ds;
 +extern GXRenderModeObj GXMpal240DsAa;
 +extern GXRenderModeObj GXMpal240Int;
 +extern GXRenderModeObj GXMpal240IntAa;
 +extern GXRenderModeObj GXMpal480IntDf;
 +extern GXRenderModeObj GXMpal480Int;
 +extern GXRenderModeObj GXMpal480IntAa;
 +extern GXRenderModeObj GXMpal480Prog;
 +extern GXRenderModeObj GXMpal480ProgSoft;
 +extern GXRenderModeObj GXMpal480ProgAa;
 +extern GXRenderModeObj GXPal264Ds;
 +extern GXRenderModeObj GXPal264DsAa;
 +extern GXRenderModeObj GXPal264Int;
 +extern GXRenderModeObj GXPal264IntAa;
 +extern GXRenderModeObj GXPal528IntDf;
 +extern GXRenderModeObj GXPal528Int;
 +extern GXRenderModeObj GXPal524IntAa; // Reduced due to overlap requirement!
 +extern GXRenderModeObj GXEurgb60Hz240Ds;
 +extern GXRenderModeObj GXEurgb60Hz240DsAa;
 +extern GXRenderModeObj GXEurgb60Hz240Int;
 +extern GXRenderModeObj GXEurgb60Hz240IntAa;
 +extern GXRenderModeObj GXEurgb60Hz480IntDf;
 +extern GXRenderModeObj GXEurgb60Hz480Int;
 +extern GXRenderModeObj GXEurgb60Hz480IntAa;
 +extern GXRenderModeObj GXEurgb60Hz480Prog;
 +extern GXRenderModeObj GXEurgb60Hz480ProgSoft;
 +extern GXRenderModeObj GXEurgb60Hz480ProgAa;
 +
 +/*---------------------------------------------------------------------------*/
 +void GXAdjustForOverscan ( const GXRenderModeObj *rmin, GXRenderModeObj *rmout,
 +                           u16 hor, u16 ver );
 +void GXSetDispCopySrc ( u16 left, u16 top, u16 wd, u16 ht );
 +void GXSetTexCopySrc ( u16 left, u16 top, u16 wd, u16 ht );
 +void GXSetDispCopyDst ( u16 wd, u16 ht );
 +void GXSetTexCopyDst ( u16 wd, u16 ht, GXTexFmt fmt, GXBool mipmap );
 +
 +void GXSetDispCopyFrame2Field( GXCopyMode mode );
 +void GXSetCopyClamp( GXFBClamp clamp );
 +u32  GXSetDispCopyYScale( f32 vscale );
 +void GXSetCopyClear( GXColor clear_clr, u32 clear_z);
 +void GXSetCopyFilter( GXBool aa, const u8 sample_pattern[12][2], GXBool vf, const u8 vfilter[7] );
 +void GXSetDispCopyGamma( GXGamma gamma );
 +
 +void GXCopyDisp( void *dest, GXBool clear );
 +void GXCopyTex ( void *dest, GXBool clear );
 +
 +f32  GXGetYScaleFactor( u16 efbHeight, u16 xfbHeight );
 +u16  GXGetNumXfbLines( u16 efbHeight, f32 yScale );
 +
 +void GXClearBoundingBox( void );
 +void GXReadBoundingBox ( u16 *left, u16 *top, u16 *right, u16 *bottom );
 +
 +/*---------------------------------------------------------------------------*/
 +
 +// The clear Z value is always in 24-bit format, regardless of pixel fmt.
 +// Thus the GX_MAX_Z16 is not really necessary.  You should not use it.
 +// It is included here only for backwards compatibility.
 +
 +#define GX_MAX_Z24  0x00ffffff
 +
 +#define GX_MAX_Z16  0x00ffffff
 +
 +/*---------------------------------------------------------------------------*/
 +
 +// Actual settings used for each GXRenderModeObj for developers' reference
 +//
 +// The following is intentionally ifdef'ed out to show each GXRenderModeObj
 +// settings to developers.
 +//
 +
 +#if 0
 +
 +GXRenderModeObj GXNtsc240Ds = 
 +{
 +    VI_TVMODE_NTSC_DS,      // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC/2 - 480/2)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +     // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +     // vertical filter[7], 1/64 units, 6 bits each
 +      0,         // line n-1
 +      0,         // line n-1
 +     21,         // line n
 +     22,         // line n
 +     21,         // line n
 +      0,         // line n+1
 +      0          // line n+1
 +};
 +GXRenderModeObj GXNtsc240DsAa =
 +{
 +    VI_TVMODE_NTSC_DS,      // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC/2 - 480/2)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +     21,        // line n
 +     22,        // line n
 +     21,        // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXNtsc240Int = 
 +{
 +    VI_TVMODE_NTSC_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXNtsc240IntAa = 
 +{
 +    VI_TVMODE_NTSC_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +     21,        // line n
 +     22,        // line n
 +     21,        // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXNtsc480IntDf = 
 +{
 +    VI_TVMODE_NTSC_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     8,         // line n-1
 +     8,         // line n-1
 +    10,         // line n
 +    12,         // line n
 +    10,         // line n
 +     8,         // line n+1
 +     8          // line n+1
 +};
 +GXRenderModeObj GXNtsc480Int = 
 +{
 +    VI_TVMODE_NTSC_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXNtsc480IntAa = 
 +{
 +    VI_TVMODE_NTSC_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    242,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     4,         // line n-1
 +     8,         // line n-1
 +    12,         // line n
 +    16,         // line n
 +    12,         // line n
 +     8,         // line n+1
 +     4          // line n+1
 +};
 +GXRenderModeObj GXNtsc480Prog = 
 +{
 +    VI_TVMODE_NTSC_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXNtsc480ProgSoft = 
 +{
 +    VI_TVMODE_NTSC_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     8,         // line n-1
 +     8,         // line n-1
 +    10,         // line n
 +    12,         // line n
 +    10,         // line n
 +     8,         // line n+1
 +     8          // line n+1
 +};
 +GXRenderModeObj GXNtsc480ProgAa = 
 +{
 +    VI_TVMODE_NTSC_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    242,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_NTSC - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_NTSC - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     4,         // line n-1
 +     8,         // line n-1
 +    12,         // line n
 +    16,         // line n
 +    12,         // line n
 +     8,         // line n+1
 +     4          // line n+1
 +};
 +
 +/*---------------------------------------------------------------------------*/
 +
 +GXRenderModeObj GXMpal240Ds = 
 +{
 +    VI_TVMODE_MPAL_DS,      // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL/2 - 480/2)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXMpal240DsAa = 
 +{
 +    VI_TVMODE_MPAL_DS,      // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL/2 - 480/2)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXMpal240Int = 
 +{
 +    VI_TVMODE_MPAL_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXMpal240IntAa = 
 +{
 +    VI_TVMODE_MPAL_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXMpal480IntDf = 
 +{
 +    VI_TVMODE_MPAL_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     8,         // line n-1
 +     8,         // line n-1
 +    10,         // line n
 +    12,         // line n
 +    10,         // line n
 +     8,         // line n+1
 +     8          // line n+1
 +};
 +GXRenderModeObj GXMpal480Int = 
 +{
 +    VI_TVMODE_MPAL_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXMpal480IntAa = 
 +{
 +    VI_TVMODE_MPAL_INT,     // viDisplayMode
 +    640,             // fbWidth
 +    242,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     4,         // line n-1
 +     8,         // line n-1
 +    12,         // line n
 +    16,         // line n
 +    12,         // line n
 +     8,         // line n+1
 +     4          // line n+1
 +};
 +GXRenderModeObj GXMpal480Prog = 
 +{
 +    VI_TVMODE_MPAL_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXMpal480ProgSoft = 
 +{
 +    VI_TVMODE_MPAL_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     8,         // line n-1
 +     8,         // line n-1
 +    10,         // line n
 +    12,         // line n
 +    10,         // line n
 +     8,         // line n+1
 +     8          // line n+1
 +};
 +GXRenderModeObj GXMpal480ProgAa = 
 +{
 +    VI_TVMODE_MPAL_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    242,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_MPAL - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_MPAL - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     4,         // line n-1
 +     8,         // line n-1
 +    12,         // line n
 +    16,         // line n
 +    12,         // line n
 +     8,         // line n+1
 +     4          // line n+1
 +};
 +/*---------------------------------------------------------------------------*/
 +
 +GXRenderModeObj GXPal264Ds = 
 +{
 +    VI_TVMODE_PAL_DS,       // viDisplayMode
 +    640,             // fbWidth
 +    264,             // efbHeight
 +    264,             // xfbHeight
 +    (VI_MAX_WIDTH_PAL - 640)/2,         // viXOrigin
 +    (VI_MAX_HEIGHT_PAL/2 - 528/2)/2,        // viYOrigin
 +    640,             // viWidth
 +    528,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXPal264DsAa = 
 +{
 +    VI_TVMODE_PAL_DS,       // viDisplayMode
 +    640,             // fbWidth
 +    264,             // efbHeight
 +    264,             // xfbHeight
 +    (VI_MAX_WIDTH_PAL - 640)/2,         // viXOrigin
 +    (VI_MAX_HEIGHT_PAL/2 - 528/2)/2,        // viYOrigin
 +    640,             // viWidth
 +    528,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXPal264Int = 
 +{
 +    VI_TVMODE_PAL_INT,      // viDisplayMode
 +    640,             // fbWidth
 +    264,             // efbHeight
 +    264,             // xfbHeight
 +    (VI_MAX_WIDTH_PAL - 640)/2,         // viXOrigin
 +    (VI_MAX_HEIGHT_PAL - 528)/2,        // viYOrigin
 +    640,             // viWidth
 +    528,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXPal264IntAa = 
 +{
 +    VI_TVMODE_PAL_INT,      // viDisplayMode
 +    640,             // fbWidth
 +    264,             // efbHeight
 +    264,             // xfbHeight
 +    (VI_MAX_WIDTH_PAL - 640)/2,         // viXOrigin
 +    (VI_MAX_HEIGHT_PAL - 528)/2,        // viYOrigin
 +    640,             // viWidth
 +    528,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXPal528IntDf = 
 +{
 +    VI_TVMODE_PAL_INT,      // viDisplayMode
 +    640,             // fbWidth
 +    528,             // efbHeight
 +    528,             // xfbHeight
 +    (VI_MAX_WIDTH_PAL - 640)/2,         // viXOrigin
 +    (VI_MAX_HEIGHT_PAL - 528)/2,        // viYOrigin
 +    640,             // viWidth
 +    528,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     8,         // line n-1
 +     8,         // line n-1
 +    10,         // line n
 +    12,         // line n
 +    10,         // line n
 +     8,         // line n+1
 +     8          // line n+1
 +};
 +GXRenderModeObj GXPal528Int = 
 +{
 +    VI_TVMODE_PAL_INT,       // viDisplayMode
 +    640,             // fbWidth
 +    528,             // efbHeight
 +    528,             // xfbHeight
 +    (VI_MAX_WIDTH_PAL - 640)/2,         // viXOrigin
 +    (VI_MAX_HEIGHT_PAL - 528)/2,        // viYOrigin
 +    640,             // viWidth
 +    528,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXPal524IntAa = 
 +{
 +    VI_TVMODE_PAL_INT,      // viDisplayMode
 +    640,             // fbWidth
 +    264,             // efbHeight (maximum is 528/2)
 +    524,             // xfbHeight (allow for required overlap of 4 lines)
 +    (VI_MAX_WIDTH_PAL - 640)/2,         // viXOrigin
 +    (VI_MAX_HEIGHT_PAL - 528)/2,        // viYOrigin
 +    640,             // viWidth
 +    524,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     4,         // line n-1
 +     8,         // line n-1
 +    12,         // line n
 +    16,         // line n
 +    12,         // line n
 +     8,         // line n+1
 +     4          // line n+1
 +};
 +
 +GXRenderModeObj GXEurgb60Hz240Ds = 
 +{
 +    VI_TVMODE_EURGB60_DS,      // viTVmode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60/2 - 480/2)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +     // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +     // vertical filter[7], 1/64 units, 6 bits each
 +      0,         // line n-1
 +      0,         // line n-1
 +     21,         // line n
 +     22,         // line n
 +     21,         // line n
 +      0,         // line n+1
 +      0          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz240DsAa =
 +{
 +    VI_TVMODE_EURGB60_DS,      // viTVmode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60/2 - 480/2)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +     21,        // line n
 +     22,        // line n
 +     21,        // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz240Int = 
 +{
 +    VI_TVMODE_EURGB60_INT,     // viTVmode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz240IntAa = 
 +{
 +    VI_TVMODE_EURGB60_INT,     // viTVmode
 +    640,             // fbWidth
 +    240,             // efbHeight
 +    240,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_TRUE,         // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +     21,        // line n
 +     22,        // line n
 +     21,        // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz480IntDf = 
 +{
 +    VI_TVMODE_EURGB60_INT,     // viTVmode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     8,         // line n-1
 +     8,         // line n-1
 +    10,         // line n
 +    12,         // line n
 +    10,         // line n
 +     8,         // line n+1
 +     8          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz480Int = 
 +{
 +    VI_TVMODE_EURGB60_INT,     // viTVmode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz480IntAa = 
 +{
 +    VI_TVMODE_EURGB60_INT,     // viTVmode
 +    640,             // fbWidth
 +    242,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_DF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     4,         // line n-1
 +     8,         // line n-1
 +    12,         // line n
 +    16,         // line n
 +    12,         // line n
 +     8,         // line n+1
 +     4          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz480Prog = 
 +{
 +    VI_TVMODE_EURGB60_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     0,         // line n-1
 +     0,         // line n-1
 +    21,         // line n
 +    22,         // line n
 +    21,         // line n
 +     0,         // line n+1
 +     0          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz480ProgSoft = 
 +{
 +    VI_TVMODE_EURGB60_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    480,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_FALSE,        // aa
 +
 +    // sample points arranged in increasing Y order
 +     6,  6,  6,  6,  6,  6,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     6,  6,  6,  6,  6,  6,  // pix 1
 +     6,  6,  6,  6,  6,  6,  // pix 2
 +     6,  6,  6,  6,  6,  6,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     8,         // line n-1
 +     8,         // line n-1
 +    10,         // line n
 +    12,         // line n
 +    10,         // line n
 +     8,         // line n+1
 +     8          // line n+1
 +};
 +GXRenderModeObj GXEurgb60Hz480ProgAa = 
 +{
 +    VI_TVMODE_EURGB60_PROG,     // viDisplayMode
 +    640,             // fbWidth
 +    242,             // efbHeight
 +    480,             // xfbHeight
 +    (VI_MAX_WIDTH_EURGB60 - 640)/2,        // viXOrigin
 +    (VI_MAX_HEIGHT_EURGB60 - 480)/2,       // viYOrigin
 +    640,             // viWidth
 +    480,             // viHeight
 +    VI_XFBMODE_SF,   // xFBmode
 +    GX_FALSE,        // field_rendering
 +    GX_TRUE,         // aa
 +
 +    // sample points arranged in increasing Y order
 +     3,  2,  9,  6,  3, 10,  // pix 0, 3 sample points, 1/12 units, 4 bits each
 +     3,  2,  9,  6,  3, 10,  // pix 1
 +     9,  2,  3,  6,  9, 10,  // pix 2
 +     9,  2,  3,  6,  9, 10,  // pix 3
 +
 +    // vertical filter[7], 1/64 units, 6 bits each
 +     4,         // line n-1
 +     8,         // line n-1
 +    12,         // line n
 +    16,         // line n
 +    12,         // line n
 +     8,         // line n+1
 +     4          // line n+1
 +};
 +
 +
 +#endif // #if 0
 +/*---------------------------------------------------------------------------*/
 +
 +#ifdef __cplusplus
 +}
 +#endif
 +
 +#endif // __GXFRAMEBUFFER_H__
 diff --git a/kamek_pal.x b/kamek_pal.x index ca8f4bd..fa2f045 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -1,5 +1,45 @@  SECTIONS { +	CreditsModeActive = 0x8042A4FF; +	GetRail = 0x800D91B0; +	instance__7Stage80 = 0x8042A2E8; +	continueAddToCoinCount = 0x80060254; +	continueAddToScore = 0x800B3544; + +	StaffCreditsAddCoin = 0x800B51D0; +	ContinueFromEFBMagic2 = 0x802BC6B4;  	TogeTekkyuIceballCollision = 0x80AB6DA0; +	_8042A788 = 0x8042A788; +	sub_8019C390 = 0x8019C390; + +	StateID_Wait__24daEnBossKoopaDemoPeach_c = 0x80B8C350; +	StateID_Call__24daEnBossKoopaDemoPeach_c = 0x80B8C390; +	StateID_Turn__24daEnBossKoopaDemoPeach_c = 0x80B8C3D0; +	StateID_Open__24daEnBossKoopaDemoPeach_c = 0x80B8C410; +	StateID_Rescue__24daEnBossKoopaDemoPeach_c = 0x80B8C450; +	StateID_Thank__24daEnBossKoopaDemoPeach_c = 0x80B8C490; + +	__vt__12daBossDemo_c = 0x80301804; +	onExecute__12daBossDemo_cFv = 0x8001CCB0; +	onDraw__12daBossDemo_cFv = 0x8001CCF0; +	willBeDeleted__12daBossDemo_cFv = 0x8001CD00; +	onDelete__12daBossDemo_cFv = 0x8001CD10; +	endState_BattleEdDemo__12daBossDemo_cFv = 0x8001D190; +	executeState_BattleEdDemo__12daBossDemo_cFv = 0x8001D1A0; +	beginState_BattleEdDemo__12daBossDemo_cFv = 0x8001D180; +	endState_BattleIn__12daBossDemo_cFv = 0x8001D100; +	executeState_BattleIn__12daBossDemo_cFv = 0x8001D110; +	beginState_BattleIn__12daBossDemo_cFv = 0x8001D090; +	endState_BattleStDemo__12daBossDemo_cFv = 0x8001D070; +	executeState_BattleStDemo__12daBossDemo_cFv = 0x8001D080; +	beginState_BattleStDemo__12daBossDemo_cFv = 0x8001D060; +	endState_Ready__12daBossDemo_cFv = 0x8001CF60; +	executeState_Ready__12daBossDemo_cFv = 0x8001CF70; +	beginState_Ready__12daBossDemo_cFv = 0x8001CF50; +	beatLevel__12daBossDemo_cFv = 0x8001CE00; +	exitLevel__12daBossDemo_cFv = 0x8001CE40; + +	instance__19BalloonRelatedClass = 0x8042A068; +  	PlayerAnimStates = 0x802F1650;  	ContinueFromFixFireballSensorSetup = 0x8011A830;  	GetPosForLayoutEffect__FP7Point3db = 0x800B37E0; @@ -12,13 +52,21 @@ SECTIONS {  	KazanRock_Explode = 0x8081F190;  	GetPlayerOrYoshi__Fi = 0x8005FB90; +	findByID__10daPlBase_cFi = 0x8005FB90; +	findByID__7dAcPy_cFi = 0x8005F900; +	justFaceSpecificDirection__10daPlBase_cFi = 0x80051F30; +	moveInDirection__10daPlBase_cFPfPf = 0x80052080;  	getYoshi__7dAcPy_cFv = 0x80139A90;  	setAnimePlayWithAnimID__10daPlBase_cFi = 0x80052170;  	setAnimePlayStandardType__10daPlBase_cFi = 0x80052290;  	setFlag__14dPlayerInput_cFQ214dPlayerInput_c5Flags = 0x8005E3B0; +	setPermanentForcedButtons__14dPlayerInput_cFUi = 0x8005E910; +	setTransientForcedButtons__14dPlayerInput_cFUi = 0x8005E960; +	unsetPermanentForcedButtons__14dPlayerInput_cFUi = 0x8005E930;  	setFlag__10daPlBase_cFi = 0x80056C70;  	clearFlag__10daPlBase_cFi = 0x80056CB0;  	testFlag__10daPlBase_cFi = 0x80056CF0; +	isReadyForDemoControlAction__10daPlBase_cFv = 0x80052030;  	instance__15dWaterManager_c = 0x8042A3E0;  	queryPosition__15dWaterManager_cFP7Point2dP7Point2dPfPsi = 0x800EBA40; @@ -64,6 +112,7 @@ SECTIONS {  	Voice_SetADPCMLoop = 0x80281A90;  	DetachSound__Q34nw4r3snd11SoundHandleFv = 0x8027A340; +	Pause__Q44nw4r3snd6detail10BasicSoundFbi = 0x80266580;  	Stop__Q44nw4r3snd6detail10BasicSoundFi = 0x80266390;  	SetPitch__Q44nw4r3snd6detail10BasicSoundFf = 0x802675F0;  	StrmSound_SetTrackVolume = 0x8027F9D0; @@ -201,16 +250,20 @@ SECTIONS {  	instance__13dCourseFull_c = 0x8042A178;  	getRectByID__9dCourse_cFUcP5mRect = 0x8008E890; +	getNextGotoByID__9dCourse_cFUc = 0x8008E3D0;  	modifyPlayerPropertiesWithRollingObject = 0x80057820;  	EN_LandbarrelPlayerCollision = 0x80A582A0;  /* Boss Related */ +	instance__16dStageActorMgr_c = 0x8042A028;  	StartBGMMusic = 0x807DB420;  	StopBGMMusic = 0x807DB430;  	instance__11dStage32C_c = 0x8042A1F0;  	instance__7WLClass = 0x80429F74; +	disableDemoControl__7WLClassFb = 0x8005CA50; +	demoControlAllPlayers__7WLClassFv = 0x8005C930;  	ShakeScreen = 0x800D8D50;  	StageScreen = 0x8042A2E8; @@ -640,6 +693,12 @@ SECTIONS {  	checkLiquidImmersion__5dEn_cFP7Point2df = 0x80097250;  	bouncePlayer__5dEn_cFPvf = 0x800967A0; +	__ct__13dActorState_cFv = 0x80066FC0; +	__dt__13dActorState_cFv = 0x800671B0; +	beginState_Gegneric__13dActorState_cFv = 0x80067230; +	endState_Gegneric__13dActorState_cFv = 0x80067240; +	executeState_Gegneric__13dActorState_cFv = 0x80067250; +  	_vfD8__18dActorMultiState_cFv = 0x80067590;  	_vfDC__18dActorMultiState_cFv = 0x800675B0;  	_vfE0__18dActorMultiState_cFv = 0x800675A0; @@ -655,7 +714,7 @@ SECTIONS {  	beforeDraw__13dStageActor_cFv = 0x80064540;  	afterDraw__13dStageActor_cFi = 0x800645E0;  	GetExplanationString__13dStageActor_cFv = 0x800645F0; -	_vf60__13dStageActor_cFv = 0x80065080; +	isOutOfView__13dStageActor_cFv = 0x80065080;  	kill__13dStageActor_cFv = 0x80065650;  	_vf68__13dStageActor_cFv = 0x8001D210;  	_vf6C__13dStageActor_cFv = 0x8001D200; @@ -964,7 +1023,9 @@ SECTIONS {  	link__16mHeapAllocator_cFiPvPCci = 0x800690C0;  	unlink__16mHeapAllocator_cFv = 0x800690E0; +	__ct__10mTexture_cFv = 0x802C0D20;  	__ct__10mTexture_cFUsUs9_GXTexFmt = 0x802C0D70; +	__dt__10mTexture_cFv = 0x802C0DB0;  	load__10mTexture_cF11_GXTexMapID = 0x802C0E50;  	flushDC__10mTexture_cFv = 0x802C0F10;  	makeLinearGradient__10mTexture_cFicUsUs8_GXColor8_GXColorb = 0x802C1120; @@ -1296,6 +1357,8 @@ SECTIONS {  	ARCReadDir = 0x801A00C0;  	ARCCloseDir = 0x801A0180; +	GXGetTexBufferSize = 0x801C6CE0; +	DCFlushRange = 0x801AC5B0;  	DCStoreRangeNoSync = 0x801AC640;  	VIGetNextField = 0x801BE020; @@ -1328,6 +1391,11 @@ SECTIONS {  	C_MTXPerspective = 0x801C13A0;  	C_MTXOrtho = 0x801C1490; +	GXPixModeSync = 0x801C50B0; +	GXSetTexCopySrc = 0x801C5AA0; +	GXSetTexCopyDst = 0x801C5B10; +	GXSetCopyFilter = 0x801C6080; +	GXCopyTex = 0x801C63D0;  	GXSetVtxDesc = 0x801C3900;  	GXClearVtxDesc = 0x801C41B0;  	GXSetVtxAttrFmt = 0x801C41F0;  | 
