From 4d69c9c17588142a8aecfdb71976a2d5ddd77289 Mon Sep 17 00:00:00 2001 From: sulokutdcmago Date: Sun, 7 Oct 2012 22:19:13 +0000 Subject: [PATCH] Ready for 1.4: -Added some characters to the font (for comment displaying) -Changed background -Tweaked a little to have some sort of initial screen rather than a black background -Minor graphical tweaks --- background/wiibk.psd | Bin 1058760 -> 1100924 bytes hbc/meta.xml | 4 +-- readme.txt | 24 ++++++++++++++-- source/bitmap.c | 53 +++++++++++++++++++++++++++-------- source/fontface.s | 2 +- source/freetype.c | 24 ++++++++-------- source/gcbk.bmp | Bin 864056 -> 864056 bytes source/main.c | 65 +++++++++++++++++++++++++++---------------- source/mcard.c | 7 +++-- source/sdsupp.c | 2 +- source/ttf/font.ttf | Bin 42604 -> 50824 bytes source/wiibk.bmp | Bin 864056 -> 864056 bytes 12 files changed, 125 insertions(+), 56 deletions(-) diff --git a/background/wiibk.psd b/background/wiibk.psd index 724a91d31c7d51458671e6816512482daf0ea03b..d237bd4a8ab260e87e4ce01d8e367788a3fe206b 100644 GIT binary patch delta 48783 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 YihFg|bhr0Uz5CwhFT9pyfBoYB2R1yC&j0`b delta 6316 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 GCMM Suloku - 1.3 - 20120914000000 + 1.4 + 20121008000000 Memory Card Manager A memory card manager for Wii/GC. diff --git a/readme.txt b/readme.txt index 5a36a25..dc54dfb 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ ח–­—–­—–­—–­ –­—–­—–­—–­—–­—–­—–­—–­—–­—–­— ­—–­—–­—–­—–­—–­—–­—–­—-­—–­-–•Ĵ -|0O×ĝo· GCMM 1.3 ·oĝ×O0| +|0O×ĝo· GCMM 1.4 by suloku ·oĝ×O0| | http://code.google.com/p/gcmm | | (Under GPL License) | `¨•¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨' @@ -22,7 +22,7 @@ I (suloku) have updated the code to newest libraries to port it to the Wii syste * Wiimote and GameCube controller support * Power button support * Front SD and FAT32 USB device (wii) and SDGecko (gamecube) support -* Shows savegame information, alongside Icon and Banner! +* Shows savegame information, alongside animated Icon and Banner! * A (somewhat) nice UI * Open Source! @@ -30,6 +30,23 @@ I (suloku) have updated the code to newest libraries to port it to the Wii syste |0O×ĝo· UPDATE HISTORY ·oĝ×O0| `¨•¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨' +[What's New 1.4 - october 08, 2012 - By suloku] +* Animated icon alongside several (minor) graphical improvements +* Ability to select SD Gecko slot in GameCube mode (just like Wii mode SD/USB prompt) +* Moved "Backup All" to Backup Mode (press R/1 when in Backup Mode) +* Added an analog "Restore All" in Restore Mode (overwriting is supported) +* Shows filename when prompted to overwrite (also in "Restore All") +* Savegame permisions are shown in a more explicit and user friendly way +* Shows memory card freeblocks +* Page number display in file selector +* Left and right now scroll 5 file entries at once +* Scrolling of file entries can be done holding the button (up/down/left/right) +* Added security checks to Raw Restore Mode +* Added some special characters to the font (needed for savegame comments) +* Minor code tweaks + +Lots of thanks to bm123456 and themanuel for beta testing and support! + [What's New 1.3 - september 14, 2012 - By suloku] * Shows card/image serial number in Raw Restore Mode @@ -218,7 +235,7 @@ This document doesn't cover how to do any of that. A good source for information They are shown at the screen. -Raw mode controls: +Raw mode controls: hold L (gamecube pad) or B (wiimote) then press the corresponding button * Raw Backup Mode: GC_pad L+Y , Wiimote B+Minus * Raw Restore Mode: GC_pad L+X , Wiimote B+Plus * Format Card Mode: GC_pad L+Z , Wiimote B+2 @@ -249,6 +266,7 @@ Currently gcmm uses: * dronesplitter for banner and icon implementation * PlabloACZ and Picachu025 for updating the source. * Nano(Excelsiior), for inspiring me to finally working again on GCMM +* bm123456 and themanuel for beta testing and support ח–­—–­—–­—–­ –­—–­—–­—–­—–­—–­—–­—–­—–­—–­— ­—–­—–­—–­—–­—–­—–­—–­—-­—–­-–•Ĵ |0O×ĝo· ·oĝ×O0| diff --git a/source/bitmap.c b/source/bitmap.c index 095d2b3..171546e 100644 --- a/source/bitmap.c +++ b/source/bitmap.c @@ -14,7 +14,8 @@ #include #include #include -#include "bitmap.h" +#include "bitmap.h" +#include "freetype.h" #include "gci.h" extern GCI gci; @@ -99,6 +100,7 @@ u32 ShowBMP(u8 * bmpfile) { u8 *bgr; u32 fboffset; u32 rows, cols; + static u8 firstcall = 1; bitmap = (WINBITMAP *) bmpfile; @@ -146,16 +148,45 @@ u32 ShowBMP(u8 * bmpfile) { /*** Move to NEXT framebuffer ***/ whichfb ^= 1; - for (rows = 0; rows < height; rows++) { - for (cols = 0; cols < (fbwidth >> 1); cols++) { - xfb[whichfb][fboffset + cols] =CvtRGB (bgr[2], bgr[1], bgr[0], - bgr[5], bgr[4], bgr[3]); - bgr += 6; - } + if (firstcall) + { + DrawBoxFilled(0,0,vmode->fbWidth-1,vmode->xfbHeight-1,0xFF80FF80); + for (rows = 0; rows < height; rows++) { + for (cols = 0; cols < (fbwidth >> 1); cols++) { + if (rows < 64 || rows > 398 || cols < (31>>1) || cols > (341>>1)) + { + //xfb[whichfb][fboffset + cols] =CvtRGB (255,255,255,255,255,255); + } + else + { + xfb[whichfb][fboffset-(320*20) + (66)+cols] =CvtRGB (bgr[2], bgr[1], bgr[0], + bgr[5], bgr[4], bgr[3]); + } - fboffset -= 320; /*** Go up one row ***/ + bgr += 6; + } - } /*** Outer row loop ***/ + fboffset -= 320; /*** Go up one row ***/ + + } /*** Outer row loop ***/ + } + else + { + for (rows = 0; rows < height; rows++) { + for (cols = 0; cols < (fbwidth >> 1); cols++) { + xfb[whichfb][fboffset + cols] =CvtRGB (bgr[2], bgr[1], bgr[0], + bgr[5], bgr[4], bgr[3]); + bgr += 6; + } + + fboffset -= 320; /*** Go up one row ***/ + + } /*** Outer row loop ***/ + } + if (firstcall) + { + firstcall = 0; + } /*** Setup the video to display this picture ***/ /*VIDEO_SetNextFramebuffer (xfb[whichfb]); @@ -188,7 +219,7 @@ void ShowBanner(u8 *banner) { fboffset = ((640 - fbwidth) >> 1) >> 1; fboffset += (((vmode->xfbHeight - height) >> 1) * 320); fboffset -= (height * 320 * 2); - fboffset -= (height * 90); + fboffset += (height * 10); fboffset += width/2+3; //at this point the banner is perfectly aligned with right window fboffset += ((height *320)>>1)+3; @@ -231,7 +262,7 @@ void ShowIcon(u8 *icon) { fbwidth = CARD_ICON_W; fboffset += (((vmode->xfbHeight - height) >> 1) * 320); fboffset -= (height * 320 * 2); - fboffset -= (height * 90); + fboffset += (height * 10); fboffset += width/2+3; fboffset += ((height *320)>>1)+3; diff --git a/source/fontface.s b/source/fontface.s index 2fc931b..7d0ddb1 100644 --- a/source/fontface.s +++ b/source/fontface.s @@ -8,5 +8,5 @@ fontface: .globl fontsize -fontsize: .long 42604 +fontsize: .long 50824 diff --git a/source/freetype.c b/source/freetype.c index e1d6aa8..6fd2862 100644 --- a/source/freetype.c +++ b/source/freetype.c @@ -810,7 +810,7 @@ void showCardInfo(int sel){ void showSaveInfo(int sel) { - int y = 160, x = 378, j; + int y = 165, x = 378, j; char gamecode[5], company[3], txt[1024]; //clear right pane, but just the save info @@ -846,17 +846,17 @@ void showSaveInfo(int sel) //Draw nice gradient background for banner and icon if(SDCARD_GetBannerFmt(gci.banner_fmt) == 1 || SDCARD_GetBannerFmt(gci.banner_fmt) == 2){ //Box for icon+banner - DrawHLine (410, 410+160, 162, getcolour (255,255,255)); - DrawBox (410, 163, 410+160, 163+39, getcolour (255,255,255)); - DrawHLine (410, 410+160, 164+39, getcolour (255,255,255)); - DrawBoxFilledGradient(412, 164, (410+158), (164+37), BLUECOL, PURPLECOL, LOCATION); + DrawHLine (410, 410+160, 172, getcolour (255,255,255)); + DrawBox (410, 173, 410+160, 173+39, getcolour (255,255,255)); + DrawHLine (410, 410+160, 174+39, getcolour (255,255,255)); + DrawBoxFilledGradient(412, 174, (410+158), (174+37), BLUECOL, PURPLECOL, LOCATION); }else { //Box for icon - DrawHLine (468, 468+42, 162, getcolour (255,255,255)); - DrawBox (468, 163, 468+42, 163+39, getcolour (255,255,255)); - DrawHLine (468, 468+42, 164+39, getcolour (255,255,255)); - DrawBoxFilledGradient(468+2, 164, (468+40), (164+37), BLUECOL, PURPLECOL, LOCATION); + DrawHLine (468, 468+42, 172, getcolour (255,255,255)); + DrawBox (468, 173, 468+42, 173+39, getcolour (255,255,255)); + DrawHLine (468, 468+42, 174+39, getcolour (255,255,255)); + DrawBoxFilledGradient(468+2, 174, (468+40), (174+37), BLUECOL, PURPLECOL, LOCATION); } //Show banner if there is one @@ -870,7 +870,7 @@ void showSaveInfo(int sel) /*** Display relevant info for this save ***/ sprintf(txt, "#%d %s/%s", sel, gamecode, company); DrawText(x, y-4, txt); - y += 65; + y += 70; //DrawText(x, y, "File Description:"); //y += 20; @@ -975,7 +975,7 @@ void showSaveInfo(int sel) DrawText(x, y, txt); #ifdef DEBUG_VALUES - /*** Uncomment to print some debug info ***/ + /*** Print some debug info ***/ y+=20; sprintf(comment2, "%x %x %x %d", gci.icon_addr, gci.icon_fmt, gci.banner_fmt, numicons); DrawText(x, y, comment2); @@ -1410,7 +1410,7 @@ int ShowSelector (int saveinfo) void writeStatusBar( char *line1, char *line2) { int bgcolor = getcolour(0xff,0xff,0xff); - DrawBoxFilled(10, 404, 640, 455, bgcolor); + DrawBoxFilled(0, 404, vmode->fbWidth-1, vmode->xfbHeight-1, bgcolor); //setfontcolour(84,174,211); setfontcolour(28,28,28); DrawText(40, 425, line1); diff --git a/source/gcbk.bmp b/source/gcbk.bmp index 930b95e79ca69c264e9566eb06ff0ac0ef493279..1fb0b3e9b826d01de30dc9a530febab580a3ec17 100644 GIT binary patch delta 61278 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 delta 2212 zcmZvdPi$0G6vlJk%>DB^W5qIHL(`@NHB}xEkxfgf#VTomSV~eP7)*^uaRGH>!=gcw zRtZtrAiji&D>Y;Eg@uJ2su`TnpiEOJbYY{539vxf;GbZL*jny=ulJr);^HNfFZce= zch7h3owJnQ&n5WSt=%3x+W|H;EWm2fgA1uSXct%P&~jy=xXEF`*>dXa^zn|&XK*6{MeZit?7 zY-8yTG`8}_`^;f;nfUUw(%OPL_LlIn&Ppr)Z}HMWe-_mWH|LI zZ?Kz!6EWs3vZkM4`Z;G|@pUf)tq1uMyD6r_sdo_**@Zr|99hK5Fo0uxncb@EVH*=S zpArnQ{RP4F7?a;ds01U3aSf7i?mJ#>D`}IDFxWIkT2}CK3`*lXYu5x<3Fd-VuUj_G z({Sl$K5w%LE_jVvz9@a@z0U7GAUAmerheo1oV>+E(piHdAwh3)g))sKY< zAr=eUtDO+#1okT@8d%t0Qt28g@lG>1ru zIiZbhd7l_7c(p9NQsr?de?%6}%10S=oDjZkM3g7sqbB|K&xK1rnie$-&V4O#W=={o zGb6%XvuG3v`nMsRCxlU(#e{H`5T*%XuQCp=k@b1)Azar~#bNAMl!IAmO8t(d zf`VsC&5$*72o932afvgK%-TcJ_ClwlM{_DCG4VP{v(sbV*XfIJ?Ji%zFRSEVZm1K~ zYDAet;wPyvu^!cCf-`Qz(x`qA%bSU*S-FnE%U$wM$1a##THGPAh|2G74Im2FQnXreEENSLEy8H3Fq%Zyud zk`UtIY5Pp#@Wc;J@hd{e#{=^XdPs8BeQ`d65;Aqhwd|97DLvK~Nz;auxrSGWlB7LN z6djTMcM3>4H)%RgGU&Z6@!cR9{Y_A_1eK(dR{xt$R?&3KbS@=Il2IMmx>7lhQIgJ6 z%Jo6_e-(qtr`4Pt4Xv1rniXdBEFmQ6bSj#Tc?Y|dy93DuZ+l5$MtcbXuU^L+XnY}} z{b)@`WFDY*lzYN#Py)sWm1oBz7(#e_A;bB9be5MtQ2*I81r>eDBi+Z9{(Sva=`RD_ J$FsNc_W?7l%FO@( diff --git a/source/main.c b/source/main.c index ef71511..25f33b1 100644 --- a/source/main.c +++ b/source/main.c @@ -299,17 +299,19 @@ void SD_BackupMode () char buffer[256], text[64]; clearRightPane(); - DrawText(380,130,"B a c k u p M o d e"); - writeStatusBar("Pick a file using UP or DOWN ", "Press A to backup to SD Card ") ; - setfontsize (14); -#ifdef HW_RVL - DrawText(40, 60, "Press R/1 to backup ALL savegames"); -#else - DrawText(40, 60, "Press R to backup ALL savegames"); -#endif - + DrawText(386,130,"B a c k u p M o d e"); + DrawText(386,134,"_____________________"); + writeStatusBar("Reading memory card... ", ""); /*** Get the directory listing from the memory card ***/ memitems = CardGetDirectory (MEM_CARD); + + writeStatusBar("Pick a file using UP or DOWN ", "Press A to backup to SD Card ") ; + setfontsize (14); +#ifdef HW_RVL + DrawText(40, 60, "Press R/1 to backup ALL savegames"); +#else + DrawText(40, 60, "Press R to backup ALL savegames"); +#endif /*** If it's a blank card, get out of here ***/ if (!memitems) @@ -409,7 +411,8 @@ void SD_BackupModeAllFiles () char buffer[128]; clearRightPane(); - DrawText(380,130," B a c k u p A l l "); + DrawText(386,130," B a c k u p A l l "); + DrawText(386,134,"_____________________"); writeStatusBar("Backing up all files.", "This may take a while."); /*** Get the directory listing from the memory card ***/ memitems = CardGetDirectory (MEM_CARD); @@ -458,16 +461,19 @@ void SD_RestoreMode () clearRightPane(); DrawText(380,130,"R e s t o r e M o d e"); + DrawText(380,134,"______________________"); writeStatusBar("Pick a file using UP or DOWN", "Press A to restore to Memory Card ") ; - setfontsize (14); -#ifdef HW_RVL - DrawText(40, 60, "Press R/1 to restore ALL savegames"); -#else - DrawText(40, 60, "Press R to restore ALL savegames"); -#endif - + writeStatusBar("Reading files... ", ""); files = SDGetFileList (1); + + setfontsize (14); +#ifdef HW_RVL + DrawText(40, 60, "Press R/1 to restore ALL savegames"); +#else + DrawText(40, 60, "Press R to restore ALL savegames"); +#endif + if (!files) { WaitPrompt ("No saved games in SD Card to restore !"); @@ -557,7 +563,11 @@ void SD_RawBackupMode () s32 writen = 0; char msg[64]; clearRightPane(); - DrawText(40, 230, "R A W B a c k u p M o d e"); + + DrawText(394,224,"___________________"); + DrawText(394,248,"R A W B a c k u p"); + DrawText(454,268,"M o d e"); + DrawText(394,272,"___________________"); writeStatusBar("Reading memory card... ", ""); if (BackupRawImage(MEM_CARD, &writen) == 1) @@ -587,9 +597,14 @@ void SD_RawRestoreMode () clearRightPane(); DrawText(380,130,"R A W R e s t o r e"); DrawText(450,150,"M o d e"); + DrawText(380,154,"_____________________"); + + writeStatusBar("Reading files... ", ""); + + files = SDGetFileList (0); + writeStatusBar("Pick a file using UP or DOWN", "Press A to restore to Memory Card "); - files = SDGetFileList (0); if (!files) { WaitPrompt ("No raw backups in SD Card to restore !"); @@ -640,10 +655,11 @@ int main () Initialise (); /*** Start video ***/ FT_Init (); /*** Start FreeType ***/ - + ClearScreen(); + ShowScreen(); #ifdef HW_RVL initialise_power(); - have_sd = initFAT(WaitPromptChoice ("Use internal SD or FAT 32 USB device?", "USB", "SD")); + have_sd = initFAT(WaitPromptChoice ("Use internal SD or FAT32 USB device?", "USB", "SD")); #else //Returns 1 (memory card in slot B, sd gecko in slot A) if A button was pressed and 0 if B button was pressed MEM_CARD = WaitPromptChoice ("Please select the slot where SD Gecko is inserted", "SLOT B", "SLOT A"); @@ -711,7 +727,6 @@ int main () case 700 : //Raw backup mode if (have_sd) { - DrawText(40, 230, "R A W B a c k u p M o d e"); SD_RawBackupMode(); }else { @@ -741,9 +756,11 @@ int main () VIDEO_WaitVSync (); if (CARD_Probe(MEM_CARD) > 0) { - DrawText(70, 230, "F o r m a t C a r d"); - DrawText(150, 250, "M o d e"); clearRightPane(); + DrawText(390,224,"____________________"); + DrawText(390,248,"F o r m a t C a r d"); + DrawText(460,268,"M o d e"); + DrawText(390,272,"____________________"); MC_FormatMode(MEM_CARD); }else if (MEM_CARD) diff --git a/source/mcard.c b/source/mcard.c index 6a0c698..5523010 100644 --- a/source/mcard.c +++ b/source/mcard.c @@ -796,12 +796,15 @@ void MC_DeleteMode(int slot) int selected = 0; int erase; clearRightPane(); - DrawText(390,130,"D e l e t e M o d e"); - writeStatusBar("Choose a file with UP button or DOWN button ", "Press A button to delete ") ; + DrawText(386,130,"D e l e t e M o d e"); + DrawText(386,134,"_____________________"); char msg[1024]; + writeStatusBar("Reading memory card... ", ""); /*** Get the directory listing from the memory card ***/ memitems = CardGetDirectory (slot); + + writeStatusBar("Choose a file with UP button or DOWN button ", "Press A button to delete ") ; /*** If it's a blank card, get out of here ***/ if (!memitems) diff --git a/source/sdsupp.c b/source/sdsupp.c index 007b33f..8803ce1 100644 --- a/source/sdsupp.c +++ b/source/sdsupp.c @@ -380,7 +380,7 @@ int SDLoadMCImageHeader(char *sdfilename) u16 l2 =(u16)(FileBuffer[0x38] << 8) | FileBuffer[0x39]; if (length != l2) { - sprintf(msg, "l1 = %x l2 = %x", length,l2); + sprintf(msg, "File length does not equal file size. Wrong extension? (l1 = %x l2 = %x)", length,l2); WaitPrompt (msg);//"File Length does not equal filesize"); return 0; } diff --git a/source/ttf/font.ttf b/source/ttf/font.ttf index 50de218ff26ad5ff35b638561c129eff6f1083fd..7d68f6963e2e7a11e3450fc4e300441ff21238f0 100644 GIT binary patch delta 22525 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 AzW@LL delta 17346 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 diff --git a/source/wiibk.bmp b/source/wiibk.bmp index 1cf2fc7a739b9449ba4b188c81a288441ab1e75c..f8dd14947d1cb10cef6e12b8bb361b6992e7439f 100644 GIT binary patch delta 61397 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 delta 2219 zcmZ8iU1%It6sEIteZcGy!y3K^7sTJ2& zaJ6dHhpJpjBE%nPX+|)%c#@Qj8`B0O!A4Y~55_=aYfICFU`n8=dS;V*?p+@SmhYbL zyXTzmo7vupvfhcZS2HUzP9}ER9lZhNzL$)tu)=ABPyThgV+J^=u72%E@CEByM!~;@ zmAJa1*`0;X+t_-Gl7TPpWSti9CY0U7J|f_9>~AQ!pZQuZe9+RXaN1SwSHacnwjvkC zHnOzl`QOMM)m$Irs&b7JhhP&+(9tP&8YZ7&DUz%zkUXJg9oK{3t688aIO_?O+=UnY z(CTqW))HCyA4Y0>2!JrK)B@HG<1ezdLZNaQhvZ?RD5P|&b$@!RVCoIFhiU`X1Bv&j z3&5+)D(#L0)PBtN5-&Ph8sT#ytFQ|DOontR_@|5-Z42toutrM=;KH{C@Q*wFs!O>H z_I}T5m&?Ha(Goi645{)`kHP-m*iJ3vpL2#)*99~qcb2)ZILWpa98Esrc<}OHtcuVl zyir(~VcYZ_;dSed2{88Ud(g9VO zK*NG}sV(I%imVE^dmhYvK(!EdSQowJ^uxu^c!QP?$9XU8?&c=G?E=&D71wcsu+Px( zH_`_!dLPe1;|Q-Ky*z!)qK{kjgv`R_KdkBw-m9+N>Pkpm;z_N6WAv-?D@?%jHQJZL zk+W)`nsW%Q)5zf8H1fDnw229m2uzsz;-^>#M9JPq!yV33-=OPVFS7R7YkZSg^n`#8!XAF@!3?&gOh6_DQq# zoXEk|{gUEfnUkh6Kyzrg=si@qBOL!tj!N@yG9gBe%pa5Zc=#0Ivl8Zy#W!{S2ib22 Ae*gdg