From a5eeb6fc023c37b715462aa3c92ccb96af3e3253 Mon Sep 17 00:00:00 2001 From: Daryl Borth Date: Sat, 10 Dec 2016 12:37:33 -0700 Subject: [PATCH] merging changes from Zopenko's 3.3.8 --- readme.txt | 17 +- source/fceugx.h | 10 +- source/fceultra/fds.cpp | 12 +- source/fceultra/input/zapper.cpp | 27 +- source/gcvideo.cpp | 386 ++++-------------- source/gcvideo.h | 2 +- source/gui/gui_savebrowser.cpp | 10 +- source/images/button_gamesave.png | Bin 546 -> 524 bytes source/images/button_gamesave_over.png | Bin 12117 -> 11851 bytes .../images/unused/icon_game_controllers.png | Bin 7443 -> 0 bytes .../images/unused/icon_settings_powerpad.png | Bin 9087 -> 0 bytes source/menu.cpp | 33 +- source/pad.cpp | 109 +++-- source/preferences.cpp | 10 +- 14 files changed, 206 insertions(+), 410 deletions(-) delete mode 100644 source/images/unused/icon_game_controllers.png delete mode 100644 source/images/unused/icon_settings_powerpad.png diff --git a/readme.txt b/readme.txt index f91f2de..48d938f 100644 --- a/readme.txt +++ b/readme.txt @@ -12,7 +12,7 @@ Wii/GameCube. -=[ Releases ]=- -https://github.com/dborth/fceugc/releases +https://github.com/dborth/fceugx/releases -=[ Features ]=- @@ -37,6 +37,17 @@ https://github.com/dborth/fceugc/releases |0Oื๘oท UPDATE HISTORY ทo๘ืO0| `จ•จจจจจ จจจจจจจจจจจจจจจจ จจจจจจจจจจจจจจจ จจจจจจจจจจจจจจจจจจจจ จจจจจจจจจจจจจ' +[3.3.8 - May 14, 2016] + +* Removed some unused and redundant palettes (thanks to Burnt Lasagna), new naming convention is: + + Accurate Colors = Unsaturated-V5 Palette By FirebrandX + + Vivid Colors = YUV-V3 Palette By FirebrandX + + Wii VC Colors = Wii's Virtual Console Palette By SuperrSonic + + 3DS VC Colors = 3DS's Virtual Console Palette By SuperrSonic + + FCEUGX Colors = Real Palette by AspiringSquire +* Added a new "Delete" button in the Game Options, to erase Save States and SRAM files. +* NES Zapper support fixed (thanks to Burnt Lasagna) + [3.3.7 - Apr 18, 2016] * Added both Firebrandx NES color palettes (thanks to SuperrSonic and Asho). @@ -553,7 +564,9 @@ Timing - NTSC or PAL (Depends if you're running a PAL or NTSC game) Menu artwork the3seashells Menu sound Peter de Man Logo design mvit - + Additional updates/fixes Zopenko, Burnt Lasagna, Askot + Beta testing, bug reports Sindrik, niuus + จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ FCE Ultra GX GameCube SoftDev, askot & dsbomb diff --git a/source/fceugx.h b/source/fceugx.h index e4c7e1d..71bf342 100644 --- a/source/fceugx.h +++ b/source/fceugx.h @@ -17,7 +17,7 @@ #include "fceultra/driver.h" #define APPNAME "FCE Ultra GX" -#define APPVERSION "3.3.9" +#define APPVERSION "3.3.8" #define APPFOLDER "fceugx" #define PREF_FILE_NAME "settings.xml" @@ -80,19 +80,19 @@ enum struct SGCSettings { int AutoLoad; - int AutoSave; - int LoadMethod; // For ROMS: Auto, SD, DVD, USB, Network (SMB) + int AutoSave; + int LoadMethod; // For ROMS: Auto, SD, DVD, USB, Network (SMB) int SaveMethod; // For SRAM, Freeze, Prefs: Auto, SD, USB, SMB char LoadFolder[MAXPATHLEN]; // Path to game files char LastFileLoaded[MAXPATHLEN]; //Last file loaded filename char SaveFolder[MAXPATHLEN]; // Path to save files char CheatFolder[MAXPATHLEN]; // Path to cheat files char ScreenshotsFolder[MAXPATHLEN]; //Path to screenshots files - + char Exit_Dol_File[MAXPATHLEN]; // Exit Path char LoaderName[20]; // Menu Loader Name u32 Exit_Channel[2]; // Exit Channel - + char smbip[80]; char smbuser[20]; char smbpwd[20]; diff --git a/source/fceultra/fds.cpp b/source/fceultra/fds.cpp index e9dc32e..5584a56 100644 --- a/source/fceultra/fds.cpp +++ b/source/fceultra/fds.cpp @@ -154,14 +154,14 @@ void FCEU_FDSInsert(void) { FCEUMOV_AddCommand(FCEUNPCMD_FDSINSERT); if (TotalSides == 0) { - FCEU_DispMessage("Not FDS; can't eject disk.", 0); + FCEU_DispMessage("", 0);// remove text "Not FDS; can't eject disk." return; } if (InDisk == 255) { - FCEU_DispMessage("Disk %d Side %s Inserted", 0, SelectDisk >> 1, (SelectDisk & 1) ? "B" : "A"); + //FCEU_DispMessage("Disk %d Side %s Inserted", 0, SelectDisk >> 1, (SelectDisk & 1) ? "B" : "A"); InDisk = SelectDisk; } else { - FCEU_DispMessage("Disk %d Side %s Ejected", 0, SelectDisk >> 1, (SelectDisk & 1) ? "B" : "A"); + //FCEU_DispMessage("Disk %d Side %s Ejected", 0, SelectDisk >> 1, (SelectDisk & 1) ? "B" : "A"); InDisk = 255; } } @@ -178,15 +178,15 @@ void FCEU_FDSSelect(void) { FCEUMOV_AddCommand(FCEUNPCMD_FDSSELECT); if (TotalSides == 0) { - FCEU_DispMessage("Not FDS; can't select disk.", 0); + FCEU_DispMessage("", 0);//remove text "Not FDS; can't select disk." return; } if (InDisk != 255) { - FCEU_DispMessage("Eject disk before selecting.", 0); + FCEU_DispMessage("", 0); //remove text "Eject disk before selecting" return; } SelectDisk = ((SelectDisk + 1) % TotalSides) & 3; - FCEU_DispMessage("Disk %d Side %c Selected", 0, SelectDisk >> 1, (SelectDisk & 1) ? 'B' : 'A'); + FCEU_DispMessage("", 0); //("Disk %d Side %c Selected", 0, SelectDisk >> 1, (SelectDisk & 1) ? 'B' : 'A'); } static void FDSFix(int a) { diff --git a/source/fceultra/input/zapper.cpp b/source/fceultra/input/zapper.cpp index 6635b0f..b95a73b 100644 --- a/source/fceultra/input/zapper.cpp +++ b/source/fceultra/input/zapper.cpp @@ -76,18 +76,19 @@ static void ZapperFrapper(int w, uint8 *bg, uint8 *spr, uint32 linets, int final } endo: ZD[w].zappo=final; - - //if this was a miss, clear out the hit + +#ifndef GEKKO + //if this was a miss, clear out the hit if(ZD[w].mzb&2) ZD[w].zaphit=0; - +#endif } static INLINE int CheckColor(int w) { FCEUPPU_LineUpdate(); - - if(newppu) + + if(newppu) { int x = (int)ZD[w].mzx; int y = (int)ZD[w].mzy; @@ -116,10 +117,15 @@ static INLINE int CheckColor(int w) } +#ifdef GEKKO + if((ZD[w].zaphit+100)>=(timestampbase+timestamp) + && !(ZD[w].mzb&2)) return 0; +#else if((ZD[w].zaphit+100)>=(timestampbase+timestamp)) { return 0; } +#endif return 1; } @@ -168,7 +174,16 @@ static void DrawZapper(int w, uint8 *buf, int arg) static void UpdateZapper(int w, void *data, int arg) { uint32 *ptr=(uint32 *)data; +#ifdef GEKKO + if(ZD[w].bogo) + ZD[w].bogo--; + if(ptr[2]&3 && (!(ZD[w].mzb&3))) + ZD[w].bogo=5; + ZD[w].mzx=ptr[0]; + ZD[w].mzy=ptr[1]; + ZD[w].mzb=ptr[2]; +#else bool newclicked = (ptr[2]&3)!=0; bool oldclicked = (ZD[w].lastInput)!=0; @@ -187,7 +202,7 @@ static void UpdateZapper(int w, void *data, int arg) ZD[w].mzx=ptr[0]; ZD[w].mzy=ptr[1]; } - +#endif } static void LogZapper(int w, MovieRecord* mr) diff --git a/source/gcvideo.cpp b/source/gcvideo.cpp index 8c870c0..2126517 100644 --- a/source/gcvideo.cpp +++ b/source/gcvideo.cpp @@ -1297,7 +1297,83 @@ void SetPalette() } struct st_palettes palettes[] = { - { "asqrealc", "AspiringSquire's Real palette", + // Unsaturated-V5 Palette By FirebrandX + { "accurate", "Accurate Colors", + { 0x6b6b6b, 0x001e87, 0x1f0b96, 0x3b0c87, + 0x590d61, 0x5e0528, 0x551100, 0x461b00, + 0x303200, 0x0a4800, 0x004e00, 0x004619, + 0x00395a, 0x000000, 0x000000, 0x000000, + 0xb2b2b2, 0x1a53d1, 0x4835ee, 0x7123ec, + 0x9a1eb7, 0xa51e62, 0xa52d19, 0x874b00, + 0x676900, 0x298400, 0x038b00, 0x008240, + 0x007096, 0x000000, 0x000000, 0x000000, + 0xffffff, 0x63adfd, 0x908afe, 0xb977fc, + 0xe771fe, 0xf76fc9, 0xf5836a, 0xdd9c29, + 0xbdb807, 0x84d107, 0x5bdc3b, 0x48d77d, + 0x48c6d8, 0x555555, 0x000000, 0x000000, + 0xffffff, 0xc4e3fe, 0xd7d5fe, 0xe6cdfe, + 0xf9cafe, 0xfec9f0, 0xfed1c7, 0xf7dcac, + 0xe8e89c, 0xd1f29d, 0xbff4b1, 0xb7f5cd, + 0xb7ebf2, 0xbebebe, 0x000000, 0x000000 } + }, + // YUV-V3 Palette By FirebrandX + { "vivid", "Vivid Colors", + { 0x666666, 0x002a88, 0x1412a7, 0x3b00a4, + 0x5c007e, 0x6e0040, 0x6c0700, 0x561d00, + 0x333500, 0x0c4800, 0x005200, 0x004c18, + 0x003e5b, 0x000000, 0x000000, 0x000000, + 0xadadad, 0x155fd9, 0x4240ff, 0x7527fe, + 0xa01acc, 0xb71e7b, 0xb53120, 0x994e00, + 0x6b6d00, 0x388700, 0x0d9300, 0x008c47, + 0x007aa0, 0x000000, 0x000000, 0x000000, + 0xffffff, 0x64b0ff, 0x9290ff, 0xc676ff, + 0xf26aff, 0xff6ecc, 0xff8170, 0xea9e22, + 0xbcbe00, 0x88d800, 0x5ce430, 0x45e082, + 0x48cdde, 0x4f4f4f, 0x000000, 0x000000, + 0xffffff, 0xc0dfff, 0xd3d2ff, 0xe8c8ff, + 0xfac2ff, 0xffc4ea, 0xffccc5, 0xf7d8a5, + 0xe4e594, 0xcfef96, 0xbdf4ab, 0xb3f3cc, + 0xb5ebf2, 0xb8b8b8, 0x000000, 0x000000 } + }, + // Wii Virtual Console palette by SuperrSonic's + { "wiivc", "Wii VC Colors", + { 0x494949, 0x00006a, 0x090063, 0x290059, + 0x42004a, 0x490000, 0x420000, 0x291100, + 0x182700, 0x003010, 0x003000, 0x002910, + 0x012043, 0x000000, 0x000000, 0x000000, + 0x747174, 0x003084, 0x3101ac, 0x4b0194, + 0x64007b, 0x6b0039, 0x6b2101, 0x5a2f00, + 0x424900, 0x185901, 0x105901, 0x015932, + 0x01495a, 0x101010, 0x000000, 0x000000, + 0xadadad, 0x4a71b6, 0x6458d5, 0x8450e6, + 0xa451ad, 0xad4984, 0xb5624a, 0x947132, + 0x7b722a, 0x5a8601, 0x388e31, 0x318e5a, + 0x398e8d, 0x383838, 0x000000, 0x000000, + 0xb6b6b6, 0x8c9db5, 0x8d8eae, 0x9c8ebc, + 0xa687bc, 0xad8d9d, 0xae968c, 0x9c8f7c, + 0x9c9e72, 0x94a67c, 0x84a77b, 0x7c9d84, + 0x73968d, 0xdedede, 0x000000, 0x000000 } + }, + // 3DS Virtual Console palette by SuperrSonic's + { "3dsvc", "3DS VC Colors", + { 0x494949, 0x00006a, 0x090063, 0x290059, + 0x42004a, 0x490000, 0x420000, 0x291100, + 0x182700, 0x003010, 0x003000, 0x002910, + 0x012043, 0x000000, 0x000000, 0x000000, + 0x747174, 0x003084, 0x3101ac, 0x4b0194, + 0x64007b, 0x6b0039, 0x6b2101, 0x5a2f00, + 0x424900, 0x185901, 0x105901, 0x015932, + 0x01495a, 0x101010, 0x000000, 0x000000, + 0xadadad, 0x4a71b6, 0x6458d5, 0x8450e6, + 0xa451ad, 0xad4984, 0xb5624a, 0x947132, + 0x7b722a, 0x5a8601, 0x388e31, 0x318e5a, + 0x398e8d, 0x383838, 0x000000, 0x000000, + 0xb6b6b6, 0x8c9db5, 0x8d8eae, 0x9c8ebc, + 0xa687bc, 0xad8d9d, 0xae968c, 0x9c8f7c, + 0x9c9e72, 0x94a67c, 0x84a77b, 0x7c9d84, + 0x73968d, 0xdedede, 0x000000, 0x000000 } + }, + { "asqrealc", "FCEUGX Colors", { 0x6c6c6c, 0x00268e, 0x0000a8, 0x400094, 0x700070, 0x780040, 0x700000, 0x621600, 0x442400, 0x343400, 0x005000, 0x004444, @@ -1314,313 +1390,7 @@ struct st_palettes palettes[] = { 0xffb0ff, 0xffb8e8, 0xffc4c4, 0xffd4a8, 0xffe890, 0xf0f4a4, 0xc0ffc0, 0xacf4f0, 0xa0e8ff, 0xc2c2c2, 0x202020, 0x101010 } - }, - { "loopy", "Loopy's palette", - { 0x757575, 0x271b8f, 0x0000ab, 0x47009f, - 0x8f0077, 0xab0013, 0xa70000, 0x7f0b00, - 0x432f00, 0x004700, 0x005100, 0x003f17, - 0x1b3f5f, 0x000000, 0x000000, 0x000000, - 0xbcbcbc, 0x0073ef, 0x233bef, 0x8300f3, - 0xbf00bf, 0xe7005b, 0xdb2b00, 0xcb4f0f, - 0x8b7300, 0x009700, 0x00ab00, 0x00933b, - 0x00838b, 0x000000, 0x000000, 0x000000, - 0xffffff, 0x3fbfff, 0x5f97ff, 0xa78bfd, - 0xf77bff, 0xff77b7, 0xff7763, 0xff9b3b, - 0xf3bf3f, 0x83d313, 0x4fdf4b, 0x58f898, - 0x00ebdb, 0x000000, 0x000000, 0x000000, - 0xffffff, 0xabe7ff, 0xc7d7ff, 0xd7cbff, - 0xffc7ff, 0xffc7db, 0xffbfb3, 0xffdbab, - 0xffe7a3, 0xe3ffa3, 0xabf3bf, 0xb3ffcf, - 0x9ffff3, 0x000000, 0x000000, 0x000000 } - }, - { "quor", "Quor's palette", - { 0x3f3f3f, 0x001f3f, 0x00003f, 0x1f003f, - 0x3f003f, 0x3f0020, 0x3f0000, 0x3f2000, - 0x3f3f00, 0x203f00, 0x003f00, 0x003f20, - 0x003f3f, 0x000000, 0x000000, 0x000000, - 0x7f7f7f, 0x405f7f, 0x40407f, 0x5f407f, - 0x7f407f, 0x7f4060, 0x7f4040, 0x7f6040, - 0x7f7f40, 0x607f40, 0x407f40, 0x407f60, - 0x407f7f, 0x000000, 0x000000, 0x000000, - 0xbfbfbf, 0x809fbf, 0x8080bf, 0x9f80bf, - 0xbf80bf, 0xbf80a0, 0xbf8080, 0xbfa080, - 0xbfbf80, 0xa0bf80, 0x80bf80, 0x80bfa0, - 0x80bfbf, 0x000000, 0x000000, 0x000000, - 0xffffff, 0xc0dfff, 0xc0c0ff, 0xdfc0ff, - 0xffc0ff, 0xffc0e0, 0xffc0c0, 0xffe0c0, - 0xffffc0, 0xe0ffc0, 0xc0ffc0, 0xc0ffe0, - 0xc0ffff, 0x000000, 0x000000, 0x000000 } - }, - { "wiivc", "SuperrSonic's WIIvc palette", - { 0x494949, 0x00006a, 0x090063, 0x290059, - 0x42004a, 0x490000, 0x420000, 0x291100, - 0x182700, 0x003010, 0x003000, 0x002910, - 0x012043, 0x000000, 0x000000, 0x000000, - 0x747174, 0x003084, 0x3101ac, 0x4b0194, - 0x64007b, 0x6b0039, 0x6b2101, 0x5a2f00, - 0x424900, 0x185901, 0x105901, 0x015932, - 0x01495a, 0x101010, 0x000000, 0x000000, - 0xadadad, 0x4a71b6, 0x6458d5, 0x8450e6, - 0xa451ad, 0xad4984, 0xb5624a, 0x947132, - 0x7b722a, 0x5a8601, 0x388e31, 0x318e5a, - 0x398e8d, 0x383838, 0x000000, 0x000000, - 0xb6b6b6, 0x8c9db5, 0x8d8eae, 0x9c8ebc, - 0xa687bc, 0xad8d9d, 0xae968c, 0x9c8f7c, - 0x9c9e72, 0x94a67c, 0x84a77b, 0x7c9d84, - 0x73968d, 0xdedede, 0x000000, 0x000000 } - }, - { "3dsvc", "SuperrSonic's 3DSvc palette", - { 0x494949, 0x00006a, 0x090063, 0x290059, - 0x42004a, 0x490000, 0x420000, 0x291100, - 0x182700, 0x003010, 0x003000, 0x002910, - 0x012043, 0x000000, 0x000000, 0x000000, - 0x747174, 0x003084, 0x3101ac, 0x4b0194, - 0x64007b, 0x6b0039, 0x6b2101, 0x5a2f00, - 0x424900, 0x185901, 0x105901, 0x015932, - 0x01495a, 0x101010, 0x000000, 0x000000, - 0xadadad, 0x4a71b6, 0x6458d5, 0x8450e6, - 0xa451ad, 0xad4984, 0xb5624a, 0x947132, - 0x7b722a, 0x5a8601, 0x388e31, 0x318e5a, - 0x398e8d, 0x383838, 0x000000, 0x000000, - 0xb6b6b6, 0x8c9db5, 0x8d8eae, 0x9c8ebc, - 0xa687bc, 0xad8d9d, 0xae968c, 0x9c8f7c, - 0x9c9e72, 0x94a67c, 0x84a77b, 0x7c9d84, - 0x73968d, 0xdedede, 0x000000, 0x000000 } - }, - { "chris", "Chris Covell's palette", - { 0x808080, 0x003DA6, 0x0012B0, 0x440096, - 0xA1005E, 0xC70028, 0xBA0600, 0x8C1700, - 0x5C2F00, 0x104500, 0x054A00, 0x00472E, - 0x004166, 0x000000, 0x050505, 0x050505, - 0xC7C7C7, 0x0077FF, 0x2155FF, 0x8237FA, - 0xEB2FB5, 0xFF2950, 0xFF2200, 0xD63200, - 0xC46200, 0x358000, 0x058F00, 0x008A55, - 0x0099CC, 0x212121, 0x090909, 0x090909, - 0xFFFFFF, 0x0FD7FF, 0x69A2FF, 0xD480FF, - 0xFF45F3, 0xFF618B, 0xFF8833, 0xFF9C12, - 0xFABC20, 0x9FE30E, 0x2BF035, 0x0CF0A4, - 0x05FBFF, 0x5E5E5E, 0x0D0D0D, 0x0D0D0D, - 0xFFFFFF, 0xA6FCFF, 0xB3ECFF, 0xDAABEB, - 0xFFA8F9, 0xFFABB3, 0xFFD2B0, 0xFFEFA6, - 0xFFF79C, 0xD7E895, 0xA6EDAF, 0xA2F2DA, - 0x99FFFC, 0xDDDDDD, 0x111111, 0x111111 } - }, - { "matt", "Matthew Conte's palette", - { 0x808080, 0x0000bb, 0x3700bf, 0x8400a6, - 0xbb006a, 0xb7001e, 0xb30000, 0x912600, - 0x7b2b00, 0x003e00, 0x00480d, 0x003c22, - 0x002f66, 0x000000, 0x050505, 0x050505, - 0xc8c8c8, 0x0059ff, 0x443cff, 0xb733cc, - 0xff33aa, 0xff375e, 0xff371a, 0xd54b00, - 0xc46200, 0x3c7b00, 0x1e8415, 0x009566, - 0x0084c4, 0x111111, 0x090909, 0x090909, - 0xffffff, 0x0095ff, 0x6f84ff, 0xd56fff, - 0xff77cc, 0xff6f99, 0xff7b59, 0xff915f, - 0xffa233, 0xa6bf00, 0x51d96a, 0x4dd5ae, - 0x00d9ff, 0x666666, 0x0d0d0d, 0x0d0d0d, - 0xffffff, 0x84bfff, 0xbbbbff, 0xd0bbff, - 0xffbfea, 0xffbfcc, 0xffc4b7, 0xffccae, - 0xffd9a2, 0xcce199, 0xaeeeb7, 0xaaf7ee, - 0xb3eeff, 0xdddddd, 0x111111, 0x111111 } - }, - { "pasofami", "PasoFami/99 palette", - { 0x7f7f7f, 0x0000ff, 0x0000bf, 0x472bbf, - 0x970087, 0xab0023, 0xab1300, 0x8b1700, - 0x533000, 0x007800, 0x006b00, 0x005b00, - 0x004358, 0x000000, 0x000000, 0x000000, - 0xbfbfbf, 0x0078f8, 0x0058f8, 0x6b47ff, - 0xdb00cd, 0xe7005b, 0xf83800, 0xe75f13, - 0xaf7f00, 0x00b800, 0x00ab00, 0x00ab47, - 0x008b8b, 0x000000, 0x000000, 0x000000, - 0xf8f8f8, 0x3fbfff, 0x6b88ff, 0x9878f8, - 0xf878f8, 0xf85898, 0xf87858, 0xffa347, - 0xf8b800, 0xb8f818, 0x5bdb57, 0x58f898, - 0x00ebdb, 0x787878, 0x000000, 0x000000, - 0xffffff, 0xa7e7ff, 0xb8b8f8, 0xd8b8f8, - 0xf8b8f8, 0xfba7c3, 0xf0d0b0, 0xffe3ab, - 0xfbdb7b, 0xd8f878, 0xb8f8b8, 0xb8f8d8, - 0x00ffff, 0xf8d8f8, 0x000000, 0x000000 } - }, - { "crashman", "CrashMan's palette", - { 0x585858, 0x001173, 0x000062, 0x472bbf, - 0x970087, 0x910009, 0x6f1100, 0x4c1008, - 0x371e00, 0x002f00, 0x005500, 0x004d15, - 0x002840, 0x000000, 0x000000, 0x000000, - 0xa0a0a0, 0x004499, 0x2c2cc8, 0x590daa, - 0xae006a, 0xb00040, 0xb83418, 0x983010, - 0x704000, 0x308000, 0x207808, 0x007b33, - 0x1c6888, 0x000000, 0x000000, 0x000000, - 0xf8f8f8, 0x267be1, 0x5870f0, 0x9878f8, - 0xff73c8, 0xf060a8, 0xd07b37, 0xe09040, - 0xf8b300, 0x8cbc00, 0x40a858, 0x58f898, - 0x00b7bf, 0x787878, 0x000000, 0x000000, - 0xffffff, 0xa7e7ff, 0xb8b8f8, 0xd8b8f8, - 0xe6a6ff, 0xf29dc4, 0xf0c0b0, 0xfce4b0, - 0xe0e01e, 0xd8f878, 0xc0e890, 0x95f7c8, - 0x98e0e8, 0xf8d8f8, 0x000000, 0x000000 } - }, - { "mess", "MESS palette", - { 0x747474, 0x24188c, 0x0000a8, 0x44009c, - 0x8c0074, 0xa80010, 0xa40000, 0x7c0800, - 0x402c00, 0x004400, 0x005000, 0x003c14, - 0x183c5c, 0x000000, 0x000000, 0x000000, - 0xbcbcbc, 0x0070ec, 0x2038ec, 0x8000f0, - 0xbc00bc, 0xe40058, 0xd82800, 0xc84c0c, - 0x887000, 0x009400, 0x00a800, 0x009038, - 0x008088, 0x000000, 0x000000, 0x000000, - 0xfcfcfc, 0x3cbcfc, 0x5c94fc, 0x4088fc, - 0xf478fc, 0xfc74b4, 0xfc7460, 0xfc9838, - 0xf0bc3c, 0x80d010, 0x4cdc48, 0x58f898, - 0x00e8d8, 0x000000, 0x000000, 0x000000, - 0xfcfcfc, 0xa8e4fc, 0xc4d4fc, 0xd4c8fc, - 0xfcc4fc, 0xfcc4d8, 0xfcbcb0, 0xfcd8a8, - 0xfce4a0, 0xe0fca0, 0xa8f0bc, 0xb0fccc, - 0x9cfcf0, 0x000000, 0x000000, 0x000000 } - }, - { "zaphod-cv", "Zaphod's VS Castlevania palette", - { 0x7f7f7f, 0xffa347, 0x0000bf, 0x472bbf, - 0x970087, 0xf85898, 0xab1300, 0xf8b8f8, - 0xbf0000, 0x007800, 0x006b00, 0x005b00, - 0xffffff, 0x9878f8, 0x000000, 0x000000, - 0xbfbfbf, 0x0078f8, 0xab1300, 0x6b47ff, - 0x00ae00, 0xe7005b, 0xf83800, 0x7777ff, - 0xaf7f00, 0x00b800, 0x00ab00, 0x00ab47, - 0x008b8b, 0x000000, 0x000000, 0x472bbf, - 0xf8f8f8, 0xffe3ab, 0xf87858, 0x9878f8, - 0x0078f8, 0xf85898, 0xbfbfbf, 0xffa347, - 0xc800c8, 0xb8f818, 0x7f7f7f, 0x007800, - 0x00ebdb, 0x000000, 0x000000, 0xffffff, - 0xffffff, 0xa7e7ff, 0x5bdb57, 0xe75f13, - 0x004358, 0x0000ff, 0xe7005b, 0x00b800, - 0xfbdb7b, 0xd8f878, 0x8b1700, 0xffe3ab, - 0x00ffff, 0xab0023, 0x000000, 0x000000 } - }, - { "zaphod-smb", "Zaphod's VS SMB palette", - { 0x626a00, 0x0000ff, 0x006a77, 0x472bbf, - 0x970087, 0xab0023, 0xab1300, 0xb74800, - 0xa2a2a2, 0x007800, 0x006b00, 0x005b00, - 0xffd599, 0xffff00, 0x009900, 0x000000, - 0xff66ff, 0x0078f8, 0x0058f8, 0x6b47ff, - 0x000000, 0xe7005b, 0xf83800, 0xe75f13, - 0xaf7f00, 0x00b800, 0x5173ff, 0x00ab47, - 0x008b8b, 0x000000, 0x91ff88, 0x000088, - 0xf8f8f8, 0x3fbfff, 0x6b0000, 0x4855f8, - 0xf878f8, 0xf85898, 0x595958, 0xff009d, - 0x002f2f, 0xb8f818, 0x5bdb57, 0x58f898, - 0x00ebdb, 0x787878, 0x000000, 0x000000, - 0xffffff, 0xa7e7ff, 0x590400, 0xbb0000, - 0xf8b8f8, 0xfba7c3, 0xffffff, 0x00e3e1, - 0xfbdb7b, 0xffae00, 0xb8f8b8, 0xb8f8d8, - 0x00ff00, 0xf8d8f8, 0xffaaaa, 0x004000 } - }, - { "vs-drmar", "VS Dr. Mario palette", - { 0x5f97ff, 0x000000, 0x000000, 0x47009f, - 0x00ab00, 0xffffff, 0xabe7ff, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, - 0xe7005b, 0x000000, 0x000000, 0x000000, - 0x5f97ff, 0x000000, 0x000000, 0x000000, - 0x000000, 0x8b7300, 0xcb4f0f, 0x000000, - 0xbcbcbc, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, - 0x00ebdb, 0x000000, 0x000000, 0x000000, - 0x000000, 0xff9b3b, 0x000000, 0x000000, - 0x83d313, 0x000000, 0x3fbfff, 0x000000, - 0x0073ef, 0x000000, 0x000000, 0x000000, - 0x00ebdb, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0xf3bf3f, 0x000000, - 0x005100, 0x000000, 0xc7d7ff, 0xffdbab, - 0x000000, 0x000000, 0x000000, 0x000000 } - }, - { "vs-cv", "VS Castlevania palette", - { 0xaf7f00, 0xffa347, 0x008b8b, 0x472bbf, - 0x970087, 0xf85898, 0xab1300, 0xf8b8f8, - 0xf83800, 0x007800, 0x006b00, 0x005b00, - 0xffffff, 0x9878f8, 0x00ab00, 0x000000, - 0xbfbfbf, 0x0078f8, 0xab1300, 0x6b47ff, - 0x000000, 0xe7005b, 0xf83800, 0x6b88ff, - 0xaf7f00, 0x00b800, 0x6b88ff, 0x00ab47, - 0x008b8b, 0x000000, 0x000000, 0x472bbf, - 0xf8f8f8, 0xffe3ab, 0xf87858, 0x9878f8, - 0x0078f8, 0xf85898, 0xbfbfbf, 0xffa347, - 0x004358, 0xb8f818, 0x7f7f7f, 0x007800, - 0x00ebdb, 0x000000, 0x000000, 0xffffff, - 0xffffff, 0xa7e7ff, 0x5bdb57, 0x6b88ff, - 0x004358, 0x0000ff, 0xe7005b, 0x00b800, - 0xfbdb7b, 0xffa347, 0x8b1700, 0xffe3ab, - 0xb8f818, 0xab0023, 0x000000, 0x007800 } - }, - { "vs-smb", "VS SMB/VS Ice Climber palette", - { 0xaf7f00, 0x0000ff, 0x008b8b, 0x472bbf, - 0x970087, 0xab0023, 0x0000ff, 0xe75f13, - 0xbfbfbf, 0x007800, 0x5bdb57, 0x005b00, - 0xf0d0b0, 0xffe3ab, 0x00ab00, 0x000000, - 0xbfbfbf, 0x0078f8, 0x0058f8, 0x6b47ff, - 0x000000, 0xe7005b, 0xf83800, 0xf87858, - 0xaf7f00, 0x00b800, 0x6b88ff, 0x00ab47, - 0x008b8b, 0x000000, 0x000000, 0x3fbfff, - 0xf8f8f8, 0x006b00, 0x8b1700, 0x9878f8, - 0x6b47ff, 0xf85898, 0x7f7f7f, 0xe7005b, - 0x004358, 0xb8f818, 0x0078f8, 0x58f898, - 0x00ebdb, 0xfbdb7b, 0x000000, 0x000000, - 0xffffff, 0xa7e7ff, 0xb8b8f8, 0xf83800, - 0xf8b8f8, 0xfba7c3, 0xffffff, 0x00ffff, - 0xfbdb7b, 0xffa347, 0xb8f8b8, 0xb8f8d8, - 0xb8f818, 0xf8d8f8, 0x000000, 0x007800 } - }, - { "RGB", "Nestopia's RGB palette", - { 0x6d6d6d, 0x002492, 0x0000db, 0x6d49db, - 0x92006d, 0xb6006d, 0xb62400, 0x924900, - 0x6d4900, 0x244900, 0x006d24, 0x009200, - 0x004949, 0x000000, 0x000000, 0x000000, - 0xb6b6b6, 0x006ddb, 0x0049ff, 0x9200ff, - 0xb600ff, 0xff0092, 0xff0000, 0xdb6d00, - 0x926d00, 0x249200, 0x009200, 0x00b66d, - 0x009292, 0x242424, 0x000000, 0x000000, - 0xffffff, 0x6db6ff, 0x9292ff, 0xdb6dff, - 0xff00ff, 0xff6dff, 0xff9200, 0xffb600, - 0xdbdb00, 0x6ddb00, 0x00ff00, 0x49ffdb, - 0x00ffff, 0x494949, 0x000000, 0x000000, - 0xffffff, 0xb6dbff, 0xdbb6ff, 0xffb6ff, - 0xff92ff, 0xffb6b6, 0xffdb92, 0xffff49, - 0xffff6d, 0xb6ff49, 0x92ff6d, 0x49ffdb, - 0x92dbff, 0x929292, 0x000000, 0x000000 } - }, - { "Uns-v6", "Unsaturated-V6 palette", - { 0x6B6B6B, 0x001E87, 0x1F0B96, 0x3B0C87, - 0x590D61, 0x5E0528, 0x551100, 0x461B00, - 0x303200, 0x0A4800, 0x004E00, 0x004619, - 0x003A58, 0x000000, 0x000000, 0x000000, - 0xB2B2B2, 0x1A53D1, 0x4835EE, 0x7123EC, - 0x9A1EB7, 0xA51E62, 0xA52D19, 0x874B00, - 0x676900, 0x298400, 0x038B00, 0x008240, - 0x007891, 0x000000, 0x000000, 0x000000, - 0xFFFFFF, 0x63ADFD, 0x908AFE, 0xB977FC, - 0xE771FE, 0xF76FC9, 0xF5836A, 0xDD9C29, - 0xBDB807, 0x84D107, 0x5BDC3B, 0x48D77D, - 0x48CCCE, 0x555555, 0x000000, 0x000000, - 0xFFFFFF, 0xC4E3FE, 0xD7D5FE, 0xE6CDFE, - 0xF9CAFE, 0xFEC9F0, 0xFED1C7, 0xF7DCAC, - 0xE8E89C, 0xD1F29D, 0xBFF4B1, 0xB7F5CD, - 0xB7F0EE, 0xBEBEBE, 0x000000, 0x000000 } - }, - { "YUV-V3", "YUV-V3 palette", - { 0x666666, 0x002a88, 0x1412a7, 0x3b00a4, - 0x5c007e, 0x6e0040, 0x6c0700, 0x561d00, - 0x333500, 0x0c4800, 0x005200, 0x004c18, - 0x003e5b, 0x000000, 0x000000, 0x000000, - 0xadadad, 0x155fd9, 0x4240ff, 0x7527fe, - 0xa01acc, 0xb71e7b, 0xb53120, 0x994e00, - 0x6b6d00, 0x388700, 0x0d9300, 0x008c47, - 0x007aa0, 0x000000, 0x000000, 0x000000, - 0xffffff, 0x64b0ff, 0x9290ff, 0xc676ff, - 0xf26aff, 0xff6ecc, 0xff8170, 0xea9e22, - 0xbcbe00, 0x88d800, 0x5ce430, 0x45e082, - 0x48cdde, 0x4f4f4f, 0x000000, 0x000000, - 0xffffff, 0xc0dfff, 0xd3d2ff, 0xe8c8ff, - 0xfac2ff, 0xffc4ea, 0xffccc5, 0xf7d8a5, - 0xe4e594, 0xcfef96, 0xbdf4ab, 0xb3f3cc, - 0xb5ebf2, 0xb8b8b8, 0x000000, 0x000000 } - } + } }; //CAK: We need to know the OUT1 pin of the expansion port for Famicom 3D System glasses diff --git a/source/gcvideo.h b/source/gcvideo.h index 43bb999..0b23999 100644 --- a/source/gcvideo.h +++ b/source/gcvideo.h @@ -13,7 +13,7 @@ #define _GCVIDEO_H_ // color palettes -#define MAXPAL 18 +#define MAXPAL 5 struct st_palettes { char name[32], desc[32]; diff --git a/source/gui/gui_savebrowser.cpp b/source/gui/gui_savebrowser.cpp index 4e46f28..70cfc62 100644 --- a/source/gui/gui_savebrowser.cpp +++ b/source/gui/gui_savebrowser.cpp @@ -24,6 +24,8 @@ GuiSaveBrowser::GuiSaveBrowser(int w, int h, SaveList * s, int a) if(action == 0) // load listOffset = 0; + else if(action == 2) // delete RAM/State + listOffset = 0; else listOffset = -2; // save - reserve -2 & -1 for new slots @@ -256,8 +258,9 @@ void GuiSaveBrowser::Update(GuiTrigger * t) { if(selectedItem == 0) { - if((listOffset - 2 >= 0 && action == 0) || - (listOffset >= 0 && action == 1)) + if((listOffset - 2 >= 0 && action == 0) || + (listOffset >= 0 && action == 1) || + (listOffset - 2 >= 0 && action == 2)) { // move list up by 1 listOffset -= 2; @@ -295,7 +298,8 @@ void GuiSaveBrowser::Update(GuiTrigger * t) if(selectedItem < 2) { if((listOffset - 2 >= 0 && action == 0) || - (listOffset >= 0 && action == 1)) + (listOffset >= 0 && action == 1) || + (listOffset - 2 >= 0 && action == 2)) { // move list up by 1 listOffset -= 2; diff --git a/source/images/button_gamesave.png b/source/images/button_gamesave.png index 1e44a737e6f7d09772e0aa73b0de81309ae7e884..4f421cfb02c574ededf8ab1810052e877dcd1085 100644 GIT binary patch delta 411 zcmZ3)(!(-ArJgOx+ueoXAHzk4E6kf@IvE%kI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sf z0~RS3as8d|H*zsBFwXRJaSW-r_4e{cFPT7zwukT6i1|%TVp4u0#FWXh`hecEzBNh{ zMYz3#D&4gslT>d=>}fe566`X;vuoKZ%AWu7wOao&&%VhrDwX01 zxBvPTO?|TF)veG;Q;sjNSO1wNFR^y=s_gyK_vJ0~oaR}U!?d_`eoEM{T|Z|&NuKoP zT;HbOU%gMYe}C4fyM5=rlU4gp{5t;g!&a@@yMH`Csd;`oH$ACsqU+!HFD@6{o3<~{ z>~Lu5+SY`WfBWv%SNRK^Vf@eU*t~$zk-3SDg|~@qvJRs(6BbG`D^C8)+k%{R`8rI> zpBCNR?Kvs_@YZ?yF1*TJmA3IV|91f`^qH(P`OORtx7T(jb0(!seR4(4AZvN(^|&ef v^4j_{Cp}ha_x$#jIeNWs(M*UBZ5WPE^*T~~;Kw3h7&Caf`njxgN@xNAop-kh delta 432 zcmeBSS;R6yrCzecHKHUqKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MNkD0|Vm`PZ!6K zid%24Z}gH06lr*99jFo=xn{uwWtI?uHB4SX%eHzQP|HtvI%$HFz}j!QI=p%>nYeGV zd}iYgj&KnWj+uVa^2iT{FzZjX1rN?mVXu4VQ+hd8@B6moZ}rJ$$zj|Eua6lXo>BLF zliZW;S9UL&XC(h_y!OiVin?UUy))^C#h8qOHN>S?|T4zWcD^&fNNQ z$1~6PvHex$(|>-={PdxlD|H=D-`Q6eylnBGPkPNfzrtn2=J)TLnpJwVY(cL1*ByHG z*UUdvOm#G`?0TO+yK&mDyaxx$p$PyU#K!gj diff --git a/source/images/button_gamesave_over.png b/source/images/button_gamesave_over.png index 92fc2a5e88b021494e8d02ec502397dba5c2fab6..ad87accafca7445e3f4b8950912a2fa2b12a3137 100644 GIT binary patch literal 11851 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

CSF<@I(;r%+3UM<#l{ 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 LNkvXXu0mjf%)699 diff --git a/source/images/unused/icon_game_controllers.png b/source/images/unused/icon_game_controllers.png deleted file mode 100644 index 80798106d5db5a2b9e2265d474f8c3e706dc35d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7443 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 diff --git a/source/images/unused/icon_settings_powerpad.png b/source/images/unused/icon_settings_powerpad.png deleted file mode 100644 index dfa99a30d3beb4a8def5942a635e0321f2388ff2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9087 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 diff --git a/source/menu.cpp b/source/menu.cpp index 31a7c2e..904d47f 100644 --- a/source/menu.cpp +++ b/source/menu.cpp @@ -790,13 +790,13 @@ static void WindowCredits(void * ptr) creditsBoxImg.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE); creditsWindowBox.Append(&creditsBoxImg); - int numEntries = 25; + int numEntries = 27; GuiText * txt[numEntries]; txt[i] = new GuiText("Credits", 30, (GXColor){0, 0, 0, 255}); txt[i]->SetAlignment(ALIGN_CENTRE, ALIGN_TOP); txt[i]->SetPosition(0,y); i++; y+=32; - txt[i] = new GuiText("Official Site: https://github.com/dborth/fceugc", 20, (GXColor){0, 0, 0, 255}); + txt[i] = new GuiText("Official Site: https://github.com/dborth/fceugx", 20, (GXColor){0, 0, 0, 255}); txt[i]->SetAlignment(ALIGN_CENTRE, ALIGN_TOP); txt[i]->SetPosition(0,y); i++; y+=40; txt[i]->SetPresets(20, (GXColor){0, 0, 0, 255}, 0, @@ -817,6 +817,10 @@ static void WindowCredits(void * ptr) txt[i] = new GuiText("Logo"); txt[i]->SetPosition(40,y); i++; txt[i] = new GuiText("mvit"); + txt[i]->SetPosition(335,y); i++; y+=24; + txt[i] = new GuiText("Additional improvements"); + txt[i]->SetPosition(40,y); i++; + txt[i] = new GuiText("Zopenko, Askot, others"); txt[i]->SetPosition(335,y); i++; y+=48; txt[i] = new GuiText("FCE Ultra GX GameCube"); @@ -1432,9 +1436,9 @@ static int MenuGame() w.Append(&resetBtn); w.Append(&gameSettingsBtn); - if(GCSettings.DisplayVM == 1) + if(GCSettings.DisplayVM == 1) //show memory usage { - w.Append(&memTxt); //show memory usage + w.Append(&memTxt); } #ifdef HW_RVL @@ -3212,8 +3216,7 @@ static int MenuSettingsVideo() break; case 3: // palette - GCSettings.currpal++; - if ( GCSettings.currpal > MAXPAL ) + if ( ++GCSettings.currpal > MAXPAL ) GCSettings.currpal = 0; break; @@ -3274,7 +3277,8 @@ static int MenuSettingsVideo() case 3: sprintf (options.value[2], "Both"); break; } - sprintf (options.value[3], "%s", (GCSettings.currpal > -1) ? palettes[GCSettings.currpal].desc : "Default"); + sprintf (options.value[3], "%s", + GCSettings.currpal ? palettes[GCSettings.currpal-1].desc : "Default Colors"); switch(GCSettings.timing) { @@ -3290,11 +3294,16 @@ static int MenuSettingsVideo() switch(GCSettings.videomode) { - case 0: sprintf (options.value[9], "Automatic (Recommended)"); break; - case 1: sprintf (options.value[9], "NTSC (480i)"); break; - case 2: sprintf (options.value[9], "Progressive (480p)"); break; - case 3: sprintf (options.value[9], "PAL (50Hz)"); break; - case 4: sprintf (options.value[9], "PAL (60Hz)"); break; + case 0: + sprintf (options.value[9], "Automatic (Recommended)"); break; + case 1: + sprintf (options.value[9], "NTSC (480i)"); break; + case 2: + sprintf (options.value[9], "Progressive (480p)"); break; + case 3: + sprintf (options.value[9], "PAL (50Hz)"); break; + case 4: + sprintf (options.value[9], "PAL (60Hz)"); break; } optionBrowser.TriggerUpdate(); } diff --git a/source/pad.cpp b/source/pad.cpp index db9d841..9b4c14f 100644 --- a/source/pad.cpp +++ b/source/pad.cpp @@ -464,59 +464,6 @@ static unsigned char DecodeJoy(unsigned short chan) } #endif - bool zapper_triggered = false; - // zapper enabled - if(GCSettings.Controller == CTRL_ZAPPER) - { - int z; // NES port # (0 or 1) - - if(GameInfo->type == GIT_VSUNI) - z = 0; - else - z = 1; - - myzappers[z][2] = 0; // reset trigger to not pressed - - // is trigger pressed? - if ( (jp & btnmap[CTRL_ZAPPER][CTRLR_GCPAD][0]) // gamecube controller - #ifdef HW_RVL - || ( (exp_type == WPAD_EXP_NONE) && (wp & btnmap[CTRL_ZAPPER][CTRLR_WIIMOTE][0]) ) // wiimote - #endif - ) - { - // report trigger press - myzappers[z][2] |= 2; - zapper_triggered = true; - } - - // VS zapper games - if ( (jp & btnmap[CTRL_ZAPPER][CTRLR_GCPAD][1]) // gamecube controller - #ifdef HW_RVL - || ( (exp_type == WPAD_EXP_NONE) && (wp & btnmap[CTRL_ZAPPER][CTRLR_WIIMOTE][1]) ) // wiimote - #endif - ) - { - FCEUI_VSUniCoin(); // insert coin for VS zapper games - zapper_triggered = true; - } - - // cursor position - int channel = 0; // by default, use wiimote 1 - #ifdef HW_RVL - if (userInput[1].wpad->ir.valid) - { - channel = 1; // if wiimote 2 is connected, use wiimote 2 as zapper - } - #endif - UpdateCursorPosition(channel); // update cursor for wiimote - myzappers[z][0] = pos_x; - myzappers[z][1] = pos_y; - - // Report changes to FCE Ultra - zapperdata[z]->Update(z,myzappers[z],0); - } - - // Report pressed buttons (gamepads) int i; for (i = 0; i < MAXJP; i++) @@ -531,8 +478,7 @@ static unsigned char DecodeJoy(unsigned short chan) ) { // if zapper is on, ignore all buttons except START and SELECT - //if(GCSettings.Controller != CTRL_ZAPPER || nespadmap[i] == JOY_START || nespadmap[i] == JOY_SELECT) - if (!zapper_triggered) + if(GCSettings.Controller != CTRL_ZAPPER || nespadmap[i] == JOY_START || nespadmap[i] == JOY_SELECT) { if(rapidAlternator && nespadmap[i] == RAPID_A) { @@ -566,7 +512,47 @@ static unsigned char DecodeJoy(unsigned short chan) } } + // zapper enabled + if(GCSettings.Controller == CTRL_ZAPPER) + { + int z; // NES port # (0 or 1) + if(GameInfo->type == GIT_VSUNI) + z = 0; + else + z = 1; + + myzappers[z][2] = 0; // reset trigger to not pressed + + // is trigger pressed? + if ( (jp & btnmap[CTRL_ZAPPER][CTRLR_GCPAD][0]) // gamecube controller + #ifdef HW_RVL + || ( (exp_type == WPAD_EXP_NONE) && (wp & btnmap[CTRL_ZAPPER][CTRLR_WIIMOTE][0]) ) // wiimote + #endif + ) + { + // report trigger press + myzappers[z][2] |= 2; + } + + // VS zapper games + if ( (jp & btnmap[CTRL_ZAPPER][CTRLR_GCPAD][1]) // gamecube controller + #ifdef HW_RVL + || ( (exp_type == WPAD_EXP_NONE) && (wp & btnmap[CTRL_ZAPPER][CTRLR_WIIMOTE][1]) ) // wiimote + #endif + ) + { + FCEUI_VSUniCoin(); // insert coin for VS zapper games + } + + // cursor position + UpdateCursorPosition(0); // update cursor for wiimote 1 + myzappers[z][0] = pos_x; + myzappers[z][1] = pos_y; + + // Report changes to FCE Ultra + zapperdata[z]->Update(z,myzappers[z],0); + } return J; } @@ -603,13 +589,12 @@ void GetJoy() UpdatePads(); -// Turbo mode -// RIGHT on c-stick and on classic ctrlr right joystick -// if(userInput[0].pad.substickX > 70 || userInput[0].WPAD_StickX(1) > 70 || userInput[0].wupcdata.substickX > 560) -// turbomode = 1; -// else -// turbomode = 0; - turbomode = 0; + // Turbo mode + // RIGHT on c-stick and on classic ctrlr right joystick + if(userInput[0].pad.substickX > 70 || userInput[0].WPAD_StickX(1) > 70 || userInput[0].wupcdata.substickX > 560) + turbomode = 1; + else + turbomode = 0; // request to go back to menu if(MenuRequested()) diff --git a/source/preferences.cpp b/source/preferences.cpp index 02541f4..ef1874a 100644 --- a/source/preferences.cpp +++ b/source/preferences.cpp @@ -401,7 +401,7 @@ DefaultSettings () memset (&GCSettings, 0, sizeof (GCSettings)); ResetControls(); // controller button mappings - GCSettings.currpal = 0; // color palette + GCSettings.currpal = 1; // color palette GCSettings.timing = 2; // 0 - NTSC, 1 - PAL, 2 - Automatic GCSettings.videomode = 0; // automatic video mode detection GCSettings.Controller = CTRL_PAD2; // NES pad, Four Score, Zapper @@ -419,11 +419,11 @@ DefaultSettings () GCSettings.yshift = 0; // vertical video shift GCSettings.WiimoteOrientation = 0; - GCSettings.ExitAction = 0; + GCSettings.ExitAction = 0; // Auto GCSettings.MusicVolume = 40; GCSettings.SFXVolume = 40; - GCSettings.Rumble = 1; - GCSettings.DisplayVM = 1; + GCSettings.Rumble = 1; // Enabled + GCSettings.DisplayVM = 0; // Disabled #ifdef HW_RVL GCSettings.language = CONF_GetLanguage(); @@ -598,4 +598,4 @@ bool LoadPrefs() ResetText(); return prefFound; -} +} \ No newline at end of file