Quantcast
Viewing latest article 11
Browse Latest Browse All 20

Updated Wiki: Milestones

= Version 1.0 "Weisbecker" =
  • Secure VirtualMachine class so that any internal classes cannot be accessed outside the class such is vulnerable memory, and mounted files.
  • Restrict how debuggers can be used and they need to authenticate with a token so debuggers are not exploitable when developer chooses not to allow them in public releases
  • Improve memory management such as paging and faster read/write with support of page/pointer descriptors for analysis of mapped memory state and usage
  • Implement memory access caching where the memory doesn't does not always need to constantly look-up pages for every memory read/write operation. The simple one page reference caching still checks addresses per byte operation. A thread should run in the background and check the current address pointer and cache more memory (or update) before the address pointer hits the end of the cache block. This allows the whole virtual machine to run without any performance hits since memory is not consistent on how memory pages of data are stored. This method converts non-consecutive memory into temporarily consecutive memory without even doubling the memory usage of the class itself.
  • Implement some experimental vector structures that to allow .NET programs access real vector accelerated operations. If native CPU host supports vector processing, the class will wrap native code and use it. If there is not HW support for using vectors then it will have to be emulated for compatibility reasons or it can try to approach the GPU to perform vector math. This also includes support of overriding the class and implementing vector functionality in other ways such if this was running on a PowerPC and not just x86. (NEmu.Vector assembly) Mono.Simd might already be all we need for vectorization, howerver will need to test on how well it works especially not running on Mono framework / VM.
  • VirtualMachine class needs a way to allow internal access only to classes that have references inside of it, such as memory pages might need to get access to internal parts of the machine. It will be tricky to do this properly without risking anything to really needing to be visibly public
  • Plans to implement a library WPF level of classes for associating WPF controls with the core Nemu library properly. (NEmu.UI.Presentation)
  • Also maybe make a clone of controls in WinForms (NEmu.UI.Forms)
  • If anytime, maybe do WxWidgets for cross-platform GUI (NEmu.UI.WxWidgets)
  • More support on Dynamic recompilation for emulators, such as base classes and tools. Allow memory to directly work in dynarec time such as using pointers in emitted code without needing to call read/write methods. More research to be done for what else a dyanrec needs.

Viewing latest article 11
Browse Latest Browse All 20

Trending Articles