diff --git a/.github/screenshots/3nhuKCK6E3.jpg b/.github/screenshots/3nhuKCK6E3.jpg deleted file mode 100644 index 7f70d9c..0000000 --- a/.github/screenshots/3nhuKCK6E3.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a33280e455034d34c0b2dfa111cff8fe179f97c2a39f7cd0c99b71b1957eda4f -size 1070602 diff --git a/.github/screenshots/3nhuKCK6E3.png b/.github/screenshots/3nhuKCK6E3.png new file mode 100644 index 0000000..5feae4b --- /dev/null +++ b/.github/screenshots/3nhuKCK6E3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5be6551346cd1067ab4bbb172828a801c4e26f1c9cac9ce35e1e712356df05bb +size 1970162 diff --git a/.github/screenshots/6wz3gW8c2h.png b/.github/screenshots/6wz3gW8c2h.png new file mode 100644 index 0000000..6ebc8de --- /dev/null +++ b/.github/screenshots/6wz3gW8c2h.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06131801cba199fa267b532a2f26b841d2b856cdd1bb9428e08879981e7b36c8 +size 1932256 diff --git a/.github/screenshots/EWPHmIBEE5.png b/.github/screenshots/EWPHmIBEE5.png index 6fd9f40..90e6416 100644 --- a/.github/screenshots/EWPHmIBEE5.png +++ b/.github/screenshots/EWPHmIBEE5.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a03b0cd56b78f51f8bc4c304b8b14fa611748b9efa192ef26283e732beff90c1 -size 643600 +oid sha256:0eeee2b3d31fbb4ea49bb38a2634088fa0a54d6ce5d41f7bf39f419d518b802e +size 850435 diff --git a/.github/screenshots/GL7SkQbHIY.png b/.github/screenshots/GL7SkQbHIY.png index 2cdbe12..28544a3 100644 --- a/.github/screenshots/GL7SkQbHIY.png +++ b/.github/screenshots/GL7SkQbHIY.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bf2d692f8ccf3a1c5f9addf26052a34a74c332474fbd8c5bbc7923208407a748 -size 86214 +oid sha256:a22580330264a0ad2d4a6f758ad26c18ed9a0a17cbe1254dbbad01e959b205f8 +size 110988 diff --git a/.github/screenshots/MMeJxl4IXr.png b/.github/screenshots/MMeJxl4IXr.png new file mode 100644 index 0000000..f8cd130 --- /dev/null +++ b/.github/screenshots/MMeJxl4IXr.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ba59fccc691e8f43d4eff532d88edfab411d9abb68d0566fad1c167b7b17bdd +size 183846 diff --git a/.github/screenshots/Pkazk0RufB.png b/.github/screenshots/Pkazk0RufB.png index ceced8a..3025b0d 100644 --- a/.github/screenshots/Pkazk0RufB.png +++ b/.github/screenshots/Pkazk0RufB.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2dd9859c9495af93872534a913a78597d235f8fb723fe685aa1aeab9283e028b -size 1986843 +oid sha256:9db331ad2d2cf2fb2525560baf5970f8faa6c8ff6ae885d9eedd65560af8fffd +size 2035855 diff --git a/.github/screenshots/rBY2mgTLy0.png b/.github/screenshots/rBY2mgTLy0.png new file mode 100644 index 0000000..653ddab --- /dev/null +++ b/.github/screenshots/rBY2mgTLy0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eca786ab7f525bcfe663f82995fc9e91234ddd5df726528b0926eaf32ed8ad8e +size 110966 diff --git a/.github/screenshots/xNj7scPEDQ.png b/.github/screenshots/xNj7scPEDQ.png index d50d6aa..4813a47 100644 --- a/.github/screenshots/xNj7scPEDQ.png +++ b/.github/screenshots/xNj7scPEDQ.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a234b8d4624ccfd677c698c1e33eb7c0b757dc13f1403fd8bc6d37ed9e6ff02 -size 1673960 +oid sha256:c26e4b9c7f690c49f9625ea2b8c2a82f03a24a0236c53dc02c158f7222c2519d +size 1805877 diff --git a/.github/screenshots/yObFD2LySH.jpg b/.github/screenshots/yObFD2LySH.jpg index 00d761f..f540a83 100644 --- a/.github/screenshots/yObFD2LySH.jpg +++ b/.github/screenshots/yObFD2LySH.jpg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:46e473f90661400fec49d87a972a3324cd4fb18f5b8c670aa5b606462f98fbfe -size 1194459 +oid sha256:2f813f98ae41c6d383dcc5e9d6ea693b6701dddc5a03f73cbd1ed990b8532710 +size 1274712 diff --git a/.github/screenshots/zEQxtzhPGx.png b/.github/screenshots/zEQxtzhPGx.png new file mode 100644 index 0000000..1b18477 --- /dev/null +++ b/.github/screenshots/zEQxtzhPGx.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e3bf4df252866dd15f3c1c6efcfc648fbd9d320e47cf2d64551137497d229d6 +size 1324186 diff --git a/README.md b/README.md index 26befdf..c08de2d 100644 --- a/README.md +++ b/README.md @@ -13,37 +13,41 @@ Focused on building a simple user experience and intuitive UI as a curated commu - **[ROMM](https://github.com/rommapp/romm)** - download, sync and update roms and platforms. - **[Emulator JS](https://github.com/EmulatorJS/EmulatorJS)** - play your games with emulator js right within the app. Uses RetroArch cores. -- **[RClone](https://github.com/rclone/rclone)** - sync saves between devices or cloud. +- **[RClone](https://github.com/rclone/rclone)** - sync saves between devices or cloud. Some Emulators and store games support it. - **[UMU](https://github.com/Open-Wine-Components/umu-launcher)** - UMU Launcher for playing windows games on linux without needing steam. (Only used for store games for now) ### Store -- **Emulators** - (WIP) Download and install emulators and automatically configure them +- **Emulators** - (WIP) Download and install emulators and automatically configure them from a list of supported in the store. Some even come with advanced features like cloud saves. - **Free Curated Games** - Download free curreted games and homebrew roms without ever leaving the app ### Others - **Cross Platform** - Can run on multiple platforms. Built with web technologies and bun backend. - **Steam Deck Support** - Extensively tested with the steam deck. It can use flatpak installed browsers. -- **Lightweight** - It uses the existing system browser to launch the front end, so no need to include a whole web browser. +- **Lightweight** - It uses the window's webview as a frontend, reducing build size and ram usage. - On Windows it first uses webview2 then your browser - - On linux it uses WebKitGTK or a browser even from flatpak + - On linux it does ship with NW.js to work on most distros. A big one is the steam deck missing WebKitGTK. - Not tested on Mac yet - **Great for Controllers** - The UI is inspired by the switch and works great with joysticks and dpads. - **Automatic Downloads** - Downloads roms from ROMM automatically -- **Automatic Emulator Discovery** - Using the configs of the excellent ES-DE to discover installed emulators and launch games. +- **Automatic Emulator Discovery** - Using the configs of the excellent ES-DE to discover installed emulators and launch roms. You can bring your existing configurations. - Easy fallback configuration with built in file browser. - **Responsive Layout** - Optimized mainly for the steam deck with responsive layout support and dynamic switching of inputs. - **Cloud/Device Save Sync** - For supported games and emulators. +- **Dark and Light** - Dark and light themes for your preference. ## Screenshots - - - - - - + + + + + + + + + ## Goals @@ -51,6 +55,7 @@ Focused on building a simple user experience and intuitive UI as a curated commu - I plan to add a free store where you can download all your needed emulators, the goal is to not have to leave the UI for anything. - I really want to add matrix chat support in the app for engaging with your favorite community. Having access to so many nodejs libraries would make it quite straight forward. - I'm sick of closed source and private store fronts, and want a way to share community currated free experiences. I'm also sick of the profit driven nature of games and promotions. +- Being self contained, I want to avoid writing as little as possible to system and contain and manage settings in a custom changeable directory. This was mainly a side-effect of having the low storage steam deck and always running out of space on my internal hard drive. ## Development @@ -81,6 +86,9 @@ Focused on building a simple user experience and intuitive UI as a curated commu - `bun run openapi-ts` generated the openapi client calls from romm's API - `bun run package:windows` builds an package to be distributed on windows - `bun run package:linux` builds an AppImage to be distributed on linux + - `bun run test` run tests + - `bun run download:chromium` downloads degoogled chromium to use as the frontend + - `bun run download:nwjs` downloads NW.js to use as a frontend. ### Tech Stack