summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xinclude/game.h248
-rw-r--r--include/rvl/GXFrameBuffer.h1305
2 files changed, 1544 insertions, 9 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__