Skip to content

Instantly share code, notes, and snippets.

@angelsl
Last active November 22, 2017 18:11
Show Gist options
  • Save angelsl/d6928fa45734303cb19805738003e82e to your computer and use it in GitHub Desktop.
Save angelsl/d6928fa45734303cb19805738003e82e to your computer and use it in GitHub Desktop.
Ace3DS+/r4isdhc.com.cn ROM map

R4isdhc.com.cn SPI flash layout

  • [0x8000, 0x9000): Blowfish S boxes
  • [0x9000, 0x9048): Blowfish P-array, but the 18 dwords are in reverse order
  • [0x9050, 0x9088): Some header: "FLASH GEN V4.0" "By KEN" (hi, Ken!) "2013/8/28"
  • [0x90C0, 0x9100): ?
  • [0xA000, 0x12E000): Deep Labyrinth stuff, see ROM maps below
  • [0x1FF000, 0x200000): Deep Labyrinth [0x8000, 0x8200) repeating

Remaining regions are either 00, FF, or likely trash


  • 0xA000: ROM header
  • 0xFE00: FIRM goes here (826 KiB contiguous)

ROM => flash map on initial read

ROM [0x0, 0x2000) => Flash [0xA000, 0xC000)
ROM [0x2000, 0x4000) => zeroes
ROM [0x4000, 0xD6600) => Flash [0xC000, 0xDE600)
ROM [0xD6600, 0xD7600) => zeroes
ROM [0xD7600, 0xD8C00) => Flash [0xDE600, 0xDFC00)
ROM [0xD8C00, 0xD9C00) => zeroes
ROM [0xD9C00, 0xDD400) => Flash [0xDFC00, 0xE3400)
ROM [0xDD400, 0xDE400) => zeroes
ROM [0xDE400, 0xDF600) => Flash [0xE3400, 0xE4600)
ROM [0xDF600, 0xE2000) => Flash [0x12A600, 0x12D000)
ROM [0xE2000, 0x11E000) => Flash [0xE7000, 0x123000)
ROM [0x11E000, 0x162000) => Flash 0x10000 repeating
ROM [0x162000, 0x164400) => Flash [0x122000, 0x124400)
ROM [0x164400, 0x167400) => 0xFF
ROM [0x167400, 0x16A800) => Flash [0x124400, 0x127800)
ROM [0x16A800, 0x16E800) => 0xFF
ROM [0x16E800, 0x170000) => Flash [0x127800, 0x129000)
ROM [0x170000, 0x1FFF000) => Flash 0x10000 repeating
ROM [0x1FFF000, 0x2000000) => Flash [0x129000, 0x12A000)

ROM => Flash map on 2nd read

(overlay 0 is changed)

ROM [0x0, 0x2000) => Flash [0xA000, 0xC000)
ROM [0x2000, 0x4000) => zeroes
ROM [0x4000, 0xD6600) => Flash [0xC000, 0xDE600)
ROM [0xD6600, 0xD7600) => zeroes
ROM [0xD7600, 0xD8C00) => Flash [0xDE600, 0xDFC00)
ROM [0xD8C00, 0xD9C00) => zeroes
ROM [0xD9C00, 0xDD400) => Flash [0xDFC00, 0xE3400)
ROM [0xDD400, 0xDE400) => zeroes
ROM [0xDE400, 0x11E000) => Flash [0xE3400, 0x123000) # ROM [0xDF600, 0xE2000) changed
ROM [0x11E000, 0x162000) => Flash 0x10000 repeating
ROM [0x162000, 0x164400) => Flash [0x122000, 0x124400)
ROM [0x164400, 0x167400) => 0xFF
ROM [0x167400, 0x16A800) => Flash [0x124400, 0x127800)
ROM [0x16A800, 0x16E800) => 0xFF
ROM [0x16E800, 0x170000) => Flash [0x127800, 0x129000)
ROM [0x170000, 0x1FFF000) => Flash 0x10000 repeating
ROM [0x1FFF000, 0x2000000) => Flash [0x129000, 0x12A000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment