diff --git a/.github/workflows/build-release-macos-app-bundles.yml b/.github/workflows/build-release-macos-app-bundles.yml index e26cbae..d02c1e6 100644 --- a/.github/workflows/build-release-macos-app-bundles.yml +++ b/.github/workflows/build-release-macos-app-bundles.yml @@ -76,7 +76,7 @@ jobs: -create -output Dust.app/Contents/MacOS/Dust - tar -czf Dust.app.tar.gz Dust.app + tar -cf Dust.app.tar.gz Dust.app - name: Upload release bundle (no debugging features) uses: actions/upload-artifact@v4 @@ -108,7 +108,7 @@ jobs: -create -output Dust.app/Contents/MacOS/Dust - tar -czf Dust.app.tar.gz Dust.app + tar -cf Dust.app.tar.gz Dust.app - name: Upload release bundle (debugging features) uses: actions/upload-artifact@v4 @@ -142,7 +142,7 @@ jobs: cp -R frontend/desktop/src/emu/gdb_server/specs Dust.app/Contents/Resources - tar -czf Dust.app.tar.gz Dust.app + tar -cf Dust.app.tar.gz Dust.app - name: Upload release bundle (debugging features + GDB) uses: actions/upload-artifact@v4 diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 40eaf72..97abe95 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -77,7 +77,7 @@ jobs: tar -C target/${{ matrix.target }}/ci - -czf dust-desktop.tar.gz + -cf dust-desktop.tar.gz dust-desktop${{ matrix.artifact-extension }} - name: Upload release binary (no debugging features) @@ -98,7 +98,7 @@ jobs: tar -C target/${{ matrix.target }}/ci - -czf dust-desktop.tar.gz + -cf dust-desktop.tar.gz dust-desktop${{ matrix.artifact-extension }} - name: Upload release binary (debugging features) @@ -119,7 +119,7 @@ jobs: tar -C target/${{ matrix.target }}/ci - -czf dust-desktop.tar.gz + -cf dust-desktop.tar.gz dust-desktop${{ matrix.artifact-extension }} - name: Upload release binary (debugging features + GDB) diff --git a/.github/workflows/run-clippy-and-test.yml b/.github/workflows/clippy.yml similarity index 81% rename from .github/workflows/run-clippy-and-test.yml rename to .github/workflows/clippy.yml index 834ef19..1cc93f5 100644 --- a/.github/workflows/run-clippy-and-test.yml +++ b/.github/workflows/clippy.yml @@ -1,4 +1,4 @@ -name: Run Clippy and test +name: Clippy on: push: @@ -11,8 +11,8 @@ env: MACOSX_DEPLOYMENT_TARGET: 10.11 jobs: - run-clippy-and-test: - name: Run Clippy and test (${{ matrix.os }}) + clippy: + name: Clippy (${{ matrix.os }}) strategy: matrix: os: [windows-latest, ubuntu-latest, macos-latest] @@ -56,9 +56,3 @@ jobs: name: Run clippy (${{ matrix.os }}, all features) token: ${{ secrets.GITHUB_TOKEN }} args: --no-default-features --features=${{ env.FEATURES }} --package dust-desktop - - - name: Run tests (no default features) - run: cargo test --verbose --no-default-features --package dust-desktop - - - name: Run tests (all features) - run: cargo test --verbose --features=${{ env.FEATURES }} --package dust-desktop diff --git a/README.md b/README.md index cb1da42..4cd1d54 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,43 @@ # Dust -![Screenshot](screenshot.png) +[![Build status](https://github.com/kelpsyberry/dust/actions/workflows/clippy.yml/badge.svg?branch=main&event=push)](https://github.com/kelpsyberry/dust/actions/workflows/clippy.yml?query=branch%3Amain+event%3Apush) +[![Discord server](https://dcbadge.vercel.app/api/server/MRDEvx8rKy?style=flat&theme=default-inverted)](https://discord.gg/MRDEvx8rKy) -[![Build and test status](https://github.com/kelpsyberry/dust/actions/workflows/.github/workflows/run-clippy-and-test.yml/badge.svg?branch=main&event=push)](https://github.com/kelpsyberry/dust/actions/workflows/run-clippy-and-test.yml?query=branch%3Amain+event%3Apush) +![Screenshot](screenshot.png) -## Prebuilt binaries and web version +## Web version -[![Web deploy status](https://github.com/kelpsyberry/dust/actions/workflows/.github/workflows/deploy-web.yml/badge.svg?branch=main&event=push)](https://github.com/kelpsyberry/dust/actions/workflows/deploy-web.yml?query=branch%3Amain+event%3Apush) +[![Web deploy status](https://github.com/kelpsyberry/dust/actions/workflows/deploy-web.yml/badge.svg?branch=main&event=push)](https://github.com/kelpsyberry/dust/actions/workflows/deploy-web.yml?query=branch%3Amain+event%3Apush) [Web frontend](https://dust-emu.netlify.app) +## Prebuilt binaries + +[![Binary release build status](https://github.com/kelpsyberry/dust/actions/workflows/build-release.yml/badge.svg?branch=main&event=push)](https://github.com/kelpsyberry/dust/actions/workflows/build-release.yml?query=branch%3Amain+event%3Apush) +[![macOS app bundle release build status](https://github.com/kelpsyberry/dust/actions/workflows/build-release-macos-app-bundles.yml/badge.svg?branch=main&event=push)](https://github.com/kelpsyberry/dust/actions/workflows/build-release-macos-app-bundles.yml?query=branch%3Amain+event%3Apush) + +- The base configuration only includes all features necessary to run games as an end user +- The debugging configuration additionally enables logging of diagnostic events on the emulated system (i.e. invalid I/O device usage or port accesses) and several debugging views (i.e. memory and register viewer and a disassembly view), all accessible from the Debug menu +- The debugging + GDB server configuration also enables support for a GDB client to attach to and debug the emulated program, by starting/stopping the server from the Debug menu while running a program -[![Release build status](https://github.com/kelpsyberry/dust/actions/workflows/.github/workflows/build-release.yml/badge.svg?branch=main&event=push)](https://github.com/kelpsyberry/dust/actions/workflows/build-release.yml?query=branch%3Amain+event%3Apush) +> **NB**: The debugging configurations only add debugging features for loaded programs; all binaries are compiled with optimizations and don't include debug symbols for the emulator itself. -| Release | Debug (includes logging and debugging views) | Debug + GDB server | -| ------- | -------------------------------------------- | ------------------ | -| [Windows (release)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Windows.zip) | [Windows (debug)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Windows-debug.zip) | [Windows (debug + GDB)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Windows-debug-gdb.zip) | -| [Linux (release)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Linux.zip) | [Linux (debug)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Linux-debug.zip) | [Linux (debug + GDB)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Linux-debug-gdb.zip) | -| [macOS x86_64 (release)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-x86_64.zip) | [macOS x86_64 (debug)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-x86_64-debug.zip) | [macOS x86_64 (debug + GDB)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-x86_64-debug-gdb.zip) | -| [macOS ARM64 (release)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-aarch64.zip) | [macOS ARM64 (debug)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-aarch64-debug.zip) | [macOS ARM64 (debug + GDB)](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-aarch64-debug-gdb.zip) | +| OS and binary type | Base | Debugging | Debugging + GDB server | +| ------------------ | ---- | --------- | ---------------------- | +| Windows x86_64 .exe | [Windows.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Windows.zip) | [Windows-debug.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Windows-debug.zip) | [Windows-debug-gdb.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Windows-debug-gdb.zip) | +| Linux x86_64 binary | [Linux.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Linux.zip) | [Linux-debug.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Linux-debug.zip) | [Linux-debug-gdb.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/Linux-debug-gdb.zip) | +| macOS universal app | [macOS-app.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release-macos-app-bundles/main/macOS-app.zip) | [macOS-app-debug.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release-macos-app-bundles/main/macOS-app-debug.zip) | [macOS-app-debug-gdb.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release-macos-app-bundles/main/macOS-app-debug-gdb.zip) | +| macOS x86_64 binary | [macOS-x86_64.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-x86_64.zip) | [macOS-x86_64-debug.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-x86_64-debug.zip) | [macOS-x86_64-debug-gdb.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-x86_64-debug-gdb.zip) | +| macOS ARM64 binary | [macOS-aarch64.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-aarch64.zip) | [macOS-aarch64-debug.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-aarch64-debug.zip) | [macOS-aarch64-debug-gdb.zip](https://nightly.link/kelpsyberry/dust/workflows/build-release/main/macOS-aarch64-debug-gdb.zip) | -# Credits +## Credits - Martin Korth, for summarizing resources on the DS on [GBATEK](https://problemkaputt.de/gbatek.htm) - [Arisotura](https://github.com/Arisotura), for her research on the system in melonDS, [test ROMs](https://github.com/Arisotura/arm7wrestler) and [corrections and additions to the info on GBATEK](https://melonds.kuribo64.net/board/thread.php?id=13), and for the game database used in this emulator - [StrikerX3](https://github.com/StrikerX3), for his research on 3D rendering on the DS - [Simone Coco](https://github.com/CocoSimone), [Fleroviux](https://github.com/fleroviux), [Lady Starbreeze](https://github.com/LadyStarbreeze), [Merry](https://github.com/merryhime), [Powerlated](https://github.com/Powerlated) and [Peach](https://github.com/wheremyfoodat) for help throughout development - The Emulation Development server on Discord as a whole, for providing several invaluable resources -# Sister projects +## Sister projects - [**Kaizen**](https://github.com/SimoneN64/Kaizen): Experimental work-in-progress low-level N64 emulator - [**n64**](https://github.com/Dillonb/n64): Low-level, accurate, fast and easy to use Nintendo 64 emulator - [**Panda3DS**](https://github.com/wheremyfoodat/Panda3DS): A new HLE Nintendo 3DS emulator diff --git a/core/src/audio/channel.rs b/core/src/audio/channel.rs index 4ad9b82..15f6ed7 100644 --- a/core/src/audio/channel.rs +++ b/core/src/audio/channel.rs @@ -337,9 +337,8 @@ impl Channel { self.check_total_size(); } - // TODO: Makes Clippy crash right now? - // #[allow(clippy::unused_self)] #[inline] + #[allow(clippy::unused_self)] fn keep_last_sample(&mut self) { #[cfg(feature = "xq-audio")] self.hist.copy_within(1.., 0);