mirror of
https://github.com/libretro/pcsx2.git
synced 2024-11-25 10:20:09 +00:00
5c4512c5a9
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GregMiscellaneous@4005 96395faa-99c1-11dd-bbfe-3dabce05a288
100 lines
3.6 KiB
C
100 lines
3.6 KiB
C
#ifndef ZZHACKS_H_INCLUDED
|
|
#define ZZHACKS_H_INCLUDED
|
|
|
|
#include "PS2Edefs.h"
|
|
|
|
// This is a list of the various hacks, and what bit controls them.
|
|
// Changing these is not advised unless you know what you are doing.
|
|
enum GAME_HACK_OPTIONS
|
|
{
|
|
GAME_TEXTURETARGS = 0x00000001,
|
|
GAME_AUTORESET = 0x00000002,
|
|
GAME_INTERLACE2X = 0x00000004,
|
|
GAME_TEXAHACK = 0x00000008, // apply texa to non textured polys
|
|
GAME_NOTARGETRESOLVE = 0x00000010,
|
|
GAME_EXACTCOLOR = 0x00000020,
|
|
GAME_NOCOLORCLAMP = 0x00000040,
|
|
GAME_FFXHACK = 0x00000080,
|
|
GAME_NOALPHAFAIL = 0x00000100,
|
|
GAME_NODEPTHUPDATE = 0x00000200,
|
|
GAME_QUICKRESOLVE1 = 0x00000400,
|
|
GAME_NOQUICKRESOLVE = 0x00000800,
|
|
GAME_NOTARGETCLUT = 0x00001000, // full 16 bit resolution
|
|
GAME_NOSTENCIL = 0x00002000,
|
|
GAME_VSSHACKOFF = 0x00004000, // vertical stripe syndrome
|
|
GAME_NODEPTHRESOLVE = 0x00008000,
|
|
GAME_FULL16BITRES = 0x00010000,
|
|
GAME_RESOLVEPROMOTED = 0x00020000,
|
|
GAME_FASTUPDATE = 0x00040000,
|
|
GAME_NOALPHATEST = 0x00080000,
|
|
GAME_DISABLEMRTDEPTH = 0x00100000,
|
|
GAME_32BITTARGS = 0x00200000,
|
|
GAME_PATH3HACK = 0x00400000,
|
|
GAME_DOPARALLELCTX = 0x00800000, // tries to parallelize both contexts so that render calls are reduced (xenosaga)
|
|
// makes the game faster, but can be buggy
|
|
GAME_XENOSPECHACK = 0x01000000, // xenosaga specularity hack (ignore any zmask=1 draws)
|
|
GAME_PARTIALPOINTERS = 0x02000000, // whenver the texture or render target are small, tries to look for bigger ones to read from
|
|
GAME_PARTIALDEPTH = 0x04000000, // tries to save depth targets as much as possible across height changes
|
|
GAME_REGETHACK = 0x08000000, // some sort of weirdness in ReGet() code
|
|
GAME_GUSTHACK = 0x10000000, // Needed for Gustgames fast update.
|
|
GAME_NOLOGZ = 0x20000000, // Intended for linux -- not logarithmic Z.
|
|
GAME_AUTOSKIPDRAW = 0x40000000, // Remove blur effect on some games
|
|
GAME_RESERVED_HACK = 0x80000000
|
|
};
|
|
|
|
#define USEALPHATESTING (!(conf.settings().no_alpha_test))
|
|
|
|
typedef union
|
|
{
|
|
struct
|
|
{
|
|
u32 texture_targs : 1;
|
|
u32 auto_reset : 1;
|
|
u32 interlace_2x : 1;
|
|
u32 texa : 1; // apply texa to non textured polys
|
|
u32 no_target_resolve : 1;
|
|
u32 exact_color : 1;
|
|
u32 no_color_clamp : 1;
|
|
u32 ffx : 1;
|
|
u32 no_alpha_fail : 1;
|
|
u32 no_depth_update : 1;
|
|
u32 quick_resolve_1 : 1;
|
|
u32 no_quick_resolve : 1;
|
|
u32 no_target_clut : 1; // full 16 bit resolution
|
|
u32 no_stencil : 1;
|
|
u32 vss_hack_off : 1; // vertical stripe syndrome
|
|
u32 no_depth_resolve : 1;
|
|
u32 full_16_bit_res : 1;
|
|
u32 resolve_promoted : 1;
|
|
u32 fast_update : 1;
|
|
u32 no_alpha_test : 1;
|
|
u32 disable_mrt_depth : 1;
|
|
u32 args_32_bit : 1;
|
|
u32 path3 : 1;
|
|
u32 parallel_context : 1; // tries to parallelize both contexts so that render calls are reduced (xenosaga)
|
|
// makes the game faster, but can be buggy
|
|
u32 xenosaga_spec : 1; // xenosaga specularity hack (ignore any zmask=1 draws)
|
|
u32 partial_pointers : 1; // whenver the texture or render target are small, tries to look for bigger ones to read from
|
|
u32 partial_depth : 1; // tries to save depth targets as much as possible across height changes
|
|
u32 reget : 1; // some sort of weirdness in ReGet() code
|
|
u32 gust : 1; // Needed for Gustgames fast update.
|
|
u32 no_logz : 1; // Intended for linux -- not logarithmic Z.
|
|
u32 automatic_skip_draw :1; // allow debug of the automatic skip draw option
|
|
u32 reserved2 :1;
|
|
};
|
|
u32 _u32;
|
|
} gameHacks;
|
|
|
|
#define HACK_NUMBER 25
|
|
extern u32 hackList[HACK_NUMBER];
|
|
extern char hackDesc[32][64];
|
|
extern int CurrentHack;
|
|
|
|
extern void ReportHacks(gameHacks hacks);
|
|
extern void ListHacks();
|
|
|
|
extern void DisplayHack(int hack);
|
|
extern void ChangeCurrentHack(int hack);
|
|
|
|
#endif // ZZHACKS_H_INCLUDED
|