* only get the list of shit installed on the wii 1 time and use that list globally for stuff like checking if something is installed, getting channel names, getting title versions
* remove unused files
* probably fuckup svn merge
*Replaced all text related stuff with the ones from WiiXplorer (FreeTypeGX/GuiText/...). Some alignments might need be adjusted or maxWidth in pixel of some text parts. Also the text scrolling needs to be adjusted.
*updated libntfs (write fix)
*updated libfat
*lots of changes in the startup code, removed almost everything. This might cause problems for some drives at loading the gamelist and needs to be adjusted later but better this time. more cleanup is needed in main.cpp and will come.
*using libogc sd/usb for config loading and reload to cIOS afterwards
*added missing boothomebrew stuff pune forgot
NOTE: From now on we will be doing a lot of revs which we won't be compiling and releasing. This revs are officially not available for public so don't making issues regarding those revs. Those will be closed right away. We need first to cleanup a lot of crap and update loader to new standards before releasing stuff again.
*Changed cache size for mounts higher again which speeds up everything especially from SD
*Fixed bug when loading OCARINA+Alternative DOL. (Wasn't booting at all)
WIP Patches will be only accepted in the following format (let's not invent thousands of different formats):
In 3x 4 bytes columns separated by a space (no ":" allowed)
offset | original address | overwrite address
Example for PoP:
007AAC6A 7A6B6F6A 6F6A7A6B
007AAC75 7C7A6939 69397C7A
...
The original address is compared before patching and is not patched if it doesn't match. You can see the confirmation or fail of a patch on the Gecko Output.
*A few fix ups in different places
look for the first of ULNR or UNEO
if neither are found, look for the first of JODI or HAXX
if none of the 4 are found, return without patching anything
- Added support for ciosx (yes, including FAT/NTFS) (As always, say thanks to oggzee for this)
- Fixed bug with game specific settings (which *could* end up using other settings than you expected)
- Removed fat_ffs for now (save game emulation might conflict with FAT/NTFS support, we have to test this)
- Maybe more, but I forgot them, I think
*Cache size reduced which results in a bit slower writing but is more stable
*Fix for the gameinstaller ProgressWindow
*Added NTFS unmount on exit
WARNING:
The USBLoaderGX installer seems to be broken in some places. There are sometimes random freezes or crashes even on fat32. Those arent bad on a fat32 filesystem but can damage the whole partition on ntfs. Using the installer on ntfs is still very risky. You have been warned!
* Updated to Hermes usb storage code
* Fixed some bugs in ntfs while writing timestamps, resulting in different hashes (dimok)
* Fixed codedump when switching partitions (issue 1454)
* Fixed graphical glitch on 4:3 screens, where the prefetch cover was visible in the coverwall
* Fixed a bug with installing games, due to the switch to C++ (dimok)
* Fixed bug in http.c (where realloc *might* choose another address, thanks Dr. Clipper)
* Added support to /wbfs/Game Title [GAMEID].wbfs files (thanks oggzee)
* Fixed bug in cfg_cleanup when switching partitions
* Added BGM class again (for playing background music, requested by dimok)
* Added settings for background music again
* Fixed bug in MEM2 class (returning an invalid handle when no memory could be allocated, thanks to dimok)
* Updated DIP module to OpenDIP (report bugs with this one if you've found them, but report them here: http://github.com/spacemanspiff/odip-plugin)
* Added initial code for cios 222 rev5 (THIS DOES NOT WORK YET! DON'T FILE BUGS ON THIS ONE!)
* Added fatffs module by Hermes and Waninkoko (THIS DOES NOT WORK YET! DON'T FILE BUGS ON THIS ONE!)
* Fixed bug in Settings, which resulted in a crash when the partition was changed.
* Added caching for gamelist entries, so switching between different screens/sort options/display modes should be faster
* Changed defines in ehc_module, in order to prevent clashes with new defines in rev5
*Startup is now using libogc usbstorage for loading configs
*Improved storing gametitles from wiitdb with less memory usage
*Added freeing of the memory allocated for wiitdb titles (oh boy)
*Changed wiitdb.zip search
*Fixed filebrowser to cancel without applying the path
*Added A BGM Class
*Removed the BGM menu now.
You can now choose a file with the filebrowser which you want to play. This file will be played and all .mp3 .ogg and .wav in the same directory enlisted as a Playlist.
If you choose Loop Directory mode than the files are played one after another. You can also choose a play random music from directory mode.
You will see the list of available channels on your system if you start without a HDD or if your HDD is slow and is being recognized late. The list of games is than reloading as soon as it is recognized.
*Hot swapping of the SD card was implemented into background thread (by giantpune)
*Made lots of cleanups and some fixes
*Format menu was moved to settings page 3 (only on godmode accessable)
*Added ScreenShot and Reset/Shutdown call to background thread. Removed the not needed ones. Now you can call for Screenshot/Reset/Shutdown anywhere in the loader (after gui is started).
USB must deinit the device before re initting it or else it returns 0
games and what not.
*add filter to skip __CFG_ in teh gamelist (i was told this is the ID6
for hermes' settings)
*Changed GuiDrawThread priority to maximum. This seems to take care of the vanishing WiiMotePointer problem (let's see if it works. If anyone notices a slowdown of any process caused by this revision, please report.)
down the ocarina issues
*take the IOS reload out of the slow usb loop
*use patchhook.S from new geckoOS. this doesnt mean all the new geckoOS
stuff will work, its just the S file
*fix the gamelist from starting with 1 game on the list
*added fucntion for making screenshots and put it in a few loops.
triggers are GC(Z), CC(left-Z), nunchuk(Z). no comfirmation is given
except over usb gecko. but files are saved in <boot device>/config/
USBLoader_GX_screenshot<date><time>.png
*took out some annoying prompts from the bannersound functions because
they were really annoying
* Implemented WIP patches
* Updated language files
* Possible fix for Peppa Pig (untested, issue 1212)
* Updated Wii parental controls to work nicelly with USB GX Parental Controls
gamelist.
*rearrange the Gui_Numpad so it doesnt look like a 4yr old made it :)
*remove redundant setPostion and setAlignment in Gui_Numpad
*remove old comments
*rearrange some sd and usb init to keep from re-init the thing 20 times
*execute some of the main dol patches that are the same size in the same
loop so we dont keep looping the same data a bunch if we dont need to
(hopefully this doesnt break anything)
*sprinkle some more gpringf() around
* Added Wii Parental Control support
* Added gui numpad
* Changed GuiText to support password character
* Added lock/unlock icon in the titlebar (to unlock Parental Control)
* Added new wbfs_fat from Oggzee (further speed improvement)
* Added MEM2 support by Hibern
* Better partition support (by oggzee)
* Support for subdirectories in FAT32 (by oggzee)
* Added support for cios 223 and 250
* Added BCA support (go to Settings->Custom Paths) to change the path of the BCA files (by Hermes)
* Fixed issue with hairless mode
* Fixed issue with IOS_ReloadIOSsafe (by giantpune)
* Added setting to save games in a subdirectory
* Fixed slow startup when loading from FAT (WiiTDB required!)
* Changed handling of new titles a bit (speed improvement)
Known issue:
* FAT rename and re-id broken again due to subdirectory support (yes, I'm lazy)
changed gprintf() to use crediar's method because it is smaller and works just the same.
allow r-win's debug printf() stuff to be sent to the gecko to reduce redundant stuff there
issue 1073. headless mode - allow game to be booted via argv[1].
took out all the params from the exitprompt since they aren't used.
took out all the #ifdef stuff for building for a wii. obviously this wont run on a gamecube so it isn't needed.
added a way to check what version of a IOS is installed before trying to boot into it. added IOS_ReloadIOSsafe(). this should stop idiots with the 4.2 stubs from bitching about why stuff doesn't work.
use that check so you only see the "222v4 is needed" prompt in the settings if you don't already have that installed.
fix issue 1039. (must still be compiled without NO_DEBUG defined because technically WiiRD is a debugger)
* Added a configuration setting to turn this feature off (there you go, pune)
* Changed svnrev.sh, to also update the release date of the meta.xml file, and to set the revision to current + 1
- Type "make" to make the normal dol
- Type "make channel" to make the channel dol
This will only force networkops.cpp and PromptWindows.cpp to recompile, instead of changing the PromptWindows.h file and force a recompile on almost everything.
* Fixed issue 1058
* Menus splitted to several smaller files, to reduce compile time
This version has FAT support. You can change the used partition in the game load options. Default WBFS will be used, if found. Otherwise the first FAT partition with games will be used. FAT will only work when using Hermes cios (222/223)!!!
The libogc limits the MUTEX up to a count of 64.
Therefore we use "only one" global Mutex for all Elements.
This has to follow tath a lock hinder each thread
tath which tries access to any other element
Also the new Lock-Stuff uses one global mutex.
But this mutex is locked for the smallest time as
possible (Only in the lock- and unlock-process).
The threads are no longer hindered unnecessarily each other.
This speeds up the gui
*Added new options for BannerSounds (You can loop them, make it be quite after once played or play the BGM again)
NOTE: Changed the way how to disable BannerSounds. If you make Volume to 0 than the loading of the BannerSounds is disabled now.
* ogg decoder added (old oggplayer removed)
* mp3 decoder added (mp3's cane use as backgroundsounds)
* WAVE decoder added (but only uncompressed WAVE's)
* AIFF decoder added (only uncrompressed)
* BNS decoder added
all soundformats can use as backgroundsounds
dimoks GameSound class removed it is replaced with the new GuiSound stuff
* Many small fixes and other changes
NOTE: Added option to enable/disable the BannerSounds and a volume option for it. Note that volume 0 is not the same as disabled. On volume 0 the sounds are still loaded. More options probably going to come.
* changes is setting-dialogs
- Update the Gui-Texts only if is needed
- alls stuff for an option in one code-block
this makes it easier to add, move or remove an option
* customoptionbrowser-stuff
* Add one translation wich was forgotten in source
* Themable screensaver activated, image size as gxlogo.png, but named "screensaver.png" in the theme folder.
* Others little fixs
NOTE: The images used right now for the theme loader are made out of our old images and if someone can make some new ones go ahead. The themes are downloaded to the path you can set up. The downloaded preview images are cached at "<set up theme downloadpath>/tmp/". The widescreenfix isn't implemented there yet because images will probably be changed.
*Started 3rd SettingsPage
*Added JPEG Loading GuiImageData function and 4x4RGBA converter by r-win from WiiXplorer
*Added ZipFile Class from WiiXplorer
*Added StringToMD5 and MD5ToString to MD5 functions and made it undependable of platform
added functions to mess with the "return to" stub. everything should be working right, but if i messed up, it may cause you not to be able to exit the program (it could just keep restarting itself). now when booting homebrew, they should exit back to this program if you have a channel installed as UNEO or ULNR. priority is given to UNEO if both are present.
*Lots of changes in the TextDrawing stuff and FreeTypeGX to speed up the drawing
*Mostly optimization work which is not completely done yet, but mainly it is.
*You might not want to update to this revision right away there still might be bugs which are needed to be fixed. This is a version for everyone to test and report bugs caused by the changes.
*Vanishing WiiMotePointer should be fixed for the Settings/GameSettings probably (though it might still occur i am not sure if i didn't forget anything, there is just too much to change :P.
- Differ the coordinates between 16:9 and 4:3,
can add a setting with a "w" as prefix
(e.g. sdcard_coord = 163,395 for 4:3
and wsdcard_coord = 170,395 for 16:9).
Isn't setted "w???._coord", the "normal"-coordinate
is used for both modes.
* added a new constructor for GuiImageData
currebtly the constructor is unused, i will use later
All options pages now contain the correct number of lines, which together with another adjustment should fix scrollbar alignment (issue 971).
Added missing scrollbar on custom paths page.
dimok fixed the file browser bug that prevented going back to the parent folder if the current folder was empty (issue 836).
Fixed parental control keyboard bug introduced in r750 (issue 976).
The free space text is now in correct order when the GUI is set to Japanese.
* Added initial (untested!) support for the zip file format, which is supported by the HBC
* Began working on compressed wad files. Uncompressing fails for now, so uploading WAD files should be done with the previous version of Wiiload.
* Fixed issue 902 (hence the large commit).
You may have to delete your main configuration file before updating if you had v3 installed. For some games, you will have to use 222 instead of 223 (RB instruments, GH 5) if you had 222 v3.
If you think you need an external ehcmodule.elf, you can put it in SD:/apps/usbloader_gx/ and it will be loaded.
Fixed crash when setting a custom path using the folder button (issue 864).
Fixed black screen when starting the loader from HBC a long time after powering the Wii and the HDD went to sleep (tested on a WD 2,5") (possible fix for issue 881).
*may lead to false positives for some GC memory cards in slot 2, but the only side effect would be hooking the game when it wasn't wanted to be hooked*
fix i bug created by svn merging
Call to start BC for GC is still present 2x. I left one so if the first doesn't work, it can be removed and the second will be used.
Add button to mount DVD drive. Not completely tested, but somewhat.
*Tested and working*
retail Wii DVD
Wii backup
Wii backup w/ alt dol (redsteel)
Wii backup w/ alt dol & ocarina (redsteel)
Wii backup w/ alt dol & WiiRD
Retail & Backup forcing video modes
Saving individual settings for games on DVD (only Wii as BC is loaded before any settings would be used)
Display disc images for DVD games
Loading GC games retail & backup (w/ working MIOS patch installed)
I did change some stuff after testing GC so it might be broken.
Theme stuff for the button is not tested and I'm not quite up to speed with ardi's changes to the theme stuff so it might not work.
Changed images are not compressed or optimized.
N O T E:
--------
- The old coords for the "sort & search" buttons
are obsolete and will be removed in future
- the gamelist, gamegrid and the gamecarousel have your
own coords (named the old coords with a prefix "gamelist_",
"gamegrid_" and "gamecarousel_")
- the search-button is e.g. themable over the new setting
"gamelist_search_coords=x,y", "gamegrid_search_coords=x,y"
and "gamecarousel_search_coords=x,y".
- a workaround, for old themes, sets (by using the old coords)
all buttons as previously, apart from favorite button.
The new search button is placed at the position from the
favorite button and the favorite button is placed to the left
side of the search button. That is necessary for old themes
to insert the search button between favorite and abc button.
This workaround will be removed in future
- for new themes must use the new coords.
- Themes for old and new loader can use both coords
(the important thing is that the old coords stands
before the new coords in the GXtheme.cfg)
Made function to check if a game has save data on the Wii nand. This can be used to allow/not allow booting certain alt dols. So far it is only called before 1 game, and it seems to work fine without issue.
make updated always the lang-files
now:
make -> builds only the boot.dol
make all -> builds the boot.dol and updated the lang-files
make lang -> only updated the lang-files
*NOTE*
it is possible to change any game ID to more or less than 6 characters, but since most of the functions use header->id[0] through [5], more will be useless and less may result in code dumps.
it is not advised to change the ID for games that are not custom, as the cover and wiitdb data will not be available for made up ID
it is possible to have multiple games with the same ID on the wbfs partition, but when any of them are clicked, the wii will perform the selected action (play, delete, etc) on the first one it finds.
INFO:
Here is what the options mean:
Only Originals - only download original disc images
Only Customs - only download custom disc images
Originals/Customs - download first original and if not available download custom disc images
Customs/Originals - download first customs and if not available download original disc images
*Added a ToolTip
*Added GameName under the covers
*Fixed Crash with no Favorites in list.
NOTE: I'll add a better coming out effect for the covers, for now there is only a slow big ZoomOut which isnt too bad either.
*Fixed the receiving of the wads. Now receiving directly to a device (Big files work now too (with sendelf they do, do not know about wiiload))
*Fixed to show the incoming IP and not the IP of the Wii
*Made changes on bootup. Now there is a small BootUp Screen for the slow HDD people. Waiting for 30Secs for their HDD.
Also messed with the run command within the makefile. press alt+r to compile the source code and then send the resulting dol to the wii.
*note*
you must have the environmental variable set up for wiiload. you don't need to have the .exe file, just the WIILOAD variable
formatted the code to make it easier to read. no functional changes at all.
i didn't put anything from the libwiigui folder or banner folder in the beautifier.
my automated .bat seems to have done a good job. the only places i see it fucked up was on (GXColor){blablabla}. it treated the brackets in the color like all the other brackets and put the color on a new line and indented it. i think i fixed most of them. not sure if it messed up anywhere else. also not sure about how it handled different linebreaks. it looks fine on windows. if it looks messed up on linux, it can be reverted.
the code still compiles and runs fine.
first try the 00000000.app with the system language, then with english.
if there is still no name for the title, look in banner.bin
also made a kick-ass clone of the wii settings screen to adjust the normal wii settings. it is after all the channels.
*Added URL_List class that gets all Links of an http url.
*Made HomebrewList class dynamic allocated like the URL_List class too now. This saves lots of unused memory.
*Small cleanups
NOTE: Punes made an update too (i didnt know he was doing it). We decided to have both in because of:
Punes update updates only the files that are available on the SD/USB and only when you are doing a complete update.
My update is downloading ALL files from the SVN Link (getting the whole list). These is mainly for people that are getting started or those who want to update the whole LanguageList
now, when doing a full update/full channel update, whatever .lang files are in the language path should get updated as well.
changed thread priority (70->75) for GX thread since it wasn't originally created to be drawing as many different images at once as we are throwing at it. hopefully this will fix some of the black artifacts that are popping up on the screen during the gameinfo and homebrew info windows.
disable the screen while saving wad to sd because idiots were misusing it and breaking shit
change the exit prompt so you can exit to HBC even if you didn't came from there
·Add tooltips to NavBar
·Nodisc.png & noimage.png (cover 3d or flat) for theme need to be place in your theme folder now (more easy to install theme)
Warning: if you use a custom nodisc.png/noimage.png, now you need to let it in the theme folder (so download theme, and just load it, no need to move images anymore)
·Made littles modif on the new file browser for title of custom path match with those from the setting windows (less heavy for the .lang file)
added check for GXglobal.cfg on the USB at startup. now if anny of the following are met, it will cause USB to be used as your bootDevice:
argv[0] gets passed on startup and it is usb
any of these files are on your USB drive.
USB:/config/GXglobal.cfg || USB:/apps/usbloader_gx/boot.elf || USB:/apps/usbloadergx/boot.dol || USB:/apps/usbloadergx/boot.elf || USB:/apps/usbloader_gx/boot.dol
put in a filter to hide the xxxA factory duplicate channels.
*NOTE* In testing, all channels booted fine with system menu 4.1u installed. None booted with 3.2u installed.
· add sdcard_over.png and browser_over.png (neorame, if you want done an over effect like for wii button)
· Made the sdcard & homebrew button themeable with over feature,
· Add translatable tooltip to the hombrew button
· Add some translation forgotten in sources.
-add polish local
-remove wiitdb.zip download option (for your personal wiitdb.zip use the link create option of the loader)
*Add new wifi/internet icon and wii channel icon for the mini hbc (have to add in the loader by a cover, you know im not a .....)
raise the coder to char[100] because we have a shitload of names on there
add param int t=0 to the get entries function to force getting all games and ignore settings and parental control
fix bug that code dumped if you didn't have the database.txt for the channel names
made the channel browser read database.txt. The text should be in the config path (because i couldn't think of a better place for it). And the format for the txt is the first 3 chars of the 4 char ID, then any 1 character, then the name (read up to 51 chars.
eg.
ULN USB Loader GX Full Channel
HAX Homebrew Channel
HAT Nintendo Channel
The database for ATD mod follows this format, so its a great place to start. If people are going to be passing around a database, it would be wise to keep custom channels off this, as my WADD that says WadManager is not the same as somebody else's WADQ which could be a self destruct or something.
Commented out the code that loads titles.txt. It was reported that this file is keeping WiiSportsResort from loading on some Wiis. And it isn't needed anymore since there is the xml file with all the names in it. I left the code in though in case somebody thinks that it is actually useful.
Added 1 more game to the list of known alt dols.
no button to create a new file and a little bug with the scrolling, but better than typing stuff in.
added channel launcher. currently doesnt show the actual name, only the u32 and ID. also, it is only showing 0x00010001 channels, so no Mii, weather, or other crappy channels, just the good stuff.
fixed bug that showed the MacOS hidden files as extra homebrew entries.
NOTE 1: For this the network has to be initialized!! You can initialize the network with the button at the right bottom of the
Homebrew Launcher or by AutoInit Network.
*Added background Network initialize
*Added AutoUpdateCheck if AutoInit Network Setting is turned on. You will get a prompt if a new Update is available.
NOTE: AutoInit Network can be turned on under GUI Settings.
IMPORTANT NOTE: All those features require network being initialized. Be aware that when network is initialized some games seem
to not want to run, this means its lowers the game load compatibility. Most of the games don't have any problem with it but some
do. Thats why there is an option for the AutoInit Network.
added more alt dol#s to the list
made the homebrewBtn movable in the theme
use homebrew_coords = x,y
move the xml loading from during the cfg loading to the menu_check so it happens after video is init and we have drawn something. maybe this will fix the garbled screen somepeople see while it loads.
make the homebrew menu read the XML data from meta.xml file. put this data on the homebrew buttons and prompt. there is 4 structs created globally that hold the XML daa. i tried to make them pointers but i got errors so i'll leave it like this and let dimok fix it :P
change homebrew icon image and move it a bit.
hide the homebrew button if godmode!=1
maybe fix issue 722. i don't have a spare drive to test it.
fix grammatical error in the settings.
fix long game name overflow on the gameinfo screen
switch the homebrew buttons to use the new HBCwindowprompt(). none of the meta.xml data is passed yet so the prompt looks pretty naked.
*Added HomebrewFiles Class
NOTE 1: In settings/custompaths you can change the HomebrewPath and the standard is SD:/apps/. Our browser searches for EVERY .dol and .elf file in the directory even if its not called boot.dol.
NOTE 2: Giantpune and me tested the homebrewbooting and it worked for every homebrew we tested except our own application. (a bit ironic)
NOTE 3: Right now the information on the Buttons is the path to the Homebrew. This and the BootPrompt will be replaced with the XML information inside the path of the homebrew later but for now i am taking a break
NOTE 4: Right now the button to the HomebrewMenu is next to WiiMenuButton and has the same image as the listgamebrowser. I didnt have any images so i took what i had and cyrex will change the images when he is back. Also there will be a no icon image added later.
Added option to download txtcode if none is found. The error checking for this is really weak so you might get a "file not found" page saved as a cheat text. But its bettor than nothing.
*Added Browser for AlternateDOL from disc feature
NOTE: Right now the browser isn't working right and crashing from time to time so you i would not recommend to use it yet. It's also showing all files on the disc for test purpose. I'll try to fix it later right now i don't have time for it.
*Changed some minor codes and moved cheats to its own folder
new vars are
firstLine = 1;
numLines = -1;
totalLines = 1;
totalLines is not changed until the text is set to wrap and Draw() is called 1 time.
The other 2 are set with functions.
new functions are
void GuiText::SetNumLines(int n)
void GuiText::SetFirstLine(int n)
int GuiText::GetNumLines()
int GuiText::GetFirstLine()
int GuiText::GetTotalLines()
int GuiText::GetLineHeight(int n)
These should be self explanatory. GetLineHeight relies on total lines so it needs to be called after the first Draw();
Raised the chars[] to 3000 for the synopsis because people are writing books in there.
Used those new fancy functions make the synopsis fit in the info window. Press up/down to scroll the text. Arrows may come later for the buttons. Also put a home buttononlytrigger on the game prompt. moved disable mainWindow to the beginning of the infoprompt to keep from loading images and stuff from the sd at the same time we are reading the xml file.