mirror of
https://github.com/pound-emu/ballistic.git
synced 2026-06-17 04:16:48 -07:00
cb12ae48098ef142914b5f3a2569d3eddedbf40a
If a script fails to load or lua throws an error during execution, the dashboard aborts which could get annoying when working with lua and FFI bindings without proper IntelliSense. This commit makes the dashboard stay alive during a hot reloading or lua runtime error. The dashboard will then only reload the lua file if it has been modified. This adds 'dashboard_backend_recover()' in dashboard_backend.h to recover lua's stack during a runtime error. This function simply destroys and reinit the ImGui window context. The dashboard will then run with a blank frame until the lua script has been reloaded. Signed-off-by: Ronald Caesar <github43132@proton.me>
The Ballistic JIT Engine
„The world's fastest ARM recompiler“
Overview
This is a rewrite of the dynarmic recompiler, with the goal of fixing its many flaws.
Immediate Goals
- Create Tier 1 backend compiler.
- Create Tier 2 backend compiler.
- Support
MOVZ,MOVK,MOVNinstructions on both compilers. - Add more peephole optimizations.
- Have 100% branch coverage.
- Have a config to change Ballistic behavior at runtime.
- Support Block linking.
- Map ARM flags to x86 flags.
- Support 128-bit types and x86 SSE/AVX instructions.
- Add exception handling and recover guest CPU state.
- Add register spilling.
- Add Callback Memory Model.
- Add TLB Memory model.
- Rewrite
tools/cdoc.c
Building Ballistic
Install Dependencies
macOS
brew install cmake python3 llvm
Debian/Ubuntu
sudo apt update
sudo apt install build-essential cmake python3
Fedora
sudo dnf install cmake python3 gcc-c++
Configure CMake
mkdir build
cd build
cmake ..
Build Binaries
cmake --build .
The compiled executables will be created in the build/bin and build/lib directories.
See tools/ for more information on these executables.
Languages
C
37.7%
cpp
36.8%
Lua
21.3%
XSLT
2%
C++
1.2%
Other
1%