1
0
Fork 0
mirror of https://github.com/suchmememanyskill/TegraExplorer.git synced 2024-11-22 11:56:42 +00:00

add old bad hexview

This commit is contained in:
suchmememanyskill 2020-12-29 17:12:58 +01:00
parent dfc02f9f81
commit 48ddc6ea60
3 changed files with 60 additions and 7 deletions

View file

@ -109,12 +109,62 @@ void RenameFile(char *path, FSEntry_t entry){
free(renameTo);
}
// This is from the original TE and it's bad but uhh i'm too lazy to fix it
void HexView(char *path, FSEntry_t entry){
char *filePath = CombinePaths(path, entry.name);
FIL in;
u8 *print;
u32 size;
QWORD offset = 0;
int res;
Input_t *input = hidRead();
while (input->buttons & (BtnPow | JoyB))
hidRead();
gfx_clearscreen();
print = malloc(2048);
if ((res = f_open(&in, filePath, FA_READ | FA_OPEN_EXISTING))){
DrawError(newErrCode(res));
return;
}
while (1){
f_lseek(&in, offset * 32);
if ((res = f_read(&in, print, 2048, &size))){
DrawError(newErrCode(res));
return;
}
gfx_con_setpos(0, 31);
gfx_hexdump(offset * 32, print, size);
input = hidRead();
if (!(input->buttons))
input = hidWait();
if (input->down && 2048 == size)
offset += 2;
if (input->up && offset > 0)
offset -= 2;
if (input->buttons & (BtnPow | JoyB))
break;
}
f_close(&in);
free(print);
free(filePath);
}
fileMenuPath FileMenuPaths[] = {
CopyClipboard,
MoveClipboard,
RenameFile,
DeleteFile,
UnimplementedException,
HexView,
LaunchPayload,
RunScript
};

View file

@ -492,6 +492,8 @@ void gfx_putc_small(char c){
gfx_con.fntsz = 16;
}
#define hexDumpLen 0x20
void gfx_hexdump(u32 base, const u8 *buf, u32 len)
{
if (gfx_con.mute)
@ -501,14 +503,14 @@ void gfx_hexdump(u32 base, const u8 *buf, u32 len)
gfx_con.fntsz = 8;
for(u32 i = 0; i < len; i++)
{
if(i % 0x10 == 0)
if(i % hexDumpLen == 0)
{
if(i != 0)
{
gfx_puts("| ");
for(u32 j = 0; j < 0x10; j++)
for(u32 j = 0; j < hexDumpLen; j++)
{
u8 c = buf[i - 0x10 + j];
u8 c = buf[i - hexDumpLen + j];
if(c >= 32 && c <= 126)
gfx_putc(c);
else
@ -521,12 +523,12 @@ void gfx_hexdump(u32 base, const u8 *buf, u32 len)
gfx_printf("%02x ", buf[i]);
if (i == len - 1)
{
int ln = len % 0x10 != 0;
u32 k = 0x10 - 1;
int ln = len % hexDumpLen != 0;
u32 k = hexDumpLen - 1;
if (ln)
{
k = (len & 0xF) - 1;
for (u32 j = 0; j < 0x10 - k; j++)
for (u32 j = 0; j < hexDumpLen - k; j++)
gfx_puts(" ");
}
gfx_puts("| ");

View file

@ -14,6 +14,7 @@
#define JoyLRight BIT(18)
#define JoyLLeft BIT(19)
#define JoyLB BIT(22)
#define BtnPow BIT(24)
#define BtnVolP BIT(25)
#define BtnVolM BIT(26)
#define JoyRDown BIT(27)