Skip to content

Subv/shiny-ninja

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShinyNinja

Build Status

GBA Emulator written in C++. Uses Qt5 for the GUI.

ShinyNinja can also be started without a GUI using the "--no-gui" parameter followed by the path to the ROM file you want to load.

TODO List

  • CPU
    • Implement the rest of the ARM opcodes
      • ARM.3: Branch and Exchange (BX, BLX)
      • ARM.4: Branch and Branch with Link (B, BL, BLX)
      • ARM.5: Data Processing
      • ARM.6: PSR Transfer (MRS, MSR)
      • ARM.7: Multiply and Multiply-Accumulate (MUL,MLA)
      • ARM.9: Single Data Transfer (LDR, STR, PLD)
      • ARM.10: Halfword, Doubleword, and Signed Data Transfer
      • ARM.11: Block Data Transfer (LDM,STM)
      • ARM.12: Single Data Swap (SWP)
      • ARM.13: Software Interrupt (SWI)
      • ARM.14: Coprocessor Data Operations (CDP)
      • ARM.15: Coprocessor Data Transfers (LDC,STC)
      • ARM.16: Coprocessor Register Transfers (MRC, MCR)
      • ARM.17: Undefined Instruction
    • Implement the rest of the Thumb opcodes
  • GPU
    • Implement the LCD display routines
  • Video
    • Implement some kind of graphics adapter class so users can extend it and create their own interfaces
    • Provide some basic interfaces based on Qt, ncurses, and possibly libcaca
  • MMU
    • Implement memory writes
    • Implement read/writes to/from unused memory
  • Miscellaneous
    • Implement the emulator GUI (Some work has been started, but it's nowhere near finished yet)
    • Add a JIT compiler (We could use libjit for this)
  • Tests
    • Add more tests

License

To be decided

Contributors

@Subv

@Warpten

About

GBA Emulator written in C++.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages