Homebrew Official Citra - New 3DS Emulator

Miguel Gomez

Well-Known Member
Member
Joined
Jan 10, 2016
Messages
2,867
Trophies
0
Age
25
Location
Planet Earth
XP
1,530
Country
I see nothing just a block of black screen and white around it.
I have:
intel 2600k
AMD r9 290
could it be because of my video card?

Which emulator did u use and what config?
The old one that John GodGames used. But meh, it crashed once play.

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

BTW. That was few months ago.
 

papermanzero

Well-Known Member
Member
Joined
Nov 20, 2009
Messages
353
Trophies
0
XP
273
Country
Gambia, The
We already do this.
That's how you write an emulator, you can't really avoid it. Ideally we'd test every function, but a lot of contributors just don't care unfortunately and if we stopped accepting their stuff we'd be way slower - more accurate though. (This is, in part, caused by all these Pokemon kids and non-official builds, pushing Citra in certain directions)

Also note that using a CPU core by someone else is common in the days of open source (and why we depend on the GPL I've talked so much about).
It's essentially how MAME works.
xqemu also uses qemu as a base. I think it won't be long until we see more widespread use of unicorn-engine or some other generic approach (for other emulators).

Yes that's true, that this is the most common approach. Another possibility could be to rely on a very detailed documentation (e.g. for developers).
The leaked Wii DevKit documentation was very helpful to understand how the hardware is working. So many functions could be directly implemented very quickly.
In the past, I used only very detailed documentations for virtualisations, which was the quickest way to build the simulation.
But as already assumed, you are using the 3DS with small homebrew apps as reference.
The Pokemon Kiddys are really annoying. Follow your own path independent of any fan group, which shall be a healthy balance between accuracy and speed.

The open source culture is beneficial. However you have to consider, that after some point in time you have to rewrite the other code.
a) to fit the code to your coding style
b) to optimise the code according to your targets (e.g. dynarec)
c) to get rid of unused functions
d) to enhance the code to enable new features

As a consequence you will have to rewrite the code dramatically.
XQEMU is a good example, which has certain big limitations due to the qemu base.
Starting from speed issues over UI limitations and ending at modern feature sets like HD upscaling.
 

JayFoxRox

Well-Known Member
Member
Joined
May 16, 2016
Messages
143
Trophies
0
Age
34
XP
257
Country
Gambia, The
Another possibility could be to rely on a very detailed documentation (e.g. for developers).
The leaked Wii DevKit documentation was very helpful to understand how the hardware is working.

Wait, we talked about testing before. We are already basing our implementations on reverse engineered docs though (either selfmade or 3dbrew). Note that a lot of Citra developers are active contributors to 3dbrew. Mostly this, this and this.

We won't use leaked devkit information due to the risk of using copyrighted material which could cause a lot of trouble.
Nobody in the emulation scene should. It could open legal options for system manufacturers against emulation in general in case-law.

The open source culture is beneficial. However you have to consider, that after some point in time you have to rewrite the other code.

Of course, but only if different parts of the code interact. It can also be a slow transition, so it's really not that important.
Citras style guide is pretty much: Use the style of the file you are in (which also makes contributing back possible).

XQEMU is a good example, which has certain big limitations due to the qemu base.
Starting from speed issues over UI limitations and ending at modern feature sets like HD upscaling.

I don't feel like elaborating on that HERE, it might be true to some degree only. I personally only blame the outdated version of qemu we use. xqemu is LLE so we / I (can't really speak for espes et al.) don't really want some features in the first place. Once xqemu works it's the base for HLE.
For xqemu, I only care about bootrom HLE so it's easier to make it work for the average user / dev.
 
Last edited by JayFoxRox,

Kirtai

Well-Known Member
Member
Joined
May 6, 2016
Messages
237
Trophies
0
XP
247
Country
United Kingdom
Wait, we talked about testing before. We are already basing our implementations on reverse engineered docs though (either selfmade or 3dbrew). Note that a lot of Citra developers are active contributors to 3dbrew. Mostly this, this and this.

We won't use leaked devkit information due to the risk of using copyrighted material which could cause a lot of trouble.
Nobody in the emulation should. It could open legal options for system manufacturers against emulation in general in case-law.
I take it this means that anyone who's taken advantage of Nintendo opening up the developer portal to everyone and accepted the NDA is now an untouchable pariah so far as Citra is concerned?
 

papermanzero

Well-Known Member
Member
Joined
Nov 20, 2009
Messages
353
Trophies
0
XP
273
Country
Gambia, The
Wait, we talked about testing before. We are already basing our implementations on reverse engineered docs though (either selfmade or 3dbrew). Note that a lot of Citra developers are active contributors to 3dbrew. Mostly this, this and this.
We won't use leaked devkit information due to the risk of using copyrighted material which could cause a lot of trouble.
Nobody in the emulation should. It could open legal options for system manufacturers against emulation in general in case-law.

I don't feel like elaborating on that HERE, it might be true to some degree only. I personally only blame the outdated version of qemu we use. xqemu is LLE so we / I (can't really speak for espes et al.) don't really want some features in the first place. Once xqemu works it's the base for HLE.
For xqemu, I only care about bootrom HLE so it's easier to make it work for the average user / dev.

There are two possibilities of reverse engineering.
Blackbox and Whitebox. Either you are writing small homebrew apps which reveals the function on the real hardware (blackbox), or you have a detailed documentation about the functionality of the system (whitebox). Both approaches are good. And both insights are useful to create an emulator.

The issue you are talking about is using code from the manufacturer (e.g. Nintendo), which is really not recommended.
But using the original documentation to know how the hardware/system is working, and on the basis of that documentation writing own code, is absolutely legit and valid.
You are doing more or less the same with the blackbox approach, however with the whitebox approach you can skip the homebrew part (to see how the system reacts) because it is already documented.

espes is doing a great job. That is clear.
I guess the merging of newer version of qemu into xqemu is the issue, because of the adaptations I was talking about.
If xqemu reaches a stable state, for sure it can act as baseline for further features. However reaching the stable state is still a long way to go.
 

Kharan

Member
Newcomer
Joined
Jul 9, 2016
Messages
10
Trophies
0
XP
76
Country
Poland
On the compatibility list it says that Pokemon Mystery Dungeon Gates to Infinity is playable, but every time I encounter a fight with wild Pokemon in Hazy Pass level, the emulator crashes. Same thing happens before the boss fight on that level so you're unable to continue the game. I'm using the newest nightly build of Citra. Just wanted to point that out in case it hasn't been talked about before.
 

LG_

Well-Known Member
Member
Joined
Apr 10, 2016
Messages
413
Trophies
0
Age
37
XP
232
Country
Brazil
On the compatibility list it says that Pokemon Mystery Dungeon Gates to Infinity is playable, but every time I encounter a fight with wild Pokemon in Hazy Pass level, the emulator crashes. Same thing happens before the boss fight on that level so you're unable to continue the game. I'm using the newest nightly build of Citra. Just wanted to point that out in case it hasn't been talked about before.

Playable means you can PLAY the game. Some games will hang/crash or freeze in some parts, but if you can reach in game and control something, it's still playable.
 

DaMan

Well-Known Member
Newcomer
Joined
Jun 24, 2016
Messages
75
Trophies
0
XP
158
Country
United States
Have to reach 60FPS before you can do 100. Could do frameskipping, but GPU isn't the bottleneck.
BTW was Cyndaquil captured by Team Rocket? Last week's progress on cro++ is gone.
 

wwylele

Well-Known Member
Member
Joined
Oct 17, 2015
Messages
151
Trophies
0
Age
28
XP
395
Country
China
Have to reach 60FPS before you can do 100. Could do frameskipping, but GPU isn't the bottleneck.
BTW was Cyndaquil captured by Team Rocket? Last week's progress on cro++ is gone.
The progress wasn't gone. I just squashed them into one commit.
And I am not a cyndaquil - I evolved!
 
  • Like
Reactions: raulpica

Miguel Gomez

Well-Known Member
Member
Joined
Jan 10, 2016
Messages
2,867
Trophies
0
Age
25
Location
Planet Earth
XP
1,530
Country
And I am not a cyndaquil - I evolved!
Heh! @DaMan called you a Cyndaquil even though you're a Quilava like few months(or a year?). XD
Anyways, does it have any changes on other games like Hyrule Warriors Legends or Smash 4?
The last time I checked was Hyrule Warriors Legends booted on the menu screen.
 

wwylele

Well-Known Member
Member
Joined
Oct 17, 2015
Messages
151
Trophies
0
Age
28
XP
395
Country
China
Heh! @DaMan called you a Cyndaquil even though you're a Quilava like few months(or a year?). XD
Anyways, does it have any changes on other games like Hyrule Warriors Legends or Smash 4?
The last time I checked was Hyrule Warriors Legends booted on the menu screen.
One shouldn't expect changes from last time, because I did only clean up work and minor changes this week.
 
  • Like
Reactions: drwhojan

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    AncientBoi @ AncientBoi: oops :huh: