base on null # Vanilla This is a **work-in-progress** software clone of the Wii U gamepad. No warranty is provided and everything should be considered **alpha** at best. <p align="center"> <img src="https://raw.githubusercontent.com/vanilla-wiiu/vanilla/master/images/screenshot1.png"> <br> <a href="https://youtu.be/DSgFu4rDxgc"> Announcement Video </a> </p> ## Usage/Installing Official builds are provided for all supported platforms on the [Releases](https://github.com/vanilla-wiiu/vanilla/releases) page. Most users are recommended to use these. ### Distro-specific packages Vanilla is also available in the package managers of certain Linux distributions. #### Arch (AUR) An Arch User Repository (AUR) package called `vanilla-wiiu-git` is available for easy installation on Arch Linux and derivatives. For more information, see the AUR page: [https://aur.archlinux.org/packages/vanilla-wiiu-git](https://aur.archlinux.org/packages/vanilla-wiiu-git) ## What devices are supported? - [Steam Deck](https://github.com/vanilla-wiiu/vanilla/wiki/Steam-Deck) - [Linux](https://github.com/vanilla-wiiu/vanilla/wiki/Linux-Setup-Guide) (check [Wi-Fi hardware compatibility](https://github.com/vanilla-wiiu/vanilla/wiki/Wireless-Compatibility)) - [Nintendo Switch](https://github.com/vanilla-wiiu/vanilla/wiki/Linux-Setup-Guide) (requires [Broadcom firmware patch](https://github.com/vanilla-wiiu/nexmon) or [external Wi-Fi adapter](https://github.com/vanilla-wiiu/vanilla/wiki/Linux-Setup-Guide#nintendo-switch)) - [Android](https://github.com/vanilla-wiiu/vanilla/wiki/Android-Setup-Guide) (currently frontend only) - [Windows](https://github.com/vanilla-wiiu/vanilla/wiki/Windows-Setup-Guide) (currently frontend only) - [Raspberry Pi](https://github.com/vanilla-wiiu/vanilla/wiki/Raspberry-Pi) (requires [external Wi-Fi adapter](https://github.com/vanilla-wiiu/vanilla/wiki/Linux-Setup-Guide#raspberry-pi)) - *iOS* - Coming soon ## What Wi-Fi adapter should I use? At a minimum, you will need an adapter that supports 802.11n 5GHz. Newer standards (e.g. 802.11ac) are backwards compatible and should work as long as they can run at 5GHz. In practice, not all hardware/drivers appear to work at this time. Check the [Wireless Compatibility](https://github.com/vanilla-wiiu/vanilla/wiki/Wireless-Compatibility) page on the wiki to check if a card is confirmed working or not. ## Keyboard Mapping ### Special Functions Extra Vanilla functionality can be accessed through these keyboard shortcuts. On platforms like the [Steam Deck](https://github.com/vanilla-wiiu/vanilla/wiki/Steam-Deck), these can be mapped to the back grip buttons. | Function | Key | | --------------------- | ------------- | | Start/Stop Recording | F5 | | Take Screenshot | F12 | | Disconnect | Esc | ### Gameplay While a controller/gamepad is strongly recommended for the best experience, it is possible to use the keyboard as a fallback. Currently the keys are not remappable, but this is what they are mapped to by default: | Gamepad Button | Key | | ----------------- | ------------- | | A | Z | | B | X | | X | C | | Y | V | | Plus (+) | Enter/Return | | Minus (-) | Left Ctrl | | Home | H | | TV | Y | | Left Stick Up | W | | Left Stick Left | S | | Left Stick Down | A | | Left Stick Right | D | | Left Stick Click | E | | D-Pad Up | Up Arrow | | D-Pad Left | Left Arrow | | D-Pad Down | Down Arrow | | D-Pad Right | Right Arrow | | Right Stick Up | Keypad 8 | | Right Stick Left | Keypad 4 | | Right Stick Down | Keypad 2 | | Right Stick Right | Keypad 6 | | Right Stick Click | Keypad 5 | | L | T | | ZL | G | | R | U | | ZR | J | ## Compiling (Linux) Vanilla currently requires the following dependencies: - **Debian/Ubuntu** ```sh apt install build-essential cmake libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libnl-genl-3-dev libnl-route-3-dev libssl-dev libxml2-dev libnm-dev libpolkit-agent-1-dev ``` - **Fedora** ```sh dnf install libavcodec-free-devel libavutil-free-devel libavfilter-free-devel libnl3-devel SDL2-devel SDL2_image-devel SDL2_ttf-devel openssl-devel make automake gcc gcc-c++ kernel-devel cmake libxml2-devel NetworkManager-libnm-devel polkit-devel ``` - **Arch** ```sh pacman -S base-devel make cmake ffmpeg libnl sdl2 sdl2_image sdl2_ttf libxml2 libnm openssl polkit ``` - **Alpine/postmarketOS** ```sh apk add build-base cmake sdl2-dev sdl2_image-dev sdl2_ttf-dev ffmpeg-dev libnl3-dev libxml2-dev openssl-dev networkmanager-dev polkit-dev ``` The build process is otherwise normal for a CMake program: ``` git clone https://github.com/vanilla-wiiu/vanilla.git cd vanilla mkdir build && cd build cmake .. cmake --build . --parallel ``` Optionally, to install the program: ``` sudo cmake --install . ``` ", Assign "at most 3 tags" to the expected json: {"id":"13828","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"