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:
parent
dfc02f9f81
commit
48ddc6ea60
3 changed files with 60 additions and 7 deletions
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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("| ");
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue