Homebrew Official Citra - New 3DS Emulator

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
just fyi, i'm not gonna be fixing the minGW compile error, simply because it would take rewriting the whole cheat search functionality (which is needed anyway, because I wrote it pretty poorly in the first place). Just gonna have to live with compiling on msvc

It don't matter, just the one line then that will not compile in microsoft VC 2017 ?

"state.hex |= GetCirclePadDirectionState(circle_pad_x, circle_pad_y).hex;"

if removed then it would compile, but that could cause issues.

this one was working in MSVS2017 that you told me about
"std::shared_ptr<class CheatDialog> cheatWindow;
std::shared_ptr<class CheatSearch> cheatSearchWindow;"

I link your branch to mine for testing - I can edit this if you could pass on that one line fix ^ ? thanks.
https://github.com/Jhno591/citra/compare/master...Jhno591:Experimental2?expand=1
-----------
Also jroweboy just mention to remove it might work
https://gbatemp.net/threads/citra-unofficial-chinese-builds-discussion.431974/page-269
 
Last edited by drwhojan,
  • Like
Reactions: AceofZeroz
D

Deleted User

Guest
It don't matter, just the one line then that will not compile in microsoft VC 2017 ?

"state.hex |= GetCirclePadDirectionState(circle_pad_x, circle_pad_y).hex;"

if removed then it would compile, but that could cause issues.

this one was working in MSVS2017 that you told me about
"std::shared_ptr<class CheatDialog> cheatWindow;
std::shared_ptr<class CheatSearch> cheatSearchWindow;"

I link your branch to mine for testing - I can edit this if you could pass on that one line fix ^ ? thanks.
https://github.com/Jhno591/citra/compare/master...Jhno591:Experimental2?expand=1
-----------
Also jroweboy just mention to remove it might work
https://gbatemp.net/threads/citra-unofficial-chinese-builds-discussion.431974/page-269
I think his response was pretty clear - sure, you could maintain the branch and get it to compile, but I'm getting the sense that he wants to rewrite it/not work on it as it is.
 
Last edited by ,
  • Like
Reactions: drwhojan

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 think his response was pretty clear - sure, you could maintain the branch and get it to compile, but I'm getting the sense that he wants to rewrite it/not work on it as it is.

It was a separate issue, from the mingw one.

I was taking about, A problem that fixes did not add to his own branch for some unknown reason, but was manually fixed to his own build and release.

image in msvs 2017 error was posted here
https://gbatemp.net/threads/citra-new-3ds-emulator.365154/page-337#post-7430848
----

But would be grate if he could :)
 
Last edited by drwhojan,
  • Like
Reactions: AceofZeroz

jamieyello

Professional Dumbass
Member
Joined
Mar 11, 2013
Messages
385
Trophies
0
XP
556
Country
United States
So I've been working on my own sort of input script library, and I'm mostly done aside from integrating it into Citra. Admittedly it may be on the more feature oriented side of things opposed to the function focused workflow Citra has going on right now.
https://github.com/jamieyello/Input-Scripts (you can see the script it executes in TestScript.txt)

I based it off GlovePIE. GlovePIE is a program that takes any windows input and lets you control it easily through scripts, It's actually more or less a completely functional interpreter of very basic C syntax. I used to make a couple scripts here.
https://gbatemp.net/threads/glovepi...n-fully-with-controllers.445772/#post-6764611

My library doesn't look for any Windows input, it just takes input that you give it. There wouldn't be any messy conflicts with configuration. (GlovePIE is virtually impossible to get working with all user configurations for reasons, and there's something about having to use third party software that bugs me anyway)

I need some help integrating it, though. It should be implemented into the Citra UI the exact same way AR codes typically are.

I need to ask, where do I put my library in Citra itself for organization? Where should I create my script object? I also need an AR code-type user interface, preferably having a per game configuration, do I need to learn how to use QT to do that, or does someone else manage that? I also need to know where I can get read/write access to input and insert the middle-man code, but there's no point in implementing anything if there is no UI to manage scripts.

Just for some easy proof of concept I tried plopping it all into hid under hle, but I had no such luck for whatever reason. :)

The end result would be something like this.
 
  • Like
Reactions: AceofZeroz

jamieyello

Professional Dumbass
Member
Joined
Mar 11, 2013
Messages
385
Trophies
0
XP
556
Country
United States
Here's a version Citra with a script running that lets you control the touchscreen with the d-pad (assign items like you could in the old game). Because it's not a third party program, it can run on single screen mode.



So what I did (my last post was too long winded) was I added a built in C interpreter into Citra. When you run a game in Citra it loads the script.txt file and executes it every single frame of input. The interpreter has both read/write access to all 3ds inputs. That means users can easily write scripts to modify the control scheme with the flexibility and accessibility of AR codes.

This should make the transition from hardware to emulation much easier.

I'd really love to write a script for Kid Icarus, but I need a version of Citra (source) where it boots. I guess I could hunt down a built through Git, but I can wait I guess. :)

At some point in the future read/write access might come in for the actual memory of the 3ds itself? That would essentially make this a mod loader.

I guess I should take this to discord.
 

jamieyello

Professional Dumbass
Member
Joined
Mar 11, 2013
Messages
385
Trophies
0
XP
556
Country
United States
  • Like
Reactions: drwhojan

spotanjo3

Well-Known Member
Member
Joined
Nov 6, 2002
Messages
11,145
Trophies
3
XP
6,216
Country
United States
So I've been working on my own sort of input script library, and I'm mostly done aside from integrating it into Citra. Admittedly it may be on the more feature oriented side of things opposed to the function focused workflow Citra has going on right now.
https://github.com/jamieyello/Input-Scripts (you can see the script it executes in TestScript.txt)

I based it off GlovePIE. GlovePIE is a program that takes any windows input and lets you control it easily through scripts, It's actually more or less a completely functional interpreter of very basic C syntax. I used to make a couple scripts here.
https://gbatemp.net/threads/glovepi...n-fully-with-controllers.445772/#post-6764611

My library doesn't look for any Windows input, it just takes input that you give it. There wouldn't be any messy conflicts with configuration. (GlovePIE is virtually impossible to get working with all user configurations for reasons, and there's something about having to use third party software that bugs me anyway)

I need some help integrating it, though. It should be implemented into the Citra UI the exact same way AR codes typically are.

I need to ask, where do I put my library in Citra itself for organization? Where should I create my script object? I also need an AR code-type user interface, preferably having a per game configuration, do I need to learn how to use QT to do that, or does someone else manage that? I also need to know where I can get read/write access to input and insert the middle-man code, but there's no point in implementing anything if there is no UI to manage scripts.

Just for some easy proof of concept I tried plopping it all into hid under hle, but I had no such luck for whatever reason. :)

The end result would be something like this.


Too bad that this game isn't playable on an Official Citra. It is playable only on Unoffical Citra from Chinese, I think. Strange is that that video is Official Citra ? I think not. Maybe they forgot to mention Unofficial Citra version only. Correct me if I am wrong.
 

jamieyello

Professional Dumbass
Member
Joined
Mar 11, 2013
Messages
385
Trophies
0
XP
556
Country
United States
Too bad that this game isn't playable on an Official Citra. It is playable only on Unoffical Citra from Chinese, I think. Strange is that that video is Official Citra ? I think not. Maybe they forgot to mention Unofficial Citra version only. Correct me if I am wrong.
That's right, I was using some Chinese build when I made that.
 

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
Sorry could not be more help guys ^^,
--------------------- MERGED ---------------------------
It's more of a user setting imo, that looks like it handles 3ds file loading. Right now it's just loading from the desktop directly from core/hle/hid.cpp, which is horrible.

Well hope you the best with hum could help you, are finding some think.
 

NiagA

Well-Known Member
Member
Joined
Sep 23, 2016
Messages
394
Trophies
0
Location
in your mind
XP
341
Country
Brazil
BE 427 Missing DLL's
Capturar.JPG

 

jroweboy

Well-Known Member
Member
Joined
Oct 23, 2016
Messages
124
Trophies
0
Age
34
XP
393
Country
United States
yup thanks for letting me know. we recently added a bunch of dependencies to citra.... and add the dlls to add to the builds was done by hand. I took a break from work today to fix the issue, and bleeding edge 431 should have the fix for it soon (crosses fingers)
 
  • Like
Reactions: tywald and NiagA

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
Any of you guys getting errors again while compiling in MinGW on latest citra ?, are I'm i just missing a command to use ?

@jroweboy have you tested ?.

edit: seems the one in the gcc package - winsock2.h .

656656.jpg
 
Last edited by drwhojan,

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 updated the mingw instructions on the wiki. You need to compile against system curl instead because the cmake file for curl sux.

Any English please, can see what you taking about on the page..
https://github.com/citra-emu/citra/wiki/Building-for-Linux

All on page is installed into MSYS2, had no issues previously until network stuff added.

Little instructions will help :) , are post link to correct information to use.
 
Last edited by drwhojan,

wwylele

Well-Known Member
Member
Joined
Oct 17, 2015
Messages
151
Trophies
0
Age
28
XP
395
Country
China
  • Like
Reactions: drwhojan

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 updated the mingw instructions on the wiki. You need to compile against system curl instead because the cmake file for curl sux.
You are looking at a wrong page. Should be the "Mingw-w64 Build with MSYS2" section of https://github.com/citra-emu/citra/wiki/Building-for-Windows

Many Thanks both and wwylele 4 pointing of the wright page :), I re-did the whole thing ^ , It compiled!, But emulators showing an error, Do looking into all the .dlls might be a wrong one.

PS, better link direct to -"Mingw-w64 Build with MSYS2"
https://github.com/citra-emu/citra/wiki/Building-for-Windows#mingw-w64-build-with-msys2

So I'm redoing in non static, see if this will extract any missing .dlls into the emus folder.

@jroweboy
Just to let you know - https://github.com/citra-emu/citra/compare/master...jroweboy:input-config-2
in configure_input.ui
replace both -
<header>configure_input_widget.h</header>
with
<header>configuration/configure_input_widget.h</header>

And that will fix error while compiling in Mingw, Strangely it don't show the error while compiling in microsoft VS 2017
-----
edit, nope, so has to be static build to link updated .dlls to the build.
Will work it out.
--------------
edit ok so its just linking the latest dlls - added -DMINGW_STATIC_BUILD and got

Parse error in command line argument: -DMINGW_STATIC_BUILD
Should be: VAR:type=value
CMake Error: No cmake script provided.
CMake Error: Problem processing arguments. Aborting.
 
Last edited by drwhojan,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/shorts/O8G6DCnlLDQ