I assume the latency from your microcontroller is the cause of the tight timings. Any decent NAND flash chip with a minimum of a 8 bits wide bus should be fast enough assuming the block mapping table is cached and the read request goes immediately to the NAND.
I'm working on a budget with chips I can afford, and there's also limited space on a physical cartridge, so the best I can use are SPI NAND FLASH chips, which have slower read speeds. I have looked at some more SPI NAND flash chips, and it turns out the "slower" transfer rate (240µs before writing the first byte) is more than enough.
I'm planning on getting a RP2040 dev board soon - I was lucky with how cheap I got those STM32 MCUs.
Hey, I found this while doing research into whether it would be possible to make NDS repro carts at home (note my wording, "possible" not "practical", i just wanna do it to see if I could lol) and after almost losing hope that it is even a possibility I find this thread! I'll have to do research of my own but this helps a LOT in getting me off the ground. Thank you so much!
Post automatically merged:
Something im not understanding is exactly what instructions are necessarry on the microcontroller to get the DS to see the game and boot it. Sorry if theres something obvious im missing but I just wanna know how hard it would be to replicate this.
Hey, I found this while doing research into whether it would be possible to make NDS repro carts at home (note my wording, "possible" not "practical", i just wanna do it to see if I could lol) and after almost losing hope that it is even a possibility I find this thread! I'll have to do research of my own but this helps a LOT in getting me off the ground. Thank you so much!
Post automatically merged:
Something im not understanding is exactly what instructions are necessarry on the microcontroller to get the DS to see the game and boot it. Sorry if theres something obvious im missing but I just wanna know how hard it would be to replicate this.
If you want to write your own program for your microcontroller, I think the best I can do is to explain how mine currently works? I'm not an expert in this field so there are most likely some parts that are wrong.
The DS cartridge protocol is documented on GBATEK. It works like SPI but with 8 bits of data: you have a Chip Select (CS1) pin, a Clock (CLK, driven by the DS), and input/output. CLK and CS1 are initially high ; when the DS wants to receive or send data to the cartridge (which is a proprietary ROM in official cartridges, and in mine it's a STM32 microcontroller), it firsts drives CS1 low. Then, when CLK becomes low, the console/cartridge drives the pins I/O7 to I/O0 depending on the byte it wants to send. I/O7 is bit 7 (MSB), I/O0 is bit 0 (LSB). High means 1, low means 0. Quick and dirty drawing for the timings. The DS doesn't care when you toggle the pins as long as it gets the value when CLK goes low.
So when a transfer begins, CS1 goes low, and the console transmits 8 bytes (CLK goes low 8 times) ; that's the command. The commands are documented on the page I linked above. After those 8 bytes, there might or might not be a gap, then the transfer reverses ; it's now the cartridge that drives the IO pins. The console still drives the clock, and every time the clock goes down, the console reads a new byte. Retail cartridges drives the I/O pins when the clock goes low, but due to timing issues with my microcontroller, I drive them when the clock goes high. The transfer ends when the console drives CS1 high.
The transfer's clock is initially at 4.2MHz, then goes up to 6.7MHz for (all?) retail games. This depends on the cartridge header. There's also encryption (KEY1/KEY2, also documented on GBATEK) and don't forget that there's a whitelist on non-homebrew DSi/3DS units.
Don't underestimate the clock rate. I'm using a STM32G431CBU6 which is clocked at 150 MHz, has many DMA channels I'm abusing, and DMA request generators for external interrupts/events. With the transfer rate, I can run *at most* 150/6.7 = 23 cpu instructions between two CLK falling-edges (not counting multi-cycles instructions and the time it takes to read the instruction from the internal flash). I am also using a NOR flash chip which are fast enough for retail games but somewhat expensive.
Sorry if that's hard to understand, this is my first time dealing with these and my vocabulary isn't really good (and english isn't my native language). I don't have much free time rn, so I'll try putting my current code for the STM32 cartridge on GitHub soon without bothering to clean it up.
I am part of a team by the name of Lost Nintendo History. For the past 3 years now, we've been working on an open-source flashcart targeting every system in the *DS line of products.
The flashcart is based on the rp2040, and we expect to release the project to the public soon(tm, very relative to how much progress we make over time).
The cartridge can boot titles, as well as homebrew. It will not be sold anywhere, instead users will be able to order a shell and a pcb from popular manufacturers like JLPCB or PCBWAY as we do not intend (or want) to make any money from this project.
Now, this project is not meant to be used as a "reproduction" cartridge, rather being a modern replacement for all the flashcarts on the market currently. the STM32 projet could be good leverage towards programmable cartridges, maybe.
We thought we would let people know here so no effort is wasted on another rp2040 cartridge (especially since everything will be made open source, and open to contributions)
I am part of a team by the name of Lost Nintendo History. For the past 3 years now, we've been working on an open-source flashcart targeting every system in the *DS line of products.
The flashcart is based on the rp2040, and we expect to release the project to the public soon(tm, very relative to how much progress we make over time).
The cartridge can boot titles, as well as homebrew. It will not be sold anywhere, instead users will be able to order a shell and a pcb from popular manufacturers like JLPCB or PCBWAY as we do not intend (or want) to make any money from this project.
Now, this project is not meant to be used as a "reproduction" cartridge, rather being a modern replacement for all the flashcarts on the market currently. the STM32 projet could be good leverage towards programmable cartridges, maybe.
We thought we would let people know here so no effort is wasted on another rp2040 cartridge (especially since everything will be made open source, and open to contributions)
That's awesome, I had no idea your team was working on a new flashcart!
I'd love for it to have NOR flash memory, similar to EZ-FLASH's OMEGA. I think that would solve the lack of DSi-enhanced support, while also finally allowing Pokemon Dream Radar and Poke Transporter to work
I am part of a team by the name of Lost Nintendo History. For the past 3 years now, we've been working on an open-source flashcart targeting every system in the *DS line of products.
The flashcart is based on the rp2040, and we expect to release the project to the public soon(tm, very relative to how much progress we make over time).
The cartridge can boot titles, as well as homebrew. It will not be sold anywhere, instead users will be able to order a shell and a pcb from popular manufacturers like JLPCB or PCBWAY as we do not intend (or want) to make any money from this project.
Now, this project is not meant to be used as a "reproduction" cartridge, rather being a modern replacement for all the flashcarts on the market currently. the STM32 projet could be good leverage towards programmable cartridges, maybe.
We thought we would let people know here so no effort is wasted on another rp2040 cartridge (especially since everything will be made open source, and open to contributions)
Ooooooo, neat. I'll probably order one from PCBWay just to have one. I kinda wonder if any Chinese cloners will start making these carts too. I suppose it depends on how well it ends up working. The RP2040 is such a cheap and versatile little chip.
That's awesome, I had no idea your team was working on a new flashcart!
I'd love for it to have NOR flash memory, similar to EZ-FLASH's OMEGA. I think that would solve the lack of DSi-enhanced support, while also finally allowing Pokemon Dream Radar and Poke Transporter to work
Our project will support dsi-enhanced features as well as dsi exclusive titles.
Making a programmable cartridge is outside the scope of the project, though nothing will prevent you or anybody from making your own flashcart with the features you want
Ooooooo, neat. I'll probably order one from PCBWay just to have one. I kinda wonder if any Chinese cloners will start making these carts too. I suppose it depends on how well it ends up working. The RP2040 is such a cheap and versatile little chip.
The design files for the hardware and all the code for the firmware and other components will be made open source. Obviously there will be clones reusing everything, however you can avoid buying from these resellers anyway
Our project will support dsi-enhanced features as well as dsi exclusive titles.
Making a programmable cartridge is outside the scope of the project, though nothing will prevent you or anybody from making your own flashcart with the features you want
The design files for the hardware and all the code for the firmware and other components will be made open source. Obviously there will be clones reusing everything, however you can avoid buying from these resellers anyway
Ah, sweet. Nobody's made a DSi mode capable cart in such a long time.
As for the second part, assuming they don't make any changes to the cart and just sell it as is, I don't really have an issue with clones. It makes it more accessible to the less technically inclined.
I am part of a team by the name of Lost Nintendo History. For the past 3 years now, we've been working on an open-source flashcart targeting every system in the *DS line of products.
The flashcart is based on the rp2040, and we expect to release the project to the public soon(tm, very relative to how much progress we make over time).
The cartridge can boot titles, as well as homebrew. It will not be sold anywhere, instead users will be able to order a shell and a pcb from popular manufacturers like JLPCB or PCBWAY as we do not intend (or want) to make any money from this project.
Now, this project is not meant to be used as a "reproduction" cartridge, rather being a modern replacement for all the flashcarts on the market currently. the STM32 projet could be good leverage towards programmable cartridges, maybe.
We thought we would let people know here so no effort is wasted on another rp2040 cartridge (especially since everything will be made open source, and open to contributions)
Ah, sweet. Nobody's made a DSi mode capable cart in such a long time.
As for the second part, assuming they don't make any changes to the cart and just sell it as is, I don't really have an issue with clones. It makes it more accessible to the less technically inclined.
We intend to make it as accessible to the people who arent that technical so its not a burden for them, as well as tutorials obviously. The only "DIY" part will be receiving the cartridge, setupping it, and clipping the case together (which tbf, most of that you have to do yourself with any flashcart)
We intend to make it as accessible to the people who arent that technical so its not a burden for them, as well as tutorials obviously. The only "DIY" part will be receiving the cartridge, setupping it, and clipping the case together (which tbf, most of that you have to do yourself with any flashcart)
Lol. I'm just saying, love the project, but I've seen so many people struggle to drag the firmware for their card onto an SD. Having to order the card off of PCBWay (and the shell then snapping them together) will filter so many people right out of the gate. Not saying you shouldn't do it this way. It's a good idea. But you need to understand that even this is going to be too hard for a lot of people.
Lol. I'm just saying, love the project, but I've seen so many people struggle to drag the firmware for their card onto an SD. Having to order the card off of PCBWay (and the shell then snapping them together) will filter so many people right out of the gate. Not saying you shouldn't do it this way. It's a good idea. But you need to understand that even this is going to be too hard for a lot of people.
It will be as easy as ordering any R4 card clone from Aliexpress, we even expect third party sellers to offer ready-to-use DSpico cards in online stores (not ideal but we know it's going to happen, the best option will always be to build your own cards). The important part is that users can customize their card build as much as they want, ranging from PCB colors, to different brand components or peripherals.
TL;DR: Ordering a unit is as simple as buying anything on any online store.
It will be as easy as ordering any R4 card clone from Aliexpress, we even expect third party sellers to offer ready-to-use DSpico cards in online stores (not ideal but we know it's going to happen, the best option will always be to build your own cards). The important part is that users can customize their card build as much as they want, ranging from PCB colors, to different brand components or peripherals.
TL;DR: Ordering a unit is as simple as buying anything on any online store.
Let's just agree to disagree. Because I'm not going to argue about this. And the thing you were saying about third party sellers offering ready-to-use cards was entirely my point in the first place. So congrats we agree. PCBWay (etc) and ordering multiple separate parts is still going to be way above some people's head.
I am part of a team by the name of Lost Nintendo History. For the past 3 years now, we've been working on an open-source flashcart targeting every system in the *DS line of products.
The flashcart is based on the rp2040, and we expect to release the project to the public soon(tm, very relative to how much progress we make over time).
The cartridge can boot titles, as well as homebrew. It will not be sold anywhere, instead users will be able to order a shell and a pcb from popular manufacturers like JLPCB or PCBWAY as we do not intend (or want) to make any money from this project.
Now, this project is not meant to be used as a "reproduction" cartridge, rather being a modern replacement for all the flashcarts on the market currently. the STM32 projet could be good leverage towards programmable cartridges, maybe.
We thought we would let people know here so no effort is wasted on another rp2040 cartridge (especially since everything will be made open source, and open to contributions)
Well... Technically you could use the last open source version of wood, add all the missing AP patches in, and add DSi mode compatibility to it. If you wanted to. I don't know how difficult that is vs making one entirely from scratch.
Is there a new card exploit that would make it work on unmodded dsi/3ds? Not that that's really necessary anymore with every single dsi or 3ds on the market being easily moddable with no extra hardware required
Is there a new card exploit that would make it work on unmodded dsi/3ds? Not that that's really necessary anymore with every single dsi or 3ds on the market being easily moddable with no extra hardware required
Didn't the DSi RSA key get leaked in one of the gigaleaks? You might not even need an exploit for DSi mode and you could probably have a custom banner too. Just compile a loader ROM with a DSi binary and sign it. I might be off base though. I'm only going off vague memory.
The most popular Nintendo DS emulator for Android devices, DraStic, has now disappeared from the Google Play Store, and is no longer available for download.
However...
Back in September, 2024, news broke out about Nintendo suing Palworld creators, PocketPair, in Japan over many of the mechanics that Palworld uses, sharing...
Out of nowhere, a new PlayStation 3 emulator appeared for Android devices by chinese developer Aenu over at GitHub, but although the project is hosted in GitHub, it...
Sonic Unleashed was one of the few Sonic titles to never make its way to PC in any form. A 2013 fan project called Unleashed Project attempted to bring the levels of...
Nintendo's legal action against emulators continues yet again, as new DMCA takedown notices have been handed to several Ryujinx forks on Github.
Back in October...
Nintendo's own Public Relations (PR) department has issued today an email to several outlets and partners regarding a ruling from the French Supreme Court against the...
Almost exactly a year ago, Balatro stormed onto the scene as a surprise standout of 2024. The game features an utterly addictive gameplay loop that takes the familiar...
The official Pokemon Company social accounts recently announced their upcoming "Pokemon Presents" stream, scheduled for February 27th, 2025, a now yearly programmed...
After being lost through several decades since their release at the hands of EA, and after a Remastered Collection with incomplete code from the final builds, today...
The constant changes, be it for bad or good, in the videogame industry continues, as this time, several studios under Warner Bros. will shut down, as well as Warner...
Back in September, 2024, news broke out about Nintendo suing Palworld creators, PocketPair, in Japan over many of the mechanics that Palworld uses, sharing...
Nintendo's legal action against emulators continues yet again, as new DMCA takedown notices have been handed to several Ryujinx forks on Github.
Back in October...
Sonic Unleashed was one of the few Sonic titles to never make its way to PC in any form. A 2013 fan project called Unleashed Project attempted to bring the levels of...
Nintendo's own Public Relations (PR) department has issued today an email to several outlets and partners regarding a ruling from the French Supreme Court against the...
The constant changes, be it for bad or good, in the videogame industry continues, as this time, several studios under Warner Bros. will shut down, as well as Warner...
The official Pokemon Company social accounts recently announced their upcoming "Pokemon Presents" stream, scheduled for February 27th, 2025, a now yearly programmed...
The most popular Nintendo DS emulator for Android devices, DraStic, has now disappeared from the Google Play Store, and is no longer available for download.
However...
It's the 29th anniversary of the release of the first Pokemon titles, and to celebrate, The Pokemon Company has a handful of announcements and reveals to make. A...
Out of nowhere, a new PlayStation 3 emulator appeared for Android devices by chinese developer Aenu over at GitHub, but although the project is hosted in GitHub, it...
After being lost through several decades since their release at the hands of EA, and after a Remastered Collection with incomplete code from the final builds, today...