Homebrew Citra - Unofficial \ Chinese builds discussion

drwhojan

Well-Known Member
Member
Joined
Jul 14, 2009
Messages
4,196
Trophies
1
Age
45
Location
Where I Am!
XP
1,702
Country
United Kingdom
I do have it rebased locally (not to latest master though), but I don't push it because idiots like you blindly put it into unofficial builds.
That's because drwhojan is talking out of his ass (again)

Very nice, will leave it out for some time now with citra

The idiot.. that broke a egg and Started wwylele working on the fix for zelda albw, that led to subv scheduling.. then the omelet fried
 
Last edited by drwhojan,

thieftheodore

Active Member
Newcomer
Joined
Jun 10, 2016
Messages
43
Trophies
0
Age
31
XP
120
Country
Indonesia
You need a save game to bypass that screen, there is a thread for Citra saves sharing here on gbatemp, just make a quick search.
That's weird, I swear I've gotten past that screen in the past using one of the unnofficial builds, forgot which on tho, same with kid icarus
 

LG_

Well-Known Member
Member
Joined
Apr 10, 2016
Messages
413
Trophies
0
Age
37
XP
232
Country
Brazil
That's weird, I swear I've gotten past that screen in the past using one of the unnofficial builds, forgot which on tho, same with kid icarus
Kid Icarus can reach in-game in older builds. Some unofficial builds have save files inside too (especially the illegal ones...), maybe you was using some of these
 

Molhel

Westworld Fanatic
Member
Joined
Jan 23, 2017
Messages
169
Trophies
0
Location
Westworld
XP
221
Country
United States
Can anyone explain the building process for the bleeding edge version to me please? I do it all the time on Linux (make, you know), but on Windows it seems so daunting and confusing.
 

DestinyFeather

Well-Known Member
Member
Joined
Sep 14, 2009
Messages
428
Trophies
1
XP
1,121
Country
United States
Can anyone explain the building process for the bleeding edge version to me please? I do it all the time on Linux (make, you know), but on Windows it seems so daunting and confusing.
Lol agreed Linux is so fugging easy. Literally just
Code:
./configure
make
make install

FOR EVERYTHING.

This is what I do to compile Citra.
Follow the MINGW64 instructions here: https://github.com/citra-emu/citra/wiki/Building-for-Windows and ignore everything after 'Install citra dependancies for mingw-w64'

As far as I know MING64 is kind of a really shitty version of linux's CLI.

I also had this installed: https://git-for-windows.github.io/


Which is like a really shitty version of that CLI also. I should really install cygwin or something but I'm too lazy to figure out how to install stuff like MINGW64 on top of something like cygwin.

-----------------------------------------------------------
Then I right click git bash
Code:
git clone --recursive -b bleeding_edge git://github.com/citra-emu/citra-bleeding-edge.git
cd citra-bleeding-edge
Basically it clones the source files to a directory.
Then I add placebo (lol)

Code:
git remote add FernandoS27 git://github.com/FernandoS27/citra.git
git fetch FernandoS27
git cherry-pick 18744ff7439d3de389600b6dc5004f9ebf6ed9ac --strategy-option theirs
'pparently it's an AVX fix which I just add just because.

Code:
git remote add wwylele git://github.com/wwylele/citra.git
git fetch wwylele
git cherry-pick 7fa3fe14b96ad1989a8f94200f7f0156e7ae8c8f --strategy-option theirs
This is the static camera which I add to bleeding edge just because.
I'm too lazy/can't be bothered to figure out how to resolve conflicts manually so these are the ones I add.

---------------------------------------------------------
Open MINGW64
Code:
cd c:/path/to/source
mkdir build && cd build
cmake -G "MSYS Makefiles" -D CMAKE_C_COMPILER=C:/msys64/mingw64/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/msys64/mingw64/bin/c++.exe -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_C_FLAGS="-O3 -mtune=native -march=native"  -DCMAKE_CXX_FLAGS="-DMICROPROFILE_ENABLED=0 -mtune=native -O3 -march=native" ..
mingw32-make -j4
After reading https://wiki.gentoo.org/wiki/GCC_optimization these are the flags I added to make the run at MAXIMUM SPEED on my machine and no one else's. Developers keep complaining about flag optimisation but it's really not worth going with no flags in my opinion because it seems like a silly idea not to use whatever benefits you can scrape out of the CPU you paid for.

Once build is done go into the source files and search for .exe (these are the citra files you want) (tfw no grep)

Paste citra-qt.exe and citra.exe into a folder.
Find all the DLLs for things in C:/msys64/ and paste them into the folder: http://i.imgur.com/GkaKOq8.png. These go in a folder called platforms: http://i.imgur.com/PddROER.png
Check another shared citra build if you aren't sure what ones you need to spend an hour copying and pasting.

IF YOU USE DLLS FROM SOMEONE ELSE'S BUILD RATHER THAN THE ONES IN YOUR MINGW64 FOLDER IT MIGHT NOT WORK BECAUSE OF AWFUL QT VERSIONING ISSUES → THIS TOOK ME ABOUT 5 HOURS TO FIGURE OUT

I've been repeating the steps ad infinitum every time a new bleeding edge build comes out because git pull on this particular project never fails to introduce conflicts for some reason because I'm too lazy and stupid to figure out git rebase.

Although I guess I'll try this one from now on
Code:
git pull --rebase


 
Last edited by DestinyFeather,

Molhel

Westworld Fanatic
Member
Joined
Jan 23, 2017
Messages
169
Trophies
0
Location
Westworld
XP
221
Country
United States
Lol agreed Linux is so fugging easy. Literally just
Code:
./configure
make
make install

FOR EVERYTHING.

This is what I do to compile Citra.
Follow the MINGW64 instructions here: https://github.com/citra-emu/citra/wiki/Building-for-Windows and ignore everything after 'Install citra dependancies for mingw-w64'

As far as I know MING64 is kind of a really shitty version of linux's CLI.

I also had this installed: https://git-for-windows.github.io/


Which is like a really shitty version of that CLI also. I should really install cygwin or something but I'm too lazy to figure out how to install stuff like MINGW64 on top of something like cygwin.

-----------------------------------------------------------
Then I right click git bash
Code:
git clone --recursive -b bleeding_edge git://github.com/citra-emu/citra-bleeding-edge.git
cd citra-bleeding-edge
Basically it clones the source files to a directory.
Then I add placebo (lol)

Code:
git remote add FernandoS27 git://github.com/FernandoS27/citra.git
git fetch FernandoS27
git cherry-pick 18744ff7439d3de389600b6dc5004f9ebf6ed9ac --strategy-option theirs
'pparently it's an AVX fix which I just add just because.

Code:
git remote add wwylele git://github.com/wwylele/citra.git
git fetch wwylele
git cherry-pick 7fa3fe14b96ad1989a8f94200f7f0156e7ae8c8f --strategy-option theirs
This is the static camera which I add to bleeding edge just because.
I'm too lazy/can't be bothered to figure out how to resolve conflicts manually so these are the ones I add.

---------------------------------------------------------
Open MINGW64
Code:
cd c:/path/to/source
mkdir build && cd build
cmake -G "MSYS Makefiles" -D CMAKE_C_COMPILER=C:/msys64/mingw64/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/msys64/mingw64/bin/c++.exe -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_C_FLAGS="-O3 -mtune=native -march=native"  -DCMAKE_CXX_FLAGS="-DMICROPROFILE_ENABLED=0 -mtune=native -O3 -march=native" ..
mingw32-make -j4
After reading https://wiki.gentoo.org/wiki/GCC_optimization these are the flags I added to make the run at MAXIMUM SPEED on my machine and no one else's. Developers keep complaining about flag optimisation but it's really not worth going with no flags in my opinion because it seems like a silly idea not to use whatever benefits you can scrape out of the CPU you paid for.

Once build is done go into the source files and search for .exe (these are the citra files you want) (tfw no grep)

Paste citra-qt.exe and citra.exe into a folder.
Find all the DLLs for things in C:/msys64/ and paste them into the folder: http://i.imgur.com/GkaKOq8.png. These go in a folder called platforms: http://i.imgur.com/PddROER.png
Check another shared citra build if you aren't sure what ones you need to spend an hour copying and pasting.

IF YOU USE DLLS FROM SOMEONE ELSE'S BUILD RATHER THAN THE ONES IN YOUR MINGW64 FOLDER IT MIGHT NOT WORK BECAUSE OF AWFUL QT VERSIONING ISSUES → THIS TOOK ME ABOUT 5 HOURS TO FIGURE OUT

I've been repeating the steps ad infinitum every time a new bleeding edge build comes out because git pull on this particular project never fails to introduce conflicts for some reason because I'm too lazy and stupid to figure out git rebase.

Although I guess I'll try this one from now on
Code:
git pull --rebase

1+

Way easier in Linux. Pull the files, cd in, make. Done! The curse of having to go into an inferior OS. :ha:

Thank you so much for the in depth guide! I'm going out in a few hours so I'll be gone for a bit, but when I get back I'll start these steps on my Win10 install. Then I'll get to play my beautiful OoT/MM on my OC with my controller comfortable instead of my :yay3ds:.

(though really it is to get around limited saves xD)
 

DestinyFeather

Well-Known Member
Member
Joined
Sep 14, 2009
Messages
428
Trophies
1
XP
1,121
Country
United States
Way easier in Linux. Pull the files, cd in, make. Done! The curse of having to go into an inferior OS. :ha:

Thank you so much for the in depth guide! I'm going out in a few hours so I'll be gone for a bit, but when I get back I'll start these steps on my Win10 install. Then I'll get to play my beautiful OoT/MM on my OC with my controller comfortable instead of my :yay3ds:.

(though really it is to get around limited saves xD)
Yeah no downloading GBs of files just to compile :(
 

Usl5264

Well-Known Member
Member
Joined
May 29, 2016
Messages
167
Trophies
0
Age
45
XP
159
Country
Hi all, Does somebody know the best place for a tutorial to compile osx versions of Citra? The guide on the main homepage doesn't seem to work for me.

I am using Mac OS Sierra.

Thanks in advance.

Sent from my EVA-L09 using Tapatalk
 

Miguel Gomez

Well-Known Member
Member
Joined
Jan 10, 2016
Messages
2,867
Trophies
0
Age
25
Location
Planet Earth
XP
1,530
Country
Are there any builds with camera functions that work with all games? I'd rather only keep one version of citra with as many features as possible but the ones with camera integration I've found don't work with most games I want to play like Kid Icarus Uprising and Fire Emblem Awakening
Just wait. The camera is not ready for the emulator yet. It's better off work on it than merge it to the Master Build. So games such as Sun and Moon and Digimon worked okay. But not all games including Mii Maker work. Since the Wrap/Unwrap is merge to the Bleeding Edge, it would be fine if someone could test it out and see if it work.
 

jroweboy

Well-Known Member
Member
Joined
Oct 23, 2016
Messages
124
Trophies
0
Age
34
XP
393
Country
United States
Lol agreed Linux is so fugging easy. Literally just
Code:
./configure
make
make install

FOR EVERYTHING.

Citra uses cmake so you still need to do cmake -> make -> make install on every platform.

This is what I do to compile Citra.
Follow the MINGW64 instructions here: https://github.com/citra-emu/citra/wiki/Building-for-Windows and ignore everything after 'Install citra dependancies for mingw-w64'

As far as I know MING64 is kind of a really shitty version of linux's CLI.

MingW64 is a native windows compilation of the GNU toolchain and other common tools you find on many operating systems. It includes a terminal emulator that has the path setup properly which is why i suggested on the wiki article that people use instead of any other terminal emulator.

I also had this installed: https://git-for-windows.github.io/

Which is like a really shitty version of that CLI also. I should really install cygwin or something but I'm too lazy to figure out how to install stuff like MINGW64 on top of something like cygwin.

git for windows uses mingw64 and the shell that comes with mingw64. Only difference is it doesn't have the msys2/mingw64 tools setup in the path so you have to either add that or type out the full path to run the commands. Also cygwin is something related but very different. Cygwin is a compatibility layer such that you can compile software developed for unix on windows without having to worry about differences in sockets and threads and other things. You get no other benefits from using cygwin besides forcing all programs compiled with it to link against cygwin1.dll. If you really wanted to use cygwin, you might as well just use the MSYS2 shell since MSYS2 is a fork of cygwin thats actually kept up to date.

-----------------------------------------------------------
Then I right click git bash
Code:
git clone --recursive -b bleeding_edge git://github.com/citra-emu/citra-bleeding-edge.git
cd citra-bleeding-edge
Basically it clones the source files to a directory.
Then I add placebo (lol)

Code:
git remote add FernandoS27 git://github.com/FernandoS27/citra.git
git fetch FernandoS27
git cherry-pick 18744ff7439d3de389600b6dc5004f9ebf6ed9ac --strategy-option theirs
'pparently it's an AVX fix which I just add just because.

Code:
git remote add wwylele git://github.com/wwylele/citra.git
git fetch wwylele
git cherry-pick 7fa3fe14b96ad1989a8f94200f7f0156e7ae8c8f --strategy-option theirs
This is the static camera which I add to bleeding edge just because.
I'm too lazy/can't be bothered to figure out how to resolve conflicts manually so these are the ones I add.

---------------------------------------------------------

or you can stay in the mingw64 terminal installed as part of msys2 and just `pacman -S git` so you don't have to install git for windows (which as i mentioned earlier is also using mingw64) why use cherry pick those? git merge should work just fine i'd presume. (honestly curious)

Open MINGW64
Code:
cd c:/path/to/source
mkdir build && cd build
cmake -G "MSYS Makefiles" -D CMAKE_C_COMPILER=C:/msys64/mingw64/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/msys64/mingw64/bin/c++.exe -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_C_FLAGS="-O3 -mtune=native -march=native"  -DCMAKE_CXX_FLAGS="-DMICROPROFILE_ENABLED=0 -mtune=native -O3 -march=native" ..
mingw32-make -j4
you can also install make with pacman. you don't have to use mingw32-make... perhaps i should update the wiki article then. its not the first time thats come up.

After reading https://wiki.gentoo.org/wiki/GCC_optimization these are the flags I added to make the run at MAXIMUM SPEED on my machine and no one else's. Developers keep complaining about flag optimisation but it's really not worth going with no flags in my opinion because it seems like a silly idea not to use whatever benefits you can scrape out of the CPU you paid for.

No developer complains about opt flags... if you look in the cmake file you'll see that we do run with opt flags. But compiling citra with -march=native will break for anyones machine that doesn't match the specs of the build server. Losing compatibility for almost no perceptible benefit is never a good idea. For your own machine its totally fine to compile with those flags, but when you are distributing binaries thats a very bad idea.

Once build is done go into the source files and search for .exe (these are the citra files you want) (tfw no grep)

msys2 does come with grep. if it doesn't pacman -S grep

Paste citra-qt.exe and citra.exe into a folder.
Find all the DLLs for things in C:/msys64/ and paste them into the folder: http://i.imgur.com/GkaKOq8.png. These go in a folder called platforms: http://i.imgur.com/PddROER.png
Check another shared citra build if you aren't sure what ones you need to spend an hour copying and pasting.

IF YOU USE DLLS FROM SOMEONE ELSE'S BUILD RATHER THAN THE ONES IN YOUR MINGW64 FOLDER IT MIGHT NOT WORK BECAUSE OF AWFUL QT VERSIONING ISSUES → THIS TOOK ME ABOUT 5 HOURS TO FIGURE OUT

or you can look at the appveyor.yml file to see what dlls are copied. Or better yet, just make a static build! (just remembered I never fixed those instructions on the wiki, but it looks like people think the instructions are too complicated anyway....) In the near future i'll be making bleeding edge static build because i'm scared appveyor is going to update msys without notification again and screw things up...

I've been repeating the steps ad infinitum every time a new bleeding edge build comes out because git pull on this particular project never fails to introduce conflicts for some reason because I'm too lazy and stupid to figure out git rebase.

Although I guess I'll try this one from now on
Code:
git pull --rebase

if you pull all the changes onto a branch, it'd be much easier to clean up. Then you can simply delete the old branch, pull the latest master and make a new branch with whatever merges you wanted. Then building is just a make away (no need to rerun cmake since the last compiled flags are cached and it should re run itself if it detects the cmakelist.txt file changed but i could be wrong on that point...)

Yeah no downloading GBs of files just to compile :(

you have to download the GBs of files even if you were compiling on linux. the size comes from the QT5 dependency...

1+

Way easier in Linux. Pull the files, cd in, make. Done! The curse of having to go into an inferior OS. :ha:

the only thing thats hard is a one time setup to GET the dependencies. If you factor that into the equation, its literally the same as building on linux. I don't see whats so hard about the windows instructions. Install MSYS2. pacman install a bunch of stuff. git clone -> cmake -> make just like you do on every platform.

Thank you so much for the in depth guide! I'm going out in a few hours so I'll be gone for a bit, but when I get back I'll start these steps on my Win10 install. Then I'll get to play my beautiful OoT/MM on my OC with my controller comfortable instead of my :yay3ds:.

(though really it is to get around limited saves xD)

it is a wiki article. i'd love to know what you found confusing so we can edit it and make it better. and if you want more saves, you can right click the game in the file list and choose "open save data location" and backup your save file that way. no save states yet though. thats a ton of work that no one has been interested in working on yet
 

DestinyFeather

Well-Known Member
Member
Joined
Sep 14, 2009
Messages
428
Trophies
1
XP
1,121
Country
United States
-snipped-
Excellent thankyou very much for the valuable feedback it's very much a learning experience and I'm essentially picking the odd thing up via trial and error and reading up on other people's experiences at this point in time. iirc static build failed to build (it got stuck on about 90% if I recall) hence why I stuck with the dlls. Cannot remember what error was returned.
`pacman -S git`
This is fantastic.

No developer complains about opt flags... if you look in the cmake file you'll see that we do run with opt flags.
Indeed, the flags are everywhere (although I did do some reading somewhere that some people preferred O2 over O3 because O3 could cause an application to be buggy).
But compiling citra with -march=native will break for anyones machine that doesn't match the specs of the build server. Losing compatibility for almost no perceptible benefit is never a good idea. For your own machine its totally fine to compile with those flags, but when you are distributing binaries thats a very bad idea.
Yes I remember reading that a recent Bleeding Edge build failed to run on some machines because of a copy and paste in one of the PRs which I think contained -march=native or something along those lines. I guess it leads to some interesting questions as to which flags are prioritised if the command I am pasting contains different flags to the ones in the cmake.txt and whether or not there is a simple way to record which build flags are used to make the program.

The msys2 vs cygwin discussion is very interesting. I'll definitely keep using msys then if you recommend it as the superior version. Recently I have noticed that some developers give instructions on how to use Docker with scripts as well but I guess that begs the question about whether dual booting or a proper VM would be more convenient then using about 4 different programs to achieve what's ultimately the same result. (Although compiling I guess is a separate issue altogether. )
 
  • Like
Reactions: AceofZeroz

Raizane

Active Member
Newcomer
Joined
Mar 10, 2017
Messages
31
Trophies
0
Age
31
XP
78
Country
Indonesia
Yo,i'm new here but already try many citra version you did good joob guys,keep going..

If there any new build ...can i try?
 
Last edited by Raizane,

Akirou

Active Member
Newcomer
Joined
Aug 11, 2016
Messages
42
Trophies
0
Age
30
XP
96
Country
Romania
i haven't been here in a while because i was waiting for DLC integration , any news if we can finally use DLC on citra or still no luck ?
 

bogyman

Member
Newcomer
Joined
Apr 29, 2007
Messages
15
Trophies
0
XP
222
Country
United States
10-11 FPS tried all citra versions in pokemon y ???????

Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz --- MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, EM64T, VT-x
Microsoft Windows 7 (6.1) Ultimate Edition 64-bit
NVIDIA GeForce GTX 580 - 1536 MB GDDR5
Memory Size 6 GBytes
 

Miguel Gomez

Well-Known Member
Member
Joined
Jan 10, 2016
Messages
2,867
Trophies
0
Age
25
Location
Planet Earth
XP
1,530
Country
10-11 FPS tried all citra versions in pokemon y ???????

Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz --- MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, EM64T, VT-x
Microsoft Windows 7 (6.1) Ultimate Edition 64-bit
NVIDIA GeForce GTX 580 - 1536 MB GDDR5
Memory Size 6 GBytes
Have you open Citra in Nvidia Processor or Intel Processor?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: I'm devastated