SummerCart64/docs/02_n64_commands.md
Mateusz Faderewski 421d0438f3
[SC64][FW][SW] Controller rewrite to remove task subsystem + minor bug fixes (#64)
This PR completely removes `task.c / task.h` from `sw/controller` STM32
code.
Additionally, these changes were implemented:
- Updated IPL3
- Added new diagnostic data (voltage and temperature) readout commands
for USB and N64
- Fixed some issues with FlashRAM save type
- Joybus timings were relaxed to accommodate communication with
unsynchronized master controller (like _Datel Game Killer_, thanks
@RWeick)
- N64 embedded test program now waits for release of button press to
proceed
- Fixed issue where, in rare circumstances, I2C peripheral in STM32
would get locked-up on power-up
- LED blinking behavior on SD card access was changed
- LED blink duration on save writeback has been extended
- Minor fixes through the entire of hardware abstraction layer for STM32
code
- Primer now correctly detects issues with I2C bus during first time
programming
- `primer.py` script gives more meaningful error messages
- Fixed bug where RTC time was always written on N64FlashcartMenu boot
- sc64deployer now displays "Diagnostic data" instead of "MCU stack
usage"
2024-01-29 14:23:18 +01:00

4.0 KiB


N64 commands

id name arg0 arg1 rsp0 rsp1 description
v IDENTIFIER_GET --- --- identifier --- Get flashcart identifier SCv2
V VERSION_GET --- --- major/minor revision Get flashcart firmware version
c CONFIG_GET config_id --- --- current_value Get config option
C CONFIG_SET config_id new_value --- previous_value Set config option and get previous value
a SETTING_GET setting_id --- --- current_value Get persistent setting option
A SETTING_SET setting_id new_value --- --- Set persistent setting option
t TIME_GET --- --- time_0 time_1 Get current RTC value
T TIME_SET time_0 time_1 --- --- Set new RTC value
m USB_READ pi_address length --- --- Receive data from USB to flashcart
M USB_WRITE pi_address length/type --- --- Send data from from flashcart to USB
u USB_READ_STATUS --- --- read_status/type length Get USB read status and type/length
U USB_WRITE_STATUS --- --- write_status --- Get USB write status
i SD_CARD_OP pi_address operation --- return_data Perform special operation on SD card
I SD_SECTOR_SET sector --- --- --- Set starting sector for next SD card R/W operation
s SD_READ pi_address sector_count --- --- Read sectors from SD card to flashcart
S SD_WRITE pi_address sector_count --- --- Write sectors from flashcart to SD card
D DISK_MAPPING_SET pi_address table_size --- --- Set 64DD disk mapping for SD mode
w WRITEBACK_PENDING --- --- pending_status --- Get save writeback status (is write queued to the SD card)
W WRITEBACK_SD_INFO pi_address --- --- --- Load writeback SD sector table and enable it
K FLASH_PROGRAM pi_address length --- --- Program flash with bytes loaded into data buffer
p FLASH_WAIT_BUSY wait --- erase_block_size --- Wait until flash ready / get block erase size
P FLASH_ERASE_BLOCK pi_address --- --- --- Start flash block erase
% DIAGNOSTIC_GET diagnostic_id --- --- value Get diagnostic data