mirror of
https://github.com/nitraiolo/CfgUSBLoader.git
synced 2025-01-09 01:40:43 +01:00
732 lines
19 KiB
C
732 lines
19 KiB
C
|
|
// by oggzee & usptactical
|
|
|
|
#ifndef _CFG_H
|
|
#define _CFG_H
|
|
|
|
#include <gctypes.h>
|
|
#include "disc.h"
|
|
#include "util.h"
|
|
#include "cfgutil.h"
|
|
#include "strutil.h"
|
|
|
|
typedef struct PosCoords
|
|
{
|
|
int x, y;
|
|
} PosCoords;
|
|
|
|
typedef struct RectCoords
|
|
{
|
|
int x, y, w, h;
|
|
} RectCoords;
|
|
|
|
|
|
#define CFG_IOS_245 0
|
|
#define CFG_IOS_246 1
|
|
#define CFG_IOS_247 2
|
|
#define CFG_IOS_248 3
|
|
#define CFG_IOS_249 4
|
|
#define CFG_IOS_250 5
|
|
#define CFG_IOS_251 6
|
|
#define CFG_IOS_222_MLOAD 7
|
|
#define CFG_IOS_223_MLOAD 8
|
|
#define CFG_IOS_224_MLOAD 9
|
|
#define CFG_IOS_222_YAL 10
|
|
#define CFG_IOS_223_YAL 11
|
|
#define CFG_IOS_AUTO 12
|
|
extern int CFG_IOS_MAX;
|
|
extern int CURR_IOS_IDX;
|
|
|
|
#define CFG_MIOS 0
|
|
#define CFG_DML_R51 1
|
|
#define CFG_DML_R52 2
|
|
#define CFG_DML_1_2 3
|
|
#define CFG_DM_2_0 4
|
|
#define CFG_DM_2_1 5
|
|
#define CFG_DM_2_2 6
|
|
|
|
#include "version.h"
|
|
|
|
#define MAX_THEME 300
|
|
#define MAX_THEME_NAME 32
|
|
extern char theme_list[MAX_THEME][MAX_THEME_NAME];
|
|
|
|
extern int ENTRIES_PER_PAGE;
|
|
extern int MAX_CHARACTERS;
|
|
extern int CONSOLE_XCOORD;
|
|
extern int CONSOLE_YCOORD;
|
|
extern int CONSOLE_WIDTH;
|
|
extern int CONSOLE_HEIGHT;
|
|
extern int CONSOLE_BG_COLOR;
|
|
extern int CONSOLE_FG_COLOR;
|
|
extern int COVER_XCOORD;
|
|
extern int COVER_YCOORD;
|
|
extern int COVER_WIDTH;
|
|
extern int COVER_HEIGHT;
|
|
extern int COVER_WIDTH_FRONT;
|
|
extern int COVER_HEIGHT_FRONT;
|
|
|
|
#define CFG_LAYOUT_ORIG 0
|
|
#define CFG_LAYOUT_ORIG_12 1
|
|
#define CFG_LAYOUT_SMALL 2
|
|
#define CFG_LAYOUT_MEDIUM 3
|
|
#define CFG_LAYOUT_LARGE 4 // nixx
|
|
#define CFG_LAYOUT_LARGE_2 5 // usptactical
|
|
#define CFG_LAYOUT_LARGE_3 6 // oggzee
|
|
#define CFG_LAYOUT_ULTIMATE1 7 // Ultimate1: (WiiShizza)
|
|
#define CFG_LAYOUT_ULTIMATE2 8 // Ultimate2: (jservs7 / hungyip84)
|
|
#define CFG_LAYOUT_ULTIMATE3 9 // Ultimate3: (WiiShizza)
|
|
#define CFG_LAYOUT_KOSAIC 10 // Kosaic
|
|
|
|
#define CFG_VIDEO_SYS 0 // system default
|
|
#define CFG_VIDEO_AUTO 0
|
|
#define CFG_VIDEO_GAME 1 // game default
|
|
#define CFG_VIDEO_PAL50 2 // force PAL
|
|
#define CFG_VIDEO_PAL60 3 // force PAL60
|
|
#define CFG_VIDEO_NTSC 4 // force NTSC
|
|
#define CFG_VIDEO_MAX 4
|
|
#define CFG_VIDEO_NUM (CFG_VIDEO_MAX+1)
|
|
//#define CFG_VIDEO_PATCH 5 // patch mode - moved to separate option
|
|
|
|
#define CFG_VIDEO_PATCH_OFF 0
|
|
#define CFG_VIDEO_PATCH_ON 1
|
|
#define CFG_VIDEO_PATCH_ALL 2
|
|
#define CFG_VIDEO_PATCH_SNEEK 3
|
|
#define CFG_VIDEO_PATCH_SNEEK_ALL 4
|
|
#define CFG_VIDEO_PATCH_MAX 4
|
|
#define CFG_VIDEO_PATCH_NUM (CFG_VIDEO_PATCH_MAX+1)
|
|
|
|
#define CFG_CLEAN_OFF 0
|
|
#define CFG_CLEAN_ON 1
|
|
#define CFG_CLEAN_ALL 2
|
|
|
|
#define CFG_HOME_REBOOT 0
|
|
#define CFG_HOME_EXIT 1
|
|
#define CFG_HOME_HBC 2
|
|
#define CFG_HOME_SCRSHOT 3
|
|
#define CFG_HOME_CHANNEL 4
|
|
#define CFG_HOME_PRIILOADER 0x4461636F
|
|
#define CFG_HOME_WII_MENU 0x50756E65
|
|
|
|
//char languages[11][22] =
|
|
#define CFG_LANG_CONSOLE 0
|
|
#define CFG_LANG_JAPANESE 1
|
|
#define CFG_LANG_ENGLISH 2
|
|
#define CFG_LANG_GERMAN 3
|
|
#define CFG_LANG_FRENCH 4
|
|
#define CFG_LANG_SPANISH 5
|
|
#define CFG_LANG_ITALIAN 6
|
|
#define CFG_LANG_DUTCH 7
|
|
#define CFG_LANG_S_CHINESE 8
|
|
#define CFG_LANG_T_CHINESE 9
|
|
#define CFG_LANG_KOREAN 10
|
|
#define CFG_LANG_MAX 10
|
|
#define CFG_LANG_NUM (CFG_LANG_MAX+1)
|
|
|
|
/*#define CFG_BTN_ORIGINAL 0 // obsolete
|
|
#define CFG_BTN_ULTIMATE 1 // obsolete
|
|
#define CFG_BTN_OPTIONS_1 2
|
|
#define CFG_BTN_OPTIONS_B 3*/
|
|
|
|
#define CFG_DEV_ASK 0
|
|
#define CFG_DEV_USB 1
|
|
#define CFG_DEV_SDHC 2
|
|
|
|
#define CFG_WIDE_NO 0
|
|
#define CFG_WIDE_YES 1
|
|
#define CFG_WIDE_AUTO 2
|
|
|
|
#define CFG_COLORS_MONO 1
|
|
#define CFG_COLORS_DARK 2
|
|
#define CFG_COLORS_BRIGHT 3
|
|
|
|
#define GUI_STYLE_GRID 0
|
|
#define GUI_STYLE_FLOW 1
|
|
#define GUI_STYLE_FLOW_Z 2
|
|
#define GUI_STYLE_COVERFLOW 3
|
|
|
|
#define CFG_GUI_START 2
|
|
#define CFG_GUI_START_WGUI 4
|
|
|
|
#define CFG_COVER_STYLE_2D 0
|
|
#define CFG_COVER_STYLE_3D 1
|
|
#define CFG_COVER_STYLE_DISC 2
|
|
#define CFG_COVER_STYLE_FULL 3
|
|
#define CFG_COVER_STYLE_HQ 4
|
|
// style + format combos:
|
|
#define CFG_COVER_STYLE_FULL_MIPMAP 5
|
|
#define CFG_COVER_STYLE_HQ_MIPMAP 6
|
|
#define CFG_COVER_STYLE_FULL_CMPR 7
|
|
#define CFG_COVER_STYLE_HQ_CMPR 8
|
|
#define CFG_COVER_STYLE_FULL_RGB 9
|
|
#define CFG_COVER_STYLE_HQ_RGB 10
|
|
#define CFG_COVER_STYLE_HQ_OR_FULL 11
|
|
#define CFG_COVER_STYLE_HQ_OR_FULL_RGB 12
|
|
// used just for cache/.ccc path:
|
|
#define CFG_COVER_STYLE_CACHE 20
|
|
|
|
#define CFG_INSTALL_GAME 0
|
|
#define CFG_INSTALL_ALL 1
|
|
#define CFG_INSTALL_1_1 2
|
|
#define CFG_INSTALL_ISO 3
|
|
|
|
#define CFG_UNLOCK_PASSWORD "BUDAH12"
|
|
|
|
#define CFG_BTN_PRIILOADER 0x4461636F
|
|
#define CFG_BTN_WII_MENU 0x50756E65
|
|
#define CFG_BTN_REMAP 0x80
|
|
#define CFG_BTN_M (CFG_BTN_REMAP | NUM_BUTTON_MINUS)
|
|
#define CFG_BTN_P (CFG_BTN_REMAP | NUM_BUTTON_PLUS)
|
|
#define CFG_BTN_A (CFG_BTN_REMAP | NUM_BUTTON_A)
|
|
#define CFG_BTN_B (CFG_BTN_REMAP | NUM_BUTTON_B)
|
|
#define CFG_BTN_H (CFG_BTN_REMAP | NUM_BUTTON_HOME)
|
|
#define CFG_BTN_1 (CFG_BTN_REMAP | NUM_BUTTON_1)
|
|
#define CFG_BTN_2 (CFG_BTN_REMAP | NUM_BUTTON_2)
|
|
#define CFG_BTN_OPTIONS 0
|
|
#define CFG_BTN_GUI 1
|
|
#define CFG_BTN_REBOOT 2
|
|
#define CFG_BTN_EXIT 3
|
|
#define CFG_BTN_SCREENSHOT 4
|
|
#define CFG_BTN_INSTALL 5
|
|
#define CFG_BTN_REMOVE 6
|
|
#define CFG_BTN_MAIN_MENU 7
|
|
#define CFG_BTN_GLOBAL_OPS 8
|
|
#define CFG_BTN_FAVORITES 9
|
|
#define CFG_BTN_BOOT_DISC 10
|
|
#define CFG_BTN_THEME 11
|
|
#define CFG_BTN_PROFILE 12
|
|
#define CFG_BTN_UNLOCK 13
|
|
#define CFG_BTN_HBC 14
|
|
#define CFG_BTN_NOTHING 15
|
|
#define CFG_BTN_BOOT_GAME 16
|
|
#define CFG_BTN_SORT 17
|
|
#define CFG_BTN_FILTER 18
|
|
#define CFG_BTN_RANDOM 19
|
|
#define CFG_BTN_CHANNEL 20
|
|
/* Warning by Clipper: if the CFG_BTN_* list ever grows longer than 48 actions
|
|
* (bloody hell, if so), then start using 1 << 8, 2 << 8 and so on. Any number
|
|
* in the alpha range could get confused with the channels and/or magic words,
|
|
* and 128-255 are reserved for button remapping. */
|
|
|
|
#define ALT_DOL_OFF 0
|
|
#define ALT_DOL_SD 1
|
|
#define ALT_DOL_DISC 2
|
|
#define ALT_DOL_PLUS 3
|
|
|
|
#define CFG_SELECT_PREVIOUS 0
|
|
#define CFG_SELECT_START 1
|
|
#define CFG_SELECT_MIDDLE 2
|
|
#define CFG_SELECT_END 3
|
|
#define CFG_SELECT_MOST 4
|
|
#define CFG_SELECT_LEAST 5
|
|
#define CFG_SELECT_RANDOM 6
|
|
|
|
#define CFG_PLAYLOG_OFF 0
|
|
#define CFG_PLAYLOG_ON 1
|
|
#define CFG_PLAYLOG_JAPANESE 2
|
|
#define CFG_PLAYLOG_ENGLISH 3
|
|
|
|
extern char FAT_DRIVE[];
|
|
extern char USBLOADER_PATH[];
|
|
extern char APPS_DIR[];
|
|
extern char CFG_VERSION[];
|
|
extern char LAST_CFG_PATH[];
|
|
extern char DIOS_MIOS_INFO[];
|
|
|
|
typedef char GAMEID_t[8];
|
|
|
|
struct Game_CFG
|
|
{
|
|
int language;
|
|
int video;
|
|
int video_patch;
|
|
int vidtv;
|
|
int wide_screen;
|
|
int ntsc_j_patch;
|
|
int nodisc;
|
|
int screenshot;
|
|
int country_patch;
|
|
int fix_002;
|
|
int ios_idx;
|
|
int block_ios_reload;
|
|
int ocarina;
|
|
int alt_dol;
|
|
char dol_name[64];
|
|
int write_playlog;
|
|
int hooktype;
|
|
int clean;
|
|
int nand_emu;
|
|
int channel_boot;
|
|
int alt_controller_cfg;
|
|
};
|
|
|
|
struct Game_CFG_2
|
|
{
|
|
u8 id[8];
|
|
struct Game_CFG curr;
|
|
struct Game_CFG save;
|
|
int is_saved;
|
|
};
|
|
|
|
|
|
typedef struct FontColor
|
|
{
|
|
u32 color;
|
|
u32 outline;
|
|
u32 shadow;
|
|
} FontColor;
|
|
|
|
static inline FontColor Font_Color(u32 color, u32 outline, u32 shadow)
|
|
{
|
|
FontColor fc;
|
|
fc.color = color;
|
|
fc.outline = outline;
|
|
fc.shadow = shadow;
|
|
return fc;
|
|
}
|
|
|
|
typedef struct FontColor_CFG
|
|
{
|
|
u32 color;
|
|
u32 outline;
|
|
u32 outline_auto;
|
|
u32 shadow;
|
|
u32 shadow_auto;
|
|
} FontColor_CFG;
|
|
|
|
typedef struct MenuButton
|
|
{
|
|
int mask;
|
|
int num;
|
|
} MenuButton;
|
|
|
|
typedef struct CfgButton
|
|
{
|
|
int enabled;
|
|
RectCoords pos;
|
|
FontColor fc;
|
|
char image[64];
|
|
int type;
|
|
int hover_zoom; // in % default: 10%
|
|
} CfgButton;
|
|
|
|
#define GUI_BUTTON_MAIN 0
|
|
#define GUI_BUTTON_SETTINGS 1
|
|
#define GUI_BUTTON_QUIT 2
|
|
#define GUI_BUTTON_STYLE 3
|
|
#define GUI_BUTTON_VIEW 4
|
|
#define GUI_BUTTON_SORT 5
|
|
#define GUI_BUTTON_FILTER 6
|
|
#define GUI_BUTTON_FAVORITES 7
|
|
#define GUI_BUTTON_JUMP 8
|
|
#define GUI_BUTTON_NUM 9
|
|
|
|
#define GUI_COLOR_NONE 0
|
|
#define GUI_COLOR_BASE 1
|
|
#define GUI_COLOR_POPUP 2
|
|
#define GUI_COLOR_NUM 3
|
|
|
|
#define GUI_TC_MENU 0
|
|
#define GUI_TC_INFO 1
|
|
#define GUI_TC_TITLE 2
|
|
#define GUI_TC_BUTTON 3
|
|
#define GUI_TC_CHECKBOX 4
|
|
#define GUI_TC_RADIO 5
|
|
#define GUI_TC_ABOUT 6
|
|
#define GUI_TC_CBUTTON 7 // custom button
|
|
#define GUI_TC_NUM (GUI_TC_CBUTTON + GUI_BUTTON_NUM)
|
|
|
|
struct CFG
|
|
{
|
|
char background[200];
|
|
char w_background[200];
|
|
char bg_gui[200];
|
|
char bg_gui_wide[200];
|
|
char covers_path[200]; // covers path base
|
|
char covers_path_2d[200];
|
|
int covers_path_2d_set;
|
|
char covers_path_3d[200];
|
|
char covers_path_disc[200];
|
|
char covers_path_full[200];
|
|
char covers_path_cache[200];
|
|
int layout;
|
|
int covers;
|
|
// game options:
|
|
struct Game_CFG game;
|
|
// misc
|
|
int home;
|
|
int debug;
|
|
int debug_gecko;
|
|
int time_launch;
|
|
int device;
|
|
char partition[16];
|
|
int hide_header;
|
|
// simple variants:
|
|
int confirm_start;
|
|
int hide_hddinfo;
|
|
int hide_footer;
|
|
int console_mark_page;
|
|
int console_mark_favorite;
|
|
int console_mark_saved;
|
|
int disable_format;
|
|
int disable_remove;
|
|
int disable_install;
|
|
int disable_options;
|
|
// end simple
|
|
int install_partitions;
|
|
int fat_install_dir;
|
|
int fat_split_size;
|
|
int ntfs_write;
|
|
// text colors
|
|
int color_header;
|
|
int color_selected_fg;
|
|
int color_selected_bg;
|
|
int color_inactive;
|
|
int color_footer;
|
|
int color_help;
|
|
// music
|
|
int music;
|
|
char music_file[200];
|
|
// widescreen
|
|
int widescreen;
|
|
int W_CONSOLE_XCOORD, W_CONSOLE_YCOORD;
|
|
int W_CONSOLE_WIDTH, W_CONSOLE_HEIGHT;
|
|
int W_COVER_XCOORD, W_COVER_YCOORD;
|
|
int W_COVER_WIDTH, W_COVER_HEIGHT;
|
|
int N_COVER_WIDTH, N_COVER_HEIGHT;
|
|
// hide, pref games
|
|
#define MAX_HIDE_GAME 500
|
|
int num_hide_game;
|
|
char hide_game[MAX_HIDE_GAME][8];
|
|
// preferred games change sort order
|
|
#define MAX_PREF_GAME 64
|
|
int num_pref_game;
|
|
char pref_game[MAX_PREF_GAME][8];
|
|
// favorite games filter the list
|
|
// 32 = 4*8 - one full page with max rows in gui mode
|
|
#define MAX_FAVORITE_GAME 100
|
|
//int num_favorite_game;
|
|
//char favorite_game[MAX_FAVORITE_GAME][8];
|
|
// profiles
|
|
#define MAX_PROFILES 10
|
|
#define PROFILE_NAME_LEN 17
|
|
#define num_favorite_game profile_num_favorite[CFG.current_profile]
|
|
#define favorite_game profile_favorite[CFG.current_profile]
|
|
int num_profiles;
|
|
int current_profile;
|
|
char current_profile_name[PROFILE_NAME_LEN];
|
|
char profile_names[MAX_PROFILES][PROFILE_NAME_LEN];
|
|
int profile_num_favorite[MAX_PROFILES];
|
|
GAMEID_t profile_favorite[MAX_PROFILES][MAX_FAVORITE_GAME];
|
|
int profile_theme[MAX_PROFILES];
|
|
int profile_start_favorites[MAX_PROFILES];
|
|
// sort order ignore list
|
|
char sort_ignore[200];
|
|
// cover urls
|
|
int cover_style;
|
|
//char cover_url[1000];
|
|
char cover_url_2d[1000];
|
|
char cover_url_3d[1000];
|
|
char cover_url_disc[1000];
|
|
char cover_url_full[1000];
|
|
char cover_url_hq[1000];
|
|
|
|
// database options - Lustar
|
|
char db_url[512];
|
|
char db_language[50];
|
|
int db_show_info;
|
|
int db_ignore_titles;
|
|
int write_playstats;
|
|
char sort[20];
|
|
char translation[50];
|
|
|
|
int download_id_len;
|
|
int download_all;
|
|
char download_cc_pal[4];
|
|
//
|
|
int confirm_ocarina;
|
|
int cursor_jump;
|
|
int console_transparent;
|
|
char cursor[8], cursor_space[8];
|
|
char menu_plus[8], menu_plus_s[8];
|
|
char favorite[8], saved[8];
|
|
//admin lock
|
|
char unlock_password[11];
|
|
int admin_lock;
|
|
int admin_mode_locked;
|
|
//int ios_idx;
|
|
int ios, ios_yal, ios_mload;
|
|
// gui
|
|
int gui;
|
|
int gui_start;
|
|
int gui_menu; // wgui
|
|
int gui_transit;
|
|
int gui_style;
|
|
int gui_rows;
|
|
int gui_lock;
|
|
int gui_title_top;
|
|
struct FontColor gui_text;
|
|
struct FontColor gui_text2;
|
|
struct FontColor_CFG gui_text_cfg;
|
|
struct FontColor_CFG gui_text2_cfg;
|
|
struct FontColor gui_tc[GUI_TC_NUM];
|
|
u32 gui_window_color[GUI_COLOR_NUM];
|
|
char gui_font[100];
|
|
int start_favorites;
|
|
int gui_antialias;
|
|
int gui_compress_covers;
|
|
int clock_style;
|
|
struct RectCoords gui_cover_area;
|
|
struct RectCoords gui_title_area;
|
|
struct PosCoords gui_clock_pos;
|
|
struct PosCoords gui_page_pos;
|
|
int gui_pointer_scroll;
|
|
struct CfgButton gui_button[GUI_BUTTON_NUM];
|
|
int gui_bar;
|
|
// global saved state
|
|
int saved_global;
|
|
char saved_theme[32];
|
|
int saved_device;
|
|
int saved_gui_style;
|
|
int saved_gui_rows;
|
|
char saved_partition[16];
|
|
int saved_profile;
|
|
// loadstructor
|
|
int intro;
|
|
int direct_launch;
|
|
char launch_discid[8];
|
|
//int current_partition;
|
|
int patch_dvd_check;
|
|
int disable_dvd_patch;
|
|
char titles_url[100];
|
|
int disable_nsmb_patch;
|
|
int disable_pop_patch;
|
|
int disable_bca;
|
|
int disable_wip;
|
|
int dml;
|
|
int default_gc_loader;
|
|
int old_button_color;
|
|
// int write_playlog;
|
|
// order of the following options (until specified point) is important
|
|
int button_M;
|
|
int button_P;
|
|
int button_A;
|
|
int button_B;
|
|
int button_H;
|
|
int button_1;
|
|
int button_2;
|
|
int button_X;
|
|
int button_Y;
|
|
int button_Z;
|
|
int button_C;
|
|
int button_L;
|
|
int button_R;
|
|
//order importance ends here
|
|
|
|
int button_gui;
|
|
int button_opt;
|
|
int button_fav;
|
|
struct MenuButton button_confirm;
|
|
struct MenuButton button_cancel;
|
|
struct MenuButton button_exit;
|
|
struct MenuButton button_other;
|
|
struct MenuButton button_save;
|
|
int load_unifont;
|
|
int wiird; // wii remote debugger
|
|
u32 return_to;
|
|
int delay_patch;
|
|
//themes
|
|
char theme[32];
|
|
char theme_path[200];
|
|
char nand_emu_path[200];
|
|
char wbfs_fat_dir[128];
|
|
int adult_themes;
|
|
int theme_previews;
|
|
int theme_previewX;
|
|
int theme_previewY;
|
|
int theme_previewW;
|
|
int theme_previewH;
|
|
int w_theme_previewX;
|
|
int w_theme_previewY;
|
|
int w_theme_previewW;
|
|
int w_theme_previewH;
|
|
int select;
|
|
|
|
//gamercards
|
|
char gamercard_url[1000];
|
|
char gamercard_key[200];
|
|
};
|
|
|
|
extern struct CFG CFG;
|
|
|
|
#define CF_TRANS_NONE 0
|
|
#define CF_TRANS_ROTATE_RIGHT 1
|
|
#define CF_TRANS_ROTATE_LEFT 2
|
|
#define CF_TRANS_FLIP_TO_BACK 3
|
|
#define CF_TRANS_MOVE_TO_CENTER 4
|
|
#define CF_TRANS_MOVE_TO_POSITION 5
|
|
#define CF_TRANS_MOVE_TO_CONSOLE 6
|
|
#define CF_TRANS_MOVE_TO_CONSOLE_3D 7
|
|
#define CF_TRANS_MOVE_FROM_CONSOLE 8
|
|
#define CF_TRANS_MOVE_FROM_CONSOLE_3D 9
|
|
|
|
//coverflow themes
|
|
enum coverflow_themes {
|
|
coverflow3d = 0,
|
|
coverflow2d,
|
|
frontrow,
|
|
vertical,
|
|
carousel,
|
|
};
|
|
|
|
//global settings structure for coverflow themes
|
|
struct settings_cf_global {
|
|
int number_of_covers; // total number of games
|
|
int selected_cover; // currently selected cover
|
|
enum coverflow_themes theme; // currently selected coverflow theme
|
|
int covers_3d; // use 3D cover objects
|
|
int screen_fade_alpha; // alpha level of background when screen is faded
|
|
int frameCount; // total frame count of rotation
|
|
int frameIndex; // current frame index of rotation
|
|
int transition; // current type of transition (rotate right/left, move to front, etc)
|
|
f32 cover_back_xpos; // cover position when the back cover is being displayed
|
|
f32 cover_back_ypos; // ''
|
|
f32 cover_back_zpos; // ''
|
|
f32 cover_back_xrot; // cover rotation when the back cover is being displayed
|
|
f32 cover_back_yrot; // ''
|
|
f32 cover_back_zrot; // ''
|
|
};
|
|
extern struct settings_cf_global CFG_cf_global;
|
|
|
|
|
|
//structure for the coverflow themes
|
|
struct settings_cf_theme {
|
|
int rotation_frames; // normal-speed rotation frame count
|
|
int rotation_frames_fast; // fast-speed rotation frame count
|
|
int number_of_side_covers; // number of side covers for the theme
|
|
u32 reflections_color_bottom; // color (incl alpha) of the reflection closest to the bottom cover
|
|
u32 reflections_color_top; // color (incl alpha) of the reflection furthest from the bottom of the cover
|
|
int alpha_rolloff; // makes the side covers MORE transparent as they span out from the center: 0=disabled
|
|
bool floating_cover; // makes the center cover "float" as it's standing still
|
|
|
|
f32 cam_pos_x; // camera position in 3D space
|
|
f32 cam_pos_y;
|
|
f32 cam_pos_z;
|
|
f32 cam_look_x; // camera look point
|
|
f32 cam_look_y;
|
|
f32 cam_look_z;
|
|
|
|
f32 cover_rolloff_x; // used to make the cover positioning into a circle shape
|
|
f32 cover_rolloff_y;
|
|
f32 cover_rolloff_z;
|
|
|
|
f32 title_text_xpos; // game title position
|
|
f32 title_text_ypos;
|
|
|
|
f32 cover_center_xpos; // center cover positioning
|
|
f32 cover_center_ypos;
|
|
f32 cover_center_zpos;
|
|
f32 cover_center_xrot; // center cover rotation
|
|
f32 cover_center_yrot;
|
|
f32 cover_center_zrot;
|
|
bool cover_center_reflection_used; // alpha (transparency) level of the center cover
|
|
// reflection: 0=no reflection, 255=no transparency
|
|
|
|
f32 cover_distance_from_center_left_x; // distance between the center cover and the first left side cover
|
|
f32 cover_distance_from_center_left_y;
|
|
f32 cover_distance_from_center_left_z;
|
|
f32 cover_distance_between_covers_left_x; // distance between the left side covers
|
|
f32 cover_distance_between_covers_left_y;
|
|
f32 cover_distance_between_covers_left_z;
|
|
f32 cover_left_xpos; // position of left side covers
|
|
f32 cover_left_ypos;
|
|
f32 cover_left_zpos;
|
|
f32 cover_left_xrot; // left side cover rotation
|
|
f32 cover_left_yrot;
|
|
f32 cover_left_zrot;
|
|
|
|
f32 cover_distance_from_center_right_x; // distance between the center cover and the first right side cover
|
|
f32 cover_distance_from_center_right_y;
|
|
f32 cover_distance_from_center_right_z;
|
|
f32 cover_distance_between_covers_right_x; // distance between the right side covers
|
|
f32 cover_distance_between_covers_right_y;
|
|
f32 cover_distance_between_covers_right_z;
|
|
f32 cover_right_xpos; // position of right side covers
|
|
f32 cover_right_ypos;
|
|
f32 cover_right_zpos;
|
|
f32 cover_right_xrot; // right side cover rotation
|
|
f32 cover_right_yrot;
|
|
f32 cover_right_zrot;
|
|
};
|
|
#define CF_THEME_NUM 5
|
|
extern struct settings_cf_theme CFG_cf_theme[CF_THEME_NUM];
|
|
|
|
extern int num_theme;
|
|
extern int cur_theme;
|
|
|
|
void CFG_Default();
|
|
void CFG_Load(int argc, char **argv);
|
|
void CFG_Setup(int argc, char **argv);
|
|
bool CFG_Load_Settings();
|
|
bool CFG_Save_Settings(int verbose);
|
|
bool CFG_Save_Global_Settings();
|
|
void cfg_parsearg_early(int argc, char **argv);
|
|
int CFG_MountUSB();
|
|
|
|
char *cfg_get_title(u8 *id);
|
|
char *get_title(struct discHdr *header);
|
|
|
|
struct Game_CFG_2* CFG_find_game(u8 *id);
|
|
struct Game_CFG CFG_read_active_game_setting(u8 *id);
|
|
struct Game_CFG_2* CFG_get_game(u8 *id);
|
|
bool CFG_is_saved(u8 *id);
|
|
bool CFG_is_changed(u8 *id);
|
|
bool CFG_save_game_opt(u8 *id);
|
|
bool CFG_discard_game_opt(u8 *id);
|
|
void CFG_release_game(struct Game_CFG_2 *game);
|
|
|
|
int CFG_hide_games(struct discHdr *list, int cnt);
|
|
void CFG_sort_pref(struct discHdr *list, int cnt);
|
|
void CFG_switch_theme(int theme_i);
|
|
void cfg_set_cover_style(int style);
|
|
void cfg_setup_cover_style();
|
|
|
|
char *ios_str(int idx);
|
|
void cfg_ios(char *name, char *val);
|
|
void cfg_ios_set_idx(int ios_idx);
|
|
bool is_ios_idx_mload(int ios_idx);
|
|
int get_ios_idx_type(int ios_idx);
|
|
|
|
bool set_favorite(u8 *id, bool fav);
|
|
bool is_favorite(u8 *id);
|
|
|
|
bool set_hide_game(u8 *id, bool hide);
|
|
bool is_hide_game(u8 *id);
|
|
|
|
int CFG_filter_favorite(struct discHdr *list, int cnt);
|
|
|
|
char *get_clock_str(time_t t);
|
|
|
|
void set_recommended_cIOS_idx(u8 ios, bool onlyD2x);
|
|
|
|
int readPlayStats(void);
|
|
u32 getPlayCount(u8 *id);
|
|
time_t getLastPlay(u8 *id);
|
|
int setPlayStat(u8 *id);
|
|
|
|
char *cfg_get_covers_path(int style);
|
|
|
|
extern struct TextMap map_video_patch[];
|
|
extern struct TextMap map_gui_style[];
|
|
extern struct TextMap map_ios[];
|
|
extern struct TextMap map_nand_emu[];
|
|
extern struct TextMap map_channel_boot[];
|
|
extern struct TextMap map_gc_boot[];
|
|
extern char *names_vpatch[CFG_VIDEO_PATCH_NUM];
|
|
extern u8 cIOS_base[];
|
|
|
|
#define NUM_HOOK 8
|
|
extern char *hook_name[NUM_HOOK];
|
|
|
|
#endif
|