No description
Find a file
Ronald Caesar f15417802d aarch64: Correct vCPU register state and add FP/SIMD support
The initial vCPU state for AArch64 had a couple of architectural
inaccuracies that this commit corrects.

First, AArch64 has 32 general-purpose registers (X0-X31), not 31.
The stack pointer (SP) is not a separate special-purpose register
but is an alias for register X31. The dedicated `sp` field in
vcpu_state_t was therefore redundant and architecturally incorrect.
This change increases GP_REGISTERS to 32 and removes the separate
`sp` field. The SP should be managed via `r[31]`.

Second, to support floating-point and SIMD instructions, the vCPU
state must include the vector registers. This adds the definitions
and storage for the 32 128-bit FP/SIMD registers (V0-V31).

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-08-12 06:05:31 -04:00
.github/workflows re-add macOS ARM64 to the build.yml 2025-08-08 00:02:32 +01:00
3rd_Party Update Submodules 2025-07-15 11:53:57 +02:00
android/app/src/main/cpp/org/pound/poundemu HOPEFULLY NOW IT WILL WORK I HATE NT I HATE NT I HATE NT 2025-07-08 04:22:29 +01:00
core aarch64: Correct vCPU register state and add FP/SIMD support 2025-08-12 06:05:31 -04:00
gui gui: add asserts to guarantee behaviour 2025-08-10 02:10:06 -04:00
resources new, better logo + fuck webp 2025-07-25 12:41:18 -04:00
WIP/fs Revert 3rd Party, add them to Core instead 2025-06-17 16:14:00 -04:00
.clang-format add .clang-format 2025-08-10 02:10:06 -04:00
.gitignore Improved gitignore files 2025-06-23 16:43:30 +02:00
.gitmodules Update Submodules 2025-07-15 11:53:57 +02:00
CMakeLists.txt feat(gui): Extract and modularize GUI system from main.cpp 2025-07-09 09:07:32 +02:00
CMakeSettings.json CMake, Big Cleanup, CI Build and 3rd_Party 2025-06-17 18:51:46 +02:00
Compatibility Compatibility Table made 2025-06-23 15:58:53 +02:00
CONTRIBUTING.md feat!: rewrote program in a data oriented style. 2025-08-02 04:05:05 -04:00
LICENSE Use GPL-2.0 2025-06-24 21:06:25 +02:00
README.md Update README.md 2025-08-08 00:18:47 +01:00





Pound

“i think of getting pounded when i see that [name]” Satisfied Customer

Note

This project is still being worked on, and we really need help as we only have a few developers.
If you know C++ and think you can help out, hop into the Discord and let us know. :)

Overview

Join the Pound Discord Server!

Pound is an early-stage emulator for the Nintendo Switch 2, targeting Windows, Linux and macOS ( Intel and Apple Silicon).

Initial focus is on implementing the architectural similarities to the original Nintendo Switch. Later stages of development will address differences in hardware between the two console generations.

Disclaimer

The goal of this project is to experiment, research, and educate on the topic of emulation of modern devices and operating systems. It is not for enabling illegal activity. All information is obtained via reverse engineering of legally purchased devices and games and information made public on the internet (you'd be surprised what's indexed on Google...). We are not any way affiliated with Nintendo or NVidia.

How to Compile Pound

See the compilation guide for detailed instructions on how to compile Pound.

Codebase

Pound reuses selected components from existing Nintendo Switch 1 emulators, primarily Yuzu.
All third-party code is clearly documented and properly attributed in the relevant parts of the repository.

Contributing

See here before submitting a pull request.

License

Credits

  • Parts of the emulator are based on code from the Yuzu project.