Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ SRC_DIR = $(DS_BASE)/src
LIB_DIR = $(DS_BASE)/lib

KOS_LDFLAGS += -L$(LIB_DIR)
KOS_CFLAGS += -I$(INC_DIR) -I$(INC_DIR)/SDL -I$(INC_DIR)/fatfs \
KOS_CFLAGS += -I$(INC_DIR) -I$(INC_DIR)/img -I$(INC_DIR)/SDL -I$(INC_DIR)/fatfs \
-I$(INC_DIR)/tsunami \
-DHAVE_SDLIMAGE $(TRAGET_VERSION)

Expand Down Expand Up @@ -109,7 +109,9 @@ OBJS = $(SRC_DIR)/main.o $(SRC_DIR)/video.o $(SRC_DIR)/console.o \
$(SRC_DIR)/module.o $(SRC_DIR)/events.o $(SRC_DIR)/fs/fs.o \
$(SRC_DIR)/lua/lua.o $(SRC_DIR)/lua/lua_ds.o $(SRC_DIR)/lua/packlib.o \
$(SRC_DIR)/app/app.o $(SRC_DIR)/app/load.o $(SRC_DIR)/list.o \
$(SRC_DIR)/img/pvr.o $(SRC_DIR)/cmd_elf.o $(SRC_DIR)/vmu/vmu.o \
$(SRC_DIR)/img/SegaPVRImage.o $(SRC_DIR)/img/load.o \
$(SRC_DIR)/img/convert.o $(SRC_DIR)/cmd_elf.o \
$(SRC_DIR)/vmu/vmu.o \
$(SRC_DIR)/irq/exceptions.o $(SRC_DIR)/irq/setjmp.o \
$(SRC_DIR)/settings.o $(SRC_DIR)/sfx.o \
$(DRIVERS_OBJ) $(GUI_OBJS) $(CONSOLE_OBJ) \
Expand Down
Binary file modified applications/games_menu/fonts/default.txf
Binary file not shown.
Binary file modified applications/games_menu/fonts/message.txf
Binary file not shown.
2 changes: 1 addition & 1 deletion applications/games_menu/modules/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

APP_NAME = games_menu
TARGET_NAME = app_$(APP_NAME)
OBJS = module.o utils.o
OBJS = module.o utils.o menu.o
DBG_LIBS = -lds -lisofs -lisoldr -lwave
EXPORTS_FILE = exports.txt

Expand Down
36 changes: 32 additions & 4 deletions applications/games_menu/modules/app_definition.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,21 @@ enum SearchCoverEnum
SC_DEFAULT = 2
};

// #pragma pack(push, 1)
enum CoverStatusEnum
{
CSE_EXISTS = 1,
CSE_PROCESSING = 2,
CSE_COMPLETED = 3
};

enum CheckCDDAGameEnum
{
CCGE_NOT_CHECKED = -1,
CCGE_CDDA = 1,
CCGE_CDDA_BIG_SIZE = 2,
CCGE_NOT_CDDA = 3
};

typedef struct MenuOptionStructure
{
int max_page_size;
Expand All @@ -33,15 +47,19 @@ typedef struct MenuOptionStructure
int padding_y;
float image_size;
} MenuOptionStruct;
// #pragma pack(pop)

typedef struct GameItemStructure
{
char *game;
char *folder;
bool is_folder_name;
int8 exists_cover;
int16 exists_cover;
uint8 cover_type;
bool check_pvr;
bool is_pvr_cover;
bool check_optimized;
bool is_gdi_optimized;
int16 is_cdda;

} GameItemStruct;

Expand All @@ -51,4 +69,14 @@ typedef struct ImageDimensionStructure
unsigned int height;
} ImageDimensionStruct;

#endif //__APP_DEFINITION_H
#pragma pack(push, 4)
typedef struct CoverScannedStructure
{
char last_game_scanned[NAME_MAX];
uint32 last_game_index;
uint32 last_game_status;
uint32 games_count;
} CoverScannedStruct;
#pragma pack(pop)

#endif //__APP_DEFINITION_H
66 changes: 66 additions & 0 deletions applications/games_menu/modules/app_menu.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#ifndef __APP_MENU_H
#define __APP_MENU_H

#include <ds.h>
#include "app_utils.h"
#include "app_definition.h"
#include "tsunami/tsudefinition.h"

#define MOTOSHORT(p) ((*(p)) << 8) + *(p + 1)
#define IN_CACHE_GAMES
#define MAX_SIZE_CDDA 0
#define MAX_TRIGGER_VALUE 255

typedef void SendMessageCallBack(const char *fmt, const char *message);
typedef void PostPVRCoverCallBack(bool new_cover);

struct menu_structure
{
bool rescan_covers;
bool convert_pvr_to_png;
volatile bool finished_menu;
volatile bool cdda_game_changed;
volatile bool stop_load_pvr_cover;
int menu_type;
int games_array_count;
int current_dev;
char default_dir[20];
char games_path[NAME_MAX];
char covers_path[50];

CoverScannedStruct cover_scanned_app;
MenuOptionStruct menu_option;
GameItemStruct *games_array;

SendMessageCallBack *send_message_scan;
PostPVRCoverCallBack *post_pvr_cover;

kthread_t *play_cdda_thread;
kthread_t *load_pvr_cover_thread;
};

void CreateMenuData(SendMessageCallBack *send_message_scan, PostPVRCoverCallBack *post_pvr_cover);
void DestroyMenuData();
bool CheckGdiOptimized();
const char *GetFullGamePathByIndex(int game_index);
void StopCDDA();
bool CheckCDDA(int game_index);
void *PlayCDDAThread(void *params);
void PlayCDDA(int game_index);
ImageDimensionStruct *GetImageDimension(const char *image_file);
bool IsValidImage(const char *image_file);
int16 CheckCover(int game_index);
bool GetGameCoverPath(int game_index, char **game_cover_path);
void SetMenuType(int menu_type);
void FreeGames();
void FreeGamesForce();
bool SaveScannedCover();
bool LoadScannedCover();
void CleanIncompleteCover();
bool ExtractPVRCover(int game_index);
void *LoadPVRCoverThread(void *params);
bool IsUniqueFileGame(const char *full_path_folder);
void RetrieveGamesRecursive(const char *full_path_folder, const char *folder, int level);
bool RetrieveGames();

#endif // __APP_MENU_H
9 changes: 8 additions & 1 deletion applications/games_menu/modules/app_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@

*/

#ifndef __APP_UTILS_H
#define __APP_UTILS_H

/* Indexes of devices */
enum {
APP_DEVICE_CD = 0,
Expand All @@ -31,16 +34,20 @@ void trim_spaces(char *input, char *output, int size);
char *trim_spaces2(char *txt);
char *fix_spaces(char *str);
int conf_parse(isoldr_conf *cfg, const char *filename);
bool IsGdiOptimized(const char *full_path_game);
const char* GetLastPart(const char *source, const char separator, int option_path);

int GetDeviceType(const char *dir);
bool ReadBootSector(const char *track_file, uint8* bootSector);
// int checkGDI(char *filepath, const char *fmPath, char *dirname, char *filename);
char *MakePresetFilename(const char *dir, uint8 *md5);

size_t GetCDDATrackFilename(int num, const char *full_path_game, char *result);
size_t GetCDDATrackFilename(int num, const char *full_path_game, char **result);
void PlayCDDATrack(const char *file, int loop);
void StopCDDATrack();

// char *lib_get_name();
// uint32 lib_get_version();


#endif // __APP_UTILS_H
Loading