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:
Nitraiolo 2015-05-13 18:21:42 +00:00
parent 947c835269
commit eadf7f3d65
11 changed files with 532 additions and 15 deletions

View File

@ -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 ""

View File

@ -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)

View File

@ -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]);

View File

@ -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];

View File

@ -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;

View File

@ -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:
{

View File

@ -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;
}

View File

@ -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;

View File

@ -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
View 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

View File

@ -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)