diff --git a/README.md b/README.md index c1b58b11..7d22e82d 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,224 @@ -# PlayCover +
-Run iOS apps & games on M1 Mac with mouse, keyboard and controller support. +‎

[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![MIT License][license-shield]][license-url] +

-Don't create issue here if you are not dev, just visit -## Installation -Watch video for fresh setup: + +
+
+ + Logo + -## How to create key mapping +

PlayCover

-Press Ctrl + P to open editor mode. +

+ Run iOS apps & games on M1 Mac with mouse, keyboard and controller support. +
+
+ Showcase + · + Contribute + · + Discord +

+
-Now you can use Ctrl + N to add button, Ctrl + J - joystick, Ctrl + M - mouse. -To delete a key, click on existing button, and then press Ctrl + Del. -After edit, just press Ctrl + P again to save results. + +## About The Project -You can hold Alt during game to stop mouse camera control. +Welcome to PlayCover! This software is all about allowing you to run apps & games on your M1 device runnnig macOS 12.0 or newer. -## Showcase +It does this by putting the applications through a wrapper which imitates an iPad. This allows the apps to perform very well and run natively, because the M1 chip is essentially a glorified mobile chip. Another advantage to the software is that you can insert and manipulate custom controls with your keyboard, which is not possible in alternative sideloading methods such as Sideloadly. These controls include all the essentials, from WASD, Camera movement, Left and Right clicks, and individual keymapping, similar to a popular Android emulator’s keymapping system called Bluestacks. - +While this software was originally created to allow you to run Genshin Impact on your M1 device, it grew to allow many more applications to run. Although support for all games is not promised and bugs with games are expected. -## Instruction +![Fancy logo](./images/dark.png#gh-dark-mode-only) +![Fancy logo](./images/light.png#gh-light-mode-only) - +

⬆️ Back to top️

-## Project support -You can support me via: - -## Used libraries + +## Getting Started - +Following the installation instructions will get Genshin Impact you up and running in no time. The steps can be repeated if you want to try out other games or apps. - +### Prerequisites - +At the moment, PlayCover can only be installed and executed on M1 MacBooks. Devices with the following chips are supported: -## License and Commercial +* M1 +* M1 Pro +* M1 Max +* M1 Ultra -AGPLv3 -*** -Contact me via business@playcover.me to get exclusive Commercial license. + Unfortunately, it cannot run on any Intel chips, so you are forced to use Bootcamp or other emulators. + +### Installation + +1. Disable SIP + - This can be done by shutting down your mac, holding down power button + - After this, click on your username/ssd, then keep going until you can see `Utilities` at the top + - When you see this, click on it and click on `Terminal` + - After this, you should be in a terminal window + - Type `csrutil disable` in that terminal window + - Put your password and everything, then restart your mac + +2. Modify nvram boot-args + - When you have SIP disabled, type the following: + - `Command + Space`, type `Terminal` in the search box + - It should open a normal terminal window + - Type the following in this window (or copy paste it) + - `sudo nvram boot-args="amfi_get_out_of_my_way=1"` + - If it appears that nothing has happened, this is correct. + - Now restart your mac once again + +3. Login to Genshin + - Open Genshin Impact with PlayCover, and you should be greeted with a Login button + - Login to your account, then wait until the door appears and quit the game with `Command + Q` + - Thats all which is required in Genshin for now + +4. Enable SIP + - Shut down your mac again + - Hold down the power button until you get to recovery options + - Click on your username and your storage disk respectively like you did for step 1. + - You should see `Utilities` at the top + - Click on it, and Click on `Terminal` + - In terminal, type the following: `csrutil enable` + - `csrutil clear` should also work + - Reboot your mac by going to `Apple Logo` > `Restart` + +5. Open Genshin + - You're done! Enjoy playing genshin! + +### Video Instructions + +The above steps are shown in the following video: + +[How to play Genshin Impact using Playcover on your M1 Mac (2020 or newer)!](https://www.youtube.com/watch?v=ZRmCjkS3UZE) + +

⬆️ Back to top️

+ + + + +## Keymapping + +### Button Events + +* Opens a menu to add a button element + * Clicking on the screen +* Edit keymapping binding + * Click on a keymap and press the key you want binded +* Bind left mouse button + * Clicking on **'LB'** +* Bind right mouse button + * Clicking on **'RB'** +* Bind middle mouse button + * Clicking on **'🖱️'** +* Adds a W/A/S/D joystick + * Clicking on the **'➕'** +* Adds a mouse area for mouse control + * Clicking on the **'🔁'** + +### Flow Control + +* Increase the selected buttons size + * Menu Bar > `Keymapping` > Upsize Selected Element OR `Cmd + '↑'` +* Decrease the selected buttons size + * Menu Bar > `Keymapping` > Upsize Selected Element OR `Cmd + '↓'` +* Delete the selected keymapping + * CMD + delete (backspace) +* Toggle between show/hide cursor + * Press option (⌥) + +### Importing Keybinds + +1. Download the `.playmap` file from [#📝・keymap-showcase](https://discord.com/channels/871829896492642387/922068254569160745) + +2. Open PlayCover and right click the app you wish to import the keybinds to + +3. Click on `Import Keymapping` + +4. Select the previously downloaded `.playmap` file + +5. Quit and reopen the app + - This step is required for the newly imported keymapping to work + +_For additional help, please join the [Discord server](https://discord.gg/rMv5qxGTGC)_ + +

⬆️ Back to top️

+ + + + + +## Contributing + +If you have a suggestion that would make this better, please fork the repo and create a pull request. Don't forget to give the project a star! Thanks again! + +1. Fork the Project +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the Branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +

⬆️ Back to top️

+ + + + +## License + +Distributed under the AGPLv3 License. See `LICENSE` for more information. + +

⬆️ Back to top️

+ + + + +## Contact + +Alexandr Dorofeev - business@playcover.me + +Project Link: [https://github.com/iVoider/PlayCover](https://github.com/iVoider/PlayCover) + +

⬆️ Back to top️

+ + + + +## Libraries Used + +These open source libraries were used to create this project. + +* [appdecrypt](https://github.com/paradiseduo/appdecrypt/tree/main/Sources/appdecrypt) +* [optool](https://github.com/alexzielenski/optool) +* [PTFakeTouch](https://github.com/Ret70/PTFakeTouch) + +

⬆️ Back to top️

+ + + + +[contributors-shield]: https://img.shields.io/github/contributors/iVoider/PlayCover.svg?style=for-the-badge +[contributors-url]: https://github.com/iVoider/PlayCover/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/iVoider/PlayCover.svg?style=for-the-badge +[forks-url]: https://github.com/iVoider/PlayCover/network/members +[stars-shield]: https://img.shields.io/github/stars/iVoider/PlayCover.svg?style=for-the-badge +[stars-url]: https://github.com/iVoider/PlayCover/stargazers +[issues-shield]: https://img.shields.io/github/issues/iVoider/PlayCover.svg?style=for-the-badge +[issues-url]: https://github.com/iVoider/PlayCover/issues +[license-shield]: https://img.shields.io/github/license/iVoider/PlayCover.svg?style=for-the-badge +[license-url]: https://github.com/iVoider/PlayCover/blob/master/LICENSE.txt \ No newline at end of file diff --git a/images/dark.png b/images/dark.png new file mode 100644 index 00000000..5d8c0ada Binary files /dev/null and b/images/dark.png differ diff --git a/images/light.png b/images/light.png new file mode 100644 index 00000000..91be67f5 Binary files /dev/null and b/images/light.png differ diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 00000000..ed1e415a Binary files /dev/null and b/images/logo.png differ