mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-06-09 04:21:38 +12:00
[FS] Implement SaveData sort of.
This commit is contained in:
parent
d24a61d5a7
commit
e69e95af69
7 changed files with 75 additions and 31 deletions
|
@ -38,10 +38,16 @@ void FSService::reset() {
|
|||
// Creates directories for NAND, ExtSaveData, etc if they don't already exist. Should be executed after loading a new ROM.
|
||||
void FSService::initializeFilesystem() {
|
||||
const auto nandPath = IOFile::getAppData() / "NAND"; // Create NAND
|
||||
// TODO: Savedata, SDMC, etc
|
||||
const auto savePath = IOFile::getAppData() / "SaveData"; // Create SaveData
|
||||
namespace fs = std::filesystem;
|
||||
// TODO: SDMC, etc
|
||||
|
||||
if (!std::filesystem::is_directory(nandPath)) {
|
||||
std::filesystem::create_directories(nandPath);
|
||||
if (!fs::is_directory(nandPath)) {
|
||||
fs::create_directories(nandPath);
|
||||
}
|
||||
|
||||
if (!fs::is_directory(savePath)) {
|
||||
fs::create_directories(savePath);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -284,15 +284,22 @@ void GPUService::memoryFill(u32* cmd) {
|
|||
}
|
||||
|
||||
void GPUService::triggerDisplayTransfer(u32* cmd) {
|
||||
const u32 inputAddr = cmd[1];
|
||||
const u32 outputAddr = cmd[2];
|
||||
const u32 inputSize = cmd[3];
|
||||
const u32 outputSize = cmd[4];
|
||||
const u32 flags = cmd[5];
|
||||
|
||||
log("GSP::GPU::TriggerDisplayTransfer (Stubbed)\n");
|
||||
gpu.displayTransfer(inputAddr, outputAddr, inputSize, outputSize, flags);
|
||||
requestInterrupt(GPUInterrupt::PPF); // Send "Display transfer finished" interrupt
|
||||
}
|
||||
|
||||
void GPUService::triggerDMARequest(u32* cmd) {
|
||||
u32 source = cmd[1];
|
||||
u32 dest = cmd[2];
|
||||
u32 size = cmd[3];
|
||||
bool flush = cmd[7] == 1;
|
||||
const u32 source = cmd[1];
|
||||
const u32 dest = cmd[2];
|
||||
const u32 size = cmd[3];
|
||||
const bool flush = cmd[7] == 1;
|
||||
|
||||
log("GSP::GPU::TriggerDMARequest (source = %08X, dest = %08X, size = %08X)\n", source, dest, size);
|
||||
gpu.fireDMA(dest, source, size);
|
||||
|
@ -315,6 +322,8 @@ void GPUService::processCommandList(u32* cmd) {
|
|||
requestInterrupt(GPUInterrupt::P3D); // Send an IRQ when command list processing is over
|
||||
}
|
||||
|
||||
// TODO: Emulate the transfer engine & its registers
|
||||
// Then this can be emulated by just writing the appropriate values there
|
||||
void GPUService::triggerTextureCopy(u32* cmd) {
|
||||
Helpers::warn("GSP::GPU::TriggerTextureCopy (unimplemented)\n");
|
||||
// This uses the transfer engine and thus needs to fire a PPF interrupt.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue