ds-homebrew / dldi Goto Github PK
View Code? Open in Web Editor NEWAn archive of flashcard DLDI drivers and source codes
An archive of flashcard DLDI drivers and source codes
It is widely known that DEMON carts (timebomb carts, r4i-sdhc.com, etc) are based on the DSTT. DSTT's DLDI has worked on it and has been used this way for years.
Current open-source ttio
driver does not work on these carts. It should be noted that this driver was written based on the DSONE SDHC behaviour, which is yet another ancestor of the DSTT carts.
Some things have been noted with some hex editing of prebuilt DSONE SDHC DLDI on hand:
This behaves identically to the current ttio
driver.
Notes:
scdssdhc*
all write commands directly to REG_CARD_COMMAND, and only values that need replacing, while the new card library writes an entire u64, replacing what was previously there.
SCDS_CMD_CARD_PARAM_R1 is in fact raw SDIO commands.
51aaaaaaaabb0100
Defines should be updated to match this, since names I currently thought of are kind of random, and SDIO in general is better documented and easier to follow for people who are well versed into it.
This is missing in all source codes for SCDSSDHC/DSTT.
In LogicCardWrite https://github.com/DS-Homebrew/DLDI/blob/master/scdssdhc2/source/iointerface.c
command[7] = 0x51;
command[6] = (address >> 24) & 0xff;
command[5] = (address >> 16) & 0xff;
command[4] = (address >> 8) & 0xff;
command[3] = address & 0xff;
command[2] = 25; // as opposed to 24 in single write
command[1] = 1;
command[0] = 0;
can be done to start a batch write.
If the written sector is the last sector, then between 0x50 and 0x56 commands, we need to send this command
command[7] = 0x51;
command[6] = 0;
command[5] = 0;
command[4] = 0;
command[3] = 0;
command[2] = 12; // signal that that was the last block
command[1] = 1;
command[0] = 0;
and then loop.
The original R4 SD framework wasn't really designed for batch writes, as the original R4 doesn't have that implemented. So a rewrite of LogicCardWrite may be necessary.
There is no batch reads in the DSTT, however it's fast enough that this doesn't exactly matter.
DLDI/dlms4/source/iointerface_asm.s
Line 924 in 17fd419
TODO: figure out what value is supposed to go there
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.