Hacking WiiFlow - an open source GUI USB-Loader

  • Thread starter Thread starter zorglub07
  • Start date Start date
  • Views Views 3,104,217
  • Replies Replies 16,228
  • Likes Likes 6
I'm on r391 now, and all of the emulators work perfectly. The problem I am having now is with the Wiiware games. The games loaded fine on older versions of wiiflow mod. I don't know if it has to do with there being only the one source now for wiiware/vc when there used to be one for each real nand and emu nand. My original emulated nand I created for wiiware games back in the days of triiforce had to be placed on the root of the hard drive. Wiiflow seemed to not like it there anymore, so I moved it to the folder wiiflow/nandemu. Now on r391 all of the games are not loading and black screening except for one time I got Mega Man 9 to load when I changed nand emulation to partial.
 
Thanks fledge, you made my day:
24wygar.jpg
but still I can't see all emulators together, maybe you should add something like this:
2lbgc5g.jpg

Also I was wondering why not enable the shortcuts again? they were very practical.

Thanks again.
 
ok, just tested r391 with plugins and it's awesome!!
after play, if i press home to return to the Wii menu, it's hang to a black screen
Thanks
 
Can someone help me?

How can I use the plugins?
After downloading Plugins from http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/
What are the default names for the plugins (fceugx-mod8.dol|genplusgx-mod3.dol|scummvm-mod1.elf|snes9xgx-mod8.dol|vbagx-mod8.dol|wii64-mod3.dol)

Is that correct?
SD/USB:\\Wiiflow\plugins\(plugin name).dol
SD/USB:\\Wiiflow\plugins\vbagx\roms
SD/USB:\\Wiiflow\plugins\snes9xgx\roms
SD/USB:\\Wiiflow\plugins\wii64\roms
SD/USB:\\Wiiflow\plugins\fceugx\roms
SD/USB:\\Wiiflow\plugins\genplus\roms
SD/USB:\\Wiiflow\plugins\scummvm\roms

Do I need a *.ini file?
 
r379 startup_menu.ini explained. i suggest you run wiiflow once and right down the current buttons and positions and then rewrite to your liking and transfer it to the startup_menu.ini.

[BUTTONS]
button_0_row=0 // button row numbered 0 to 4
button_0_col=0 // button column numbered 0 and 1
button_0_page=1 // button page - 1 or 2 (set to 0 to hide a button)

// the following are used to set the preferred emuflow mode per plugin per theme
[FCEUGX] // plugin dol name in caps minus extension
8bit playground=1 // theme name = emuflow mode - if set to 0 or theme not listed here it uses last emuflow mode used
carbonik=4
default=3
orchid=1
starnight=1
violet=1
Fledge68, i am using the source selector now too, but i didn't find a startup_menu.ini anywhere to modify, where should it be created?
I noticed a little flaw too, i don't use DML, but the menu still shows GC Games.
 
One more thing I noticed weeks ago, Genesis emulator used here boots Master roms into black screen (I can press home and go back but can't play any game), I have an older version which I use in homebrew Genplusv1.5 with no problems with MS whatsoever.
Hey AbdallahTerro, i don't see you on IRC lately...anyway Master System boots fine for me with genplus mod3, in fact, i tried SG-1000, GeameGear and Megadrive/Genesis too, they all boot and return to wiiflow.

OOPS, can somebody merge my 2 posts, something went wrong with saving.
 
I just uploaded the plugin pack v2 to google code!
This Pack contains fceugx, snes9xgx and vbagx mod8, genplusgx and wii64 mod3 and scummvm mod1. To install, simply copy the content to your sd card or usb hdd. If you want that you can return to wiiflow, install the wad in the wad folder, its a hidden channel, that means you cant see it on the system menu or wii channel removal screen. To uninstall it, either uninstall the wad file or use any title deleter. Check out the ini files for cover paths, rom paths and file extensions. If you want to change something feel free to edit the ini files, wiiflow will accept your changes :) To get scummvm to work you need to first set up your scummvm games using the regular version and then copy the scummvm.ini into your wiiflow/plugins folder, then wiiflow will automatically detect them.
 
  • Like
Reactions: 1 person
I just uploaded the plugin pack v2 to google code!
This Pack contains fceugx, snes9xgx and vbagx mod8, genplusgx and wii64 mod3 and scummvm mod1. To install, simply copy the content to your sd card or usb hdd. If you want that you can return to wiiflow, install the wad in the wad folder, its a hidden channel, that means you cant see it on the system menu or wii channel removal screen. To uninstall it, either uninstall the wad file or use any title deleter. Check out the ini files for cover paths, rom paths and file extensions. If you want to change something feel free to edit the ini files, wiiflow will accept your changes :) To get scummvm to work you need to first set up your scummvm games using the regular version and then copy the scummvm.ini into your wiiflow/plugins folder, then wiiflow will automatically detect them.

Thanks :)
 
I have created a wiiflow Mod installer (New Installer)
* Download: All Plugins / Current Wiiflow REV (http://code.google.com/p/open-wiiflow-mod/downloads/list) / Titles (Wiitdb) / Wad
* Create all Needed folders

Download: http://www.mediafire.com/?46b5t6h4ozz0wzq
Code:
#NoTrayIcon
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Version=beta
#AutoIt3Wrapper_icon=Logo.ico
#AutoIt3Wrapper_outfile=WiiFlow Installer v1.0.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Comment=WiiFlow Installer
#AutoIt3Wrapper_Res_Description=WiiFlow Installer
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_ProductVersion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Copyright © 2009 - © 2012 Spayrosam (Samir.L)
#AutoIt3Wrapper_Res_Field=CompanyName|Spayrosam
#AutoIt3Wrapper_Res_Field=ProductName|WiiFlow Installer
#AutoIt3Wrapper_Res_Field=ProductVersion|1.0.0.0
#AutoIt3Wrapper_Res_Field=WiiFlow Installer|1.0.0.0
#AutoIt3Wrapper_Run_AU3Check=n
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <Crypt.au3>
#include <Timers.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiComboBoxEx.au3>


GUICreate("WiiFlow MOD Installer", 800, 80, -1, -1)

$DBTN = GUICtrlCreateButton("Download", 20, 5, 120, 25)

GUICtrlCreateLabel("Language : ", 160, 5, 80, 20, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 10)
$HomebrewTypeBootDOLLanguage = GUICtrlCreateCombo("", 230, 5, 65, 20, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
GUICtrlSetData($HomebrewTypeBootDOLLanguage, "EN|FR|DE|ES|IT|NL|PT|RU|JA|KO|ZHCN|ZHTW", "EN")

GUICtrlCreateLabel("Transfered : ", 320, 5, 80, 20, $SS_CENTERIMAGE)
$HomebrewListViewTransferedUnformated = GUICtrlCreateLabel("0", 20, 40, 200, 20, $SS_CENTERIMAGE)
GUICtrlSetState(-1, $GUI_HIDE)
$HomebrewListViewTransfered = GUICtrlCreateLabel("00.00 B", 400, 5, 200, 20, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 12, 600)
GUICtrlSetColor(-1, 0x000FFF)

$State = GUICtrlCreateLabel("State", 20, 50, 740, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUISetState(@SW_SHOW)


While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $DBTN
GUICtrlSetState($DBTN, $GUI_DISABLE)
GUICtrlSetData($HomebrewListViewTransfered, "00.00 B")
_CurrentUSBWiiflowURL(@ScriptDir, $State, 0)
GUICtrlSetState($DBTN, $GUI_ENABLE)
EndSwitch
WEnd




Func _CurrentUSBWiiflowURL($SaveCurrentUSBWiiflow, $CurrentUSBWiiflowState, $CurrentUSBWiiflow_ListN = -1)
$startGeneratetime = _Timer_Init()
Local $CurrentUSBWiiflowSize = 0, $ReturnCurrentUSBWiiflowURL = ""

FileDelete(@TempDir & "\USBWiiflowupdate.xml")
Local $hDownload = InetGet("http://code.google.com/p/open-wiiflow-mod/downloads/list", @TempDir & "\USBWiiflowupdate.xml", 1, 1) ;Download Header
Do
Sleep(250)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)

$GetCurrentUSBWiiflowURL = FileRead(@TempDir & "\USBWiiflowupdate.xml")
FileClose($GetCurrentUSBWiiflowURL)
FileDelete(@TempDir & "\USBWiiflowupdate.xml") ;Clean

$StringCurrentUSBWiiflowVersion = _splitInfo($GetCurrentUSBWiiflowURL, 'open\-wiiflow\-mod\.googlecode\.com\/files\/Wiiflow\_Mod([^*]*?)\.zip', 1)
$UpdateUSBWiiflowURL = "http://open-wiiflow-mod.googlecode.com/files/Wiiflow_Mod" & $StringCurrentUSBWiiflowVersion & ".zip"

FileDelete(@TempDir & "\SHA1ChecksumURL")
Local $hDownload = InetGet("http://code.google.com/p/open-wiiflow-mod/downloads/detail?name=" & StringRegExpReplace($UpdateUSBWiiflowURL, "^.*/(.*)$", "$1"), @TempDir & "\SHA1ChecksumURL", 1, 1)
Do
Sleep(250)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)

$GetSHA1ChecksumURL = FileRead(@TempDir & "\SHA1ChecksumURL")
FileClose($GetSHA1ChecksumURL)
FileDelete(@TempDir & "\SHA1ChecksumURL") ;Clean
$StringSHA1ChecksumURL = _splitInfo($GetSHA1ChecksumURL, "SHA1 Checksum\: ([^*]*?)What\'s this\?", 1)
$StringSHA1Checksum = _splitInfo($StringSHA1ChecksumURL, "\> ([^*]*?) \<", 1)
$UpdateUSBWiiflowRelease = StringRegExpReplace($StringCurrentUSBWiiflowVersion, "_|svn", "")

;==============Pugins
Global $GCWiiFlowPlugInsUpdate[6][3]
FileDelete(@TempDir & "\USBWiiflowupdatePlugins.xml")
Local $hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/", @TempDir & "\USBWiiflowupdatePlugins.xml", 1, 1) ;Download Header
Do
Sleep(250)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)

$GetCurrentUSBWiiflowPlugIns = FileRead(@TempDir & "\USBWiiflowupdatePlugins.xml")
FileClose($GetCurrentUSBWiiflowPlugIns)
FileDelete(@TempDir & "\USBWiiflowupdatePlugins.xml") ;Clean

$fceugxCurrentWiiflow = _splitInfo($GetCurrentUSBWiiflowPlugIns, 'fceugx([^*]*?)\"\>fceugx', 1)
$fceugxCurrentWiiflowURL = "http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/fceugx" & $fceugxCurrentWiiflow
$GCWiiFlowPlugInsUpdate[0][0] = $fceugxCurrentWiiflowURL
$GCWiiFlowPlugInsUpdate[0][1] = "fceugx" & $fceugxCurrentWiiflow

$genplusgxCurrentWiiflow = _splitInfo($GetCurrentUSBWiiflowPlugIns, 'genplusgx([^*]*?)\"\>genplusgx', 1)
$genplusgxCurrentWiiflowURL = "http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/genplusgx" & $genplusgxCurrentWiiflow
$GCWiiFlowPlugInsUpdate[1][0] = $genplusgxCurrentWiiflowURL
$GCWiiFlowPlugInsUpdate[1][1] = "genplusgx" & $genplusgxCurrentWiiflow

$scummvmCurrentWiiflow = _splitInfo($GetCurrentUSBWiiflowPlugIns, 'scummvm([^*]*?)\"\>scummvm', 1)
$scummvmCurrentWiiflowURL = "http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/scummvm" & $scummvmCurrentWiiflow
$GCWiiFlowPlugInsUpdate[2][0] = $scummvmCurrentWiiflowURL
$GCWiiFlowPlugInsUpdate[2][1] = "scummvm" & $scummvmCurrentWiiflow

$snes9xgxCurrentWiiflow = _splitInfo($GetCurrentUSBWiiflowPlugIns, 'snes9xgx([^*]*?)\"\>snes9xgx', 1)
$snes9xgxCurrentWiiflowURL = "http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/snes9xgx" & $snes9xgxCurrentWiiflow
$GCWiiFlowPlugInsUpdate[3][0] = $snes9xgxCurrentWiiflowURL
$GCWiiFlowPlugInsUpdate[3][1] = "snes9xgx" & $snes9xgxCurrentWiiflow

$vbagxCurrentWiiflow = _splitInfo($GetCurrentUSBWiiflowPlugIns, 'vbagx([^*]*?)\"\>vbagx', 1)
$vbagxCurrentWiiflowURL = "http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/vbagx" & $vbagxCurrentWiiflow
$GCWiiFlowPlugInsUpdate[4][0] = $vbagxCurrentWiiflowURL
$GCWiiFlowPlugInsUpdate[4][1] = "vbagx" & $vbagxCurrentWiiflow

$wii64CurrentWiiflow = _splitInfo($GetCurrentUSBWiiflowPlugIns, 'wii64([^*]*?)\"\>wii64', 1)
$wii64CurrentWiiflowURL = "http://open-wiiflow-mod.googlecode.com/svn/branches/Plugins/Binaries/wii64" & $wii64CurrentWiiflow
$GCWiiFlowPlugInsUpdate[5][0] = $wii64CurrentWiiflowURL
$GCWiiFlowPlugInsUpdate[5][1] = "wii64" & $wii64CurrentWiiflow
;===========End

ConsoleWrite(@LF & _
"- Release : " & $UpdateUSBWiiflowRelease & @LF & _
"- URL : " & $UpdateUSBWiiflowURL & @LF & _
"- USBWiiflow SHA1 Checksum : " & $StringSHA1Checksum & @LF)

DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\Languages")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\boxcovers")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\covers")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\trailers")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\fanart")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\help")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\settings")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\themes")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\plugins")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\vbagx\roms")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\snes9xgx\roms")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\wii64\roms")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\fceugx\roms")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\genplus\roms")
DirCreate($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\scummvm\roms")
DirCreate($SaveCurrentUSBWiiflow & "\wad")

$SplitCurrentUSBWiiflow = StringSplit("arab.ini|brazilian.ini|chinese_s.ini|chinese_t.ini|danish.ini|dutch.ini|english.ini|finnish.ini|" & _
"french.ini|gallego.ini|german.ini|hungarian.ini|italian.ini|japanese.ini|norwegian.ini|" & _
"polish.ini|portuguese.ini|russian.ini|spanish.ini|swedish.ini|tagalog.ini|turkish.ini", "|")

For $ilWiiflow = 1 To $SplitCurrentUSBWiiflow[0]
Local $hDownloadSize = InetGetSize("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/" & $SplitCurrentUSBWiiflow[$ilWiiflow], 3)
Local $hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/" & $SplitCurrentUSBWiiflow[$ilWiiflow], _
$SaveCurrentUSBWiiflow & "\Wiiflow\Languages\" & $SplitCurrentUSBWiiflow[$ilWiiflow], 1, 1)

Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & "  " & $SplitCurrentUSBWiiflow[$ilWiiflow] & "        |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)
Until $aInfo[2]
InetClose($hDownload)
$CurrentUSBWiiflowSize += FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\Languages\" & $SplitCurrentUSBWiiflow[$ilWiiflow])
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\Languages\" & $SplitCurrentUSBWiiflow[$ilWiiflow]))
Next

$hDownloadSize = InetGetSize("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/fanart/GAMEID.ini")
$hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/fanart/GAMEID.ini", _
$SaveCurrentUSBWiiflow & "\Wiiflow\fanart\GAMEID.ini", 1, 1)
Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " (fanart : GAMEID.ini)         |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)
Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\fanart\GAMEID.ini"))
$CurrentUSBWiiflowSize += FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\fanart\GAMEID.ini")



$hDownloadSize = InetGetSize("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/english.txt")
$hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/english.txt", _
$SaveCurrentUSBWiiflow & "\Wiiflow\help\english.txt", 1, 1)
Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " (help : english.txt)         |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)
Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\help\english.txt"))
$CurrentUSBWiiflowSize += FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\help\english.txt")


$hDownloadSize = InetGetSize("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/settings/gameconfig1.ini")
$hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/settings/gameconfig1.ini", _
$SaveCurrentUSBWiiflow & "\Wiiflow\settings\gameconfig1.ini", 1, 1)
Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " (settings : gameconfig1.ini)         |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)
Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\settings\gameconfig1.ini"))
$CurrentUSBWiiflowSize += FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\settings\gameconfig1.ini")

$hDownloadSize = InetGetSize("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/settings/gameconfig2.ini")
$hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/settings/gameconfig2.ini", _
$SaveCurrentUSBWiiflow & "\Wiiflow\settings\gameconfig2.ini", 1, 1)
Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " (settings : gameconfig2.ini)         |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)
Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\settings\gameconfig2.ini"))
$CurrentUSBWiiflowSize += FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\settings\gameconfig2.ini")

$hDownloadSize = InetGetSize("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/themes/default.ini")
$hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/themes/default.ini", _
$SaveCurrentUSBWiiflow & "\Wiiflow\themes\default.ini", 1, 1)
Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " (themes : default.ini)         |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)
Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\themes\default.ini"))
$CurrentUSBWiiflowSize += FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\themes\default.ini")

$SplitTitleCurrentUSBWiiflow = StringSplit("EN|FR|DE|ES|IT|NL|PT|RU|JA|KO|ZHCN|ZHTW", "|")

For $iTWiiflow = 1 To $SplitTitleCurrentUSBWiiflow[0]

$hDownloadSize = InetGetSize("http://www.gametdb.com/titles.txt?LANG=" & $SplitTitleCurrentUSBWiiflow[$iTWiiflow])
$hDownload = InetGet("http://www.gametdb.com/titles.txt?LANG=" & $SplitTitleCurrentUSBWiiflow[$iTWiiflow], _
$SaveCurrentUSBWiiflow & "\Wiiflow\settings\" & $SplitTitleCurrentUSBWiiflow[$iTWiiflow] & "custom_titles.ini", 1, 1)

Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " " & $SplitTitleCurrentUSBWiiflow[$iTWiiflow] & "custom_titles.ini         |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)
Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\settings\" & $SplitTitleCurrentUSBWiiflow[$iTWiiflow] & "custom_titles.ini"))
$CurrentUSBWiiflowSize += FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\settings\" & $SplitTitleCurrentUSBWiiflow[$iTWiiflow] & "custom_titles.ini")
If $SplitTitleCurrentUSBWiiflow[$iTWiiflow] = GUICtrlRead($HomebrewTypeBootDOLLanguage) Then _
FileCopy($SaveCurrentUSBWiiflow & "\Wiiflow\settings\" & $SplitTitleCurrentUSBWiiflow[$iTWiiflow] & "custom_titles.ini", $SaveCurrentUSBWiiflow & "\Wiiflow\settings\custom_titles.ini", 9)
Next

GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " Boot.dol         |         " & $UpdateUSBWiiflowURL)

$DownloadCurrentUSBWiiflowSize = InetGetSize($UpdateUSBWiiflowURL)
$DownloadCurrentUSBWiiflow = InetGet($UpdateUSBWiiflowURL, $SaveCurrentUSBWiiflow & "\" & StringRegExpReplace($UpdateUSBWiiflowURL, "^.*/(.*)$", "$1"), 1, 1)
$CurrentUSBWiiflowSize += $DownloadCurrentUSBWiiflowSize

Do
$aInfo = InetGetInfo($DownloadCurrentUSBWiiflow)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $DownloadCurrentUSBWiiflowSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & "         |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
Sleep(250)
Until $aInfo[2]
InetClose($DownloadCurrentUSBWiiflow)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\" & StringRegExpReplace($UpdateUSBWiiflowURL, "^.*/(.*)$", "$1")))
GUICtrlSetData($CurrentUSBWiiflowState, "Successfully Downloaded         |         SHA1 Checksum: " & $StringSHA1Checksum)

Local $sReadSHA1 = $SaveCurrentUSBWiiflow & "\" & StringRegExpReplace($UpdateUSBWiiflowURL, "^.*/(.*)$", "$1")
If StringStripWS($sReadSHA1, 8) <> "" And FileExists($sReadSHA1) Then
Local $bHash = _Crypt_HashFile($sReadSHA1, $CALG_SHA1)
ConsoleWrite("- Found USBWiiflow SHA1 Checksum: " & $bHash & @CRLF & "- Inter USBWiiflow SHA1 Checksum: 0x" & $StringSHA1Checksum)

If $bHash = "0x" & $StringSHA1Checksum Then
$ReturnCurrentUSBWiiflowURL = "Wiiflow Mod " & $UpdateUSBWiiflowRelease & " Successfully Downloaded and verified         |         SHA1 Checksum: " & $StringSHA1Checksum & "         |         " & _
StringFormat("%.2f", Round(_Timer_Diff($startGeneratetime) / 1000, 2)) & " Seconds"
GUICtrlSetData($CurrentUSBWiiflowState, $ReturnCurrentUSBWiiflowURL)
Else
$ReturnCurrentUSBWiiflowURL = "Wiiflow Mod " & $UpdateUSBWiiflowRelease & " already exists but it failed SHA1 verification.         |         SHA1 Checksum: " & $StringSHA1Checksum
GUICtrlSetData($CurrentUSBWiiflowState, $ReturnCurrentUSBWiiflowURL)
EndIf
Else
$ReturnCurrentUSBWiiflowURL = "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " Failed !         |         SHA1 Checksum: " & $StringSHA1Checksum
GUICtrlSetData($CurrentUSBWiiflowState, $ReturnCurrentUSBWiiflowURL)
EndIf

;==============> download Plugins

For $iDowPlugin = 0 To 5
$hDownloadSize = InetGetSize($GCWiiFlowPlugInsUpdate[$iDowPlugin][0])
$hDownload = InetGet($GCWiiFlowPlugInsUpdate[$iDowPlugin][0], $SaveCurrentUSBWiiflow & "\Wiiflow\plugins\" & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1], 1, 1)
$CurrentUSBWiiflowSize += $hDownloadSize

Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " Plugins (" & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1] & ")        |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)

Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\" & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1]))

If StringInStr($GCWiiFlowPlugInsUpdate[$iDowPlugin][1], "fceugx") <> 0 Then
$CurrentPluginFile = FileOpen($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\fceugx.ini", 2)
FileWrite($CurrentPluginFile, '[PLUGIN]' & @CRLF & _
'magic=46434555' & @CRLF & _
'coverColor=ff0000' & @CRLF & _
'coverFolder=fceugx' & @CRLF & _
'fileTypes=.nes|.fds|.nsf|.unf|.nez|.unif|.zip|.7z' & @CRLF & _
'romDir=Wiiflow\plugins\fceugx/roms' & @CRLF & _
'dolFile=' & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1] & @CRLF & _
'bannerSound=nes.ogg' & @CRLF & _
'displayname=FCEUltraGX' & @CRLF & _
'ReturnLoader=yes')
FileClose($CurrentPluginFile)
ElseIf StringInStr($GCWiiFlowPlugInsUpdate[$iDowPlugin][1], "genplusgx") <> 0 Then
$CurrentPluginFile = FileOpen($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\genplus-gx.ini", 2)
FileWrite($CurrentPluginFile, '[PLUGIN]' & @CRLF & _
'magic=53454741' & @CRLF & _
'coverColor=000000' & @CRLF & _
'coverFolder=genplusgx' & @CRLF & _
'fileTypes=.gen|.md|.zip' & @CRLF & _
'romDir=Wiiflow\plugins\genplus/roms' & @CRLF & _
'dolFile=' & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1] & @CRLF & _
'bannerSound=sega.ogg' & @CRLF & _
'displayname=GenPlusGX' & @CRLF & _
'ReturnLoader=yes')
FileClose($CurrentPluginFile)
ElseIf StringInStr($GCWiiFlowPlugInsUpdate[$iDowPlugin][1], "scummvm") <> 0 Then
$CurrentPluginFile = FileOpen($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\scummvm_plugin.ini", 2)
FileWrite($CurrentPluginFile, '[PLUGIN]' & @CRLF & _
'magic=5343564D' & @CRLF & _
'coverColor=fcff00' & @CRLF & _
'coverFolder=scummvm' & @CRLF & _
'fileTypes=' & @CRLF & _
'romDir=scummvm.ini' & @CRLF & _
'dolFile=' & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1] & @CRLF & _
'bannerSound=' & @CRLF & _
'displayname=ScummVM' & @CRLF & _
'ReturnLoader=yes')
FileClose($CurrentPluginFile)
ElseIf StringInStr($GCWiiFlowPlugInsUpdate[$iDowPlugin][1], "snes9x") <> 0 Then
$CurrentPluginFile = FileOpen($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\snes9x-gx.ini", 2)
FileWrite($CurrentPluginFile, '[PLUGIN]' & @CRLF & _
'magic=534e4553' & @CRLF & _
'coverColor=01a300' & @CRLF & _
'coverFolder=snes9xgx' & @CRLF & _
'fileTypes=.smc|.fig|.sfc|.swc|.zip|.7z' & @CRLF & _
'romDir=Wiiflow\plugins\snes9xgx/roms' & @CRLF & _
'dolFile=' & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1] & @CRLF & _
'bannerSound=snes.ogg' & @CRLF & _
'displayname=SNES9xGX' & @CRLF & _
'ReturnLoader=yes')
FileClose($CurrentPluginFile)

ElseIf StringInStr($GCWiiFlowPlugInsUpdate[$iDowPlugin][1], "vbagx") <> 0 Then
$CurrentPluginFile = FileOpen($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\vbagx.ini", 2)
FileWrite($CurrentPluginFile, '[PLUGIN]' & @CRLF & _
'magic=56424158' & @CRLF & _
'coverColor=fcff00' & @CRLF & _
'coverFolder=vbagx' & @CRLF & _
'fileTypes=.agb|.gba|.bin|.elf|.mb|.dmg|.gb|.gbc|.cgb|.sgb|.zip|.7z' & @CRLF & _
'romDir=Wiiflow\plugins\vbagx/roms' & @CRLF & _
'dolFile=' & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1] & @CRLF & _
'bannerSound=gba.ogg' & @CRLF & _
'displayname=VbaGX' & @CRLF & _
'ReturnLoader=yes')
FileClose($CurrentPluginFile)

ElseIf StringInStr($GCWiiFlowPlugInsUpdate[$iDowPlugin][1], "wii64") <> 0 Then
$CurrentPluginFile = FileOpen($SaveCurrentUSBWiiflow & "\Wiiflow\plugins\wii64.ini", 2)
FileWrite($CurrentPluginFile, '[PLUGIN]' & @CRLF & _
'magic=57493634' & @CRLF & _
'coverColor=ffffff' & @CRLF & _
'coverFolder=wii64' & @CRLF & _
'fileTypes=.n64|.v64|.z64|.zip' & @CRLF & _
'romDir=Wiiflow\plugins\wii64/roms' & @CRLF & _
'dolFile=' & $GCWiiFlowPlugInsUpdate[$iDowPlugin][1] & @CRLF & _
'bannerSound=n64.ogg' & @CRLF & _
'displayname=Wii64' & @CRLF & _
'ReturnLoader=yes')
FileClose($CurrentPluginFile)
EndIf
Next

$hDownloadSize = InetGetSize("http://open-wiiflow-mod.googlecode.com/svn/branches/WiiFLowLoader/WiiFlowLoaderChannel - WIIH.wad")
$hDownload = InetGet("http://open-wiiflow-mod.googlecode.com/svn/branches/WiiFLowLoader/WiiFlowLoaderChannel - WIIH.wad", $SaveCurrentUSBWiiflow & "\wad\WiiFlowLoaderChannel - WIIH.wad", 1, 1)
$CurrentUSBWiiflowSize += $hDownloadSize
Do
$aInfo = InetGetInfo($hDownload)
$iPercent = StringFormat("%.2f", Round($aInfo[0] / $hDownloadSize * 100, 2))
GUICtrlSetData($CurrentUSBWiiflowState, "Download : Wiiflow Mod " & $UpdateUSBWiiflowRelease & " Plugins (WiiFlowLoaderChannel - WIIH.wad)        |         Size: " & _FormatFileSize($aInfo[1]) & "         |         Downloaded: " & _
_FormatFileSize($aInfo[0]) & " / " & _FormatFileSize($aInfo[1]) & "         |         Percent: " & $iPercent & "% ")
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransfered, _FormatFileSize(GUICtrlRead($HomebrewListViewTransferedUnformated) + $aInfo[0]))
Sleep(250)

Until $aInfo[2]
InetClose($hDownload)
If $CurrentUSBWiiflow_ListN > -1 Then GUICtrlSetData($HomebrewListViewTransferedUnformated, GUICtrlRead($HomebrewListViewTransferedUnformated) + FileGetSize($SaveCurrentUSBWiiflow & "\wad\WiiFlowLoaderChannel - WIIH.wad"))

;<============== download Plugins

$ReturnCurrentUSBWiiflowURL = "Wiiflow Mod " & $UpdateUSBWiiflowRelease & " (Mega Pack) Successfully Downloaded and verified         |         " & _
StringFormat("%.2f", Round(_Timer_Diff($startGeneratetime) / 1000, 2)) & " Seconds"
GUICtrlSetData($CurrentUSBWiiflowState, $ReturnCurrentUSBWiiflowURL)

Return $ReturnCurrentUSBWiiflowURL
EndFunc   ;==>_CurrentUSBWiiflowURL

Func _splitInfo($Mainstring, $Childstring, $ReturnT = 0)
$Arraystring = StringRegExp($Mainstring, $Childstring, 3)
If IsArray($Arraystring) Then
If $ReturnT = 0 Then
Return $Arraystring
Else
Return StringRegExpReplace($Arraystring[0], '  ', '')
EndIf
Else
Return ""
EndIf
EndFunc   ;==>_splitInfo

Func _FormatFileSize($sFunc_Size = 0)
Local $sFS = ""
If $sFunc_Size < 1000 Then
$sFS = $sFunc_Size & " B"
ElseIf $sFunc_Size > 1000000000 Then
$sFS = StringFormat("%.2f", Round($sFunc_Size / 1000000000, 2)) & " Gb"
ElseIf $sFunc_Size > 1000000 Then
$sFS = StringFormat("%.2f", Round($sFunc_Size / 1000000, 2)) & " Mb"
ElseIf $sFunc_Size > 1000 Then
$sFS = StringFormat("%.2f", Round($sFunc_Size / 1000, 2)) & " Kb"
EndIf
Return $sFS
EndFunc   ;==>_FormatFileSize

EDIT:
@FIX94 Are You Planning to upload Plugins Sounds :)
 
with this installer you will always get the latest updated version. (Languages/Wiiflow Rev / Plugins / WiiFlowLoaderChannel - WIIH.wad / title.ini / .. )
Download all files from http://code.google.com/p/open-wiiflow-mod/ (except title.ini (GameTDB.com))

Here code to get Files from MediaFire, but It would be better if i can download "plugin banner sound" from http://code.google.com/p/open-wiiflow-mod/ ;)

Code:
Func _MediaFireURL($MediaFLink)
FileDelete(@TempDir & "\MediaFireURL") ;Clean
Local $hDownload = InetGet($MediaFLink, @TempDir & "\MediaFireURL", 1, 1) ;Download Header
Do
Sleep(250)
Until InetGetInfo($hDownload, 2) ; Check if the download is complete.
InetClose($hDownload) ; Close the handle to release resources.

$GetMediaFireURL = FileRead(@TempDir & "\MediaFireURL") ; Read MediaFire Header.
FileClose($GetMediaFireURL)
FileDelete(@TempDir & "\MediaFireURL") ;Clean

$StringMediaFireURL = _splitInfo($GetMediaFireURL, 'class\=\"download\_file\_title\"\> ([^*]*?)dlFileSize', 1); Split Download Infos from Header
$SplitStringMediaFireURL = StringSplit($StringMediaFireURL, 'http://', 1) ; Split Download URL from Header
If $SplitStringMediaFireURL[0] >= 3 Then
$ExplodeStringMediaFireURL = StringSplit($SplitStringMediaFireURL[3], '" onclick=', 1)
If $ExplodeStringMediaFireURL[0] >= 1 Then
$URLMediaFireURL = "http://" & $ExplodeStringMediaFireURL[1] ; Clean Download URL
Return $URLMediaFireURL ; Here is the Real URL
Else
Return "0" ; Failed
EndIf
Else
Return "0" ; Failed
EndIf
EndFunc   ;==>_MediaFireURL
 
I still like to see some stuff added, one thing is the opportunity to choose where you want to have the folders for your roms, other thing is: its not clear when the download is finished, it would be nice to get a message when it is done and a "close" button.
 
  • Like
Reactions: 1 person
was'nt really meant to put you down, just noticing the obvious :P
You are always welcome ;)

I still like to see some stuff added, one thing is the opportunity to choose where you want to have the folders for your roms, other thing is: its not clear when the download is finished, it would be nice to get a message when it is done and a "close" button.

It's a great idea ;)

EDIT:
30 Min and I'll upload the new version with Etheboss idea ;)
Any other idea..
 
Thanks E works now.
*I have a suggestion regarding shotcuts:
since we have 5 modes and 4 buttons why not make "up" go to homebrew in "Wii mode" and to "Wii mode" in other modes
this way you boot wiiflow in Wii mode by default and you have a quick access to all other modes using shortcuts.
Edit: another option will be to add a dedicated button for homebrew mode and keep current shortcuts as is

Another thing, Nand emulation was always working for me from usb/fat32 nand all I had to do is copy cert.sys to sys folder, now with latest rev I can't boot wiiware anymore

Thanks
:)
 

Site & Scene News

Popular threads in this forum