Our 38c3 presentation on 10 years of 3DS emulation is now available on YouTube! 🎉

neobrain dives into the history of Mikage's conception and the technical challenges it solves!

https://www.youtube.com/watch?v=OKsh25I1Jqk

(apparently uploaded a while ago but just recently set to public)

38C3 - 10 years of emulating the Nintendo 3DS: A tale of ninjas, lemons, and pandas

YouTube
10 years of emulating the Nintendo 3DS: A tale of ninjas, lemons, and pandas

media.ccc.de

And of course, don't forget to take a look at the big Mikage source drop that was unveiled during the talk!

https://github.com/mikage-emu/mikage-dev/

We're still happy to welcome more first-time contributors! 👀

GitHub - mikage-emu/mikage-dev: Mikage Developer Edition

Mikage Developer Edition. Contribute to mikage-emu/mikage-dev development by creating an account on GitHub.

GitHub
@mikage Hey there if I may ask, what's the UI going to be made in? I'm asking as me and friends would like to help with emulator accessibility if we can, although we are not programmers.

@GoemonIshikawa It's QML with Qt Quick Controls, so accessibility support should be good out of the box.

Let us know if (besides the tech stack) there's any accessibility traps that emulators commonly run into though!

@mikage Hey there. I think that the UI being used via QT is very good, but I do know something that may be worth talking about if you'll permit me to ask a question. Is it possible for emulator to natively print text to the screen?
@GoemonIshikawa Err, depends on what you mean with "native". True native text printing isn't even used by web browsers anymore (GPU rendering and all). Instead, platform APIs let you to declare text positions for e.g. screen readers, which toolkits (like Qt) make easy to do.
@mikage Oh I see. Well I was thinking of something along the lines of this emulator, but only that it'll be built in to allow for true navigation of the system and its contents. There is this emulator called ZEsarUX https://github.com/chernandezba/zesarux that once it's configured, would allow programs that use tts for example screen readers to interact with the ZX spectrum system, via analyzation of text in RAM and pushing it directly to the accessibility system via NVDA controller client32/64.dll for NVDA, or mainline tts for users with out screen readers AKA printing text to the screen, rather than just drawing it.
This feature is also used in another emulator called Altirra, an Atari emulator where the text is systematically pushed and this will allow for use of the system and for text adventure games. https://www.virtualdub.org/altirra.html
This feature is not on much emulators, but if it was it would allow the 3ds system and that includes the Home Menu and its settings to be navigable and understandable as the text would be pushed on each navigation of the system. Let me know what you think, as I might can answer your questions if any.
GitHub - chernandezba/zesarux: ZEsarUX - ZX Second-Emulator And Released for UniX

ZEsarUX - ZX Second-Emulator And Released for UniX - chernandezba/zesarux

GitHub

@GoemonIshikawa Ah, you're talking about enhancing accessibility of the emulated content then, not the emulator GUI itself.

This would be much more complex for the 3DS, since there's no direct/consistent mapping of "text in RAM" to "stuff that appears on screen". Every title would require bespoke research and implementation effort.

@mikage Oh I see. That's one of the things I feared, but it's not as bad as you might think. Let's take a look at it from the most basic thing we could get to, and that's the consoles firmware. I'm not a programmer so I might be getting all of this wrong, but I am also someone that wants better for me and my people and will help how I can. Now unless I'm mistaken the firmware has places where it systematically displays text, let's use position 2 as an example.
Number 0 calls the verifycation of the firmware and runs boot check, number one loads system environment and sound samples for boot process, and number 2 will load menu and the variables for that, and part of that is text.
When I said that text could be printed to the screen for games that doesn't mean we have to just know everything and push that, if it's a small environment like the boot firmware it's a good start at least, it's small enough to exammen the system and unless I got it wrong, you'll have not enough places where the text can't be found, at least that's my understanding.
If there was an accessible way of looking at this I could get bunch of blind people on this but this is all I've been able to come up with. Please, help me to understand, and then I could probably think of something to help.
@GoemonIshikawa I don't think there's a way we can help without effectively taking on all the work ourselves. Dedication is one thing, but there's no magic piece of information I can give that would get you started.