From f4dbab34e5be0e2aaed003b09dbe16b370d86edf Mon Sep 17 00:00:00 2001 From: Treeki Date: Mon, 8 Apr 2013 00:30:12 +0200 Subject: tons of APIs and stuff for other commits, don't feel like sorting it --- include/game.h | 248 +++++++- include/rvl/GXFrameBuffer.h | 1305 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1544 insertions(+), 9 deletions(-) create mode 100644 include/rvl/GXFrameBuffer.h (limited to 'include') 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 demoStates; + u32 demoStateParam; + u32 _1458, _145C; + u8 _1460; dStateWrapper_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 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 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__ -- cgit v1.2.3