Really, so the communication standard is just SPI then, interesting. That makes things a lot easier.
Well, it's OCTO-SPI as it's just a CLK, CS and data pins. You have two encryption layers:Really, so the communication standard is just SPI then, interesting. That makes things a lot easier.

Sorry for the late reply bud, I'm back to school now. Anyway, that storage size sounds great and allows for a lot of things to be implemented in the future like maybe a dual boot where the user configures via USB C if the cart is going to behave as a single ROM (for the compatibility thing) or boot into a regular kernel. Well the sky is the limit and I'm becoming a great enthusiast of this project of yours XDI gave the SD card idea a bit more thought, and realised that if there is just a big enough NAND, like 128GB (gigabytes) then their would be no need for an external SD card, just include a USB C port for flashing the NAND and firmware of the ESP32.
Also, size would be an issue but I think I could get it too fit flush using 2 PCB's (1 custom and 1 being the ESP32 S3 WROOM module) and a large cut out (in the custom PCB) to fit the ESP32 module. I don't think I am going to worry about getting it to fit first though, just get it booting DS ROMS on a DS lite, other basic features like fitting flush in the DS port can happen once the hardware and software both work.


Alright.You could try and talk to Asie (asiekierka) about this. I think Asie knows abit on how the nand based flashcarts work or at the very least how the perticular nand chips they use work. I myself don't know much on that. Just the N-Card specific things that may not apply to how you'd want to set it up.

ext4 is free and open source, plus it's the default on linux. It's also much easier to program. The one issue with it is that windows can't read it without a third party program.For the file system, I think I will just use a standard file system such as exFAT, or maybe some more open source alternative that is fairly universally compatible.


Alright, so using any other file system doesn't really appear to be possible unless libfat implemented support for exFat, but seeing as nothing supports exFat (and also that no new flashcarts are really being manufactured), libfat likely is never going to add support for exFat.DLDI is a driver standard for DS homebrew. It's used to interface with the flashcart's storage. It generally isn't specific to the filesystem you decide to use. It merely provides access the the storage at a low level. Homebrew uses libfat generally though. This is used on top of the DLDI to know how to access files and such which is why you'd want to stick to using fat/fat32.
From what I have found, if I use eMMC NAND, then I could avoid having to do any NAND maintenance implementation, they include all the NAND management stuff (such as block detection) in the same package and run over the MMC interface, which makes things easy. It's also meant to have a low power mode if the data transfer is slow which is nice for battery life.I imagine you can keep things simple by having FPGA handle block management and what not and and set up a custom card command for write commands. You could reuse existing retail B7 command for reading nand. But generally you'd still want to setup a custom command for filesystem stuff if you decide to emulate proper B7 read redirection for retail roms.

Oh that's part of the romctrl commands sent to the cartridge slot. It's documented on gbatek if you want to read on what that is. D2 is a custom command N-Card uses. B7 is one of the normal commands retail games use.Alright, so using any other file system doesn't really appear to be possible unless libfat implemented support for exFat, but seeing as nothing supports exFat (and also that no new flashcarts are really being manufactured), libfat likely is never going to add support for exFat.
From what I have found, if I use eMMC NAND, then I could avoid having to do any NAND maintenance implementation, they include all the NAND management stuff (such as block detection) in the same package and run over the MMC interface, which makes things easy. It's also meant to have a low power mode if the data transfer is slow which is nice for battery life.
Also, what's B7 and D2?
It's similar-ish. From what I understand, SDIO (SD/Micro SD cards) supports more than just storage capabilities than just storage like MMC, such as bluetooth, wifi and so on built into the cards. Also, the latency for eMMC is far lower than the latency for SD cards, SD cards have a latency of around 500 nano seconds to 200 micro seconds (200 micro seconds is the latency of the raspberry pi), wheras, the eMMC storage I am looking at has around 5 nano seconds of latency.Isn't EMMC nand similar to SD/MicroSD? They both use MMC I think. The issue there is if you use that, you may have latency issues as you have to send extra commands and such to interface with the MMC device and this will break timings if you intend to run retail roms without patches. This is probably why N-Card and DS-Xtreme uses the specific type of nand it uses.
Ahh, alright, thanks. So what section on GBATek should I be looking? is it somewhere under DS cartidge or elsewhere?Oh that's part of the romctrl commands sent to the cartridge slot. It's documented on gbatek if you want to read on what that is. D2 is a custom command N-Card uses. B7 is one of the normal commands retail games use.