233 Commits

Author SHA1 Message Date
Nikilite
44b9429390 [*] refactor: consolidate services with macro, improve memory safety
- Replace 150+ individual service files with define_service! macro
- Add Pin<Box<[u8]>> for shared memory to prevent pointer invalidation
- Remove misleading Clone impl from UnicornCPU
- Complete sys::State with Services struct
- Add SPIR-V emitter validation
- Simplify fs::File::open (remove async)
- Remove broken branch test
- Add log dependency to core
2026-01-13 22:00:46 +01:00
Nikilite
fb28920401 Update README.md 2025-12-20 15:46:28 +01:00
Nikilite
5d0f8b1543 [core] Add register handling and SPIR-V pointer ops to GPU backend
Introduced register allocation and access methods in sm86.rs, including support for the zero register. Added SPIR-V emitter functions for pointer, variable, load, store, and arithmetic operations in spirv.rs to support register operations and instruction translation.
2025-12-16 23:06:57 +01:00
Nikilite
0662d8d7c8 [*] fix CI/Windows build and optimize SPIR-V emission
- Restored missing feature flags (trace) to fix CI pipeline failure
- Replaced unsafe libc calls with memmap2 for cross-platform file mapping (fixes Windows build)
- Optimized SPIR-V emitter to avoid heap allocations (Vec -> Iterator)
- Silenced non-snake-case warnings in SM86 GPU module
2025-12-16 00:58:25 +01:00
xinitrcn1
e514e3b131 [sm86] AL2P emit, extra enum defs 2025-12-16 00:58:25 +01:00
xinitrcn1
60a2841538 [*] misc code cleanup, remove stale components 2025-12-16 00:58:25 +01:00
Nikilite
3ad58ee19f [workflows] Simplify conditional checks in CI workflow 2025-12-16 00:41:29 +01:00
Nikilite
79e55eb8f1 [workflows] Enhance ci.yml for code change detection 2025-12-16 00:29:00 +01:00
Nikilite
0cfca34b6b [*] add multicore CPU manager and shared memory support
Introduces CpuManager to handle multiple UnicornCPU cores sharing 12GB of memory, enabling multicore emulation. Adds tests for multicore initialization and shared memory access. Updates UnicornCPU to support shared memory mapping and core IDs. Removes unused glint effect code from GUI loading screen.
2025-11-22 00:12:53 +01:00
Nikilite
67864b0de6 changed license to GPLv3
Update license from MPL-2.0 to GPL-3.0

Update license agreement to GPL v3

Update README.md
2025-11-21 23:42:21 +01:00
Nikilite
b9ea56c4bb [*] add contribution docs and refactor core modules
Added CONTRIBUTING.md, architecture documentation, and GitHub issue/PR templates. Refactored a lot of things with `cargo fmt`
2025-11-18 23:52:55 +01:00
xinitrcn1
44133c9209 [nn] fix warnings 2025-11-17 22:31:15 +01:00
xinitrcn1
16040431a1 [nn] applet AE/OE naming convention 2025-11-17 22:31:15 +01:00
xinitrcn1
4769714bba [*] move oboromi-core to core, oboromi-gui to gui, crates names kept as-is 2025-11-17 22:31:15 +01:00
xinitrcn1
4ff7cca197 [git] gitignore .vscode and build_log 2025-11-17 22:31:15 +01:00
xinitrcn1
6702d33ffa [core] remove unused dependencies from toml 2025-11-17 22:31:15 +01:00
xinitrcn1
0addbb52cd [third_party] remove submodules 2025-11-17 22:31:15 +01:00
xinitrcn1
171c629fb0 [nn] initial services stubs 2025-11-17 22:31:15 +01:00
Nikilite
480f81f6be [cosmetic] update splash screen visuals
Shortens splash screen fade durations, adjusts logo and text positions, and adds a pre-release warning with explanatory text to inform users about the experimental status and limitations of the emulator.
2025-11-11 00:18:03 +01:00
bokobelin
90cc3ce781 [cosmetic] Add a splash screen 2025-11-10 23:47:37 +01:00
Bokobelin
7e102e35a8 [cosmetic] Add colors to tests (#45)
* [cosmetic] Add colors to tests
Made tests green when passed and red otherwise

* Update gui.rs

---------

Co-authored-by: Nikilite
2025-11-09 20:51:39 +01:00
Nikilite
5ea427dad9 readme.md update 2025-11-08 00:33:34 +01:00
Nikilite
28623c3862 [cpu] dynarmic to Unicorn
Replaces the Dynarmic CPU backend with a Unicorn-based implementation. Removes all Dynarmic-related code, build logic, and dependencies, and introduces a new UnicornCPU wrapper. Updates Cargo.toml to use the unicorn-engine crate and cleans up the CPU module exports and tests accordingly.
2025-11-07 23:37:08 +01:00
Ploo
6ddcbce66a [gpu] Initial GPU translation; implement NOP (#43) 2025-10-31 12:20:17 +01:00
Nikilite
0edb86183c Merge branch 'main' of https://github.com/0xNikilite/oboromi 2025-10-31 01:01:52 +01:00
Nikilite
769d04f95e Delete dependabot.yml 2025-10-31 01:01:36 +01:00
Nikilite
fe4ac6199f Merge pull request #41 from 0xNikilite/dependabot/cargo/cc-1.2.43
cargo: bump cc from 1.2.41 to 1.2.43
2025-10-28 01:56:53 +01:00
dependabot[bot]
469ed90be4 cargo: bump cc from 1.2.41 to 1.2.43
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.41 to 1.2.43.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.41...cc-v1.2.43)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.43
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 08:47:27 +00:00
Nikilite
406539dad8 Update egui and eframe to version 0.33 2025-10-21 00:12:49 +02:00
Nikilite
65f66b2b01 Enhance security audit workflow with caching and updates
Updated the security workflow to include caching for cargo binaries and improved handling of vulnerabilities in the audit report.
2025-10-20 23:43:52 +02:00
Nikilite
b681df5851 Add permissions for contents in build.yml 2025-10-20 23:42:34 +02:00
Nikilite
fac3fec9b3 Update GitHub Actions workflow for release process 2025-10-20 23:41:47 +02:00
Nikilite
0eae6d3655 Upgrade GitHub script action to version 7 2025-10-20 23:40:33 +02:00
Nikilite
3848058557 Enhance CI workflow with permissions and action updates
Updated CI workflow to include permissions and handle new branches. Upgraded actions/cache and codecov-action to version 4.
2025-10-20 23:38:21 +02:00
Nikilite
d4d27a0185 Update dependabot configuration for cargo 2025-10-20 23:32:49 +02:00
Nikilite
a3b75c7b36 Merge pull request #40 from 0xNikilite/dependabot/cargo/egui-0.33.0
Bump egui from 0.32.3 to 0.33.0
2025-10-20 13:52:18 +02:00
dependabot[bot]
1bad7a33a1 Bump egui from 0.32.3 to 0.33.0
Bumps [egui](https://github.com/emilk/egui) from 0.32.3 to 0.33.0.
- [Release notes](https://github.com/emilk/egui/releases)
- [Changelog](https://github.com/emilk/egui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/emilk/egui/compare/0.32.3...0.33.0)

---
updated-dependencies:
- dependency-name: egui
  dependency-version: 0.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 09:05:07 +00:00
Nikilite
fe9ac61979 Merge branch 'main' of https://github.com/0xNikilite/oboromi 2025-10-15 02:02:59 +02:00
Nikilite
fa4178708a Add SM86 GPU decoder and related modules
Introduces the initial implementation of the SM86 GPU instruction decoder in oboromi-core, including new modules for SM86, GPU state, and SPIR-V emission. Removes the old build.rs file and updates module exports in lib.rs and gpu/mod.rs. Also updates tests and GUI to reflect the new GPU core structure.
2025-10-15 02:02:54 +02:00
Nikilite
36256c1150 add mirror link 2025-10-14 01:02:12 +02:00
Nikilite
f3e7152833 Merge pull request #37 from 0xNikilite/dependabot/cargo/cc-1.2.41
Bump cc from 1.2.40 to 1.2.41
2025-10-13 16:19:41 +02:00
dependabot[bot]
50c3a034a0 Bump cc from 1.2.40 to 1.2.41
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.40 to 1.2.41.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.40...cc-v1.2.41)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.41
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 08:57:00 +00:00
Nikilite
fc9791d787 fix for FreeBSD
credit: Lizzie
2025-10-13 03:18:50 +02:00
Nikilite
e3b59540aa Create build.yml 2025-10-13 01:26:04 +02:00
Nikilite
80bcf08bd7 0.2.0 to 0.0.1 in core and GUI crates 2025-10-13 01:22:50 +02:00
Nikilite
725a9ada9f Add JIT warmup to test runner and improve GUI feedback
Introduced a warmup_jit function in the test runner to pre-compile basic instructions, reducing timeout issues on slower hardware. Updated the GUI to provide clearer feedback during JIT warmup and test execution, including improved status messages and logs.
v0.0.1-dynarmic
2025-10-12 22:47:33 +02:00
Nikilite
56c29f2c27 Add x86_64 support for macOS in CMake build script
The build script now sets CMAKE_OSX_ARCHITECTURES and deployment target for both arm64 and x86_64 architectures on macOS, improving compatibility with Intel-based Macs. Previously, only arm64 was explicitly handled.
2025-10-10 17:33:42 +02:00
Nikilite
6107eb7b35 Refactor macOS build env setup and cleanup ARM64 handling
Simplifies and unifies environment variable setup for macOS ARM64 builds in both the GitHub Actions workflow and build.rs. Removes unnecessary unsafe blocks and redundant variable assignments, and ensures consistent deployment target and architecture settings for both Intel and Apple Silicon builds.
2025-10-10 16:24:48 +02:00
Nikilite
5406f99910 Improve macOS ARM64 build and CI (release.yml) workflow
Enhances the GitHub Actions release workflow and build.rs to better support macOS ARM64 (Apple Silicon) builds. Adds explicit environment configuration, dependency installation, and clean build steps for ARM64 targets. Improves submodule handling, build directory management, and sets appropriate deployment targets and architectures for both CMake and Rust builds. Also adds more detailed build logging and artifact upload on failure for easier debugging.
2025-10-10 14:26:05 +02:00
Nikilite
8010672a69 Update README.md 2025-10-10 02:09:41 +02:00