Homebrew [RELEASE] Howling Theme Tool - Create your own CIA theme packages with Custom and Official themes

exelix11

Developer
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
for now:
can launch the SYSNAND with no sig checks,
can downgrade MSET

--------------------- MERGED ---------------------------


OK, thanks, please @exelix11 add that to YATA+

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
 
  • Like
Reactions: Margen67

Chelsea_Fantasy

Someone who hates slow internet connections
OP
Member
Joined
Mar 25, 2014
Messages
1,141
Trophies
0
Age
35
XP
1,523
Country
Cuba
why?
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.
yeah, why not?
anyway, you can add then in the order you want and have then in the way you like without need to wait for the next release
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.
can this be the glorious 9.9 kernel we've been dying for? or at least a downgrade?
This app it's just for create theme packs for use in CFW in consoles with SYSNAND 9.2 or lower
About the CFW, I am trying to make a CFW for 9.3 to 10.1 but the only progress I have it's the ability to downgrade MSET (similar to rxTools) and the ability to replace some other titles. Also I am able to boot a partial CFW in SYSNAND, but I do know why only some of the things I patch in ARM9 are patched (2/8)
Will this work for GW or just CFW?
Actually only CFW
If gateway patches the dlc's integrity check, may work in GW.
Also, I will try to xorpad the control app but not the themes to see if they work, but I doubt it.
 

Chelsea_Fantasy

Someone who hates slow internet connections
OP
Member
Joined
Mar 25, 2014
Messages
1,141
Trophies
0
Age
35
XP
1,523
Country
Cuba
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 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 :grog:
 
  • Like
Reactions: Margen67

exelix11

Developer
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
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 :grog:
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
 
  • Like
Reactions: Margen67

Chelsea_Fantasy

Someone who hates slow internet connections
OP
Member
Joined
Mar 25, 2014
Messages
1,141
Trophies
0
Age
35
XP
1,523
Country
Cuba
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
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
 
Last edited by Chelsea_Fantasy,
  • Like
Reactions: Margen67

exelix11

Developer
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
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

Looks like this can: http://superuser.com/questions/69091/batch-change-encoding-ascii-files-from-utf-8-to-iso-8859-1
 
  • Like
Reactions: Margen67

Chelsea_Fantasy

Someone who hates slow internet connections
OP
Member
Joined
Mar 25, 2014
Messages
1,141
Trophies
0
Age
35
XP
1,523
Country
Cuba
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

--------------------- MERGED ---------------------------

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
oh no!
sourceforge haves my country in black list

Download Forbidden
We cannot send this file to your location.

I need you to send me the file, please PM me.

--------------------- MERGED ---------------------------

@exelix11 do not worry about sourceforge
I found a mirror:
http://www.mirrorservice.org/sites/...b/sourceforge/g/gn/gnuwin32/libiconv/1.9.2-1/
 

Ekaitz

Redhead Believer
Member
Joined
Jun 13, 2010
Messages
608
Trophies
0
XP
441
Country
France
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!)
 
  • Like
Reactions: Margen67

Chelsea_Fantasy

Someone who hates slow internet connections
OP
Member
Joined
Mar 25, 2014
Messages
1,141
Trophies
0
Age
35
XP
1,523
Country
Cuba
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!)
when I finish it I will release the source.
it's all lua, calling some extra apps via command line.
you can try to make a port if you want, but you will need to re-write the apps I am using via command line

a recommendation: never shell a exploitable console, you will regret

I'm glad you found my app usefull!
 
Last edited by Chelsea_Fantasy,
  • Like
Reactions: Margen67

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BigOnYa @ BigOnYa: Ok good chatting, I'm off to the bar, to shoot some pool, nighty night. +1