What are the demos that this is running? Is it possible for anyone to write 3DS code, compile it with GCC + friends, and run it on an off-the-shelf 3DS? I was under the impression that Nintendo had got security right this time and the device remained uncracked.
Any flashcart that works today is likely to be rendered a brick by an upcoming software update. Welcome to modern console gaming: ever changing, ever more crackproof. The exception is Nintendo DS code, for which flashcarts still work because the DS fw is fixed.
>> Any flashcart that works today is likely to be rendered a brick by an upcoming software update.
IIRC, some of the flashcarts have an Emunand feature that lets you play games requiring a newer version (i.e, 6.x) on a 3DS without updating your firmware from 4.x (4.x is required to support the current crop of flashcarts)
>I was under the impression that Nintendo had got security right this time and the device remained uncracked.
I couldn't find much, but it seems that a team called "Gateway" found a userland+kernel exploit that allowed everyone to run unsigned code on the 3DS. It got fixed a bunch of updates ago.
As for how, it seems that the documentation is very bad/completely missing, but from what I get you can write C, compile it with GCC for arm (https://launchpad.net/gcc-arm-embedded) and pass it with some tools to allow booting from the exploit. To interact with the hardware (eg draw to the screen) it seems you can just manipulate directly memory (see https://github.com/Aliakr18/mandelbrot/blob/master/source/me...)
It would be possible to use hardware virtualization features to emulate the different memory layout and hardware MMIO. I would predict that most of the bottleneck is going to be in GPU emulation and the like, so I don't think it would help that much. The greater control and precision of software emulation for the CPU would make quite a bit of sense.
Are GPUs the bottleneck? I thought the modern approach (for anything above an ~SNES) was to simply rewrite graphics calls to run on the native hardware. It's not like Dolphin can emulate 1080p by fully "correctly" emulating a GPU.
Beyond "for the fun of it", what is the purpose of this? So that hackers can run other hackers' games?
Why not spend that effort writing games for an open platform like the web, or for iOS/Android and have the possibility to make money?
I'm not trying to criticize bunnei's work, I'm just generally curious if this is a "because I can" hacker project, or if there is actually a demand in the community to write DS games.
In my experience the emulator development community is driven in large part by the "because I can" mentality.
Developers do play games but mostly for debugging. Once an emulator is "done" they move on to a harder console. For example ppsspp was started by the same guy who started Dolphin. When I hung out on the ppsspp irc I found several other developers were present or former Dolphin devs.
The users tend to be very game-playing focused which is part of why the user&developer relationship is so strained.
Users are the pathological worst customers, the ones patio11 keeps mentioning, they are cheap and demand the sky. Meanwhile the developers are managing immense complexity and no one is getting a paycheck.
It makes everything much easier to understand when you hear of developers quiting. That anyone creates anything is amazing.
Everything is not done to just have the possibility to make money. I played with the ants (real ones) for endless period of time, and I can honestly say, I enjoyed that time very much. Then I wrote a basic ant colony simulation, which did not ran properly or crashed! Two years later Rich Hickey made a similar (and far better) ant simulation program.
You might not be very surprised when you read what that effort directly gave me. Nothing! But Indirectly I grew my interests in Simulations, Video Games which lead to my discovery of a field called Machine Learning, AI and Robotics. I have no real job today, I am still getting ready for college, and I don't know what I will really do in the future. What I know is I can learn.