Commit graph

15 commits

Author SHA1 Message Date
Ronald Caesar
05c4f7025f Major project restructuring
Remove unecessary files and made the tree much more cleaner.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-08-23 17:23:33 -04:00
Ronald Caesar
65f589e853 aarch64/kernel: Add synchronous exception entry logic
To handle faults such as data aborts, alignment faults, or supervisor
calls, the CPU must transition from the guest's context into a
privileged exception handler. This patch emulates the hardware sequence
for this entry process.

1. The vcpu_state_t struct includes the essential EL1 system registers
   required for exception handling (ELR_EL1, SPSR_EL1, ESR_EL1, FAR_EL1,
   and VBAR_EL1).

2. A new function, take_synchronous_exception(), is introduced. It
   models the requirements for entering an exception targeting EL1:
      - Saves the return address (PC) into ELR_EL1.
      - Saves the current proccess state (PSTATE) into SPSR_EL1.
      - Contructs the Exception Syndrome Register (ESR_EL1) from the
        provided Exception Class and ISS.
      - Saves the faulting address to FAR_EL1 for data aborts.
      - Updates the live PSTATE to a safe state for the handler.

This implementation is intentially partial. The final step of updating the
PC to jump to a handler in the guest's vector table (using VBAR_EL1) is
stubbed out. The vector table will contain assembly instructions so a
functional instruction decoder is required to fully complete the
exception handler.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-08-16 13:11:40 -04:00
Ronald Caesar
84c55b25a9
gui: initialize structs to default value
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-08-10 02:10:06 -04:00
Ronald Caesar
ba45834583
feat!: rewrote program in a data oriented style.
This is because the source code is objected oriented which is not cpu cache
friendly, making the program slower than it has to be. Yuzu's entire
codebase is written in a objected oriented way and I wonder how much faster
it could if they had use DoD principles from the very beginning.

That's why I want to instill DoD fundamentals early on so this won't be a
problem going forward.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-08-02 04:05:05 -04:00
GloriousTacoo
f69c918186
Revert "feat(gui): Enhance CPU panel with state management and GUI improvements" 2025-07-09 16:56:01 -04:00
Carlo Pezzotti
85559e249b feat(gui): Enhance CPU panel with state management and GUI improvements 2025-07-09 11:51:13 +02:00
Carlo Pezzotti
2bb666a088 feat(gui): Extract and modularize GUI system from main.cpp
- Create modular GUI architecture with base Panel class
- Implement GUIManager to handle window lifecycle and panel management
- Add Window wrapper class for SDL3/OpenGL context management
- Create specialized panels:
  - ConsolePanel: Colored log output with timestamps
  - CPUPanel: CPU debugging with tabs for registers, memory, and disassembly
  - PerformancePanel: Real-time FPS and frame time monitoring
- Apply modern dark theme with purple accents
- Add comprehensive menu bar (File, Emulation, View, Tools, Help)
- Update CMakeLists.txt to include new gui/ directory structure
- Refactor main.cpp to use the new GUI system
- Cutom theme on switch colors
2025-07-09 09:07:32 +02:00
ownedbywuigi
d00414da58 Update to add a popup cautioning users of the pre-alpha state of Pound 2025-07-07 14:55:40 +01:00
Xphalnos
ab9429552f Run CPU Test from imgui 2025-06-24 19:39:52 +02:00
Chewico
cda778ff04 Implmented ImGui 2025-06-23 15:58:53 +02:00
Xphalnos
ac2da6ed49 Configurable Window Size 2025-06-20 22:55:58 +02:00
Xphalnos
b6e91d47ff Reduce CPU overload 2025-06-20 22:12:34 +02:00
Xphalnos
677893b4b7 SDL3 Basic Window 2025-06-20 21:14:51 +02:00
Xphalnos
014b236228 Import Strong Logger & Config System 2025-06-18 18:30:21 +02:00
Xphalnos
548b99e2e3 CMake, Big Cleanup, CI Build and 3rd_Party 2025-06-17 18:51:46 +02:00
Renamed from ui/main.cpp (Browse further)