3DS Emulator Citra Boots First Commercial Game

Amazing stuff

Native 1080p HD Majoras Mask 3D with AA played with a Wii U Pro Controller on my HDTV is becoming a real possibility!

In like, two years from now. But still, daaamnnn son
 
Fire Emblem: Awakening now boots.

CFhCAsKXIAAchly.png
 
What about games that use the touch screen? How do we deal with that? lol

That was solved waaay back in the DS days, you click and/or drag on the location most of the time. Can't remember what was used for things where pressure mattered since I don't think I've ever played a game where it did.
 
That was solved waaay back in the DS days, you click and/or drag on the location most of the time. Can't remember what was used for things where pressure mattered since I don't think I've ever played a game where it did.

I didn't even know that the DS/3DS had pressure-sensitive touch screens.

And damn, they got Majora's Mask to run? I wasn't expecting them to get such a late 3DS game running so soon.
 
So many games are booting now. Can't wait to try Kid Icarus Uprising at a higher resolution. =) Nintendo has a great artstyle that's hindered by low resolution. Then again, I usually don't care because of poor eyesight. Heh.

So, are they at the stage of development where the majority of the pieces fall into place?
 
I didn't even know that the DS/3DS had pressure-sensitive touch screens.

IIRC only some of the DS models (I think just the Phat and Lite) had them. But Nintendo didn't allow devs to actually use that feature, so only some homebrew apps supported it.
 
So many games are booting now. Can't wait to try Kid Icarus Uprising at a higher resolution. =) Nintendo has a great artstyle that's hindered by low resolution. Then again, I usually don't care because of poor eyesight. Heh.

So, are they at the stage of development where the majority of the pieces fall into place?

Not yet, they make a lot of progress with games booting and getting ingame, but the emulator is still very, very slow. It will need to be able to run games a lot faster to be usable. Still amazing progress though!
 
So many games are booting now. Can't wait to try Kid Icarus Uprising at a higher resolution. =) Nintendo has a great artstyle that's hindered by low resolution. Then again, I usually don't care because of poor eyesight. Heh.

So, are they at the stage of development where the majority of the pieces fall into place?

In time. I imagine in the next few years, like with PPSSPP, major jumps will happen to make more and more of the library playable. We're seeing baby steps here.

It wouldn't be too alarming to expect decent game compatibility before NX launches from Nintendo.
 
Can't wait for when future me has a dope glasses free 3D monitor and play my old 3DS library in UHD.
 
I can never seem to get Citra to work. Everytime I try to load one of my ROMs it fails. Do I need to provide my own bios, or is there a specific type of ROM it has to be?

Edit: It seems the method is described here.
 
I can never seem to get Citra to work. Everytime I try to load one of my ROMs it fails. Do I need to provide my own bios, or is there a specific type of ROM it has to be?

Edit: It seems the method is described here.
Yep that's exactly what you need to do to your ROMs.

And good news about OpenGL! Will try it later today!
 
Been playing around with the latest build and OpenGL a bit but apparently it doesn't render to the window resolution anymore? iirc the unofficial OoT3D build from a few months ago did that. Maybe I'm just missing sth.
 
I can never seem to get Citra to work. Everytime I try to load one of my ROMs it fails. Do I need to provide my own bios, or is there a specific type of ROM it has to be?

Edit: It seems the method is described here.

This kind of sucks... On 9.4 which allows me to use most other browser exploits, but not be able to dump my own roms which is poo. Though it looks like the way to decode would be blocked to me anyways.
 
IIRC only some of the DS models (I think just the Phat and Lite) had them. But Nintendo didn't allow devs to actually use that feature, so only some homebrew apps supported it.

Kinda for the best. Pressure sensitive buttons were a mistake. The only games I ever saw to use them well was MGS2 and 3 and even then I can see how it would be confusing for a LOT of people.
 
My dream is to be able to play my 3DS games on my 3D projector with my Surface pro in my lap as the touch screen. I guess it would be better if I had one of those tablets that has a controller 'cradle' accessory though.
 
My dream is to be able to play my 3DS games on my 3D projector with my Surface pro in my lap as the touch screen. I guess it would be better if I had one of those tablets that has a controller 'cradle' accessory though.

Wasn't there progress on the Wii U GamePad being hacked a while back? If one is are able to use the GamePad as an input device, while outputting a segment of your desktop's screen onto the GamePad's screen, then that might be what you are looking for.

The challenge will be using the Wii U touchpad to emulate the 3DS', but there are a variety of options once it's been completely hacked.
 
Man the dream is coming true. Now if only I had a way to use my surface as the bottom screen and my pc power my tv as the upper one
 
Man, when Metal Gear Solid 3 can run at 60fps at high resolutions, it should be the best version of the game. The HD rereleases didn't include crouch walking.
 
Man, when Metal Gear Solid 3 can run at 60fps at high resolutions, it should be the best version of the game. The HD rereleases didn't include crouch walking.

Emulators can't magically make games that were hard coded to run at 20 fps suddenly run at 60 fps.
 
Hi, I've always been fascinated by people's ability to rework tech and understand hardware that has no basis for comparison or documentation. I just had a question about the general process of developing the software and hardware involved with emulation.

How do you go about development on a day to day basis? I know I won't understand the very technical aspects but just in simple terms, is it alot of experimentation that you'll make small changes to code, test it out and rinse and repeat? And how do you know what changes to make, is it experimentation or following the digital architecture you're attempting to emulate through access to internal code on said system?

I guess I'm unsure of how someone knows where to start in such a large endeavor. I know if I was provided all the hardware necessary to figure out some tech I had never seen that I'd have no idea what to do/where to begin.

How did people develop the hardware to either read code from the system itself or to even read games? My mind is blown by the fact that people are able to create hardware capable of interfacing with these closed systems that I can't even imagine how they would know where to start in terms of creating software capable of interacting with tech that's previously undocumented.

To put it in the simplest terms, I have no idea how someone begins a project like this, do they begin by attempting to recreate the O.S. from scratch? Do they find a way to read processes as they are running and then change values, comparing what happens to find out what function affects what?

I apologize for this wall of text and so many questions, it's entirely passion driven as it amazes me what some people can do with tech that didn't exist before the console manufacturers made it.

I remember being shocked about initial D.S. emulation as I had assumed that DS carts are manufactured using proprietary hardware that "readers" didn't exist for, in the way that SD cards used for save files were an existent tech beforehand.

Thanks for bearing with me, and a big thanks for all the hard work put in by the people working on this emulator and explaining it to people like me, I can't wait to see how it turns out down the road :D

You might consider reading this: http://emulator101.com/ as it walks through step by step of creating an emulator for Space Invaders.
 
Emulators can't magically make games that were hard coded to run at 20 fps suddenly run at 60 fps.

Sure they can when hacks are implemented.

See: N64 games, PSP and PS2 games, etc. Absolutely no reason why that same kind of hack can't be implemented for some 3DS games if its viable.
 
Sure they can when hacks are implemented.

See: N64 games, PSP and PS2 games, etc. Absolutely no reason why that same kind of hack can't be implemented for some 3DS games if its viable.

That's true, but such hacks are rare and expecting one to come out for any one particular game is folly. Many games have certain animations or other aspects tied to the game's framerate and hacking the game to run at 60 fps can cause severe glitches.
 
Sure they can when hacks are implemented.

See: N64 games, PSP and PS2 games, etc. Absolutely no reason why that same kind of hack can't be implemented for some 3DS games if its viable.

Yes and no. Most modern games are programmed with something called delta timing. Let's say you want a character to move at 5 meters every second, irrespective of the framerate, you would do two things. Before any other code is run, figure out how long the last frame took. Then use that as a multiple to figure out how much more or less everything in the current frame should move. So if you're running smoothly at 60fps, delta might be 1/60. If the last frame took 1/5 of a second for some reason, then delta would be 12/60 to speed everything up and catch up to where it should be if those frames weren't dropped.

Code:
pos = pos + (5 * delta);

But multiplying everything in your game by the delta value takes a lot of processing, so if you're already strapped for frames and hardware then it's math you really don't want to do. This is especially true on older hardware that doesn't support non-integer math. So if you want your character to move at 5 meters every second, then you first figure out how many frames per second you're getting on average and then hard code the data in. So a game getting 20 fps would look something like this:

Code:
pos = pos + 0.25;

If anything is hardcoded like the above, rather than using delta timing, then getting a higher framerate means speeding the game up. That 20 fps game at 60 fps now has the character moving at 15 m/s instead of 5.
 
That's true, but such hacks are rare and expecting one to come out for any one particular game is folly. Many games have certain animations or other aspects tied to the game's framerate and hacking the game to run at 60 fps can cause severe glitches.

We've seen it work in practice in multiple games already, no reason to doubt that it's possible. If the poster is willing enough, they could implement the 60fps hack themselves. It's not wholly unrealistic that some programmer in the world might be passionate about the MGS franchise and want to see that game running at its best.
 
We've seen it work in practice in multiple games already, no reason to doubt that it's possible. If the poster is willing enough, they could implement the 60fps hack themselves. It's not wholly unrealistic that some programmer in the world might be passionate about the MGS franchise and want to see that game running at its best.

And nearly all games that use such hacks end up exhibiting errors on some level or another, many of which becoming unplayable as a result. Part of it is going to be pain tolerance and people being willing to accept the errors such improvements bring to games, but some games are simply not going to work.

The less accurate you make an emulator act, the more room you leave for errors and unintended consequences. It's not some magic panacea bullet.


Wow, once they have a recompiler or, even better, a JIT recompiler up and running Citra is going to fly. I can understand them wanting to focus on compatibility right now though.
 
Top Bottom