openchip: Why do you insist 128MB is the barrier? The addressing can support up to 4Gbit.
If your program acts in the same way as commercial ROM's,
why doesn't it's access routines get patched as well? Does your random read method work with an official DS cart?
edit:/ just thought I'd mention, it's very easy to get "garbage data" back from these new slot 1 cards, easier than getting garbage back from a DS cart.
I'm also curious about that ! And thank you for posting the code and answering my questions
a generic patch that would be able to patch unknown-unsupported ROM patching is very hard todo.
only ROMs that are known or have known signatures will get patched.
everything else just doesnt work
Or, to answer that question a little bit differently: these generic patchers look for the hashes of specific functions that read from DS carts. Which come from Nintendos devkit and look the same with each version. They replace these functions with their own ones, which read from that vendor specific card alone. That's also why you can't use a Supercard patched NDS ROM with the M3 and vice versa.
In this function an official ROM writes a specific value to a specific address ("B7aaaaaaaa000000h" to 40001A8h, where aaaaaaaa is the adress where the programm wants to read from) to get the content of that specific values address in the NDS ROM - from my understanding this gets encrypted, sent to cart, decrypts there, cart sends encrypted content back, content gets decrypted in the DS.
Now, if you don't patch ROMs, this is also how homebrew on a Slot-1 card should behave and what openchips programm tests. But obviously, openchip doesn't use Nintendo's functions for his programm, he wrote his own. Patchers and on-the-fly patchers in Slot-1 cards don't know that function, so they can't patch it and results are random garbage. That proves, that all current Slot-1 cards don't use the official way to access data on Slot-1.
Please correct me if I'm wrong, that's how I *think* it works according to NDSTek (most notably " DS Cartridge I/O Ports" and "DS Cartridge Protocol" sections)