Get rid of the double FatFs
This commit is contained in:
24
source/fs.c
24
source/fs.c
@@ -72,7 +72,7 @@ void loadPayload(u32 pressed)
|
||||
|
||||
DIR dir;
|
||||
FILINFO info;
|
||||
char path[] = "/luma/payloads";
|
||||
char path[28] = "/luma/payloads";
|
||||
|
||||
FRESULT result = f_findfirst(&dir, &info, path, pattern);
|
||||
|
||||
@@ -81,13 +81,25 @@ void loadPayload(u32 pressed)
|
||||
if(result == FR_OK && info.fname[0])
|
||||
{
|
||||
initScreens();
|
||||
memcpy((void *)PAYLOAD_ADDRESS, loader, loader_size);
|
||||
|
||||
path[sizeof(path) - 1] = '/';
|
||||
memcpy((void *)(PAYLOAD_ADDRESS + 4), path, sizeof(path));
|
||||
memcpy((void *)(PAYLOAD_ADDRESS + 4 + sizeof(path)), info.altname, 13);
|
||||
u32 *const loaderAddress = (u32 *)0x24FFFB00;
|
||||
|
||||
((void (*)())PAYLOAD_ADDRESS)();
|
||||
memcpy(loaderAddress, loader, loader_size);
|
||||
|
||||
path[14] = '/';
|
||||
memcpy(&path[15], info.altname, 13);
|
||||
|
||||
FIL payload;
|
||||
unsigned int read;
|
||||
|
||||
f_open(&payload, path, FA_READ);
|
||||
u32 size = f_size(&payload);
|
||||
f_read(&payload, (void *)0x24F00000, size, &read);
|
||||
f_close(&payload);
|
||||
|
||||
loaderAddress[1] = size;
|
||||
|
||||
((void (*)())loaderAddress)();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#define PAYLOAD_ADDRESS 0x24F00000
|
||||
#define PATTERN(a) a "_*.bin"
|
||||
|
||||
u32 mountFs(void);
|
||||
|
||||
@@ -47,12 +47,14 @@ void initScreens(void)
|
||||
{
|
||||
if(PDN_GPU_CNT == 1)
|
||||
{
|
||||
memcpy((void *)SCREENINIT_ADDRESS, screeninit, screeninit_size);
|
||||
u32 *const screenInitAddress = (u32 *)0x24FFFC00;
|
||||
|
||||
memcpy(screenInitAddress, screeninit, screeninit_size);
|
||||
|
||||
//Write brightness level for the stub to pick up
|
||||
*(vu32 *)(SCREENINIT_ADDRESS + 8) = MULTICONFIG(0);
|
||||
screenInitAddress[2] = MULTICONFIG(0);
|
||||
|
||||
*arm11Entry = SCREENINIT_ADDRESS;
|
||||
*arm11Entry = (u32)screenInitAddress;
|
||||
while(*arm11Entry);
|
||||
|
||||
//Turn on backlight
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "types.h"
|
||||
|
||||
#define PDN_GPU_CNT (*(vu8 *)0x10141200)
|
||||
#define SCREENINIT_ADDRESS 0x24F02000
|
||||
|
||||
void deinitScreens(void);
|
||||
void initScreens(void);
|
||||
Reference in New Issue
Block a user