• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

3DS Emulator Citra Boots First Commercial Game

Skelter

Banned
We should stop everything we're doing now that serves to preserve the legacy of games and making sure they will always be available, for a 5 year-old system that (seemingly) will see a successor by the end of this year/early next year.

Emulation ≠ Piracy. Stop playing the strawman card.

I say this as someone who bought a 2DS not 2 months ago.

This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game? Hell, OoT is definitely available and doesn't need anyone's help to be preserved as many games are on the 3DS.
 

Sciz

Member
Nightmare fuel.

That said, is anyone else amused by the fact that this emulator emulates a 3DS running an emulator which emulates a GBC?

Emulating emulators actually tends to be an interesting test case for accuracy. The Dolphin team's talked a fair bit on their blog about how fixing obvious bugs in VC titles also resolved more subtle bugs in other games.
 

Durante

Member
This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game?
Because publishers, in the general case, do not care about preservation. And even if they did, they might not even be around long enough to preserve anything.

The fact that re-releases of old games often use emulators (and sometimes even cracked versions of games) should be enough to illustrate that publishers can not be relied upon as preservers.
 

nkarafo

Member
Why does preservation fall to the consumer and not the studios that make the game?
Because we don't have faith to studios/companies. Sure, Nintendo may be better than anyone else but many other companies seem to not care at all about this matter and even seem to do things that makes preservation harder and harder.
 
Why does preservation fall to the consumer and not the studios that make the game?

That's the question you should be asking game publishers e.g Konami with P.T

You're free to believe that people only want emulation so they can bypass needing the required hardware/paying for the games, but consider that you won't gain much support in this thread with that stance.
 

SparkTR

Member
This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game? Hell, OoT is definitely available and doesn't need anyone's help to be preserved as many games are on the 3DS.

Because many games, the majority, come from publishers that don't care about them being preserved. Games like OoT are outliers. Looking at a platform like the Amiga, for every Wings, Cannon Fodder and Lemmings there's about 100 lesser known stuff that's virtually impossible to play now if it were not for emulation.
 

nkarafo

Member
Emulating emulators actually tends to be an interesting test case for accuracy. The Dolphin team's talked a fair bit on their blog about how fixing obvious bugs in VC titles also resolved more subtle bugs in other games.
And it's funny how some games have less glitches on Dolphin VC than the best you can get from actual N64 emulators! And that's from someone who is deep into N64 emulation and tests everything that exists in the scene.
 
Ok thanks for the reply. One last thing i forgot about... how many cores does the emulator use? Will you get better performance from an overclocked dual core or a stock speed quad core?

Honestly not sure, I haven't even touched the emulator (still waiting for a recompiler version, so I may be waiting a long time) yet. Rules of thumb for emulation is as always, the faster the cores the better. Even for a multi-core system that's being emulated, it's often easier to emulate in serial (on a single core) because it's harder to match timings when you're running code on 2 or more cores... and that can lead to lots of broken code.

I'm sure someone who has the emu working could give a more accurate interpretation.

And it's funny how some games have less glitches on Dolphin VC than the best you can get from actual N64 emulators! And that's from someone who is deep into N64 emulation and tests everything that exists in the scene.

To be fair, the N64 emulator scene on PC is kind of dead, and has been for a very very long time. PJ64 still updates on occasion... but the developers are mostly working with ancient (10+ year old) code that needs to be completely rewritten and no one is willing to step up to do so. Not without reason mind you, a lot about the N64 hardware is still pretty unknown, and there just isn't the drive to figure it out like there is for Wii and PS3.

And whoever is writing the emulators for Nintendo are going to have direct access to the design documents for the hardware, and maybe even direct contact with the engineers who built the thing.
 

jediyoshi

Member
This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game? Hell, OoT is definitely available and doesn't need anyone's help to be preserved as many games are on the 3DS.

What an odd false dichotomy, preservation falls to the consumer when publishers/developers don't or especially can't do it. No one's faith in Nintendo or the Zelda franchise comes up short of its future availability. A much more simple example to swallow is Lucasfilm's lack of releasing theatrical cuts of the Original Trilogy movies.
 
It's using a JIT recompiler for the shaders, the hardware itself is still in interpreter.

Ah, thanks for the info. Lately I've been reading up on on various topics with the goal of writing a JIT, so it's a topic that interests me.

Also, I had no idea dumping 3DS games was so easy now. I should look into it.

Is anyone else amused by the fact that this emulator emulates a 3DS running an emulator which emulates a GBC?

Interestingly, N64 emulation is in a comparatively terrible state because emulating the graphics is very hard, so for those who want to emulate certain games (Paper Mario and Pokemon Snap come to mind), it's actually recommended to emulate the N64 virtual console releases on the Wii emulator Dolphin if you have the resources.

That said, there's a new-ish cycle accurate N64 emulator called CEN64 that's making great strides in the N64 emulation scene as well. For example, this video from last year shows it running Pokemon Snap better than anything else.
 

nkarafo

Member
To be fair, the N64 emulator scene on PC is kind of dead, and has been for a very very long time. PJ64 still updates on occasion...
Plugins are still being developed though. GlideN64 was a nice jump in quality recently and there are some people working on pixel accurate plugins as well as audio plugins. And there's also CEN64 which aims for accuracy (but it's still in early stages).

But yeah, i suppose it's nowhere near as active as something like Dolphin or PCSX2.
 

petran79

Banned
Because we don't have faith to studios/companies. Sure, Nintendo may be better than anyone else but many other companies seem to not care at all about this matter and even seem to do things that makes preservation harder and harder.

One such example is Primal Rage.
It is very hard to release an arcade accurate version now, because the original game had copy protection. Original developers that added the protection are not interested in such a task for free. Closest available version is the one at Midway Arcade Treasures.

Also Taito Legends probably uses a 2006 MAME emulator. I've played Bubble Symphony and I see the exact issues present in MAME: music boxes are visible in some stages due to inaccurately emulated blending
 

TSM

Member
Plugins are still being developed though. GlideN64 was a nice jump in quality recently and there are some people working on pixel accurate plugins as well as audio plugins. And there's also CEN64 which aims for accuracy (but it's still in early stages).

But yeah, i suppose it's nowhere near as active as something like Dolphin or PCSX2.

Dolphin abandoned plugins becuase it leads to multiple people solving the same issues over and over and none of it makes it back into the code base. This also makes it more likely underlying problems will be corrected rather than worked around.
 
Plugins are still being developed though. GlideN64 was a nice jump in quality recently and there are some people working on pixel accurate plugins as well as audio plugins. And there's also CEN64 which aims for accuracy (but it's still in early stages).

But yeah, i suppose it's nowhere near as active as something like Dolphin or PCSX2.

I hadn't even heard of CEN64, that's really good news! I knew someone would eventually get around to writing something better... Unfortunately, what you have with a lot of emulators is that they were built around getting full speed with ancient computers in mind (See Zsnes, UltraHLE, etc) so they sacrificed a lot of accuracy and the only way to fix them would be to essentially throw it all away. Snes9x tried going that route (tossing out huge chunks of code and completely rewriting them), but that just eventually ended up in abandoning of the project for more accurate from the start emulators (bsnes).
 
This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game? Hell, OoT is definitely available and doesn't need anyone's help to be preserved as many games are on the 3DS.

There are well over 1500 PS1 games, probably more, that will never be able through a typical digital storefront for years, or decades, or maybe never. The full PS1 library is like 2000+ games or something, and the vast majority are not on and probably never will come to the PSN store.

The same or similar applies to SNES or Genesis games, and the proportion continues to rise for all kinds of old games, not just on consoles but on PC as well and even Arcade platforms.

Even old mobile phone platforms of old that turn to dust people will lose access to those games.

There is genuinely no other way to access the full content of the PS1 or SNES or Genesis libraries without game libraries such as those provided by Redump and other "rom sets."

At least one that is economically feasible for the vast majority of people who would like to revisit those games.

Yes it is wrong to "steal" access to videogames. But this issue is also deeply intertwined with the phenomenon of abandonware.
 

Mivey

Member
This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game? Hell, OoT is definitely available and doesn't need anyone's help to be preserved as many games are on the 3DS.
It shouldn't fall to the consumer or the companies, but to society as a whole. Certain things are simply too important to be left to the free market itself. The preservation of culture and art is one of those things. Unfortunately, video games are not as of yet seen as a part of culture worth proactively preserving, which will likely only become an issue in the next few decades once a large body of games will have been lost forever. Hindsight is 20/20 and all that.
 

TSM

Member
It shouldn't fall to the consumer or the companies, but to society as a whole. Certain things are simply too important to be left to the free market itself. The preservation of culture and art is one of those things. Unfortunately, video games are not as of yet seen as a part of culture worth proactively preserving, which will likely only become an issue in the next few decades once a large body of games will have been lost forever. Hindsight is 20/20 and all that.

Not only that, but major publishers like Sega have been caught using roms they found online in their own commercial releases. People assuming that just because a company is big that they have preserved anything at all would be shocked by how disposable even the companies making these games consider them.
 

nkarafo

Member
Besides, stories of studios losing the source code of their older games are pretty common. The more recent i heard was that the source code of the original Bubble Bobble is lost. One of the most iconic games of my childhood man... Thank god for MAME keeping it alive for ever, even after the last working arcade board in existence rots.
 
It shouldn't fall to the consumer or the companies, but to society as a whole. Certain things are simply too important to be left to the free market itself. The preservation of culture and art is one of those things. Unfortunately, video games are not as of yet seen as a part of culture worth proactively preserving, which will likely only become an issue in the next few decades once a large body of games will have been lost forever. Hindsight is 20/20 and all that.
This happened with movies and it's terribly sad. So many of the first films are lost forever.
 

Tain

Member
This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game? Hell, OoT is definitely available and doesn't need anyone's help to be preserved as many games are on the 3DS.

Do you know how much arcade history would be missing if not for ROM dumping and emulation over the years?
 
I hadn't even heard of CEN64, that's really good news! I knew someone would eventually get around to writing something better...

Yes, CEN64 is another emulator that's currently very interesting to follow. In addition to the CEN64 video in my previous post with an accurate Pokemon Snap, the CEN64 developers recently made great strides by implementing emulation utilizing multiple cores (4), so even though it's cycle accurate, it should be full speed on a wider range of hardware now.
 
Ars Technica just published an interesting article related to the "demonization" of emulation that some people prone to drive-by-shitposting in emulator threads should read :)

http://arstechnica.com/gaming/2016/03/how-the-demonization-of-emulation-devalues-gamings-heritage/

The most interesting thing about that article...

In fact, the ROM file for Super Mario Bros. currently distributed on the Virtual Console sports an iNES file header, a format that was first developed for an emulation project in the mid-'90s. By far the most likely reason that header is in an official Nintendo product, Cifaldi says, is that the company downloaded a copy of its own game from the Internet. "Nintendo is pirating its own ROMS and selling them to you!" he said.

I did not know this... If Nintendo doesn't even have a clean version of their own Super Mario cart....wow it's worse than I thought.


(edit) Reading the attached article... Cifaldi is being super contradictory, saying that developers need to think of emulators as codecs and to re-release games constantly and that not every game needs a remake or added features... then in the article for his work on Mega Man Legacy collection says that he'd feel insulted just buying a rom and emulator, that classic games should have a lot of extras...
 

nkarafo

Member
Yes, CEN64 is another emulator that's currently very interesting to follow. In addition to the CEN64 video in my previous post with an accurate Pokemon Snap, the CEN64 developers recently made great strides by implementing emulation utilizing multiple cores (4), so even though it's cycle accurate, it should be full speed on a wider range of hardware now.
These are the best news!

The current pixel-accurate plugins only use 1 core.... so the games run like shit (70% of speed) while only using the 25% of the CPU potential. If it could only use one more core, it would be perfect. I know it's harder for the developer to code but really, this is the only way forward. You can only overclock as much. We need these cores working damnit!
 

Nerrel

Member
This sounds like such a bullshit reason to me. Why does preservation fall to the consumer and not the studios that make the game? Hell, OoT is definitely available and doesn't need anyone's help to be preserved as many games are on the 3DS.

Because a lot of studios absolutely fuck it up. Look at what happened with Resident Evil REmake, where Capcom lost all of the original models and assets. Developers often don't care about preserving their work as much as you'd assume. Other times, companies don't provide good quality releases of their games. See Nintendo's virtual console for basically all of the evidence you need of this; Nintendo either doesn't release their games fast enough, doesn't release them at all, or gives us versions that are far inferior to what has been available on PC emulators for years. PC emulation guarantees that these games will be available forever, and that they'll be enhanced beyond what the original systems were capable of.

I own all of the games I emulate on my PC, and I'm pretty sure everyone else in this thread does too. For me, emulation is a much better way of playing the games I own than the native systems. Anyone who has used Dolphin will attest to how hard it is to go back to the Wii hardware after seeing those games in full HD.

When it comes to OoT, Nintendo has actually censored the release in all of its current versions, and the 3DS remake may not be to everyone's taste. If you want to play the original release, you're either going to have to be lucky enough to still have a working cart or emulate it. And those carts won't be around forever. It's nice to have an alternate option to play games when companies decide we shouldn't be able to on their official hardware.
 

Mivey

Member
Could somebody try to compile this branch for me?
https://github.com/JayFoxRox/citra/tree/gs-debugger

Getting a ton of errors when compiling video_core for some reason.
Would be easier if you just PM'd me your error. Usually building stuff should be braindead easy, probably forgetting something. (Unless it is an open source project that is relying on 12 different packages, all of which have conflicting requirements. That's a valid case for suicide.)
 

Aureon

Please do not let me serve on a jury. I am actually a crazy person.
These are the best news!

The current pixel-accurate plugins only use 1 core.... so the games run like shit (70% of speed) while only using the 25% of the CPU potential. If it could only use one more core, it would be perfect. I know it's harder for the developer to code but really, this is the only way forward. You can only overclock as much. We need these cores working damnit!

If the console bios is single-threaded, and the game is written as single-threaded...
... the emulator game loop will be single-threaded. Not much you can do about it.
 

Vuze

Member
Would be easier if you just PM'd me your error. Usually building stuff should be braindead easy, probably forgetting something. (Unless it is an open source project that is relying on 12 different packages, all of which have conflicting requirements. That's a valid case for suicide.)
I cloned the repo using
Code:
git clone --recursive --branch gs-debugger https://github.com/JayFoxRox/citra.git
and used cmake just as I do with every other cita branch/version I sucessfully compiled.

There are 73 errors for me: http://i.imgur.com/2nL4ut4.png.
Seems like other people are having issues as well https://github.com/citra-emu/citra/issues/1053#issuecomment-200472598

E:
Hallo Cornelius ;-)
I'll give it a try tomorrow and try to build it on Linux.
#sp00ked :x
 

c0de

Member

Vuze

Member
The git issue you linked to talks about a bug in the emulator, are you sure you copied the right URL?

As for the error, an assert is failing. This one, probably. This doesn't make much sense, assuming it ever compiled for anybody. Curious.
See the last comment ;) Somebody is working on the issue (JayFoxRox) and shared his Citra WIP branch in the thread - which is what me (and the other guy in the thread) are trying to compile without success.
I'll just wait until he responds, it's clearly nothing I can fix :p

E: Yeah, seems to be an issue with VS. I'll set up a Linux VM and try there.
 

Mivey

Member
I booted up Ubuntu and tried to build it following these steps. (and installing SDL2 requires (sudo) apt-get install libsdl2-dev ;) )
Works fine, lots of warning, but it compiles, links and boots up. So this must be an error with your toolchain, assuming you did everything correctly on your end.
 

Vuze

Member
What a day to be alive :,) It runs incredibly slow but finally shows a lot of stuff accurately thanks to the geometry shader implementation.
i5VUXbm.png
w2IeJL6.png
FZsjksA.png
1FWDdZH.jpg

https://github.com/JayFoxRox/citra/tree/geometry-shader
 

Dicer

Banned
I booted up Ubuntu and tried to build it following these steps. (and installing SDL2 requires (sudo) apt-get install libsdl2-dev ;) )
Works fine, lots of warning, but it compiles, links and boots up. So this must be an error with your toolchain, assuming you did everything correctly on your end.

I get to here

Code:
[ 51%] Building CXX object src/core/CMakeFiles/core.dir/hle/service/gsp_gpu.cpp.o

Which yields...

Code:
In file included from /home/dicer/citra/src/./video_core/debug_utils/debug_utils.h:19:0,
                 from /home/dicer/citra/src/core/hle/service/gsp_gpu.cpp:17:
/home/dicer/citra/src/./video_core/pica.h:753:17: error: member ‘Pica::Regs::<anonymous struct>::LightSrc::<anonymous struct>::<anonymous union> Pica::Regs::<anonymous struct>::LightSrc::<anonymous struct>::<anonymous>’ with constructor not allowed in anonymous aggregate
                 union {
                 ^
/home/dicer/citra/src/./video_core/pica.h:757:17: error: member ‘Pica::Regs::<anonymous struct>::LightSrc::<anonymous struct>::<anonymous union> Pica::Regs::<anonymous struct>::LightSrc::<anonymous struct>::<anonymous>’ with constructor not allowed in anonymous aggregate
                 union {
                 ^
/home/dicer/citra/src/./video_core/pica.h:763:17: error: member ‘Pica::Regs::<anonymous struct>::LightSrc::<anonymous struct>::<anonymous union> Pica::Regs::<anonymous struct>::LightSrc::<anonymous struct>::<anonymous>’ with constructor not allowed in anonymous aggregate
                 union {
                 ^
make[2]: *** [src/core/CMakeFiles/core.dir/hle/service/gsp_gpu.cpp.o] Error 1
make[1]: *** [src/core/CMakeFiles/core.dir/all] Error 2
make: *** [all] Error 2


And pffft, craps out...

Linux Mint 17.3 all pre-reqs seemingly met.
 

LewieP

Member
These screenshots are a compelling argument for a shared library across handheld and home console for NX.

Take most 3DS games and give a boost to resolution/models/textures/effects/IQ etc, and design the UI around higher resolution, and they'd look great on a home console/big TV.

If they could get games running at 30fps on a 540p display to also run at 60fps on a 1080p display with a variety of appropriate upgrades, that would be pretty neat.
 

Rich!

Member
I was gonna play through MM3D again...but I think I'll just wait now to play it in 1080p on my TV with a dualshock 4 (gyro)

Only issue is...that second screen. If we can split the windows over multiple desktops that would be fine - I can throw the bottom screen to a smaller 4:3 monitor under the TV.
 

InfiniteNine

Rolling Girl
I was gonna play through MM3D again...but I think I'll just wait now to play it in 1080p on my TV with a dualshock 4 (gyro)

Only issue is...that second screen. If we can split the windows over multiple desktops that would be fine - I can throw the bottom screen to a smaller 4:3 monitor under the TV.

I'll probably just do what I did for my 3DS capture set up and work something like this in:
8GojgJq.png


Although I guess not having a full view of the bottom screen would make item swapping more difficult.
 
I look forward to the day when one can play their 3DS collection in 1080p, downsampled from 4K at full speed, like one can with PCSX2 and Dolphin. Downloading Citra today: today is not that day. I've got an i7-6700K @ 4GHz, 32GB of RAM, an Nvidia GTX 970, and an SSD, and I'm hoping that'll be good enough for full speed once the emulator's optimized further--it ran faster than I expected, but nowhere close to gameplay speeds.
 

-shadow-

Member
The day that we'll be able to play Kid Icarus Uprising, Majora's Mask, SMY IV and of course Star Fox 64 3D in HD! &#128525;

I honestly wouldn't even be surprised of SF643D looks better than Zero actually...
 
Top Bottom