SummerCart64/sw/bootloader/src/font.c
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

104 lines
5.6 KiB
C

// Manually converted font "Dogica" from https://www.dafont.com/dogica.font
#include "font.h"
const uint8_t font_data[96][FONT_CHAR_BYTES] = {
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
{ 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, },
{ 0x00, 0x6C, 0x6C, 0x36, 0x00, 0x00, 0x00, 0x00, },
{ 0x00, 0x6C, 0xFE, 0x6C, 0x6C, 0xFE, 0x6C, 0x00, },
{ 0x00, 0x7C, 0xD6, 0x16, 0x7C, 0xD0, 0xD6, 0x7C, },
{ 0x62, 0x35, 0x37, 0x1A, 0x58, 0xAC, 0xEC, 0x46, },
{ 0x1C, 0x36, 0x36, 0x1C, 0xF6, 0x66, 0xFC, 0x00, },
{ 0x00, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, },
{ 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, },
{ 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x00, },
{ 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00, },
{ 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, },
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x18, },
{ 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, },
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, },
{ 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0C, 0x0C, },
{ 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, },
{ 0x18, 0x1E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, },
{ 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00, },
{ 0x3E, 0x60, 0x60, 0x3C, 0x60, 0x60, 0x3E, 0x00, },
{ 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00, },
{ 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00, },
{ 0x3C, 0x66, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00, },
{ 0x7E, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x00, },
{ 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00, },
{ 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00, },
{ 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, },
{ 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x30, 0x18, },
{ 0x00, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x00, 0x00, },
{ 0x00, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x00, 0x00, },
{ 0x00, 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0x00, },
{ 0x3C, 0x66, 0x60, 0x38, 0x0C, 0x00, 0x18, 0x00, },
{ 0x3E, 0x63, 0x7F, 0x7B, 0x3F, 0xC3, 0x7E, 0x00, },
{ 0x3C, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00, },
{ 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00, },
{ 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00, },
{ 0x3F, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, },
{ 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00, },
{ 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00, },
{ 0x7C, 0x06, 0x06, 0x76, 0x66, 0x66, 0x7C, 0x00, },
{ 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, },
{ 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, },
{ 0x3E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x00, },
{ 0x66, 0x36, 0x1E, 0x1E, 0x36, 0x36, 0x66, 0x00, },
{ 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, },
{ 0xC6, 0xC6, 0xEE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, },
{ 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x66, 0x00, },
{ 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, },
{ 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00, },
{ 0x3C, 0x66, 0x66, 0x66, 0x6E, 0x36, 0x7C, 0x00, },
{ 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00, },
{ 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00, },
{ 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, },
{ 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, },
{ 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x18, 0x00, },
{ 0xC3, 0xC3, 0xDB, 0xDB, 0xDB, 0xFF, 0x66, 0x00, },
{ 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00, },
{ 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00, },
{ 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00, },
{ 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x00, },
{ 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, },
{ 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x00, },
{ 0x00, 0x38, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, },
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, },
{ 0x1C, 0x63, 0x63, 0x1C, 0x00, 0x00, 0x00, 0x00, },
{ 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x66, 0x7C, 0x00, },
{ 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00, },
{ 0x00, 0x3C, 0x66, 0x06, 0x06, 0x06, 0x7C, 0x00, },
{ 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00, },
{ 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x06, 0x7C, 0x00, },
{ 0x78, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00, },
{ 0x00, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C, },
{ 0x06, 0x06, 0x3E, 0x6E, 0x66, 0x66, 0x66, 0x00, },
{ 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00, },
{ 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0C, },
{ 0x00, 0x66, 0x36, 0x1E, 0x1E, 0x36, 0x66, 0x00, },
{ 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x00, },
{ 0x00, 0x7E, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x00, },
{ 0x00, 0x38, 0x6E, 0x66, 0x66, 0x66, 0x66, 0x00, },
{ 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, },
{ 0x00, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x06, },
{ 0x00, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, },
{ 0x00, 0x78, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, },
{ 0x00, 0x3C, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00, },
{ 0x0C, 0x0C, 0x7C, 0x0C, 0x0C, 0x0C, 0x78, 0x00, },
{ 0x00, 0x66, 0x66, 0x66, 0x66, 0x76, 0x7C, 0x00, },
{ 0x00, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x18, 0x00, },
{ 0x00, 0xC0, 0xDB, 0xDB, 0xDB, 0xDB, 0x7E, 0x00, },
{ 0x00, 0x66, 0x3C, 0x18, 0x18, 0x3C, 0x66, 0x00, },
{ 0x00, 0x6C, 0x6C, 0x6C, 0x38, 0x30, 0x1C, 0x00, },
{ 0x00, 0x7C, 0x60, 0x30, 0x18, 0x0C, 0x7C, 0x00, },
{ 0x30, 0x58, 0x08, 0x0C, 0x0C, 0x08, 0x58, 0x30, },
{ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, },
{ 0x18, 0x34, 0x20, 0x60, 0x60, 0x20, 0x34, 0x18, },
{ 0x00, 0x00, 0x00, 0xDC, 0x76, 0x00, 0x00, 0x00, },
{ 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, },
};