<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.asie.pl/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.asie.pl/feed.php">
        <title>asie&#039;s personal wiki - notes:flashcart</title>
        <description></description>
        <link>https://wiki.asie.pl/</link>
        <image rdf:resource="https://wiki.asie.pl/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-17T04:54:29+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:acekard2i&amp;rev=1698758001&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:dstt&amp;rev=1697469059&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_linker&amp;rev=1750627683&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_linker_writer&amp;rev=1750627648&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_motion_card&amp;rev=1730885031&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:edgb&amp;rev=1731854243&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:edgbx&amp;rev=1716588454&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:elcheaposdgb&amp;rev=1726912252&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflash&amp;rev=1727644406&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflash5&amp;rev=1731019803&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflashjr&amp;rev=1697292262&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:gbamp&amp;rev=1697302730&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:gmp_z003&amp;rev=1731056338&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:m3ds&amp;rev=1697484398&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:mkr6&amp;rev=1731328850&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:nds_benchmarks&amp;rev=1731367664&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:r4ds&amp;rev=1697468637&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:scgba&amp;rev=1753526406&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.asie.pl/doku.php?id=notes:flashcart:ws_flash_masta&amp;rev=1749989245&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.asie.pl/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>asie's personal wiki</title>
        <link>https://wiki.asie.pl/</link>
        <url>https://wiki.asie.pl/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:acekard2i&amp;rev=1698758001&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-31T13:13:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>acekard2i</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:acekard2i&amp;rev=1698758001&amp;do=diff</link>
        <description>Acekard 2/2i (NDS) programming

Original research provided primarily by Normmatt.

Hardware variants

Acekard 2, HW-40 (0x40)

Acekard 2i, HW-44 (0x44)

Acekard 2i, HW-81 (0x81)

Commands

Flash ??? (C0 00 00 00 00 00 00 00)

Get hardware revision (D1 00 00 00 00 00 00 00)</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:dstt&amp;rev=1697469059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-16T15:10:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dstt</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:dstt&amp;rev=1697469059&amp;do=diff</link>
        <description>DSTT (NDS) programming

Original research provided primarily by HandsomeMatt.

Hardware variants

The DSTT is notorious for using pretty much every flash chip its manufacturing team could get its hands on throughout its lifecycle. There&#039;s over fifty of them - an incomplete list is available</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_linker&amp;rev=1750627683&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-22T21:28:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ds_linker</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_linker&amp;rev=1750627683&amp;do=diff</link>
        <description>DSFlash2 (DS Linker, N-Card et al.) programming

This page only discusses the Slot-1 card. For information on the Slot-2 USB cartridges, see DS Linker Writer/N-Card (Slot-2 USB cart).

Photos

MK5 Giga 16Gbit
[Array][Array]
Flash chips

Known types:

- Hynix HY27UF081G2M
- Samsung K9G8G08U0M

Commands

TODO: Figure out card timings. (Are all of them stored in RAM?)</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_linker_writer&amp;rev=1750627648&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-22T21:27:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ds_linker_writer</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_linker_writer&amp;rev=1750627648&amp;do=diff</link>
        <description>DS Linker Writer/N-Card (Slot-2 USB cart)

The DS Linker Writer (also known as the N-Card, ExpressCard, DS Fire Link, etc.) is a Slot-2 GBA cartridge with an USB controller; in combination with a software USB stack running on the DS itself, it allows the console to act as an USB device.</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_motion_card&amp;rev=1730885031&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-06T09:23:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ds_motion_card</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_motion_card&amp;rev=1730885031&amp;do=diff</link>
        <description>DS Motion Card

This page documents the DS Motion Card and other devices based around the Kionix KXPB5 accelerometer.

Devices
 Name  Description  Accelerometer  Gyroscope  Analog Input  GBAccelerometer  Link port device; GBA only  Yes (KXP74)  No  No</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:edgb&amp;rev=1731854243&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-17T14:37:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>edgb</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:edgb&amp;rev=1731854243&amp;do=diff</link>
        <description>EverDrive GB original (GB/GBC) programming

Registers

0xBE00 (SPI_DATA)

SPI data port used for communication with the SD card. Write to send and receive a byte; read to get the last received byte.

0xBE80 (?)

0xBF00 (REG_INDEX)

The index of the register to be accessed.</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:edgbx&amp;rev=1716588454&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-24T22:07:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>edgbx</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:edgbx&amp;rev=1716588454&amp;do=diff</link>
        <description>EverDrive GB X-series (GB/GBC) programming

Stub (only covers SPI bus for storage).

Registers

0xBD00 (SPI_DATA)

SPI data port used for communication with the SD card. Write to send and receive a byte; read to get the last received byte.

0xBD01 (SPI_CTRL)</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:elcheaposdgb&amp;rev=1726912252&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-21T09:50:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>elcheaposdgb</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:elcheaposdgb&amp;rev=1726912252&amp;do=diff</link>
        <description>ElCheapo SD 2.x (GB/GBC) programming

Stub (only covers SPI bus for storage).

Registers

$0000 (RAM enable)

Write $09 to unlock other registers.

$3F00 (SPI read)

Returns the last read value from the SPI bus.

$3F01 (SPI write)

Write to send and receive a byte via the SPI bus from/to the SD card.</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflash&amp;rev=1727644406&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T21:13:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ezflash</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflash&amp;rev=1727644406&amp;do=diff</link>
        <description>EZ Flash (GBA) programming

It appears many EZ Flash GBA cartridges use a compatible interface across the product line.

Unlocking

To unlock the cartridge&#039;s interface, the following writes must be issued:

	*  0x9FE0000 = 0xD200
	*  0x8000000 = 0x1500</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflash5&amp;rev=1731019803&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-07T22:50:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ezflash5</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflash5&amp;rev=1731019803&amp;do=diff</link>
        <description>EZ-Flash V programming

Commands

Card: Read with prefetch (B7 aa bb cc dd nn 00 00)

	*  First, B7aaaaaaaa010000 is sent - returns 4 bytes. The final byte may be FF or 00 - if it&#039;s 00, prefetch is complete.
	*  Next, if prefetch was not complete, B7aaaaaaaa020000</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflashjr&amp;rev=1697292262&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-14T14:04:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ezflashjr</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:ezflashjr&amp;rev=1697292262&amp;do=diff</link>
        <description>EZ Flash Junior (GB/GBC) programming

Stub. For now, I&#039;ll refer you to Daid&#039;s excellent documents on the matter:

	*  General (terminology, boot process)
	*  Protocol (memory-mapped I/O, SRAM layout)
	*  Sequence (boot sequence notes)</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:gbamp&amp;rev=1697302730&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-14T16:58:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>gbamp</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:gbamp&amp;rev=1697302730&amp;do=diff</link>
        <description>GBA Movie Player (GBA) programming

TODO

CompactFlash Interface

The address bits map onto IDE bus pins as follows:
 Address bit  Pin  23  1 - access CompactFlash interface  22  Chip Select 0/1  18  DA2  17  DA1  16  DA0</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:gmp_z003&amp;rev=1731056338&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-08T08:58:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>gmp_z003</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:gmp_z003&amp;rev=1731056338&amp;do=diff</link>
        <description>M3i Zero (GMP-Z003) programming

Sourced from &lt;https://github.com/handsomematt/gmp-z003&gt;

Commands

Card: Info (B0 00 00 00 00 00 00 00)

Should be 0x5AA5.

Card: Write (C5 aa bb cc dd tt 00 00)

Receives 512 bytes.

	*  aabbccdd - offset in number of words (?)
	*  tt - type:
		*  0x00 - SD card access (?)</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:m3ds&amp;rev=1697484398&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-16T19:26:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>m3ds</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:m3ds&amp;rev=1697484398&amp;do=diff</link>
        <description>M3DS Real (NDS) programming

Original research provided mostly by lifehackerhansol.

Control flags

	*  KEY1 gap1 length: 0, 256 for SD write and/or multi-sector commands.
	*  KEY1 gap2 length: 24
	*  KEY2 encryption: Enabled for data and commands
	*</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:mkr6&amp;rev=1731328850&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-11T12:40:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mkr6</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:mkr6&amp;rev=1731328850&amp;do=diff</link>
        <description>NeoFlash MK6/R6 (NDS) programming

SPI commands

Read response (9F FF FF FF)

Responds with a dummy byte, then three response bytes.

Lock? (FE FD FB F5)

Unlock? (FE FD FB F7)

Mode: accelerometer (DS Motion Card) (FE FD FB F8)

Mode: 4kbit EEPROM (FE FD FB F9)</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:nds_benchmarks&amp;rev=1731367664&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-11T23:27:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nds_benchmarks</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:nds_benchmarks&amp;rev=1731367664&amp;do=diff</link>
        <description>DS flashcart benchmarks

Tested using default settings for each benchmark, random reads/writes, unless otherwise specified. In particular, this means that the file seeking cache is enabled by default on BlocksDS, which requires explicit opt-in from the homebrew program.</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:r4ds&amp;rev=1697468637&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-16T15:03:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>r4ds</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:r4ds&amp;rev=1697468637&amp;do=diff</link>
        <description>R4 (NDS) programming

Original research provided mostly by lifehackerhansol.

Control flags

	*  KEY1 gap1 length: 0
	*  KEY1 gap2 length: 24
	*  KEY2 encryption: Enabled for data and commands
	*  Transfer clock rate: 6.7 MHz
	*  Data block size: 4 bytes (512 bytes for SD commands)</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:scgba&amp;rev=1753526406&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-26T10:40:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>scgba</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:scgba&amp;rev=1753526406&amp;do=diff</link>
        <description>SuperCard (GBA) programming

All models

SC_MODE (0x9FFFFFE)

To unlock this register, one must write 0xA55A to it first.


15       bit       0
 ---- ---- ---- ----
 ???? ???? ???? ?wsm
                 |||
                 ||+- Memory mapped: 0 = internal flash, 1 = PSRAM
                 |+-- CF/SD card interface mapped: 0 = No, 1 = Yes
                 +--- PSRAM write enabled: 0 = no, 1 = yes
                      SRAM bank: 0 = first 64 KiB, 1 = second 64 KiB</description>
    </item>
    <item rdf:about="https://wiki.asie.pl/doku.php?id=notes:flashcart:ws_flash_masta&amp;rev=1749989245&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-15T12:07:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ws_flash_masta</title>
        <link>https://wiki.asie.pl/doku.php?id=notes:flashcart:ws_flash_masta&amp;rev=1749989245&amp;do=diff</link>
        <description>WS Flash Masta (WS/WSC) programming

The flashcart uses (rev4) or emulates (rev5+) a 2003 mapper. Most of its functionality
(banking, flash access via SRAM) is provided.

	*  JS28F00AM29EWHA (1Gbit NOR flash, accessible as 16 64Mbit slots)
	*  4Mbit SRAM</description>
    </item>
</rdf:RDF>
