7.9 KiB
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 (only when powered from USB).
id | name | type | description |
---|---|---|---|
0 |
BOOTLOADER_SWITCH | bool | Switches between bootloader and ROM mapping on PI address 0x1000_0000 |
1 |
ROM_WRITE_ENABLE | bool | Enables write access to ROM section |
2 |
ROM_SHADOW_ENABLE | bool | Enables overlapping last 128 kiB of ROM section by flash memory |
3 |
DD_MODE | enum | Enables 64DD register/IPL access |
4 |
ISV_ADDRESS | dword | Sets IS-Viewer 64 watch address |
5 |
BOOT_MODE | enum | Controls bootloader behavior |
6 |
SAVE_TYPE | enum | Sets supported save type |
7 |
CIC_SEED | word | Sets CIC seed value passed by bootloader to IPL3 |
8 |
TV_TYPE | enum | Sets TV type value passed by bootloader to IPL3 |
9 |
DD_SD_ENABLE | bool | Controls 64DD block request passing to USB or SD card |
10 |
DD_DRIVE_TYPE | enum | Sets 64DD drive type |
11 |
DD_DISK_STATE | enum | Sets current 64DD disk state |
12 |
BUTTON_STATE | bool | Gets button press value |
13 |
BUTTON_MODE | enum | Sets button press behavior |
14 |
ROM_EXTENDED_ENABLE | bool | Enables access to extended ROM memory located in flash |
0
: BOOTLOADER_SWITCH
type: bool | default: 1
0
- ROM data is mapped on PI address0x1000_0000
1
- Bootloader data is mapped on PI address0x1000_0000
Used internally to remap ROM data after bootloader is loaded.
1
: ROM_WRITE_ENABLE
type: bool | default: 0
0
- ROM write access is disabled1
- ROM write access is enabled
Used by homebrew applications to freely replace data in SDRAM from N64 side.
2
: ROM_SHADOW_ENABLE
type: bool | default: 0
0
- Last 128 kiB of ROM section is mapped to SDRAM1
- Last 128 kiB of ROM section is mapped to flash
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 for more information.
3
: DD_MODE
type: enum | default: 0
0
- 64DD support is disabled1
- 64DD registers are mapped on PI address space2
- 64DD IPL is mapped on PI address space3
- Both 64DD registers and IPL are mapped on PI address space
Use this config for setting level of 64DD emulation.
4
: ISV_ADDRESS
type: dword | default: 0x0000_0000
0x0000_0000
- IS-Viewer 64 is disabled0x0000_0004
to0x03FF_FFFC
- IS-Viewer 64 is enabled
Sets IS-Viewer 64 listening address starting from ROM base.
For most applications this offset is fixed at 0x03FF_0000
.
Address must be 4-byte aligned. Command will return error when setting incorrect value.
Small number of games have support for changing this address (for example debug builds of TLoZ: MM).
5
: BOOT_MODE
type: enum | default: 0
0
- Load menu from SD card1
- Attempt to boot application loaded in ROM section2
- Attempt to boot 64DD IPL3
- Direct mode, skips bootloader entirely
Use this setting to change boot behavior.
Value 3
(direct boot) will always keep BOOTLOADER_SWITCH option disabled.
6
: SAVE_TYPE
type: enum | default: 0
0
- All saves are disabled1
- EEPROM 4 kib save is enabled2
- EEPROM 16 kib save is enabled3
- SRAM 256 kib save is enabled4
- FlashRAM 1 Mib save is enabled5
- SRAM 768 kib save is enabled
Use this setting for selecting save type that will be emulated. Only one save type can be enabled. Any successful write to this config will disable automatic save writeback to SD card when previously enabled.
7
: CIC_SEED
type: word | default: 0xFFFF
0x0000
to0x01FF
- Specified CIC seed/version value will be used0xFFFF
- CIC seed/version value will be autodetected
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).
8
: TV_TYPE
type: enum | default: 3
0
- PAL TV type will be used1
- NTSC TV type will be used2
- MPAL TV type will be used3
- TV type will be autodetected
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).
9
: DD_SD_ENABLE
type: bool | default: 0
0
- 64DD block requests are passed to USB interface1
- 64DD block requests are passed to SD card
Use this setting to change where 64DD emulation will be passing incoming block R/W requests. For more information about 64DD and USB request passing check sc64.py implementation.
10
: DD_DRIVE_TYPE
type: enum | default: 0
0
- Retail 64DD drive type ID is selected1
- Development 64DD drive type ID is selected
Use this setting to change 64DD drive type emulation.
11
: DD_DISK_STATE
type: enum | default: 0
0
- 64DD disk state is set to ejected1
- 64DD disk state is set to inserted2
- 64DD disk state is set to changed
Use this setting to change 64DD current disk state.
12
: BUTTON_STATE
type: bool | default: x
| read-only
0
- Button is not pressed1
- Button is pressed
This is special read-only option for getting button press state. Setting this option will return error.
13
: BUTTON_MODE
type: enum | default: 0
0
- Button press does nothing1
- Button press raises N64 interrupt2
- Button press sends USB packet3
- Button press changes 64DD disk
Use this setting to change button behavior. Regardless of this setting button state can always be checked by reading BUTTON_STATE config.
14
: ROM_EXTENDED_ENABLE
type: bool | default: 0
0
- ROM extended PI access is disabled1
- ROM extended PI access is enabled
Use this setting to enable PI access for extended ROM data located inside flash memory.