User Tools

Site Tools


notes:flashcart:r4ds

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:flashcart:r4ds [2023/10/16 14:44] asienotes:flashcart:r4ds [2023/10/16 15:03] (current) asie
Line 1: Line 1:
 ====== R4 (NDS) programming ====== ====== R4 (NDS) programming ======
  
-Original research provided mostly by lifehackerhansol.+Original research provided mostly [[https://github.com/DS-Homebrew/DLDI/wiki/Original-R4-and-M3-Simply|by lifehackerhansol]].
  
 ===== Control flags ===== ===== Control flags =====
Line 33: Line 33:
                              | ||          1 - R4 Revolution for DS                              | ||          1 - R4 Revolution for DS
                              +-++-------- Sub-language:                              +-++-------- Sub-language:
-                                           0? - Simplified Chinese +                                           2:2  - French 
-                                           1? - Traditional Chinese +                                           2: - Korean 
-                                            - French +                                           3:0? - Simplified Chinese 
-                                            - Korean+                                           3:1? - Traditional Chinese
 </code> </code>
  
Line 72: Line 72:
 SD read data, but using the "ROM" FAT entry table. SD read data, but using the "ROM" FAT entry table.
  
-==== Get card ID (B8 00 00 00 00 00 00 00) ====+==== Get card ID (B8 00 00 00 00 00 00 00) ==== 
 + 
 +[[https://github.com/DS-Homebrew/DLDI/wiki/Original-R4-and-M3-Simply#original-r4--m3-ds-simply|Quoting lifehackerhansol]]: 
 + 
 +> Card ID commands are not patched and use the timings from the retail game ROM header, but without L1 latency (that's what the SDK does). Those can be as fast as a single cycle of L2 latency, depending on the game.
  
 ==== SD read request (B9 sd sc sb sa 00 00 00) ==== ==== SD read request (B9 sd sc sb sa 00 00 00) ====
Line 78: Line 82:
   * (MSB) sd sc sb sa (LSB) - sector address, in bytes   * (MSB) sd sc sb sa (LSB) - sector address, in bytes
  
-Returns zero when data is ready to access, non-zero if ongoing.+Returns ''0x00000000'' when data is ready to access, ''0x00000001'' if ongoing.
  
 ==== SD read data (BA 00 00 00 00 00 00 00) ==== ==== SD read data (BA 00 00 00 00 00 00 00) ====
Line 94: Line 98:
   * (MSB) sd sc sb sa (LSB) - sector address, in bytes   * (MSB) sd sc sb sa (LSB) - sector address, in bytes
  
-Returns zero if donenon-zero if ongoing.+Returns ''0x00000000'' when data is ready to access''0x00000001'' if ongoing.
  
 ==== Save write start (BD sd sc sb sa 00 00 00) ==== ==== Save write start (BD sd sc sb sa 00 00 00) ====
notes/flashcart/r4ds.1697467454.txt.gz · Last modified: 2023/10/16 14:44 by asie