ts-native
dynarmic
ts-native | dynarmic | |
---|---|---|
2 | 6 | |
6 | 967 | |
- | - | |
7.8 | 8.8 | |
3 months ago | 2 months ago | |
C++ | C++ | |
- | BSD Zero Clause License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ts-native
-
Embeddable script compiler for video games
I have gone through 3 iterations and the third was faster than Lua and came close (enough for me) to native C performance with the benchmarks I tried. I'm now on the fourth and hopefully last iteration of this masochistic quest and I'm tired. I want to do this right. I've even made it through much of the dragon book. Apart from the naive solutions I end up wanting to replace in each previous iteration, the problem I keep coming up against is that I can't find many resources that describe interfaces between the host (C++) and the compiled code. I come up with my own ideas for how things should work and look, and then once I finish I can't shake the feeling that there's a better/cleaner/faster way. I start over and come up with better solutions only to feel the same eventually. I want to write solid code that I can feel confident about so I can put this all behind me.
-
[C++] My third attempt at a scripting engine
Here's an example: test.gjs
dynarmic
- Dynarmic – An ARM dynamic recompiler (AArch32/64 to x86-64/AArch64)
-
RyujinX – Open Source Nintendo Switch Emulator
They're probably referring to dynarmic: https://github.com/merryhime/dynarmic
-
[News] TouchHLE: high-level emulator for iPhone OS apps released
As an HLE, touchHLE is radically different from a low-level emulator (LLE) like QEMU. The only code the emulated CPU executes is the app binary and a handful of libraries; touchHLE takes the place of iPhone OS and provides its own implementations of the system frameworks (Foundation, UIKit, OpenGL ES, OpenAL, etc).
-
Latest news from Emulation regarding Mac
https://github.com/merryhime/dynarmic/pull/697 - Dynarmic implementing Arm backend support. Dynarmic is a dynamic recompiler for ARM.
-
Ryujinx - Progress Report July 2021
I did some work on Dynarmic, so there's my bias I guess. But I def believe Dynarmic would emit better context-aware assembly than a CIL->Native jitteror the JVM would emit. Dynarmic takes advantage of instruction sets like BMI2 and AVX{2,512} and uses a pretty darn concise intermediate representation to the original ARM assembly to emit efficient x86 while a C# JIT probably still only emits baseline x86-64 and struggles with efficient vectorization of things like Arm's NEON instructions. Can't even imagine a C# or Java VM trying to automatically emit optimal assembly for an FMADD including handling NaN propagation or detecting that FMINNM can be very quickly emulated with a single vrangep{s,d} x86 instruction.
-
What are the implications of AVX-512 for emulation?
For emulators, it's currently used in dynarmic(Yuzu's ARM-to-x86 recompiler backend) for the fast emulation of ARM's NEON instruction set.
What are some alternatives?
Ryujinx - Experimental Nintendo Switch Emulator written in C#
libmorton - C++ header-only library with methods to efficiently encode/decode Morton codes in/from 2D/3D coordinates
asmjit - Low-latency machine code generation
vvctre - A Nintendo 3DS emulator with Lua scripting for Windows 7+ and Linux (the default script is vvctre folder/script.lua)
rpcs3 - PS3 emulator/debugger
ClassicUO - ClassicUO - an open source implementation of the Ultima Online Classic Client.
fujihack - Reverse engineering Fujifilm cameras
Switch-Emulators-Guide - A guide to get either Yuzu or Ryujinx running on your PC. Includes links for games, keys, firmware, shaders and some other stuff. Made for 128BitBay and r/NewYuzuPiracy.
onejit - [ALPHA] Go just-in-time compiler
touchHLE - High-level emulator for iPhone OS apps. This repo is used for issues, releases and CI. Submit patches at: https://review.gerrithub.io/admin/repos/touchHLE/touchHLE
EKA2L1 - A Symbian OS/N-Gage emulator
CL-CXX-JIT - Common Lisp and CXX interoperation with JIT