From 548b99e2e3d52fef3d0c5335769b6ae9527b5b26 Mon Sep 17 00:00:00 2001 From: Xphalnos Date: Tue, 17 Jun 2025 18:39:26 +0200 Subject: [PATCH] CMake, Big Cleanup, CI Build and 3rd_Party --- .github/workflows/build.yml | 96 ++++ .gitignore | 429 +++++++++++++++++- .gitmodules | 3 + 3rd_Party/CMakeLists.txt | 13 + 3rd_Party/fmt | 1 + CMakeLists.txt | 41 ++ CMakeSettings.json | 76 ++++ Makefile | 29 -- {core => WIP}/fs/bis_factory.cpp | 0 {core => WIP}/fs/bis_factory.h | 0 {core => WIP}/fs/card_image.cpp | 0 {core => WIP}/fs/card_image.h | 0 {core => WIP}/fs/common_funcs.h | 0 {core => WIP}/fs/content_archive.cpp | 0 {core => WIP}/fs/content_archive.h | 0 {core => WIP}/fs/control_metadata.cpp | 0 {core => WIP}/fs/control_metadata.h | 0 {core => WIP}/fs/errors.h | 0 {core => WIP}/fs/fs_directory.h | 0 {core => WIP}/fs/fs_file.h | 0 {core => WIP}/fs/fs_filesystem.h | 0 {core => WIP}/fs/fs_memory_management.h | 0 {core => WIP}/fs/fs_operate_range.h | 0 {core => WIP}/fs/fs_path.h | 0 {core => WIP}/fs/fs_path_utility.h | 0 {core => WIP}/fs/fs_save_data_types.h | 0 {core => WIP}/fs/fs_string_util.h | 0 {core => WIP}/fs/fsa/fs_i_directory.h | 0 {core => WIP}/fs/fsa/fs_i_file.h | 0 {core => WIP}/fs/fsa/fs_i_filesystem.h | 0 {core => WIP}/fs/fsmitm_romfsbuild.cpp | 0 {core => WIP}/fs/fsmitm_romfsbuild.h | 0 {core => WIP}/fs/fssrv/fssrv_sf_path.h | 0 {core => WIP}/fs/fssystem/fs_i_storage.h | 0 {core => WIP}/fs/fssystem/fs_types.h | 0 ...ystem_aes_ctr_counter_extended_storage.cpp | 0 ...ssystem_aes_ctr_counter_extended_storage.h | 0 .../fs/fssystem/fssystem_aes_ctr_storage.cpp | 0 .../fs/fssystem/fssystem_aes_ctr_storage.h | 0 .../fs/fssystem/fssystem_aes_xts_storage.cpp | 0 .../fs/fssystem/fssystem_aes_xts_storage.h | 0 .../fssystem_alignment_matching_storage.h | 0 ...system_alignment_matching_storage_impl.cpp | 0 ...fssystem_alignment_matching_storage_impl.h | 0 .../fs/fssystem/fssystem_bucket_tree.cpp | 0 .../fs/fssystem/fssystem_bucket_tree.h | 0 .../fssystem_bucket_tree_template_impl.h | 0 .../fs/fssystem/fssystem_bucket_tree_utils.h | 0 .../fs/fssystem/fssystem_compressed_storage.h | 0 .../fs/fssystem/fssystem_compression_common.h | 0 .../fssystem_compression_configuration.cpp | 0 .../fssystem_compression_configuration.h | 0 .../fssystem_crypto_configuration.cpp | 0 .../fssystem/fssystem_crypto_configuration.h | 0 ...rchical_integrity_verification_storage.cpp | 0 ...rarchical_integrity_verification_storage.h | 0 .../fssystem_hierarchical_sha256_storage.cpp | 0 .../fssystem_hierarchical_sha256_storage.h | 0 .../fs/fssystem/fssystem_indirect_storage.cpp | 0 .../fs/fssystem/fssystem_indirect_storage.h | 0 .../fssystem_integrity_romfs_storage.cpp | 0 .../fssystem_integrity_romfs_storage.h | 0 ...ssystem_integrity_verification_storage.cpp | 0 .../fssystem_integrity_verification_storage.h | 0 ...stem_memory_resource_buffer_hold_storage.h | 0 .../fssystem_nca_file_system_driver.cpp | 0 .../fssystem_nca_file_system_driver.h | 0 .../fs/fssystem/fssystem_nca_header.cpp | 0 .../fs/fssystem/fssystem_nca_header.h | 0 .../fs/fssystem/fssystem_nca_reader.cpp | 0 .../fs/fssystem/fssystem_pooled_buffer.cpp | 0 .../fs/fssystem/fssystem_pooled_buffer.h | 0 .../fs/fssystem/fssystem_sparse_storage.cpp | 0 .../fs/fssystem/fssystem_sparse_storage.h | 0 .../fs/fssystem/fssystem_switch_storage.h | 0 .../fs/fssystem/fssystem_utility.cpp | 0 {core => WIP}/fs/fssystem/fssystem_utility.h | 0 {core => WIP}/fs/ips_layer.cpp | 0 {core => WIP}/fs/ips_layer.h | 0 {core => WIP}/fs/kernel_executable.cpp | 0 {core => WIP}/fs/kernel_executable.h | 0 {core => WIP}/fs/nca_metadata.cpp | 0 {core => WIP}/fs/nca_metadata.h | 0 {core => WIP}/fs/partition_filesystem.cpp | 0 {core => WIP}/fs/partition_filesystem.h | 0 {core => WIP}/fs/patch_manager.cpp | 0 {core => WIP}/fs/patch_manager.h | 0 {core => WIP}/fs/program_metadata.cpp | 0 {core => WIP}/fs/program_metadata.h | 0 {core => WIP}/fs/registered_cache.cpp | 0 {core => WIP}/fs/registered_cache.h | 0 {core => WIP}/fs/romfs.cpp | 0 {core => WIP}/fs/romfs.h | 0 {core => WIP}/fs/romfs_factory.cpp | 0 {core => WIP}/fs/romfs_factory.h | 0 {core => WIP}/fs/savedata_factory.cpp | 0 {core => WIP}/fs/savedata_factory.h | 0 {core => WIP}/fs/sdmc_factory.cpp | 0 {core => WIP}/fs/sdmc_factory.h | 0 {core => WIP}/fs/submission_package.cpp | 0 {core => WIP}/fs/submission_package.h | 0 .../data/font_chinese_simplified.cpp | 0 .../data/font_chinese_simplified.h | 0 .../data/font_chinese_traditional.cpp | 0 .../data/font_chinese_traditional.h | 0 .../data/font_extended_chinese_simplified.cpp | 0 .../data/font_extended_chinese_simplified.h | 0 .../fs/system_archive/data/font_korean.cpp | 0 .../fs/system_archive/data/font_korean.h | 0 .../data/font_nintendo_extended.cpp | 0 .../data/font_nintendo_extended.h | 0 .../fs/system_archive/data/font_standard.cpp | 0 .../fs/system_archive/data/font_standard.h | 0 {core => WIP}/fs/system_archive/mii_model.cpp | 0 {core => WIP}/fs/system_archive/mii_model.h | 0 {core => WIP}/fs/system_archive/ng_word.cpp | 0 {core => WIP}/fs/system_archive/ng_word.h | 0 .../fs/system_archive/shared_font.cpp | 0 {core => WIP}/fs/system_archive/shared_font.h | 0 .../fs/system_archive/system_archive.cpp | 0 .../fs/system_archive/system_archive.h | 0 .../fs/system_archive/system_version.cpp | 0 .../fs/system_archive/system_version.h | 0 .../fs/system_archive/time_zone_binary.cpp | 0 .../fs/system_archive/time_zone_binary.h | 0 {core => WIP}/fs/vfs/vfs.cpp | 0 {core => WIP}/fs/vfs/vfs.h | 0 {core => WIP}/fs/vfs/vfs_cached.cpp | 0 {core => WIP}/fs/vfs/vfs_cached.h | 0 {core => WIP}/fs/vfs/vfs_concat.cpp | 0 {core => WIP}/fs/vfs/vfs_concat.h | 0 {core => WIP}/fs/vfs/vfs_layered.cpp | 0 {core => WIP}/fs/vfs/vfs_layered.h | 0 {core => WIP}/fs/vfs/vfs_offset.cpp | 0 {core => WIP}/fs/vfs/vfs_offset.h | 0 {core => WIP}/fs/vfs/vfs_real.cpp | 0 {core => WIP}/fs/vfs/vfs_real.h | 0 {core => WIP}/fs/vfs/vfs_static.h | 0 {core => WIP}/fs/vfs/vfs_types.h | 0 {core => WIP}/fs/vfs/vfs_vector.cpp | 0 {core => WIP}/fs/vfs/vfs_vector.h | 0 {core => WIP}/fs/xts_archive.cpp | 0 {core => WIP}/fs/xts_archive.h | 0 android/README.md | 4 - core/ARM/cpu.h | 8 +- core/JIT/jit.cpp | 14 +- core/JIT/jit.h | 2 +- {import => core}/common/assert.h | 0 {import => core}/common/common_types.h | 0 {import => core}/common/fs/path_util.h | 2 +- {import => core}/common/logging/formatter.h | 0 {import => core}/common/logging/log.h | 4 +- {import => core}/common/logging/types.h | 2 +- {import => core}/common/swap.h | 2 +- {ui => core}/main.cpp | 6 +- import/README.md | 5 - import/fmt/fmt.cc | 153 ------- import/fmt/format.cc | 46 -- import/fmt/os.cc | 398 ---------------- ui/README.md | 5 - ui/gman/README.md | 5 - 161 files changed, 681 insertions(+), 663 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .gitmodules create mode 100644 3rd_Party/CMakeLists.txt create mode 160000 3rd_Party/fmt create mode 100644 CMakeLists.txt create mode 100644 CMakeSettings.json delete mode 100644 Makefile rename {core => WIP}/fs/bis_factory.cpp (100%) rename {core => WIP}/fs/bis_factory.h (100%) rename {core => WIP}/fs/card_image.cpp (100%) rename {core => WIP}/fs/card_image.h (100%) rename {core => WIP}/fs/common_funcs.h (100%) rename {core => WIP}/fs/content_archive.cpp (100%) rename {core => WIP}/fs/content_archive.h (100%) rename {core => WIP}/fs/control_metadata.cpp (100%) rename {core => WIP}/fs/control_metadata.h (100%) rename {core => WIP}/fs/errors.h (100%) rename {core => WIP}/fs/fs_directory.h (100%) rename {core => WIP}/fs/fs_file.h (100%) rename {core => WIP}/fs/fs_filesystem.h (100%) rename {core => WIP}/fs/fs_memory_management.h (100%) rename {core => WIP}/fs/fs_operate_range.h (100%) rename {core => WIP}/fs/fs_path.h (100%) rename {core => WIP}/fs/fs_path_utility.h (100%) rename {core => WIP}/fs/fs_save_data_types.h (100%) rename {core => WIP}/fs/fs_string_util.h (100%) rename {core => WIP}/fs/fsa/fs_i_directory.h (100%) rename {core => WIP}/fs/fsa/fs_i_file.h (100%) rename {core => WIP}/fs/fsa/fs_i_filesystem.h (100%) rename {core => WIP}/fs/fsmitm_romfsbuild.cpp (100%) rename {core => WIP}/fs/fsmitm_romfsbuild.h (100%) rename {core => WIP}/fs/fssrv/fssrv_sf_path.h (100%) rename {core => WIP}/fs/fssystem/fs_i_storage.h (100%) rename {core => WIP}/fs/fssystem/fs_types.h (100%) rename {core => WIP}/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_aes_ctr_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_aes_ctr_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_aes_xts_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_aes_xts_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_alignment_matching_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_alignment_matching_storage_impl.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_alignment_matching_storage_impl.h (100%) rename {core => WIP}/fs/fssystem/fssystem_bucket_tree.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_bucket_tree.h (100%) rename {core => WIP}/fs/fssystem/fssystem_bucket_tree_template_impl.h (100%) rename {core => WIP}/fs/fssystem/fssystem_bucket_tree_utils.h (100%) rename {core => WIP}/fs/fssystem/fssystem_compressed_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_compression_common.h (100%) rename {core => WIP}/fs/fssystem/fssystem_compression_configuration.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_compression_configuration.h (100%) rename {core => WIP}/fs/fssystem/fssystem_crypto_configuration.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_crypto_configuration.h (100%) rename {core => WIP}/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_hierarchical_sha256_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_hierarchical_sha256_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_indirect_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_indirect_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_integrity_romfs_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_integrity_romfs_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_integrity_verification_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_integrity_verification_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_memory_resource_buffer_hold_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_nca_file_system_driver.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_nca_file_system_driver.h (100%) rename {core => WIP}/fs/fssystem/fssystem_nca_header.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_nca_header.h (100%) rename {core => WIP}/fs/fssystem/fssystem_nca_reader.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_pooled_buffer.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_pooled_buffer.h (100%) rename {core => WIP}/fs/fssystem/fssystem_sparse_storage.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_sparse_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_switch_storage.h (100%) rename {core => WIP}/fs/fssystem/fssystem_utility.cpp (100%) rename {core => WIP}/fs/fssystem/fssystem_utility.h (100%) rename {core => WIP}/fs/ips_layer.cpp (100%) rename {core => WIP}/fs/ips_layer.h (100%) rename {core => WIP}/fs/kernel_executable.cpp (100%) rename {core => WIP}/fs/kernel_executable.h (100%) rename {core => WIP}/fs/nca_metadata.cpp (100%) rename {core => WIP}/fs/nca_metadata.h (100%) rename {core => WIP}/fs/partition_filesystem.cpp (100%) rename {core => WIP}/fs/partition_filesystem.h (100%) rename {core => WIP}/fs/patch_manager.cpp (100%) rename {core => WIP}/fs/patch_manager.h (100%) rename {core => WIP}/fs/program_metadata.cpp (100%) rename {core => WIP}/fs/program_metadata.h (100%) rename {core => WIP}/fs/registered_cache.cpp (100%) rename {core => WIP}/fs/registered_cache.h (100%) rename {core => WIP}/fs/romfs.cpp (100%) rename {core => WIP}/fs/romfs.h (100%) rename {core => WIP}/fs/romfs_factory.cpp (100%) rename {core => WIP}/fs/romfs_factory.h (100%) rename {core => WIP}/fs/savedata_factory.cpp (100%) rename {core => WIP}/fs/savedata_factory.h (100%) rename {core => WIP}/fs/sdmc_factory.cpp (100%) rename {core => WIP}/fs/sdmc_factory.h (100%) rename {core => WIP}/fs/submission_package.cpp (100%) rename {core => WIP}/fs/submission_package.h (100%) rename {core => WIP}/fs/system_archive/data/font_chinese_simplified.cpp (100%) rename {core => WIP}/fs/system_archive/data/font_chinese_simplified.h (100%) rename {core => WIP}/fs/system_archive/data/font_chinese_traditional.cpp (100%) rename {core => WIP}/fs/system_archive/data/font_chinese_traditional.h (100%) rename {core => WIP}/fs/system_archive/data/font_extended_chinese_simplified.cpp (100%) rename {core => WIP}/fs/system_archive/data/font_extended_chinese_simplified.h (100%) rename {core => WIP}/fs/system_archive/data/font_korean.cpp (100%) rename {core => WIP}/fs/system_archive/data/font_korean.h (100%) rename {core => WIP}/fs/system_archive/data/font_nintendo_extended.cpp (100%) rename {core => WIP}/fs/system_archive/data/font_nintendo_extended.h (100%) rename {core => WIP}/fs/system_archive/data/font_standard.cpp (100%) rename {core => WIP}/fs/system_archive/data/font_standard.h (100%) rename {core => WIP}/fs/system_archive/mii_model.cpp (100%) rename {core => WIP}/fs/system_archive/mii_model.h (100%) rename {core => WIP}/fs/system_archive/ng_word.cpp (100%) rename {core => WIP}/fs/system_archive/ng_word.h (100%) rename {core => WIP}/fs/system_archive/shared_font.cpp (100%) rename {core => WIP}/fs/system_archive/shared_font.h (100%) rename {core => WIP}/fs/system_archive/system_archive.cpp (100%) rename {core => WIP}/fs/system_archive/system_archive.h (100%) rename {core => WIP}/fs/system_archive/system_version.cpp (100%) rename {core => WIP}/fs/system_archive/system_version.h (100%) rename {core => WIP}/fs/system_archive/time_zone_binary.cpp (100%) rename {core => WIP}/fs/system_archive/time_zone_binary.h (100%) rename {core => WIP}/fs/vfs/vfs.cpp (100%) rename {core => WIP}/fs/vfs/vfs.h (100%) rename {core => WIP}/fs/vfs/vfs_cached.cpp (100%) rename {core => WIP}/fs/vfs/vfs_cached.h (100%) rename {core => WIP}/fs/vfs/vfs_concat.cpp (100%) rename {core => WIP}/fs/vfs/vfs_concat.h (100%) rename {core => WIP}/fs/vfs/vfs_layered.cpp (100%) rename {core => WIP}/fs/vfs/vfs_layered.h (100%) rename {core => WIP}/fs/vfs/vfs_offset.cpp (100%) rename {core => WIP}/fs/vfs/vfs_offset.h (100%) rename {core => WIP}/fs/vfs/vfs_real.cpp (100%) rename {core => WIP}/fs/vfs/vfs_real.h (100%) rename {core => WIP}/fs/vfs/vfs_static.h (100%) rename {core => WIP}/fs/vfs/vfs_types.h (100%) rename {core => WIP}/fs/vfs/vfs_vector.cpp (100%) rename {core => WIP}/fs/vfs/vfs_vector.h (100%) rename {core => WIP}/fs/xts_archive.cpp (100%) rename {core => WIP}/fs/xts_archive.h (100%) delete mode 100644 android/README.md rename {import => core}/common/assert.h (100%) rename {import => core}/common/common_types.h (100%) rename {import => core}/common/fs/path_util.h (99%) rename {import => core}/common/logging/formatter.h (100%) rename {import => core}/common/logging/log.h (97%) rename {import => core}/common/logging/types.h (99%) rename {import => core}/common/swap.h (99%) rename {ui => core}/main.cpp (85%) delete mode 100644 import/README.md delete mode 100644 import/fmt/fmt.cc delete mode 100644 import/fmt/format.cc delete mode 100644 import/fmt/os.cc delete mode 100644 ui/README.md delete mode 100644 ui/gman/README.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..b1c1166 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,96 @@ +# Copyright 2025 Pound Emulator Project + +name: Build + +on: [push, pull_request] + +concurrency: + group: ci-${{github.event_name}}-${{github.ref}} + cancel-in-progress: ${{github.event_name == 'push'}} + +env: + BUILD_TYPE: Release + BUILD_DIR: ${{github.workspace}}/build + +jobs: + get-info: + name: Info + runs-on: ubuntu-24.04 + outputs: + shorthash: ${{steps.vars.outputs.shorthash}} + commit: ${{steps.vars.outputs.commit}} + steps: + - uses: actions/checkout@main + with: + fetch-depth: 0 + - name: Commit Count and Git Hash + id: vars + run: | + echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + echo "commit=$(git rev-list --count HEAD)" >> $GITHUB_ENV + echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + echo "commit=$(git rev-list --count HEAD)" >> $GITHUB_OUTPUT + + + Linux: + name: Linux + runs-on: ubuntu-24.04 + needs: get-info + steps: + - uses: actions/checkout@main + with: + submodules: recursive + fetch-depth: 0 + + - name: Install Dependencies + run: | + sudo apt update + sudo apt install -y ninja-build clang lld cmake ccache \ + libx11-dev libxext-dev libxrandr-dev libxcursor-dev \ + libxi-dev libxinerama-dev libwayland-dev libxkbcommon-dev \ + wayland-protocols git + + - name: Configure CMake + run: cmake -G Ninja -B ${{env.BUILD_DIR}} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ + + - name: Build + run: cmake --build ${{env.BUILD_DIR}} --config ${{env.BUILD_TYPE}} --parallel $(nproc) + + - name: Prepare Artifact Folder + run: | + mkdir -p artifact + cp -r ${{env.BUILD_DIR}}/Pound artifact/Pound-x64-${{env.BUILD_TYPE}} + + - name: Upload Linux Artifact + uses: actions/upload-artifact@main + with: + name: Pound-linux-x64-${{env.BUILD_TYPE}}-${{ needs.get-info.outputs.commit }}-${{needs.get-info.outputs.shorthash}} + path: artifact/ + + Windows: + name: Windows + runs-on: windows-2025 + needs: get-info + steps: + - uses: actions/checkout@main + with: + submodules: recursive + fetch-depth: 0 + + - name: Configure CMake + run: cmake -G Ninja -B "${{env.BUILD_DIR}}" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + + - name: Build + run: cmake --build "${{env.BUILD_DIR}}" --config ${{env.BUILD_TYPE}} --parallel $env:NUMBER_OF_PROCESSORS + + - name: Prepare Artifact Folder + run: | + mkdir -p artifact + cp -r ${{env.BUILD_DIR}}/Pound.exe artifact/Pound-x64-${{env.BUILD_TYPE}}.exe + + - name: Upload Windows Artifact + uses: actions/upload-artifact@main + with: + name: Pound-win64-${{env.BUILD_TYPE}}-${{ needs.get-info.outputs.commit }}-${{needs.get-info.outputs.shorthash}} + path: artifact/ diff --git a/.gitignore b/.gitignore index 7f44c47..e9ea226 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,426 @@ -app -*.o -**/.DS_Store \ No newline at end of file +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +[Rr]el[Ww]ith[Dd]eb[Ii]nfo/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ +[Bb]uild/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Visual Studio CMake Debug Cache +enc_temp_folder/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +.vscode/settings.json +.vscode/tasks.json +.vscode/launch.json +.vscode/extensions.json +*.code-workspace +/CMakeUserPresets.json +/compile_commands.json + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp +*.exe + +# JetBrains Rider +*.sln.iml +/out/* + +# for macOS +**/.DS_Store + +# JetBrains +.idea +cmake-build-* + +# Visual Studio proj files +*.vcxproj +*.vcxproj.* +*.sln + +# CMake Files +third_party/CMakeFiles +third_party/cmake_install.cmake +CMakeFiles +CMakeCache.txt +cmake_install.cmake diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..bf49a5e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "3rd_Party/fmt"] + path = 3rd_Party/fmt + url = https://github.com/fmtlib/fmt.git diff --git a/3rd_Party/CMakeLists.txt b/3rd_Party/CMakeLists.txt new file mode 100644 index 0000000..0e5a1d8 --- /dev/null +++ b/3rd_Party/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright 2025 Xenon Emulator Project. All rights reserved. + +set(BUILD_SHARED_LIBS OFF) +set(BUILD_TESTING OFF) +set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL ON SYSTEM ON) + +# Set CMP0069 policy to "NEW" for building external targets with LTO enabled +set(CMAKE_POLICY_DEFAULT_CMP0069 NEW) + +# fmt +if (NOT TARGET fmt::fmt) + add_subdirectory(fmt) +endif() diff --git a/3rd_Party/fmt b/3rd_Party/fmt new file mode 160000 index 0000000..40626af --- /dev/null +++ b/3rd_Party/fmt @@ -0,0 +1 @@ +Subproject commit 40626af88bd7df9a5fb80be7b25ac85b122d6c21 diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5a1db44 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,41 @@ +# Copyright 2025 Xenon Emulator Project. All rights reserved. + +cmake_minimum_required(VERSION 3.22) + +set(CMAKE_C_STANDARD 17) +set(CMAKE_CXX_STANDARD 23) +set(CMAKE_C_STANDARD_REQUIRED TRUE) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) + +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif() + +# Optimizations +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) +if (WIN32) + add_compile_options($<$:/Oi>) + add_compile_options($<$:/Ot>) +endif() + +project(Pound) + +find_package(fmt 10.2.1 CONFIG) + +include_directories(core) +add_subdirectory(3rd_Party) + + +file(GLOB_RECURSE Core core/*.cpp core/*.h) + +add_executable(Pound + ${Core} +) + +# Link libraries +target_link_libraries(Pound PRIVATE fmt::fmt) + +if (WIN32) + # Disables Warnings + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) +endif() diff --git a/CMakeSettings.json b/CMakeSettings.json new file mode 100644 index 0000000..bd29f92 --- /dev/null +++ b/CMakeSettings.json @@ -0,0 +1,76 @@ +{ + "configurations": [ + { + "name": "x64-Clang-Release", + "generator": "Ninja", + "configurationType": "Release", + "buildRoot": "${projectDir}\\Build\\${name}", + "installRoot": "${projectDir}\\Install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "clang_cl_x64_x64" ], + "intelliSenseMode": "windows-clang-x64" + }, + { + "name": "x64-Clang-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "buildRoot": "${projectDir}\\Build\\${name}", + "installRoot": "${projectDir}\\Install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "clang_cl_x64_x64" ], + "intelliSenseMode": "windows-clang-x64" + }, + { + "name": "x64-Clang-RelWithDebInfo", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${projectDir}\\Build\\${name}", + "installRoot": "${projectDir}\\Install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "clang_cl_x64_x64" ], + "intelliSenseMode": "windows-clang-x64" + }, + { + "name": "x64-MSVC-Release", + "generator": "Ninja", + "configurationType": "Release", + "buildRoot": "${projectDir}\\Build\\${name}", + "installRoot": "${projectDir}\\Install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "msvc_x64_x64" ], + "intelliSenseMode": "windows-msvc-x64" + }, + { + "name": "x64-MSVC-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "buildRoot": "${projectDir}\\Build\\${name}", + "installRoot": "${projectDir}\\Install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "msvc_x64_x64" ], + "intelliSenseMode": "windows-msvc-x64", + }, + { + "name": "x64-MSVC-RelWithDebInfo", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${projectDir}\\Build\\${name}", + "installRoot": "${projectDir}\\Install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "msvc_x64_x64" ], + "intelliSenseMode": "windows-msvc-x64" + } + ] +} \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index 22b0ff6..0000000 --- a/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -CXX := g++ -CXXFLAGS := -std=c++17 -Wall -Wextra -Icore -Icore/ARM -Icore/audio -Icore/fs -Icore/gpu/emu -Icore/gpu/vk -Icore/JIT - -SRC := \ - ui/main.cpp \ - core/audio/audio.cpp \ - core/fs/romfs.cpp \ - core/gpu/emu/emugpu.cpp \ - core/gpu/vk/emugpuvk.cpp \ - core/JIT/jit.cpp - -OBJ := $(SRC:.cpp=.o) -TARGET := app - -all: $(TARGET) - -$(TARGET): $(OBJ) - $(CXX) $(OBJ) -o $(TARGET) - -%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) - -run: $(TARGET) - ./$(TARGET) - -.PHONY: all clean diff --git a/core/fs/bis_factory.cpp b/WIP/fs/bis_factory.cpp similarity index 100% rename from core/fs/bis_factory.cpp rename to WIP/fs/bis_factory.cpp diff --git a/core/fs/bis_factory.h b/WIP/fs/bis_factory.h similarity index 100% rename from core/fs/bis_factory.h rename to WIP/fs/bis_factory.h diff --git a/core/fs/card_image.cpp b/WIP/fs/card_image.cpp similarity index 100% rename from core/fs/card_image.cpp rename to WIP/fs/card_image.cpp diff --git a/core/fs/card_image.h b/WIP/fs/card_image.h similarity index 100% rename from core/fs/card_image.h rename to WIP/fs/card_image.h diff --git a/core/fs/common_funcs.h b/WIP/fs/common_funcs.h similarity index 100% rename from core/fs/common_funcs.h rename to WIP/fs/common_funcs.h diff --git a/core/fs/content_archive.cpp b/WIP/fs/content_archive.cpp similarity index 100% rename from core/fs/content_archive.cpp rename to WIP/fs/content_archive.cpp diff --git a/core/fs/content_archive.h b/WIP/fs/content_archive.h similarity index 100% rename from core/fs/content_archive.h rename to WIP/fs/content_archive.h diff --git a/core/fs/control_metadata.cpp b/WIP/fs/control_metadata.cpp similarity index 100% rename from core/fs/control_metadata.cpp rename to WIP/fs/control_metadata.cpp diff --git a/core/fs/control_metadata.h b/WIP/fs/control_metadata.h similarity index 100% rename from core/fs/control_metadata.h rename to WIP/fs/control_metadata.h diff --git a/core/fs/errors.h b/WIP/fs/errors.h similarity index 100% rename from core/fs/errors.h rename to WIP/fs/errors.h diff --git a/core/fs/fs_directory.h b/WIP/fs/fs_directory.h similarity index 100% rename from core/fs/fs_directory.h rename to WIP/fs/fs_directory.h diff --git a/core/fs/fs_file.h b/WIP/fs/fs_file.h similarity index 100% rename from core/fs/fs_file.h rename to WIP/fs/fs_file.h diff --git a/core/fs/fs_filesystem.h b/WIP/fs/fs_filesystem.h similarity index 100% rename from core/fs/fs_filesystem.h rename to WIP/fs/fs_filesystem.h diff --git a/core/fs/fs_memory_management.h b/WIP/fs/fs_memory_management.h similarity index 100% rename from core/fs/fs_memory_management.h rename to WIP/fs/fs_memory_management.h diff --git a/core/fs/fs_operate_range.h b/WIP/fs/fs_operate_range.h similarity index 100% rename from core/fs/fs_operate_range.h rename to WIP/fs/fs_operate_range.h diff --git a/core/fs/fs_path.h b/WIP/fs/fs_path.h similarity index 100% rename from core/fs/fs_path.h rename to WIP/fs/fs_path.h diff --git a/core/fs/fs_path_utility.h b/WIP/fs/fs_path_utility.h similarity index 100% rename from core/fs/fs_path_utility.h rename to WIP/fs/fs_path_utility.h diff --git a/core/fs/fs_save_data_types.h b/WIP/fs/fs_save_data_types.h similarity index 100% rename from core/fs/fs_save_data_types.h rename to WIP/fs/fs_save_data_types.h diff --git a/core/fs/fs_string_util.h b/WIP/fs/fs_string_util.h similarity index 100% rename from core/fs/fs_string_util.h rename to WIP/fs/fs_string_util.h diff --git a/core/fs/fsa/fs_i_directory.h b/WIP/fs/fsa/fs_i_directory.h similarity index 100% rename from core/fs/fsa/fs_i_directory.h rename to WIP/fs/fsa/fs_i_directory.h diff --git a/core/fs/fsa/fs_i_file.h b/WIP/fs/fsa/fs_i_file.h similarity index 100% rename from core/fs/fsa/fs_i_file.h rename to WIP/fs/fsa/fs_i_file.h diff --git a/core/fs/fsa/fs_i_filesystem.h b/WIP/fs/fsa/fs_i_filesystem.h similarity index 100% rename from core/fs/fsa/fs_i_filesystem.h rename to WIP/fs/fsa/fs_i_filesystem.h diff --git a/core/fs/fsmitm_romfsbuild.cpp b/WIP/fs/fsmitm_romfsbuild.cpp similarity index 100% rename from core/fs/fsmitm_romfsbuild.cpp rename to WIP/fs/fsmitm_romfsbuild.cpp diff --git a/core/fs/fsmitm_romfsbuild.h b/WIP/fs/fsmitm_romfsbuild.h similarity index 100% rename from core/fs/fsmitm_romfsbuild.h rename to WIP/fs/fsmitm_romfsbuild.h diff --git a/core/fs/fssrv/fssrv_sf_path.h b/WIP/fs/fssrv/fssrv_sf_path.h similarity index 100% rename from core/fs/fssrv/fssrv_sf_path.h rename to WIP/fs/fssrv/fssrv_sf_path.h diff --git a/core/fs/fssystem/fs_i_storage.h b/WIP/fs/fssystem/fs_i_storage.h similarity index 100% rename from core/fs/fssystem/fs_i_storage.h rename to WIP/fs/fssystem/fs_i_storage.h diff --git a/core/fs/fssystem/fs_types.h b/WIP/fs/fssystem/fs_types.h similarity index 100% rename from core/fs/fssystem/fs_types.h rename to WIP/fs/fssystem/fs_types.h diff --git a/core/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp b/WIP/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp rename to WIP/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp diff --git a/core/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.h b/WIP/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.h rename to WIP/fs/fssystem/fssystem_aes_ctr_counter_extended_storage.h diff --git a/core/fs/fssystem/fssystem_aes_ctr_storage.cpp b/WIP/fs/fssystem/fssystem_aes_ctr_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_aes_ctr_storage.cpp rename to WIP/fs/fssystem/fssystem_aes_ctr_storage.cpp diff --git a/core/fs/fssystem/fssystem_aes_ctr_storage.h b/WIP/fs/fssystem/fssystem_aes_ctr_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_aes_ctr_storage.h rename to WIP/fs/fssystem/fssystem_aes_ctr_storage.h diff --git a/core/fs/fssystem/fssystem_aes_xts_storage.cpp b/WIP/fs/fssystem/fssystem_aes_xts_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_aes_xts_storage.cpp rename to WIP/fs/fssystem/fssystem_aes_xts_storage.cpp diff --git a/core/fs/fssystem/fssystem_aes_xts_storage.h b/WIP/fs/fssystem/fssystem_aes_xts_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_aes_xts_storage.h rename to WIP/fs/fssystem/fssystem_aes_xts_storage.h diff --git a/core/fs/fssystem/fssystem_alignment_matching_storage.h b/WIP/fs/fssystem/fssystem_alignment_matching_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_alignment_matching_storage.h rename to WIP/fs/fssystem/fssystem_alignment_matching_storage.h diff --git a/core/fs/fssystem/fssystem_alignment_matching_storage_impl.cpp b/WIP/fs/fssystem/fssystem_alignment_matching_storage_impl.cpp similarity index 100% rename from core/fs/fssystem/fssystem_alignment_matching_storage_impl.cpp rename to WIP/fs/fssystem/fssystem_alignment_matching_storage_impl.cpp diff --git a/core/fs/fssystem/fssystem_alignment_matching_storage_impl.h b/WIP/fs/fssystem/fssystem_alignment_matching_storage_impl.h similarity index 100% rename from core/fs/fssystem/fssystem_alignment_matching_storage_impl.h rename to WIP/fs/fssystem/fssystem_alignment_matching_storage_impl.h diff --git a/core/fs/fssystem/fssystem_bucket_tree.cpp b/WIP/fs/fssystem/fssystem_bucket_tree.cpp similarity index 100% rename from core/fs/fssystem/fssystem_bucket_tree.cpp rename to WIP/fs/fssystem/fssystem_bucket_tree.cpp diff --git a/core/fs/fssystem/fssystem_bucket_tree.h b/WIP/fs/fssystem/fssystem_bucket_tree.h similarity index 100% rename from core/fs/fssystem/fssystem_bucket_tree.h rename to WIP/fs/fssystem/fssystem_bucket_tree.h diff --git a/core/fs/fssystem/fssystem_bucket_tree_template_impl.h b/WIP/fs/fssystem/fssystem_bucket_tree_template_impl.h similarity index 100% rename from core/fs/fssystem/fssystem_bucket_tree_template_impl.h rename to WIP/fs/fssystem/fssystem_bucket_tree_template_impl.h diff --git a/core/fs/fssystem/fssystem_bucket_tree_utils.h b/WIP/fs/fssystem/fssystem_bucket_tree_utils.h similarity index 100% rename from core/fs/fssystem/fssystem_bucket_tree_utils.h rename to WIP/fs/fssystem/fssystem_bucket_tree_utils.h diff --git a/core/fs/fssystem/fssystem_compressed_storage.h b/WIP/fs/fssystem/fssystem_compressed_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_compressed_storage.h rename to WIP/fs/fssystem/fssystem_compressed_storage.h diff --git a/core/fs/fssystem/fssystem_compression_common.h b/WIP/fs/fssystem/fssystem_compression_common.h similarity index 100% rename from core/fs/fssystem/fssystem_compression_common.h rename to WIP/fs/fssystem/fssystem_compression_common.h diff --git a/core/fs/fssystem/fssystem_compression_configuration.cpp b/WIP/fs/fssystem/fssystem_compression_configuration.cpp similarity index 100% rename from core/fs/fssystem/fssystem_compression_configuration.cpp rename to WIP/fs/fssystem/fssystem_compression_configuration.cpp diff --git a/core/fs/fssystem/fssystem_compression_configuration.h b/WIP/fs/fssystem/fssystem_compression_configuration.h similarity index 100% rename from core/fs/fssystem/fssystem_compression_configuration.h rename to WIP/fs/fssystem/fssystem_compression_configuration.h diff --git a/core/fs/fssystem/fssystem_crypto_configuration.cpp b/WIP/fs/fssystem/fssystem_crypto_configuration.cpp similarity index 100% rename from core/fs/fssystem/fssystem_crypto_configuration.cpp rename to WIP/fs/fssystem/fssystem_crypto_configuration.cpp diff --git a/core/fs/fssystem/fssystem_crypto_configuration.h b/WIP/fs/fssystem/fssystem_crypto_configuration.h similarity index 100% rename from core/fs/fssystem/fssystem_crypto_configuration.h rename to WIP/fs/fssystem/fssystem_crypto_configuration.h diff --git a/core/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.cpp b/WIP/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.cpp rename to WIP/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.cpp diff --git a/core/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.h b/WIP/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.h rename to WIP/fs/fssystem/fssystem_hierarchical_integrity_verification_storage.h diff --git a/core/fs/fssystem/fssystem_hierarchical_sha256_storage.cpp b/WIP/fs/fssystem/fssystem_hierarchical_sha256_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_hierarchical_sha256_storage.cpp rename to WIP/fs/fssystem/fssystem_hierarchical_sha256_storage.cpp diff --git a/core/fs/fssystem/fssystem_hierarchical_sha256_storage.h b/WIP/fs/fssystem/fssystem_hierarchical_sha256_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_hierarchical_sha256_storage.h rename to WIP/fs/fssystem/fssystem_hierarchical_sha256_storage.h diff --git a/core/fs/fssystem/fssystem_indirect_storage.cpp b/WIP/fs/fssystem/fssystem_indirect_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_indirect_storage.cpp rename to WIP/fs/fssystem/fssystem_indirect_storage.cpp diff --git a/core/fs/fssystem/fssystem_indirect_storage.h b/WIP/fs/fssystem/fssystem_indirect_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_indirect_storage.h rename to WIP/fs/fssystem/fssystem_indirect_storage.h diff --git a/core/fs/fssystem/fssystem_integrity_romfs_storage.cpp b/WIP/fs/fssystem/fssystem_integrity_romfs_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_integrity_romfs_storage.cpp rename to WIP/fs/fssystem/fssystem_integrity_romfs_storage.cpp diff --git a/core/fs/fssystem/fssystem_integrity_romfs_storage.h b/WIP/fs/fssystem/fssystem_integrity_romfs_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_integrity_romfs_storage.h rename to WIP/fs/fssystem/fssystem_integrity_romfs_storage.h diff --git a/core/fs/fssystem/fssystem_integrity_verification_storage.cpp b/WIP/fs/fssystem/fssystem_integrity_verification_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_integrity_verification_storage.cpp rename to WIP/fs/fssystem/fssystem_integrity_verification_storage.cpp diff --git a/core/fs/fssystem/fssystem_integrity_verification_storage.h b/WIP/fs/fssystem/fssystem_integrity_verification_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_integrity_verification_storage.h rename to WIP/fs/fssystem/fssystem_integrity_verification_storage.h diff --git a/core/fs/fssystem/fssystem_memory_resource_buffer_hold_storage.h b/WIP/fs/fssystem/fssystem_memory_resource_buffer_hold_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_memory_resource_buffer_hold_storage.h rename to WIP/fs/fssystem/fssystem_memory_resource_buffer_hold_storage.h diff --git a/core/fs/fssystem/fssystem_nca_file_system_driver.cpp b/WIP/fs/fssystem/fssystem_nca_file_system_driver.cpp similarity index 100% rename from core/fs/fssystem/fssystem_nca_file_system_driver.cpp rename to WIP/fs/fssystem/fssystem_nca_file_system_driver.cpp diff --git a/core/fs/fssystem/fssystem_nca_file_system_driver.h b/WIP/fs/fssystem/fssystem_nca_file_system_driver.h similarity index 100% rename from core/fs/fssystem/fssystem_nca_file_system_driver.h rename to WIP/fs/fssystem/fssystem_nca_file_system_driver.h diff --git a/core/fs/fssystem/fssystem_nca_header.cpp b/WIP/fs/fssystem/fssystem_nca_header.cpp similarity index 100% rename from core/fs/fssystem/fssystem_nca_header.cpp rename to WIP/fs/fssystem/fssystem_nca_header.cpp diff --git a/core/fs/fssystem/fssystem_nca_header.h b/WIP/fs/fssystem/fssystem_nca_header.h similarity index 100% rename from core/fs/fssystem/fssystem_nca_header.h rename to WIP/fs/fssystem/fssystem_nca_header.h diff --git a/core/fs/fssystem/fssystem_nca_reader.cpp b/WIP/fs/fssystem/fssystem_nca_reader.cpp similarity index 100% rename from core/fs/fssystem/fssystem_nca_reader.cpp rename to WIP/fs/fssystem/fssystem_nca_reader.cpp diff --git a/core/fs/fssystem/fssystem_pooled_buffer.cpp b/WIP/fs/fssystem/fssystem_pooled_buffer.cpp similarity index 100% rename from core/fs/fssystem/fssystem_pooled_buffer.cpp rename to WIP/fs/fssystem/fssystem_pooled_buffer.cpp diff --git a/core/fs/fssystem/fssystem_pooled_buffer.h b/WIP/fs/fssystem/fssystem_pooled_buffer.h similarity index 100% rename from core/fs/fssystem/fssystem_pooled_buffer.h rename to WIP/fs/fssystem/fssystem_pooled_buffer.h diff --git a/core/fs/fssystem/fssystem_sparse_storage.cpp b/WIP/fs/fssystem/fssystem_sparse_storage.cpp similarity index 100% rename from core/fs/fssystem/fssystem_sparse_storage.cpp rename to WIP/fs/fssystem/fssystem_sparse_storage.cpp diff --git a/core/fs/fssystem/fssystem_sparse_storage.h b/WIP/fs/fssystem/fssystem_sparse_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_sparse_storage.h rename to WIP/fs/fssystem/fssystem_sparse_storage.h diff --git a/core/fs/fssystem/fssystem_switch_storage.h b/WIP/fs/fssystem/fssystem_switch_storage.h similarity index 100% rename from core/fs/fssystem/fssystem_switch_storage.h rename to WIP/fs/fssystem/fssystem_switch_storage.h diff --git a/core/fs/fssystem/fssystem_utility.cpp b/WIP/fs/fssystem/fssystem_utility.cpp similarity index 100% rename from core/fs/fssystem/fssystem_utility.cpp rename to WIP/fs/fssystem/fssystem_utility.cpp diff --git a/core/fs/fssystem/fssystem_utility.h b/WIP/fs/fssystem/fssystem_utility.h similarity index 100% rename from core/fs/fssystem/fssystem_utility.h rename to WIP/fs/fssystem/fssystem_utility.h diff --git a/core/fs/ips_layer.cpp b/WIP/fs/ips_layer.cpp similarity index 100% rename from core/fs/ips_layer.cpp rename to WIP/fs/ips_layer.cpp diff --git a/core/fs/ips_layer.h b/WIP/fs/ips_layer.h similarity index 100% rename from core/fs/ips_layer.h rename to WIP/fs/ips_layer.h diff --git a/core/fs/kernel_executable.cpp b/WIP/fs/kernel_executable.cpp similarity index 100% rename from core/fs/kernel_executable.cpp rename to WIP/fs/kernel_executable.cpp diff --git a/core/fs/kernel_executable.h b/WIP/fs/kernel_executable.h similarity index 100% rename from core/fs/kernel_executable.h rename to WIP/fs/kernel_executable.h diff --git a/core/fs/nca_metadata.cpp b/WIP/fs/nca_metadata.cpp similarity index 100% rename from core/fs/nca_metadata.cpp rename to WIP/fs/nca_metadata.cpp diff --git a/core/fs/nca_metadata.h b/WIP/fs/nca_metadata.h similarity index 100% rename from core/fs/nca_metadata.h rename to WIP/fs/nca_metadata.h diff --git a/core/fs/partition_filesystem.cpp b/WIP/fs/partition_filesystem.cpp similarity index 100% rename from core/fs/partition_filesystem.cpp rename to WIP/fs/partition_filesystem.cpp diff --git a/core/fs/partition_filesystem.h b/WIP/fs/partition_filesystem.h similarity index 100% rename from core/fs/partition_filesystem.h rename to WIP/fs/partition_filesystem.h diff --git a/core/fs/patch_manager.cpp b/WIP/fs/patch_manager.cpp similarity index 100% rename from core/fs/patch_manager.cpp rename to WIP/fs/patch_manager.cpp diff --git a/core/fs/patch_manager.h b/WIP/fs/patch_manager.h similarity index 100% rename from core/fs/patch_manager.h rename to WIP/fs/patch_manager.h diff --git a/core/fs/program_metadata.cpp b/WIP/fs/program_metadata.cpp similarity index 100% rename from core/fs/program_metadata.cpp rename to WIP/fs/program_metadata.cpp diff --git a/core/fs/program_metadata.h b/WIP/fs/program_metadata.h similarity index 100% rename from core/fs/program_metadata.h rename to WIP/fs/program_metadata.h diff --git a/core/fs/registered_cache.cpp b/WIP/fs/registered_cache.cpp similarity index 100% rename from core/fs/registered_cache.cpp rename to WIP/fs/registered_cache.cpp diff --git a/core/fs/registered_cache.h b/WIP/fs/registered_cache.h similarity index 100% rename from core/fs/registered_cache.h rename to WIP/fs/registered_cache.h diff --git a/core/fs/romfs.cpp b/WIP/fs/romfs.cpp similarity index 100% rename from core/fs/romfs.cpp rename to WIP/fs/romfs.cpp diff --git a/core/fs/romfs.h b/WIP/fs/romfs.h similarity index 100% rename from core/fs/romfs.h rename to WIP/fs/romfs.h diff --git a/core/fs/romfs_factory.cpp b/WIP/fs/romfs_factory.cpp similarity index 100% rename from core/fs/romfs_factory.cpp rename to WIP/fs/romfs_factory.cpp diff --git a/core/fs/romfs_factory.h b/WIP/fs/romfs_factory.h similarity index 100% rename from core/fs/romfs_factory.h rename to WIP/fs/romfs_factory.h diff --git a/core/fs/savedata_factory.cpp b/WIP/fs/savedata_factory.cpp similarity index 100% rename from core/fs/savedata_factory.cpp rename to WIP/fs/savedata_factory.cpp diff --git a/core/fs/savedata_factory.h b/WIP/fs/savedata_factory.h similarity index 100% rename from core/fs/savedata_factory.h rename to WIP/fs/savedata_factory.h diff --git a/core/fs/sdmc_factory.cpp b/WIP/fs/sdmc_factory.cpp similarity index 100% rename from core/fs/sdmc_factory.cpp rename to WIP/fs/sdmc_factory.cpp diff --git a/core/fs/sdmc_factory.h b/WIP/fs/sdmc_factory.h similarity index 100% rename from core/fs/sdmc_factory.h rename to WIP/fs/sdmc_factory.h diff --git a/core/fs/submission_package.cpp b/WIP/fs/submission_package.cpp similarity index 100% rename from core/fs/submission_package.cpp rename to WIP/fs/submission_package.cpp diff --git a/core/fs/submission_package.h b/WIP/fs/submission_package.h similarity index 100% rename from core/fs/submission_package.h rename to WIP/fs/submission_package.h diff --git a/core/fs/system_archive/data/font_chinese_simplified.cpp b/WIP/fs/system_archive/data/font_chinese_simplified.cpp similarity index 100% rename from core/fs/system_archive/data/font_chinese_simplified.cpp rename to WIP/fs/system_archive/data/font_chinese_simplified.cpp diff --git a/core/fs/system_archive/data/font_chinese_simplified.h b/WIP/fs/system_archive/data/font_chinese_simplified.h similarity index 100% rename from core/fs/system_archive/data/font_chinese_simplified.h rename to WIP/fs/system_archive/data/font_chinese_simplified.h diff --git a/core/fs/system_archive/data/font_chinese_traditional.cpp b/WIP/fs/system_archive/data/font_chinese_traditional.cpp similarity index 100% rename from core/fs/system_archive/data/font_chinese_traditional.cpp rename to WIP/fs/system_archive/data/font_chinese_traditional.cpp diff --git a/core/fs/system_archive/data/font_chinese_traditional.h b/WIP/fs/system_archive/data/font_chinese_traditional.h similarity index 100% rename from core/fs/system_archive/data/font_chinese_traditional.h rename to WIP/fs/system_archive/data/font_chinese_traditional.h diff --git a/core/fs/system_archive/data/font_extended_chinese_simplified.cpp b/WIP/fs/system_archive/data/font_extended_chinese_simplified.cpp similarity index 100% rename from core/fs/system_archive/data/font_extended_chinese_simplified.cpp rename to WIP/fs/system_archive/data/font_extended_chinese_simplified.cpp diff --git a/core/fs/system_archive/data/font_extended_chinese_simplified.h b/WIP/fs/system_archive/data/font_extended_chinese_simplified.h similarity index 100% rename from core/fs/system_archive/data/font_extended_chinese_simplified.h rename to WIP/fs/system_archive/data/font_extended_chinese_simplified.h diff --git a/core/fs/system_archive/data/font_korean.cpp b/WIP/fs/system_archive/data/font_korean.cpp similarity index 100% rename from core/fs/system_archive/data/font_korean.cpp rename to WIP/fs/system_archive/data/font_korean.cpp diff --git a/core/fs/system_archive/data/font_korean.h b/WIP/fs/system_archive/data/font_korean.h similarity index 100% rename from core/fs/system_archive/data/font_korean.h rename to WIP/fs/system_archive/data/font_korean.h diff --git a/core/fs/system_archive/data/font_nintendo_extended.cpp b/WIP/fs/system_archive/data/font_nintendo_extended.cpp similarity index 100% rename from core/fs/system_archive/data/font_nintendo_extended.cpp rename to WIP/fs/system_archive/data/font_nintendo_extended.cpp diff --git a/core/fs/system_archive/data/font_nintendo_extended.h b/WIP/fs/system_archive/data/font_nintendo_extended.h similarity index 100% rename from core/fs/system_archive/data/font_nintendo_extended.h rename to WIP/fs/system_archive/data/font_nintendo_extended.h diff --git a/core/fs/system_archive/data/font_standard.cpp b/WIP/fs/system_archive/data/font_standard.cpp similarity index 100% rename from core/fs/system_archive/data/font_standard.cpp rename to WIP/fs/system_archive/data/font_standard.cpp diff --git a/core/fs/system_archive/data/font_standard.h b/WIP/fs/system_archive/data/font_standard.h similarity index 100% rename from core/fs/system_archive/data/font_standard.h rename to WIP/fs/system_archive/data/font_standard.h diff --git a/core/fs/system_archive/mii_model.cpp b/WIP/fs/system_archive/mii_model.cpp similarity index 100% rename from core/fs/system_archive/mii_model.cpp rename to WIP/fs/system_archive/mii_model.cpp diff --git a/core/fs/system_archive/mii_model.h b/WIP/fs/system_archive/mii_model.h similarity index 100% rename from core/fs/system_archive/mii_model.h rename to WIP/fs/system_archive/mii_model.h diff --git a/core/fs/system_archive/ng_word.cpp b/WIP/fs/system_archive/ng_word.cpp similarity index 100% rename from core/fs/system_archive/ng_word.cpp rename to WIP/fs/system_archive/ng_word.cpp diff --git a/core/fs/system_archive/ng_word.h b/WIP/fs/system_archive/ng_word.h similarity index 100% rename from core/fs/system_archive/ng_word.h rename to WIP/fs/system_archive/ng_word.h diff --git a/core/fs/system_archive/shared_font.cpp b/WIP/fs/system_archive/shared_font.cpp similarity index 100% rename from core/fs/system_archive/shared_font.cpp rename to WIP/fs/system_archive/shared_font.cpp diff --git a/core/fs/system_archive/shared_font.h b/WIP/fs/system_archive/shared_font.h similarity index 100% rename from core/fs/system_archive/shared_font.h rename to WIP/fs/system_archive/shared_font.h diff --git a/core/fs/system_archive/system_archive.cpp b/WIP/fs/system_archive/system_archive.cpp similarity index 100% rename from core/fs/system_archive/system_archive.cpp rename to WIP/fs/system_archive/system_archive.cpp diff --git a/core/fs/system_archive/system_archive.h b/WIP/fs/system_archive/system_archive.h similarity index 100% rename from core/fs/system_archive/system_archive.h rename to WIP/fs/system_archive/system_archive.h diff --git a/core/fs/system_archive/system_version.cpp b/WIP/fs/system_archive/system_version.cpp similarity index 100% rename from core/fs/system_archive/system_version.cpp rename to WIP/fs/system_archive/system_version.cpp diff --git a/core/fs/system_archive/system_version.h b/WIP/fs/system_archive/system_version.h similarity index 100% rename from core/fs/system_archive/system_version.h rename to WIP/fs/system_archive/system_version.h diff --git a/core/fs/system_archive/time_zone_binary.cpp b/WIP/fs/system_archive/time_zone_binary.cpp similarity index 100% rename from core/fs/system_archive/time_zone_binary.cpp rename to WIP/fs/system_archive/time_zone_binary.cpp diff --git a/core/fs/system_archive/time_zone_binary.h b/WIP/fs/system_archive/time_zone_binary.h similarity index 100% rename from core/fs/system_archive/time_zone_binary.h rename to WIP/fs/system_archive/time_zone_binary.h diff --git a/core/fs/vfs/vfs.cpp b/WIP/fs/vfs/vfs.cpp similarity index 100% rename from core/fs/vfs/vfs.cpp rename to WIP/fs/vfs/vfs.cpp diff --git a/core/fs/vfs/vfs.h b/WIP/fs/vfs/vfs.h similarity index 100% rename from core/fs/vfs/vfs.h rename to WIP/fs/vfs/vfs.h diff --git a/core/fs/vfs/vfs_cached.cpp b/WIP/fs/vfs/vfs_cached.cpp similarity index 100% rename from core/fs/vfs/vfs_cached.cpp rename to WIP/fs/vfs/vfs_cached.cpp diff --git a/core/fs/vfs/vfs_cached.h b/WIP/fs/vfs/vfs_cached.h similarity index 100% rename from core/fs/vfs/vfs_cached.h rename to WIP/fs/vfs/vfs_cached.h diff --git a/core/fs/vfs/vfs_concat.cpp b/WIP/fs/vfs/vfs_concat.cpp similarity index 100% rename from core/fs/vfs/vfs_concat.cpp rename to WIP/fs/vfs/vfs_concat.cpp diff --git a/core/fs/vfs/vfs_concat.h b/WIP/fs/vfs/vfs_concat.h similarity index 100% rename from core/fs/vfs/vfs_concat.h rename to WIP/fs/vfs/vfs_concat.h diff --git a/core/fs/vfs/vfs_layered.cpp b/WIP/fs/vfs/vfs_layered.cpp similarity index 100% rename from core/fs/vfs/vfs_layered.cpp rename to WIP/fs/vfs/vfs_layered.cpp diff --git a/core/fs/vfs/vfs_layered.h b/WIP/fs/vfs/vfs_layered.h similarity index 100% rename from core/fs/vfs/vfs_layered.h rename to WIP/fs/vfs/vfs_layered.h diff --git a/core/fs/vfs/vfs_offset.cpp b/WIP/fs/vfs/vfs_offset.cpp similarity index 100% rename from core/fs/vfs/vfs_offset.cpp rename to WIP/fs/vfs/vfs_offset.cpp diff --git a/core/fs/vfs/vfs_offset.h b/WIP/fs/vfs/vfs_offset.h similarity index 100% rename from core/fs/vfs/vfs_offset.h rename to WIP/fs/vfs/vfs_offset.h diff --git a/core/fs/vfs/vfs_real.cpp b/WIP/fs/vfs/vfs_real.cpp similarity index 100% rename from core/fs/vfs/vfs_real.cpp rename to WIP/fs/vfs/vfs_real.cpp diff --git a/core/fs/vfs/vfs_real.h b/WIP/fs/vfs/vfs_real.h similarity index 100% rename from core/fs/vfs/vfs_real.h rename to WIP/fs/vfs/vfs_real.h diff --git a/core/fs/vfs/vfs_static.h b/WIP/fs/vfs/vfs_static.h similarity index 100% rename from core/fs/vfs/vfs_static.h rename to WIP/fs/vfs/vfs_static.h diff --git a/core/fs/vfs/vfs_types.h b/WIP/fs/vfs/vfs_types.h similarity index 100% rename from core/fs/vfs/vfs_types.h rename to WIP/fs/vfs/vfs_types.h diff --git a/core/fs/vfs/vfs_vector.cpp b/WIP/fs/vfs/vfs_vector.cpp similarity index 100% rename from core/fs/vfs/vfs_vector.cpp rename to WIP/fs/vfs/vfs_vector.cpp diff --git a/core/fs/vfs/vfs_vector.h b/WIP/fs/vfs/vfs_vector.h similarity index 100% rename from core/fs/vfs/vfs_vector.h rename to WIP/fs/vfs/vfs_vector.h diff --git a/core/fs/xts_archive.cpp b/WIP/fs/xts_archive.cpp similarity index 100% rename from core/fs/xts_archive.cpp rename to WIP/fs/xts_archive.cpp diff --git a/core/fs/xts_archive.h b/WIP/fs/xts_archive.h similarity index 100% rename from core/fs/xts_archive.h rename to WIP/fs/xts_archive.h diff --git a/android/README.md b/android/README.md deleted file mode 100644 index d69edba..0000000 --- a/android/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Android Folder -dir: /android/ - -This is where all of the frontend UI code for the Android app will reside. \ No newline at end of file diff --git a/core/ARM/cpu.h b/core/ARM/cpu.h index 64102c6..31a9214 100644 --- a/core/ARM/cpu.h +++ b/core/ARM/cpu.h @@ -16,22 +16,22 @@ struct CPU { uint8_t read_byte(uint64_t addr) { if (addr >= MEM_SIZE) { - printf("%ld out of bounds\n", addr); + printf("%llu out of bounds\n", addr); } return memory[addr]; } void write_byte(uint64_t addr, uint8_t byte) { if (addr >= MEM_SIZE) { - printf("%ld out of bounds\n", addr); + printf("%llu out of bounds\n", addr); } memory[addr] = byte; } void print_debug_information() { - printf("PC = %lu\n", pc); + printf("PC = %llu\n", pc); for (int reg = 0; reg < 32; reg++) { - printf("X%i = %lu\n", reg, x(reg)); // X0 = 0... + printf("X%i = %llu\n", reg, x(reg)); // X0 = 0... } } }; diff --git a/core/JIT/jit.cpp b/core/JIT/jit.cpp index 5efc146..7bde29a 100644 --- a/core/JIT/jit.cpp +++ b/core/JIT/jit.cpp @@ -1,5 +1,11 @@ #include "jit.h" + +#ifdef WIN32 +#include +#else #include +#endif + #include #include #include @@ -8,8 +14,12 @@ using JitFunc = void (*)(); void JIT::translate_and_run(CPU &cpu) { - uint8_t *code = (uint8_t *)mmap(nullptr, 64, PROT_READ | PROT_WRITE | PROT_EXEC, - MAP_PRIVATE | MAP_ANON, -1, 0); +#ifdef WIN32 + uint8_t *code = (uint8_t*)VirtualAlloc(NULL, 64, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); +#else + uint8_t *code = (uint8_t *)mmap(nullptr, 64, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANON, -1, 0); +#endif + size_t offset = 0; // Decode mock instructions from cpu.memory diff --git a/core/JIT/jit.h b/core/JIT/jit.h index 1a5e5df..e71ba59 100644 --- a/core/JIT/jit.h +++ b/core/JIT/jit.h @@ -1,6 +1,6 @@ #ifndef JIT_H #define JIT_H -#include "cpu.h" +#include "ARM/cpu.h" class JIT { diff --git a/import/common/assert.h b/core/common/assert.h similarity index 100% rename from import/common/assert.h rename to core/common/assert.h diff --git a/import/common/common_types.h b/core/common/common_types.h similarity index 100% rename from import/common/common_types.h rename to core/common/common_types.h diff --git a/import/common/fs/path_util.h b/core/common/fs/path_util.h similarity index 99% rename from import/common/fs/path_util.h rename to core/common/fs/path_util.h index 59301e7..742e05a 100644 --- a/import/common/fs/path_util.h +++ b/core/common/fs/path_util.h @@ -6,7 +6,7 @@ #include #include -#include "common/fs/fs_util.h" +// #include "common/fs/fs_util.h" namespace Common::FS { diff --git a/import/common/logging/formatter.h b/core/common/logging/formatter.h similarity index 100% rename from import/common/logging/formatter.h rename to core/common/logging/formatter.h diff --git a/import/common/logging/log.h b/core/common/logging/log.h similarity index 97% rename from import/common/logging/log.h rename to core/common/logging/log.h index 498e8ff..c00c01a 100644 --- a/import/common/logging/log.h +++ b/core/common/logging/log.h @@ -8,8 +8,8 @@ #include -#include "import/common/logging/formatter.h" -#include "import/common/logging/types.h" +#include "common/logging/formatter.h" +#include "common/logging/types.h" namespace Common::Log { diff --git a/import/common/logging/types.h b/core/common/logging/types.h similarity index 99% rename from import/common/logging/types.h rename to core/common/logging/types.h index 2b3a67b..08af50e 100644 --- a/import/common/logging/types.h +++ b/core/common/logging/types.h @@ -3,7 +3,7 @@ #pragma once -#include "import/common/common_types.h" +#include "common/common_types.h" namespace Common::Log { diff --git a/import/common/swap.h b/core/common/swap.h similarity index 99% rename from import/common/swap.h rename to core/common/swap.h index 6c51096..fde343e 100644 --- a/import/common/swap.h +++ b/core/common/swap.h @@ -13,7 +13,7 @@ #include #include #include -#include "import/common/common_types.h" +#include "common/common_types.h" namespace Common { diff --git a/ui/main.cpp b/core/main.cpp similarity index 85% rename from ui/main.cpp rename to core/main.cpp index 2be23b8..3220ec7 100644 --- a/ui/main.cpp +++ b/core/main.cpp @@ -1,5 +1,5 @@ -#include "cpu.h" -#include "jit.h" +#include "ARM/cpu.h" +#include "JIT/jit.h" #include @@ -20,6 +20,6 @@ int main() { cpu.print_debug_information(); - printf("X0 = %lu\n", cpu.x(0)); + printf("X0 = %llu\n", cpu.x(0)); return 0; } \ No newline at end of file diff --git a/import/README.md b/import/README.md deleted file mode 100644 index d678cd3..0000000 --- a/import/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Import folder - -### !! All code from this folder is from Yuzu to make code from other folders compilable - -dir: /import/ \ No newline at end of file diff --git a/import/fmt/fmt.cc b/import/fmt/fmt.cc deleted file mode 100644 index 671fd69..0000000 --- a/import/fmt/fmt.cc +++ /dev/null @@ -1,153 +0,0 @@ -module; - -#define FMT_MODULE - -#ifdef _MSVC_LANG -# define FMT_CPLUSPLUS _MSVC_LANG -#else -# define FMT_CPLUSPLUS __cplusplus -#endif - -// Put all implementation-provided headers into the global module fragment -// to prevent attachment to this module. -#ifndef FMT_IMPORT_STD -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# if FMT_CPLUSPLUS > 202002L -# include -# endif -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#else -# include -# include -# include -# include -#endif -#include -#include -#include - -#if __has_include() -# include -#endif -#if defined(_MSC_VER) || defined(__MINGW32__) -# include -#endif -#if defined __APPLE__ || defined(__FreeBSD__) -# include -#endif -#if __has_include() -# include -#endif -#if (__has_include() || defined(__APPLE__) || \ - defined(__linux__)) && \ - (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) -# include -# include -# include -# ifndef _WIN32 -# include -# else -# include -# endif -#endif -#ifdef _WIN32 -# if defined(__GLIBCXX__) -# include -# include -# endif -# define WIN32_LEAN_AND_MEAN -# include -#endif - -export module fmt; - -#ifdef FMT_IMPORT_STD -import std; -#endif - -#define FMT_EXPORT export -#define FMT_BEGIN_EXPORT export { -#define FMT_END_EXPORT } - -// If you define FMT_ATTACH_TO_GLOBAL_MODULE -// - all declarations are detached from module 'fmt' -// - the module behaves like a traditional static library, too -// - all library symbols are mangled traditionally -// - you can mix TUs with either importing or #including the {fmt} API -#ifdef FMT_ATTACH_TO_GLOBAL_MODULE -extern "C++" { -#endif - -#ifndef FMT_OS -# define FMT_OS 1 -#endif - -// All library-provided declarations and definitions must be in the module -// purview to be exported. -#include "fmt/args.h" -#include "fmt/chrono.h" -#include "fmt/color.h" -#include "fmt/compile.h" -#include "fmt/format.h" -#if FMT_OS -# include "fmt/os.h" -#endif -#include "fmt/ostream.h" -#include "fmt/printf.h" -#include "fmt/ranges.h" -#include "fmt/std.h" -#include "fmt/xchar.h" - -#ifdef FMT_ATTACH_TO_GLOBAL_MODULE -} -#endif - -// gcc doesn't yet implement private module fragments -#if !FMT_GCC_VERSION -module :private; -#endif - -#ifdef FMT_ATTACH_TO_GLOBAL_MODULE -extern "C++" { -#endif - -#if FMT_HAS_INCLUDE("format.cc") -# include "format.cc" -#endif -#if FMT_OS && FMT_HAS_INCLUDE("os.cc") -# include "os.cc" -#endif - -#ifdef FMT_ATTACH_TO_GLOBAL_MODULE -} -#endif diff --git a/import/fmt/format.cc b/import/fmt/format.cc deleted file mode 100644 index 3ccd806..0000000 --- a/import/fmt/format.cc +++ /dev/null @@ -1,46 +0,0 @@ -// Formatting library for C++ -// -// Copyright (c) 2012 - 2016, Victor Zverovich -// All rights reserved. -// -// For the license information refer to format.h. - -#include "fmt/format-inl.h" - -FMT_BEGIN_NAMESPACE -namespace detail { - -template FMT_API auto dragonbox::to_decimal(float x) noexcept - -> dragonbox::decimal_fp; -template FMT_API auto dragonbox::to_decimal(double x) noexcept - -> dragonbox::decimal_fp; - -#if FMT_USE_LOCALE -// DEPRECATED! locale_ref in the detail namespace -template FMT_API locale_ref::locale_ref(const std::locale& loc); -template FMT_API auto locale_ref::get() const -> std::locale; -#endif - -// Explicit instantiations for char. - -template FMT_API auto thousands_sep_impl(locale_ref) - -> thousands_sep_result; -template FMT_API auto decimal_point_impl(locale_ref) -> char; - -// DEPRECATED! -template FMT_API void buffer::append(const char*, const char*); - -// DEPRECATED! -template FMT_API void vformat_to(buffer&, string_view, - typename vformat_args<>::type, locale_ref); - -// Explicit instantiations for wchar_t. - -template FMT_API auto thousands_sep_impl(locale_ref) - -> thousands_sep_result; -template FMT_API auto decimal_point_impl(locale_ref) -> wchar_t; - -template FMT_API void buffer::append(const wchar_t*, const wchar_t*); - -} // namespace detail -FMT_END_NAMESPACE diff --git a/import/fmt/os.cc b/import/fmt/os.cc deleted file mode 100644 index c833a05..0000000 --- a/import/fmt/os.cc +++ /dev/null @@ -1,398 +0,0 @@ -// Formatting library for C++ - optional OS-specific functionality -// -// Copyright (c) 2012 - 2016, Victor Zverovich -// All rights reserved. -// -// For the license information refer to format.h. - -// Disable bogus MSVC warnings. -#if !defined(_CRT_SECURE_NO_WARNINGS) && defined(_MSC_VER) -# define _CRT_SECURE_NO_WARNINGS -#endif - -#include "fmt/os.h" - -#ifndef FMT_MODULE -# include - -# if FMT_USE_FCNTL -# include -# include - -# ifdef _WRS_KERNEL // VxWorks7 kernel -# include // getpagesize -# endif - -# ifndef _WIN32 -# include -# else -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# endif // _WIN32 -# endif // FMT_USE_FCNTL - -# ifdef _WIN32 -# include -# endif -#endif - -#ifdef _WIN32 -# ifndef S_IRUSR -# define S_IRUSR _S_IREAD -# endif -# ifndef S_IWUSR -# define S_IWUSR _S_IWRITE -# endif -# ifndef S_IRGRP -# define S_IRGRP 0 -# endif -# ifndef S_IWGRP -# define S_IWGRP 0 -# endif -# ifndef S_IROTH -# define S_IROTH 0 -# endif -# ifndef S_IWOTH -# define S_IWOTH 0 -# endif -#endif - -namespace { -#ifdef _WIN32 -// Return type of read and write functions. -using rwresult = int; - -// On Windows the count argument to read and write is unsigned, so convert -// it from size_t preventing integer overflow. -inline unsigned convert_rwcount(std::size_t count) { - return count <= UINT_MAX ? static_cast(count) : UINT_MAX; -} -#elif FMT_USE_FCNTL -// Return type of read and write functions. -using rwresult = ssize_t; - -inline std::size_t convert_rwcount(std::size_t count) { return count; } -#endif -} // namespace - -FMT_BEGIN_NAMESPACE - -#ifdef _WIN32 -namespace detail { - -class system_message { - system_message(const system_message&) = delete; - void operator=(const system_message&) = delete; - - unsigned long result_; - wchar_t* message_; - - static bool is_whitespace(wchar_t c) noexcept { - return c == L' ' || c == L'\n' || c == L'\r' || c == L'\t' || c == L'\0'; - } - - public: - explicit system_message(unsigned long error_code) - : result_(0), message_(nullptr) { - result_ = FormatMessageW( - FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - reinterpret_cast(&message_), 0, nullptr); - if (result_ != 0) { - while (result_ != 0 && is_whitespace(message_[result_ - 1])) { - --result_; - } - } - } - ~system_message() { LocalFree(message_); } - explicit operator bool() const noexcept { return result_ != 0; } - operator basic_string_view() const noexcept { - return basic_string_view(message_, result_); - } -}; - -class utf8_system_category final : public std::error_category { - public: - const char* name() const noexcept override { return "system"; } - std::string message(int error_code) const override { - auto&& msg = system_message(error_code); - if (msg) { - auto utf8_message = to_utf8(); - if (utf8_message.convert(msg)) { - return utf8_message.str(); - } - } - return "unknown error"; - } -}; - -} // namespace detail - -FMT_API const std::error_category& system_category() noexcept { - static const detail::utf8_system_category category; - return category; -} - -std::system_error vwindows_error(int err_code, string_view format_str, - format_args args) { - auto ec = std::error_code(err_code, system_category()); - return std::system_error(ec, vformat(format_str, args)); -} - -void detail::format_windows_error(detail::buffer& out, int error_code, - const char* message) noexcept { - FMT_TRY { - auto&& msg = system_message(error_code); - if (msg) { - auto utf8_message = to_utf8(); - if (utf8_message.convert(msg)) { - fmt::format_to(appender(out), FMT_STRING("{}: {}"), message, - string_view(utf8_message)); - return; - } - } - } - FMT_CATCH(...) {} - format_error_code(out, error_code, message); -} - -void report_windows_error(int error_code, const char* message) noexcept { - do_report_error(detail::format_windows_error, error_code, message); -} -#endif // _WIN32 - -buffered_file::~buffered_file() noexcept { - if (file_ && FMT_SYSTEM(fclose(file_)) != 0) - report_system_error(errno, "cannot close file"); -} - -buffered_file::buffered_file(cstring_view filename, cstring_view mode) { - FMT_RETRY_VAL(file_, FMT_SYSTEM(fopen(filename.c_str(), mode.c_str())), - nullptr); - if (!file_) - FMT_THROW(system_error(errno, FMT_STRING("cannot open file {}"), - filename.c_str())); -} - -void buffered_file::close() { - if (!file_) return; - int result = FMT_SYSTEM(fclose(file_)); - file_ = nullptr; - if (result != 0) - FMT_THROW(system_error(errno, FMT_STRING("cannot close file"))); -} - -int buffered_file::descriptor() const { -#ifdef FMT_HAS_SYSTEM - // fileno is a macro on OpenBSD. -# ifdef fileno -# undef fileno -# endif - int fd = FMT_POSIX_CALL(fileno(file_)); -#elif defined(_WIN32) - int fd = _fileno(file_); -#else - int fd = fileno(file_); -#endif - if (fd == -1) - FMT_THROW(system_error(errno, FMT_STRING("cannot get file descriptor"))); - return fd; -} - -#if FMT_USE_FCNTL -# ifdef _WIN32 -using mode_t = int; -# endif - -constexpr mode_t default_open_mode = - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; - -file::file(cstring_view path, int oflag) { -# if defined(_WIN32) && !defined(__MINGW32__) - fd_ = -1; - auto converted = detail::utf8_to_utf16(string_view(path.c_str())); - *this = file::open_windows_file(converted.c_str(), oflag); -# else - FMT_RETRY(fd_, FMT_POSIX_CALL(open(path.c_str(), oflag, default_open_mode))); - if (fd_ == -1) - FMT_THROW( - system_error(errno, FMT_STRING("cannot open file {}"), path.c_str())); -# endif -} - -file::~file() noexcept { - // Don't retry close in case of EINTR! - // See http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-09/3000.html - if (fd_ != -1 && FMT_POSIX_CALL(close(fd_)) != 0) - report_system_error(errno, "cannot close file"); -} - -void file::close() { - if (fd_ == -1) return; - // Don't retry close in case of EINTR! - // See http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-09/3000.html - int result = FMT_POSIX_CALL(close(fd_)); - fd_ = -1; - if (result != 0) - FMT_THROW(system_error(errno, FMT_STRING("cannot close file"))); -} - -long long file::size() const { -# ifdef _WIN32 - // Use GetFileSize instead of GetFileSizeEx for the case when _WIN32_WINNT - // is less than 0x0500 as is the case with some default MinGW builds. - // Both functions support large file sizes. - DWORD size_upper = 0; - HANDLE handle = reinterpret_cast(_get_osfhandle(fd_)); - DWORD size_lower = FMT_SYSTEM(GetFileSize(handle, &size_upper)); - if (size_lower == INVALID_FILE_SIZE) { - DWORD error = GetLastError(); - if (error != NO_ERROR) - FMT_THROW(windows_error(GetLastError(), "cannot get file size")); - } - unsigned long long long_size = size_upper; - return (long_size << sizeof(DWORD) * CHAR_BIT) | size_lower; -# else - using Stat = struct stat; - Stat file_stat = Stat(); - if (FMT_POSIX_CALL(fstat(fd_, &file_stat)) == -1) - FMT_THROW(system_error(errno, FMT_STRING("cannot get file attributes"))); - static_assert(sizeof(long long) >= sizeof(file_stat.st_size), - "return type of file::size is not large enough"); - return file_stat.st_size; -# endif -} - -std::size_t file::read(void* buffer, std::size_t count) { - rwresult result = 0; - FMT_RETRY(result, FMT_POSIX_CALL(read(fd_, buffer, convert_rwcount(count)))); - if (result < 0) - FMT_THROW(system_error(errno, FMT_STRING("cannot read from file"))); - return detail::to_unsigned(result); -} - -std::size_t file::write(const void* buffer, std::size_t count) { - rwresult result = 0; - FMT_RETRY(result, FMT_POSIX_CALL(write(fd_, buffer, convert_rwcount(count)))); - if (result < 0) - FMT_THROW(system_error(errno, FMT_STRING("cannot write to file"))); - return detail::to_unsigned(result); -} - -file file::dup(int fd) { - // Don't retry as dup doesn't return EINTR. - // http://pubs.opengroup.org/onlinepubs/009695399/functions/dup.html - int new_fd = FMT_POSIX_CALL(dup(fd)); - if (new_fd == -1) - FMT_THROW(system_error( - errno, FMT_STRING("cannot duplicate file descriptor {}"), fd)); - return file(new_fd); -} - -void file::dup2(int fd) { - int result = 0; - FMT_RETRY(result, FMT_POSIX_CALL(dup2(fd_, fd))); - if (result == -1) { - FMT_THROW(system_error( - errno, FMT_STRING("cannot duplicate file descriptor {} to {}"), fd_, - fd)); - } -} - -void file::dup2(int fd, std::error_code& ec) noexcept { - int result = 0; - FMT_RETRY(result, FMT_POSIX_CALL(dup2(fd_, fd))); - if (result == -1) ec = std::error_code(errno, std::generic_category()); -} - -buffered_file file::fdopen(const char* mode) { -// Don't retry as fdopen doesn't return EINTR. -# if defined(__MINGW32__) && defined(_POSIX_) - FILE* f = ::fdopen(fd_, mode); -# else - FILE* f = FMT_POSIX_CALL(fdopen(fd_, mode)); -# endif - if (!f) { - FMT_THROW(system_error( - errno, FMT_STRING("cannot associate stream with file descriptor"))); - } - buffered_file bf(f); - fd_ = -1; - return bf; -} - -# if defined(_WIN32) && !defined(__MINGW32__) -file file::open_windows_file(wcstring_view path, int oflag) { - int fd = -1; - auto err = _wsopen_s(&fd, path.c_str(), oflag, _SH_DENYNO, default_open_mode); - if (fd == -1) { - FMT_THROW(system_error(err, FMT_STRING("cannot open file {}"), - detail::to_utf8(path.c_str()).c_str())); - } - return file(fd); -} -# endif - -pipe::pipe() { - int fds[2] = {}; -# ifdef _WIN32 - // Make the default pipe capacity same as on Linux 2.6.11+. - enum { DEFAULT_CAPACITY = 65536 }; - int result = FMT_POSIX_CALL(pipe(fds, DEFAULT_CAPACITY, _O_BINARY)); -# else - // Don't retry as the pipe function doesn't return EINTR. - // http://pubs.opengroup.org/onlinepubs/009696799/functions/pipe.html - int result = FMT_POSIX_CALL(pipe(fds)); -# endif - if (result != 0) - FMT_THROW(system_error(errno, FMT_STRING("cannot create pipe"))); - // The following assignments don't throw. - read_end = file(fds[0]); - write_end = file(fds[1]); -} - -# if !defined(__MSDOS__) -long getpagesize() { -# ifdef _WIN32 - SYSTEM_INFO si; - GetSystemInfo(&si); - return si.dwPageSize; -# else -# ifdef _WRS_KERNEL - long size = FMT_POSIX_CALL(getpagesize()); -# else - long size = FMT_POSIX_CALL(sysconf(_SC_PAGESIZE)); -# endif - - if (size < 0) - FMT_THROW(system_error(errno, FMT_STRING("cannot get memory page size"))); - return size; -# endif -} -# endif - -void ostream::grow(buffer& buf, size_t) { - if (buf.size() == buf.capacity()) static_cast(buf).flush(); -} - -ostream::ostream(cstring_view path, const detail::ostream_params& params) - : buffer(grow), file_(path, params.oflag) { - set(new char[params.buffer_size], params.buffer_size); -} - -ostream::ostream(ostream&& other) noexcept - : buffer(grow, other.data(), other.size(), other.capacity()), - file_(std::move(other.file_)) { - other.clear(); - other.set(nullptr, 0); -} - -ostream::~ostream() { - flush(); - delete[] data(); -} -#endif // FMT_USE_FCNTL -FMT_END_NAMESPACE diff --git a/ui/README.md b/ui/README.md deleted file mode 100644 index 7fd36a2..0000000 --- a/ui/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# UI Folder - -dir: /ui/ - -This is where all of the frontend UI code and backend console will reside for all builds except for Android (see dir /android/) \ No newline at end of file diff --git a/ui/gman/README.md b/ui/gman/README.md deleted file mode 100644 index 7d23298..0000000 --- a/ui/gman/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Games manager UI (coming soon) - -dir: /ui/gman/ - -Will likely use the Switch 1 game system \ No newline at end of file