diff options
-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; |