[EDIT]
If you're gonna build it yourself:
- Before you start go into c:\devkitpro
- Rename your current libctru folder to something like, libctru_current
- Now build and install your ctrulib commit b6e0555
- Then build your HBL (You need to have 3ds_portlibs zlib installed)
- When done, go back to c:\devkitpro
- Rename your libctru to libctru_hbl or something
- Rename your libctru_current back to libctru
@DjoeN can you please clarify how to install cygwin in "develop mode"? several minutes of googling yielded nothing, i think this might be a language barrier (is it called something else in other languages?)
@DjoeN can you please clarify how to install cygwin in "develop mode"? several minutes of googling yielded nothing, i think this might be a language barrier (is it called something else in other languages?)
When you try to install Cygwin, it will list a lot of packages. One of them is developer, make sure you mark that as install. Beware though that the installation takes a LOT of time. Like an hour or something
Just let's call it "Homebrew Launcher Upstream"
- This build HBL v1.1.1 (needed for HumbleHax i think) cause it supports mmap
Code:
@echo off
cls
%~d0
cd %~dp0
Title = Homebrew Launcher upstream...
if exist "Homebrew_Launcher_upstream" (
echo Making a backup of your current 3ds_hb_menu folder
xcopy "3ds_hb_menu\*" "Backups_Compiles\Backup_3ds_hb_menu" /e /i /y >nul
ren Homebrew_Launcher_upstream 3ds_hb_menu
cls
cd 3ds_hb_menu
Title = Building Homebrew Launcher upstream ^(Update^)...
echo Updating repo...
git pull origin master
git submodule update --init --recursive
) else (
Title = Building Homebrew Launcher upstream ^(Clone^)...
echo Cloning repo...
git clone --recursive https://github.com/smealum/3ds_hb_menu -b libctru-upstream
cd 3ds_hb_menu
)
echo Building...
Title = Building Homebrew Launcher upstream ^(Clean^)...
make clean
Title = Building Homebrew Launcher upstream ^(Release^)...
make
Title = Building Homebrew Launcher upstream ^(Done^)
echo.
echo ############################################
cd %~dp0
ren 3ds_hb_menu Homebrew_Launcher_upstream
color A
echo Done. Files are in the "Homebrew_Launcher_upstream" folder.
echo.
echo Press any key to continue ...
Pause >nul
exit
Just let's call it "Homebrew Launcher Upstream"
- This build HBL v1.1.1 (needed for HumbleHax i think) cause it supports mmap
Code:
@echo off
cls
%~d0
cd %~dp0
Title = Homebrew Launcher upstream...
if exist "Homebrew_Launcher_upstream" (
echo Making a backup of your current 3ds_hb_menu folder
xcopy "3ds_hb_menu\*" "Backups_Compiles\Backup_3ds_hb_menu" /e /i /y >nul
ren Homebrew_Launcher_upstream 3ds_hb_menu
cls
cd 3ds_hb_menu
Title = Building Homebrew Launcher upstream ^(Update^)...
echo Updating repo...
git pull origin master
git submodule update --init --recursive
) else (
Title = Building Homebrew Launcher upstream ^(Clone^)...
echo Cloning repo...
git clone --recursive https://github.com/smealum/3ds_hb_menu -b libctru-upstream
cd 3ds_hb_menu
)
echo Building...
Title = Building Homebrew Launcher upstream ^(Clean^)...
make clean
Title = Building Homebrew Launcher upstream ^(Release^)...
make
Title = Building Homebrew Launcher upstream ^(Done^)
echo.
echo ############################################
cd %~dp0
ren 3ds_hb_menu Homebrew_Launcher_upstream
color A
echo Done. Files are in the "Homebrew_Launcher_upstream" folder.
echo.
echo Press any key to continue ...
Pause >nul
exit
It just makes sure it builds with latest ctrulib
Homebrew Launcher v1.1.1 never got an official release and you could not build it with ctrulibs older then 2016-04-09
That's already what we have been doing with the original one. But no that doesn't seem to be the issue right now. I noticed that it cleans some files if you run make clean after the build is complete, but not everything. The way to properly build this is also not correct in the bat, and I don't know how to fix this yet.
Maybe a little extra, so we know what version we are using. (It's just cosmetic )
Code:
@echo off
:TYPE
Title = ALL-IN-ONE v1.6...
cls
ECHO .......................................
ECHO . 3DS All in One Build Main Menu v1.6 .
ECHO .......................................
Wow this works! Thanks for the info. I never knew about it. I'll add it in the next update. I'm wondering if I should add this for everything and remove "make clean"
Maybe a little extra, so we know what version we are using. (It's just cosmetic )
Code:
@echo off
:TYPE
Title = ALL-IN-ONE v1.6...
cls
ECHO .......................................
ECHO . 3DS All in One Build Main Menu v1.6 .
ECHO .......................................
:AURORA
cls
Title = Building arm9loaderhax...
ECHO ...........................................................
ECHO . Aurora's A9LH Menu. Which Build do you want to compile? .
ECHO ...........................................................
ECHO.
ECHO A - Screeninit
ECHO B - No Screeninit
ECHO C - Return to Arm9loaderhax Menu
ECHO D - Return to Main Menu
ECHO E - EXIT Program
ECHO.
choice /C ABCDE /M "Enter the letter of your choice:"
IF ERRORLEVEL 5 exit
IF ERRORLEVEL 4 GOTO TYPE
IF ERRORLEVEL 3 GOTO A9LH
IF ERRORLEVEL 2 GOTO NOINIT
IF ERRORLEVEL 1 GOTO INIT
Code:
:AURORA
cls
if exist "A9LH-AURORA" (
echo Making a backup of your current A9LH-AUR-init folder
xcopy "A9LH-AURORA\*" "Backups_Compiles\Backup_A9LH-AURORA" /e /i /y >nul
Timeout /t 1 /nobreak >nul
ren A9LH-AURORA arm9loaderhax
cd arm9loaderhax
Title = Building A9LH-AURORA ^(Update^)...
echo Updating repo...
git pull origin master
git submodule update --init --recursive
) else (
Title = Building A9LH-AURORA ^(Clone^)...
echo Cloning repo...
git clone --recursive https://github.com/AuroraWright/arm9loaderhax.git
cd arm9loaderhax
)
set PATH=c:\Python27\;%PATH%
echo Building...
Title = Building A9LH-AURORA ^(Clean^)...
make clean
Title = Building A9LH-AURORA ^(Release^)...
make all
Title = Building A9LH-AURORA ^(Done^)
echo.
echo ##################################################
color A
cd ..
ren arm9loaderhax A9LH-AURORA
echo Done. Files are in the "A9LH-AURORA/out" folder. && echo Press any key to continue ...
Pause >nul
GOTO END
:AURORA
cls
Title = Building arm9loaderhax...
ECHO ...........................................................
ECHO . Aurora's A9LH Menu. Which Build do you want to compile? .
ECHO ...........................................................
ECHO.
ECHO A - Screeninit
ECHO B - No Screeninit
ECHO C - Return to Arm9loaderhax Menu
ECHO D - Return to Main Menu
ECHO E - EXIT Program
ECHO.
choice /C ABCDE /M "Enter the letter of your choice:"
IF ERRORLEVEL 5 exit
IF ERRORLEVEL 4 GOTO TYPE
IF ERRORLEVEL 3 GOTO A9LH
IF ERRORLEVEL 2 GOTO NOINIT
IF ERRORLEVEL 1 GOTO INIT
Code:
:AURORA
cls
if exist "A9LH-AURORA" (
echo Making a backup of your current A9LH-AUR-init folder
xcopy "A9LH-AURORA\*" "Backups_Compiles\Backup_A9LH-AURORA" /e /i /y >nul
Timeout /t 1 /nobreak >nul
ren A9LH-AURORA arm9loaderhax
cd arm9loaderhax
Title = Building A9LH-AURORA ^(Update^)...
echo Updating repo...
git pull origin master
git submodule update --init --recursive
) else (
Title = Building A9LH-AURORA ^(Clone^)...
echo Cloning repo...
git clone --recursive https://github.com/AuroraWright/arm9loaderhax.git
cd arm9loaderhax
)
set PATH=c:\Python27\;%PATH%
echo Building...
Title = Building A9LH-AURORA ^(Clean^)...
make clean
Title = Building A9LH-AURORA ^(Release^)...
make all
Title = Building A9LH-AURORA ^(Done^)
echo.
echo ##################################################
color A
cd ..
ren arm9loaderhax A9LH-AURORA
echo Done. Files are in the "A9LH-AURORA/out" folder. && echo Press any key to continue ...
Pause >nul
GOTO END
Some things i use and think some may find also usefull:
So as you know some homebrew compiles with latest libctru, some don't (you need an older libctru build for that)
IF somebody has an easier solution or has a setup that doesn't need what i did below, just post it in this thread
First:
When stuff like Decrypt9WIP etc... compiles fine:
Make a copy of your current libctru folder to "libctru_old"
Run AIO and install latest ctrulib by smea
What now:
What i used to do -> when i would like to build "Decrypt9" for example i go to c:\devkitPro and rename "libctru" -> "libctru_new" and "libctru_old" to "libctru" and vica versa.
You can understand i got tired of this quickly
So some time ago i wrote a little batch for that and added a check in the build scripts to see what libctru version is the active one. (Yes, i use my own versions of the batch script, but will not use them in this examples)
Code:
@echo off
%~d0
cd %~dp0
Title = LIBCTRU Switcher...
cls
ECHO .............................................
ECHO . LIBCTRU Switch Menu. Choose your LIBCTRU: .
ECHO .............................................
ECHO.
ECHO 1 - Switch to newest LIBCTRU
ECHO 2 - Switch to older LIBCTRU
ECHO 3 - EXIT Program
ECHO.
choice /C 123 /M "Enter the letter of your choice:"
IF ERRORLEVEL 3 exit
IF ERRORLEVEL 2 GOTO OLD
IF ERRORLEVEL 1 GOTO NEW
:NEW
Title = Switch to newest LIBCTRU...
c:
cd c:\devkitPro
if not exist "libctru_old" GOTO SWITCH
ECHO.
ECHO.
ECHO - You already are using a newer libctru version!!!
ECHO.
ECHO.
ECHO Press any key to exit!
d:
cd %~dp0
Pause >nul
exit
:OLD
Title = Switch to older LIBCTRU...
c:
cd c:\devkitPro
if not exist "libctru_new" GOTO SWAP
ECHO.
ECHO.
ECHO - You already are using an older libctru version!!!
ECHO.
ECHO.
ECHO Press any key to exit!
d:
cd %~dp0
Pause >nul
exit
:SWITCH
ren libctru libctru_old
Timeout /t 1 /nobreak >nul
ren libctru_new libctru
d:
cd %~dp0
ECHO.
ECHO.
ECHO - You are now using a newer libctru version!
ECHO.
ECHO.
ECHO Press any key to exit!
Pause >nul
exit
:SWAP
ren libctru libctru_new
Timeout /t 1 /nobreak >nul
ren libctru_old libctru
d:
cd %~dp0
ECHO.
ECHO.
ECHO - You are now using an older libctru version!
ECHO.
ECHO.
ECHO Press any key to exit!
Pause >nul
exit
and added a check in the build scripts to see what libctru version is the active one
For homebrew that needs the newest libctru:
Code:
if not exist "c:\devkitPro\libctru_old" GOTO WARN
So it checks if there is a folder "libctru_old" in the "c:\devkitPro" folder
if it doesn't exist go to label WARN
if it does exist, continue with the next line
.
.
.
or for homebrew that needs an older version of libctru:
Code:
if not exist "c:\devkitPro\libctru_new" GOTO WARN
So it checks if there is a folder "libctru_new" in the "c:\devkitPro" folder
if it doesn't exist go to label WARN
if it does exist, continue with the next line
.
.
.
label WARN
Code:
:WARN
ECHO.
ECHO.
ECHO Warning!
ECHO ---------
ECHO.
ECHO You are not using the correct libctru version to compile this!
ECHO Run switch_libctru.bat to switch to the correct libctru version.
ECHO.
ECHO.
ECHO Press any key to continue...
Pause >nul
GOTO END
Warning output at the end of the batch file
Only gets shown if not using the correct libctru version.
EXAMPLE:
Code:
:FBI
cls
if not exist "c:\devkitPro\libctru_old" GOTO WARN
Title = Building FBI...
if exist "FBI" (
echo Making a backup of your current FBI folder
xcopy "FBI\*" "Backups_Compiles\Backup_FBI" /e /i /y >nul
cd FBI
Title = Building FBI ^(Update^)...
echo Updating repo...
git pull origin master
git submodule update --init --recursive
) else (
Title = Building FBI ^(Clone^)...
echo Cloning repo...
git clone --recursive https://github.com/Steveice10/FBI.git
cd FBI
)
set PATH=c:\Python27\;%PATH%
echo Building...
Title = Building FBI ^(Clean^)...
make clean
Title = Building FBI ^(Release^)...
make
Title = Building FBI ^(Done^)
echo.
echo ####################################
color A
cd ..
echo Done. Files are in the "FBI" folder. && echo Press any key to continue ...
Pause >nul
GOTO END
:D9WIP
cls
if not exist "c:\devkitPro\libctru_new" GOTO WARN
Title = Building Decrypt9WIP...
if exist "Decrypt9WIP" (
echo Making a backup of your current Decrypt9WIP folder
xcopy "Decrypt9WIP\*" "Backups_Compiles\Backup_Decrypt9WIP" /e /i /y >nul
cd Decrypt9WIP
Title = Building Decrypt9WIP ^(Update^)...
echo Updating repo...
git pull origin master
git submodule update --init --recursive
) else (
Title = Building Decrypt9WIP ^(Clone^)...
echo Cloning repo...
git clone --recursive https://github.com/d0k3/Decrypt9WIP.git
cd Decrypt9WIP
)
set PATH=c:\Python27\;%PATH%
echo Building...
Title = Building Decrypt9WIP ^(Clean^)...
make clean
Title = Building Decrypt9WIP ^(Release^)...
make release
Title = Building Decrypt9WIP ^(Done^)
echo.
echo ####################################################
color A
cd ..
echo Done. Files are in the "Decrypt9WIP/release" folder. && echo Press any key to continue ...
Pause >nul
GOTO END
:WARN
ECHO.
ECHO.
ECHO Warning!
ECHO ---------
ECHO.
ECHO You are not using the correct libctru version to compile this!
ECHO Run switch_libctru.bat to switch to the correct libctru version.
ECHO.
ECHO.
ECHO Press any key to continue...
Pause >nul
GOTO END
I know it will get useless once all homebrew is updated to use latest ctrulib (like JKSM just did today and CakesFW a few days ago.)
So, this is just informative, no request or git pull, you can do whatever you want with this information
[EDIT]
Some homebrew like "HourGlass9" compiles fine on whatever libctru version you are, so no check is needed
@DjoeN
I see what you did there, I do the libctru change manually for more than one reason:
- other libs sometimes are installed inside libctru, so if you update one, the other libctru you have will not be updated, until you remember that you never did
- libctru as well as many other sources, their compatibility change everyday with every homebrew. New and old might get confusing at some point when a certain libctru update breaks something.
For the reasons above, I'd rather have the user install their intended commit of libctru at will
Seemingly out of nowhere a PC port for Pokemon Platinum has surfaced online, bundled alongside the source code for those interested in building and developing it for...
With very little in the way of announcement, Valve has today increased the price of the Steam Deck but some fairly considerable margins. Both of the available models...
As a part of their Financial Results Briefing for the previous year, Nintendo president Shuntaro Furukawa took to the floor to answer key questions around the Switch...
Earlier this year, Sony announced major price increases for the PS5, PS5 Pro, and PlayStation Portal. Now the company is raising prices again, this time for...
Continuing with the great news of Pokémon Platinum getting a native unofficial PC port just a few days ago, today, yet another classic title from the franchise has...
The latest in a growing number of native PC ports, Paper Mario ReCut got its first pre-release build earlier this week. Based on the N64 recompilation toolchain, the...
When you talk about 3DS emulation, most people would jump to Citra. As the defacto choice since its first release it's seen tremendous success, and even after its...
Nintendo's expected Summer showcase is here, offering up plenty of new announcements and exciting reveals. Let's see what they have in store in the latest Nintendo...
A whole hour of PlayStation content is on the way, thanks to the latest State of Play showcase. Headlining the stream will be Marvel's Wolverine, alongside a...
For the first time in 13 years, the Call of Duty series will again return to Nintendo's consoles. Set to launch on the 23rd of October, the latest release, Modern...
With very little in the way of announcement, Valve has today increased the price of the Steam Deck but some fairly considerable margins. Both of the available models...
Nintendo's expected Summer showcase is here, offering up plenty of new announcements and exciting reveals. Let's see what they have in store in the latest Nintendo...
Seemingly out of nowhere a PC port for Pokemon Platinum has surfaced online, bundled alongside the source code for those interested in building and developing it for...
Earlier this year, Sony announced major price increases for the PS5, PS5 Pro, and PlayStation Portal. Now the company is raising prices again, this time for...
With rumours circulating about a Nintendo Direct in the coming days and weeks, fans are left speculating and hoping as to what might be included. At the centre of all...
As a part of their Financial Results Briefing for the previous year, Nintendo president Shuntaro Furukawa took to the floor to answer key questions around the Switch...
The latest in a growing number of native PC ports, Paper Mario ReCut got its first pre-release build earlier this week. Based on the N64 recompilation toolchain, the...
A whole hour of PlayStation content is on the way, thanks to the latest State of Play showcase. Headlining the stream will be Marvel's Wolverine, alongside a...
After much speculation and rumour, the fabled Nintendo Direct is upon us. Set to go live tomorrow, the 9th of June, at 3pm in the UK, it'll feature 50 minutes of...
For the first time in 13 years, the Call of Duty series will again return to Nintendo's consoles. Set to launch on the 23rd of October, the latest release, Modern...