No description
Find a file
Ronald Caesar 8b483849f4 arm64/mem: Refactor guest memory access and made it endian aware
Refactors the core guest memory access subsystem (guest.h) to be safer
and portable accross host systems with different endianness. The
previous implementation used direct pointer casting, which is not endian
safe.

1. All read and write functions have been converted from unsafe pointer
   casts to memcpy(). This resolves alignment warning -Wcast-align.

2. The access functions no longer rely on asserts for error checking.
   They now perform explicit boundary and alignment checking and returns
   a guest_mem_access_result_t status code.

3. A new header (endian.h) provides cross platform byte swapping macros.
   The memory access functions use these macros to ensure that the guest
   always sees memory in the correct endian format, regardless of the
   host's native byte order. The host endianness is now automatically
   detected via CMake.

3. Asserts are now explicitly enabled in release builds to catch
   critical errors.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-09-13 23:14:26 -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 arm64/mem: Refactor guest memory access and made it endian aware 2025-09-13 23:14:26 -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 arm64/mem: Refactor guest memory access and made it endian aware 2025-09-13 23:14:26 -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 Update README.md 2025-09-01 11:04:44 +01: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. We have limited resources/time at the moment, if you want to contribute you are free to do so.

Overview

Join the Pound Discord Server!

Pound is an early-stage emulator for the Nintendo Switch 1 and 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.