7.7 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.
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.
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.
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.
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.