Explorar o código

Fix Write RAM View

Esteban Fuentealba %!s(int64=2) %!d(string=hai) anos
pai
achega
baeacbd212

+ 1 - 1
scenes/gb_cartridge_scene_config.h

@@ -3,6 +3,6 @@ ADD_SCENE(gb_cartridge, menu, Menu)
 ADD_SCENE(gb_cartridge, scene_1, Scene_1)
 ADD_SCENE(gb_cartridge, scene_1, Scene_1)
 ADD_SCENE(gb_cartridge, scene_2, Scene_2)
 ADD_SCENE(gb_cartridge, scene_2, Scene_2)
 ADD_SCENE(gb_cartridge, scene_3, Scene_3)
 ADD_SCENE(gb_cartridge, scene_3, Scene_3)
-ADD_SCENE(gb_cartridge, scene_4, Scene_4)
+// ADD_SCENE(gb_cartridge, scene_4, Scene_4)
 ADD_SCENE(gb_cartridge, scene_5, Scene_5)
 ADD_SCENE(gb_cartridge, scene_5, Scene_5)
 ADD_SCENE(gb_cartridge, settings, Settings)
 ADD_SCENE(gb_cartridge, settings, Settings)

+ 5 - 5
scenes/gb_cartridge_scene_menu.c

@@ -7,7 +7,7 @@ enum SubmenuIndex {
     SubmenuIndexScene1,
     SubmenuIndexScene1,
     SubmenuIndexScene2,
     SubmenuIndexScene2,
     SubmenuIndexScene3,
     SubmenuIndexScene3,
-    SubmenuIndexScene4,
+    // SubmenuIndexScene4,
     SubmenuIndexScene5,
     SubmenuIndexScene5,
     SubmenuIndexSettings,
     SubmenuIndexSettings,
 };
 };
@@ -104,10 +104,10 @@ bool gb_cartridge_scene_menu_on_event(void* context, SceneManagerEvent event) {
             scene_manager_set_scene_state(
             scene_manager_set_scene_state(
                 app->scene_manager, GBCartridgeSceneMenu, SubmenuIndexScene3);
                 app->scene_manager, GBCartridgeSceneMenu, SubmenuIndexScene3);
             scene_manager_next_scene(app->scene_manager, GBCartridgeSceneScene_3);
             scene_manager_next_scene(app->scene_manager, GBCartridgeSceneScene_3);
-        } else if(event.event == SubmenuIndexScene4) {
-            scene_manager_set_scene_state(
-                app->scene_manager, GBCartridgeSceneMenu, SubmenuIndexScene4);
-            scene_manager_next_scene(app->scene_manager, GBCartridgeSceneScene_4);
+        // } else if(event.event == SubmenuIndexScene4) {
+        //     scene_manager_set_scene_state(
+        //         app->scene_manager, GBCartridgeSceneMenu, SubmenuIndexScene4);
+        //     scene_manager_next_scene(app->scene_manager, GBCartridgeSceneScene_4);
         } else if(event.event == SubmenuIndexScene5) {
         } else if(event.event == SubmenuIndexScene5) {
             scene_manager_set_scene_state(
             scene_manager_set_scene_state(
                 app->scene_manager, GBCartridgeSceneMenu, SubmenuIndexScene5);
                 app->scene_manager, GBCartridgeSceneMenu, SubmenuIndexScene5);

+ 121 - 99
views/gb_cartridge_scene_5.c

@@ -14,19 +14,21 @@
 #include <toolbox/stream/file_stream.h>
 #include <toolbox/stream/file_stream.h>
 #include "../helpers/gb_cartridge_speaker.h"
 #include "../helpers/gb_cartridge_speaker.h"
 #include "../helpers/sequential_file.h"
 #include "../helpers/sequential_file.h"
-#include <stdio.h> // Para sprintf
+#include <stdio.h>  // Para sprintf
 #include <string.h> // Para strlen
 #include <string.h> // Para strlen
 
 
 static uint64_t last_toggle_time = 0;
 static uint64_t last_toggle_time = 0;
-struct GBCartridgeScene5 {
-    View* view;
+struct GBCartridgeScene5
+{
+    View *view;
     GBCartridgeScene5Callback callback;
     GBCartridgeScene5Callback callback;
-    void* context;
-    GBCartridge* app;
+    void *context;
+    GBCartridge *app;
 };
 };
 
 
-typedef struct {
-    char* event_type;
+typedef struct
+{
+    char *event_type;
     int progress;
     int progress;
     int total_ram;
     int total_ram;
     int transfered;
     int transfered;
@@ -34,7 +36,7 @@ typedef struct {
     int elapsed_time;
     int elapsed_time;
     int start_time;
     int start_time;
 
 
-    char* cart_dump_ram_filename_sequential;
+    char *cart_dump_ram_filename_sequential;
     bool rx_active;
     bool rx_active;
 
 
     char* event_title;
     char* event_title;
@@ -46,9 +48,10 @@ typedef struct {
 
 
 } GameBoyCartridgeRAMWriteModel;
 } GameBoyCartridgeRAMWriteModel;
 
 
-static bool select_ram_file(GBCartridge* app, File* file) {
+static bool select_ram_file(GBCartridge *app, File *file)
+{
     bool result = false;
     bool result = false;
-    FuriString* file_path = furi_string_alloc();
+    FuriString *file_path = furi_string_alloc();
     furi_string_set(file_path, MALVEKE_APP_FOLDER_RAMS);
     furi_string_set(file_path, MALVEKE_APP_FOLDER_RAMS);
     DialogsFileBrowserOptions browser_options;
     DialogsFileBrowserOptions browser_options;
     dialog_file_browser_set_basic_options(&browser_options, "sav", NULL);
     dialog_file_browser_set_basic_options(&browser_options, "sav", NULL);
@@ -59,13 +62,16 @@ static bool select_ram_file(GBCartridge* app, File* file) {
     bool res = dialog_file_browser_show(app->dialogs, file_path, file_path, &browser_options);
     bool res = dialog_file_browser_show(app->dialogs, file_path, file_path, &browser_options);
     // UNUSED(res);
     // UNUSED(res);
     // FURI_LOG_I(TAG, "File selected: %s", furi_string_get_cstr(file_path));
     // FURI_LOG_I(TAG, "File selected: %s", furi_string_get_cstr(file_path));
-    if(res) {
+    if (res)
+    {   
         if(!storage_file_open(file, furi_string_get_cstr(file_path), FSAM_READ, FSOM_OPEN_EXISTING))
         if(!storage_file_open(file, furi_string_get_cstr(file_path), FSAM_READ, FSOM_OPEN_EXISTING))
         // if (!file_stream_open(stream, furi_string_get_cstr(file_path), FSAM_READ, FSOM_OPEN_EXISTING))
         // if (!file_stream_open(stream, furi_string_get_cstr(file_path), FSAM_READ, FSOM_OPEN_EXISTING))
         {
         {
             // FURI_LOG_D(TAG, "Cannot open file \"%s\"", furi_string_get_cstr(file_path));
             // FURI_LOG_D(TAG, "Cannot open file \"%s\"", furi_string_get_cstr(file_path));
             // file_stream_close(stream);
             // file_stream_close(stream);
-        } else {
+        }
+        else
+        {
             // FURI_LOG_D(TAG, "Open file \"%s\"", furi_string_get_cstr(file_path));
             // FURI_LOG_D(TAG, "Open file \"%s\"", furi_string_get_cstr(file_path));
             result = true;
             result = true;
         }
         }
@@ -79,11 +85,13 @@ static int32_t cartridge_writting_worker_thread(void* thread_context) {
     UNUSED(app);
     UNUSED(app);
     File* file = storage_file_alloc(app->storage);
     File* file = storage_file_alloc(app->storage);
 
 
-    if(select_ram_file(app, file)) {
+    if (select_ram_file(app, file))
+    {
         uint16_t fileSize = storage_file_size(file);
         uint16_t fileSize = storage_file_size(file);
-
-        FURI_LOG_I(TAG, "fileSize: %d ", fileSize);
-        with_view_model(
+        
+        
+        FURI_LOG_I(TAG, "fileSize: %d " , fileSize);
+       with_view_model(
             app->gb_cartridge_scene_5->view,
             app->gb_cartridge_scene_5->view,
             GameBoyCartridgeRAMWriteModel * model,
             GameBoyCartridgeRAMWriteModel * model,
             {
             {
@@ -92,27 +100,24 @@ static int32_t cartridge_writting_worker_thread(void* thread_context) {
             },
             },
             true);
             true);
 
 
-        char gbcartridge_start_command[80]; // A reasonably sized buffer.
-        snprintf(
-            gbcartridge_start_command,
-            sizeof(gbcartridge_start_command),
-            "gbcartridge -w -a %d\n",
-            fileSize);
-
-        uart_tx((uint8_t*)gbcartridge_start_command, strlen(gbcartridge_start_command));
 
 
+        char gbcartridge_start_command[80]; // A reasonably sized buffer.
+        snprintf(gbcartridge_start_command, sizeof(gbcartridge_start_command), "gbcartridge -w -a %d\n", fileSize);
+   
+        uart_tx((uint8_t *)gbcartridge_start_command, strlen(gbcartridge_start_command));
+        
         furi_delay_ms(500); // wait
         furi_delay_ms(500); // wait
         uint8_t* the_savefile = NULL;
         uint8_t* the_savefile = NULL;
         size_t savefile_size = 0;
         size_t savefile_size = 0;
         with_view_model(
         with_view_model(
-            app->gb_cartridge_scene_5->view,
-            GameBoyCartridgeRAMWriteModel * model,
-            {
-                model->event_title = "Transferring...";
-                model->transfered = 0;
-                model->start_time = furi_hal_rtc_get_timestamp(); // Registra el tiempo de inicio
-            },
-            true);
+                app->gb_cartridge_scene_5->view,
+                GameBoyCartridgeRAMWriteModel * model,
+                {
+                    model->event_title = "Transferring...";
+                    model->transfered = 0;
+                    model->start_time = furi_hal_rtc_get_timestamp(); // Registra el tiempo de inicio
+                },
+                true);
         the_savefile = malloc(fileSize); // to be freed by caller
         the_savefile = malloc(fileSize); // to be freed by caller
         uint8_t* buf_ptr = the_savefile;
         uint8_t* buf_ptr = the_savefile;
         size_t read = 0;
         size_t read = 0;
@@ -129,7 +134,9 @@ static int32_t cartridge_writting_worker_thread(void* thread_context) {
         with_view_model(
         with_view_model(
             app->gb_cartridge_scene_5->view,
             app->gb_cartridge_scene_5->view,
             GameBoyCartridgeRAMWriteModel * model,
             GameBoyCartridgeRAMWriteModel * model,
-            { model->event_title = "Writing Cartridge..."; },
+            {
+                model->event_title = "Writing Cartridge...";
+            },
             true);
             true);
         free(the_savefile);
         free(the_savefile);
 
 
@@ -137,34 +144,40 @@ static int32_t cartridge_writting_worker_thread(void* thread_context) {
             storage_file_close(file);
             storage_file_close(file);
         }
         }
     }
     }
-
+    
     return 0;
     return 0;
 }
 }
 void gb_cartridge_scene_5_set_callback(
 void gb_cartridge_scene_5_set_callback(
-    GBCartridgeScene5* instance,
+    GBCartridgeScene5 *instance,
     GBCartridgeScene5Callback callback,
     GBCartridgeScene5Callback callback,
-    void* context) {
+    void *context)
+{
     furi_assert(instance);
     furi_assert(instance);
     furi_assert(callback);
     furi_assert(callback);
     instance->callback = callback;
     instance->callback = callback;
     instance->context = context;
     instance->context = context;
 }
 }
-static void drawProgressBar(Canvas* canvas, int progress) {
-    for(int x = 0; x < 64 - 14 - UI_PADDING - UI_PADDING - UI_PADDING - UI_PADDING; x += 5) {
-        for(int row = 0; row < 20; row += 5) {
-            if(progress > 0) {
-                canvas_draw_box(
-                    canvas, 14 /*ARROW*/ + UI_PADDING + 2 + x + 4, /*45*/ 26 + row, 4, 4);
+static void drawProgressBar(Canvas *canvas, int progress)
+{
+    for (int x = 0; x < 64 - 14 - UI_PADDING - UI_PADDING - UI_PADDING - UI_PADDING; x += 5)
+    {
+        for (int row = 0; row < 20; row += 5)
+        {
+            if (progress > 0)
+            {
+                canvas_draw_box(canvas, 14 /*ARROW*/ + UI_PADDING + 2 + x + 4, /*45*/ 26 + row, 4, 4);
                 progress--;
                 progress--;
-            } else {
-                canvas_draw_frame(
-                    canvas, 14 /*ARROW*/ + UI_PADDING + 2 + x + 4, /*45*/ 26 + row, 4, 4);
+            }
+            else
+            {
+                canvas_draw_frame(canvas, 14 /*ARROW*/ + UI_PADDING + 2 + x + 4, /*45*/ 26 + row, 4, 4);
             }
             }
         }
         }
     }
     }
 }
 }
 
 
-void gb_cartridge_scene_5_draw(Canvas* canvas, GameBoyCartridgeRAMWriteModel* model) {
+void gb_cartridge_scene_5_draw(Canvas *canvas, GameBoyCartridgeRAMWriteModel *model)
+{
     // Clear the screen.
     // Clear the screen.
     canvas_set_color(canvas, ColorBlack);
     canvas_set_color(canvas, ColorBlack);
 
 
@@ -177,64 +190,57 @@ void gb_cartridge_scene_5_draw(Canvas* canvas, GameBoyCartridgeRAMWriteModel* mo
     canvas_set_font(canvas, FontPrimary);
     canvas_set_font(canvas, FontPrimary);
     char progressText[42];
     char progressText[42];
     int progress = 0;
     int progress = 0;
-    if(model->total_ram > 0 && model->transfered > 0) {
+    if (model->total_ram > 0 && model->transfered > 0)
+    {
         progress = model->transfered * 100 / model->total_ram;
         progress = model->transfered * 100 / model->total_ram;
     }
     }
     snprintf(progressText, sizeof(progressText), "%d%% Write RAM...", progress);
     snprintf(progressText, sizeof(progressText), "%d%% Write RAM...", progress);
     canvas_draw_str_aligned(canvas, 128 / 2, 0, AlignCenter, AlignTop, progressText);
     canvas_draw_str_aligned(canvas, 128 / 2, 0, AlignCenter, AlignTop, progressText);
     canvas_set_font(canvas, FontSecondary);
     canvas_set_font(canvas, FontSecondary);
 
 
-    canvas_draw_str_aligned(canvas, 128 / 2, 12, AlignCenter, AlignTop, model->event_title);
+    canvas_draw_str_aligned(canvas, 128/2, 12, AlignCenter, AlignTop, model->event_title);
 
 
     char total_ram_str[20];
     char total_ram_str[20];
-    snprintf(
-        total_ram_str,
-        sizeof(total_ram_str),
-        "of %.2lf MiB",
-        (double)(model->total_ram / 1024.0 / 1024.0));
+    snprintf(total_ram_str, sizeof(total_ram_str), "of %.2lf MiB", (double)(model->total_ram / 1024.0 / 1024.0));
 
 
     char transfered_ram_str[20];
     char transfered_ram_str[20];
-    snprintf(
-        transfered_ram_str,
-        sizeof(transfered_ram_str),
-        "%.2lf MiB",
-        (double)(model->transfered / 1024.0 / 1024.0));
+    snprintf(transfered_ram_str, sizeof(transfered_ram_str), "%.2lf MiB", (double)(model->transfered / 1024.0 / 1024.0));
 
 
     // Calcula la Tasa de Transferencia en KiB/s
     // Calcula la Tasa de Transferencia en KiB/s
     char transfer_rate_str[20];
     char transfer_rate_str[20];
-    if(model->transfered > 0 && model->elapsed_time > 0) {
-        double transfer_rate_kibps =
-            (double)model->transfered / ((double)model->elapsed_time) / (double)1024.0;
+    if (model->transfered > 0 && model->elapsed_time > 0)
+    {
+        double transfer_rate_kibps = (double)model->transfered / ((double)model->elapsed_time) / (double)1024.0;
         snprintf(transfer_rate_str, sizeof(transfer_rate_str), "%.2lf KiB/s", transfer_rate_kibps);
         snprintf(transfer_rate_str, sizeof(transfer_rate_str), "%.2lf KiB/s", transfer_rate_kibps);
-    } else {
+    }
+    else
+    {
         snprintf(transfer_rate_str, sizeof(transfer_rate_str), "0 KiB/s");
         snprintf(transfer_rate_str, sizeof(transfer_rate_str), "0 KiB/s");
     }
     }
 
 
-    canvas_draw_str_aligned(
-        canvas, (128 / 2) + UI_PADDING, 22 + 2, AlignLeft, AlignTop, transfered_ram_str);
-    canvas_draw_str_aligned(
-        canvas, (128 / 2) + UI_PADDING, 30 + 2, AlignLeft, AlignTop, total_ram_str);
-    canvas_draw_str_aligned(
-        canvas, (128 / 2) + UI_PADDING, 38 + 2, AlignLeft, AlignTop, transfer_rate_str);
+    canvas_draw_str_aligned(canvas, (128 / 2) + UI_PADDING, 22 + 2, AlignLeft, AlignTop, transfered_ram_str);
+    canvas_draw_str_aligned(canvas, (128 / 2) + UI_PADDING, 30 + 2, AlignLeft, AlignTop, total_ram_str);
+    canvas_draw_str_aligned(canvas, (128 / 2) + UI_PADDING, 38 + 2, AlignLeft, AlignTop, transfer_rate_str);
 
 
-    if(model->rx_active) {
+    if (model->rx_active)
+    {
         canvas_draw_icon_ex(canvas, UI_PADDING, 28, &I_ArrowUpFilled_14x15, IconRotation180);
         canvas_draw_icon_ex(canvas, UI_PADDING, 28, &I_ArrowUpFilled_14x15, IconRotation180);
-    } else {
+    }
+    else
+    {
         canvas_draw_icon_ex(canvas, UI_PADDING, 28, &I_ArrowUpEmpty_14x15, IconRotation180);
         canvas_draw_icon_ex(canvas, UI_PADDING, 28, &I_ArrowUpEmpty_14x15, IconRotation180);
     }
     }
 
 
     char totalText[42];
     char totalText[42];
     snprintf(totalText, sizeof(totalText), "%d", model->total_ram);
     snprintf(totalText, sizeof(totalText), "%d", model->total_ram);
 
 
-    drawProgressBar(
-        canvas,
-        (progress * UI_PROGRESS_ROWS * UI_PROGRESS_COLS) /
-            100); // Pinta las primeras 10 cajas de negro
-
+    drawProgressBar(canvas, (progress * UI_PROGRESS_ROWS * UI_PROGRESS_COLS) / 100); // Pinta las primeras 10 cajas de negro
+    
     elements_button_center(canvas, "Write");
     elements_button_center(canvas, "Write");
 }
 }
 
 
-static void gb_cartridge_scene_5_model_init(GameBoyCartridgeRAMWriteModel* const model) {
+static void gb_cartridge_scene_5_model_init(GameBoyCartridgeRAMWriteModel *const model)
+{
     model->progress = 0;
     model->progress = 0;
     model->total_ram = 0;
     model->total_ram = 0;
     model->transfered = 0;
     model->transfered = 0;
@@ -249,6 +255,8 @@ void gameboy_handle_rx_data_cb(uint8_t* buf, size_t len, void* context) {
     UNUSED(buf);
     UNUSED(buf);
     GBCartridge* instance = context;
     GBCartridge* instance = context;
 
 
+           
+
     with_view_model(
     with_view_model(
         instance->gb_cartridge_scene_5->view,
         instance->gb_cartridge_scene_5->view,
         GameBoyCartridgeRAMWriteModel * model,
         GameBoyCartridgeRAMWriteModel * model,
@@ -257,11 +265,12 @@ void gameboy_handle_rx_data_cb(uint8_t* buf, size_t len, void* context) {
 
 
             uint64_t current_time = furi_hal_rtc_get_timestamp();
             uint64_t current_time = furi_hal_rtc_get_timestamp();
             model->elapsed_time = current_time - model->start_time;
             model->elapsed_time = current_time - model->start_time;
-            if(current_time - last_toggle_time >= 0.2) {
+            if (current_time - last_toggle_time >= 0.2) {
                 model->rx_active = !model->rx_active;
                 model->rx_active = !model->rx_active;
                 last_toggle_time = current_time;
                 last_toggle_time = current_time;
             }
             }
 
 
+
             cJSON* json = cJSON_Parse((char*)buf);
             cJSON* json = cJSON_Parse((char*)buf);
             if(json == NULL) {
             if(json == NULL) {
             } else {
             } else {
@@ -287,15 +296,16 @@ void gameboy_handle_rx_data_cb(uint8_t* buf, size_t len, void* context) {
                 } else {
                 } else {
                     model->value = 0;
                     model->value = 0;
                 }
                 }
+                
             }
             }
-            if(strcmp(model->event_type, "progress") == 0) {
+            if (strcmp(model->event_type, "progress") == 0) {
                 //  progress
                 //  progress
                 cJSON* progress = cJSON_GetObjectItemCaseSensitive(json, "progress");
                 cJSON* progress = cJSON_GetObjectItemCaseSensitive(json, "progress");
                 if(cJSON_IsNumber(progress)) {
                 if(cJSON_IsNumber(progress)) {
                     model->transfered += progress->valueint;
                     model->transfered += progress->valueint;
                 }
                 }
             }
             }
-            if(strcmp(model->event_type, "success") == 0) {
+            if (strcmp(model->event_type, "success") == 0) {
                 notification_success(instance->notification);
                 notification_success(instance->notification);
                 model->transfered = model->total_ram;
                 model->transfered = model->total_ram;
                 model->event_title = "Done!";
                 model->event_title = "Done!";
@@ -303,19 +313,22 @@ void gameboy_handle_rx_data_cb(uint8_t* buf, size_t len, void* context) {
         },
         },
         true);
         true);
 }
 }
-bool gb_cartridge_scene_5_input(InputEvent* event, void* context) {
+bool gb_cartridge_scene_5_input(InputEvent *event, void *context)
+{
     furi_assert(context);
     furi_assert(context);
-    GBCartridgeScene5* instance = context;
+    GBCartridgeScene5 *instance = context;
 
 
-    if(event->type == InputTypeRelease) {
-        switch(event->key) {
+    if (event->type == InputTypeRelease)
+    {
+        switch (event->key)
+        {
         case InputKeyBack:
         case InputKeyBack:
             with_view_model(
             with_view_model(
                 instance->view,
                 instance->view,
                 GameBoyCartridgeRAMWriteModel * model,
                 GameBoyCartridgeRAMWriteModel * model,
                 {
                 {
                     UNUSED(model);
                     UNUSED(model);
-                    GBCartridge* app = (GBCartridge*)instance->context;
+                    GBCartridge *app = (GBCartridge *)instance->context;
                     // Unregister rx callback
                     // Unregister rx callback
                     uart_set_handle_rx_data_cb(app->uart, NULL);
                     uart_set_handle_rx_data_cb(app->uart, NULL);
                     uart_set_handle_rx_data_cb(app->lp_uart, NULL);
                     uart_set_handle_rx_data_cb(app->lp_uart, NULL);
@@ -329,11 +342,13 @@ bool gb_cartridge_scene_5_input(InputEvent* event, void* context) {
         case InputKeyLeft:
         case InputKeyLeft:
         case InputKeyRight:
         case InputKeyRight:
             break;
             break;
-        case InputKeyOk: {
-            GBCartridge* app = ((GBCartridge*)instance->context);
+        case InputKeyOk:
+        {
+            GBCartridge *app = ((GBCartridge *)instance->context);
             uart_set_handle_rx_data_cb(app->uart, gameboy_handle_rx_data_cb);
             uart_set_handle_rx_data_cb(app->uart, gameboy_handle_rx_data_cb);
             cartridge_writting_worker_thread(app);
             cartridge_writting_worker_thread(app);
-        } break;
+        }
+            break;
         case InputKeyMAX:
         case InputKeyMAX:
             break;
             break;
         }
         }
@@ -342,16 +357,19 @@ bool gb_cartridge_scene_5_input(InputEvent* event, void* context) {
     return true;
     return true;
 }
 }
 
 
-void gb_cartridge_scene_5_exit(void* context) {
+void gb_cartridge_scene_5_exit(void *context)
+{
     furi_assert(context);
     furi_assert(context);
-    GBCartridge* app = context;
+    GBCartridge *app = context;
     gb_cartridge_stop_all_sound(app);
     gb_cartridge_stop_all_sound(app);
 }
 }
 
 
-void gb_cartridge_scene_5_enter(void* context) {
+void gb_cartridge_scene_5_enter(void *context)
+{
+    
     furi_assert(context);
     furi_assert(context);
-    GBCartridgeScene5* instance = context;
-    GBCartridge* app = (GBCartridge*)instance->context;
+    GBCartridgeScene5 *instance = context;
+    GBCartridge *app = (GBCartridge *)instance->context;
 
 
     UNUSED(app);
     UNUSED(app);
     with_view_model(
     with_view_model(
@@ -364,11 +382,11 @@ void gb_cartridge_scene_5_enter(void* context) {
         false);
         false);
 }
 }
 
 
-GBCartridgeScene5* gb_cartridge_scene_5_alloc() {
-    GBCartridgeScene5* instance = malloc(sizeof(GBCartridgeScene5));
+GBCartridgeScene5 *gb_cartridge_scene_5_alloc()
+{
+    GBCartridgeScene5 *instance = malloc(sizeof(GBCartridgeScene5));
     instance->view = view_alloc();
     instance->view = view_alloc();
-    view_allocate_model(
-        instance->view, ViewModelTypeLocking, sizeof(GameBoyCartridgeRAMWriteModel));
+    view_allocate_model(instance->view, ViewModelTypeLocking, sizeof(GameBoyCartridgeRAMWriteModel));
 
 
     view_set_context(instance->view, instance);
     view_set_context(instance->view, instance);
     view_set_draw_callback(instance->view, (ViewDrawCallback)gb_cartridge_scene_5_draw);
     view_set_draw_callback(instance->view, (ViewDrawCallback)gb_cartridge_scene_5_draw);
@@ -379,13 +397,16 @@ GBCartridgeScene5* gb_cartridge_scene_5_alloc() {
     with_view_model(
     with_view_model(
         instance->view,
         instance->view,
         GameBoyCartridgeRAMWriteModel * model,
         GameBoyCartridgeRAMWriteModel * model,
-        { gb_cartridge_scene_5_model_init(model); },
+        {
+            gb_cartridge_scene_5_model_init(model);
+        },
         true);
         true);
 
 
     return instance;
     return instance;
 }
 }
 
 
-void gb_cartridge_scene_5_free(GBCartridgeScene5* instance) {
+void gb_cartridge_scene_5_free(GBCartridgeScene5 *instance)
+{
     GBCartridge* app = instance->context;
     GBCartridge* app = instance->context;
     UNUSED(app);
     UNUSED(app);
     furi_assert(instance);
     furi_assert(instance);
@@ -393,7 +414,8 @@ void gb_cartridge_scene_5_free(GBCartridgeScene5* instance) {
     free(instance);
     free(instance);
 }
 }
 
 
-View* gb_cartridge_scene_5_get_view(GBCartridgeScene5* instance) {
+View *gb_cartridge_scene_5_get_view(GBCartridgeScene5 *instance)
+{
     furi_assert(instance);
     furi_assert(instance);
 
 
     return instance->view;
     return instance->view;