diff --git a/.github/sc64_v2_block_diagram.svg b/.github/sc64_v2_block_diagram.svg
deleted file mode 100644
index 35515f2..0000000
--- a/.github/sc64_v2_block_diagram.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/README.md b/README.md
index 52aa327..451a0f0 100644
--- a/README.md
+++ b/README.md
@@ -5,39 +5,42 @@
---
## Features
- - 64 MB SDRAM memory for game and save data
- - 16 MB FLASH memory for bootloader and extended game data
- - 8 kB on-chip buffer for general use
- - 25 MB/s peak transfer rate USB interface for data upload/download and debug functionality
- - 25 MB/s peak transfer rate SD card interface
+ - 64 MiB SDRAM memory for game and save data
+ - 16 MiB FLASH memory for bootloader and extended game data
+ - 8 kiB on-chip buffer for general use
+ - ~23.8 MiB/s peak transfer rate USB interface for data upload/download and debug functionality
+ - ~23.8 MiB/s peak transfer rate SD card interface
- EEPROM, SRAM and FlashRAM save types with automatic writeback to SD card
- Battery backed real time clock (RTC)
- Status LED and button for general use
- 64DD add-on emulation
- IS-Viewer 64 debug interface
- Software and firmware update via USB interface
- - N64 bootloader with support for IPL2 registers spoofing and loading menu from SD card
+ - N64 bootloader with support for IPL3 registers spoofing and loading menu from SD card
- Enhanced [UltraCIC_C](https://github.com/jago85/UltraCIC_C) emulation with automatic region switching and programmable seed/checksum values
- - PC app for communicating with flashcart (game/save data upload/download, feature enable control and debug console)
+ - PC app for communicating with flashcart (game/save data upload/download, feature enable control and debug terminal)
- [UNFLoader](https://github.com/buu342/N64-UNFLoader) support
+ - 3D printable plastic shell
---
## Documentation
-- [Memory map](./docs/memory_map.md)
-- [Config options](./docs/config_options.md)
-- [N64 commands](./docs/n64_commands.md)
-- [USB commands](./docs/usb_commands.md)
+- [Memory map](./docs/01_memory_map.md)
+- [USB commands](./docs/02_usb_commands.md)
+- [N64 commands](./docs/03_n64_commands.md)
+- [Config options](./docs/04_config_options.md)
+- [FW/SW building](./docs/05_fw_sw_building.md)
+- [Manufacturing guidelines](./docs/06_manufacturing_guidelines.md)
---
## High-level flashcart block diagram
-[](.github/sc64_v2_block_diagram.svg)
+[](assets/sc64_v2_block_diagram.svg)
---
## Finished sample
-[](.github/sc64_v2_example.jpg)
+[](assets/sc64_v2_example.jpg)
diff --git a/assets/sc64_v2_block_diagram.svg b/assets/sc64_v2_block_diagram.svg
new file mode 100644
index 0000000..6aaa40b
--- /dev/null
+++ b/assets/sc64_v2_block_diagram.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.github/sc64_v2_example.jpg b/assets/sc64_v2_example.jpg
similarity index 100%
rename from .github/sc64_v2_example.jpg
rename to assets/sc64_v2_example.jpg
diff --git a/docs/memory_map.md b/docs/01_memory_map.md
similarity index 95%
rename from docs/memory_map.md
rename to docs/01_memory_map.md
index 61796d2..d00a635 100644
--- a/docs/memory_map.md
+++ b/docs/01_memory_map.md
@@ -3,10 +3,10 @@
- [Address decoding limitations](#address-decoding-limitations)
- [Flash mapped sections](#flash-mapped-sections)
- [SC64 registers](#sc64-registers)
- - [**STATUS/COMMAND**](#statuscommand)
- - [**DATA0** and **DATA1**](#data0-and-data1)
- - [**VERSION**](#version)
- - [**KEY**](#key)
+ - [`0x1FFF_0000`: **STATUS/COMMAND**](#0x1fff_0000-statuscommand)
+ - [`0x1FFF_0004`: **DATA0** and `0x1FFF_0008`: **DATA1**](#0x1fff_0004-data0-and-0x1fff_0008-data1)
+ - [`0x1FFF_000C`: **VERSION**](#0x1fff_000c-version)
+ - [`0x1FFF_0010`: **KEY**](#0x1fff_0010-key)
- [Command execution flow](#command-execution-flow)
---
@@ -97,7 +97,7 @@ Support for interrupts is provided but currently no command relies on it, 64DD I
---
-#### **STATUS/COMMAND**
+#### `0x1FFF_0000`: **STATUS/COMMAND**
| name | bits | access | meaning |
| ------------- | ------ | ------ | ----------------------------------------------------- |
@@ -111,7 +111,7 @@ Note: Write to this register raises `CMD_BUSY` bit and clears `CMD_ERROR` bit. F
---
-#### **DATA0** and **DATA1**
+#### `0x1FFF_0004`: **DATA0** and `0x1FFF_0008`: **DATA1**
| name | bits | access | meaning |
| --------- | ------ | ------ | ---------------------------------- |
@@ -121,7 +121,7 @@ Note: Result is valid only when command has executed and `CMD_BUSY` bit is reset
---
-#### **VERSION**
+#### `0x1FFF_000C`: **VERSION**
| name | bits | access | meaning |
| --------- | ------ | ------ | --------------------------------------------- |
@@ -131,7 +131,7 @@ Note: Writing any value to this register will clear pending flashcart interrupt.
---
-#### **KEY**
+#### `0x1FFF_0010`: **KEY**
| name | bits | access | meaning |
| ----- | ------ | ------ | ------------------------------------------ |
diff --git a/docs/usb_commands.md b/docs/02_usb_commands.md
similarity index 100%
rename from docs/usb_commands.md
rename to docs/02_usb_commands.md
diff --git a/docs/n64_commands.md b/docs/03_n64_commands.md
similarity index 100%
rename from docs/n64_commands.md
rename to docs/03_n64_commands.md
diff --git a/docs/config_options.md b/docs/04_config_options.md
similarity index 96%
rename from docs/config_options.md
rename to docs/04_config_options.md
index 44fd2a9..1ab88e6 100644
--- a/docs/config_options.md
+++ b/docs/04_config_options.md
@@ -20,7 +20,7 @@
## Supported config options
SC64 provides simple flashcart configuration by exposing various options settable by both USB and N64 side.
-All options other than **BOOTLOADER_SWITCH** are preserved on console reset or power cycle.
+All options other than **BOOTLOADER_SWITCH** are preserved on console reset or power cycle (only when powered from USB).
| id | name | type | description |
| ---- | ----------------------- | ------- | ----------------------------------------------------------------------- |
@@ -73,7 +73,7 @@ type: *bool* | default: `0`
Last 128 kiB of SDRAM is shared between ROM data and SRAM/FlashRAM save data.
Use this setting for applications requiring all of ROM section space including last 128 kiB.
-Check [PI memory map](./memory_map.md#pi-memory-map) for more information.
+Check [PI memory map](./01_memory_map.md#pi-memory-map) for more information.
---
@@ -143,6 +143,7 @@ type: *word* | default: `0xFFFF`
Use this setting to force specific CIC seed/version.
Lower 8 bits represents CIC seed and 9th bit represents CIC version.
By setting value `0xFFFF` bootloader will try to guess needed values from loaded ROM IPL3.
+This setting is not used when **BOOT_MODE** is set to `3` (direct boot).
---
@@ -157,6 +158,7 @@ type: *enum* | default: `3`
Use this setting to force specific TV type.
By setting value `3` bootloader will try to guess TV type from loaded ROM header.
+This setting is not used when **BOOT_MODE** is set to `3` (direct boot).
---
diff --git a/docs/05_fw_sw_building.md b/docs/05_fw_sw_building.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/06_manufacturing_guidelines.md b/docs/06_manufacturing_guidelines.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/README.md b/docs/README.md
index 67664e6..74276ef 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -4,7 +4,11 @@
---
-- [Memory map](./memory_map.md)
-- [Config options](./config_options.md)
-- [N64 commands](./n64_commands.md)
-- [USB commands](./usb_commands.md)
+## Documentation
+
+- [Memory map](./01_memory_map.md)
+- [USB commands](./02_usb_commands.md)
+- [N64 commands](./03_n64_commands.md)
+- [Config options](./04_config_options.md)
+- [FW/SW building](./05_fw_sw_building.md)
+- [Manufacturing guidelines](./06_manufacturing_guidelines.md)