mirror of
https://github.com/rvtr/SLOT-1-Boot-Menu.git
synced 2025-06-18 12:25:32 -04:00
Add program
This commit is contained in:
parent
cfdc4398cd
commit
2e7776907a
33
Makefile
Normal file
33
Makefile
Normal file
@ -0,0 +1,33 @@
|
||||
#! make -f
|
||||
#---------------------------------------------------------------------------
|
||||
# Project: SLOT-1 Boot Menu
|
||||
# File: Makefile
|
||||
#
|
||||
# This source code is derived from "os_jump" in the TwlSDK
|
||||
#
|
||||
# $Date:: 2024-02-01#$
|
||||
# $Author: Lillian Skinner (rmc) $
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# SUBDIRS = banner \
|
||||
|
||||
TARGET_PLATFORM := TWL
|
||||
|
||||
TWL_ARCHGEN = LIMITED
|
||||
|
||||
TARGET_BIN = SLOT1_Booter.srl
|
||||
|
||||
SRCS = main.c screen.c font.c
|
||||
|
||||
ROM_SPEC = specfile.rsf
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||
include $(TWLSDK_ROOT)/build/buildtools/commondefs.gx.demolib
|
||||
|
||||
# MAKEROM = $(TWLSDK_ROOT)/tools/bin/makerom.TWL.secure.exe
|
||||
|
||||
do-build: $(TARGETS)
|
||||
|
||||
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
32
banner/Makefile
Normal file
32
banner/Makefile
Normal file
@ -0,0 +1,32 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Project: SLOT-1 Boot Menu
|
||||
# File: Makefile (banner)
|
||||
#
|
||||
# This source code is derived from "os_jump" in the TwlSDK
|
||||
#
|
||||
# $Date:: 2024-02-01#$
|
||||
# $Author: Lillian Skinner (rmc) $
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
TARGET_PLATFORM = TWL
|
||||
|
||||
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||
|
||||
BANNER_ICON = banner.bmp
|
||||
BANNER_SPEC = banner.bsf
|
||||
|
||||
TARGETS = $(BANNER_SPEC:.bsf=.bnr)
|
||||
|
||||
BANNER_ICON_NAME = $(basename $(BANNER_ICON))
|
||||
BANNER_ICON_MIDDLE = $(addprefix $(BANNER_ICON_NAME), .nbfs .nbfc .nbfp)
|
||||
MAKEBANNER_FLAGS = -N $(BANNER_ICON_NAME)
|
||||
|
||||
LDIRT_CLEAN = $(TARGETS) \
|
||||
$(BANNER_ICON_MIDDLE) \
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
do-build: $(BANNER_ICON_MIDDLE) $(TARGETS)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
BIN
banner/banner.bmp
Normal file
BIN
banner/banner.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
banner/banner.bnr
Normal file
BIN
banner/banner.bnr
Normal file
Binary file not shown.
BIN
banner/banner.bsf
Normal file
BIN
banner/banner.bsf
Normal file
Binary file not shown.
31
include/font.h
Normal file
31
include/font.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: SLOT-1 Boot Menu
|
||||
File: font.h
|
||||
|
||||
This source code is derived from "os_jump" in the TwlSDK
|
||||
|
||||
$Date:: 2024-02-01#$
|
||||
$Author: Lillian Skinner (rmc) $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef FONT_H_
|
||||
#define FONT_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
#include <nitro/types.h>
|
||||
|
||||
extern const u32 d_CharData[8 * 256];
|
||||
extern const u32 d_PaletteData[8 * 16];
|
||||
|
||||
/*===========================================================================*/
|
||||
#ifdef __cplusplus
|
||||
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* FONT_H_ */
|
471
include/payload.h
Normal file
471
include/payload.h
Normal file
@ -0,0 +1,471 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: SLOT-1 Boot Menu
|
||||
File: payload.h
|
||||
|
||||
This is minitwlpayload and can be found here
|
||||
https://github.com/yellows8/dsi/tree/master/exploits/minitwlpayload
|
||||
|
||||
$Author: shutterbug2000 and zoogie $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
const static unsigned char mini_twl_payload[5520] = {
|
||||
0x01, 0x03, 0xA0, 0xE3, 0x08, 0x02, 0x80, 0xE5, 0x38, 0x10, 0x9F, 0xE5,
|
||||
0x10, 0x1F, 0x01, 0xEE, 0x00, 0x00, 0xA0, 0xE3, 0x15, 0x0F, 0x07, 0xEE,
|
||||
0x16, 0x0F, 0x07, 0xEE, 0x9A, 0x0F, 0x07, 0xEE, 0x24, 0x10, 0x9F, 0xE5,
|
||||
0x24, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1,
|
||||
0x02, 0x00, 0x00, 0x0A, 0x04, 0x30, 0x81, 0xE4, 0x02, 0x00, 0x51, 0xE1,
|
||||
0xFC, 0xFF, 0xFF, 0x1A, 0x5B, 0x00, 0x00, 0xFA, 0xFE, 0xFF, 0xFF, 0xEA,
|
||||
0x78, 0x20, 0x00, 0x00, 0x90, 0x15, 0x20, 0x02, 0x30, 0x16, 0x20, 0x02,
|
||||
0xF0, 0xB5, 0x00, 0x24, 0x80, 0x27, 0x22, 0x00, 0x01, 0x26, 0x0D, 0x4D,
|
||||
0x7F, 0x00, 0x2B, 0x88, 0x01, 0x39, 0x04, 0xD2, 0x00, 0x2C, 0x00, 0xD0,
|
||||
0x2B, 0x80, 0x10, 0x00, 0xF0, 0xBD, 0x01, 0x2B, 0x04, 0xD1, 0x03, 0x68,
|
||||
0x01, 0x3B, 0x03, 0x60, 0x1B, 0x78, 0x3B, 0x43, 0x1C, 0x00, 0x52, 0x00,
|
||||
0x34, 0x40, 0x22, 0x43, 0x12, 0x04, 0x12, 0x0C, 0x5B, 0x08, 0x34, 0x00,
|
||||
0xE8, 0xE7, 0xC0, 0x46, 0x90, 0x15, 0x20, 0x02, 0xF7, 0xB5, 0x00, 0x24,
|
||||
0x0F, 0x00, 0x25, 0x00, 0x01, 0x38, 0x01, 0x90, 0x42, 0x4E, 0x03, 0x78,
|
||||
0x33, 0x80, 0x0F, 0x23, 0x1D, 0x42, 0x00, 0xD1, 0x01, 0x24, 0xB3, 0x1C,
|
||||
0x6A, 0x00, 0xD4, 0x52, 0x04, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0xCA, 0xFF,
|
||||
0x33, 0x00, 0x6A, 0x33, 0xE8, 0x54, 0x01, 0x23, 0x83, 0x40, 0xE4, 0x18,
|
||||
0x24, 0x04, 0x01, 0x35, 0x24, 0x0C, 0x34, 0x2D, 0xE9, 0xD1, 0x01, 0x21,
|
||||
0x01, 0xA8, 0xFF, 0xF7, 0xBB, 0xFF, 0x05, 0x06, 0x2D, 0x0E, 0x00, 0x24,
|
||||
0x01, 0x2D, 0x04, 0xD1, 0x2C, 0x00, 0x12, 0xE0, 0x01, 0x34, 0x24, 0x04,
|
||||
0x24, 0x0C, 0x01, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0xAD, 0xFF, 0x00, 0x28,
|
||||
0xF6, 0xD0, 0x10, 0x2C, 0x53, 0xD0, 0x11, 0x2C, 0x19, 0xD1, 0x10, 0x21,
|
||||
0x01, 0xA8, 0xFF, 0xF7, 0xA3, 0xFF, 0x01, 0x25, 0x04, 0x00, 0x23, 0x00,
|
||||
0x3A, 0x00, 0x01, 0x3A, 0x00, 0x2D, 0x43, 0xD0, 0x01, 0x99, 0x01, 0x39,
|
||||
0x01, 0x91, 0x09, 0x78, 0x01, 0x3B, 0x1B, 0x04, 0x11, 0x70, 0x1B, 0x0C,
|
||||
0xF3, 0xD1, 0x01, 0x3C, 0x24, 0x04, 0x24, 0x0C, 0xE4, 0x43, 0x3F, 0x19,
|
||||
0xCD, 0xE7, 0x62, 0x00, 0xB3, 0x1C, 0xD3, 0x5A, 0x01, 0xA8, 0x00, 0x93,
|
||||
0x33, 0x00, 0x6A, 0x33, 0x19, 0x5D, 0xFF, 0xF7, 0x83, 0xFF, 0x00, 0x9B,
|
||||
0x1C, 0x18, 0x24, 0x04, 0x24, 0x0C, 0x01, 0x2C, 0x07, 0xD0, 0x02, 0x2C,
|
||||
0x1C, 0xD0, 0x04, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0x77, 0xFF, 0x10, 0x30,
|
||||
0x04, 0xE0, 0x02, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0x71, 0xFF, 0x30, 0x30,
|
||||
0x00, 0x04, 0x00, 0x0C, 0x42, 0x00, 0xB3, 0x1C, 0xD3, 0x5A, 0x00, 0x93,
|
||||
0x33, 0x00, 0x6A, 0x33, 0x19, 0x5C, 0x01, 0xA8, 0xFF, 0xF7, 0x64, 0xFF,
|
||||
0x00, 0x9B, 0x18, 0x18, 0x03, 0x04, 0x1B, 0x0C, 0x00, 0x93, 0xBC, 0xE7,
|
||||
0x04, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0x5A, 0xFF, 0x20, 0x30, 0xE7, 0xE7,
|
||||
0x00, 0x99, 0x51, 0x5C, 0xBC, 0xE7, 0x38, 0x00, 0xFE, 0xBD, 0xC0, 0x46,
|
||||
0x90, 0x15, 0x20, 0x02, 0xF7, 0xB5, 0xA0, 0x22, 0x58, 0x4B, 0x59, 0x4C,
|
||||
0x59, 0x48, 0xD2, 0x04, 0x13, 0x60, 0x07, 0x27, 0x23, 0x60, 0x84, 0x46,
|
||||
0x00, 0x23, 0x57, 0x4A, 0x57, 0x49, 0x08, 0x00, 0x08, 0x38, 0x0B, 0x60,
|
||||
0x03, 0x60, 0x08, 0x1F, 0x03, 0x60, 0x90, 0x1E, 0x13, 0x80, 0x03, 0x80,
|
||||
0x38, 0x00, 0x50, 0x43, 0x52, 0x4D, 0x53, 0x4E, 0x45, 0x19, 0x80, 0x19,
|
||||
0x08, 0xC5, 0x85, 0x42, 0xFC, 0xD1, 0x04, 0x32, 0x0C, 0x31, 0x62, 0x45,
|
||||
0xE9, 0xD1, 0x4F, 0x4A, 0x4F, 0x49, 0x13, 0x60, 0x4F, 0x4A, 0x13, 0x60,
|
||||
0x4F, 0x4A, 0x13, 0x70, 0x4F, 0x4A, 0x13, 0x70, 0x4F, 0x4A, 0x11, 0x80,
|
||||
0x03, 0x21, 0x4F, 0x4A, 0x11, 0x70, 0x4F, 0x4A, 0x4F, 0x49, 0x11, 0x80,
|
||||
0x4F, 0x4A, 0x50, 0x49, 0x13, 0x60, 0x01, 0x22, 0x4F, 0x4B, 0x52, 0x42,
|
||||
0x1A, 0x60, 0x4F, 0x4B, 0x0A, 0x88, 0x1A, 0x42, 0xFC, 0xD1, 0x4E, 0x4B,
|
||||
0x4E, 0x4A, 0x69, 0x46, 0x1A, 0x60, 0xA0, 0x22, 0x4D, 0x4B, 0xD2, 0x04,
|
||||
0x13, 0x60, 0x23, 0x60, 0x04, 0x23, 0x4C, 0x4D, 0x06, 0x31, 0x2B, 0x80,
|
||||
0x4B, 0x4B, 0x5A, 0x88, 0x0A, 0x80, 0x4B, 0x4A, 0x10, 0x00, 0x17, 0x88,
|
||||
0x0E, 0x88, 0xB7, 0x42, 0xFB, 0xD0, 0x1A, 0x88, 0x01, 0x32, 0x12, 0x04,
|
||||
0x12, 0x0C, 0x1A, 0x80, 0x03, 0x22, 0x2A, 0x80, 0x5A, 0x88, 0x0A, 0x80,
|
||||
0x05, 0x88, 0x0A, 0x88, 0x95, 0x42, 0xFB, 0xD0, 0x1A, 0x88, 0x0F, 0x21,
|
||||
0x01, 0x32, 0x12, 0x04, 0x12, 0x0C, 0x1A, 0x80, 0x3F, 0x4A, 0x15, 0x00,
|
||||
0x13, 0x88, 0x0B, 0x40, 0x01, 0x2B, 0xFB, 0xD1, 0xA0, 0x22, 0x3D, 0x4B,
|
||||
0xD2, 0x04, 0x13, 0x60, 0x23, 0x60, 0x80, 0x23, 0x3B, 0x4F, 0x3C, 0x4E,
|
||||
0x39, 0x00, 0x33, 0x70, 0x3B, 0x48, 0xFF, 0xF7, 0xF7, 0xFE, 0x3B, 0x4B,
|
||||
0x39, 0x1A, 0xCA, 0x18, 0x40, 0x18, 0x57, 0x1A, 0x43, 0x1A, 0x00, 0x29,
|
||||
0x2B, 0xD1, 0x82, 0x23, 0x33, 0x70, 0x8E, 0x23, 0x36, 0x4A, 0x9B, 0x04,
|
||||
0x1A, 0x60, 0xC0, 0x22, 0x35, 0x4B, 0xD2, 0x04, 0x1A, 0x60, 0xF0, 0x23,
|
||||
0xA0, 0x22, 0x5B, 0x00, 0xD2, 0x04, 0x13, 0x60, 0x84, 0x22, 0x23, 0x60,
|
||||
0x29, 0x88, 0x31, 0x4B, 0x92, 0x01, 0x19, 0x40, 0x0A, 0x43, 0x2A, 0x80,
|
||||
0x0F, 0x22, 0x29, 0x88, 0x11, 0x42, 0xFC, 0xD1, 0x2A, 0x88, 0x1A, 0x40,
|
||||
0x80, 0x23, 0x9B, 0x01, 0x13, 0x43, 0xA0, 0x22, 0x2B, 0x80, 0x2A, 0x4B,
|
||||
0xD2, 0x04, 0x13, 0x60, 0x23, 0x60, 0x29, 0x4A, 0x29, 0x4B, 0x1A, 0x60,
|
||||
0x29, 0x4A, 0x13, 0x60, 0x98, 0x47, 0x1B, 0x88, 0x02, 0x39, 0x3B, 0x80,
|
||||
0xCB, 0xE7, 0xC0, 0x46, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x05,
|
||||
0x12, 0x01, 0x00, 0x04, 0x02, 0x01, 0x00, 0x04, 0xB8, 0x00, 0x00, 0x04,
|
||||
0xF6, 0x39, 0x00, 0xE8, 0x12, 0x3A, 0x00, 0xE8, 0x40, 0x02, 0x00, 0x04,
|
||||
0x0F, 0x82, 0xFF, 0xFF, 0x44, 0x02, 0x00, 0x04, 0x48, 0x02, 0x00, 0x04,
|
||||
0x49, 0x02, 0x00, 0x04, 0x04, 0x03, 0x00, 0x04, 0x47, 0x02, 0x00, 0x04,
|
||||
0x04, 0x02, 0x00, 0x04, 0x80, 0xE8, 0xFF, 0xFF, 0x10, 0x02, 0x00, 0x04,
|
||||
0x84, 0x01, 0x00, 0x04, 0x14, 0x02, 0x00, 0x04, 0x02, 0x40, 0x00, 0x00,
|
||||
0x88, 0x01, 0x00, 0x04, 0x0C, 0x00, 0x04, 0x00, 0xFF, 0x03, 0x00, 0x00,
|
||||
0x28, 0xFC, 0xFF, 0x02, 0x24, 0xFC, 0xFF, 0x02, 0x26, 0xFC, 0xFF, 0x02,
|
||||
0x80, 0x01, 0x00, 0x04, 0x1F, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02,
|
||||
0x42, 0x02, 0x00, 0x04, 0x8C, 0x15, 0x20, 0x02, 0x00, 0x00, 0x84, 0x06,
|
||||
0x04, 0xF0, 0x1F, 0xE5, 0x04, 0x00, 0x38, 0x02, 0xFF, 0xF0, 0xFF, 0xFF,
|
||||
0xEF, 0x3F, 0x00, 0x00, 0x18, 0xF0, 0x9F, 0xE5, 0x04, 0xFE, 0xFF, 0x02,
|
||||
0x24, 0xFE, 0xFF, 0x02, 0x80, 0x00, 0x07, 0x3E, 0xEA, 0x4F, 0x68, 0x7C,
|
||||
0x12, 0x1F, 0x8C, 0x8F, 0xD6, 0x4B, 0x05, 0x14, 0xE8, 0x60, 0x0D, 0x9C,
|
||||
0x03, 0xFD, 0x38, 0x08, 0x29, 0x10, 0x14, 0x18, 0x8A, 0x57, 0xB3, 0x12,
|
||||
0x75, 0x88, 0x03, 0xA8, 0x13, 0xEA, 0x80, 0x07, 0x1F, 0x51, 0xC1, 0xF0,
|
||||
0x29, 0xE1, 0x87, 0xD0, 0xCA, 0x90, 0xD2, 0x78, 0x4E, 0x5B, 0xA3, 0xDE,
|
||||
0xFE, 0x05, 0x3B, 0x46, 0x26, 0xFA, 0x68, 0x03, 0xEF, 0x63, 0x85, 0xEB,
|
||||
0xDF, 0x8F, 0xB3, 0x8F, 0x4E, 0x1E, 0x1C, 0x12, 0x81, 0xE0, 0x02, 0x7E,
|
||||
0xD1, 0xDF, 0x14, 0x1B, 0x9C, 0x32, 0xD5, 0x3B, 0x10, 0x51, 0xE2, 0xA7,
|
||||
0xFC, 0xF8, 0xC0, 0x02, 0x44, 0xF5, 0x03, 0xEA, 0x96, 0x46, 0x24, 0x83,
|
||||
0xE0, 0xF4, 0x33, 0x21, 0xCD, 0xD0, 0x12, 0xB1, 0x4E, 0x41, 0x76, 0xA2,
|
||||
0xE8, 0x78, 0x8E, 0x53, 0xE2, 0xFB, 0x7F, 0x1B, 0x19, 0x9B, 0xF0, 0xFF,
|
||||
0xCA, 0xFE, 0x91, 0xA0, 0x49, 0xFD, 0x01, 0xF2, 0xCA, 0x1F, 0x4C, 0x1A,
|
||||
0x86, 0x59, 0x92, 0x06, 0x89, 0x04, 0x06, 0xAA, 0xFC, 0x39, 0x58, 0xE0,
|
||||
0x7C, 0x6C, 0xB8, 0x52, 0x33, 0x24, 0xB4, 0x75, 0xB2, 0x14, 0xB0, 0x8E,
|
||||
0xC4, 0xD1, 0x48, 0xBC, 0xA4, 0xC0, 0x75, 0xB6, 0x14, 0xB4, 0x8E, 0xD0,
|
||||
0xD1, 0x48, 0xC8, 0xA4, 0xCC, 0x75, 0xBA, 0x14, 0xB8, 0x8E, 0xDC, 0xD1,
|
||||
0x48, 0xD4, 0xA4, 0xD8, 0x72, 0xED, 0xBE, 0x29, 0xBC, 0x30, 0x1E, 0x6B,
|
||||
0x35, 0x92, 0x4E, 0x21, 0xEA, 0x47, 0x18, 0xEF, 0x2D, 0x9F, 0x19, 0xA9,
|
||||
0x80, 0x10, 0x81, 0xE3, 0x40, 0x12, 0x3F, 0xCD, 0x78, 0x97, 0xB5, 0x8D,
|
||||
0xDC, 0x31, 0xCA, 0xFA, 0x02, 0x20, 0x93, 0xC8, 0xC0, 0xBA, 0x59, 0xD6,
|
||||
0xC2, 0xFC, 0xB0, 0x39, 0xA5, 0xAE, 0xF8, 0x7B, 0x58, 0xB4, 0x1C, 0xBF,
|
||||
0x54, 0xA7, 0x29, 0x40, 0x8A, 0x41, 0x45, 0x43, 0x22, 0x44, 0x91, 0x48,
|
||||
0x45, 0xA4, 0x46, 0x52, 0x48, 0x29, 0x49, 0x1C, 0xB5, 0x34, 0x4F, 0x33,
|
||||
0x1D, 0x2C, 0x82, 0xE2, 0xB4, 0x10, 0xC2, 0xE1, 0x7F, 0x03, 0xE5, 0x47,
|
||||
0x31, 0xC3, 0x6B, 0xFD, 0x24, 0xD7, 0xEC, 0x20, 0xCF, 0xFB, 0x91, 0xF2,
|
||||
0x1C, 0x30, 0x3E, 0xD3, 0x19, 0x8B, 0xE5, 0xBE, 0x2E, 0x03, 0x43, 0x56,
|
||||
0x88, 0x49, 0x38, 0x58, 0x0F, 0x82, 0x68, 0x19, 0x8E, 0xBF, 0x0D, 0xB5,
|
||||
0xF8, 0x6C, 0xEF, 0xA0, 0x33, 0xF7, 0x4C, 0xB6, 0x50, 0x8F, 0x58, 0x08,
|
||||
0x22, 0x83, 0xA7, 0xEB, 0x1E, 0xC1, 0xE7, 0x48, 0x10, 0x37, 0xA3, 0x19,
|
||||
0x41, 0xE5, 0x7D, 0x20, 0xD3, 0xBD, 0x52, 0xA3, 0xC2, 0x82, 0x4A, 0xA0,
|
||||
0xE7, 0xB6, 0xAF, 0xD2, 0xE1, 0xBF, 0x6F, 0xB6, 0x0A, 0x24, 0x20, 0x9F,
|
||||
0x0F, 0x04, 0x30, 0xCB, 0x52, 0xF6, 0xFC, 0x3F, 0x8E, 0xB9, 0xB7, 0x1A,
|
||||
0xFD, 0x34, 0x1D, 0xE3, 0xDB, 0x31, 0xAF, 0xE5, 0x0F, 0xE0, 0x57, 0xA0,
|
||||
0x13, 0xE5, 0xF5, 0x9F, 0xFE, 0x8E, 0x43, 0xFC, 0x23, 0x75, 0x6E, 0xE8,
|
||||
0x21, 0x22, 0xC1, 0x1E, 0x22, 0x03, 0x32, 0xAB, 0xCD, 0x73, 0x23, 0x66,
|
||||
0xD4, 0xCC, 0x58, 0xC4, 0xF2, 0x37, 0x9A, 0xF1, 0xC6, 0x2F, 0x8A, 0xA1,
|
||||
0xF0, 0x57, 0xD7, 0xC3, 0x74, 0xAC, 0xFE, 0x3E, 0x30, 0x53, 0xB6, 0x01,
|
||||
0x1A, 0xF9, 0xF0, 0x99, 0x5B, 0x9F, 0xE1, 0xF0, 0x9C, 0x9F, 0x04, 0x03,
|
||||
0xCD, 0x66, 0x67, 0x4B, 0xD6, 0x1E, 0x67, 0x20, 0x4D, 0xAB, 0x64, 0x03,
|
||||
0xDE, 0xAE, 0x67, 0x7D, 0x29, 0x35, 0xED, 0x0C, 0x03, 0xB5, 0x00, 0x05,
|
||||
0x0A, 0x38, 0xBB, 0x2D, 0x7B, 0x72, 0x39, 0xE4, 0xB1, 0x84, 0xD0, 0x87,
|
||||
0x9E, 0x1E, 0xA5, 0x6F, 0x28, 0x40, 0xDF, 0xA8, 0x25, 0x8A, 0x1B, 0x91,
|
||||
0x2D, 0xED, 0x91, 0x20, 0x9E, 0xB9, 0x5C, 0x18, 0x80, 0x26, 0x1E, 0x2E,
|
||||
0x42, 0xAE, 0xF1, 0x1E, 0x88, 0x0E, 0xE7, 0x3C, 0x53, 0xF1, 0xED, 0xA7,
|
||||
0xE7, 0x91, 0x89, 0x55, 0x92, 0xC2, 0xE7, 0xF1, 0x71, 0xBA, 0x75, 0xE8,
|
||||
0xDC, 0xCF, 0x3A, 0x29, 0x31, 0xFA, 0x4D, 0xED, 0x4A, 0xED, 0x2D, 0x71,
|
||||
0x9D, 0x79, 0x34, 0x54, 0x19, 0x67, 0x50, 0x43, 0xD6, 0xD1, 0xA4, 0x1C,
|
||||
0xA4, 0xD4, 0x48, 0x25, 0x09, 0xE5, 0x20, 0xE4, 0x18, 0xD7, 0xAE, 0xB9,
|
||||
0xEA, 0x03, 0x34, 0x84, 0x43, 0x7E, 0x55, 0x0F, 0xCE, 0xE8, 0xDC, 0xA3,
|
||||
0xC7, 0x07, 0x0B, 0xD5, 0x14, 0x6F, 0x4E, 0x15, 0x4B, 0x36, 0xF8, 0xB9,
|
||||
0x57, 0x2E, 0x19, 0xEB, 0x9B, 0x19, 0x1B, 0x18, 0x83, 0x9F, 0x43, 0x9C,
|
||||
0x42, 0xE9, 0xD2, 0x1C, 0x72, 0x8D, 0xE8, 0x71, 0xFF, 0x38, 0x4B, 0x0F,
|
||||
0xBD, 0xE5, 0x2A, 0x68, 0xC7, 0xF1, 0x99, 0x0F, 0x36, 0x6B, 0xF0, 0x10,
|
||||
0x52, 0x14, 0x3B, 0x28, 0xA2, 0x2C, 0x91, 0x48, 0x38, 0xA4, 0x3C, 0x75,
|
||||
0x01, 0x7D, 0xEE, 0x12, 0x07, 0xCC, 0x51, 0xFB, 0x5C, 0x70, 0x0E, 0x6A,
|
||||
0x67, 0x72, 0xE3, 0x61, 0x5F, 0x73, 0xFF, 0x2F, 0x24, 0x9F, 0x01, 0x94,
|
||||
0x27, 0x4A, 0x95, 0x37, 0x26, 0x74, 0x66, 0x81, 0x5C, 0xE2, 0xDC, 0xFF,
|
||||
0xEF, 0xC6, 0x3D, 0xF8, 0xD1, 0xCF, 0x74, 0x00, 0x01, 0x30, 0x0E, 0xC9,
|
||||
0x34, 0x0F, 0x93, 0xB4, 0xF0, 0xBF, 0xF9, 0x33, 0xFD, 0xBB, 0x23, 0x45,
|
||||
0x12, 0x25, 0x32, 0xF3, 0x5B, 0x42, 0xAB, 0xE9, 0x14, 0x22, 0x93, 0x55,
|
||||
0x31, 0x71, 0xFD, 0xB2, 0x06, 0x80, 0xE7, 0xA9, 0xA8, 0x57, 0xC3, 0x24,
|
||||
0xC4, 0x74, 0x46, 0x68, 0xB3, 0x94, 0x9C, 0xCE, 0x90, 0xAD, 0x95, 0x70,
|
||||
0x35, 0x21, 0xB3, 0xA1, 0x06, 0x6B, 0x46, 0xE7, 0xDA, 0xDE, 0x1C, 0x71,
|
||||
0x7C, 0x2A, 0xA9, 0x30, 0x31, 0x3E, 0x35, 0x11, 0xC4, 0xA3, 0xF2, 0x24,
|
||||
0x78, 0xDC, 0x19, 0x53, 0x40, 0x5B, 0xBD, 0x07, 0xD1, 0x37, 0x6A, 0x1E,
|
||||
0xBD, 0x98, 0xD6, 0x4A, 0xE0, 0x73, 0x73, 0xCD, 0x06, 0x82, 0x89, 0x58,
|
||||
0xE5, 0x3A, 0x30, 0x70, 0x22, 0xE7, 0x1C, 0x49, 0xF4, 0xE7, 0xFF, 0xC7,
|
||||
0x12, 0x05, 0x28, 0x82, 0xB8, 0x4A, 0xB0, 0x45, 0xB4, 0x23, 0xA8, 0x02,
|
||||
0xA4, 0x45, 0xB4, 0xC4, 0x52, 0xBC, 0x29, 0xC0, 0x1D, 0x06, 0x45, 0x21,
|
||||
0x2D, 0xD0, 0xA2, 0xC8, 0x91, 0x48, 0xCC, 0xEA, 0x0A, 0x29, 0x08, 0x1D,
|
||||
0xA3, 0x0E, 0xC3, 0x36, 0xA0, 0x0E, 0x29, 0x0C, 0x01, 0x1A, 0x10, 0x4A,
|
||||
0x14, 0x47, 0x83, 0x82, 0xC9, 0x1A, 0x93, 0xF1, 0x12, 0x03, 0x5D, 0x56,
|
||||
0x80, 0xFC, 0x78, 0xAC, 0xB8, 0x23, 0xDB, 0x53, 0xAE, 0xDF, 0xB0, 0x01,
|
||||
0x3C, 0x5B, 0x50, 0xBD, 0x4B, 0xA8, 0xE3, 0xF2, 0x3C, 0x4E, 0x0E, 0x9E,
|
||||
0x10, 0x9D, 0x11, 0x9F, 0x0D, 0xFF, 0x0A, 0x9A, 0xFB, 0xC5, 0x0C, 0x98,
|
||||
0x3C, 0x3F, 0x53, 0x3B, 0x9B, 0x32, 0x17, 0x45, 0x28, 0x8E, 0x8B, 0x39,
|
||||
0xFB, 0x1E, 0x9B, 0x6C, 0xBC, 0x9A, 0xF1, 0xBD, 0x8B, 0x63, 0x44, 0x78,
|
||||
0x93, 0xD9, 0x02, 0xAA, 0x3B, 0x21, 0x95, 0x1C, 0x91, 0x1D, 0xCD, 0x4A,
|
||||
0xD8, 0x1A, 0xB3, 0xE4, 0x2A, 0xFC, 0xDB, 0xF1, 0x58, 0xD8, 0x2B, 0x53,
|
||||
0x6D, 0xFE, 0x9B, 0x05, 0x03, 0x1F, 0xD5, 0xF1, 0xE9, 0xF0, 0x5B, 0x89,
|
||||
0x2E, 0x3A, 0x48, 0xF1, 0xEF, 0xFB, 0x1C, 0x52, 0x4B, 0x2C, 0x59, 0x17,
|
||||
0x6C, 0x9C, 0x44, 0xCA, 0x37, 0x55, 0x52, 0x87, 0x06, 0xB3, 0x15, 0xB6,
|
||||
0xF6, 0x12, 0x39, 0x72, 0x91, 0x74, 0x07, 0xB1, 0xFB, 0x2D, 0x95, 0x05,
|
||||
0xD0, 0x2B, 0xF1, 0x3A, 0x62, 0x74, 0x72, 0x8D, 0x78, 0x16, 0xFA, 0x5F,
|
||||
0xE4, 0x13, 0xE0, 0x77, 0x33, 0x45, 0xD4, 0x85, 0xD8, 0x23, 0xE4, 0x3C,
|
||||
0xDC, 0xC1, 0x8E, 0xE6, 0x5C, 0x29, 0x84, 0x3C, 0xF6, 0x00, 0xE0, 0x1A,
|
||||
0xD0, 0x4A, 0xCC, 0x45, 0xD8, 0x22, 0xDC, 0x91, 0x48, 0xC0, 0xA4, 0xC8,
|
||||
0xE1, 0x73, 0xBB, 0x22, 0x0C, 0xC7, 0x57, 0x5D, 0x9E, 0x0B, 0xA7, 0x94,
|
||||
0xC0, 0x79, 0x64, 0x29, 0xD1, 0xD5, 0x13, 0x88, 0xBF, 0x2B, 0xFD, 0x16,
|
||||
0x24, 0x56, 0xB2, 0x60, 0x3A, 0x4F, 0x12, 0x49, 0x3C, 0xAD, 0x3F, 0x63,
|
||||
0x63, 0x0F, 0xF8, 0x3C, 0x3D, 0xF0, 0x08, 0x63, 0x24, 0x06, 0xF2, 0xB7,
|
||||
0xF4, 0xC4, 0x2F, 0x5B, 0xFB, 0xFD, 0x83, 0x34, 0x49, 0xE5, 0xB1, 0xD9,
|
||||
0xBC, 0x3B, 0x9F, 0x31, 0x70, 0xB5, 0x4D, 0x22, 0xAB, 0x25, 0x71, 0xAC,
|
||||
0x1A, 0x61, 0x93, 0xDA, 0x49, 0x4A, 0x49, 0x9A, 0x60, 0xD2, 0x35, 0x26,
|
||||
0x96, 0x46, 0x43, 0x3F, 0x98, 0x41, 0xBA, 0xDB, 0xF8, 0xD3, 0xE6, 0x04,
|
||||
0xD1, 0x73, 0xAE, 0xCF, 0x40, 0x20, 0x4A, 0xB3, 0x3D, 0x93, 0x42, 0x05,
|
||||
0xD9, 0x6F, 0x1F, 0xD1, 0xDC, 0x8A, 0x5C, 0xE0, 0xF9, 0x79, 0x4E, 0xF0,
|
||||
0x7F, 0x7F, 0x48, 0x4C, 0xB9, 0x4D, 0xD2, 0x79, 0x1D, 0x7B, 0x6A, 0xE7,
|
||||
0xE0, 0xDC, 0x80, 0x49, 0x1B, 0x6B, 0x4A, 0xDE, 0x48, 0xDE, 0x1A, 0xF2,
|
||||
0xD8, 0xFD, 0x1A, 0x2B, 0x62, 0x17, 0xFC, 0xD0, 0x8F, 0x14, 0x7A, 0xFE,
|
||||
0xBA, 0xFC, 0x16, 0xE9, 0xA7, 0x10, 0x48, 0xC7, 0xE4, 0xC2, 0xFD, 0xFE,
|
||||
0x2C, 0x59, 0x60, 0xA4, 0xAC, 0x12, 0x1A, 0x4D, 0x06, 0xF7, 0x8C, 0x70,
|
||||
0xF6, 0xCA, 0x35, 0xE7, 0x1C, 0xD2, 0x20, 0x3B, 0xA3, 0x19, 0x97, 0x85,
|
||||
0x7F, 0x22, 0x83, 0x91, 0xBD, 0xB4, 0xC2, 0x08, 0x47, 0x74, 0xFC, 0x79,
|
||||
0xEC, 0xE4, 0x7A, 0x13, 0xD0, 0xE1, 0x24, 0x49, 0xF5, 0xAF, 0xF0, 0x88,
|
||||
0x49, 0x70, 0x13, 0x34, 0x6C, 0x9C, 0x18, 0xF8, 0xA6, 0xF5, 0x2B, 0xB5,
|
||||
0x63, 0x4F, 0x4A, 0xD8, 0xDF, 0x01, 0x21, 0xCF, 0x8E, 0xD9, 0xFA, 0xCF,
|
||||
0x77, 0x4A, 0x83, 0xBB, 0x68, 0x04, 0x0C, 0x82, 0x1E, 0xA3, 0x10, 0xB6,
|
||||
0x58, 0xC9, 0x39, 0x44, 0xC7, 0x33, 0x34, 0x87, 0xE1, 0xC0, 0xF3, 0x7B,
|
||||
0x78, 0x29, 0x39, 0x78, 0xA7, 0xB5, 0x04, 0x92, 0x8C, 0xCA, 0xB6, 0x51,
|
||||
0xAA, 0x39, 0xE6, 0x0F, 0x01, 0x2B, 0x1F, 0xD1, 0x03, 0x1F, 0x25, 0x2A,
|
||||
0xF3, 0x62, 0x7C, 0xAE, 0x41, 0x2E, 0x96, 0x0A, 0xF6, 0x18, 0x3E, 0xB4,
|
||||
0x95, 0x05, 0xF3, 0xCE, 0xFF, 0x20, 0x4F, 0x4F, 0xED, 0x0D, 0x7B, 0xFE,
|
||||
0xA6, 0xF2, 0xF1, 0x35, 0x55, 0x54, 0x9D, 0x42, 0xF2, 0xC1, 0x25, 0x66,
|
||||
0xF5, 0x30, 0xE6, 0x5E, 0xC0, 0xFF, 0x78, 0xC7, 0x5D, 0xC2, 0x3C, 0xD9,
|
||||
0x5A, 0x09, 0xC0, 0xF8, 0x98, 0x72, 0x15, 0xC1, 0x05, 0x15, 0x0D, 0xAC,
|
||||
0x73, 0x12, 0x99, 0xD9, 0x48, 0xC0, 0x06, 0xAB, 0xDA, 0xAB, 0xFF, 0x24,
|
||||
0x70, 0xAC, 0x64, 0x9E, 0xC7, 0xCF, 0x0E, 0x98, 0x98, 0x42, 0xEA, 0xD9,
|
||||
0x0D, 0xDF, 0x48, 0xE8, 0xE7, 0x09, 0xF9, 0x80, 0xD9, 0x68, 0x52, 0x0A,
|
||||
0x9B, 0x8F, 0x65, 0x46, 0x9B, 0xFF, 0x7F, 0x23, 0x1C, 0x7D, 0xF1, 0x4B,
|
||||
0xA4, 0xEC, 0x74, 0x59, 0x1B, 0x01, 0x5D, 0x09, 0xA0, 0x33, 0x37, 0xD8,
|
||||
0xD9, 0xEC, 0xFB, 0xFB, 0x24, 0xC7, 0x0D, 0x70, 0x39, 0x57, 0xF6, 0x0E,
|
||||
0x5A, 0xE3, 0x2A, 0x78, 0x6E, 0x61, 0x3B, 0xB3, 0x19, 0x2B, 0x02, 0xD8,
|
||||
0xF6, 0xCF, 0xCC, 0x1D, 0x0E, 0x57, 0x23, 0xF0, 0xB5, 0x37, 0xB4, 0x09,
|
||||
0xC9, 0xAE, 0x23, 0x78, 0x99, 0xFF, 0x06, 0x1E, 0x0B, 0xFB, 0xD0, 0x0F,
|
||||
0x32, 0xDE, 0xFE, 0x7F, 0x56, 0x75, 0x4B, 0x83, 0x9B, 0xE2, 0x0F, 0x4D,
|
||||
0xFA, 0x1F, 0x7D, 0xEF, 0xCD, 0xF3, 0xE7, 0x72, 0x4C, 0x6F, 0x85, 0x36,
|
||||
0x3C, 0x38, 0x37, 0x0F, 0x0E, 0x38, 0x03, 0xC3, 0x1E, 0xD0, 0x03, 0x85,
|
||||
0x52, 0x32, 0x46, 0x8C, 0x0A, 0x6C, 0x53, 0xA3, 0x28, 0x41, 0xF2, 0xDC,
|
||||
0xD1, 0x96, 0x2A, 0xAE, 0x4E, 0x2B, 0x2E, 0x54, 0x2B, 0x7B, 0xBF, 0x95,
|
||||
0x36, 0xFF, 0x21, 0x5B, 0x72, 0x1D, 0xE2, 0x5C, 0xE3, 0x80, 0x2A, 0x52,
|
||||
0xFE, 0xAC, 0x18, 0x5D, 0xE2, 0x1F, 0xD5, 0x04, 0xCC, 0x26, 0x9F, 0x7A,
|
||||
0x3F, 0x04, 0xEF, 0x19, 0x38, 0x7F, 0xB9, 0x5C, 0x37, 0x67, 0x5F, 0x22,
|
||||
0xA2, 0xE6, 0xB8, 0x58, 0xE1, 0x4A, 0xA5, 0x5A, 0xE3, 0x3D, 0xEE, 0xE1,
|
||||
0x7C, 0x7E, 0xA5, 0x55, 0xF6, 0x49, 0x69, 0xD0, 0x78, 0x66, 0x52, 0xBE,
|
||||
0x54, 0x7E, 0xF7, 0x86, 0x9D, 0x99, 0x61, 0x5C, 0x61, 0xDE, 0x1B, 0xE2,
|
||||
0xD8, 0x00, 0x4B, 0xEB, 0xDD, 0x64, 0x12, 0x6C, 0x50, 0x48, 0x5B, 0x9F,
|
||||
0x03, 0xAC, 0xE5, 0xEC, 0xA3, 0x7B, 0x2D, 0x02, 0x1D, 0x5F, 0xED, 0xED,
|
||||
0xED, 0x68, 0x4C, 0x3B, 0x4F, 0xE1, 0x39, 0xFB, 0x67, 0x6D, 0x23, 0x98,
|
||||
0xD5, 0xB6, 0x53, 0x19, 0x61, 0x69, 0x3E, 0x76, 0xA0, 0x62, 0xC5, 0x7C,
|
||||
0xD0, 0xB3, 0x21, 0xF2, 0x09, 0xC0, 0xB6, 0xDE, 0xF3, 0x2A, 0x60, 0x40,
|
||||
0xB9, 0xCE, 0x0D, 0x9A, 0xEC, 0x48, 0xFF, 0x44, 0x4A, 0x45, 0x4B, 0xFF,
|
||||
0x05, 0x9D, 0x77, 0x01, 0x22, 0x1A, 0x70, 0x3E, 0x25, 0x43, 0x49, 0x03,
|
||||
0x9E, 0x47, 0xF7, 0x8D, 0xBE, 0x21, 0x79, 0x59, 0xE7, 0xE7, 0x8B, 0x42,
|
||||
0xA6, 0x4F, 0xE1, 0x1B, 0x63, 0x12, 0x85, 0xE8, 0xD3, 0xD9, 0x44, 0xE8,
|
||||
0x0D, 0x63, 0x66, 0xFF, 0x8B, 0xD2, 0xEF, 0x2F, 0x0A, 0xD1, 0x27, 0x10,
|
||||
0x33, 0xE3, 0x5C, 0xFB, 0x9B, 0x9E, 0xD0, 0x3E, 0xD5, 0x5B, 0x45, 0x6C,
|
||||
0xDF, 0xCB, 0xFB, 0x94, 0x24, 0xB2, 0xF9, 0xEF, 0xE5, 0x7D, 0xA0, 0xA1,
|
||||
0xF9, 0x63, 0x8B, 0xC9, 0x1B, 0xC3, 0x1E, 0xEF, 0x3A, 0xED, 0x1D, 0x3C,
|
||||
0x30, 0x19, 0xFD, 0x08, 0x31, 0x33, 0xD0, 0xC2, 0x0D, 0x8E, 0xE7, 0xA0,
|
||||
0xE7, 0x63, 0x8B, 0xC0, 0x1B, 0x17, 0x92, 0x39, 0x68, 0x1C, 0x3E, 0x04,
|
||||
0x18, 0x47, 0xDD, 0x1D, 0xDB, 0x7F, 0x3E, 0x06, 0x56, 0x43, 0x86, 0xE9,
|
||||
0x4A, 0x90, 0x4F, 0xF5, 0x99, 0x37, 0x32, 0x92, 0x03, 0x72, 0xB2, 0x96,
|
||||
0xA9, 0xBE, 0x29, 0x2D, 0x32, 0x4E, 0xAC, 0x2C, 0xB2, 0x12, 0x02, 0x8E,
|
||||
0x50, 0x2E, 0xCA, 0x04, 0x12, 0xFB, 0x31, 0x2F, 0x4D, 0x68, 0xB9, 0x4D,
|
||||
0xDC, 0x0B, 0x60, 0xA7, 0xD0, 0xF3, 0x34, 0x28, 0x33, 0x9F, 0xA8, 0x23,
|
||||
0x78, 0xBB, 0xC7, 0x23, 0x66, 0x3C, 0xBD, 0xF5, 0x17, 0xF9, 0x0F, 0xAD,
|
||||
0x22, 0x13, 0x40, 0x01, 0x9A, 0x5A, 0x43, 0x55, 0xFF, 0x19, 0x3D, 0x60,
|
||||
0x10, 0xE7, 0xFF, 0xD6, 0xE1, 0xD9, 0x3C, 0x23, 0xE4, 0x48, 0x7C, 0x38,
|
||||
0x8F, 0x82, 0xE0, 0x28, 0x52, 0x40, 0x3F, 0x9C, 0x2C, 0x0E, 0x0F, 0xA1,
|
||||
0xC5, 0x24, 0x3A, 0x9C, 0xF4, 0xFF, 0x0D, 0x33, 0xB5, 0x51, 0x8E, 0x49,
|
||||
0x8F, 0x8E, 0x05, 0x6A, 0x90, 0x27, 0xFB, 0x70, 0xE9, 0x0F, 0x67, 0xA5,
|
||||
0x70, 0x2C, 0x97, 0xD2, 0x2D, 0xD4, 0xA5, 0x6B, 0x2E, 0x2B, 0xF8, 0xD1,
|
||||
0x48, 0x3F, 0x9B, 0x16, 0x1D, 0xCC, 0x6F, 0xD6, 0x1A, 0x04, 0x3E, 0x46,
|
||||
0xBA, 0x30, 0x07, 0x03, 0x67, 0x36, 0xF4, 0x4A, 0xFE, 0xEA, 0xAD, 0x21,
|
||||
0x5B, 0x99, 0x66, 0x4A, 0x2E, 0xAE, 0x58, 0x64, 0x86, 0x02, 0x62, 0x98,
|
||||
0x10, 0x2B, 0x19, 0xF1, 0x3E, 0xB0, 0x8B, 0x01, 0x37, 0xBB, 0x8F, 0x3B,
|
||||
0xD1, 0x2C, 0x8B, 0x4C, 0xD0, 0x3D, 0x85, 0x50, 0xC3, 0xDA, 0x4B, 0xC3,
|
||||
0x18, 0xB7, 0xCD, 0x61, 0x68, 0xE6, 0x8B, 0x31, 0x3A, 0x4E, 0x27, 0x29,
|
||||
0x99, 0xB3, 0x02, 0xD8, 0x19, 0xE7, 0x71, 0x26, 0x9B, 0x8C, 0xBD, 0x09,
|
||||
0x5C, 0xC2, 0x64, 0x4B, 0xE4, 0xE6, 0x20, 0x22, 0x9B, 0x21, 0xA2, 0xA8,
|
||||
0xB3, 0xEA, 0x0D, 0xFE, 0xCF, 0x23, 0xE0, 0x7A, 0x18, 0x2F, 0x40, 0xC5,
|
||||
0x28, 0x03, 0x07, 0x63, 0x05, 0xDC, 0x75, 0x0F, 0x94, 0x18, 0x5C, 0x9A,
|
||||
0x57, 0x8B, 0x06, 0x2B, 0xC6, 0x04, 0x6F, 0x7D, 0x8A, 0xDA, 0xB6, 0x27,
|
||||
0xD1, 0x4F, 0x26, 0x76, 0x7A, 0x0C, 0xD0, 0x06, 0xAA, 0xB3, 0x7C, 0xD8,
|
||||
0xB5, 0x2E, 0x8C, 0x79, 0xFE, 0xF7, 0x9B, 0x05, 0x5D, 0xCC, 0x65, 0x46,
|
||||
0x7D, 0x30, 0x04, 0x2E, 0xF0, 0xFD, 0x7F, 0x1B, 0x78, 0x4E, 0x9F, 0x78,
|
||||
0x8F, 0x73, 0x52, 0xB0, 0x36, 0xC3, 0xD1, 0xA8, 0xA6, 0xD0, 0x33, 0x89,
|
||||
0xFF, 0x2D, 0xBF, 0xD1, 0x4F, 0x55, 0x13, 0xF9, 0x4A, 0xB5, 0x12, 0x68,
|
||||
0x9B, 0x17, 0x1A, 0xD8, 0x39, 0xD1, 0xB8, 0x6C, 0x02, 0x39, 0x92, 0xB4,
|
||||
0xEF, 0x06, 0xAB, 0xF0, 0x5C, 0x7D, 0xB3, 0x55, 0xFE, 0x05, 0x3F, 0x4D,
|
||||
0x5D, 0x9B, 0x1A, 0x01, 0x36, 0xDD, 0x42, 0x58, 0x41, 0x77, 0xC0, 0x73,
|
||||
0x17, 0x78, 0xD0, 0x6E, 0xEF, 0x60, 0x62, 0x23, 0x7D, 0xD8, 0x33, 0x14,
|
||||
0xE3, 0xA2, 0xC5, 0x7E, 0xB6, 0xB2, 0x37, 0xFE, 0xE0, 0x43, 0x64, 0xE7,
|
||||
0x38, 0xAF, 0x48, 0x34, 0xA4, 0x30, 0x7C, 0x38, 0x01, 0x1B, 0x26, 0x30,
|
||||
0x38, 0x2C, 0x77, 0xEC, 0x63, 0x85, 0x39, 0xB0, 0x03, 0x90, 0x0D, 0xF8,
|
||||
0x16, 0xA9, 0x63, 0x39, 0xED, 0x4D, 0xD0, 0x73, 0x4B, 0x99, 0x4B, 0x90,
|
||||
0xD1, 0x7F, 0xE0, 0x41, 0xCF, 0x4F, 0x10, 0xD2, 0xC5, 0x29, 0xE1, 0x4D,
|
||||
0x04, 0x6F, 0x2C, 0x46, 0x93, 0xDC, 0x39, 0x68, 0x30, 0xFE, 0x5B, 0xDE,
|
||||
0x1E, 0xA8, 0x4C, 0x99, 0x0A, 0xD9, 0xAA, 0x35, 0xCA, 0x99, 0x0C, 0xE6,
|
||||
0xF1, 0x05, 0x96, 0x83, 0xF6, 0x0D, 0xF1, 0x3E, 0xBD, 0x34, 0x92, 0xCD,
|
||||
0x91, 0x2F, 0x0B, 0xD9, 0x93, 0x1B, 0x3E, 0xFB, 0xCC, 0x3F, 0xCD, 0x6B,
|
||||
0x8D, 0x6C, 0xDB, 0xDE, 0x43, 0x67, 0xC8, 0xF6, 0xCD, 0x1E, 0x40, 0x5F,
|
||||
0x1A, 0xDA, 0x17, 0x5E, 0x05, 0x2A, 0x0D, 0xD3, 0x18, 0x5B, 0xEF, 0x12,
|
||||
0xF0, 0x01, 0xB3, 0xB5, 0xB8, 0x29, 0xD6, 0x02, 0x9B, 0x9E, 0xFD, 0x15,
|
||||
0xD2, 0x78, 0x3B, 0x8A, 0x67, 0x8E, 0x01, 0xA6, 0x50, 0x58, 0x7B, 0xC3,
|
||||
0x57, 0x93, 0x3B, 0x6A, 0xFD, 0x21, 0x4A, 0x4F, 0x33, 0xC6, 0x96, 0x1B,
|
||||
0xFB, 0x9A, 0x93, 0x42, 0x32, 0xD1, 0x1E, 0x7F, 0x35, 0x16, 0xA9, 0x8E,
|
||||
0xC3, 0xBD, 0x73, 0xF0, 0x50, 0x76, 0xFD, 0xC3, 0x3C, 0xCD, 0xAD, 0xB0,
|
||||
0x31, 0xB1, 0xBB, 0x98, 0x19, 0x81, 0xEC, 0x32, 0xC5, 0xE7, 0x67, 0x16,
|
||||
0x4F, 0xF9, 0xA3, 0x4E, 0x04, 0xDC, 0xEE, 0xF4, 0x67, 0x37, 0x92, 0x24,
|
||||
0x05, 0xC3, 0x3B, 0x68, 0x01, 0x74, 0x82, 0x9F, 0x3D, 0x42, 0xDD, 0xA5,
|
||||
0x1F, 0x28, 0xC5, 0x9B, 0x1E, 0x4E, 0xFD, 0x03, 0x3F, 0x9A, 0x6F, 0x0D,
|
||||
0x4B, 0x20, 0x6E, 0xD1, 0x69, 0x39, 0x6D, 0x69, 0xF0, 0x18, 0xF8, 0x9F,
|
||||
0x9B, 0xE4, 0xAF, 0xDB, 0x1B, 0x7F, 0x02, 0xAF, 0xC3, 0xF6, 0x19, 0xB3,
|
||||
0xB1, 0xC6, 0xF2, 0x5C, 0xED, 0x1C, 0xCA, 0xD1, 0x67, 0xC4, 0xC7, 0x28,
|
||||
0x25, 0xC7, 0xE7, 0xDE, 0xE9, 0x0F, 0x28, 0x8D, 0x20, 0x99, 0x44, 0x25,
|
||||
0xB2, 0x41, 0xDE, 0x81, 0x18, 0xF1, 0xED, 0x4F, 0x88, 0xDA, 0x36, 0x78,
|
||||
0x83, 0xD4, 0xEA, 0xAD, 0xD0, 0xB6, 0x37, 0x49, 0x08, 0x40, 0x10, 0x4F,
|
||||
0x8C, 0x22, 0x18, 0x97, 0xD5, 0x83, 0xC9, 0x59, 0x43, 0xE3, 0xCA, 0xCF,
|
||||
0x53, 0x5D, 0xE7, 0x86, 0xF0, 0x55, 0x89, 0xB8, 0x02, 0x4A, 0xE7, 0x8D,
|
||||
0xC5, 0xD0, 0x6D, 0xDC, 0x03, 0x21, 0x10, 0xB5, 0xF2, 0xD3, 0xDF, 0x9F,
|
||||
0xAB, 0x8B, 0x4E, 0x01, 0x6B, 0x5E, 0x69, 0x9C, 0xE6, 0x02, 0xF0, 0xAD,
|
||||
0x57, 0x8D, 0xD4, 0xFF, 0xE3, 0x6A, 0xCF, 0x08, 0x4A, 0xFA, 0x9C, 0x07,
|
||||
0xE1, 0xD8, 0xA5, 0x09, 0x33, 0x43, 0xD3, 0x44, 0x10, 0xE7, 0xD9, 0x68,
|
||||
0x13, 0x88, 0x38, 0xBA, 0x5B, 0x0C, 0xF7, 0xE7, 0xF9, 0xC9, 0x18, 0x03,
|
||||
0xF0, 0xB5, 0xC3, 0xCB, 0x03, 0x8D, 0xB0, 0xFE, 0x0F, 0x05, 0xDC, 0x45,
|
||||
0x79, 0x9B, 0x1F, 0x07, 0x23, 0x80, 0xD7, 0xC8, 0x0B, 0x40, 0x08, 0x93,
|
||||
0xC0, 0xFE, 0x6B, 0xC6, 0x19, 0x42, 0x03, 0xBE, 0xC7, 0x19, 0x9C, 0x1C,
|
||||
0x77, 0xAF, 0x94, 0x96, 0x8B, 0x74, 0x4D, 0x7A, 0xAC, 0x2F, 0x00, 0xE5,
|
||||
0xEC, 0xE4, 0x01, 0xF2, 0xEE, 0x40, 0x55, 0xFC, 0xD1, 0xD1, 0x71, 0x01,
|
||||
0x4C, 0x23, 0xE2, 0xF2, 0x13, 0x6A, 0x9E, 0x4D, 0x1B, 0x75, 0x2B, 0x6A,
|
||||
0x6F, 0x12, 0xF5, 0x1A, 0xEB, 0xD6, 0x49, 0x6E, 0x4B, 0x09, 0x0C, 0x19,
|
||||
0xBF, 0xE7, 0x64, 0x43, 0x68, 0x5F, 0x94, 0x01, 0x93, 0x5E, 0xB4, 0xEF,
|
||||
0xE9, 0xAA, 0xF2, 0xA9, 0xF3, 0x2D, 0xE4, 0x42, 0x5A, 0x41, 0x06, 0x92,
|
||||
0x5F, 0x2B, 0xFA, 0xBE, 0x95, 0x3A, 0x7E, 0xA9, 0x8A, 0x4F, 0x65, 0xAD,
|
||||
0x8D, 0x95, 0x0A, 0xAE, 0x71, 0xF1, 0x25, 0xDD, 0xDD, 0x76, 0x2D, 0x4E,
|
||||
0x42, 0xE6, 0x07, 0xAB, 0x03, 0x36, 0x1E, 0x96, 0x30, 0x3D, 0x2C, 0x5F,
|
||||
0x7A, 0x5C, 0x0F, 0x5E, 0x49, 0x8E, 0x42, 0x28, 0xD9, 0xBF, 0x06, 0xDF,
|
||||
0x0E, 0x31, 0xD0, 0xD6, 0x96, 0xF7, 0x3C, 0x58, 0xAA, 0xB4, 0x9E, 0xD0,
|
||||
0x68, 0x10, 0xC3, 0xC1, 0xF6, 0x91, 0x2C, 0x2A, 0x58, 0x11, 0xE0, 0x69,
|
||||
0xCE, 0x55, 0x4C, 0x7F, 0xA1, 0xE6, 0x8E, 0x19, 0xF3, 0x64, 0xF6, 0x88,
|
||||
0x4D, 0xF6, 0x02, 0x31, 0x73, 0xB1, 0x42, 0xF9, 0xD1, 0xFA, 0xD2, 0x3A,
|
||||
0x42, 0x99, 0x4A, 0x03, 0x31, 0x4D, 0xBC, 0xCC, 0x6B, 0x28, 0x4B, 0x0E,
|
||||
0xB2, 0x82, 0xBA, 0x0A, 0xA9, 0xC9, 0x79, 0xD9, 0x21, 0x42, 0xD3, 0x23,
|
||||
0xD1, 0x08, 0x99, 0xFC, 0x29, 0x20, 0xBC, 0x9F, 0x2D, 0x1A, 0xD0, 0x7A,
|
||||
0x88, 0x45, 0xBB, 0x26, 0x39, 0x30, 0x4E, 0x7E, 0x3E, 0x49, 0xED, 0x12,
|
||||
0xD9, 0x4E, 0x24, 0xF4, 0xA8, 0xAF, 0x7E, 0x1C, 0x19, 0xFA, 0x94, 0x3B,
|
||||
0x4E, 0x10, 0xC9, 0x34, 0x60, 0x09, 0xFF, 0x9C, 0x8C, 0xE9, 0xA3, 0xE3,
|
||||
0x61, 0x39, 0x4C, 0xA4, 0x46, 0xCF, 0x98, 0x5B, 0x18, 0x73, 0x99, 0x61,
|
||||
0xCB, 0x44, 0x01, 0xD3, 0x55, 0x38, 0x4E, 0x1B, 0x31, 0x40, 0xFA, 0x80,
|
||||
0xCD, 0x91, 0x33, 0x37, 0x4A, 0x3B, 0x11, 0x42, 0x2F, 0xD0, 0xFE, 0xA7,
|
||||
0x82, 0x68, 0x73, 0x4C, 0x60, 0x73, 0x4E, 0xCD, 0x83, 0x39, 0x46, 0xC3,
|
||||
0xDD, 0x81, 0xB6, 0x3C, 0xE2, 0x66, 0xE8, 0x3B, 0x80, 0x05, 0x9B, 0xBE,
|
||||
0x3A, 0xE7, 0xD0, 0x5C, 0xA6, 0x2E, 0x8C, 0xD0, 0x03, 0x35, 0xB2, 0x9A,
|
||||
0x2D, 0x33, 0x40, 0x2D, 0x5B, 0x29, 0x2B, 0xA3, 0x34, 0x83, 0x0D, 0x64,
|
||||
0x1A, 0x9C, 0x2A, 0x4B, 0xB8, 0xA7, 0x1B, 0x67, 0x5C, 0x3C, 0xC3, 0x61,
|
||||
0x0D, 0xB0, 0xF0, 0xFF, 0xA6, 0x0A, 0xAA, 0x83, 0x92, 0xE6, 0x52, 0xCC,
|
||||
0xD5, 0x55, 0xE7, 0x67, 0x99, 0x04, 0x8B, 0x9A, 0x12, 0xE2, 0x88, 0x01,
|
||||
0xCB, 0x0E, 0x42, 0x6B, 0x84, 0xB9, 0xAC, 0x51, 0x07, 0x03, 0xD5, 0x1F,
|
||||
0xD2, 0x84, 0x68, 0x5D, 0x4B, 0x81, 0x60, 0x3A, 0x07, 0x0A, 0xC9, 0x8A,
|
||||
0x42, 0x5F, 0xAB, 0x40, 0xE6, 0xB8, 0x2E, 0xF6, 0x1E, 0xE3, 0xD1, 0xC0,
|
||||
0xD8, 0x1C, 0xE1, 0x48, 0x49, 0x06, 0x22, 0x90, 0xDD, 0x0D, 0x44, 0x5B,
|
||||
0x40, 0x1B, 0x0C, 0x71, 0xCB, 0x30, 0xB1, 0xFD, 0x17, 0xFE, 0xA9, 0x1A,
|
||||
0x76, 0xFD, 0x1E, 0x3B, 0x7F, 0x80, 0x83, 0xE9, 0x0C, 0xB2, 0x0E, 0x91,
|
||||
0x48, 0x10, 0xA4, 0x12, 0x52, 0x14, 0x29, 0x16, 0x14, 0x18, 0x8A, 0x1A,
|
||||
0x47, 0x56, 0xC7, 0x63, 0x95, 0x47, 0x79, 0xEC, 0x09, 0xB3, 0xB6, 0x22,
|
||||
0x25, 0xCF, 0x48, 0x83, 0x2E, 0x2B, 0x4B, 0x2C, 0x37, 0x9C, 0x42, 0x83,
|
||||
0xC2, 0x17, 0x82, 0x2E, 0x51, 0x62, 0x02, 0x63, 0x7F, 0x28, 0x4C, 0x27,
|
||||
0x97, 0x40, 0x93, 0xE4, 0x27, 0xF5, 0xAA, 0x21, 0x7A, 0x8E, 0x26, 0x49,
|
||||
0x9C, 0x6C, 0xAC, 0xDA, 0x25, 0xA1, 0x36, 0x46, 0x2C, 0xE6, 0x0C, 0xCF,
|
||||
0x31, 0x94, 0xC8, 0x24, 0xDC, 0xAF, 0xA3, 0x6F, 0x0B, 0x42, 0xD5, 0x20,
|
||||
0xB9, 0x4B, 0xCE, 0xDC, 0xE2, 0x01, 0x23, 0x66, 0x92, 0x94, 0x1F, 0xE1,
|
||||
0x9E, 0x31, 0xAA, 0x2A, 0xA5, 0x82, 0x28, 0x4B, 0x53, 0x9A, 0x4A, 0x1C,
|
||||
0x1D, 0xD5, 0xA3, 0x65, 0x3A, 0x35, 0xDB, 0x23, 0x1B, 0x4E, 0x4F, 0xCB,
|
||||
0xAE, 0xDD, 0x35, 0x63, 0x1A, 0x67, 0x2E, 0x63, 0x33, 0x63, 0x03, 0x26,
|
||||
0x2B, 0x7E, 0x19, 0xBF, 0xB2, 0xB5, 0xED, 0x1D, 0xED, 0x48, 0x2C, 0xD5,
|
||||
0x4D, 0x18, 0x4C, 0x17, 0x25, 0xD5, 0x88, 0xB4, 0x43, 0x97, 0x1C, 0xA4,
|
||||
0x19, 0x72, 0x4B, 0x6D, 0xF2, 0xB9, 0x2A, 0x51, 0xFE, 0x74, 0x36, 0x01,
|
||||
0xBC, 0x79, 0x6D, 0xAD, 0x04, 0x5B, 0xA2, 0x09, 0x81, 0x22, 0x74, 0x9E,
|
||||
0x02, 0x35, 0x7A, 0xD8, 0x9D, 0x42, 0x49, 0x1C, 0x6B, 0xE0, 0x85, 0x20,
|
||||
0x23, 0xE4, 0x1D, 0x03, 0x7E, 0x22, 0x4F, 0x7F, 0x91, 0x83, 0xEA, 0xFC,
|
||||
0x94, 0xFE, 0x8A, 0x02, 0x45, 0x24, 0x23, 0xE4, 0xEE, 0x40, 0x61, 0x28,
|
||||
0x25, 0x48, 0x26, 0xA4, 0x78, 0xAE, 0x70, 0xB5, 0x5B, 0x4C, 0x1F, 0x43,
|
||||
0x1F, 0x0C, 0xE2, 0x83, 0x23, 0xEE, 0xF0, 0xB9, 0xF9, 0x3F, 0xB3, 0x11,
|
||||
0x0E, 0x38, 0xA3, 0xD5, 0x22, 0x9B, 0x55, 0xDE, 0x93, 0xB2, 0xF4, 0x32,
|
||||
0x32, 0x9D, 0x31, 0x07, 0x80, 0xCA, 0xDB, 0x05, 0x1D, 0x40, 0xFD, 0xE6,
|
||||
0x50, 0x71, 0x58, 0x27, 0x1C, 0xD1, 0x4A, 0x4F, 0x49, 0x2A, 0x43, 0x7F,
|
||||
0xC6, 0x21, 0x1E, 0xA6, 0xDB, 0x07, 0xF0, 0xD5, 0x3F, 0xC3, 0x2A, 0xED,
|
||||
0xDA, 0xEB, 0x9B, 0x0F, 0xE5, 0x48, 0x2B, 0x02, 0xD0, 0xBD, 0xE4, 0x55,
|
||||
0x1E, 0xAA, 0x41, 0xDF, 0x71, 0x81, 0x62, 0x46, 0x7F, 0x8E, 0x22, 0x7F,
|
||||
0x0D, 0x43, 0xA2, 0xFB, 0x2A, 0xFA, 0x04, 0x57, 0x03, 0x13, 0x40, 0x67,
|
||||
0x70, 0x68, 0x16, 0x41, 0x83, 0xBA, 0xF4, 0x01, 0xFE, 0x3E, 0xA6, 0xF3,
|
||||
0x1F, 0x0C, 0x69, 0x1A, 0x0C, 0x22, 0x62, 0x3D, 0x49, 0x12, 0xFF, 0x82,
|
||||
0x50, 0xF6, 0x60, 0x98, 0x40, 0xE8, 0xD1, 0xA2, 0x7F, 0x92, 0x09, 0x7F,
|
||||
0x3A, 0xA4, 0x2A, 0x52, 0xD0, 0x01, 0x26, 0xF8, 0x25, 0x30, 0xEF, 0xB0,
|
||||
0x63, 0xA6, 0x5F, 0x13, 0xA7, 0x1C, 0xD2, 0x33, 0xA6, 0x74, 0xE1, 0x0C,
|
||||
0xE4, 0xD3, 0x1D, 0x18, 0x29, 0xE8, 0xC0, 0xD8, 0xCE, 0xCA, 0x41, 0x9D,
|
||||
0x1C, 0xF9, 0x9A, 0x76, 0xE6, 0xA9, 0x62, 0xCA, 0xCF, 0x99, 0xC8, 0xC1,
|
||||
0x33, 0x23, 0x6A, 0x28, 0xBF, 0x1A, 0x04, 0xEF, 0xC6, 0xC6, 0xC3, 0xA3,
|
||||
0xBB, 0x2B, 0x42, 0xBB, 0xB8, 0xEE, 0x80, 0x26, 0xB6, 0xF1, 0x62, 0xD8,
|
||||
0x1E, 0x49, 0xE4, 0xBC, 0xB3, 0xCB, 0x28, 0x63, 0xAE, 0xD1, 0x3B, 0x6A,
|
||||
0xBD, 0x1E, 0xCE, 0xA6, 0x62, 0xF0, 0x32, 0xC7, 0x06, 0x21, 0xF3, 0x22,
|
||||
0x7E, 0xE0, 0xE3, 0x33, 0x24, 0xA0, 0xDE, 0x92, 0x9E, 0x9B, 0xB9, 0xBF,
|
||||
0xA6, 0xEA, 0xB3, 0x99, 0x2A, 0x26, 0x7D, 0xC9, 0x09, 0xF9, 0x43, 0x02,
|
||||
0x32, 0xBC, 0x74, 0x0F, 0x21, 0xEC, 0x62, 0x7E, 0x99, 0x51, 0x93, 0x63,
|
||||
0x5B, 0x0A, 0xAC, 0x7F, 0x3F, 0x23, 0xE2, 0xDF, 0x2A, 0x40, 0xA3, 0xBB,
|
||||
0x1A, 0x23, 0x63, 0x7D, 0x12, 0x57, 0xBA, 0x43, 0x66, 0x1B, 0x9B, 0xF3,
|
||||
0x0C, 0xF3, 0xEE, 0x78, 0xE9, 0x50, 0x24, 0x37, 0x76, 0x83, 0xA7, 0x2D,
|
||||
0x69, 0x59, 0x6C, 0x02, 0x93, 0xE4, 0x03, 0x75, 0x09, 0x06, 0x1A, 0x07,
|
||||
0x05, 0x4D, 0x46, 0x25, 0x23, 0xB2, 0x10, 0x04, 0x47, 0x2A, 0xF8, 0xB5,
|
||||
0x13, 0x4C, 0xCF, 0x63, 0x6A, 0x06, 0xF1, 0x6E, 0x89, 0xA3, 0x22, 0x3C,
|
||||
0xD1, 0x46, 0x02, 0x57, 0xCE, 0x9B, 0x48, 0xFD, 0xD3, 0x22, 0x8B, 0x86,
|
||||
0x0D, 0x4B, 0xF3, 0x52, 0xA8, 0xB3, 0x2B, 0x04, 0xAE, 0x1B, 0xC9, 0x4B,
|
||||
0x14, 0x0C, 0x89, 0xD5, 0xBC, 0x72, 0x0B, 0x4A, 0x6D, 0x02, 0xAF, 0x13,
|
||||
0x80, 0x20, 0xF1, 0x32, 0x4D, 0x2E, 0x49, 0x27, 0x71, 0x65, 0x60, 0xFF,
|
||||
0xF7, 0x54, 0xFD, 0xA0, 0x7F, 0x68, 0x40, 0x07, 0xC0, 0x0F, 0xF8, 0xFE,
|
||||
0xCA, 0x74, 0xE8, 0x1C, 0x19, 0xE3, 0x2D, 0x08, 0x45, 0x21, 0x49, 0x2A,
|
||||
0x0A, 0x48, 0x4F, 0xD9, 0x12, 0x3C, 0x9A, 0x45, 0x7D, 0x33, 0x9E, 0xE6,
|
||||
0x4D, 0x87, 0xAD, 0x20, 0x41, 0x48, 0x30, 0xA4, 0x40, 0x52, 0x50, 0x29,
|
||||
0x60, 0x1F, 0x26, 0x70, 0x29, 0x3A, 0x85, 0xF9, 0x3F, 0x06, 0x48, 0xE2,
|
||||
0x0E, 0xFE, 0x01, 0x31, 0x98, 0x89, 0xFB, 0x71, 0x30, 0x06, 0x84, 0x6E,
|
||||
0x2C, 0xA9, 0xCB, 0xF6, 0x90, 0xC5, 0xE5, 0x02, 0x2F, 0x19, 0x77, 0x77,
|
||||
0xF4, 0x1A, 0xAB, 0x95, 0xBB, 0x8A, 0xC6, 0xBA, 0xE3, 0x94, 0x2E, 0x53,
|
||||
0x07, 0x99, 0x49, 0x7D, 0xD3, 0xA8, 0x2E, 0x09, 0x68, 0x58, 0xEE, 0xFC,
|
||||
0x68, 0x51, 0xBA, 0x57, 0x6C, 0xFE, 0xB9, 0x91, 0x08, 0x40, 0xC3, 0x1D,
|
||||
0x66, 0x6B, 0x0A, 0xB4, 0x58, 0xED, 0xBC, 0x61, 0xC0, 0x8F, 0xE2, 0xFF,
|
||||
0x07, 0x9C, 0xE8, 0xFF, 0xD2, 0x30, 0x0F, 0x02, 0x47, 0xC5, 0x1F, 0x03,
|
||||
0x3C, 0x50, 0x2F, 0xB4, 0x70, 0x3F, 0x05, 0x9F, 0x10, 0x4F, 0x2F, 0x74,
|
||||
0x5F, 0x52, 0x13, 0x6F, 0x69, 0x14, 0x7F, 0x34, 0x16, 0x8F, 0x9A, 0x17,
|
||||
0x9F, 0x4F, 0x68, 0xAF, 0x09, 0xFA, 0xC3, 0xB0, 0x12, 0xA4, 0x15, 0x72,
|
||||
0x6B, 0x11, 0x0F, 0x19, 0xEE, 0x2F, 0x20, 0xA4, 0x4C, 0xD8, 0xD1, 0x09,
|
||||
0xB3, 0x9B, 0x2D, 0x60, 0xDD, 0x67, 0x90, 0x04, 0xF9, 0x07, 0x4C, 0xE5,
|
||||
0x8B, 0xB4, 0x07, 0x2D, 0xC0, 0x72, 0xD3, 0xEB, 0x00, 0xD2, 0xEA, 0x05,
|
||||
0xEC, 0xDB, 0xE2, 0xDF, 0xF0, 0x21, 0x3F, 0xF5, 0xD0, 0x95, 0xDA, 0x11,
|
||||
0x8E, 0x1C, 0x6B, 0x58, 0xA6, 0x46, 0xE1, 0xE2, 0x0F, 0x01, 0x3B, 0xEE,
|
||||
0xE5, 0xD9, 0x20, 0xD3, 0x33, 0x42, 0xD3, 0x2E, 0x20, 0xB9, 0x8A, 0xE2,
|
||||
0xB5, 0x26, 0x81, 0x7B, 0x1A, 0x74, 0x58, 0xC8, 0x34, 0x4D, 0xFE, 0x3B,
|
||||
0x18, 0xF0, 0xD3, 0xCD, 0x42, 0x79, 0x48, 0x5C, 0x12, 0xA8, 0x8A, 0x15,
|
||||
0x11, 0x8B, 0x4C, 0x05, 0x33, 0x73, 0x04, 0x49, 0x2B, 0xA4, 0x35, 0xED,
|
||||
0x08, 0x49, 0x1B, 0xEA, 0x1D, 0x3D, 0x42, 0x17, 0xF0, 0x9D, 0x02, 0x0A,
|
||||
0x5A, 0x68, 0x54, 0x03, 0xA1, 0xDF, 0xC5, 0xDC, 0x0C, 0xFF, 0x03, 0x4C,
|
||||
0x44, 0x49, 0x17, 0x08, 0x49, 0x38, 0x00, 0x14, 0xAB, 0xB4, 0xF3, 0x11,
|
||||
0x70, 0xED, 0x61, 0x81, 0xC3, 0xD5, 0x88, 0xDB, 0x9E, 0x3A, 0x4E, 0x33,
|
||||
0x22, 0x0F, 0x07, 0x23, 0x03, 0xC1, 0xC0, 0x09, 0x07, 0x64, 0x39, 0xC1,
|
||||
0xE0, 0x0B, 0x83, 0x03, 0x81, 0x32, 0xF0, 0x68, 0x00, 0x5C, 0x1C, 0x83,
|
||||
0x30, 0x0F, 0x83, 0x81, 0x1B, 0x83, 0x8D, 0x41, 0xED, 0x03, 0x47, 0x50,
|
||||
0x93, 0xF4, 0x00, 0x7F, 0x44, 0x6C, 0x53, 0x2D, 0x41, 0x5A, 0x8D, 0xDA,
|
||||
0x84, 0x99, 0xE1, 0xBB, 0x76, 0x40, 0x20, 0xA3, 0x78, 0x82, 0xA1, 0xBF,
|
||||
0x98, 0x23, 0x32, 0x7C, 0x1A, 0x02, 0x01, 0xD6, 0x63, 0x48, 0x12, 0x03,
|
||||
0x7E, 0x98, 0x13, 0xEC, 0x7C, 0x00, 0x30, 0x1F, 0x8E, 0x31, 0x3E, 0x00,
|
||||
0x19, 0xE0, 0x13, 0x86, 0x3F, 0x27, 0xF8, 0x03, 0xC9, 0xC0, 0xBC, 0xF2,
|
||||
0x6C, 0x00, 0x70, 0x70, 0x43, 0xED, 0x1D, 0xC0, 0x5A, 0xE0, 0xA8, 0x61,
|
||||
0x39, 0xED, 0xBD, 0x51, 0xE2, 0x27, 0x3F, 0xE8, 0xB0, 0x49, 0xE8, 0x30,
|
||||
0xAE, 0x0B, 0x31, 0x98, 0x26, 0x7C, 0x9A, 0x9D, 0x8C, 0xE1, 0x28, 0xEB,
|
||||
0x50, 0x0A, 0x0E, 0xCF, 0xB2, 0x5D, 0x81, 0x11, 0xBC, 0x8C, 0x58, 0x90,
|
||||
0x36, 0x59, 0x13, 0xD3, 0xD2, 0x6D, 0xD8, 0x0B, 0x12, 0x52, 0x22, 0x75,
|
||||
0xDD, 0x83, 0xF5, 0x9F, 0xAC, 0x70, 0xB3, 0x81, 0x10, 0x2D, 0x82, 0x27,
|
||||
0x59, 0x31, 0xFA, 0x9E, 0x46, 0x3A, 0x73, 0x98, 0xE3, 0xE5, 0xA8, 0x3D,
|
||||
0xA8, 0x02, 0xEA, 0x32, 0xEB, 0xF4, 0x30, 0x7F, 0x46, 0xC6, 0x05, 0x96,
|
||||
0xA1, 0xAD, 0x46, 0xED, 0x46, 0x5D, 0x66, 0xE1, 0xA1, 0x31, 0x43, 0x20,
|
||||
0xA2, 0x01, 0x80, 0xFF, 0x0D, 0xCA, 0x53, 0x7B, 0x22, 0x05, 0xB0, 0xE5,
|
||||
0xCC, 0x11, 0xEF, 0xC7, 0xBC, 0x1A, 0xCE, 0x73, 0x0D, 0x20, 0x3C, 0x1D,
|
||||
0x67, 0x01, 0x91, 0x99, 0xCC, 0x0F, 0xA7, 0xD8, 0x2E, 0x97, 0x80, 0x03,
|
||||
0x7B, 0x4C, 0x3B, 0x3E, 0xDA, 0x18, 0x3C, 0xA6, 0xE4, 0x23, 0x91, 0xD9,
|
||||
0xBA, 0x33, 0x01, 0x0C, 0xFA, 0x14, 0x8E, 0x08, 0x29, 0xD4, 0x10, 0x75,
|
||||
0x09, 0x12, 0x7F, 0x21, 0x72, 0xF2, 0x22, 0x04, 0x7A, 0x4C, 0x03, 0x52,
|
||||
0xA1, 0x25, 0x20, 0x82, 0x90, 0xFE, 0x5C, 0x4F, 0x33, 0xEB, 0xED, 0x60,
|
||||
0xA1, 0x42, 0xF9, 0x30, 0x1F, 0xE0, 0x62, 0x46, 0xE1, 0x69, 0x50, 0x29,
|
||||
0xEC, 0xE0, 0xC3, 0x93, 0x02, 0x01, 0xA0, 0xB3, 0x32, 0xFE, 0x27, 0x6D,
|
||||
0x51, 0xE3, 0xF7, 0x8F, 0xE4, 0x0A, 0xD6, 0x96, 0xE9, 0xB1, 0x66, 0x92,
|
||||
0xEB, 0x06, 0x40, 0xBD, 0xCF, 0xE8, 0x92, 0xE3, 0x4C, 0xBF, 0x10, 0x41,
|
||||
0xE0, 0x1E, 0x7E, 0x8D, 0x70, 0x8E, 0xAB, 0xF0, 0xB5, 0x0F, 0x2A, 0x39,
|
||||
0x1F, 0xD9, 0x0D, 0xF2, 0x05, 0x43, 0x0C, 0xF1, 0x03, 0x6A, 0xAD, 0x07,
|
||||
0x37, 0xD1, 0x15, 0x00, 0xFF, 0x3D, 0x2D, 0x09, 0x2E, 0xAF, 0x01, 0x18,
|
||||
0xA5, 0x36, 0x9D, 0x27, 0x1F, 0xE5, 0x67, 0xCB, 0x5F, 0x97, 0xA7, 0x2E,
|
||||
0x9F, 0x5C, 0xE7, 0x68, 0xDF, 0x60, 0xBE, 0x33, 0x10, 0x34, 0xB3, 0x2F,
|
||||
0x42, 0xCC, 0x0F, 0x24, 0x66, 0x35, 0x2D, 0x01, 0x97, 0x49, 0x14, 0xE5,
|
||||
0x40, 0x45, 0x19, 0xF5, 0x2C, 0x1F, 0xD9, 0xBC, 0x74, 0xCE, 0x58, 0xEE,
|
||||
0x50, 0xF8, 0x33, 0xE6, 0xDB, 0x6C, 0x2E, 0xF9, 0xD8, 0x03, 0xBF, 0x04,
|
||||
0x3C, 0x77, 0x08, 0x97, 0x34, 0xA4, 0x76, 0x1A, 0x40, 0x2D, 0xD7, 0x09,
|
||||
0x19, 0x8B, 0xF5, 0x37, 0xD0, 0x57, 0x23, 0xCC, 0x5C, 0xEC, 0x54, 0x01,
|
||||
0x33, 0x7F, 0x93, 0x42, 0xFA, 0xF9, 0xBB, 0x02, 0x45, 0xBC, 0x08, 0xFF,
|
||||
0x79, 0x1A, 0x2A, 0xF3, 0xD1, 0xFE, 0x05, 0x4E, 0xF0, 0x5C, 0x22, 0x00,
|
||||
0xF8, 0xE7, 0xBF, 0xC8, 0x11, 0x57, 0x90, 0x3D, 0xF9, 0x7A, 0x03, 0x83,
|
||||
0x1B, 0xCC, 0xA1, 0xFE, 0xEE, 0x82, 0x9F, 0xE5, 0x1C, 0xDF, 0x2F, 0xE1,
|
||||
0x15, 0x37, 0xC1, 0x78, 0x47, 0xC0, 0x46, 0x8F, 0x7B, 0xF2, 0xEA, 0x90,
|
||||
0x80, 0x42, 0xD0, 0x4F, 0x54, 0x2E, 0x4E, 0x44, 0x53, 0xBF, 0xA8, 0xFF,
|
||||
0xD8, 0x17, 0x27, 0x00, 0x06, 0xF3, 0x11, 0x24, 0x47, 0xB9, 0x9A, 0x8B,
|
||||
0x33, 0x10, 0x20, 0x0D, 0x65, 0xB9, 0x98, 0xB1, 0x22, 0x10, 0x20, 0x01,
|
||||
0x01, 0x29, 0x10, 0x22, 0x02, 0x00, 0x00, 0x04, 0xD4, 0x11, 0x00, 0x00};
|
39
include/screen.h
Normal file
39
include/screen.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: SLOT-1 Boot Menu
|
||||
File: screen.h
|
||||
|
||||
This source code is derived from "os_jump" in the TwlSDK
|
||||
|
||||
$Date:: 2024-02-01#$
|
||||
$Author: Lillian Skinner (rmc) $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef SCREEN_H_
|
||||
#define SCREEN_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
#include <nitro/types.h>
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Function Definitions
|
||||
*---------------------------------------------------------------------------*/
|
||||
void InitScreen(void);
|
||||
void ClearScreen(void);
|
||||
void ClearMainScreen(void);
|
||||
void ClearSubScreen(void);
|
||||
void PutMainScreen(s32 x, s32 y, u8 palette, char* text, ...);
|
||||
void PutSubScreen(s32 x, s32 y, u8 palette, char* text, ...);
|
||||
void UpdateScreen(void);
|
||||
|
||||
/*===========================================================================*/
|
||||
#ifdef __cplusplus
|
||||
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* SCREEN_H_ */
|
191
specfile.rsf
Normal file
191
specfile.rsf
Normal file
@ -0,0 +1,191 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Project: SLOT-1 Boot Menu
|
||||
# File: specfile.rsf
|
||||
#
|
||||
# This source code is derived from "os_jump" in the TwlSDK
|
||||
#
|
||||
# $Date:: 2024-02-01#$
|
||||
# $Author: Lillian Skinner (rmc) $
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# TWL ROM SPEC FILE
|
||||
#
|
||||
|
||||
Arm9
|
||||
{
|
||||
Static "$(MAKEROM_ARM9:r).TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||
Elf "$(MAKEROM_ARM9:r).tef"
|
||||
}
|
||||
|
||||
Arm7
|
||||
{
|
||||
Static "$(MAKEROM_ARM7_BASE:r).TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||
Elf "$(MAKEROM_ARM7_BASE:r).tef"
|
||||
}
|
||||
|
||||
Arm9.Ltd
|
||||
{
|
||||
Static "$(MAKEROM_ARM9:r).TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||
}
|
||||
|
||||
Arm7.Ltd
|
||||
{
|
||||
Static "$(MAKEROM_ARM7_BASE:r).TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||
}
|
||||
|
||||
Property
|
||||
{
|
||||
###
|
||||
### Settings for FinalROM
|
||||
###
|
||||
#### BEGIN
|
||||
#
|
||||
# TITLE NAME: Your product name within 12bytes
|
||||
#
|
||||
TitleName "SLOT1_BOOT"
|
||||
|
||||
#
|
||||
# MAKER CODE: Your company ID# in 2 ascii words
|
||||
# issued by NINTENDO
|
||||
#
|
||||
MakerCode 01
|
||||
|
||||
#
|
||||
# REMASTER VERSION: Mastering version
|
||||
#
|
||||
#RemasterVersion 0
|
||||
|
||||
#
|
||||
# ROM SPEED TYPE: [MROM/1TROM/UNDEFINED]
|
||||
#
|
||||
RomSpeedType $(MAKEROM_ROMSPEED)
|
||||
|
||||
#
|
||||
# ROM SIZE: in bit [64M/128M/256M/512M/1G/2G/4G]
|
||||
#
|
||||
#RomSize 256M
|
||||
|
||||
#
|
||||
# ROM PADDING: TRUE if finalrom
|
||||
#
|
||||
#RomFootPadding TRUE
|
||||
|
||||
#
|
||||
# ROM HEADER TEMPLATE: Provided to every product by NINTENDO
|
||||
#
|
||||
#RomHeaderTemplate ./etc/rom_header.template.sbin
|
||||
|
||||
#
|
||||
# BANNER FILE: generated from Banner Spec File
|
||||
#
|
||||
BannerFile "banner/banner.bnr"
|
||||
|
||||
###
|
||||
### Setting for TWL
|
||||
###
|
||||
|
||||
#
|
||||
# ROM HEADER Ltd:
|
||||
# don't have to edit
|
||||
#
|
||||
RomHeaderLtd $(TWLSDK_ROOT)/tools/bin/rom_header.LTD.sbin
|
||||
|
||||
#
|
||||
# Digest parameters:
|
||||
#
|
||||
DigestParam 1024 32
|
||||
|
||||
#
|
||||
# WRAM mapping: [MAP2_TS_HYB/MAP2_TS_LTD]
|
||||
# don't have to edit
|
||||
#
|
||||
WramMapping $(MAKEROM_WRAM_MAPPING)
|
||||
|
||||
#
|
||||
# CardRegion: card region [Japan/America/Europe/Australia]
|
||||
#
|
||||
CardRegion ALL
|
||||
|
||||
#
|
||||
# Found NANDAccess in TwlIPL. Nice that it still works.
|
||||
#
|
||||
|
||||
NANDAccess TRUE
|
||||
SDCardAccess ReadWrite
|
||||
PhotoAccess ReadWrite
|
||||
|
||||
#
|
||||
# Codec mode:
|
||||
# don't have to edit
|
||||
#
|
||||
CodecMode $(MAKEROM_CODEC_MODE)
|
||||
|
||||
#
|
||||
# Disp WiFiConnection Icon for Launcher [TRUE/FALSE]
|
||||
#
|
||||
#WiFiConnectionIcon FALSE
|
||||
|
||||
#
|
||||
# Disp DSWireless Icon for Launcher [TRUE/FALSE]
|
||||
#
|
||||
#DSWirelessIcon FALSE
|
||||
|
||||
#
|
||||
# Agree EULA [TRUE/FALSE]
|
||||
#
|
||||
#AgreeEULA FALSE
|
||||
|
||||
###
|
||||
#### END
|
||||
}
|
||||
|
||||
AppendProperty
|
||||
{
|
||||
# Boot title on launcher
|
||||
|
||||
Launch FALSE
|
||||
|
||||
#
|
||||
# Boot allowed Media: [GameCard]
|
||||
#
|
||||
#AppType System
|
||||
#Secure TRUE
|
||||
Media GameCard
|
||||
|
||||
#
|
||||
# InitialCode : Your InitialCode in 4 ascii words
|
||||
#
|
||||
InitialCode 4S1A
|
||||
|
||||
#
|
||||
# Public save data size: [0-/0K-/0M-]
|
||||
#
|
||||
#PublicSaveDataSize 0K
|
||||
|
||||
#
|
||||
# Private save data size: [0-/0K-/0M-]
|
||||
#
|
||||
#PrivateSaveDataSize 0K
|
||||
|
||||
#
|
||||
# Enable SubBannerFile
|
||||
#SubBannerFile TRUE
|
||||
}
|
||||
|
||||
RomSpec
|
||||
{
|
||||
Offset 0x00000000
|
||||
Segment ALL
|
||||
HostRoot $(MAKEROM_ROMROOT)
|
||||
Root /
|
||||
File $(MAKEROM_ROMFILES)
|
||||
}
|
569
src/font.c
Normal file
569
src/font.c
Normal file
@ -0,0 +1,569 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: SLOT-1 Boot Menu
|
||||
File: font.c
|
||||
|
||||
This source code is derived from "os_jump" in the TwlSDK
|
||||
|
||||
$Date:: 2024-02-01#$
|
||||
$Author: Lillian Skinner (rmc) $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "font.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Character data
|
||||
*---------------------------------------------------------------------------*/
|
||||
const u32 d_CharData[8 * 256] =
|
||||
{
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 0000h
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01010010, 0x01010010, 0x00000110, // 0001h
|
||||
0x00011010, 0x01100010, 0x00000010, 0x00000010,
|
||||
0x00000000, 0x01011010, 0x01010010, 0x00010010, // 0002h
|
||||
0x00100010, 0x00100010, 0x00100001, 0x00100001,
|
||||
0x00000000, 0x01010001, 0x01010001, 0x01111111, // 0003h
|
||||
0x00000001, 0x00000001, 0x00000001, 0x01111110,
|
||||
0x00000000, 0x01010000, 0x01111111, 0x00100000, // 0004h
|
||||
0x00100000, 0x00010000, 0x00001000, 0x00000110,
|
||||
0x00000000, 0x01010000, 0x01010100, 0x00001010, // 0005h
|
||||
0x00010001, 0x00100001, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x01011000, 0x01011000, 0x01111111, // 0006h
|
||||
0x00001000, 0x00101010, 0x01001010, 0x01001001,
|
||||
0x00000000, 0x01010010, 0x01101111, 0x01010010, // 0007h
|
||||
0x00010010, 0x00010010, 0x00010010, 0x00001001,
|
||||
0x00000000, 0x01010010, 0x01011111, 0x00000100, // 0008h
|
||||
0x00011111, 0x00001000, 0x00000001, 0x00011110,
|
||||
0x00000000, 0x01010000, 0x01011000, 0x00000110, // 0009h
|
||||
0x00000001, 0x00000110, 0x00011000, 0x00100000,
|
||||
0x00000000, 0x01010000, 0x01111101, 0x00010001, // 000ah
|
||||
0x00010001, 0x00010001, 0x00010001, 0x00001010,
|
||||
0x00000000, 0x01010000, 0x01011110, 0x00100000, // 000bh
|
||||
0x00000000, 0x00000001, 0x00000001, 0x00111110,
|
||||
0x00000000, 0x01010100, 0x01011111, 0x00001000, // 000ch
|
||||
0x00010000, 0x00000001, 0x00000001, 0x00011110,
|
||||
0x00000000, 0x01010001, 0x01010001, 0x00000001, // 000dh
|
||||
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||
0x00000000, 0x01010000, 0x01111111, 0x00011000, // 000eh
|
||||
0x00010100, 0x00010100, 0x00011000, 0x00001100,
|
||||
0x00000000, 0x01010010, 0x01111111, 0x00010010, // 000fh
|
||||
0x00010010, 0x00000010, 0x00000010, 0x00111100,
|
||||
0x00000000, 0x00001110, 0x01010100, 0x01010010, // 0010h
|
||||
0x00111111, 0x00000100, 0x00000100, 0x00011000,
|
||||
0x00000000, 0x01010100, 0x01011111, 0x00000100, // 0011h
|
||||
0x01110100, 0x00000010, 0x00001010, 0x01110010,
|
||||
0x00000000, 0x01010100, 0x01011111, 0x00000010, // 0012h
|
||||
0x00011110, 0x00100001, 0x00100000, 0x00011110,
|
||||
0x00000000, 0x01010000, 0x01011100, 0x00100011, // 0013h
|
||||
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x01010000, 0x01111111, 0x00010000, // 0014h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00110000,
|
||||
0x00000000, 0x01010010, 0x01010010, 0x00001100, // 0015h
|
||||
0x00000010, 0x00000001, 0x00000001, 0x00111110,
|
||||
0x00000000, 0x01010001, 0x01111101, 0x00010001, // 0016h
|
||||
0x00010001, 0x00111001, 0x01010101, 0x00011001,
|
||||
0x00000000, 0x01010100, 0x01010011, 0x01110010, // 0017h
|
||||
0x00010001, 0x00010001, 0x00001010, 0x00000100,
|
||||
0x00000000, 0x01011110, 0x01011000, 0x00000100, // 0018h
|
||||
0x00101001, 0x01010001, 0x01010001, 0x00001100,
|
||||
0x00000000, 0x01010000, 0x01011100, 0x00010010, // 0019h
|
||||
0x00010010, 0x00100001, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x01011101, 0x01010001, 0x00111101, // 001ah
|
||||
0x00010001, 0x00011001, 0x00110101, 0x00001001,
|
||||
0x00000000, 0x01110001, 0x01011101, 0x00110001, // 001bh
|
||||
0x00010001, 0x00111001, 0x01010101, 0x00011001,
|
||||
0x00000000, 0x01110100, 0x01010011, 0x00110010, // 001ch
|
||||
0x00010001, 0x00010001, 0x00001010, 0x00000100,
|
||||
0x00000000, 0x01101110, 0x01011000, 0x00100100, // 001dh
|
||||
0x00101001, 0x01010001, 0x01010001, 0x00001100,
|
||||
0x00000000, 0x01110000, 0x01011100, 0x00110010, // 001eh
|
||||
0x00010010, 0x00100001, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x01111101, 0x01010001, 0x00111101, // 001fh
|
||||
0x00010001, 0x00011001, 0x00110101, 0x00001001,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 0020h
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00001000, 0x00001000, 0x00001000, // 0021h
|
||||
0x00001000, 0x00001000, 0x00000000, 0x00001000,
|
||||
0x00000000, 0x01101100, 0x01001000, 0x00100100, // 0022h
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00100100, 0x01111111, 0x00100100, // 0023h
|
||||
0x00100100, 0x01111111, 0x00010010, 0x00010010,
|
||||
0x00000000, 0x00001000, 0x01111110, 0x00001001, // 0024h
|
||||
0x00111110, 0x01001000, 0x00111111, 0x00001000,
|
||||
0x00000000, 0x01000010, 0x00100101, 0x00010010, // 0025h
|
||||
0x00001000, 0x00100100, 0x01010010, 0x00100001,
|
||||
0x00000000, 0x00001110, 0x00010001, 0x00001001, // 0026h
|
||||
0x01000110, 0x00101001, 0x00110001, 0x01001110,
|
||||
0x00000000, 0x00011000, 0x00010000, 0x00001000, // 0027h
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01110000, 0x00001000, 0x00000100, // 0028h
|
||||
0x00000100, 0x00000100, 0x00001000, 0x01110000,
|
||||
0x00000000, 0x00000111, 0x00001000, 0x00010000, // 0029h
|
||||
0x00010000, 0x00010000, 0x00001000, 0x00000111,
|
||||
0x00000000, 0x00001000, 0x01001001, 0x00101010, // 002ah
|
||||
0x00011100, 0x00101010, 0x01001001, 0x00001000,
|
||||
0x00000000, 0x00001000, 0x00001000, 0x00001000, // 002bh
|
||||
0x01111111, 0x00001000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 002ch
|
||||
0x00000000, 0x00001100, 0x00001000, 0x00000100,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 002dh
|
||||
0x01111111, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 002eh
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00001100,
|
||||
0x00000000, 0x01000000, 0x00100000, 0x00010000, // 002fh
|
||||
0x00001000, 0x00000100, 0x00000010, 0x00000001,
|
||||
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 0030h
|
||||
0x01000001, 0x01000001, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x00011100, 0x00010000, 0x00010000, // 0031h
|
||||
0x00010000, 0x00010000, 0x00010000, 0x00010000,
|
||||
0x00000000, 0x00111110, 0x01000001, 0x01000000, // 0032h
|
||||
0x00111110, 0x00000001, 0x00000001, 0x01111111,
|
||||
0x00000000, 0x00111110, 0x01000001, 0x01000000, // 0033h
|
||||
0x00111110, 0x01000000, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x00100000, 0x00110000, 0x00101000, // 0034h
|
||||
0x00100100, 0x00100010, 0x01111111, 0x00100000,
|
||||
0x00000000, 0x01111111, 0x00000001, 0x00111111, // 0035h
|
||||
0x01000000, 0x01000000, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x00111110, 0x00000001, 0x00111111, // 0036h
|
||||
0x01000001, 0x01000001, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x01111111, 0x00100000, 0x00100000, // 0037h
|
||||
0x00010000, 0x00010000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 0038h
|
||||
0x00111110, 0x01000001, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 0039h
|
||||
0x01000001, 0x01111110, 0x01000000, 0x00111110,
|
||||
0x00000000, 0x00000000, 0x00001100, 0x00000000, // 003ah
|
||||
0x00000000, 0x00000000, 0x00001100, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00001100, 0x00000000, // 003bh
|
||||
0x00000000, 0x00001100, 0x00001000, 0x00000100,
|
||||
0x00000000, 0x01100000, 0x00011000, 0x00000110, // 003ch
|
||||
0x00000001, 0x00000110, 0x00011000, 0x01100000,
|
||||
0x00000000, 0x00000000, 0x01111111, 0x00000000, // 003dh
|
||||
0x00000000, 0x00000000, 0x01111111, 0x00000000,
|
||||
0x00000000, 0x00000011, 0x00001100, 0x00110000, // 003eh
|
||||
0x01000000, 0x00110000, 0x00001100, 0x00000011,
|
||||
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 003fh
|
||||
0x00110000, 0x00001000, 0x00000000, 0x00001000,
|
||||
0x00000000, 0x00011100, 0x00100010, 0x01001001, // 0040h
|
||||
0x01010101, 0x01010101, 0x01010101, 0x00111010,
|
||||
0x00000000, 0x00001000, 0x00010100, 0x00010100, // 0041h
|
||||
0x00100010, 0x00111110, 0x01000001, 0x01000001,
|
||||
0x00000000, 0x00111111, 0x01000001, 0x01000001, // 0042h
|
||||
0x00111111, 0x01000001, 0x01000001, 0x00111111,
|
||||
0x00000000, 0x00111100, 0x01000010, 0x00000001, // 0043h
|
||||
0x00000001, 0x00000001, 0x01000010, 0x00111100,
|
||||
0x00000000, 0x00011111, 0x00100001, 0x01000001, // 0044h
|
||||
0x01000001, 0x01000001, 0x00100001, 0x00011111,
|
||||
0x00000000, 0x01111111, 0x00000001, 0x00000001, // 0045h
|
||||
0x01111111, 0x00000001, 0x00000001, 0x01111111,
|
||||
0x00000000, 0x01111111, 0x00000001, 0x00000001, // 0046h
|
||||
0x00111111, 0x00000001, 0x00000001, 0x00000001,
|
||||
0x00000000, 0x00111100, 0x01000010, 0x00000001, // 0047h
|
||||
0x01111001, 0x01000001, 0x01000010, 0x00111100,
|
||||
0x00000000, 0x01000001, 0x01000001, 0x01000001, // 0048h
|
||||
0x01111111, 0x01000001, 0x01000001, 0x01000001,
|
||||
0x00000000, 0x00111110, 0x00001000, 0x00001000, // 0049h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00111110,
|
||||
0x00000000, 0x01000000, 0x01000000, 0x01000000, // 004ah
|
||||
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||
0x00000000, 0x01100001, 0x00011001, 0x00000101, // 004bh
|
||||
0x00000011, 0x00000101, 0x00011001, 0x01100001,
|
||||
0x00000000, 0x00000001, 0x00000001, 0x00000001, // 004ch
|
||||
0x00000001, 0x00000001, 0x00000001, 0x01111111,
|
||||
0x00000000, 0x01000001, 0x01100011, 0x01010101, // 004dh
|
||||
0x01001001, 0x01000001, 0x01000001, 0x01000001,
|
||||
0x00000000, 0x01000001, 0x01000011, 0x01000101, // 004eh
|
||||
0x01001001, 0x01010001, 0x01100001, 0x01000001,
|
||||
0x00000000, 0x00011100, 0x00100010, 0x01000001, // 004fh
|
||||
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||
0x00000000, 0x00111111, 0x01000001, 0x01000001, // 0050h
|
||||
0x00111111, 0x00000001, 0x00000001, 0x00000001,
|
||||
0x00000000, 0x00011100, 0x00100010, 0x01000001, // 0051h
|
||||
0x01000001, 0x01011001, 0x00100010, 0x01011100,
|
||||
0x00000000, 0x00111111, 0x01000001, 0x01000001, // 0052h
|
||||
0x00111111, 0x01000001, 0x01000001, 0x01000001,
|
||||
0x00000000, 0x00111110, 0x01000001, 0x00000001, // 0053h
|
||||
0x00111110, 0x01000000, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x01111111, 0x00001000, 0x00001000, // 0054h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x01000001, 0x01000001, 0x01000001, // 0055h
|
||||
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||
0x00000000, 0x01000001, 0x01000001, 0x00100010, // 0056h
|
||||
0x00100010, 0x00010100, 0x00010100, 0x00001000,
|
||||
0x00000000, 0x01000001, 0x01000001, 0x01000001, // 0057h
|
||||
0x01001001, 0x01010101, 0x01100011, 0x01000001,
|
||||
0x00000000, 0x01000001, 0x00100010, 0x00010100, // 0058h
|
||||
0x00001000, 0x00010100, 0x00100010, 0x01000001,
|
||||
0x00000000, 0x01000001, 0x00100010, 0x00010100, // 0059h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x01111111, 0x00100000, 0x00010000, // 005ah
|
||||
0x00001000, 0x00000100, 0x00000010, 0x01111111,
|
||||
0x00000000, 0x01111100, 0x00000100, 0x00000100, // 005bh
|
||||
0x00000100, 0x00000100, 0x00000100, 0x01111100,
|
||||
0x00000000, 0x00100010, 0x00010100, 0x00111110, // 005ch
|
||||
0x00001000, 0x00111110, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x00011111, 0x00010000, 0x00010000, // 005dh
|
||||
0x00010000, 0x00010000, 0x00010000, 0x00011111,
|
||||
0x00000000, 0x00001000, 0x00010100, 0x00100010, // 005eh
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 005fh
|
||||
0x00000000, 0x00000000, 0x00000000, 0x01111111,
|
||||
0x00000000, 0x00010000, 0x00001000, 0x00011000, // 0060h
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00011110, 0x00100001, // 0061h
|
||||
0x00111110, 0x00100001, 0x00100001, 0x01011110,
|
||||
0x00000000, 0x00000001, 0x00000001, 0x00111111, // 0062h
|
||||
0x01000001, 0x01000001, 0x01000001, 0x00111111,
|
||||
0x00000000, 0x00000000, 0x00111100, 0x01000010, // 0063h
|
||||
0x00000001, 0x00000001, 0x01000010, 0x00111100,
|
||||
0x00000000, 0x01000000, 0x01000000, 0x01111110, // 0064h
|
||||
0x01000001, 0x01000001, 0x01000001, 0x01111110,
|
||||
0x00000000, 0x00000000, 0x00111110, 0x01000001, // 0065h
|
||||
0x01111111, 0x00000001, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x00110000, 0x00001000, 0x00001000, // 0066h
|
||||
0x01111111, 0x00001000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x00000000, 0x01111110, 0x01000001, // 0067h
|
||||
0x01000001, 0x01111110, 0x01000000, 0x00111110,
|
||||
0x00000000, 0x00000001, 0x00000001, 0x00000001, // 0068h
|
||||
0x00111111, 0x01000001, 0x01000001, 0x01000001,
|
||||
0x00000000, 0x00001000, 0x00000000, 0x00001000, // 0069h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x00100000, 0x00000000, 0x00100000, // 006ah
|
||||
0x00100000, 0x00100001, 0x00100001, 0x00011110,
|
||||
0x00000000, 0x00000001, 0x00000001, 0x01100001, // 006bh
|
||||
0x00011001, 0x00000111, 0x00011001, 0x01100001,
|
||||
0x00000000, 0x00001000, 0x00001000, 0x00001000, // 006ch
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x00000000, 0x00110111, 0x01001001, // 006dh
|
||||
0x01001001, 0x01001001, 0x01001001, 0x01001001,
|
||||
0x00000000, 0x00000000, 0x00111111, 0x01000001, // 006eh
|
||||
0x01000001, 0x01000001, 0x01000001, 0x01000001,
|
||||
0x00000000, 0x00000000, 0x00011100, 0x00100010, // 006fh
|
||||
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||
0x00000000, 0x00000000, 0x00111101, 0x01000011, // 0070h
|
||||
0x01000001, 0x01000011, 0x00111101, 0x00000001,
|
||||
0x00000000, 0x00000000, 0x01011110, 0x01100001, // 0071h
|
||||
0x01000001, 0x01100001, 0x01011110, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00110001, 0x00001101, // 0072h
|
||||
0x00000011, 0x00000001, 0x00000001, 0x00000001,
|
||||
0x00000000, 0x00000000, 0x00111110, 0x01000001, // 0073h
|
||||
0x00001110, 0x00110000, 0x01000001, 0x00111110,
|
||||
0x00000000, 0x00000100, 0x00000100, 0x01111111, // 0074h
|
||||
0x00000100, 0x00000100, 0x00000100, 0x01111000,
|
||||
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0075h
|
||||
0x01000001, 0x01000001, 0x01000001, 0x01111110,
|
||||
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0076h
|
||||
0x00100010, 0x00100010, 0x00010100, 0x00001000,
|
||||
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0077h
|
||||
0x01001001, 0x00101010, 0x00101010, 0x00010100,
|
||||
0x00000000, 0x00000000, 0x00100001, 0x00010010, // 0078h
|
||||
0x00001100, 0x00001100, 0x00010010, 0x00100001,
|
||||
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0079h
|
||||
0x00100010, 0x00011100, 0x00001000, 0x00000110,
|
||||
0x00000000, 0x00000000, 0x00111111, 0x00010000, // 007ah
|
||||
0x00001000, 0x00000100, 0x00000010, 0x00111111,
|
||||
0x00000000, 0x00001000, 0x00011110, 0x01100100, // 007bh
|
||||
0x00011000, 0x00100100, 0x00000100, 0x01111000,
|
||||
0x00000000, 0x00000000, 0x00011110, 0x00000100, // 007ch
|
||||
0x00011110, 0x00110101, 0x00101101, 0x00010010,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00010001, // 007dh
|
||||
0x00100001, 0x00100001, 0x00000001, 0x00000010,
|
||||
0x00000000, 0x00000000, 0x00011100, 0x00000000, // 007eh
|
||||
0x00011110, 0x00100000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x00000000, 0x00011100, 0x00000000, // 007fh
|
||||
0x00111110, 0x00010000, 0x00001100, 0x00110010,
|
||||
0x00000000, 0x00000000, 0x00000100, 0x00101111, // 0080h
|
||||
0x01000100, 0x00011110, 0x00100101, 0x00010110,
|
||||
0x00000000, 0x00000000, 0x00001010, 0x00011110, // 0081h
|
||||
0x00101011, 0x00100010, 0x00010100, 0x00000100,
|
||||
0x00000000, 0x00000000, 0x00001000, 0x00011101, // 0082h
|
||||
0x00101011, 0x00101001, 0x00011001, 0x00000100,
|
||||
0x00000000, 0x00000000, 0x00001000, 0x00111000, // 0083h
|
||||
0x00001000, 0x00011110, 0x00101001, 0x00000110,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00011100, // 0084h
|
||||
0x00100011, 0x00100000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x00000110, 0x01001001, 0x00110000, // 0085h
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000100, 0x00111111, 0x00000100, // 0086h
|
||||
0x00111110, 0x01010101, 0x01001101, 0x00100110,
|
||||
0x00000000, 0x00000000, 0x00100001, 0x01000001, // 0087h
|
||||
0x01000001, 0x01000001, 0x00000001, 0x00000010,
|
||||
0x00000000, 0x00111100, 0x00000000, 0x00111110, // 0088h
|
||||
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x00011100, 0x00000000, 0x00111110, // 0089h
|
||||
0x00010000, 0x00001000, 0x00010100, 0x01100010,
|
||||
0x00000000, 0x00100100, 0x01011111, 0x00000100, // 008ah
|
||||
0x00111110, 0x01000101, 0x01000101, 0x00100010,
|
||||
0x00000000, 0x00100010, 0x01001111, 0x01010010, // 008bh
|
||||
0x01010010, 0x00010010, 0x00010010, 0x00001001,
|
||||
0x00000000, 0x00000100, 0x00111110, 0x00001000, // 008ch
|
||||
0x00111110, 0x00010000, 0x00000010, 0x00111100,
|
||||
0x00000000, 0x00100000, 0x00011000, 0x00000110, // 008dh
|
||||
0x00000001, 0x00000110, 0x00011000, 0x00100000,
|
||||
0x00000000, 0x00100000, 0x01111101, 0x00100001, // 008eh
|
||||
0x00100001, 0x00100001, 0x00100001, 0x00010010,
|
||||
0x00000000, 0x00011110, 0x00100000, 0x00000000, // 008fh
|
||||
0x00000000, 0x00000001, 0x00000001, 0x00111110,
|
||||
0x00000000, 0x00001000, 0x01111111, 0x00010000, // 0090h
|
||||
0x00100000, 0x00000010, 0x00000010, 0x00111100,
|
||||
0x00000000, 0x00000001, 0x00000001, 0x00000001, // 0091h
|
||||
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||
0x00000000, 0x00010000, 0x01111111, 0x00011000, // 0092h
|
||||
0x00010100, 0x00010100, 0x00011000, 0x00001100,
|
||||
0x00000000, 0x00100010, 0x01111111, 0x00100010, // 0093h
|
||||
0x00100010, 0x00000010, 0x00000010, 0x01111100,
|
||||
0x00000000, 0x00111100, 0x00010000, 0x00001100, // 0094h
|
||||
0x01111111, 0x00001000, 0x00001000, 0x00110000,
|
||||
0x00000000, 0x00000100, 0x00011111, 0x00000100, // 0095h
|
||||
0x01110100, 0x00000010, 0x00001010, 0x01110010,
|
||||
0x00000000, 0x00001000, 0x01111111, 0x00000100, // 0096h
|
||||
0x00111100, 0x01000010, 0x01000000, 0x00111100,
|
||||
0x00000000, 0x00000000, 0x00011100, 0x00100011, // 0097h
|
||||
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x01111111, 0x00010000, 0x00001000, // 0098h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00110000,
|
||||
0x00000000, 0x00000010, 0x00110010, 0x00001100, // 0099h
|
||||
0x00000010, 0x00000001, 0x00000001, 0x00111110,
|
||||
0x00000000, 0x00100100, 0x01001111, 0x01000010, // 009ah
|
||||
0x00010001, 0x00111100, 0x00010010, 0x00001100,
|
||||
0x00000000, 0x00000010, 0x01111010, 0x01000010, // 009bh
|
||||
0x00000010, 0x00000010, 0x00001010, 0x01110010,
|
||||
0x00000000, 0x00100010, 0x00111110, 0x01010010, // 009ch
|
||||
0x01001011, 0x01101101, 0x01010101, 0x00110010,
|
||||
0x00000000, 0x00110010, 0x01001011, 0x01000110, // 009dh
|
||||
0x01000110, 0x01110010, 0x01001011, 0x00110010,
|
||||
0x00000000, 0x00011100, 0x00101010, 0x01001001, // 009eh
|
||||
0x01001001, 0x01000101, 0x01000101, 0x00110010,
|
||||
0x00000000, 0x00100001, 0x01111101, 0x00100001, // 009fh
|
||||
0x00100001, 0x00111001, 0x01100101, 0x00011001,
|
||||
0x00000000, 0x00000100, 0x00100011, 0x01100010, // 00a0h
|
||||
0x00100001, 0x00100001, 0x00010010, 0x00001100,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00a1h
|
||||
0x00000000, 0x00000100, 0x00001010, 0x00000100,
|
||||
0x00000000, 0x01110000, 0x00010000, 0x00010000, // 00a2h
|
||||
0x00010000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00a3h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00001110,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00a4h
|
||||
0x00000000, 0x00000010, 0x00000100, 0x00000100,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00011000, // 00a5h
|
||||
0x00011000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01111111, 0x01000000, 0x01111111, // 00a6h
|
||||
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x00000000, 0x00111111, 0x00100000, // 00a7h
|
||||
0x00010100, 0x00001100, 0x00000100, 0x00000010,
|
||||
0x00000000, 0x00000000, 0x00100000, 0x00100000, // 00a8h
|
||||
0x00010000, 0x00001111, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x00000000, 0x00000100, 0x00111111, // 00a9h
|
||||
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00111110, // 00aah
|
||||
0x00001000, 0x00001000, 0x00001000, 0x01111111,
|
||||
0x00000000, 0x00000000, 0x00010000, 0x00111111, // 00abh
|
||||
0x00011000, 0x00010100, 0x00010010, 0x00011001,
|
||||
0x00000000, 0x00000000, 0x00000010, 0x00111111, // 00ach
|
||||
0x00100010, 0x00010010, 0x00000100, 0x00000100,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00111110, // 00adh
|
||||
0x00100000, 0x00100000, 0x00100000, 0x01111111,
|
||||
0x00000000, 0x00000000, 0x00111110, 0x00100000, // 00aeh
|
||||
0x00111110, 0x00100000, 0x00100000, 0x00111110,
|
||||
0x00000000, 0x00000000, 0x00100101, 0x00101010, // 00afh
|
||||
0x00101010, 0x00100000, 0x00010000, 0x00001110,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00b0h
|
||||
0x01111111, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01111111, 0x01000000, 0x00101000, // 00b1h
|
||||
0x00011000, 0x00001000, 0x00001000, 0x00000100,
|
||||
0x00000000, 0x01000000, 0x00100000, 0x00011000, // 00b2h
|
||||
0x00010111, 0x00010000, 0x00010000, 0x00010000,
|
||||
0x00000000, 0x00001000, 0x01111111, 0x01000001, // 00b3h
|
||||
0x01000001, 0x01000000, 0x00100000, 0x00011000,
|
||||
0x00000000, 0x00000000, 0x00111110, 0x00001000, // 00b4h
|
||||
0x00001000, 0x00001000, 0x00001000, 0x01111111,
|
||||
0x00000000, 0x00100000, 0x01111111, 0x00110000, // 00b5h
|
||||
0x00101000, 0x00100100, 0x00100010, 0x00110001,
|
||||
0x00000000, 0x00000100, 0x01111111, 0x01000100, // 00b6h
|
||||
0x01000100, 0x01000100, 0x01000010, 0x00100001,
|
||||
0x00000000, 0x00000100, 0x00111111, 0x00001000, // 00b7h
|
||||
0x01111111, 0x00010000, 0x00010000, 0x00010000,
|
||||
0x00000000, 0x01111100, 0x01000100, 0x01000100, // 00b8h
|
||||
0x01000010, 0x01000000, 0x00100000, 0x00011000,
|
||||
0x00000000, 0x00000010, 0x01111110, 0x00100010, // 00b9h
|
||||
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x01111110, 0x01000000, 0x01000000, // 00bah
|
||||
0x01000000, 0x01000000, 0x01000000, 0x01111110,
|
||||
0x00000000, 0x00100010, 0x01111111, 0x00100010, // 00bbh
|
||||
0x00100010, 0x00100000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x00000011, 0x00000100, 0x01000011, // 00bch
|
||||
0x01000100, 0x00100000, 0x00011000, 0x00000111,
|
||||
0x00000000, 0x01111111, 0x01000000, 0x00100000, // 00bdh
|
||||
0x00010000, 0x00011000, 0x00100100, 0x01000011,
|
||||
0x00000000, 0x00000010, 0x01111111, 0x01000010, // 00beh
|
||||
0x00100010, 0x00000010, 0x00000010, 0x01111100,
|
||||
0x00000000, 0x01000001, 0x01000010, 0x01000000, // 00bfh
|
||||
0x00100000, 0x00100000, 0x00011000, 0x00000110,
|
||||
0x00000000, 0x01111110, 0x01000010, 0x01001110, // 00c0h
|
||||
0x01110001, 0x01000000, 0x00100000, 0x00011000,
|
||||
0x00000000, 0x01100000, 0x00011110, 0x00010000, // 00c1h
|
||||
0x01111111, 0x00010000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x01000101, 0x01001010, 0x01001010, // 00c2h
|
||||
0x01000000, 0x00100000, 0x00010000, 0x00001110,
|
||||
0x00000000, 0x00111110, 0x00000000, 0x01111111, // 00c3h
|
||||
0x00010000, 0x00010000, 0x00001000, 0x00000110,
|
||||
0x00000000, 0x00000010, 0x00000010, 0x00000110, // 00c4h
|
||||
0x00011010, 0x01100010, 0x00000010, 0x00000010,
|
||||
0x00000000, 0x00010000, 0x00010000, 0x01111111, // 00c5h
|
||||
0x00010000, 0x00010000, 0x00001000, 0x00000110,
|
||||
0x00000000, 0x00000000, 0x00111110, 0x00000000, // 00c6h
|
||||
0x00000000, 0x00000000, 0x00000000, 0x01111111,
|
||||
0x00000000, 0x01111110, 0x01000000, 0x01000100, // 00c7h
|
||||
0x00101000, 0x00010000, 0x00101000, 0x01000110,
|
||||
0x00000000, 0x00001000, 0x01111111, 0x00100000, // 00c8h
|
||||
0x00010000, 0x00011100, 0x01101011, 0x00001000,
|
||||
0x00000000, 0x01000000, 0x01000000, 0x01000000, // 00c9h
|
||||
0x00100000, 0x00100000, 0x00011000, 0x00000111,
|
||||
0x00000000, 0x00010010, 0x00100010, 0x00100010, // 00cah
|
||||
0x01000010, 0x01000010, 0x01000001, 0x01000001,
|
||||
0x00000000, 0x00000001, 0x00000001, 0x01111111, // 00cbh
|
||||
0x00000001, 0x00000001, 0x00000001, 0x01111110,
|
||||
0x00000000, 0x01111111, 0x01000000, 0x01000000, // 00cch
|
||||
0x01000000, 0x00100000, 0x00010000, 0x00001110,
|
||||
0x00000000, 0x00000000, 0x00000100, 0x00001010, // 00cdh
|
||||
0x00010001, 0x00100001, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00001000, 0x00001000, 0x01111111, // 00ceh
|
||||
0x00001000, 0x00101010, 0x01001010, 0x01001001,
|
||||
0x00000000, 0x01111111, 0x01000000, 0x01000000, // 00cfh
|
||||
0x00100010, 0x00010100, 0x00001000, 0x00010000,
|
||||
0x00000000, 0x00001110, 0x01110000, 0x00001110, // 00d0h
|
||||
0x01110000, 0x00000110, 0x00011000, 0x01100000,
|
||||
0x00000000, 0x00001000, 0x00001000, 0x00000100, // 00d1h
|
||||
0x00000100, 0x00100010, 0x01000010, 0x01111111,
|
||||
0x00000000, 0x01000000, 0x01000000, 0x00100100, // 00d2h
|
||||
0x00101000, 0x00010000, 0x00101100, 0x01000011,
|
||||
0x00000000, 0x01111111, 0x00000100, 0x01111111, // 00d3h
|
||||
0x00000100, 0x00000100, 0x00000100, 0x01111000,
|
||||
0x00000000, 0x00000010, 0x01111111, 0x01000010, // 00d4h
|
||||
0x00100010, 0x00010100, 0x00000100, 0x00000100,
|
||||
0x00000000, 0x00000000, 0x00111110, 0x00100000, // 00d5h
|
||||
0x00100000, 0x00100000, 0x00100000, 0x01111111,
|
||||
0x00000000, 0x01111110, 0x01000000, 0x01000000, // 00d6h
|
||||
0x01111110, 0x01000000, 0x01000000, 0x01111110,
|
||||
0x00000000, 0x00111110, 0x00000000, 0x01111111, // 00d7h
|
||||
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x01000010, 0x01000010, 0x01000010, // 00d8h
|
||||
0x01000010, 0x01000000, 0x00100000, 0x00011000,
|
||||
0x00000000, 0x00001010, 0x00001010, 0x00001010, // 00d9h
|
||||
0x01001010, 0x01001010, 0x00101010, 0x00011001,
|
||||
0x00000000, 0x00000010, 0x00000010, 0x01000010, // 00dah
|
||||
0x01000010, 0x00100010, 0x00010010, 0x00001110,
|
||||
0x00000000, 0x01111111, 0x01000001, 0x01000001, // 00dbh
|
||||
0x01000001, 0x01000001, 0x01000001, 0x01111111,
|
||||
0x00000000, 0x01111111, 0x01000001, 0x01000001, // 00dch
|
||||
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||
0x00000000, 0x01000011, 0x01000100, 0x01000000, // 00ddh
|
||||
0x01000000, 0x00100000, 0x00010000, 0x00001111,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00deh
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00dfh
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00011110, 0x00001000, 0x00000100, // 00e0h
|
||||
0x00101001, 0x01010001, 0x01010001, 0x00001100,
|
||||
0x00000000, 0x00000000, 0x00001100, 0x00010010, // 00e1h
|
||||
0x00010010, 0x00100001, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x01111101, 0x00100001, 0x01111101, // 00e2h
|
||||
0x00100001, 0x00111001, 0x01100101, 0x00011001,
|
||||
0x00000000, 0x00111100, 0x00010000, 0x00111100, // 00e3h
|
||||
0x00010000, 0x00011100, 0x00110010, 0x00001100,
|
||||
0x00000000, 0x00001110, 0x00101000, 0x00101000, // 00e4h
|
||||
0x00111110, 0x01100101, 0x00100101, 0x00010010,
|
||||
0x00000000, 0x00000100, 0x00101111, 0x01000100, // 00e5h
|
||||
0x00000110, 0x01000101, 0x01000101, 0x00111110,
|
||||
0x00000000, 0x00100010, 0x00100010, 0x00111110, // 00e6h
|
||||
0x01010010, 0x01010101, 0x01001101, 0x00100110,
|
||||
0x00000000, 0x00000100, 0x00011111, 0x00000010, // 00e7h
|
||||
0x00011111, 0x01000010, 0x01000010, 0x00111100,
|
||||
0x00000000, 0x00010010, 0x00111110, 0x01010011, // 00e8h
|
||||
0x01000010, 0x00100100, 0x00000100, 0x00000100,
|
||||
0x00000000, 0x00001000, 0x00111101, 0x01001011, // 00e9h
|
||||
0x01001001, 0x01001001, 0x00111000, 0x00000100,
|
||||
0x00000000, 0x00001000, 0x00111000, 0x00001000, // 00eah
|
||||
0x00001000, 0x00011110, 0x00101001, 0x00000110,
|
||||
0x00000000, 0x00011000, 0x00100000, 0x00000100, // 00ebh
|
||||
0x00111010, 0x01000110, 0x01000000, 0x00111000,
|
||||
0x00000000, 0x01000010, 0x01000010, 0x01000010, // 00ech
|
||||
0x01000110, 0x01000000, 0x00100000, 0x00011000,
|
||||
0x00000000, 0x00111110, 0x00010000, 0x00111100, // 00edh
|
||||
0x01000011, 0x01001100, 0x01010010, 0x00111100,
|
||||
0x00000000, 0x00100010, 0x00110011, 0x00101010, // 00eeh
|
||||
0x00100110, 0x00100010, 0x00100011, 0x01000010,
|
||||
0x00000000, 0x00111110, 0x00010000, 0x00111100, // 00efh
|
||||
0x01000011, 0x01000000, 0x01000010, 0x00111100,
|
||||
0x00000000, 0x00000010, 0x00111011, 0x01000110, // 00f0h
|
||||
0x01000010, 0x01000011, 0x01000010, 0x00110010,
|
||||
0x00000000, 0x00000100, 0x00000100, 0x00000010, // 00f1h
|
||||
0x01000110, 0x01000101, 0x01000101, 0x00111001,
|
||||
0x00000000, 0x01010100, 0x01111111, 0x00100100, // 00f2h
|
||||
0x00100100, 0x00100100, 0x00100010, 0x00010001,
|
||||
0x00000000, 0x01010100, 0x01011111, 0x00000100, // 00f3h
|
||||
0x00111111, 0x00001000, 0x00001000, 0x00001000,
|
||||
0x00000000, 0x01011110, 0x01100010, 0x00100010, // 00f4h
|
||||
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x01010010, 0x01111110, 0x00100010, // 00f5h
|
||||
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x01010000, 0x01111111, 0x00100000, // 00f6h
|
||||
0x00100000, 0x00100000, 0x00100000, 0x00111111,
|
||||
0x00000000, 0x01010010, 0x01010010, 0x00111111, // 00f7h
|
||||
0x00010010, 0x00010000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x01010011, 0x01010100, 0x00100011, // 00f8h
|
||||
0x00100100, 0x00010000, 0x00001000, 0x00000111,
|
||||
0x00000000, 0x01010000, 0x01011111, 0x00010000, // 00f9h
|
||||
0x00001000, 0x00001100, 0x00010010, 0x00100001,
|
||||
0x00000000, 0x01010010, 0x01111111, 0x00100010, // 00fah
|
||||
0x00010010, 0x00000010, 0x00000010, 0x00111100,
|
||||
0x00000000, 0x01010001, 0x01010010, 0x00100000, // 00fbh
|
||||
0x00100000, 0x00010000, 0x00001000, 0x00000110,
|
||||
0x00000000, 0x01011110, 0x01010010, 0x00100110, // 00fch
|
||||
0x00111001, 0x00100000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x01010000, 0x01011110, 0x00010000, // 00fdh
|
||||
0x01111111, 0x00010000, 0x00010000, 0x00001100,
|
||||
0x00000000, 0x00100101, 0x01001010, 0x00101010, // 00feh
|
||||
0x00100000, 0x00010000, 0x00001000, 0x00000111,
|
||||
0x00000000, 0x01011110, 0x01010000, 0x00111111, // 00ffh
|
||||
0x00001000, 0x00001000, 0x00001000, 0x00000110
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Palette data
|
||||
*---------------------------------------------------------------------------*/
|
||||
const u32 d_PaletteData[8 * 16] =
|
||||
{
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, // black
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x001f0000, 0x00000000, 0x00000000, 0x00000000, // red
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x03e00000, 0x00000000, 0x00000000, 0x00000000, // green
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x7c000000, 0x00000000, 0x00000000, 0x00000000, // blue
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x03ff0000, 0x00000000, 0x00000000, 0x00000000, // yellow
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x7c1f0000, 0x00000000, 0x00000000, 0x00000000, // purple
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x7fe00000, 0x00000000, 0x00000000, 0x00000000, // light blue
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00180000, 0x00000000, 0x00000000, 0x00000000, // dark red
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x03000000, 0x00000000, 0x00000000, 0x00000000, // dark green
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x60000000, 0x00000000, 0x00000000, 0x00000000, // dark blue
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x03180000, 0x00000000, 0x00000000, 0x00000000, // dark yellow
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x60180000, 0x00000000, 0x00000000, 0x00000000, // dark purple
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x63000000, 0x00000000, 0x00000000, 0x00000000, // dark light blue
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x56b50000, 0x00000000, 0x00000000, 0x00000000, // gray
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x2d6b0000, 0x00000000, 0x00000000, 0x00000000, // dark gray
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x7fff0000, 0x00000000, 0x00000000, 0x00000000, // white
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
};
|
259
src/main.c
Normal file
259
src/main.c
Normal file
@ -0,0 +1,259 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: SLOT-1 Boot Menu
|
||||
File: main.c
|
||||
|
||||
This source code is derived from "os_jump" in the TwlSDK
|
||||
|
||||
$Date:: 2024-02-01#$
|
||||
$Author: Lillian Skinner (rmc) $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include <twl.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "screen.h"
|
||||
#include "DEMO.h"
|
||||
#include "payload.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Constant Definitions
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define KEY_REPEAT_START 25 // Number of frames until key repeat starts
|
||||
#define KEY_REPEAT_SPAN 10 // Number of frames between key repeats
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Structure Definitions
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
// Key input data
|
||||
typedef struct KeyInfo
|
||||
{
|
||||
u16 cnt; // Unprocessed input value
|
||||
u16 trg; // Push trigger input
|
||||
u16 up; // Release trigger input
|
||||
u16 rep; // Press and hold repeat input
|
||||
} KeyInfo;
|
||||
|
||||
// Key input
|
||||
static KeyInfo gKey;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Payload stuffs
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
typedef unsigned char uu8;
|
||||
typedef unsigned short uu16;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Prototype
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
static void VBlankIntr(void);
|
||||
static void InitInterrupts(void);
|
||||
static void InitHeap(void);
|
||||
|
||||
static void ReadKey(KeyInfo* pKey);
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
void TwlMain(void)
|
||||
{
|
||||
OS_Init();
|
||||
OS_InitTick();
|
||||
OS_InitAlarm();
|
||||
|
||||
// When in NITRO mode, stopped by Panic
|
||||
DEMOCheckRunOnTWL();
|
||||
|
||||
GX_Init();
|
||||
GX_DispOff();
|
||||
GXS_DispOff();
|
||||
|
||||
InitHeap();
|
||||
InitScreen();
|
||||
InitInterrupts();
|
||||
|
||||
GX_DispOn();
|
||||
GXS_DispOn();
|
||||
|
||||
ClearScreen();
|
||||
|
||||
// Empty call for getting key input data (strategy for pressing A Button in the IPL)
|
||||
ReadKey(&gKey);
|
||||
|
||||
while(TRUE)
|
||||
{
|
||||
// Get key input data
|
||||
ReadKey(&gKey);
|
||||
|
||||
// Clear the main screen
|
||||
ClearScreen();
|
||||
|
||||
// 32 wide
|
||||
PutMainScreen(0, 0, 0xff, "SLOT-1 Boot Menu");
|
||||
PutMainScreen(0, 3, 0xff, "By rmc and Nintendo.");
|
||||
PutMainScreen(0, 4, 0xff, "https://rvtr.github.io/");
|
||||
|
||||
PutSubScreen(0, 0, 0xff, "SLOT-1 Boot Menu");
|
||||
PutSubScreen(0, 2, 0xff, " A: Launcher");
|
||||
PutSubScreen(0, 3, 0xff, " B: MachineSettings");
|
||||
PutSubScreen(0, 4, 0xff, " X: SD card (smdc:/boot.nds)");
|
||||
|
||||
if (gKey.trg & PAD_BUTTON_A)
|
||||
{
|
||||
if (FALSE == OS_JumpToSystemMenu() )
|
||||
{
|
||||
//Jump failure
|
||||
OS_Panic("Failed jump to Launcher!");
|
||||
}
|
||||
}
|
||||
|
||||
if (gKey.trg & PAD_BUTTON_B)
|
||||
{
|
||||
if (FALSE == OS_JumpToWirelessSetting())
|
||||
{
|
||||
//Jump failure
|
||||
OS_Panic("Failed jump to MachineSetting!");
|
||||
}
|
||||
}
|
||||
|
||||
if (gKey.trg & PAD_BUTTON_X)
|
||||
{
|
||||
// Adapted from nathanfarlow's stylehax (adapted from shutterbug2000 and zoogie's memory pit)
|
||||
uu8 *payload_dest = (uu8 *)0x02200000;
|
||||
|
||||
int i;
|
||||
|
||||
for (i=0; i < sizeof(mini_twl_payload); i++) {
|
||||
payload_dest[i] = mini_twl_payload[i];
|
||||
}
|
||||
// Call payload
|
||||
((void (*)())payload_dest)();
|
||||
}
|
||||
// Wait for V-Blank (this supports threading)
|
||||
OS_WaitVBlankIntr();
|
||||
}
|
||||
|
||||
OS_Terminate();
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: VBlankIntr
|
||||
|
||||
Description: V-Blank interrupt handler.
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void VBlankIntr(void)
|
||||
{
|
||||
// Updates text display
|
||||
UpdateScreen();
|
||||
|
||||
// Sets the IRQ check flag
|
||||
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: InitInterrupts
|
||||
|
||||
Description: Initializes the interrupt settings.
|
||||
Allows V-Blank interrupts and configures the interrupt handler.
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void InitInterrupts(void)
|
||||
{
|
||||
// V-Blank interrupt settings
|
||||
OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
|
||||
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||||
(void)GX_VBlankIntr(TRUE);
|
||||
|
||||
// Allow interrupts
|
||||
(void)OS_EnableIrq();
|
||||
(void)OS_EnableInterrupts();
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: InitHeap
|
||||
|
||||
Description: Initializes the memory allocation system within the main memory arena.
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void InitHeap(void)
|
||||
{
|
||||
void* tempLo;
|
||||
OSHeapHandle hh;
|
||||
|
||||
// Creates a heap in the main memory arena
|
||||
tempLo = OS_InitAlloc(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi(), 1);
|
||||
OS_SetArenaLo(OS_ARENA_MAIN, tempLo);
|
||||
hh = OS_CreateHeap(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi());
|
||||
if (hh < 0)
|
||||
{
|
||||
// Abnormal end when heap creation fails
|
||||
OS_Panic("ARM9: Fail to create heap...\n");
|
||||
}
|
||||
(void)OS_SetCurrentHeap(OS_ARENA_MAIN, hh);
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: ReadKey
|
||||
|
||||
Description: Gets key input data and edits the input data structure.
|
||||
Detects push, release, and push and hold repeat triggers.
|
||||
|
||||
Arguments: pKey: Key input structure to be changed
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void ReadKey(KeyInfo* pKey)
|
||||
{
|
||||
static u16 repeat_count[12];
|
||||
int i;
|
||||
u16 r;
|
||||
|
||||
r = PAD_Read();
|
||||
pKey->trg = 0x0000;
|
||||
pKey->up = 0x0000;
|
||||
pKey->rep = 0x0000;
|
||||
|
||||
for (i = 0; i < 12; i++)
|
||||
{
|
||||
if (r & (0x0001 << i))
|
||||
{
|
||||
if (!(pKey->cnt & (0x0001 << i)))
|
||||
{
|
||||
pKey->trg |= (0x0001 << i); // Press trigger
|
||||
repeat_count[i] = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (repeat_count[i] > KEY_REPEAT_START)
|
||||
{
|
||||
pKey->rep |= (0x0001 << i); // Press-and-hold repeat
|
||||
repeat_count[i] = (u16) (KEY_REPEAT_START - KEY_REPEAT_SPAN);
|
||||
}
|
||||
else
|
||||
{
|
||||
repeat_count[i]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pKey->cnt & (0x0001 << i))
|
||||
{
|
||||
pKey->up |= (0x0001 << i); // Release trigger
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pKey->cnt = r; // Unprocessed key input
|
||||
}
|
182
src/screen.c
Normal file
182
src/screen.c
Normal file
@ -0,0 +1,182 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: SLOT-1 Boot Menu
|
||||
File: screen.c
|
||||
|
||||
This source code is derived from "os_jump" in the TwlSDK
|
||||
|
||||
$Date:: 2024-02-01#$
|
||||
$Author: Lillian Skinner (rmc) $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include <nitro.h>
|
||||
#include "screen.h"
|
||||
#include "font.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Constant Definitions
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define TEXT_SCREEN_SIZE 2048
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Internal Variable Definitions
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
// Virtual screen [top and bottom screens][number of backgrounds][number of characters]
|
||||
static u16 gScreen[2 ][ 1 ][ TEXT_SCREEN_SIZE / sizeof(u16) ] ATTRIBUTE_ALIGN(32);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: InitScreen
|
||||
|
||||
Description: Initialize display settings for text display system.
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void InitScreen(void)
|
||||
{
|
||||
// Various VRAM initialization steps
|
||||
GX_SetBankForLCDC(GX_VRAM_LCDC_ALL);
|
||||
MI_CpuClearFast((void*)HW_LCDC_VRAM, HW_LCDC_VRAM_SIZE);
|
||||
(void)GX_DisableBankForLCDC();
|
||||
|
||||
// Initialize OAM
|
||||
MI_CpuFillFast((void*)HW_OAM, 0xc0, HW_OAM_SIZE);
|
||||
MI_CpuFillFast((void*)HW_DB_OAM, 0xc0, HW_DB_OAM_SIZE);
|
||||
|
||||
// Initialize palette
|
||||
MI_CpuClearFast((void*)HW_PLTT, HW_PLTT_SIZE);
|
||||
MI_CpuClearFast((void*)HW_DB_PLTT, HW_DB_PLTT_SIZE);
|
||||
|
||||
// Top screen settings
|
||||
GX_SetBankForBG(GX_VRAM_BG_128_A);
|
||||
G2_SetBG0Control(GX_BG_SCRSIZE_TEXT_256x256, GX_BG_COLORMODE_16, GX_BG_SCRBASE_0x0000, GX_BG_CHARBASE_0x04000,
|
||||
GX_BG_EXTPLTT_01);
|
||||
G2_SetBG0Priority(0);
|
||||
GX_SetGraphicsMode(GX_DISPMODE_GRAPHICS, GX_BGMODE_0, GX_BG0_AS_2D);
|
||||
GX_SetVisiblePlane(GX_PLANEMASK_BG0);
|
||||
GX_LoadBG0Char(d_CharData, 0, sizeof(d_CharData));
|
||||
GX_LoadBGPltt(d_PaletteData, 0, sizeof(d_PaletteData));
|
||||
((u16*)HW_PLTT)[0] = 0x0000; // Black
|
||||
MI_CpuFillFast(gScreen[0][0], 0, TEXT_SCREEN_SIZE);
|
||||
DC_StoreRange(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||
GX_LoadBG0Scr(gScreen[0][0], 0, TEXT_SCREEN_SIZE);
|
||||
|
||||
// Bottom screen settings
|
||||
GX_SetBankForSubBG(GX_VRAM_SUB_BG_32_H);
|
||||
G2S_SetBG0Control(GX_BG_SCRSIZE_TEXT_256x256, GX_BG_COLORMODE_16, GX_BG_SCRBASE_0x0000, GX_BG_CHARBASE_0x04000,
|
||||
GX_BG_EXTPLTT_01);
|
||||
G2S_SetBG0Priority(0);
|
||||
GXS_SetGraphicsMode(GX_BGMODE_0);
|
||||
GXS_SetVisiblePlane(GX_PLANEMASK_BG0);
|
||||
GXS_LoadBG0Char(d_CharData, 0, sizeof(d_CharData));
|
||||
GXS_LoadBGPltt(d_PaletteData, 0, sizeof(d_PaletteData));
|
||||
((u16*)HW_DB_PLTT)[0] = 0x0000; // Black
|
||||
MI_CpuFillFast(gScreen[1][0], 0, TEXT_SCREEN_SIZE);
|
||||
DC_StoreRange(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||
GXS_LoadBG0Scr(gScreen[1][0], 0, TEXT_SCREEN_SIZE);
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: ClearScreen
|
||||
|
||||
Description: Clears text display from the screen.
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void ClearScreen(void)
|
||||
{
|
||||
MI_CpuClearFast(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||
MI_CpuClearFast(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||
}
|
||||
void ClearMainScreen(void)
|
||||
{
|
||||
MI_CpuClearFast(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||
|
||||
}
|
||||
void ClearSubScreen(void)
|
||||
{
|
||||
MI_CpuClearFast(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||
}
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: PutMainScreen
|
||||
|
||||
Description: Outputs text to main screen.
|
||||
|
||||
Arguments: text: String to be output
|
||||
...: Virtual argument
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void PutMainScreen(s32 x, s32 y, u8 palette, char* text, ...)
|
||||
{
|
||||
va_list vlist;
|
||||
char temp[33];
|
||||
s32 i;
|
||||
|
||||
va_start(vlist, text);
|
||||
(void)vsnprintf(temp, 33, text, vlist);
|
||||
va_end(vlist);
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
if (temp[i] == 0x00)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
gScreen[0][0][((y * 32) + x + i) % (32 * 32)] = (u16) (palette << 12 | temp[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: PrintSubScreen
|
||||
|
||||
Description: Outputs text to the sub-screen.
|
||||
|
||||
Arguments: text: String to be output
|
||||
...: Virtual argument
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void PutSubScreen(s32 x, s32 y, u8 palette, char* text, ...)
|
||||
{
|
||||
va_list vlist;
|
||||
char temp[33];
|
||||
s32 i;
|
||||
|
||||
va_start(vlist, text);
|
||||
(void)vsnprintf(temp, 33, text, vlist);
|
||||
va_end(vlist);
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
if (temp[i] == 0x00)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
gScreen[1][0][((y * 32) + x + i) % (32 * 32)] = (u16) (palette << 12 | temp[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: UpdateScreen
|
||||
|
||||
Description: Reflects the virtual screen content to VRAM.
|
||||
Assumed to be called during the V-Blank period.
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void UpdateScreen(void)
|
||||
{
|
||||
// Reflects the virtual screen content to V-RAM
|
||||
DC_StoreRange(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||
GX_LoadBG0Scr(gScreen[0][0], 0, TEXT_SCREEN_SIZE);
|
||||
DC_StoreRange(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||
GXS_LoadBG0Scr(gScreen[1][0], 0, TEXT_SCREEN_SIZE);
|
||||
}
|
Loading…
Reference in New Issue
Block a user