1
0
Fork 0
mirror of https://github.com/suchmememanyskill/TegraExplorer.git synced 2024-09-18 21:13:24 +01:00

Mount other emmc parts

This commit is contained in:
Such Meme, Many Skill 2019-12-22 12:10:59 +01:00
parent 12802bf371
commit 81e97fa820
6 changed files with 39 additions and 18 deletions

View file

@ -151,7 +151,7 @@ DRESULT disk_read (
__attribute__ ((aligned (16))) static u64 prev_cluster = -1;
__attribute__ ((aligned (16))) static u32 prev_sector = 0;
bool needs_cache_sector = false;
/*
if (secindex == 0 || clear_sector_cache) {
if (!sector_cache)
sector_cache = (sector_cache_t *)malloc(sizeof(sector_cache_t) * MAX_SEC_CACHE_ENTRIES);
@ -179,6 +179,7 @@ DRESULT disk_read (
secindex++;
}
}
*/
//system_part (pdrv == 1) ? system_part_sys : system_part_usr
if (nx_emmc_part_read(&storage, system_part, sector, count, buff)) {
u32 tweak_exp = 0;
@ -195,10 +196,12 @@ DRESULT disk_read (
// fatfs will never pull more than a cluster
_emmc_xts(9, 8, 0, tweak, regen_tweak, tweak_exp, prev_cluster, buff, buff, count * 0x200);
/*
if (needs_cache_sector) {
memcpy(sector_cache[s].cached_sector, buff, 0x200);
memcpy(sector_cache[s].tweak, tweak, 0x10);
}
*/
prev_sector = sector + count - 1;
return RES_OK;
}

View file

@ -54,7 +54,7 @@ bool return_sd_mounted(int value){
switch(value){
case 1:
return sd_mounted;
case 5:
case 7:
return sd_inited;
}
}

View file

@ -320,6 +320,10 @@ int delfile(const char *path, const char *filename){
void filemenu(const char *startpath){
int amount, res, tempint;
char temp[100];
if (!strcmp(rootpath, "emmc:/") && !strcmp(startpath, "emmc:/"))
clipboardhelper = 0;
strcpy(rootpath, startpath);
writecurpath(startpath);
amount = readfolder(currentpath);

View file

@ -14,8 +14,10 @@ extern bool return_sd_mounted(int value);
extern int launch_payload(char *path);
menu_item mainmenu[MAINMENU_AMOUNT] = {
{"[SD:/] SD CARD", COLOR_GREEN, SD_CARD, 1},
{"[SYSTEM:/] EMMC", COLOR_GREEN, EMMC_SYS, 1},
{"[SD:/] SD CARD\n", COLOR_GREEN, SD_CARD, 1},
{"[SYSTEM:/] EMMC", COLOR_ORANGE, EMMC_SYS, 1},
{"[USER:/] EMMC", COLOR_ORANGE, EMMC_USR, 1},
{"[SAFE:/] EMMC", COLOR_ORANGE, EMMC_SAF, 1},
{"\nMount/Unmount SD", COLOR_WHITE, MOUNT_SD, 1},
{"Tools", COLOR_VIOLET, TOOLS, 1},
{"SD format", COLOR_VIOLET, SD_FORMAT, 1},
@ -48,19 +50,25 @@ menu_item formatmenu[4] = {
{"Format for EmuMMC setup (FAT32/RAW)", COLOR_RED, FORMAT_EMUMMC, 1}
};
const char emmc_entries[3][8] = {
"SAFE",
"SYSTEM",
"USER"
};
void fillmainmenu(){
int i;
for (i = 0; i < MAINMENU_AMOUNT; i++){
switch (i + 1) {
case 1:
case 5:
case 7:
if (return_sd_mounted(i + 1))
mainmenu[i].property = 1;
else
mainmenu[i].property = -1;
break;
case 3:
case 5:
if (return_sd_mounted(1)){
mainmenu[i].property = 2;
strcpy(mainmenu[i].name, "\nUnmount SD");
@ -80,9 +88,8 @@ void te_main(){
if (dump_biskeys() == -1){
message("Biskeys failed to dump!\nEmmc will not be mounted!", COLOR_RED);
mainmenu[1].property = -1;
}
else {
mount_emmc("SYSTEM", 2);
mainmenu[2].property = -1;
mainmenu[3].property = -1;
}
while (1){
@ -93,16 +100,21 @@ void te_main(){
case SD_CARD:
filemenu("SD:/");
break;
case EMMC_SAF:
case EMMC_SYS:
if (makewaitmenu("You're about to enter EMMC\nModifying anything here\n can result in a BRICK!\n\nPlease only continue\n if you know what you're doing\n\nPress Vol+/- to return\n", "Press Power to enter", 4))
filemenu("emmc:/");
break;
/*
case EMMC_USR:
mount_emmc("USER", 2);
filemenu("emmc:/");
break;
*/
if (makewaitmenu("You're about to enter EMMC\nModifying anything here\n can result in a BRICK!\n\nPlease only continue\n if you know what you're doing\n\nPress Vol+/- to return\n", "Press Power to enter", 4)){
if (!mount_emmc(emmc_entries[res - 2], res - 1)){
filemenu("emmc:/");
}
else
message("EMMC failed to mount!", COLOR_RED);
}
break;
case MOUNT_SD:
if (return_sd_mounted(1))
sd_unmount();

View file

@ -1,7 +1,7 @@
#pragma once
#include "../utils/types.h"
#define MAINMENU_AMOUNT 7
#define MAINMENU_AMOUNT 9
#define CREDITS_MESSAGE "\nTegraexplorer, made by:\nSuch Meme, Many Skill\n\nProject based on:\nLockpick_RCM\nHekate\n\nCool people:\nshchmue\ndennthecafebabe\nDax"
typedef struct _menu_item {
@ -13,6 +13,7 @@ typedef struct _menu_item {
enum mainmenu_return {
SD_CARD = 1,
EMMC_SAF,
EMMC_SYS,
EMMC_USR,
MOUNT_SD,

View file

@ -97,6 +97,7 @@ int dumpfirmware(){
u32 timer = get_tmr_s();
clearscreen();
mount_emmc("SYSTEM", 2);
gfx_printf("PKG1 version: %d\n", pkg1ver);