GodMode9/source/nand/virtual.h

32 lines
1.2 KiB
C
Raw Normal View History

2016-03-21 18:29:55 +01:00
#pragma once
#include "common.h"
#include "nand.h"
2016-04-04 22:45:49 +02:00
#define VRT_SYSNAND NAND_SYSNAND
#define VRT_EMUNAND NAND_EMUNAND
#define VRT_IMGNAND NAND_IMGNAND
2016-04-09 21:50:50 +02:00
#define VRT_MEMORY (1<<10)
2016-03-21 18:29:55 +01:00
static const char* virtualFileList[] = { // must have a match in virtualFileTemplates[]
2016-04-09 21:50:50 +02:00
"twln.bin", "twlp.bin", "agbsave.bin", "firm0.bin", "firm1.bin", "ctrnand_fat.bin",
"ctrnand_full.bin", "nand.bin", "nand_minsize.bin", "nand_hdr.bin", "sector0x96.bin",
"itcm.dmp", "arm9internal.dmp", "vram.dmp", "dsp.dmp", "axiwram.dmp", "fcram.dmp",
"dtcm.dmp", "bootrom_unp.dmp"
2016-03-21 18:29:55 +01:00
};
static const u32 virtualFileList_size = sizeof(virtualFileList) / sizeof(char*);
typedef struct {
const char name[32];
u32 offset; // must be a multiple of 0x200
u32 size;
u32 keyslot;
u32 flags;
} __attribute__((packed)) VirtualFile;
2016-04-09 21:56:42 +02:00
u32 GetVirtualSource(const char* path);
bool CheckVirtualDrive(const char* path);
2016-03-22 19:44:21 +01:00
bool FindVirtualFile(VirtualFile* vfile, const char* path, u32 size);
int ReadVirtualFile(const VirtualFile* vfile, u8* buffer, u32 offset, u32 count, u32* bytes_read);
int WriteVirtualFile(const VirtualFile* vfile, const u8* buffer, u32 offset, u32 count, u32* bytes_written);