Skip to content

Commit

Permalink
Merge branch 'develop' into libdragon-update
Browse files Browse the repository at this point in the history
  • Loading branch information
networkfusion authored Oct 23, 2024
2 parents 3695f68 + a646578 commit f8652e7
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 20 deletions.
2 changes: 2 additions & 0 deletions docs/99_developer_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ Generated documentation is located in the `output/docs` folder and auto-publishe
Once merged, they can be viewed [here](https://polprzewodnikowy.github.io/N64FlashcartMenu/)

### Test generated docs in the dev-container
Testing the documentation locally allows you to preview changes and ensure everything renders correctly before submitting your changes.

Install Prerequisites:
```bash
apt-get install ruby-full build-essential zlib1g-dev
Expand Down
6 changes: 3 additions & 3 deletions src/menu/actions.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ static void actions_clear (menu_t *menu) {
}

static void actions_update_direction (menu_t *menu) {
joypad_8way_t held_dir;
joypad_8way_t fast_dir;
joypad_8way_t held_dir = JOYPAD_8WAY_NONE;
joypad_8way_t fast_dir = JOYPAD_8WAY_NONE;

JOYPAD_PORT_FOREACH (i) {
held_dir = joypad_get_direction(i, JOYPAD_2D_DPAD | JOYPAD_2D_STICK);
Expand Down Expand Up @@ -90,7 +90,7 @@ static void actions_update_direction (menu_t *menu) {
}

static void actions_update_buttons (menu_t *menu) {
joypad_buttons_t pressed;
joypad_buttons_t pressed = {0};

JOYPAD_PORT_FOREACH (i) {
pressed = joypad_get_buttons_pressed(i);
Expand Down
4 changes: 3 additions & 1 deletion src/menu/actions.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@

#include "menu_state.h"


/**
* @brief Initialize the actions module
*/
void actions_init (void);
void actions_update (menu_t *menu);

Expand Down
23 changes: 15 additions & 8 deletions src/menu/components/boxart.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,20 +40,28 @@ component_boxart_t *component_boxart_init (const char *storage_prefix, char *gam
switch (current_image_view) {
case IMAGE_GAMEPAK_FRONT:
path_push(path, "gamepak_front.png");
break;
case IMAGE_GAMEPAK_BACK:
path_push(path, "gamepak_back.png");
break;
case IMAGE_BOXART_BACK:
path_push(path, "boxart_back.png");
break;
case IMAGE_BOXART_LEFT:
path_push(path, "boxart_left.png");
break;
case IMAGE_BOXART_RIGHT:
path_push(path, "boxart_right.png");
break;
case IMAGE_BOXART_BOTTOM:
path_push(path, "boxart_bottom.png");
break;
case IMAGE_BOXART_TOP:
path_push(path, "boxart_top.png");
break;
default:
path_push(path, "boxart_front.png");
break;
}

if (file_exists(path_get(path))) {
Expand All @@ -68,9 +76,10 @@ component_boxart_t *component_boxart_init (const char *storage_prefix, char *gam
char file_name[9];

// reset the directory path used for boxart.
path_free(path);
path = path_init(storage_prefix, BOXART_DIRECTORY);

sprintf(file_name, "%c%c%c%c.png", game_code[0], game_code[1], game_code[2], game_code[3]);
snprintf(file_name, sizeof(file_name), "%c%c%c%c.png", game_code[0], game_code[1], game_code[2], game_code[3]);
path_push(path, file_name);

if (file_exists(path_get(path))) {
Expand All @@ -81,21 +90,19 @@ component_boxart_t *component_boxart_init (const char *storage_prefix, char *gam
}

path_pop(path);
sprintf(file_name, "%c%c%c.png", game_code[0], game_code[1], game_code[2]);
snprintf(file_name, sizeof(file_name), "%c%c%c.png", game_code[0], game_code[1], game_code[2]);
path_push(path, file_name);

if (file_exists(path_get(path))) {
if (file_exists(path_get(path))) {
if (png_decoder_start(path_get(path), BOXART_WIDTH_MAX, BOXART_HEIGHT_MAX, png_decoder_callback, b) == PNG_OK) {
path_free(path);
return b;
}
if (png_decoder_start(path_get(path), BOXART_WIDTH_MAX, BOXART_HEIGHT_MAX, png_decoder_callback, b) == PNG_OK) {
path_free(path);
return b;
}
}
else {
path_pop(path);

sprintf(file_name, "%c%c.png", game_code[1], game_code[2]);
snprintf(file_name, sizeof(file_name), "%c%c.png", game_code[1], game_code[2]);
path_push(path, file_name);
if (file_exists(path_get(path))) {
if (png_decoder_start(path_get(path), BOXART_WIDTH_MAX, BOXART_HEIGHT_MAX, png_decoder_callback, b) == PNG_OK) {
Expand Down
1 change: 1 addition & 0 deletions src/menu/rom_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,7 @@ static rom_err_t save_override (path_t *path, const char *id, int value, int def
mini_t *ini = mini_try_load(path_get(overrides_path));

if (!ini) {
path_free(overrides_path);
return ROM_ERR_SAVE_IO;
}

Expand Down
12 changes: 8 additions & 4 deletions src/menu/sound.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@ static bool sfx_enabled = false;

static void sound_reconfigure (int frequency) {
if ((frequency > 0) && (audio_get_frequency() != frequency)) {
if (sound_initialized) {
mixer_close();
audio_close();
}
sound_deinit();
audio_init(frequency, NUM_BUFFERS);
mixer_init(NUM_CHANNELS);
mp3player_mixer_init();
Expand Down Expand Up @@ -86,6 +83,13 @@ void sound_play_effect(sound_effect_t sfx) {

void sound_deinit (void) {
if (sound_initialized) {
if (sfx_enabled) {
wav64_close(&sfx_cursor);
wav64_close(&sfx_exit);
wav64_close(&sfx_setting);
wav64_close(&sfx_enter);
wav64_close(&sfx_error);
}
mixer_close();
audio_close();
sound_initialized = false;
Expand Down
17 changes: 17 additions & 0 deletions src/menu/sound.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
#define SOUND_MP3_PLAYER_CHANNEL (0)
#define SOUND_SFX_CHANNEL (2)

/**
* @brief Enumeration of available sound effects for menu interactions.
*/
typedef enum {
SFX_CURSOR,
SFX_ERROR,
Expand All @@ -23,8 +26,22 @@ typedef enum {

void sound_init_default (void);
void sound_init_mp3_playback (void);

/**
* @brief Initialize sound effects system.
*/
void sound_init_sfx (void);

/**
* @brief Enable or disable sound effects.
* @param enable True to enable sound effects, false to disable.
*/
void sound_use_sfx(bool);

/**
* @brief Play a specified sound effect.
* @param sfx The sound effect to play, as defined in sound_effect_t.
*/
void sound_play_effect(sound_effect_t sfx);
void sound_deinit (void);
void sound_poll (void);
Expand Down
2 changes: 1 addition & 1 deletion src/menu/views/error.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

static void process (menu_t *menu) {
if (menu->actions.back) {
menu->next_mode = MENU_MODE_BROWSER;
sound_play_effect(SFX_EXIT);
menu->next_mode = MENU_MODE_BROWSER;
}
}

Expand Down
4 changes: 3 additions & 1 deletion src/menu/views/load_disk.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ static void draw (menu_t *menu, surface_t *d) {
);
}

component_boxart_draw(boxart);
if (boxart != NULL) {
component_boxart_draw(boxart);
}
}

rdpq_detach_show();
Expand Down
5 changes: 4 additions & 1 deletion src/menu/views/load_rom.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,9 @@ static void draw (menu_t *menu, surface_t *d) {
"R: Options"
);

component_boxart_draw(boxart);
if (boxart != NULL) {
component_boxart_draw(boxart);
}

if (show_extra_info_message) {
component_messagebox_draw(
Expand Down Expand Up @@ -335,6 +337,7 @@ static void load (menu_t *menu) {

static void deinit (void) {
component_boxart_free(boxart);
boxart = NULL;
}


Expand Down
2 changes: 1 addition & 1 deletion src/menu/views/rtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ static void draw (menu_t *menu, surface_t *d) {
"\n"
"\n"
"To set the date and time, please use the PC terminal\n"
"application and set via USB or a game that uses it.\n\n"
"application and set via USB,\n or a N64 game with RTC support.\n\n"
"Current date & time: %s\n",
menu->current_time >= 0 ? ctime(&menu->current_time) : "Unknown\n"
);
Expand Down

0 comments on commit f8652e7

Please sign in to comment.