No description
Find a file
Ronald Caesar c6706dd8a0 kvm: Add framework for machine types and MMIO dispatch
The core of the machine-type support is the new operations table,
kvm_ops_t. This acts as a standard C-style virtual table decoupling the
generic KVM core logic from target specific hardware emualtion. The
kvm_t VM instance now points to an ops table, which defines the
"personality" of the guest. A kvm_probe() factory function has been
added to initialize a kvm_t instance with the correct ops table for a
given machine type (eg, Switch 1).

The ops table's .mmio_read and .mmio_write function pointers are the
link between the armv8 CPU core and this new MMIO dispatcher. When a
physical memory access is determined to be MMIO, the VM will call the
appropriate function pointer, which in turn will use the MMIO dispatcher
to find and execute the correct device handler.

The initial implementation for the Switch 1 target
(targets/switch1/hardware/probe.cpp) is a stub. The bootstrapping
logic will be added in subsequent patches.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-08-24 21:45:32 -04:00
.github/workflows re-add macOS ARM64 to the build.yml 2025-08-08 00:02:32 +01:00
3rd_Party kvm: Add framework for machine types and MMIO dispatch 2025-08-24 21:45:32 -04:00
resources new, better logo + fuck webp 2025-07-25 12:41:18 -04:00
src kvm: Add framework for machine types and MMIO dispatch 2025-08-24 21:45:32 -04:00
.clang-format add .clang-format 2025-08-10 02:10:06 -04:00
.gitignore arm64: Rename memory.h to guest.h 2025-08-16 18:17:59 -04:00
.gitmodules kvm: Add framework for machine types and MMIO dispatch 2025-08-24 21:45:32 -04:00
CMakeLists.txt kvm: Add framework for machine types and MMIO dispatch 2025-08-24 21:45:32 -04: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-22 15:48:21 -04: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 Add another line break 2025-08-22 16:09:37 -04:00





Pound

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

Note

Do you think the name "Pound" makes this a scam?
Do you think since the switch 2 hasn't been hacked this project is automatically a scam?
Do you think this project can't use switch 1 firmware dumps to set the foundation for when the switch 2 gets hacked?
Do you think the commits pushed to the main and arm64 branch are a scam?
Do you think the development progress posted on our discord are a scam?
If so then simply close this browser tab and move on.
if you have knowlege in Arm64 architecture please come to our server and help out.

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.