Nah, this is Kickass homebrew for 9.2 and below instead!Is this the kickass piracy over 9.2?
9.4 v has already exploits that can use cfw?tested on 9.4
can this be the glorious 9.9 kernel we've been dying for? or at least a downgrade?tested on 9.4
for now:
can launch the SYSNAND with no sig checks,
can downgrade MSET
--------------------- MERGED ---------------------------
OK, thanks, please @exelix11 add that to YATA+
why?
yeah, why not?Excellent software ! No more need of CHMM2.
Is it possible to have a manual theme arrangement feature in next release ?
I prefer to order my theme as i like instead of A-Z, Z-A.
This tool is AWESOME! if we get kernel acces on 9.9 I'll surelly donwload this at first. GJ!
Still on 9.9 praying lol
Is this the kickass piracy over 9.2?
Nah, this is Kickass homebrew for 9.2 and below instead!
9.4 v has already exploits that can use cfw?
I don't know why this hasn't received much atettion, this is pretty neat.
This app it's just for create theme packs for use in CFW in consoles with SYSNAND 9.2 or lowercan this be the glorious 9.9 kernel we've been dying for? or at least a downgrade?
Actually only CFWWill this work for GW or just CFW?
I explained in the OP why I am not going to use SDMH files, please read it.I'not going to add that to YATA+ ,because it's just about making a txt file, you could just add a textbox to type the name of the theme and automatically saving it, or even better, you could look for a .bin file in the theme folder and set the theme name to the bin file name by creating a temp name.txt and write inside it the name then make the theme, with a dummy icon if nedded, or you could make a smdh -> name.txt & icon.bmp converter to make those files only if they are not found
I thought about adding a smdh creator to YATA+, but there are already many ways of making those, some even faster (directly from the browser).I explained in the OP why I am not going to use SDMH files, please read it.
Also, if your tool was able to create a Icon+Txt+SDMH will be great for theme creators
I was thinking on it, but as I said, the text needs to be in UTF-8 and with AMS I can only generate ASCII text (I even replace extrage chars with the correct one via String.Replace("weird_utf8", "normal_ascii"); to read the text files. If you know a app capable to via commad line convert a ASCII text to UTF-8 let me know.I thought about adding a smdh creator to YATA+, but there are already many ways of making those, some even faster (directly from the browser).
With converting smdh files i mean doing it only the first time, like, if there is a theme with a smdh file without name.txt and icon.bmp you just dump those things from the smdh and create the files you need, so if you are reusing that theme for another cia it will have the files you need already
gotodos1 = ListBox.GetCount("Go");
if gotodos1 <= 100 and gotodos1 ~= 0 then
xButton.SetEnabled("xButton2", false);
xButton.SetEnabled("xButton3", false);
xButton.SetEnabled("xButton4", false);
ListBox.SetEnabled("Dispo", false);
ListBox.SetEnabled("Go", false);
Application.SetRedraw(false);
Plugin.SetVisible("H1", true);
Plugin.SetVisible("H2", true);
Plugin.SetVisible("H3", true);
Progress.SetVisible("Progress1", true);
Progress.SetVisible("Progress2", true);
Progress.SetCurrentPos("Progress1", 0);
Progress.SetCurrentPos("Progress2", 0);
Application.SetRedraw(true);
Label.SetVisible("HL1", true);
Label.SetText("HL2", "Preparando el entorno...");
Label.SetVisible("HL2", true);
sistema = String.SplitPath(_SystemFolder);
Folder.Create(sistema.Drive.."\\HowlingTemps");
Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT");
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\*.*", true, false, false, nil);
Zip.Extract(_SourceFolder.."\\Packages\\EURPACK.zip", {"*.*"}, sistema.Drive.."\\HowlingTemps\\HTT", true, true, "", ZIP_OVERWRITE_ALWAYS, nil);
Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp");
Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT\\cfafiletachi");
Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles");
eurtotallb = ListBox.GetCount("Go");
eurlngde=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_de.bin"
eurlngen=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_en.bin"
eurlnges=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_es.bin"
eurlngfr=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_fr.bin"
eurlngit=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_it.bin"
eurlngnl=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_nl.bin"
eurlngpt=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_pt.bin"
eurlngru=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_ru.bin"
eurgenericicon = sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.bmp"
for eurgo = 1, eurtotallb do
Progress.SetCurrentPos("Progress1", 20);
Progress.SetRange("Progress2", 0, eurtotallb);
Progress.SetCurrentPos("Progress2", eurgo);
Label.SetText("HL2", "Creando iconos ("..eurgo.."/"..eurtotallb..") ...");
eurtemponombre = ListBox.GetItemText("Go", eurgo);
eurtoload1 = ListBox.GetItemData("Go", eurgo);
eurtoload1 = String.ToNumber(eurtoload1);
eurtempodatos = ListBox.GetItemData("You", eurtoload1);
eurnombre = eurtempodatos.."\\name.txt"
ahoranum = eurgo
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngde.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngen.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlnges.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngfr.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngit.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngnl.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngpt.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngru.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.bmp", false, false, false, nil);
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.icn", false, false, false, nil);
File.Copy(eurtempodatos.."\\icon.bmp", sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.bmp", false, true, false, true, nil);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\bmp2icon.exe", "\""..eurgenericicon.."\"", sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
if eurgo >= 1 and eurgo <= 67 then
ahoranum = eurgo
elseif eurgo >= 68 and eurgo <= 92 then
ahoranum = eurgo+1
elseif eurgo >= 92 then
ahoranum = eurgo+9
end
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\icons\\"..ahoranum..".icn", false, false, false, nil);
File.Move(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.icn", sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\icons\\"..ahoranum..".icn", true, true, false, false, nil);
end
Progress.SetCurrentPos("Progress1", 40);
Progress.SetRange("Progress2", 0, eurtotallb);
Progress.SetCurrentPos("Progress2", 0);
Label.SetText("HL2", "Creando archivo de control...");
eurrsf1 = TextFile.ReadToString(sistema.Drive.."\\HowlingTemps\\HTT\\EUR.rsf");
eurrsf1 = String.Replace(eurrsf1, "**replaceme**tools/EUR/rom**", sistema.Drive.."/HowlingTemps/HTT/EUR/rom", false);
TextFile.WriteFromString(sistema.Drive.."\\HowlingTemps\\HTT\\EUR.rsf", eurrsf1, false);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\makerom.exe", "-v -f ncch -target t -rsf \""..sistema.Drive.."\\HowlingTemps\\HTT\\EUR.rsf".."\" -icon \""..sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\exe\\icon.bin".."\" -o \""..sistema.Drive.."\\HowlingTemps\\HTT\\EUR.app".."", sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
for eurgo = 1, eurtotallb do
Progress.SetCurrentPos("Progress1", 60);
Progress.SetRange("Progress2", 0, eurtotallb);
Progress.SetCurrentPos("Progress2", eurgo);
Label.SetText("HL2", "Creando temas ("..eurgo.."/"..eurtotallb..") ...");
eurtemponombre = ListBox.GetItemText("Go", eurgo);
eurtoload1 = ListBox.GetItemData("Go", eurgo);
eurtoload1 = String.ToNumber(eurtoload1);
eurtempodatos = ListBox.GetItemData("You", eurtoload1);
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\body_LZ.bin", false, false, false, nil);
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\bgm.bcstm", false, false, false, nil);
File.Copy(eurtempodatos.."\\body_LZ.bin", sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\body_LZ.bin", true, true, false, true, nil);
File.Copy(eurtempodatos.."\\bgm.bcstm", sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\bgm.bcstm", true, true, false, true, nil);
eurrsf2 = TextFile.ReadToString(sistema.Drive.."\\HowlingTemps\\HTT\\ThemeEUR1.rsf");
eurrsf2 = String.Replace(eurrsf2, "**replaceme**data/01**", sistema.Drive.."/HowlingTemps/HTT/cfatemp", false);
TextFile.WriteFromString(sistema.Drive.."\\HowlingTemps\\HTT\\ThemeEUR1.rsf", eurrsf2, false);
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\cfafiletachi\\Tema"..eurgo..".cfa", false, false, false, nil);
result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\makerom.exe", "-v -f ncch -target t -rsf \""..sistema.Drive.."\\HowlingTemps\\HTT\\ThemeEUR1.rsf".."\" -o \""..sistema.Drive.."\\HowlingTemps\\HTT\\cfafiletachi\\Tema"..eurgo..".cfa".."", sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true);
end
Application.Sleep(1000);
Progress.SetCurrentPos("Progress1", 80);
Progress.SetRange("Progress2", 0, eurtotallb);
Progress.SetCurrentPos("Progress2", 0);
Label.SetText("HL2", "Creando paquete de temas...");
eurtextocasilisto="-f cia -o paquetedetemas.cia -target t -major 1 -minor 1 -micro 0 -dlc -content EUR.app:0:0"
for eurgo = 1, eurtotallb do
eurtextocasilisto=eurtextocasilisto.." -content cfafiletachi/Tema"..eurgo..".cfa:"..eurgo..":"..eurgo..""
end
tblResult = CommandLine.Execute(sistema.Drive.."\\HowlingTemps\\HTT\\makerom.exe "..eurtextocasilisto, 0);
Label.SetVisible("showme", true);
Application.Sleep(100);
Progress.SetCurrentPos("Progress1", 100);
Progress.SetRange("Progress2", 0, eurtotallb);
Progress.SetCurrentPos("Progress2", eurtotallb);
Progress.SetVisible("Progress1", false);
Progress.SetVisible("Progress2", false);
Label.SetText("HL2", "Paquete creado. Esperando por el usuario.");
eurguardado = Dialog.FileBrowse(false, "Guardar paquete de temas", "", "Archivos CIA (*.cia)|*.cia|", "Mis Temas (EUR)", "cia", false, false);
if eurguardado[1] ~= "CANCEL" then
Label.SetText("HL2", "Salvando...");
File.Copy(sistema.Drive.."\\HowlingTemps\\HTT\\paquetedetemas.cia", eurguardado[1], true, true, false, true, nil);
Label.SetText("HL2", "Listo");
result = Dialog.Message("Howling Theme Tool", "Todo listo.", MB_OK, MB_ICONNONE, MB_DEFBUTTON1);
end
Label.SetText("HL2", "Eliminando temporales...");
sistema = String.SplitPath(_SystemFolder);
Folder.Create(sistema.Drive.."\\HowlingTemps");
Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT");
File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\*.*", true, false, false, nil);
Label.SetVisible("HL1", false);
Label.SetVisible("HL2", false);
Application.SetRedraw(false);
Plugin.SetVisible("H1", false);
Plugin.SetVisible("H2", false);
Plugin.SetVisible("H3", false);
Application.SetRedraw(true);
ListBox.SetEnabled("Dispo", true);
ListBox.SetEnabled("Go", true);
xButton.SetEnabled("xButton2", true);
xButton.SetEnabled("xButton3", true);
xButton.SetEnabled("xButton4", true);
else
result = Dialog.Message("Error", "No se puede crear un paquete de más de 100 temas", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
end
I was thinking on it, but as I said, the text needs to be in UTF-8 and with AMS I can only generate ASCII text (I even replace extrage chars with the correct one via String.Replace("weird_utf8", "normal_ascii"); to read the text files. If you know a app capable to via commad line convert a ASCII text to UTF-8 let me know.
Also, a piece of my code so everyone can understand SOME of the reasons why I do not use SDMH:
Code:gotodos1 = ListBox.GetCount("Go"); if gotodos1 <= 100 and gotodos1 ~= 0 then xButton.SetEnabled("xButton2", false); xButton.SetEnabled("xButton3", false); xButton.SetEnabled("xButton4", false); ListBox.SetEnabled("Dispo", false); ListBox.SetEnabled("Go", false); Application.SetRedraw(false); Plugin.SetVisible("H1", true); Plugin.SetVisible("H2", true); Plugin.SetVisible("H3", true); Progress.SetVisible("Progress1", true); Progress.SetVisible("Progress2", true); Progress.SetCurrentPos("Progress1", 0); Progress.SetCurrentPos("Progress2", 0); Application.SetRedraw(true); Label.SetVisible("HL1", true); Label.SetText("HL2", "Preparando el entorno..."); Label.SetVisible("HL2", true); sistema = String.SplitPath(_SystemFolder); Folder.Create(sistema.Drive.."\\HowlingTemps"); Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT"); File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\*.*", true, false, false, nil); Zip.Extract(_SourceFolder.."\\Packages\\EURPACK.zip", {"*.*"}, sistema.Drive.."\\HowlingTemps\\HTT", true, true, "", ZIP_OVERWRITE_ALWAYS, nil); Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp"); Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT\\cfafiletachi"); Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles"); eurtotallb = ListBox.GetCount("Go"); eurlngde=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_de.bin" eurlngen=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_en.bin" eurlnges=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_es.bin" eurlngfr=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_fr.bin" eurlngit=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_it.bin" eurlngnl=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_nl.bin" eurlngpt=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_pt.bin" eurlngru=sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\ContentInfoArchive_EUR_ru.bin" eurgenericicon = sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.bmp" for eurgo = 1, eurtotallb do Progress.SetCurrentPos("Progress1", 20); Progress.SetRange("Progress2", 0, eurtotallb); Progress.SetCurrentPos("Progress2", eurgo); Label.SetText("HL2", "Creando iconos ("..eurgo.."/"..eurtotallb..") ..."); eurtemponombre = ListBox.GetItemText("Go", eurgo); eurtoload1 = ListBox.GetItemData("Go", eurgo); eurtoload1 = String.ToNumber(eurtoload1); eurtempodatos = ListBox.GetItemData("You", eurtoload1); eurnombre = eurtempodatos.."\\name.txt" ahoranum = eurgo result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngde.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngen.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlnges.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngfr.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngit.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngnl.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngpt.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\desc.exe", "\""..eurtempodatos.."\\name.txt".."\" \""..eurlngru.."\" "..ahoranum, sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.bmp", false, false, false, nil); File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.icn", false, false, false, nil); File.Copy(eurtempodatos.."\\icon.bmp", sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.bmp", false, true, false, true, nil); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\bmp2icon.exe", "\""..eurgenericicon.."\"", sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); if eurgo >= 1 and eurgo <= 67 then ahoranum = eurgo elseif eurgo >= 68 and eurgo <= 92 then ahoranum = eurgo+1 elseif eurgo >= 92 then ahoranum = eurgo+9 end File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\icons\\"..ahoranum..".icn", false, false, false, nil); File.Move(sistema.Drive.."\\HowlingTemps\\HTT\\themeicontempfiles\\icon.icn", sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\rom\\icons\\"..ahoranum..".icn", true, true, false, false, nil); end Progress.SetCurrentPos("Progress1", 40); Progress.SetRange("Progress2", 0, eurtotallb); Progress.SetCurrentPos("Progress2", 0); Label.SetText("HL2", "Creando archivo de control..."); eurrsf1 = TextFile.ReadToString(sistema.Drive.."\\HowlingTemps\\HTT\\EUR.rsf"); eurrsf1 = String.Replace(eurrsf1, "**replaceme**tools/EUR/rom**", sistema.Drive.."/HowlingTemps/HTT/EUR/rom", false); TextFile.WriteFromString(sistema.Drive.."\\HowlingTemps\\HTT\\EUR.rsf", eurrsf1, false); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\makerom.exe", "-v -f ncch -target t -rsf \""..sistema.Drive.."\\HowlingTemps\\HTT\\EUR.rsf".."\" -icon \""..sistema.Drive.."\\HowlingTemps\\HTT\\EUR\\exe\\icon.bin".."\" -o \""..sistema.Drive.."\\HowlingTemps\\HTT\\EUR.app".."", sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); for eurgo = 1, eurtotallb do Progress.SetCurrentPos("Progress1", 60); Progress.SetRange("Progress2", 0, eurtotallb); Progress.SetCurrentPos("Progress2", eurgo); Label.SetText("HL2", "Creando temas ("..eurgo.."/"..eurtotallb..") ..."); eurtemponombre = ListBox.GetItemText("Go", eurgo); eurtoload1 = ListBox.GetItemData("Go", eurgo); eurtoload1 = String.ToNumber(eurtoload1); eurtempodatos = ListBox.GetItemData("You", eurtoload1); File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\body_LZ.bin", false, false, false, nil); File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\bgm.bcstm", false, false, false, nil); File.Copy(eurtempodatos.."\\body_LZ.bin", sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\body_LZ.bin", true, true, false, true, nil); File.Copy(eurtempodatos.."\\bgm.bcstm", sistema.Drive.."\\HowlingTemps\\HTT\\cfatemp\\bgm.bcstm", true, true, false, true, nil); eurrsf2 = TextFile.ReadToString(sistema.Drive.."\\HowlingTemps\\HTT\\ThemeEUR1.rsf"); eurrsf2 = String.Replace(eurrsf2, "**replaceme**data/01**", sistema.Drive.."/HowlingTemps/HTT/cfatemp", false); TextFile.WriteFromString(sistema.Drive.."\\HowlingTemps\\HTT\\ThemeEUR1.rsf", eurrsf2, false); File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\cfafiletachi\\Tema"..eurgo..".cfa", false, false, false, nil); result = File.Run(sistema.Drive.."\\HowlingTemps\\HTT\\makerom.exe", "-v -f ncch -target t -rsf \""..sistema.Drive.."\\HowlingTemps\\HTT\\ThemeEUR1.rsf".."\" -o \""..sistema.Drive.."\\HowlingTemps\\HTT\\cfafiletachi\\Tema"..eurgo..".cfa".."", sistema.Drive.."\\HowlingTemps\\HTT\\", SW_HIDE, true); end Application.Sleep(1000); Progress.SetCurrentPos("Progress1", 80); Progress.SetRange("Progress2", 0, eurtotallb); Progress.SetCurrentPos("Progress2", 0); Label.SetText("HL2", "Creando paquete de temas..."); eurtextocasilisto="-f cia -o paquetedetemas.cia -target t -major 1 -minor 1 -micro 0 -dlc -content EUR.app:0:0" for eurgo = 1, eurtotallb do eurtextocasilisto=eurtextocasilisto.." -content cfafiletachi/Tema"..eurgo..".cfa:"..eurgo..":"..eurgo.."" end tblResult = CommandLine.Execute(sistema.Drive.."\\HowlingTemps\\HTT\\makerom.exe "..eurtextocasilisto, 0); Label.SetVisible("showme", true); Application.Sleep(100); Progress.SetCurrentPos("Progress1", 100); Progress.SetRange("Progress2", 0, eurtotallb); Progress.SetCurrentPos("Progress2", eurtotallb); Progress.SetVisible("Progress1", false); Progress.SetVisible("Progress2", false); Label.SetText("HL2", "Paquete creado. Esperando por el usuario."); eurguardado = Dialog.FileBrowse(false, "Guardar paquete de temas", "", "Archivos CIA (*.cia)|*.cia|", "Mis Temas (EUR)", "cia", false, false); if eurguardado[1] ~= "CANCEL" then Label.SetText("HL2", "Salvando..."); File.Copy(sistema.Drive.."\\HowlingTemps\\HTT\\paquetedetemas.cia", eurguardado[1], true, true, false, true, nil); Label.SetText("HL2", "Listo"); result = Dialog.Message("Howling Theme Tool", "Todo listo.", MB_OK, MB_ICONNONE, MB_DEFBUTTON1); end Label.SetText("HL2", "Eliminando temporales..."); sistema = String.SplitPath(_SystemFolder); Folder.Create(sistema.Drive.."\\HowlingTemps"); Folder.Create(sistema.Drive.."\\HowlingTemps\\HTT"); File.Delete(sistema.Drive.."\\HowlingTemps\\HTT\\*.*", true, false, false, nil); Label.SetVisible("HL1", false); Label.SetVisible("HL2", false); Application.SetRedraw(false); Plugin.SetVisible("H1", false); Plugin.SetVisible("H2", false); Plugin.SetVisible("H3", false); Application.SetRedraw(true); ListBox.SetEnabled("Dispo", true); ListBox.SetEnabled("Go", true); xButton.SetEnabled("xButton2", true); xButton.SetEnabled("xButton3", true); xButton.SetEnabled("xButton4", true); else result = Dialog.Message("Error", "No se puede crear un paquete de más de 100 temas", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1); end
thanks
oh no!thanks
will use it
by the way the next version will use ImageMagik and the Windows API to create a correct icon.bmp file from the icon.png so icon.bmp will be not needed anymore
Download Forbidden
We cannot send this file to your location.
when I finish it I will release the source.I can't use it because my n3DS is on 9.9 but I would have use it for my sister's 3DS... As usual, it only works under Windows, it is a bit disappointed! I'll try it using Bootcamp soon™!
Otherwise, it is a great idea, it is really something that I find useful. (and something I was looking for when I still had my 9.2 o3DS!)
if you add 1000 icon.png and 1000 name.txt you will only have 4MB in your serveri'm not adding the icon.bmp stuff on 3dsthem.es because I have limited space