mirror of
https://github.com/nitraiolo/CfgUSBLoader.git
synced 2024-11-27 05:34:17 +01:00
Usability - added filter persistance per profile on config save
Usability - added "FWD Emulators" GameType for most common emulator forwarder channels (to use with emunand) Usability - re-enabled online update from http://cfgusbloader.ntd.homelinux.org releases Internals - implemented separated online update for -222 builds
This commit is contained in:
parent
947c835269
commit
eadf7f3d65
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-02-10 11:11-0500\n"
|
||||
"POT-Creation-Date: 2015-05-07 20:35+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -16,6 +16,18 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid " 59 blocks"
|
||||
msgstr ""
|
||||
|
||||
msgid " 123 blocks"
|
||||
msgstr ""
|
||||
|
||||
msgid " 251 blocks"
|
||||
msgstr ""
|
||||
|
||||
msgid " 507 blocks"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%.1fGB free of %.1fGB"
|
||||
msgstr ""
|
||||
@ -73,6 +85,9 @@ msgstr ""
|
||||
msgid "1.2+"
|
||||
msgstr ""
|
||||
|
||||
msgid "1019 blocks"
|
||||
msgstr ""
|
||||
|
||||
msgid "1st-Person Shooter"
|
||||
msgstr ""
|
||||
|
||||
@ -85,6 +100,9 @@ msgstr ""
|
||||
msgid "2.2+"
|
||||
msgstr ""
|
||||
|
||||
msgid "2043 blocks"
|
||||
msgstr ""
|
||||
|
||||
msgid "3D cover"
|
||||
msgstr ""
|
||||
|
||||
@ -211,9 +229,15 @@ msgstr ""
|
||||
msgid "Boot Disc"
|
||||
msgstr ""
|
||||
|
||||
msgid "Boot Method:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Boot disc"
|
||||
msgstr ""
|
||||
|
||||
msgid "Boot method:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Booting game, please wait..."
|
||||
msgstr ""
|
||||
|
||||
@ -385,6 +409,9 @@ msgstr ""
|
||||
msgid "DEVO"
|
||||
msgstr ""
|
||||
|
||||
msgid "DIOS MIOS"
|
||||
msgstr ""
|
||||
|
||||
msgid "DISC cover"
|
||||
msgstr ""
|
||||
|
||||
@ -406,6 +433,12 @@ msgstr ""
|
||||
msgid "Debug"
|
||||
msgstr ""
|
||||
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
msgid "Default Gamecube Loader:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete Game"
|
||||
msgstr ""
|
||||
|
||||
@ -424,10 +457,10 @@ msgstr ""
|
||||
msgid "Device:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Devolution only accepts clean dumps!\n"
|
||||
msgid "Devolution"
|
||||
msgstr ""
|
||||
|
||||
msgid "Devolution:"
|
||||
msgid "Devolution only accepts clean dumps!\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disc"
|
||||
@ -825,6 +858,9 @@ msgstr ""
|
||||
msgid "FULL cover"
|
||||
msgstr ""
|
||||
|
||||
msgid "FWD Emulators"
|
||||
msgstr ""
|
||||
|
||||
msgid "Fav"
|
||||
msgstr ""
|
||||
|
||||
@ -889,9 +925,6 @@ msgstr ""
|
||||
msgid "Football"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force Devolution:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force NTSC"
|
||||
msgstr ""
|
||||
|
||||
@ -1128,6 +1161,12 @@ msgstr ""
|
||||
msgid "Loading..%s\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "MC size:"
|
||||
msgstr ""
|
||||
|
||||
msgid "MC size::"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main"
|
||||
msgstr ""
|
||||
|
||||
@ -1289,6 +1328,9 @@ msgstr ""
|
||||
msgid "Nintendo DS Connectivity"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont"
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
@ -1808,6 +1850,9 @@ msgstr ""
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Shared"
|
||||
msgstr ""
|
||||
|
||||
msgid "Shooter"
|
||||
msgstr ""
|
||||
|
||||
|
2
Makefile
2
Makefile
@ -15,7 +15,7 @@ include $(DEVKITPPC)/wii_rules
|
||||
# SOURCES is a list of directories containing source code
|
||||
# INCLUDES is a list of directories containing extra header files
|
||||
#---------------------------------------------------------------------------------
|
||||
VERSION := 70r78.8
|
||||
VERSION := 70r78.9
|
||||
RELEASE := release
|
||||
# to override RELEASE use: make announce RELEASE=beta
|
||||
ifeq ($(findstring compat,$(VERSION)),compat)
|
||||
|
209
source/cfg.c
209
source/cfg.c
@ -28,6 +28,7 @@
|
||||
#include "menu.h"
|
||||
#include "wbfs.h"
|
||||
#include "wgui.h"
|
||||
#include "sort.h"
|
||||
|
||||
char FAT_DRIVE[8] = SDHC_DRIVE;
|
||||
char USBLOADER_PATH[200] = "sd:/usb-loader";
|
||||
@ -301,6 +302,178 @@ struct TextMap map_mem_card_size[] =
|
||||
{ NULL, -1 }
|
||||
};
|
||||
|
||||
struct TextMap map_filter_type[] =
|
||||
{
|
||||
{ "all", -1 },
|
||||
{ "online", 0 },
|
||||
{ "unplayed", 1 },
|
||||
{ "genre", 2 },
|
||||
{ "features", 3 },
|
||||
{ "controller", 4 },
|
||||
{ "gamecube", 5 },
|
||||
{ "wii", 6 },
|
||||
{ "channel", 7 },
|
||||
{ "duplicate", 8 },
|
||||
{ "game_type", 9 },
|
||||
{ "search", 10 },
|
||||
{ NULL, -2 }
|
||||
};
|
||||
|
||||
struct TextMap map_game_type[] =
|
||||
{
|
||||
{ "wii", 0 },
|
||||
{ "gamecube", 1 },
|
||||
{ "all_channels", 2 },
|
||||
{ "wiiware", 3 },
|
||||
{ "vc_nes", 4 },
|
||||
{ "vc_snes", 5 },
|
||||
{ "vc_n64", 6 },
|
||||
{ "vc_sms", 7 },
|
||||
{ "vc_md", 8 },
|
||||
{ "vc_pce", 9 },
|
||||
{ "vc_neogeo", 10 },
|
||||
{ "vc_arcade", 11 },
|
||||
{ "vc_c64", 12 },
|
||||
{ "wii_channels", 13 },
|
||||
{ "fwd_emu", 14 },
|
||||
{ NULL, -1 }
|
||||
};
|
||||
|
||||
struct TextMap map_game_controller[] =
|
||||
{
|
||||
{ "wiimote", 0 },
|
||||
{ "nunchuk", 1 },
|
||||
{ "motionplus", 2 },
|
||||
{ "gamecube", 3 },
|
||||
{ "nintendods", 4 },
|
||||
{ "classiccontroller", 5 },
|
||||
{ "wheel", 6 },
|
||||
{ "zapper", 7 },
|
||||
{ "balanceboard", 8 },
|
||||
{ "microphone", 9 },
|
||||
{ "guitar", 10 },
|
||||
{ "drums", 11 },
|
||||
{ "camera", 12 },
|
||||
{ "dancepad", 13 },
|
||||
{ "infinitybase", 14 },
|
||||
{ "keyboard", 15 },
|
||||
{ "portalofpower", 16 },
|
||||
{ "skateboard", 17 },
|
||||
{ "totalbodytracking", 18 },
|
||||
{ "turntable", 19 },
|
||||
{ "udraw", 20 },
|
||||
{ "wiispeak", 21 },
|
||||
{ "vitalitysensor", 22 },
|
||||
{ NULL, -1 }
|
||||
};
|
||||
|
||||
struct TextMap map_game_feature[] =
|
||||
{
|
||||
{ "online", 0 },
|
||||
{ "download", 1 },
|
||||
{ "score", 2 },
|
||||
{ "nintendods", 3 },
|
||||
{ NULL, -1 }
|
||||
};
|
||||
|
||||
struct TextMap map_game_genre[] =
|
||||
{
|
||||
{ "action", 0 },
|
||||
{ "adventure", 1 },
|
||||
{ "fighting", 2 },
|
||||
{ "music", 3 },
|
||||
{ "platformer", 4 },
|
||||
{ "puzzle", 5 },
|
||||
{ "racing", 6 },
|
||||
{ "role-playing", 7 },
|
||||
{ "shooter", 8 },
|
||||
{ "simulation", 9 },
|
||||
{ "sports", 10 },
|
||||
{ "strategy", 11 },
|
||||
{ "arcade", 12 },
|
||||
{ "baseball", 13 },
|
||||
{ "basketball", 14 },
|
||||
{ "bike_racing", 15 },
|
||||
{ "billiards", 16 },
|
||||
{ "board_game", 17 },
|
||||
{ "bowling", 18 },
|
||||
{ "boxing", 19 },
|
||||
{ "business_simulation", 20 },
|
||||
{ "cards", 21 },
|
||||
{ "chess", 22 },
|
||||
{ "coaching", 23 },
|
||||
{ "compilation", 24 },
|
||||
{ "construction_simulation", 25 },
|
||||
{ "cooking", 26 },
|
||||
{ "cricket", 27 },
|
||||
{ "dance", 28 },
|
||||
{ "darts", 29 },
|
||||
{ "drawing", 30 },
|
||||
{ "educational", 31 },
|
||||
{ "exercise", 32 },
|
||||
{ "first-person_shooter", 33 },
|
||||
{ "fishing", 34 },
|
||||
{ "fitness", 35 },
|
||||
{ "flight_simulation", 36 },
|
||||
{ "football", 37 },
|
||||
{ "futuristic_racing", 38 },
|
||||
{ "golf", 39 },
|
||||
{ "health", 40 },
|
||||
{ "hidden_object", 41 },
|
||||
{ "hockey", 42 },
|
||||
{ "hunting", 43 },
|
||||
{ "karaoke", 44 },
|
||||
{ "kart_racing", 45 },
|
||||
{ "life_simulation", 46 },
|
||||
{ "management_simulation", 47 },
|
||||
{ "martial_arts", 48 },
|
||||
{ "motorcycle_racing", 49 },
|
||||
{ "off-road_racing", 50 },
|
||||
{ "party", 51 },
|
||||
{ "petanque", 52 },
|
||||
{ "pinball", 53 },
|
||||
{ "poker", 54 },
|
||||
{ "rail_shooter", 55 },
|
||||
{ "rhythm", 56 },
|
||||
{ "rugby", 57 },
|
||||
{ "sim_racing", 58 },
|
||||
{ "skateboarding", 59 },
|
||||
{ "ski", 60 },
|
||||
{ "snowboarding", 61 },
|
||||
{ "soccer", 62 },
|
||||
{ "stealth_action", 63 },
|
||||
{ "surfing", 64 },
|
||||
{ "survival_horror", 65 },
|
||||
{ "table_tennis", 66 },
|
||||
{ "tennis", 67 },
|
||||
{ "third-person_shooter", 68 },
|
||||
{ "train_simulation", 69 },
|
||||
{ "trivia", 70 },
|
||||
{ "truck_racing", 71 },
|
||||
{ "virtual_pet", 72 },
|
||||
{ "volleyball", 73 },
|
||||
{ "watercraft_racing", 74 },
|
||||
{ "wrestling", 75 },
|
||||
{ NULL, -1 }
|
||||
};
|
||||
|
||||
struct TextMap map_search_field[] =
|
||||
{
|
||||
{ "title", 0 },
|
||||
{ "synopsis", 1 },
|
||||
{ "developer", 2 },
|
||||
{ "publisher", 3 },
|
||||
{ "id6", 4 },
|
||||
{ "region", 5 },
|
||||
{ "rating", 6 },
|
||||
{ "players", 7 },
|
||||
{ "online_players", 8 },
|
||||
{ "play_count", 9 },
|
||||
{ "synopsis_len", 10 },
|
||||
{ "covers_available", 11 },
|
||||
{ NULL, -1 }
|
||||
};
|
||||
|
||||
struct playStat {
|
||||
char id[7];
|
||||
s32 playCount;
|
||||
@ -1189,6 +1362,7 @@ void CFG_default_path()
|
||||
|
||||
void CFG_Default()
|
||||
{
|
||||
int i;
|
||||
memset(&CFG, 0, sizeof(CFG));
|
||||
|
||||
// set coverflow defaults
|
||||
@ -1245,6 +1419,8 @@ void CFG_Default()
|
||||
CFG.num_profiles = 1;
|
||||
//CFG.current_profile = 0;
|
||||
STRCOPY(CFG.profile_names[0], "default");
|
||||
for (i = 0; i < MAX_PROFILES; i++)
|
||||
CFG.profile_filter[i] = -1;
|
||||
STRCOPY(CFG.titles_url, "http://www.gametdb.com/titles.txt?LANG={DBL}");
|
||||
CFG.intro = 4;
|
||||
CFG.fat_install_dir = 1;
|
||||
@ -2645,6 +2821,8 @@ void cfg_set(char *name, char *val)
|
||||
cfg_map("select", "most", &CFG.select, CFG_SELECT_MOST);
|
||||
cfg_map("select", "least", &CFG.select, CFG_SELECT_LEAST);
|
||||
cfg_map("select", "random", &CFG.select, CFG_SELECT_RANDOM);
|
||||
|
||||
cfg_bool("save_filter", &CFG.save_filter);
|
||||
}
|
||||
|
||||
|
||||
@ -2838,6 +3016,14 @@ void settings_set(char *name, char *val)
|
||||
}
|
||||
}
|
||||
}
|
||||
cfg_map_auto("profile_filter", map_filter_type, &CFG.profile_filter[profile_tag_index]);
|
||||
cfg_map_auto("profile_filter_genre", map_game_genre, &CFG.profile_filter_genre[profile_tag_index]);
|
||||
cfg_map_auto("profile_filter_feature", map_game_feature, &CFG.profile_filter_feature[profile_tag_index]);
|
||||
cfg_map_auto("profile_filter_controller", map_game_controller, &CFG.profile_filter_controller[profile_tag_index]);
|
||||
cfg_map_auto("profile_filter_gametype", map_game_type, &CFG.profile_filter_gametype[profile_tag_index]);
|
||||
cfg_map_auto("profile_search_field", map_search_field, &CFG.profile_search_field[profile_tag_index]);
|
||||
if (strcmp(name, "profile_search_string") == 0)
|
||||
strncpy(CFG.profile_search_string[profile_tag_index], val, 100);
|
||||
}
|
||||
if (profile_tag_index >= 0) {
|
||||
cfg_id_list("favorite_game", CFG.favorite_game,
|
||||
@ -2969,6 +3155,29 @@ bool CFG_Save_Settings(int verbose)
|
||||
if (CFG.profile_theme[j] != -1) {
|
||||
fprintf(f, "profile_theme = %s\n", theme_list[CFG.profile_theme[j]]);
|
||||
}
|
||||
if (CFG.save_filter) {
|
||||
if (CFG.profile_filter[j] >= 0) {
|
||||
fprintf(f, "profile_filter = %s\n", map_get_name(map_filter_type, CFG.profile_filter[j]));
|
||||
switch (CFG.profile_filter[j]) {
|
||||
case FILTER_GENRE:
|
||||
fprintf(f, "profile_filter_genre = %s\n", map_get_name(map_game_genre, CFG.profile_filter_genre[j]));
|
||||
break;
|
||||
case FILTER_FEATURES:
|
||||
fprintf(f, "profile_filter_feature = %s\n", map_get_name(map_game_feature, CFG.profile_filter_feature[j]));
|
||||
break;
|
||||
case FILTER_CONTROLLER:
|
||||
fprintf(f, "profile_filter_controller = %s\n", map_get_name(map_game_controller, CFG.profile_filter_controller[j]));
|
||||
break;
|
||||
case FILTER_GAME_TYPE:
|
||||
fprintf(f, "profile_filter_gametype = %s\n", map_get_name(map_game_type, CFG.profile_filter_gametype[j]));
|
||||
break;
|
||||
case FILTER_SEARCH:
|
||||
fprintf(f, "profile_search_field = %s\n", map_get_name(map_search_field, CFG.profile_search_field[j]));
|
||||
fprintf(f, "profile_search_string = %s\n", CFG.profile_search_string[j]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fprintf(f, "# Favorite Games: %d\n", CFG.num_favorite_game);
|
||||
for (i=0; i<CFG.num_favorite_game; i++) {
|
||||
fprintf(f, "favorite_game = %.4s\n", CFG.favorite_game[i]);
|
||||
|
10
source/cfg.h
10
source/cfg.h
@ -366,6 +366,8 @@ struct CFG
|
||||
char partition[16];
|
||||
int hide_header;
|
||||
int vwii_mode;
|
||||
// save filter to settings.cfg per profile
|
||||
int save_filter;
|
||||
// simple variants:
|
||||
int confirm_start;
|
||||
int hide_hddinfo;
|
||||
@ -424,6 +426,14 @@ struct CFG
|
||||
int profile_num_favorite[MAX_PROFILES];
|
||||
GAMEID_t profile_favorite[MAX_PROFILES][MAX_FAVORITE_GAME];
|
||||
int profile_theme[MAX_PROFILES];
|
||||
// list filtering parameters
|
||||
int profile_filter[MAX_PROFILES];
|
||||
int profile_filter_genre[MAX_PROFILES];
|
||||
int profile_filter_feature[MAX_PROFILES];
|
||||
int profile_filter_controller[MAX_PROFILES];
|
||||
int profile_filter_gametype[MAX_PROFILES];
|
||||
int profile_search_field[MAX_PROFILES];
|
||||
char profile_search_string[MAX_PROFILES][100];
|
||||
int profile_start_favorites[MAX_PROFILES];
|
||||
// sort order ignore list
|
||||
char sort_ignore[200];
|
||||
|
23
source/gui.c
23
source/gui.c
@ -2689,6 +2689,29 @@ void Gui_Action_Profile(int n)
|
||||
reset_sort_default();
|
||||
Switch_Favorites(CFG.profile_start_favorites[CFG.current_profile]);
|
||||
action_Theme_2(CFG.profile_theme[CFG.current_profile]);
|
||||
if (CFG.save_filter) {
|
||||
switch (CFG.profile_filter[CFG.current_profile]) {
|
||||
case FILTER_GENRE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_genre[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_FEATURES:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_feature[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_CONTROLLER:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_controller[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_GAME_TYPE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_gametype[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_SEARCH:
|
||||
strncpy(search_str, CFG.profile_search_string[CFG.current_profile], 100);
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_search_field[CFG.current_profile]);
|
||||
break;
|
||||
default:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
Gui_Refresh_List();
|
||||
sprintf(action_string, gt("Profile: %s"), CFG.profile_names[CFG.current_profile]);
|
||||
action_alpha = 0xFF;
|
||||
|
@ -2705,6 +2705,29 @@ int Menu_Global_Options()
|
||||
else new_theme = CFG.profile_theme[CFG.current_profile];
|
||||
CFG_switch_theme(new_theme);
|
||||
Video_DrawBg();
|
||||
if (CFG.save_filter) {
|
||||
switch (CFG.profile_filter[CFG.current_profile]) {
|
||||
case FILTER_GENRE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_genre[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_FEATURES:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_feature[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_CONTROLLER:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_controller[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_GAME_TYPE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_gametype[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_SEARCH:
|
||||
strncpy(search_str, CFG.profile_search_string[CFG.current_profile], 100);
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_search_field[CFG.current_profile]);
|
||||
break;
|
||||
default:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
redraw_cover = 1;
|
||||
Cache_Invalidate();
|
||||
break;
|
||||
@ -2867,6 +2890,29 @@ void DoAction(int action)
|
||||
else new_theme = CFG.profile_theme[CFG.current_profile];
|
||||
CFG_switch_theme(new_theme);
|
||||
Video_DrawBg();
|
||||
if (CFG.save_filter) {
|
||||
switch (CFG.profile_filter[CFG.current_profile]) {
|
||||
case FILTER_GENRE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_genre[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_FEATURES:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_feature[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_CONTROLLER:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_controller[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_GAME_TYPE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_gametype[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_SEARCH:
|
||||
strncpy(search_str, CFG.profile_search_string[CFG.current_profile], 100);
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_search_field[CFG.current_profile]);
|
||||
break;
|
||||
default:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gameCnt) Gui_DrawCover(gameList[gameSelected].id);//redraw_cover = 1;
|
||||
Cache_Invalidate();
|
||||
|
||||
@ -5190,7 +5236,32 @@ void Menu_Loop(void)
|
||||
|
||||
// Init Favorites
|
||||
Switch_Favorites(CFG.start_favorites || CFG.profile_start_favorites[CFG.current_profile]);
|
||||
|
||||
|
||||
// Init Saved Filters
|
||||
if (CFG.save_filter) {
|
||||
switch (CFG.profile_filter[CFG.current_profile]) {
|
||||
case FILTER_GENRE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_genre[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_FEATURES:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_feature[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_CONTROLLER:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_controller[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_GAME_TYPE:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_filter_gametype[CFG.current_profile]);
|
||||
break;
|
||||
case FILTER_SEARCH:
|
||||
strncpy(search_str, CFG.profile_search_string[CFG.current_profile], 100);
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], CFG.profile_search_field[CFG.current_profile]);
|
||||
break;
|
||||
default:
|
||||
filter_games_set(CFG.profile_filter[CFG.current_profile], 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch(CFG.select) {
|
||||
case CFG_SELECT_PREVIOUS:
|
||||
{
|
||||
|
@ -121,6 +121,7 @@ char *gameTypes[gameTypeCnt][2] =
|
||||
{ "vc-arcade", gts("VC-Arcade") },
|
||||
{ "vc-c64", gts("VC-Commodore 64") },
|
||||
{ "wiichannel", gts("Wii Channel") },
|
||||
{ "fwd-emu", gts("FWD Emulators") },
|
||||
};
|
||||
|
||||
char *genreTypes[genreCnt][2];
|
||||
@ -570,9 +571,37 @@ int filter_game_type(struct discHdr *list, int cnt, char *typeWanted, bool notus
|
||||
break;
|
||||
case GAME_TYPE_Wii_Channel:
|
||||
isGameType = (list[i].magic == CHANNEL_MAGIC) && ((memcmp("H",list[i].id,1) == 0)
|
||||
|| (memcmp("UCXF",list[i].id,4) == 0) //cfg loader
|
||||
|| (memcmp("MAUI",list[i].id,4) == 0) //backup homebrew channel
|
||||
|| (memcmp("NEOG",list[i].id,4) == 0)); //backup disk channel
|
||||
|| (memcmp("UCXF",list[i].id,4) == 0) // Cfg loader
|
||||
|| (memcmp("MAUI",list[i].id,4) == 0) // Backup homebrew channel
|
||||
|| (memcmp("NEOG",list[i].id,4) == 0)); // Backup disk channel
|
||||
case GAME_TYPE_FWD_Emu: /* Common emulators forward channels */
|
||||
isGameType = (list[i].magic == CHANNEL_MAGIC) && ((memcmp("D26A",list[i].id,4) == 0) // Atari 2600 Emulator - Wii2600
|
||||
|| (memcmp("DCVA",list[i].id,4) == 0) // ColecoVision Emulator - WiiColem
|
||||
|| (memcmp("D78A",list[i].id,4) == 0) // Atari 7800 Emulator - Wii7800
|
||||
|| (memcmp("DC6A",list[i].id,4) == 0) // Commodore 64 Emulator - Frodo
|
||||
|| (memcmp("FCEU",list[i].id,4) == 0) // Nintendo Emulator - FCE Ultra GX
|
||||
|| (memcmp("DSMA",list[i].id,4) == 0) // Sega Master System/Game Gear Emulator - SMS Plus GX
|
||||
|| (memcmp("DENA",list[i].id,4) == 0) // PC Engine Emulator - WiiEngine
|
||||
|| (memcmp("DGPA",list[i].id,4) == 0) // Sega Genesis/Mega Drive Emulator - Genesis Plus GX
|
||||
|| (memcmp("DSNA",list[i].id,4) == 0) // Super Nintendo Emulator - SNES9X GX
|
||||
|| (memcmp("DHGA",list[i].id,4) == 0) // TurboGrafx-16 Emulator - Hugo GX
|
||||
|| (memcmp("DNCA",list[i].id,4) == 0) // Neo Geo CD Emulator - NeoCD
|
||||
|| (memcmp("D64A",list[i].id,4) == 0) // Nintendo 64 Emulator - Wii64
|
||||
|| (memcmp("DWSA",list[i].id,4) == 0) // Playstation Emulator - WiiSX
|
||||
|| (memcmp("DYBA",list[i].id,4) == 0) // Sega Saturn Emulator - Yabause
|
||||
|| (memcmp("DWHA",list[i].id,4) == 0) // Atari Lynx Emulator - WiiHandySDL
|
||||
|| (memcmp("VBGX",list[i].id,4) == 0) // Gameboy / Gameboy Advance / Gameboy Colour - Visual Boy Advance GX
|
||||
|| (memcmp("DDSA",list[i].id,4) == 0) // Nintendo DS Emulator - DeSmuMEWii
|
||||
|| (memcmp("DWBA",list[i].id,4) == 0) // Nintendo Virtual Boy Emulator - WiiVB
|
||||
|| (memcmp("DMAA",list[i].id,4) == 0) // M.A.M.E. Emulator - SDLMameWii
|
||||
|| (memcmp("DGXA",list[i].id,4) == 0) // Neo Geo Emulator - GXGeo
|
||||
|| (memcmp("DUAA",list[i].id,4) == 0) // Amiga Emulator - UAE
|
||||
|| (memcmp("DWTA",list[i].id,4) == 0) // Amstrad CPC Emulator - Wiituka
|
||||
|| (memcmp("DWAA",list[i].id,4) == 0) // Apple II Emulator - WiiApple
|
||||
|| (memcmp("DXLA",list[i].id,4) == 0) // Atari 800/XL/XE/5200 Emulator - WiiXL
|
||||
|| (memcmp("DDBA",list[i].id,4) == 0) // DOSBox Emulator - DOSBoxWii
|
||||
|| (memcmp("DBLA",list[i].id,4) == 0) // MSX Emulator - BlueMSXWii
|
||||
|| (memcmp("DSVA",list[i].id,4) == 0)); // ScummVM Emulator - ScummVM
|
||||
break;
|
||||
default:
|
||||
isGameType = false;
|
||||
@ -1088,6 +1117,7 @@ void showAllGames(void)
|
||||
int filter_games_set(int type, int index)
|
||||
{
|
||||
int ret = -1;
|
||||
CFG.profile_filter[CFG.current_profile] = type;
|
||||
switch (type) {
|
||||
case FILTER_ALL:
|
||||
showAllGames();
|
||||
@ -1103,12 +1133,15 @@ int filter_games_set(int type, int index)
|
||||
index = -1;
|
||||
break;
|
||||
case FILTER_GENRE:
|
||||
CFG.profile_filter_genre[CFG.current_profile] = index;
|
||||
ret = filter_games(filter_genre, genreTypes[index][0], 0);
|
||||
break;
|
||||
case FILTER_FEATURES:
|
||||
CFG.profile_filter_feature[CFG.current_profile] = index;
|
||||
ret = filter_games(filter_features, featureTypes[index][0], 0);
|
||||
break;
|
||||
case FILTER_CONTROLLER:
|
||||
CFG.profile_filter_controller[CFG.current_profile] = index;
|
||||
ret = filter_games(filter_controller, accessoryTypes[index][0], 0);
|
||||
break;
|
||||
case FILTER_GAMECUBE:
|
||||
@ -1124,9 +1157,12 @@ int filter_games_set(int type, int index)
|
||||
ret = filter_games(filter_duplicate_id3, "", 0);
|
||||
break;
|
||||
case FILTER_GAME_TYPE:
|
||||
CFG.profile_filter_gametype[CFG.current_profile] = index;
|
||||
ret = filter_games(filter_game_type, (char*)index, 0);
|
||||
break;
|
||||
case FILTER_SEARCH:
|
||||
CFG.profile_search_field[CFG.current_profile] = index;
|
||||
strncpy(CFG.profile_search_string[CFG.current_profile], search_str, 100);
|
||||
ret = filter_games(filter_search, (char*)index, 0);
|
||||
break;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ struct Sorts
|
||||
#define accessoryCnt 23
|
||||
#define genreCnt 76
|
||||
#define sortCnt 10
|
||||
#define gameTypeCnt 14
|
||||
#define gameTypeCnt 15
|
||||
#define searchFieldCnt 12
|
||||
#define searchCompareTypeCnt 6
|
||||
|
||||
@ -52,6 +52,7 @@ struct Sorts
|
||||
#define GAME_TYPE_VC_Arcade 11
|
||||
#define GAME_TYPE_VC_C64 12
|
||||
#define GAME_TYPE_Wii_Channel 13
|
||||
#define GAME_TYPE_FWD_Emu 14
|
||||
|
||||
extern s32 filter_type;
|
||||
extern s32 filter_index;
|
||||
|
@ -995,7 +995,11 @@ out:
|
||||
|
||||
void Online_Update()
|
||||
{
|
||||
char *updates_url = "http://cfg-loader-mod.googlecode.com/svn/trunk/updates.txt";
|
||||
#if defined(BUILD_222) && (BUILD_222 == 1)
|
||||
char *updates_url = "http://cfgusbloader.ntd.homelinux.org/svn/CfgUSBLoader/trunk/updates-222.txt";
|
||||
#else
|
||||
char *updates_url = "http://cfgusbloader.ntd.homelinux.org/svn/CfgUSBLoader/trunk/updates.txt";
|
||||
#endif
|
||||
struct block file;
|
||||
file.data = NULL;
|
||||
|
||||
|
66
updates-222.txt
Normal file
66
updates-222.txt
Normal file
@ -0,0 +1,66 @@
|
||||
metaxml=<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
metaxml=<app version="1">
|
||||
metaxml= <name>Configurable USB Loader MOD patched</name>
|
||||
metaxml= <version>{VERSION}</version>
|
||||
metaxml= <release_date>{DATE}</release_date>
|
||||
metaxml= <coder>oggzee,usptactical,gannon,Clipper,R2-D2199,FIX94,airline38,Howard,NiTRo THe DeMoN</coder>
|
||||
metaxml= <short_description>Play from USB drive</short_description>
|
||||
metaxml=<long_description>
|
||||
metaxml=Play Wii Backups from USB harddrive
|
||||
metaxml=Waninkoko cIOS 249 is required!
|
||||
metaxml=Hermes cIOS 222/223 is supported.
|
||||
metaxml=USE AT YOUR OWN RISK!
|
||||
metaxml=</long_description>
|
||||
metaxml=<ahb_access/>
|
||||
metaxml=</app>
|
||||
|
||||
release = 70r78.9
|
||||
size = 1902240
|
||||
date = 2015-05-13
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r9/cfg70r78.9-222.dol
|
||||
-Usability - added filter persistance per profile on config save
|
||||
-Usability - added "FWD Emulators" GameType for most common emulator forwarder channels (to use with emunand)
|
||||
-Usability - re-enabled online update from http://cfgusbloader.ntd.homelinux.org releases
|
||||
-Internals - implemented separated online update for -222 builds
|
||||
|
||||
release = 70r78.8
|
||||
size = 1897504
|
||||
date = 2015-03-14
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r8/cfg70r78.8-222.dol
|
||||
-Compilation - code cleanup to remove all compilation warnings
|
||||
-GC - updated nintendont config support to version 0x00000003
|
||||
-Internals - added Wii / vWii identification capability
|
||||
-GC - fixed wide screen support in vWii for nintendont
|
||||
-GC - added nintendont memory card sizing
|
||||
-GC - added nintnedont shared memory card support
|
||||
-Internals - added "mem_card_emu" and "mem_card_size" keys for games configs in "settings.cfg"
|
||||
-Build - added revision number to version as suffix ".<rev>" (70r78.8)
|
||||
|
||||
release = 70r78.7
|
||||
size = 1894720
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r7/cfg70r78-222_stub.dol
|
||||
-Usability - added stub binary for return to loader and functions to manage the return TID via "return_to_channel" configuration key
|
||||
-Compilation - added all prebuild libraries for old PPC versions
|
||||
|
||||
release = 70r78.6
|
||||
size = 1890368
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r6/cfg70r78-222_ppc27.dol
|
||||
-Build - ported to Devkit PPC v27
|
||||
|
||||
Unreleased = 70r78.5
|
||||
date = 2015-01-17
|
||||
-GC - avoid mload reload on ios 58 before nintendont startup
|
||||
|
||||
release = 70r78.4
|
||||
size = 1931072
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r4/cfg70r78-222_ios252.dol
|
||||
-Games - added ios 252 support (to allow a dx2 installation schema like the one in the wiiflow pack)
|
||||
|
||||
release = 70r78.3
|
||||
size = 1931008
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r3/cfg70r78-222_cheatfix.dol
|
||||
-Cheat - porting of my download patch that disables referer only for geckocodes.org
|
56
updates.txt
56
updates.txt
@ -1,9 +1,9 @@
|
||||
metaxml=<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
metaxml=<app version="1">
|
||||
metaxml= <name>Configurable USB Loader MOD</name>
|
||||
metaxml= <name>Configurable USB Loader MOD patched</name>
|
||||
metaxml= <version>{VERSION}</version>
|
||||
metaxml= <release_date>{DATE}</release_date>
|
||||
metaxml= <coder>oggzee,usptactical,gannon,Clipper,R2-D2199,FIX94,airline38,Howard</coder>
|
||||
metaxml= <coder>oggzee,usptactical,gannon,Clipper,R2-D2199,FIX94,airline38,Howard,NiTRo THe DeMoN</coder>
|
||||
metaxml= <short_description>Play from USB drive</short_description>
|
||||
metaxml=<long_description>
|
||||
metaxml=Play Wii Backups from USB harddrive
|
||||
@ -11,8 +11,60 @@ metaxml=Waninkoko cIOS 249 is required!
|
||||
metaxml=Hermes cIOS 222/223 is supported.
|
||||
metaxml=USE AT YOUR OWN RISK!
|
||||
metaxml=</long_description>
|
||||
metaxml=<ahb_access/>
|
||||
metaxml=</app>
|
||||
|
||||
release = 70r78.9
|
||||
size = 1902208
|
||||
date = 2015-05-13
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r9/cfg70r78.9.dol
|
||||
-Usability - added filter persistance per profile on config save
|
||||
-Usability - added "FWD Emulators" GameType for most common emulator forwarder channels (to use with emunand)
|
||||
-Usability - re-enabled online update from http://cfgusbloader.ntd.homelinux.org releases
|
||||
-Internals - implemented separated online update for -222 builds
|
||||
|
||||
release = 70r78.8
|
||||
size = 1897472
|
||||
date = 2015-03-14
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r8/cfg70r78.8.dol
|
||||
-Compilation - code cleanup to remove all compilation warnings
|
||||
-GC - updated nintendont config support to version 0x00000003
|
||||
-Internals - added Wii / vWii identification capability
|
||||
-GC - fixed wide screen support in vWii for nintendont
|
||||
-GC - added nintendont memory card sizing
|
||||
-GC - added nintnedont shared memory card support
|
||||
-Internals - added "mem_card_emu" and "mem_card_size" keys for games configs in "settings.cfg"
|
||||
-Build - added revision number to version as suffix ".<rev>" (70r78.8)
|
||||
|
||||
release = 70r78.7
|
||||
size = 1894720
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r7/cfg70r78_stub.dol
|
||||
-Usability - added stub binary for return to loader and functions to manage the return TID via "return_to_channel" configuration key
|
||||
-Compilation - added all prebuild libraries for old PPC versions
|
||||
|
||||
release = 70r78.6
|
||||
size = 1890368
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r6/cfg70r78_ppc27.dol
|
||||
-Build - ported to Devkit PPC v27
|
||||
|
||||
Unreleased = 70r78.5
|
||||
date = 2015-01-17
|
||||
-GC - avoid mload reload on ios 58 before nintendont startup
|
||||
|
||||
release = 70r78.4
|
||||
size = 1931040
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r4/cfg70r78_ios252.dol
|
||||
-Games - added ios 252 support (to allow a dx2 installation schema like the one in the wiiflow pack)
|
||||
|
||||
release = 70r78.3
|
||||
size = 1930976
|
||||
date = 2015-01-17
|
||||
url = http://cfgusbloader.ntd.homelinux.org/trac/CfgUSBLoader/chrome/site/binaries/dol/r3/cfg70r78_cheatfix.dol
|
||||
-Cheat - porting of my download patch that disables referer only for geckocodes.org
|
||||
|
||||
Unreleased = 70r78
|
||||
date = 2014-11-02
|
||||
-Fixed downloading cheat files (Thanks pabloacurielz)
|
||||
|
Loading…
Reference in New Issue
Block a user