Merge branch '420' into MoreFAPs

This commit is contained in:
RogueMaster
2022-11-04 02:35:15 -04:00
37 changed files with 64 additions and 93 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -18,6 +18,7 @@
- Added some stupid breaks for default switch cases.
- Updated: [IFTTT Virtual Button (By Ferrazzi)](https://github.com/Ferrazzi/FlipperZero_IFTTT_Virtual_Button) `Req: ESP8266 w/ IFTTT FW Flashed`
- Fixes for slower animations to be MUCH faster
- [BadUSB as FAP #396 (By ESurge)](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/pull/396)
<details>
<summary><B>TO DO / REMOVED</b></summary><br/>
@@ -100,6 +101,7 @@ $ ./fbt plugin_dist
- Assets: Includes sample SubGHz assets for Crosswalk, Handicap Doors, Sextoys, Tesla Charge Port, and Unitree Go1 Robot Dog
- Assets: Includes Sonic Screw Driver sound for the Wav Player
- Assets: Running DolphinRestorer.fap on new install will auto-level to Level 7.
- [BadUSB as FAP #396 (By ESurge)](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/pull/396)
- BadUSB: Added ignore DUCKY_LANG cmd to retain compatibility with existing scripts [(Thanks to v1nc)](https://github.com/v1nc/flipperzero-firmware)
- BadUSB: Assets for Kiosk Evasion (By nocomp) and Wifi Stealer (By 7h30th3r0n3)
- BadUSB: [Dummy decoy/bad usb keyboard layout #1525 (By dummy-decoy)](https://github.com/flipperdevices/flipperzero-firmware/pull/1525)
+2 -1
View File
@@ -11,7 +11,8 @@ App(
"lfrfid",
"nfc",
"subghz",
"bad_usb",
#"bad_usb",
"bad_usb_loader",
# "u2f",
"u2f_loader",
"fap_loader",
@@ -63,6 +63,14 @@ static void archive_run_in_app(ArchiveBrowserView* browser, ArchiveFile_t* selec
char* result =
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
strcpy(result, tmpType);
strcat(result, furi_string_get_cstr(selected->path));
status = loader_start(loader, "Applications", result);
} else if(strcmp(flipper_app_name[selected->type], "Bad USB") == 0) {
char* tmpType = "/ext/apps/Main/bad_usb.fap¯";
char* result =
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
strcpy(result, tmpType);
strcat(result, furi_string_get_cstr(selected->path));
status = loader_start(loader, "Applications", result);
+1 -2
View File
@@ -12,7 +12,6 @@ App(
# icon="A_BadUsb_14",
order=70,
fap_category="Main",
fap_icon="gpioIcon.png",
fap_icon="badusb_10px.png",
fap_icon_assets="images",
)
Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

@@ -62,13 +62,13 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
if(model->state.state == BadUsbStateNotConnected) {
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
canvas_set_font(canvas, FontPrimary);
canvas_draw_str_aligned(canvas, 127, 27, AlignRight, AlignBottom, "Connect");
canvas_draw_str_aligned(canvas, 127, 39, AlignRight, AlignBottom, "to USB");
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Connect");
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "to USB");
} else if(model->state.state == BadUsbStateWillRun) {
canvas_draw_icon(canvas, 4, 22, &I_Clock_18x18);
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
canvas_set_font(canvas, FontPrimary);
canvas_draw_str_aligned(canvas, 127, 27, AlignRight, AlignBottom, "Will run");
canvas_draw_str_aligned(canvas, 127, 39, AlignRight, AlignBottom, "on connect");
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will run");
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "on connect");
} else if(model->state.state == BadUsbStateFileError) {
canvas_draw_icon(canvas, 4, 26, &I_Error_18x18);
canvas_set_font(canvas, FontPrimary);
@@ -0,0 +1,14 @@
App(
appid="bad_usb_loader",
name="Bad USB",
apptype=FlipperAppType.APP,
entry_point="bad_usb_loader_app",
requires=[
"gui",
"dialogs",
],
stack_size=int(2 * 1024),
icon="A_BadUsb_14",
order=80,
link="/ext/apps/Main/bad_usb.fap",
)
@@ -0,0 +1,9 @@
#include <applications/services/loader/loader_i.h>
#define TAG "bad_usb_loader_app"
int32_t bad_usb_loader_app(void* p) {
UNUSED(p);
return 0;
}

Before

Width:  |  Height:  |  Size: 102 B

After

Width:  |  Height:  |  Size: 102 B

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before

Width:  |  Height:  |  Size: 102 B

After

Width:  |  Height:  |  Size: 102 B

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 154 B

After

Width:  |  Height:  |  Size: 154 B

Before

Width:  |  Height:  |  Size: 299 B

After

Width:  |  Height:  |  Size: 299 B

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -9,4 +9,5 @@ App(
order=100,
fap_icon="flappy_10px.png",
fap_category="Games",
fap_icon_assets="assets",
)
Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

@@ -0,0 +1 @@
3
-54
View File
@@ -1,54 +0,0 @@
#include <furi.h>
uint8_t bird_array[3][15][11] = {
{
{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0},
{0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0},
{0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0},
{0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1},
{1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0},
{0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
},
{
{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0},
{0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0},
{0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1},
{1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0},
{0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
},
{
{0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0},
{0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0},
{0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1},
{1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0},
{0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
}};
+21 -24
View File
@@ -1,10 +1,11 @@
#include <furi.h>
#include <gui/gui.h>
#include <input/input.h>
#include <stdlib.h>
#include <dolphin/dolphin.h>
#include "bird.h"
#include <FlappyBird_icons.h>
#include <furi.h>
#include <gui/gui.h>
#include <gui/icon_animation_i.h>
#include <input/input.h>
#define TAG "Flappy"
#define DEBUG false
@@ -37,6 +38,7 @@ typedef struct {
typedef struct {
float gravity;
POINT point;
IconAnimation* sprite;
} BIRD;
typedef struct {
@@ -90,6 +92,7 @@ static void flappy_game_state_init(GameState* const game_state) {
bird.gravity = 0.0f;
bird.point.x = 15;
bird.point.y = 32;
bird.sprite = icon_animation_alloc(&A_bird);
game_state->debug = DEBUG;
game_state->bird = bird;
@@ -101,6 +104,11 @@ static void flappy_game_state_init(GameState* const game_state) {
flappy_game_random_pilar(game_state);
}
static void flappy_game_state_free(GameState* const game_state) {
icon_animation_free(game_state->bird.sprite);
free(game_state);
}
static void flappy_game_tick(GameState* const game_state) {
if(game_state->state == GameStateLife) {
if(!game_state->debug) {
@@ -214,27 +222,16 @@ static void flappy_game_render_callback(Canvas* const canvas, void* ctx) {
FLIPPER_LCD_HEIGHT - pilar->height - FLAPPY_GAB_HEIGHT);
}
}
// Flappy
for(int h = 0; h < FLAPPY_BIRD_HEIGHT; h++) {
for(int w = 0; w < FLAPPY_BIRD_WIDTH; w++) {
// Switch animation
int bird = 1;
if(game_state->bird.gravity < -0.5)
bird = 0;
else if(game_state->bird.gravity > 0.5)
bird = 2;
// Draw bird pixels
if(bird_array[bird][h][w] == 1) {
int x = game_state->bird.point.x + h;
int y = game_state->bird.point.y + w;
// Switch animation
game_state->bird.sprite->frame = 1;
if(game_state->bird.gravity < -0.5)
game_state->bird.sprite->frame = 0;
else if(game_state->bird.gravity > 0.5)
game_state->bird.sprite->frame = 2;
canvas_draw_dot(canvas, x, y);
}
}
}
// Stats
canvas_draw_icon_animation(
canvas, game_state->bird.point.x, game_state->bird.point.y, game_state->bird.sprite);
canvas_set_font(canvas, FontSecondary);
char buffer[12];
@@ -371,7 +368,7 @@ int32_t flappy_game_app(void* p) {
delete_mutex(&state_mutex);
free_and_exit:
free(game_state);
flappy_game_state_free(game_state);
furi_message_queue_free(event_queue);
return return_code;
-7
View File
@@ -1,13 +1,6 @@
- Animations: Trimmed out the Flipper animations. `/ext/dolphin` folder on your Flipper should now be managed by you! [Copy this folder (RM Select)](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-RMselect) or [this folder (RM minimal)](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-minimal) if you don't want to do the work but want more animations.
- - Rename the [minimal animation file](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/assets/resources/dolphin/manifest.txt.exampleMin) to see it, or [RM select](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/assets/resources/dolphin/manifest.txt.exampleRM) if you have copied over [the RM select](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-RMselect) animations.
- on OFW the manifest.txt gets generated for the source material available to fbt (PNGs) and the BMs get built at run
- on RM manifest.txt is not auto-generated, whatever OFW, RM or Unleashed animations installed will remain. New animations added would need to be added based on the animation set being used. Also, new animation development would need to have either a recode made of certain files or use a different FW to generate BMs for install. (Will need to try to fix this I guess, I might be able to)
- I link to option folders here: https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/ReadMe.md?plain=1#L105 but also explain further here with examples that in the install: https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/ReadMe.md?plain=1#L25
(the minimal is in the install)
## Animations: File `/ext/dolphin/manifest.txt` no longer will get overwritten. Any automatic building of animations is disabled [here](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/commit/fbe9175e0c828a54e651ee11f64f10f21e36a907).
- Not all of these animations are here, some are [here](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-all)
- Assets: Includes New Dolphin Animations: [Rick Roll, Matrix & Swim animations (By qqMajiKpp)], [Rukamon 2x and Agumon animations (By Syrius)], [Mew (By Arkaivos)], [Eye of the Flipper (By Kuronons)], [Shodan (By qqMajiKpp)], [Sirene & The Witch (By Haseo)], [Dino & A New Hope (By Haseo)], [Earth Arcadia (By Kuronons)], [Kuronons Black Flags Collection (21 Animations)(By Kuronons)], [D.Va (By Haseo)], [GITS (By Haseo)], [Slayers (By qqMajiKpp)], [P0liwhirl (By Panzer00Z)], [RogueMaster CFW Animation (By Kuronons)], [Nyan Cat (By Haseo)], [L (By Kuronons)], [Laughing Man (By Kuronons)], [B0ws3r (By Haseo)], [Kuronons Black Flags Collection VOL 2 (9 Animations)(By Kuronons)], [Thanks for all the fish (By qqMajiKpp)], [OCP, Skynet and Weyland (By Kuronons)], [Mario (By Haseo)], [Umbrella (By Haseo)], [Trioptimum (By qqMajiKpp)], [Tyrell & Cyberdyne (By Kuronons)], [Allen & Maha (By Haseo)], [Starfield (By qqMajiKpp)], [DJ (By ut1s)], [Fireplace (By Friend of xMasterX)], [Akira & Mad Scientist (By qqMajiKpp)], [Shar!ngan (By Haseo)], [Lions Roar (By qqMajiKpp)], [0ne Pi3ce (By Haseo)], [Calcifier & Last Unicorn (By NeonKodama)], [Jiji Milk (By NeonKodama)], [Halloween, Hexadecimal, Init D Water, Kam3Ham3Ha, Kirbs, Kirbs Confused, M3gamanZ3r0 Battle, OP G3ar 4, Z3lda 0h & Zelda R3ady (By RogueMaster)], [Rekall (By Kuronons)], [Stick Fight (By Sasquach)], [G0ku, Lufy & Mug1wara (By Haseo)], [Tardi5 (By RogueMaster)] & [80s (By Haseo)]