Changes

1,860 bytes added ,  14:34, 20 November 2021
no edit summary
Line 5: Line 5:  
| type        = system tool
 
| type        = system tool
 
| author      = suloku
 
| author      = suloku
| version    = 1.5
+
| version    = 1.5.2
 
| download    = https://github.com/suloku/gcmm/releases
 
| download    = https://github.com/suloku/gcmm/releases
 
| source      = https://github.com/suloku/gcmm
 
| source      = https://github.com/suloku/gcmm
Line 30: Line 30:  
* Wiimote and GameCube controller support
 
* Wiimote and GameCube controller support
 
* Power button support
 
* Power button support
* Front SD and FAT32 USB device (wii) and SDGecko/SD2SP2 (gamecube) support
+
* Front SD, FAT32 USB device (wii), SDGecko (wii/gamecube), SD2SP2 and GCLoader (gamecube) support
 
* Shows savegame information, alongside animated Icon and Banner!
 
* Shows savegame information, alongside animated Icon and Banner!
 
* A (somewhat) nice UI
 
* A (somewhat) nice UI
Line 36: Line 36:     
== Changelog ==
 
== Changelog ==
1.5 - april 21, 2021
+
1.5.1 - November 19, 2021
 +
* Fixed exit/reboot secuence (finally)
 +
* Several card fixes thanks to Extrems and libogc2!
 +
* SD2SP2 fix
 +
** Changed to libogc2 to fix bug in sd2sp2 mounting when it has already been mounted once (even on another dol file) without rebooting. (will still compile with libogc)
 +
** Using custom card.c and card.h (again) since libogc2 is missing some functions
 +
* Added device selector. Press 1/R button to access it.
 +
* Devices can be swapped without rebooting GCMM now. When running device selector follow on screen instructions to know when you can safely insert/remove a device.
 +
* SDGecko support for Wii mode.
 +
* GCLoader support for Gamecube mode.
 +
* Show current device (wiisd/wiiusb/sdgecko/sd2sp2/gcloader/no device) in main screen.
 +
* Support for command line paramenters in both wii and gamecube (use Swiis cli files for gamecube). Read more in cli_readme.txt. Pre-made cli files are included.
 +
* WII/GC: added Dark mode theme (as a separate dol file).
 +
* Background is changed depending on fat device being used (gamecube)
 +
 
 +
1.5.1 - October 10, 2021
 +
* Merged DacoTaco's changes to make GCMM compatible with libogc 2.3.1, not needing to have a local copy of card.c/h
 +
* RAW read/restore functions use a lot less memory (lead to problems in recent builds with 2048 block memory card)
 +
* Reworked raw restore/read functions (they hopefully work correctly now for all memory cards)
 +
* Fixed bug in libogc's card.c preventing to correctly write from block 1024 onwards in 2048 block cards (right now needs modified libogc to compile and work, since we aren't using our own card.c/h anymore).
 +
 
 +
1.5 - April 21, 2021
 
* Merged carstene1ns changes to compile with latest libraries
 
* Merged carstene1ns changes to compile with latest libraries
 
* Adopted libogc's latest changes to card.c, no longer needs system.h. Thanks tueidj for your patches all these years!
 
* Adopted libogc's latest changes to card.c, no longer needs system.h. Thanks tueidj for your patches all these years!
 
* Fixed bug in card.c which prevented some saves sharing filename characters not being restored (paper mario)
 
* Fixed bug in card.c which prevented some saves sharing filename characters not being restored (paper mario)
 
* Improved SD2SP2 boot sequence:
 
* Improved SD2SP2 boot sequence:
- By default SD2SP2 will be used. If there is none GCMM will ask for SD Gecko location (slot A or B)
+
** By default SD2SP2 will be used. If there is none GCMM will ask for SD Gecko location (slot A or B)
- Holding A or Z while booting will prompt if you want to use SD2SP2 or SD Gecko. If SD Gecko is selected then it's slot can be selected.
+
** Holding A or Z while booting will prompt if you want to use SD2SP2 or SD Gecko. If SD Gecko is selected then it's slot can be selected.
 
* Fixed GC rebooting:
 
* Fixed GC rebooting:
Gamecube mode exit secuence:
+
**Gamecube mode exit secuence:
1.- If there is a reboot stub (PSOLOAD/SDLOADER), GCMM will return to it
+
***1.- If there is a reboot stub (PSOLOAD/SDLOADER), GCMM will return to it
2.- If not, GCMM will try to load autoexec.dol in fat device used in GCMM
+
***2.- If not, GCMM will try to load autoexec.dol in fat device used in GCMM
3.- If not, restart.
+
***3.- If not, restart.
 
+
***Note: When using SDLOADER it is recommended to run Swiss, as returning to SDLOADER will break it (selection bar will be red) and dol loading will not work. It is adviced to have an autoexec.dol available (swiss recommended). This happens in Wii's gamecube mode, I don't know if gamecube has the same behavior.
Note: When using SDLOADER it is recommended to run Swiss, as returning to SDLOADER will break it (selection bar will be red) and dol loading will not work. It is adviced to have an autoexec.dol available (swiss recommended). This happens in Wii's gamecube mode, I don't know if gamecube has the same behavior.
     −
1.4g - January 03, 2020
+
1.4g - January 03, 2020
 
* Added SD2SP2 support ("released" as beta, no official release made)
 
* Added SD2SP2 support ("released" as beta, no official release made)
   −
1.4f - April 5, 2017
+
1.4f - April 5, 2017
 
* dragonbane0 made a mod of version 1.4c with folder selection and alphabetical sorting. Zephiles pointed this out and the changes have been merged with some little extra tweaks. Thanks you both!
 
* dragonbane0 made a mod of version 1.4c with folder selection and alphabetical sorting. Zephiles pointed this out and the changes have been merged with some little extra tweaks. Thanks you both!
   −
1.4e - February 27, 2016
+
1.4e - February 27, 2016
 
* Fixed bug in card.c that prevented correct backup/write of saves with same filename but different case. Bug affected Timesplitters 2, probably Timesplitters 3 too. Thanks to DakuTree for reporting and Antidote for fixing.
 
* Fixed bug in card.c that prevented correct backup/write of saves with same filename but different case. Bug affected Timesplitters 2, probably Timesplitters 3 too. Thanks to DakuTree for reporting and Antidote for fixing.
   −
1.4d - August 8, 2015
+
1.4d - August 8, 2015
 
* Fixed bug in card.c that prevented writing to the last block of the memory card, preventing restoring a savegame that would fill the memory card (thanks to undergroundmonorail)
 
* Fixed bug in card.c that prevented writing to the last block of the memory card, preventing restoring a savegame that would fill the memory card (thanks to undergroundmonorail)
 
* Fixed bug in card.c that prevented correct block freeing when deleting a file and only was fixed by using the memory card on official software (the wii/gamecube save manager or probably also games)
 
* Fixed bug in card.c that prevented correct block freeing when deleting a file and only was fixed by using the memory card on official software (the wii/gamecube save manager or probably also games)
Line 66: Line 86:  
* Changed button presses for single savegame delete to prevent unvoluntary savegame deleting
 
* Changed button presses for single savegame delete to prevent unvoluntary savegame deleting
   −
1.4c - January 5, 2014
+
1.4c - January 5, 2014
 
* Disabled __sector_erase() check when raw restoring as some unofficial cards seem to have problems with it.
 
* Disabled __sector_erase() check when raw restoring as some unofficial cards seem to have problems with it.
   −
1.4b - September 3, 2013
+
1.4b - September 3, 2013
 
* Card initialization was wrong all the way, wich lead to savegames of the same game of different region or those that shared similar filenames (Twilight Princess and WindWaker) to not work properly. Thanks to antidote.crk for noticing. (read considerations sections for more info)
 
* Card initialization was wrong all the way, wich lead to savegames of the same game of different region or those that shared similar filenames (Twilight Princess and WindWaker) to not work properly. Thanks to antidote.crk for noticing. (read considerations sections for more info)
 
* Added version display
 
* Added version display
   −
1.4a - February 15, 2013
+
1.4a - February 15, 2013
 
* Fixed SD Gecko when inserted/swapped at slot selection screen in GameCube mode.
 
* Fixed SD Gecko when inserted/swapped at slot selection screen in GameCube mode.
 
* FLash ID display was missing a byte
 
* FLash ID display was missing a byte
Line 79: Line 99:  
* Made font sizes more coherent
 
* Made font sizes more coherent
   −
1.4 - October 8, 2012
+
1.4 - October 8, 2012
 
* Animated icon alongside several (minor) graphical improvements
 
* Animated icon alongside several (minor) graphical improvements
 
* Ability to select SD Gecko slot in GameCube mode (just like Wii mode SD/USB prompt)
 
* Ability to select SD Gecko slot in GameCube mode (just like Wii mode SD/USB prompt)
Line 95: Line 115:  
* Lots of thanks to bm123456 and themanuel for beta testing and support!
 
* Lots of thanks to bm123456 and themanuel for beta testing and support!
   −
1.3 - September 14, 2012
+
1.3 - September 14, 2012
 
* Shows card/image serial number in Raw Restore Mode
 
* Shows card/image serial number in Raw Restore Mode
 
* F-zero and Phantasy Star Online Ep I&II and Phantasy Star Online III savegames are patched uppon restoring so they will work on target card (by Ralf)
 
* F-zero and Phantasy Star Online Ep I&II and Phantasy Star Online III savegames are patched uppon restoring so they will work on target card (by Ralf)
 
*Lot's of thanks to Ralf at [http://board.gscentral.org/retro-hacking/53093.htm#post188949 gscentral.org forums]
 
*Lot's of thanks to Ralf at [http://board.gscentral.org/retro-hacking/53093.htm#post188949 gscentral.org forums]
   −
1.2d - September 8, 2012
+
1.2d - September 8, 2012
 
* Previous version couldn't raw backup if backup folder didn't exist in sd/usb
 
* Previous version couldn't raw backup if backup folder didn't exist in sd/usb
 
* Added (double)overwrite prompt when restoring a savefile to memory card (Nano/Excelsiior's idea)
 
* Added (double)overwrite prompt when restoring a savefile to memory card (Nano/Excelsiior's idea)
Line 106: Line 126:  
* Use DejavuSans as font (much better readability) from GCMM+ by Nano/Excelsiior
 
* Use DejavuSans as font (much better readability) from GCMM+ by Nano/Excelsiior
   −
1.2c - September 6, 2012
+
1.2c - September 6, 2012
 
* Raw backups are now named with the number of blocks: insted of Backup_*timestamp*.raw now it is 0059b_*timestamp.raw, 2043b_*timestamp.raw...
 
* Raw backups are now named with the number of blocks: insted of Backup_*timestamp*.raw now it is 0059b_*timestamp.raw, 2043b_*timestamp.raw...
 
* Minor code changes (just for safety)
 
* Minor code changes (just for safety)
   −
1.2b - September 6, 2012
+
1.2b - September 6, 2012
 
* Solved a potential bug, 1.2 and 1.2a seemed unaffected by it.
 
* Solved a potential bug, 1.2 and 1.2a seemed unaffected by it.
   −
1.2a - September 06, 2012  
+
1.2a - September 06, 2012  
 
* 1.2 wasn't correctly freeing memory and eventually raw backup and restore would hang the app (a 2043 block card would make it hang at the second attempt to raw backup the card)
 
* 1.2 wasn't correctly freeing memory and eventually raw backup and restore would hang the app (a 2043 block card would make it hang at the second attempt to raw backup the card)
   −
1.2 - September 06, 2012
+
1.2 - September 06, 2012
 
* Added raw backup mode (in .raw format, compatible with dolphin and devolution)
 
* Added raw backup mode (in .raw format, compatible with dolphin and devolution)
 
* Added RAW/GCP/MCI support for raw restore mode
 
* Added RAW/GCP/MCI support for raw restore mode
Line 124: Line 144:  
* Raw mode works with official and unofficial cards, as well as gci mode (thanks to tueidj for pointing me in the right path!)
 
* Raw mode works with official and unofficial cards, as well as gci mode (thanks to tueidj for pointing me in the right path!)
   −
1.1 - August 29, 2012
+
1.1 - August 29, 2012
 
* Icon and banner by dronesplitter!
 
* Icon and banner by dronesplitter!
 
* Added USB-SD selection in wiimode (only at boot)
 
* Added USB-SD selection in wiimode (only at boot)
Line 136: Line 156:  
** Infinite loop can't happen when backupping a savegame as in r11 MOD 2.
 
** Infinite loop can't happen when backupping a savegame as in r11 MOD 2.
   −
r11 MOD 2 (Pikachu025) - September 11, 2011
+
r11 MOD 2 (Pikachu025) - September 11, 2011
 
* R (GC-Pad) / 1 (Wiimote) now launches a "backup all" mode, where all saves on the memory card are written to the SD card without any user prompts in the meantime.
 
* R (GC-Pad) / 1 (Wiimote) now launches a "backup all" mode, where all saves on the memory card are written to the SD card without any user prompts in the meantime.
 
* I came across a couple saves that had ridiculous filenames that refused to write to SD, so if the program comes across one of those, it'll now write them out as "illegal_name" instead of the actual filename.
 
* I came across a couple saves that had ridiculous filenames that refused to write to SD, so if the program comes across one of those, it'll now write them out as "illegal_name" instead of the actual filename.
Line 143: Line 163:  
* I also (quite shoddily) edited the image listing all the options to add the new option, it's ugly but does its job. Feel free to fix, I don't have Photoshop or anything here.
 
* I also (quite shoddily) edited the image listing all the options to add the new option, it's ugly but does its job. Feel free to fix, I don't have Photoshop or anything here.
   −
r11 MOD (PabloACZ) - September 09, 2011
+
r11 MOD (PabloACZ) - September 09, 2011
 
* SDGetFileList() function in sdsupp.c updated to reflect the changes in DevKitPPC/libogc from the last three years (diropen, dirnext and dirclose commands were replaced with opendir, readdir and closedir, respectively).
 
* SDGetFileList() function in sdsupp.c updated to reflect the changes in DevKitPPC/libogc from the last three years (diropen, dirnext and dirclose commands were replaced with opendir, readdir and closedir, respectively).
 
* Modified the MountCard() function in mcard.c to perform a probe on the GC Memory Card slot, to make sure it was mounted properly.
 
* Modified the MountCard() function in mcard.c to perform a probe on the GC Memory Card slot, to make sure it was mounted properly.
Line 151: Line 171:  
* Compiled with DevKitPPC r24, libogc 1.8.8, libfat 1.0.10 and libFreetype 2.4.2.
 
* Compiled with DevKitPPC r24, libogc 1.8.8, libfat 1.0.10 and libFreetype 2.4.2.
   −
1.0 - December 31, 2008
+
1.0 - December 31, 2008
 
* Updated to libfat
 
* Updated to libfat
 
* Added Wii support
 
* Added Wii support
Line 162: Line 182:     
== To Do ==
 
== To Do ==
* Add hotswapping (memory cards can be swapped, SD Gecko/SD/USB can't be swapped)
+
* SAMBA support for network mangement of savegames
    
== About Savegames and Raw Images ==
 
== About Savegames and Raw Images ==
Line 211: Line 231:  
Developers:
 
Developers:
   −
* LibOGC card functions works with time functions that use Epoch (seconds since jan 1, 1970) as reference, while GameCube works with seconds since jan 1, 2000). The difference is 946684800 seconds. Latest libogc has since added SYS_Time() which will report propper Gamecube time format.
+
* LibOGC card functions works with time functions that use Epoch (seconds since jan 1, 1970) as reference, while GameCube works with seconds since jan 1, 2000). The difference is 946684800 seconds
* GCMM now uses libogc 1.8.11 git (2012-07-25) card.c, card.h and system.h with tueidj's patches for proper memory card unlocking. It would be wise to update those files in GCMM if changes are made to libogc concerning other functions. Note that even if libogc asumes the changes, as GCMM now uses some static functions from libogc, it needs card.c and card.h, but if libogc updates the sramex structure (system.h) and fixes the checksums in card.c, system.h will no longer be needed. --> as of 1.5 system.h is no longer needed. Still using custom card.c and card.h (for raw management and fixing PSO and FZERO savegames), card.c is updated to latest one in libogc at time of release. Libogc card unlocking has been adopted.
+
* GCMM is compatible with libogc thanks to DacoTaco, but currently uses libogc2 with custom card.c (essentially libogc2's card.c with some modifications) due to libogc2 having support for sd2sp2 and gcloader, as well as many bugfixes. If changes are applied to libogc GCMM will be able to properly use it again.
 
* Very good sources of documentation are libogc and dolphin's source code.
 
* Very good sources of documentation are libogc and dolphin's source code.
 +
* Card_Init() shall be called only once. Any subsequent call will be pointless; to change the company and gamecode one should use Card_setgamecode() and Card_setcompany libogc functions.
    
== Setup and Installation ==
 
== Setup and Installation ==
 
Unzip the archive. You will find the following folders inside:
 
Unzip the archive. You will find the following folders inside:
   −
apps Contains HBC ready files
+
*apps : Contains Homebrew Channel ready files, both for normal and dark themed GCMM (see Homebrew Channel instructions below)
(see HBC instructions below)
+
*gamecube: Contains GameCube DOL file, both normal and dark themed (not required for Wii)
 +
*gamecube/cli files: Contains a set of cli files to use with swiss in gamecube mode. Read cli_readme.txt for mor information.
 +
 +
After boot, GCMM will check which devices are available. If only one device is available, GCMM will use it as default. If more than a single device is available GCMM will boot into the device selector screen. You may skip device selector screen at boot using command line arguments (check cli files for gamecube mode).
 +
 
 +
Available devices in order shown by GCMM. Please don't connect more than one USB device in Wii mode.
   −
gamecube Contains GameCube DOL file (not required for Wii)
+
Wii
 +
Wii SD
 +
Wii USB
 +
Slot A SD Gecko
 +
Slot B SD Gecko
   −
The savegames are read and stored to the following dir: sd:/MCBACKUP/
+
Gamecube
 +
SD2SP2
 +
Slot A SD Gecko
 +
Slot B SD Gecko
 +
GC Loader
   −
=== Wii ===
+
When not using an SD Gecko adapter, you will be able to select a memory card slot to use.
On the Wii, the savegames will be read from and written to the front SD slot or FAT32 USB device.
  −
The user will be prompted at startup for which device to use.
  −
If the selected device isn't available, GCMM will try to use the other device (i.e: user selects usb device but there's none connected, so GCMM will try to use the internal SD).
  −
Memory card can be in either slot.
     −
=== Gamecube ===
+
The savegames are read and stored to the following dir: sd:/MCBACKUP/
On the GameCube you will need either an SD2SP2 device or an SD Gecko SD adapter. When using SD2SP2 both memory card slots can be used, when using SD Gecko you will need to select which slot hosts the SD Gecko adapter and use the other slot for memory card (memory cards can be swapped without rebooting).
      
== Loading/Running the app ==
 
== Loading/Running the app ==
Line 255: Line 284:  
== Compiling From Source ==
 
== Compiling From Source ==
 
Currently gcmm uses:
 
Currently gcmm uses:
* [http://sourceforge.net/projects/devkitpro/files/devkitPPC/ DevkitPPC r26]
+
* DevkitPPC as installed by devkitPro Updater 3.0.3 as of November 19th 2021: https://github.com/devkitPro/installer/releases
* [http://sourceforge.net/projects/devkitpro/files/libogc libOGC 1.8.11 git (2012-07-25)]
+
* libOGC2 (updated libogc by Extrems) as of November 19th 2021: https://github.com/extremscorner/libogc2/commit/6bce86690ca2b45557f14460122bc7d43c5ac547
note: it compiles and runs fine with 1.8.11 release
+
* libfat updated by Extrems as of November 19th 2021: http://sourceforge.net/projects/devkitpro/files/libfat/
* [http://sourceforge.net/projects/devkitpro/files/libfat/ libfat 1.0.11]
+
* libFreeType 2.4.2 port, currently installed via pacman and devkitpro toolchain: https://github.com/devkitPro/pacman-packages
* [http://sourceforge.net/projects/devkitpro/files/portlibs/ppc/ libFreeType 2.4.2 port]
+
- Read more about installing portlibs: https://devkitpro.org/wiki/devkitPro_pacman
    
== Credits ==
 
== Credits ==
Line 270: Line 299:  
* tueidj, for his patches and very useful information and support. Official memory cards work due to his work.
 
* tueidj, for his patches and very useful information and support. Official memory cards work due to his work.
 
* dronesplitter for banner and icon implementation
 
* dronesplitter for banner and icon implementation
* PlabloACZ and Picachu025 for updating the source.
+
* PlabloACZ and Picachu025 for updating the source on 2011 after I forgot about GCMM.
 
* Nano(Excelsiior), for inspiring me to finally working again on GCMM
 
* Nano(Excelsiior), for inspiring me to finally working again on GCMM
* Ralf at gscentral.org forums, for F-Zero and PSO savegame support.
   
* bm123456 and themanuel for beta testing and support
 
* bm123456 and themanuel for beta testing and support
* Lots of thanks thanks to everyone!
+
* DacoTaco for libogc compatibility changes
 +
* Extrems for many libogc bugfixes, gcloader and sd2sp2 support in libogc, libfat updates and improvements
 +
* f3bandit for beta testing, specially gcloader support
 +
 
 +
Lots of thanks to everyone using GCMM!
138

edits