Seleziona una pagina

Quando si parla di emulatore per Nintendo 3DS, ultimamente, non si fa altro che parlare della difficile situazione riguardo la modifica della console, e spesso si finisce per fare una gran confusione.

La situazione è in realtà, cristallina: è possibile modificare la console e, ad oggi, è persino stato creato il primo emulatore funzionante, Citra.

Tale emulatore consentirà un domani a giocare a giochi commerciali quali Pokemon X ed Y, ma per il momento è parecchio utile agli sviluppatori per  portare avanti la produzione di homebrew.

Di seguito una lista di utili link per chi volesse cimentarsi nello sviluppo di applicazioni caserecce, seguito dai link per il download dell’emulatore, per Windows e GNU/Linux:

Rop Loaders



Di seguito, i link per il download di Citra 3DS:


Ecco, infine, una lista delle novità che ci attendono a breve con i prossimi aggiornamenti dell’emulatore:

Citra Master TODO List


To keep track of everyone’s current priorities, and also to list high-priority items which should eventually be tackled by *someone*.

It’s not meant to be a public TODO list (this should be on the github wiki instead), however TODO ideas suggested here can be considered for addition to a “public” TODO list later on.


Please update the list of your personal TODOs regularly so that other people can see what’s being worked towards. Add suggestions for TODOs for other people as comments, only.


Unassigned Tasks

  • Re-organize data so that most globals live inside an emulation state structure instead
  • Clean up all warnings on gcc, clang and MSVC, so we can start building with -Werror
  • Implement a GDB stub for easier emulated program debugging
  • Fix up Core::Shutdown so that it doesn’t crash Citra every time (in particular, don’t require us to force termination of the emulation thread!)
  • Implement missing OS/kernel objects
  • Implement missing Archive types (
  • Fixup citra-qt oddities:
    • Add Citra icon to title bar on systems other than Windows
    • Fix all of these silly little bugs.
    • Remove “G” (“gekko”) prefix in custom Qt classes
  • Infrastructure work:
    • build bot
    • linter
    • IRC bot
    • website
    • blog
    • Improve Windows build instructions to provide screenshots for each (!) step, i.e. make the Windows build as straightforward as possible
  • Emulate I/O register reads/writes in hw_lcd
  • Implement better MMU emulation
  • CLI tool for remapping input configuration in the GLFW frontend
  • GUI tool for remapping input configuration in the Qt frontend
  • Proper argument parsing
  • Allow clicking on the screen for touchscreen input
  • Cmake setting for totally disabling logs
  • rename renderer_opengl to something less misleading



  • Uploading of travis builds (both OS X and Linux) to MEGA
  • Add config option for auto-starting game in the Qt frontend



  • Look into need for exclusive_detect in dyncom (mutual exclusion?)



  • Report memalloc bug



  • Get blargSnes to render properly
  • “Color filling preparational work” (
  • Add a workaround for unimplemented tev color sources (esp. primary color)
  • Put explicit copyright messages to discussion
  • Support copying via Ctrl+C in the vertex shader debugger
  • Prepare FifoCI:
    • Add fifo log functionality
    • Add frame dumping
  • Fix src1 evaluation in vertex_shader for non-arithmetic instructions (cc yuriks)
  • Finish nihstro
  • Fix command list size (not sure if the register gives the number of commands or command list size in bytes [divided by 4 or so])
  • “VecN<uint>-VecN<uint>” type stuff crap
    • Make Fix12P4’s u16 cast operator explicit (otherwise, Fix12P4{} – Fix12P4{} will result in integer due to implicit conversions)
  • Fix the quasi-infinite loop in CommandProcessor due to uninitialized vertex_attribute_elements[i]


  • Fix shutting down the emu when a blocking socket operation is in progress



  • Write a IDA loader for CXI files.
  • Logging enhancements:
    • Synchronous logging (for debugging)
    • LOG_ONCE
    • Qt logging interface
    • Syscall tracing
    • Syscall bugchecking
    • Multi-threaded formatting
  • Clean up services to properly use ports and sessions to communicate.
  • OS debugger (Display OS objects, etc.)
  • Port to OpenGL 2.1 so we can run in VirtualBox, older cards.
  • Implement Create/MapMemoryBlock in the kernel. Might require some restructuring.
  • Document IPC syscall flow in 3dbrew.
  • Import some AES library and support fixed-key NCCH encryption. (
  • Wishlist Refactor wankery: Think about how to refactor the Citra kernel so it looks more like a real kernel. Make services be “C++ processes” so they can be easily swapped out by real code.


Your name here!

Want to be part of this list? Poke neobrain on IRC!