diff --git a/config/rel_slices.yml b/config/rel_slices.yml index 1a38324e..1dc5a17e 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -133,3 +133,14 @@ sys_dynamic.c: # ac_aprilfool_control/aPC_actor_dt.c: common_data is pure bs, # .text: [0x805153f0, 0x8051542C] +# dataobject.obj files +data/titledemo/pact0.c: + .data: [0x80C411D8, 0x80C42038] +data/titledemo/pact1.c: + .data: [0x80C42038, 0x80C42E98] +data/titledemo/pact2.c: + .data: [0x80C42E98, 0x80C43D18] +data/titledemo/pact3.c: + .data: [0x80C43D18, 0x80C44B98] +data/titledemo/pact4.c: + .data: [0x80C44B98, 0x80C45A08] diff --git a/include/m_bgm.h b/include/m_bgm.h index 8433b003..392f40d1 100644 --- a/include/m_bgm.h +++ b/include/m_bgm.h @@ -10,6 +10,7 @@ extern "C" { extern void mBGM_reset(); extern void mBGMPsComp_make_ps_lost_fanfare(u8 bgm_no, u16 unk); extern void mBGMPsComp_scene_mode(int scene_mode); +extern void mBGMPsComp_make_ps_wipe(u16 ps_wipe); #ifdef __cplusplus } diff --git a/include/m_common_data.h b/include/m_common_data.h index 0d4a5803..329c4752 100644 --- a/include/m_common_data.h +++ b/include/m_common_data.h @@ -179,7 +179,15 @@ typedef struct common_data_s { /* 0x02887C */ u8 save_error_type; /* set to one of the mFRm_ERROR_* states when save is invalid */ /* 0x02887D */ u8 train_coming_flag; /* set when the train is coming */ /* 0x02887E */ u8 buried_treasure_flag; /* when set, treasure cannot be buried */ - /* 0x02887F */ u8 tmp2[0x288A0 - 0x2887F]; + /* 0x02887F */ u8 spnpc_first_talk_flags; + /* 0x028880 */ u8 needlework_first_talk_flags; + /* 0x028882 */ u16 event_notification_active; + /* 0x028884 */ lbRTC_time_c newly_set_time; /* time set by player in time adjust menu */ + /* 0x02888C */ lbRTC_time_c old_time; /* time before being changed by the player */ + /* 0x028894 */ s16 balloon_state; /* balloon's current state */ + /* 0x028896 */ s16 balloon_last_spawn_min; /* last minute the balloon was spawned */ + /* 0x028898 */ f32 balloon_spawn_percent; /* chance that a balloon will spawn */ + /* 0x02889C */ int nook_shop_state; /* adjusted based on any current events happening to Nook's shop */ /* 0x0288A0 */ u8 pad_connected; /* is gamepad 0 connected? */ /* 0x0288A1 */ u8 _288a1[0x02DB40 - 0x0288A1]; /* 0x02DB40 */ u8 auto_nwrite_set; /* when true, saved nwrite time will be utilized. Seems to be used to keep same date for fishing tourney stuff. */ diff --git a/include/m_fbdemo.h b/include/m_fbdemo.h index c9e1a5c7..c227e880 100644 --- a/include/m_fbdemo.h +++ b/include/m_fbdemo.h @@ -3,34 +3,30 @@ #include "types.h" #include "PR/mbi.h" - -typedef struct { - /* 0x0 */ f32 x; - /* 0x4 */ f32 y; -} TransitionTileVtxData; // size = 0x8 +#include "m_lib.h" typedef struct { /* 0x00 */ int cols; /* 0x04 */ int rows; /* 0x08 */ int frame; - /* 0x0C */ TransitionTileVtxData* vtxData; + /* 0x0C */ xy_t* vtxData; /* 0x10 */ Vtx* vtxFrame1; /* 0x14 */ Vtx* vtxFrame2; /* 0x18 */ Mtx projection; - /* 0x58 */ Mtx modelView; - /* 0x98 */ Mtx unk_98; + /* 0x58 */ Mtx modelView1; + /* 0x98 */ Mtx modelView2; /* 0xD8 */ Gfx* gfx; // "gfxtbl" /* 0xDC */ u16* zBuffer; -} TransitionTile; // size = 0xE0 +} fbdemo; // size = 0xE0 -extern void fbdemo_init_gfx(TransitionTile*); -extern void fbdemo_init_data(TransitionTile*); -extern void fbdemo_cleanup(TransitionTile*); -extern TransitionTile* fbdemo_init(TransitionTile*, int, int); -extern void fbdemo_update(TransitionTile*); -extern void fbdemo_draw(TransitionTile*, Gfx**); -extern void fbdemo_move(void); +extern void fbdemo_init_gfx(fbdemo*); +extern void fbdemo_init_data(fbdemo*); +extern void fbdemo_cleanup(fbdemo*); +extern fbdemo* fbdemo_init(fbdemo*, int, int); +extern void fbdemo_update(fbdemo*); +extern void fbdemo_draw(fbdemo*, Gfx**); +extern void fbdemo_move(fbdemo*); #endif diff --git a/include/m_fbdemo_fade.h b/include/m_fbdemo_fade.h index cc4a5f17..6c017995 100644 --- a/include/m_fbdemo_fade.h +++ b/include/m_fbdemo_fade.h @@ -13,14 +13,14 @@ typedef struct { /* 0x008 */ s16 frame; /* 0x00A */ u16 unkA; /* 0x00C */ u16 timer; -} TransitionFade; // size = 0x10 +} fbdemo_fade; // size = 0x10 -extern TransitionFade* fbdemo_fade_init(TransitionFade*); -extern void fbdemo_fade_move(TransitionFade*, int); -extern void fbdemo_fade_startup(TransitionFade*); -extern void fbdemo_fade_settype(TransitionFade*, int); -extern void fbdemo_fade_setcolor_rgba8888(TransitionFade*, u32); -extern u8 fbdemo_fade_is_finish(TransitionFade*); +extern fbdemo_fade* fbdemo_fade_init(fbdemo_fade*); +extern void fbdemo_fade_move(fbdemo_fade*, int); +extern void fbdemo_fade_startup(fbdemo_fade*); +extern void fbdemo_fade_settype(fbdemo_fade*, int); +extern void fbdemo_fade_setcolor_rgba8888(fbdemo_fade*, u32); +extern u8 fbdemo_fade_is_finish(fbdemo_fade*); #endif \ No newline at end of file diff --git a/include/m_fbdemo_triforce.h b/include/m_fbdemo_triforce.h index ec5a371f..1824a8b9 100644 --- a/include/m_fbdemo_triforce.h +++ b/include/m_fbdemo_triforce.h @@ -16,14 +16,14 @@ typedef struct { /* 0x0E*/ u8 temp2[2]; /* 0x10 */ Mtx perspmtx; /* 0x50 */ Mtx lookatmtx; -} TransitionTriforce; // size = 0x90; +} fbdemo_triforce; // size = 0x90; -extern void fbdemo_triforce_startup(TransitionTriforce*); -extern TransitionTriforce* fbdemo_triforce_init(TransitionTriforce*); -extern void fbdemo_triforce_move(TransitionTriforce*, int); -extern void fbdemo_triforce_draw(TransitionTriforce*, Gfx**); -extern s8 fbdemo_triforce_is_finish(TransitionTriforce*); -extern void fbdemo_triforce_settype(TransitionTriforce*, int); +extern void fbdemo_triforce_startup(fbdemo_triforce*); +extern fbdemo_triforce* fbdemo_triforce_init(fbdemo_triforce*); +extern void fbdemo_triforce_move(fbdemo_triforce*, int); +extern void fbdemo_triforce_draw(fbdemo_triforce*, Gfx**); +extern s8 fbdemo_triforce_is_finish(fbdemo_triforce*); +extern void fbdemo_triforce_settype(fbdemo_triforce*, int); extern void fbdemo_fade_setcolor_rgba8888(void); diff --git a/include/m_fbdemo_wipe.h b/include/m_fbdemo_wipe.h new file mode 100644 index 00000000..aa0096aa --- /dev/null +++ b/include/m_fbdemo_wipe.h @@ -0,0 +1,51 @@ +#ifndef M_FBDEMO_WIPE_H +#define M_FBDEMO_WIPE_H + +#include "types.h" +#include "m_fbdemo.h" +#include "m_fbdemo_wipe1.h" +#include "m_fbdemo_fade.h" +#include "m_fbdemo_triforce.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef union fbdemo_wipe_union { + fbdemo_wipe1 fbdemo_wipe1; + fbdemo_triforce fbdemo_triforce; + fbdemo_fade fbdemo_fade; +} fbdemo_wipe_u; + +typedef fbdemo_wipe_u* (*FBDEMO_INIT_PROC)(fbdemo_wipe_u*); +typedef void (*FBDEMO_CLEANUP_PROC)(fbdemo_wipe_u*); +typedef void (*FBDEMO_MOVE_PROC)(fbdemo_wipe_u*, int); +typedef void (*FBDEMO_DRAW_PROC)(fbdemo_wipe_u*, Gfx**); +typedef void (*FBDEMO_STARTUP_PROC)(fbdemo_wipe_u*); +typedef void (*FBDEMO_SETTYPE_PROC)(fbdemo_wipe_u*, int); +typedef void (*FBDEMO_SETCOLOR_PROC)(fbdemo_wipe_u*, u32); +typedef int (*FBDEMO_ISFINISHED_PROC)(fbdemo_wipe_u*); + +typedef struct { + FBDEMO_INIT_PROC init_proc; + FBDEMO_CLEANUP_PROC cleanup_proc; + FBDEMO_MOVE_PROC move_proc; + FBDEMO_DRAW_PROC draw_proc; + FBDEMO_STARTUP_PROC startup_proc; + FBDEMO_SETTYPE_PROC settype_proc; + FBDEMO_SETCOLOR_PROC setcolor_proc; + void* unused_proc; // unknown + FBDEMO_ISFINISHED_PROC isfinished_proc; +} fbdemo_wipe_proc_c; + +typedef struct { + fbdemo_wipe_u wipe_data; + int wipe_type; + fbdemo_wipe_proc_c wipe_procs; +} fbdemo_wipe; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/m_fbdemo_wipe1.h b/include/m_fbdemo_wipe1.h index acf89f61..f48b9813 100644 --- a/include/m_fbdemo_wipe1.h +++ b/include/m_fbdemo_wipe1.h @@ -16,14 +16,14 @@ typedef struct { /* 0x018 */ Mtx projection; /* 0x058 */ Mtx lookAt; /* 0x098 */ Mtx modelView[2][3]; -} TransitionWipe; // size = 0x218 +} fbdemo_wipe1; // size = 0x218 -extern TransitionWipe* fbdemo_wipe1_init(TransitionWipe*); -extern void fbdemo_wipe1_move(TransitionWipe*, int); -extern void fbdemo_wipe1_draw(TransitionWipe*, Gfx**); -extern void fbdemo_wipe1_startup(TransitionWipe*); -extern void fbdemo_wipe1_settype(TransitionWipe*, int); -extern void fbdemo_wipe1_setcolor_rgba8888(TransitionWipe*, u32); -extern u8 fbdemo_wipe1_is_finish(TransitionWipe*); +extern fbdemo_wipe1* fbdemo_wipe1_init(fbdemo_wipe1*); +extern void fbdemo_wipe1_move(fbdemo_wipe1*, int); +extern void fbdemo_wipe1_draw(fbdemo_wipe1*, Gfx**); +extern void fbdemo_wipe1_startup(fbdemo_wipe1*); +extern void fbdemo_wipe1_settype(fbdemo_wipe1*, int); +extern void fbdemo_wipe1_setcolor_rgba8888(fbdemo_wipe1*, u32); +extern u8 fbdemo_wipe1_is_finish(fbdemo_wipe1*); #endif \ No newline at end of file diff --git a/include/m_name_table.h b/include/m_name_table.h index 4698a9f2..369ac104 100644 --- a/include/m_name_table.h +++ b/include/m_name_table.h @@ -329,6 +329,7 @@ extern int mNT_check_unknown(mActor_name_t item_no); #define ITM_AXE 0x2201 #define ITM_SHOVEL 0x2202 #define ITM_ROD 0x2203 +#define ITM_GELATO_UMBRELLA 0x2204 #define ITM_DUST0_EMPTY_CAN 0x250E #define ITM_DUST1_BOOT 0x250F diff --git a/include/m_play.h b/include/m_play.h index 45534c61..8e6191c1 100644 --- a/include/m_play.h +++ b/include/m_play.h @@ -17,7 +17,12 @@ typedef struct game_play_s { /* 0x1DA0 */ int isPause; /* 0x1DA4 */ u8 _temp[0x268]; /* 0x200C */ MtxF matrix; - /* 0x204C */ u8 _204C[0x2600-0x204C]; + /* 0x204C */ u8 _204C[0x20D0-0x204C]; + /* 0x20D0 */ u8 fb_fade_type; + /* 0x20D1 */ u8 fb_wipe_type; + /* 0x20D2 */ u8 fb_mode; + /* 0x20D3 */ u8 fb_wipe_mode; + /* 0x20D4 */ u8 _20D4[0x2600 - 0x20D4]; } GAME_PLAY; extern void play_init(GAME_PLAY* play); diff --git a/include/m_player_lib.h b/include/m_player_lib.h index e8da4979..1266d840 100644 --- a/include/m_player_lib.h +++ b/include/m_player_lib.h @@ -9,6 +9,9 @@ extern "C" { #endif extern PLAYER_ACTOR* get_player_actor_withoutCheck(GAME_PLAY* play); +extern void mPlib_SetData1_controller_data_for_title_demo(f32 stick_x, f32 stick_y, int btn_a, int btn_b); +extern void mPlib_SetData2_controller_data_for_title_demo(mActor_name_t tool); +extern void mPlib_request_main_invade_type1(GAME_PLAY* play); #ifdef __cplusplus } diff --git a/include/m_titledemo.h b/include/m_titledemo.h index ee7783a2..d9046b2a 100644 --- a/include/m_titledemo.h +++ b/include/m_titledemo.h @@ -9,8 +9,26 @@ extern "C" { #define mTD_TITLE_DEMO_NUM 5 -extern int mTD_get_titledemo_no(); +/* key presses for title screen */ +extern u16 pact0_key_data[]; +extern u16 pact1_key_data[]; +extern u16 pact2_key_data[]; +extern u16 pact3_key_data[]; +extern u16 pact4_key_data[]; + +/* initial state for title screen */ +extern u16 pact0_head_table[]; +extern u16 pact1_head_table[]; +extern u16 pact2_head_table[]; +extern u16 pact3_head_table[]; +extern u16 pact4_head_table[]; + extern int mTD_demono_get(); +extern void title_demo_move(GAME_PLAY* play); +extern void mTD_rtc_set(); +extern void mTD_rtc_reserve(); +extern int mTD_get_titledemo_no(); +extern int mTD_tdemo_button_ok_check(); #ifdef __cplusplus } diff --git a/rel/data/titledemo/pact0.c b/rel/data/titledemo/pact0.c new file mode 100644 index 00000000..0ce796ba --- /dev/null +++ b/rel/data/titledemo/pact0.c @@ -0,0 +1,225 @@ +#include "types.h" + +u16 pact0_head_table[] = { + 0x0884, 0x00C8, 0x0338, /* position */ + 0xB77D, /* angle (258.03039550781 deg) */ + 0x0000, /* tool */ + 0x0721 /* scale/size? */ +}; + +/** + * Key data format: + * XXXXXXXB YYYYYYYA + * + * That is to say, + * 1 bit for A press + * 7 bits for stick Y angle + * 1 bit for B press + * 7 bits for stick X angle + **/ +u16 pact0_key_data[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x02EC, 0x04EA, 0x06E4, + 0x06E4, 0x06E4, 0x06E4, 0x06E4, 0x06E4, 0x06E4, 0x06E4, 0x06E4, 0x0AE4, + 0x0EE4, 0x10E4, 0x12E4, 0x12E4, 0x14E4, 0x16E4, 0x18E4, 0x1AE6, 0x1CE8, + 0x1EEC, 0x24EE, 0x26F2, 0x2CF4, 0x30F8, 0x32FC, 0x36FC, 0x36FE, 0x36FE, + 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, + 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, + 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, + 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, 0x36FE, + 0x36FE, 0x36FE, 0x36F8, 0x36F4, 0x36F2, 0x36EE, 0x36EC, 0x36E8, 0x36E4, + 0x34DE, 0x32DA, 0x30D6, 0x2ED4, 0x2ED4, 0x2CD2, 0x2CD2, 0x2CD0, 0x2CD0, + 0x28CE, 0x24CE, 0x20CE, 0x16CE, 0x0ACE, 0x0ACE, 0x0ACE, 0x0ACE, 0x0ACE, + 0x0ACE, 0x0ACE, 0x0ACE, 0x0ACE, 0x0ACE, 0x0ACE, 0x08CC, 0x06CC, 0x06CA, + 0x06CA, 0x06CA, 0x06CA, 0x04CA, 0x04CA, 0x04CA, 0x04CA, 0x04C8, 0x02C8, + 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, + 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, + 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0xFEC8, 0xF6C8, 0xE6CA, + 0xDACA, 0xD8CA, 0xD6CA, 0xD6CA, 0xD6CA, 0xD6CA, 0xD6CC, 0xD4CC, 0xD4CC, + 0xD4CE, 0xD2D0, 0xD2D0, 0xD0D4, 0xD0D4, 0xCED8, 0xCEDE, 0xCEE4, 0xCEEA, + 0xCEF0, 0xCEF2, 0xCEF6, 0xCEF8, 0xCCF8, 0xCCF8, 0xCCF8, 0xCCF8, 0xCCF8, + 0xCCFA, 0xCAFA, 0xCAFA, 0xCAFA, 0xCAFC, 0xCAFC, 0xCAFC, 0xCAFC, 0xCAFC, + 0xCAFC, 0xCAFC, 0xCAFC, 0xCAFC, 0xCAFC, 0xCAFC, 0xCAFC, 0xCAFC, 0xCA00, + 0xCA04, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, + 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, 0xCA06, + 0xCA0A, 0xCA0C, 0xCA10, 0xCC12, 0xCC14, 0xCE16, 0xD018, 0xD21C, 0xD21C, + 0xD41C, 0xD61E, 0xDA20, 0xDE24, 0xDE26, 0xDE26, 0xDE26, 0xDE26, 0xDE26, + 0xE026, 0xE226, 0xE226, 0xE626, 0xF026, 0xFA26, 0xFE26, 0xFE26, 0xFE26, + 0xFE26, 0xFE26, 0xFE26, 0xFE26, 0xFE26, 0x0026, 0x0024, 0x0224, 0x0224, + 0x0220, 0x021A, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xF8E8, 0xF8E6, 0xF8E4, 0xF8E4, 0xF8E4, + 0xF8E4, 0xF8E4, 0xF8E4, 0xF8E4, 0xF8E4, 0xF8E4, 0xF8E4, 0xF8E4, 0xF8E4, + 0xF8E0, 0xF8DC, 0xF8DA, 0xF8D8, 0xF8D8, 0xF6D4, 0xF6D4, 0xF6D0, 0xF2CE, + 0xEECE, 0xEACE, 0xE6CE, 0xE4CE, 0xE0CE, 0xDECE, 0xDECE, 0xDCCE, 0xDACE, + 0xD4CC, 0xD2CC, 0xCCCA, 0xC8C8, 0xC8C8, 0xC8C8, 0xC8C8, 0xC8C8, 0xC8C8, + 0xC8CA, 0xC8D4, 0xC8D8, 0xC6E2, 0xC4EA, 0xC2EE, 0xC0F4, 0xC0F6, 0xBAF8, + 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FA, + 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FA, 0xB8FC, 0xB8FC, 0xB8FC, 0xB8FC, 0xB8FC, + 0xB8FC, 0xB200, 0xAC04, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, + 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, + 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, 0xAC06, + 0xAC06, 0xAC06, 0xAC06, 0xA806, 0xA406, 0xA406, 0xA406, 0xA406, 0xA406, + 0xA406, 0xA406, 0xA406, 0xA406, 0xA406, 0xA406, 0xA406, 0xA406, 0xA406, + 0xA606, 0xA406, 0xAA06, 0xAE06, 0xB008, 0xB00A, 0xB20A, 0xB20A, 0xB20A, + 0xB20A, 0xB20E, 0xB414, 0xB61A, 0xB61C, 0xB61C, 0xB61C, 0xB61C, 0xB61C, + 0xB61C, 0xB61C, 0xB61C, 0xB61C, 0xB61C, 0xB61C, 0xB61C, 0xB61C, 0xB61C, + 0xB618, 0xB612, 0xB40C, 0xB206, 0xB206, 0xB206, 0xB206, 0xB206, 0xB206, + 0xB206, 0xB206, 0xB206, 0xB204, 0xB200, 0xB200, 0xB200, 0xB200, 0xB2FE, + 0xB2FE, 0xB2FE, 0xB2FC, 0xB4FC, 0xB6F6, 0xB6F0, 0xB6EA, 0xB8E6, 0xB8E6, + 0xB8E2, 0xBADE, 0xBADA, 0xBCDA, 0xBCD8, 0xBCD6, 0xC0D4, 0xC4D0, 0xC6CC, + 0xC6CA, 0xC6CA, 0xC6CA, 0xC6CA, 0xC6CA, 0xC6CA, 0xC6C8, 0xC6C8, 0xC6C8, + 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, + 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, 0xC6C8, + 0xC6C6, 0xC6C6, 0xC6C6, 0xC6C6, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, + 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, + 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, + 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, 0xC6C4, + 0xC6C4, 0xC6C4, 0xC6C4, 0xC4C4, 0xC4D0, 0xC4E0, 0xC4E6, 0xC4EC, 0xC4F0, + 0xC4F0, 0xC2F4, 0xBEF8, 0xBEF8, 0xBEF8, 0xBEF8, 0xBEF8, 0xBEF8, 0xBCF8, + 0xBCF8, 0xBCF8, 0xBCFA, 0xBCFA, 0xBCFA, 0xBCFA, 0xBCFA, 0xBAFA, 0xBAFA, + 0xB6FC, 0xB4FC, 0xAC00, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, + 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, + 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA02, 0xAA04, + 0xB210, 0xB212, 0xB212, 0xB212, 0xB414, 0xB416, 0xB61A, 0xB61C, 0xBA20, + 0xBC24, 0xBE28, 0xBE28, 0xBE28, 0xBE28, 0xBE2A, 0xBE2C, 0xC030, 0xC030, + 0xC032, 0xC034, 0xC234, 0xC236, 0xC236, 0xC236, 0xC236, 0xC236, 0xC236, + 0xC236, 0xC236, 0xC236, 0xC236, 0xC236, 0xC034, 0xC030, 0xBE28, 0xBA20, + 0xB61C, 0xB416, 0xB214, 0xB212, 0xB212, 0xB210, 0xB00E, 0xB00C, 0xAE0A, + 0xAE08, 0xA800, 0xA2FE, 0xA2FC, 0xA2FC, 0xA2FC, 0xA2FC, 0xA2FC, 0xA2FC, + 0xA2FC, 0xA2FC, 0xA2FC, 0xA2FC, 0xA2FC, 0xA2FC, 0xA6FE, 0xA8FE, 0xA8FE, + 0xAAFE, 0xAA00, 0xAA00, 0xAA00, 0xAE02, 0xB004, 0xB004, 0xB204, 0xB406, + 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, + 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, + 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, + 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, + 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, 0xB406, + 0xB406, 0xB406, 0xB406, 0xB608, 0xB80E, 0xBA10, 0xBC12, 0xBC14, 0xBC14, + 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, + 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, 0xBC14, + 0xBC14, 0xC01A, 0xC21E, 0xC420, 0xC420, 0xC420, 0xC420, 0xC420, 0xC420, + 0xC420, 0xC420, 0xC420, 0xC220, 0xC21A, 0xC212, 0xC008, 0xBE04, 0xBE00, + 0xBE00, 0xBEFE, 0xBEFC, 0xBEFA, 0xBEF4, 0xC6E6, 0xCCDE, 0xCED6, 0xD0D0, + 0xD0CE, 0xD0CE, 0xD0CE, 0xD0CC, 0xD2CC, 0xD2CC, 0xD2CA, 0xD2CA, 0xD2CA, + 0xD2CA, 0xD2CA, 0xD2C8, 0xD2C8, 0xD4C6, 0xD4C6, 0xD6C4, 0xD6C4, 0xD8C0, + 0xDCBE, 0xE0BC, 0xE4BC, 0xE4BA, 0xE4BA, 0xE4BA, 0xE4BA, 0xE4BA, 0xE4B8, + 0xE4B8, 0xE4B6, 0xE4B6, 0xE4B6, 0xE6B2, 0xE6B0, 0xEAAE, 0xECAE, 0xECAC, + 0xECAC, 0xECAC, 0xECAC, 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xECA8, + 0xEEA6, 0xF2A2, 0xF6A0, 0xF69E, 0xF69E, 0xF69E, 0xF89E, 0xFA9C, 0xFA9A, + 0xFA96, 0xFC92, 0xFC8E, 0xFC8E, 0xFC8E, 0xFC8E, 0xFC8E, 0xFC8E, 0xFC8E, + 0xFC8E, 0xFC8E, 0xFE8E, 0xFE8E, 0xFE8E, 0xFE90, 0x0090, 0x0092, 0x0092, + 0x0094, 0x0094, 0x0096, 0x0096, 0x0096, 0x0098, 0x0098, 0x009A, 0x009A, + 0x009A, 0x009A, 0x009A, 0x009A, 0x009A, 0x009A, 0x009A, 0x009A, 0x009A, + 0x009A, 0x009A, 0xFE9C, 0xFEA0, 0xF6A0, 0xF6A0, 0xF6A0, 0xF6A0, 0xF6A0, + 0xF6A0, 0xF6A0, 0xF6A0, 0xF2A4, 0xF2A4, 0xF0A4, 0xEEA6, 0xECAA, 0xECAA, + 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xECAA, + 0xECAA, 0xECAA, 0xECAA, 0xECAA, 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, + 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, 0xEEAA, + 0xEEAA, 0xEEAA, 0xEEAA, 0xF0AA, 0xF0AA, 0xF0AA, 0xF4AA, 0xF6AA, 0xF6AA, + 0xF6AA, 0xF6AA, 0xF6AA, 0xF6AA, 0xF6AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, + 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, + 0xF8AA, 0xF8AA, 0xFAAA, 0xFAAA, 0xFAAA, 0xFAAA, 0xFAAA, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCAA, 0xFCA8, 0xFEA8, 0xFEA8, 0xFEA8, 0xFEA8, 0xFEA8, 0xFEA6, + 0xFEA6, 0x00A6, 0x02A6, 0x02A6, 0x02A6, 0x02A6, 0x02A6, 0x02A6, 0x02A4, + 0x02A2, 0x02A0, 0x02A0, 0x02A0, 0x02A0, 0x02A0, 0x02A0, 0x02A0, 0x00A0, + 0x00A0, 0x00A0, 0x00A0, 0x00A0, 0xFE9C, 0xFC98, 0xF696, 0xF696, 0xF696, + 0xF696, 0xF694, 0xF892, 0xF890, 0xF88E, 0xF88E, 0xF88E, 0xF88E, 0xF88E, + 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, + 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, + 0xFA8E, 0xFA8E, 0xFA8E, 0xFA8E, 0xFC90, 0xFE92, 0x0094, 0x0698, 0x0A9C, + 0x10A2, 0x1AA8, 0x2CB2, 0x3CBA, 0x3CBC, 0x40BE, 0x44BE, 0x4ABE, 0x50C0, + 0x60C4, 0x6AC8, 0x6CCC, 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, + 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, 0x6ECE, 0x6CCA, + 0x6AC4, 0x66BE, 0x60B8, 0x5CB2, 0x5AB0, 0x54AA, 0x52A6, 0x4EA4, 0x4CA2, + 0x4CA2, 0x4CA2, 0x48A0, 0x3C96, 0x2E90, 0x268E, 0x1E8A, 0x1488, 0x1488, + 0x1488, 0x1488, 0x1488, 0x1488, 0x1488, 0x1488, 0x1488, 0x1488, 0x1488, + 0x1088, 0x0E88, 0x0E88, 0x0E88, 0x0E88, 0x0E88, 0x0E88, 0x0E88, 0x0E88, + 0x0E88, 0x0E88, 0x0E88, 0x0E88, 0x0E88, 0x0E88, 0x1288, 0x1C8A, 0x1E8A, + 0x1E8A, 0x1E8A, 0x1E8A, 0x1E8A, 0x1E8A, 0x1E8A, 0x1E8A, 0x1E8A, 0x1E8A, + 0x1E8C, 0x1E8C, 0x208C, 0x208C, 0x248E, 0x288E, 0x2C90, 0x2E94, 0x2E98, + 0x2E9C, 0x2E9C, 0x2E9E, 0x2EA2, 0x30A6, 0x30A6, 0x30A6, 0x30A6, 0x30A6, + 0x30A6, 0x30A6, 0x30A8, 0x30A8, 0x30A8, 0x30A8, 0x2CAA, 0x24AA, 0x24AC, + 0x1EAC, 0x16AC, 0x16AC, 0x14AC, 0x10AC, 0x0AAC, 0x08AC, 0x08AC, 0x08AC, + 0x08AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, + 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, + 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, + 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, + 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, + 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AC, 0x06AE, + 0x0EB2, 0x14B6, 0x1CBC, 0x20C4, 0x24CA, 0x26CC, 0x26CE, 0x26CE, 0x26D0, + 0x26D0, 0x26D0, 0x26D0, 0x26D0, 0x26D0, 0x26D0, 0x26D0, 0x26D0, 0x26D0, + 0x26D2, 0x26D4, 0x26D4, 0x28D6, 0x28D6, 0x28D6, 0x28D6, 0x28D6, 0x28D6, + 0x2ADA, 0x2ADC, 0x2ADC, 0x2ADC, 0x2ADC, 0x2ADC, 0x2ADC, 0x28DA, 0x28D8, + 0x28D6, 0x28D2, 0x26CE, 0x28C8, 0x28BE, 0x26B0, 0x1AA8, 0x18A6, 0x109C, + 0x0E98, 0x0E98, 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0C96, + 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0C96, 0x0A96, + 0x0A96, 0x0A96, 0x0A96, 0x0A96, 0x0A98, 0x0898, 0x0898, 0x0898, 0x0898, + 0x0898, 0x0898, 0x069A, 0x069C, 0x069E, 0x06A0, 0x06A4, 0x06A4, 0x06A6, + 0x06A8, 0x04AA, 0x02AE, 0xFEB2, 0xF6B8, 0xF0BC, 0xE2C6, 0xDEC8, 0xDACA, + 0xDACE, 0xDAD0, 0xDAD2, 0xDAD6, 0xDAD8, 0xDADA, 0xDADE, 0xDADE, 0xD8E2, + 0xD6EA, 0xD6EC, 0xD6EE, 0xD4F2, 0xD2F4, 0xD2F4, 0xD2F4, 0xD2F4, 0xD2F4, + 0xD2F4, 0xD2F4, 0xD2F4, 0xD2F4, 0xD2F4, 0xD2F4, 0xD2F4, 0xD0F4, 0xD0F4, + 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, + 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, 0xD0F4, + 0xD0F4, 0xD0F4, 0xD0F2, 0xD0EE, 0xD0EC, 0xD0E4, 0xD0DC, 0xD0D6, 0xD0D0, + 0xD0D0, 0xD0CE, 0xD0CE, 0xD0CE, 0xCECA, 0xCEC8, 0xCEC8, 0xCEC4, 0xCEBA, + 0xD8B4, 0xDEAC, 0xE6A8, 0xF49E, 0xF49E, 0xF49E, 0xF49E, 0xF49E, 0xF49E, + 0xF49E, 0xF49E, 0xF49E, 0xF49E, 0xF49E, 0xF49E, 0xF49E, 0xF49E, 0xF69E, + 0xF0A4, 0xDAB0, 0xCCB8, 0xC8BA, 0xC8BA, 0xC8BC, 0xC8BE, 0xC6C0, 0xC6C0, + 0xC8C0, 0xC8C0, 0xC8C0, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, + 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, + 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCCC0, 0xCCBE, 0xD2BA, 0xD6B6, + 0xD6B0, 0xD6B0, 0xD6B0, 0xD6B0, 0xE0AE, 0xE4AC, 0xE6AC, 0xE6AC, 0xE6AC, + 0xE6AC, 0xE8AA, 0xECA8, 0xEEA6, 0xF0A4, 0xF2A4, 0xF2A2, 0xF4A2, 0xF6A0, + 0xF89E, 0xFA9E, 0xFC9C, 0xFE9C, 0xFE9C, 0xFE9C, 0xFE9C, 0xFE9C, 0x009A, + 0x0898, 0x0C96, 0x0C96, 0x0E96, 0x1094, 0x1290, 0x128C, 0x148C, 0x148A, + 0x148A, 0x148A, 0x148A, 0x148A, 0x148C, 0x148C, 0x148C, 0x128C, 0x128E, + 0x1294, 0x1294, 0x1296, 0x1296, 0x1298, 0x129A, 0x129C, 0x12A0, 0x12A4, + 0x12A4, 0x12A4, 0x12A4, 0x12A4, 0x12A4, 0x12A4, 0x12A4, 0x12A4, 0x12A4, + 0x12A4, 0x12A4, 0x0AA8, 0x08A8, 0x06AC, 0x06AC, 0x04AE, 0x04AE, 0x04AE, + 0x04AE, 0x02AE, 0xFEAE, 0xFCAE, 0xF2B0, 0xE6B6, 0xD8BE, 0xD2C0, 0xD0C0, + 0xCEC2, 0xCEC4, 0xCEC6, 0xCECA, 0xCECC, 0xCECC, 0xCECE, 0xCED2, 0xCED4, + 0xCED8, 0xCEDC, 0xCEDE, 0xCEE0, 0xCEE0, 0xCEE0, 0xCEE2, 0xCEE2, 0xCEE2, + 0xCEE2, 0xCEE2, 0xCEE2, 0xCEE2, 0xCEE2, 0xCEE2, 0xCEE2, 0xCEE2, 0xCEE2, + 0xCEE2, 0xCEE2, 0xCEE2, 0xCEE0, 0xD4DE, 0xD6DC, 0xD6DC, 0xD6DC, 0xD6DA, + 0xD6DA, 0xD8DA, 0xD8DA, 0xDAD8, 0xDAD8, 0xDAD8, 0xDAD6, 0xDAD6, 0xDAD4, + 0xDAD4, 0xDCD4, 0xDCD4, 0xDAD2, 0xDACE, 0xDACC, 0xDACA, 0xDACA, 0xDACA, + 0xDAC8, 0xDAC8, 0xDAC8, 0xDAC6, 0xDAC4, 0xDAC4, 0xDAC4, 0xDAC4, 0xDAC4, + 0xDAC4, 0xDAC4, 0xDAC4, 0xDAC4, 0xDAC4, 0xDAC4, 0xDAC2, 0xDAC2, 0xDAC2, + 0xDAC2, 0xDAC2, 0xDAC2, 0xDAC2, 0xDAC2, 0xDAC2, 0xD6C0, 0xD6BE, 0xD4BC, + 0xD4BC, 0xD4BA, 0xD4BA, 0xD4BA, 0xD4BA, 0xD4BA, 0xD4BA, 0xD4BA, 0xDAB6, + 0xDCB6, 0xE6B4, 0xF2B0, 0xFAAE, 0xFAAC, 0xFCAC, 0xFEAA, 0x06A8, 0x06A8, + 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x08A8, 0x10A8, + 0x12A6, 0x12A6, 0x12A6, 0x12A6, 0x12A6, 0x16A6, 0x18A6, 0x1AA6, 0x1CA6, + 0x1EA6, 0x24A6, 0x26A6, 0x26A6, 0x2AA6, 0x2CA6, 0x32A8, 0x38AA, 0x3AAC, + 0x3EAE, 0x3EB0, 0x40B2, 0x40B4, 0x42B6, 0x42BA, 0x42BC, 0x42C0, 0x42C2, + 0x42C4, 0x42C6, 0x42C6, 0x42CC, 0x42D2, 0x42DC, 0x42E4, 0x42E6, 0x42E6, + 0x42E8, 0x42EA, 0x42EE, 0x42F2, 0x42F8, 0x42FC, 0x42FE, 0x42FE, 0x42FE, + 0x42FE, 0x42FE, 0x42FE, 0x42FE, 0x42FE, 0x42FE, 0x42FE, 0x4200, 0x4200, + 0x4200, 0x4200, 0x4200, 0x4200, 0x4200, 0x4200, 0x4204, 0x4208, 0x420E, + 0x3C16, 0x361C, 0x3220, 0x3022, 0x3024, 0x2E24, 0x2E24, 0x2C26, 0x2A28, + 0x2628, 0x2028, 0x1E28, 0x1C28, 0x1A28, 0x1428, 0x042A, 0x022A, 0x022A, + 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, + 0x002A, 0x002A, 0x002A, 0xFE2A, 0xFE2A, 0xFE2A, 0xFE2A, 0xFE2A, 0xFE2A, + 0xFA2A, 0xF228, 0xEC28, 0xEC28, 0xEC28, 0xEC26, 0xEC26, 0xEC26, 0xEC26, + 0xEC26, 0xEC26, 0xEC24, 0xEC20, 0xF018, 0x0000, 0x0000, 0x0000, 0x0000, + 0x00D8, 0x06C0, 0x0EBE, 0x0EBA, 0x0EB8, 0x0EB8, 0x0EB8, 0x0EB8, 0x0EBE, + 0x10E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; diff --git a/rel/data/titledemo/pact1.c b/rel/data/titledemo/pact1.c new file mode 100644 index 00000000..5e7a32ef --- /dev/null +++ b/rel/data/titledemo/pact1.c @@ -0,0 +1,215 @@ +#include "types.h" + +u16 pact1_head_table[] = { + 0x0C92, 0x0028, 0x0C02, /* position */ + 0x5893, /* angle (124.55749511719 deg) */ + 0x2204, /* tool (gelato umbrella) */ + 0x0722 /* scale/size? */ +}; + +u16 pact1_key_data[] = { + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x19FE, + 0x4300, 0x6F02, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, + 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, + 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, + 0x6BFA, 0xC302, 0x8900, 0x89F6, 0x89F6, 0x89F6, 0x89F6, 0x89F6, 0x89F6, + 0x89F6, 0x89F6, 0x89F6, 0x89F6, 0x89F6, 0x89F6, 0x89F4, 0x89EE, 0x8BEA, + 0x8DE2, 0x8FD8, 0x91D4, 0x95CC, 0x9FBA, 0xA7B0, 0xA9AE, 0xADAA, 0xB3A4, + 0xBDA4, 0xBDA4, 0xC5A4, 0xCFA4, 0xD3A2, 0xD79E, 0xD79C, 0xD79C, 0xD79C, + 0xD79C, 0xD79C, 0xD79C, 0xD79C, 0xD79C, 0xD79C, 0xD79C, 0xD79C, 0xDD98, + 0xED94, 0xED94, 0xED94, 0xED94, 0xED94, 0xED94, 0xED94, 0xED94, 0xED94, + 0xED96, 0xED96, 0xF198, 0xF79A, 0xF79A, 0xF79A, 0xF99A, 0xFD9A, 0x0B9A, + 0x179C, 0x1B9C, 0x239E, 0x31A6, 0x33A6, 0x35A8, 0x3BAC, 0x3DB0, 0x3FB4, + 0x3FB4, 0x3FB4, 0x3FB6, 0x3FB8, 0x3FBC, 0x3FC2, 0x3FC4, 0x3FC4, 0x3FC4, + 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, + 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, + 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, + 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3FC4, 0x3DC4, 0x3BC4, 0x39C4, + 0x39C4, 0x39C4, 0x39C4, 0x39C4, 0x39C4, 0x39C2, 0x37C0, 0x37BE, 0x33BA, + 0x23B6, 0x21B6, 0x21B6, 0x21B6, 0x21B6, 0x21B6, 0x21B6, 0x21B6, 0x21B6, + 0x21B6, 0x1BB0, 0x0FAC, 0x0BAA, 0x07AA, 0x07AA, 0xFDAA, 0xFDAA, 0xFDAA, + 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, + 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAA, 0xFDAC, + 0xFDAE, 0x13B4, 0x1FB6, 0x2DBE, 0x2FC0, 0x31C6, 0x33D2, 0x35E0, 0x37E4, + 0x37E4, 0x37E4, 0x37E4, 0x37E4, 0x37E4, 0x37E4, 0x37E4, 0x37E4, 0x37E4, + 0x37E4, 0x37E4, 0x37E4, 0x37E4, 0x37E4, 0x37E2, 0x37DC, 0x37D4, 0x37D2, + 0x37CE, 0x37CC, 0x37C8, 0x37C6, 0x39C2, 0x39BE, 0x39BE, 0x39BC, 0x39BA, + 0x39BA, 0x39B8, 0x39B6, 0x39B4, 0x2FAE, 0x2BAC, 0x27A8, 0x23A4, 0x1FA0, + 0x1B9C, 0x0F96, 0x0D94, 0x0B92, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, + 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, + 0x0594, 0x059C, 0x059C, 0x059C, 0x059C, 0x05A6, 0x05AC, 0x05B6, 0x05B6, + 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x17BA, + 0x2BBC, 0x2FBC, 0x2FBC, 0x2FBC, 0x2FBC, 0x2FBC, 0x2FBC, 0x2FBC, 0x2FBC, + 0x2FBC, 0x2FBC, 0x2FBC, 0x2FBC, 0x2FBC, 0x31BC, 0x31BC, 0x23BC, 0x14BC, + 0x14BC, 0x0CBC, 0x0CBC, 0x0CBC, 0x0CBC, 0x0CBC, 0x0CBC, 0x0CBC, 0x0CBC, + 0x0CBC, 0x0CBC, 0x0CBC, 0x0CBA, 0x0CBA, 0x0CBA, 0x0CBA, 0x0CBA, 0x0CBA, + 0xFEB8, 0xFEB8, 0xFEB8, 0xFEB6, 0xFEB6, 0xFEB6, 0xFEB6, 0xF8B6, 0xF6B6, + 0xF6B6, 0xF6B6, 0xF6B6, 0xF6B6, 0xF6B6, 0xF6B6, 0xF2B6, 0xF0B6, 0xF0B6, + 0xF0B6, 0xF0B6, 0xF0B6, 0xE6B6, 0xE2B6, 0xE2B6, 0xE2B6, 0xE2B6, 0xE2B6, + 0xE2B6, 0xE2B6, 0xE2B6, 0xE2B6, 0xE2B6, 0xE2B6, 0xE2B6, 0xE2BC, 0xE2BE, + 0xE2C0, 0xE2C4, 0xE0C6, 0xDEC8, 0xDCCE, 0xDCD0, 0xDCD0, 0xDCD0, 0xDCD0, + 0xDCD0, 0xDCD0, 0xDCD0, 0xDAD6, 0xDAD6, 0xDCDA, 0xE2E0, 0xE6E8, 0xEAEA, + 0xECEC, 0xEEEE, 0xEEF2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xEAFC, 0xE6FC, 0xE6FC, 0xE6FC, 0xE6FC, 0xE6FE, 0xE600, 0xE608, + 0xE608, 0xE608, 0xE608, 0xE608, 0xE608, 0xE60E, 0xE612, 0xE612, 0xE416, + 0xDE22, 0xD62C, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, + 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, + 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, + 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xD234, 0xCE30, + 0xCE30, 0xCE30, 0xCE30, 0xCA2C, 0xCA2C, 0xCA2A, 0xC828, 0xC424, 0xC220, + 0xC218, 0xC214, 0xC214, 0xC214, 0xC214, 0xC20C, 0xC206, 0xC204, 0xC202, + 0xC202, 0xC2FE, 0xC2FC, 0xC2FC, 0xC2FC, 0xC2FA, 0xC2F4, 0xC2F4, 0xC2F4, + 0xC2F4, 0xC2F4, 0xC2F4, 0xC2F4, 0xC2F4, 0xC2F4, 0xC2F4, 0xC2F4, 0xC2F4, + 0xC2F4, 0xC0F4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, + 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, + 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF0, 0xBCE8, 0xBCE6, 0xBCE6, + 0xBCDE, 0xBCD6, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, + 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, + 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, + 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, + 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, + 0xBCD4, 0xBCD4, 0xBCD4, 0xBCD4, 0xBCDA, 0xBCDE, 0xBCE4, 0xBCF0, 0xBCF4, + 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF4, 0xBCF8, 0xBCFC, 0xBC02, 0xBC04, + 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, + 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, + 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC04, 0xBC02, + 0xBC02, 0xBC00, 0xBCFE, 0xB4FC, 0xB2FC, 0xB0FC, 0xAAFC, 0xAAFC, 0xAAFC, + 0x9EFC, 0x9AFC, 0x9AFC, 0x9AFC, 0x9AFC, 0x9AFC, 0x9AFC, 0x9AFC, 0x9AFC, + 0x9AFC, 0xAEFC, 0xB2FC, 0xB2FC, 0xB8FC, 0xBEFE, 0xC002, 0xC204, 0xC204, + 0xC204, 0xC204, 0xC204, 0xC204, 0xC204, 0xC204, 0xC204, 0xC204, 0xC204, + 0xC204, 0xC204, 0xC204, 0xC20E, 0xC21C, 0xC228, 0xC228, 0xC228, 0xC228, + 0xC228, 0xC228, 0xC228, 0xC228, 0xC22E, 0xC238, 0xC238, 0xC238, 0xC238, + 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, + 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, + 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, + 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, 0xC238, + 0xC238, 0xC238, 0xC238, 0xC234, 0xC230, 0xC22E, 0xC22E, 0xC22E, 0xC22A, + 0xC22A, 0xC22A, 0xC22A, 0xC222, 0xC222, 0xC222, 0xC222, 0xC222, 0xC222, + 0xC222, 0xC222, 0xC222, 0xC222, 0xC222, 0xC222, 0xC222, 0xC222, 0xC222, + 0xC222, 0xC222, 0xC222, 0xC01A, 0xBE1A, 0xBE1A, 0xBE1A, 0xBC12, 0xBC0C, + 0xBC0C, 0xBC0C, 0xBC08, 0xBC08, 0xBC08, 0xBC08, 0xBC08, 0xC010, 0xC418, + 0xC420, 0xC424, 0xC42A, 0xC432, 0xC432, 0xC434, 0xC434, 0xC434, 0xC434, + 0xC434, 0xC434, 0xC434, 0xC434, 0xC434, 0xC434, 0xC434, 0xC434, 0xC434, + 0xC434, 0xC434, 0xC434, 0xC434, 0xC434, 0xC434, 0xC42E, 0xC426, 0xC426, + 0xC222, 0xC01C, 0xBE18, 0xBC10, 0xB806, 0xB606, 0xB606, 0xB604, 0xB604, + 0xB604, 0xB604, 0xB604, 0xB604, 0xB604, 0xB604, 0xB604, 0xAC00, 0xA800, + 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, + 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, + 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, + 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, 0xA800, + 0xA800, 0xA800, 0xA8FE, 0xA8FA, 0xAAFA, 0xAAFA, 0xAAF8, 0xAAE6, 0xAAE2, + 0xAADE, 0xAADC, 0xAECE, 0xB0CC, 0xB0CC, 0xB0CC, 0xB0CC, 0xB0CC, 0xB0CC, + 0xB0CC, 0xB0CC, 0xB0CC, 0xB0CC, 0xB0CC, 0xAED2, 0xA8DA, 0xA8DA, 0xA8DA, + 0xA2E2, 0x96F4, 0x94F6, 0x94F6, 0x94F6, 0x94F6, 0x96F6, 0x96F6, 0x96F6, + 0x96F6, 0x96F6, 0x96F6, 0x96F6, 0x96F6, 0x96F6, 0x96F6, 0x96F6, 0xA0F8, + 0xACFC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, + 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FC, 0xB2FA, + 0xB2F8, 0xB2F2, 0xB2EE, 0xB2E8, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, + 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, + 0xB2E6, 0xB2E6, 0xB2E6, 0xB2E6, 0xB2EA, 0xB2EE, 0xB2F0, 0xB2F4, 0xB2F8, + 0xB2FA, 0xB200, 0xB206, 0xB20C, 0xB210, 0xB210, 0xB210, 0xB210, 0xB210, + 0xB210, 0xB210, 0xB214, 0xB21A, 0xB21A, 0xB21A, 0xB21A, 0xB21A, 0xB218, + 0xB214, 0xB20A, 0xB202, 0xB0FE, 0xB0F8, 0xB0EE, 0xB0E2, 0xB0D4, 0xB0D2, + 0xB0D2, 0xB0D2, 0xB0D2, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, + 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, + 0xB0D4, 0xB0D4, 0xB0D4, 0xB0D4, 0xB0DC, 0xB0DC, 0xB0DE, 0xB0DE, 0xB0DE, + 0xB0DE, 0xB0EA, 0xB0EA, 0xB0EA, 0xB0F2, 0xB0F6, 0xB0FC, 0xB000, 0xB002, + 0xB00A, 0xB00A, 0xB00A, 0xAE0C, 0xAE0E, 0xAE0E, 0xAE0E, 0xAE0E, 0xAE0E, + 0xAE0E, 0xAE0E, 0xAE0E, 0xAE0E, 0xAE0E, 0xAE14, 0xAE20, 0xAE2E, 0xAE30, + 0xAE32, 0xAE32, 0xAE32, 0xAE32, 0xAE32, 0xAE32, 0xAE32, 0xAE32, 0xAE2C, + 0xAE1E, 0xAE10, 0xAEF6, 0xAEF4, 0xAEEA, 0xAED8, 0xAEC2, 0xB0BA, 0xB0BA, + 0xB0BA, 0xB2BA, 0xB2BA, 0xB2B8, 0xB2B6, 0xB4B4, 0xB4B4, 0xB4B4, 0xB4B4, + 0xB4B4, 0xB4B4, 0xB4B4, 0xB4B4, 0xB4B4, 0xB4B4, 0xB4B4, 0xB4B4, 0xB4B6, + 0xB4B8, 0xB4B8, 0xB4BC, 0xB4C0, 0xB4C8, 0xB4C8, 0xB4D0, 0xB4D4, 0xB4D8, + 0xB4DC, 0xB4E0, 0xB4E2, 0xB4E2, 0xB4E2, 0xB4E2, 0xB4E2, 0xB4E2, 0xB4E2, + 0xB4E2, 0xB4E2, 0xB4E2, 0xB4E2, 0xB4EC, 0xB4EE, 0xB4EE, 0xB4F0, 0xB4F4, + 0xB4FA, 0xB408, 0xB40C, 0xB40C, 0xB40C, 0xB40C, 0xB40C, 0xB40C, 0xAE08, + 0xAC04, 0xAC04, 0x9E00, 0x9E00, 0x9E00, 0x9E00, 0x9E00, 0x9E00, 0xA000, + 0xA000, 0xA000, 0xA202, 0xA608, 0xAC0E, 0xAC12, 0xAC12, 0xAC12, 0xAC12, + 0xAE12, 0xB016, 0xB016, 0xB016, 0xB016, 0xB016, 0xB216, 0xB216, 0xB216, + 0xB216, 0xB216, 0xB216, 0xB014, 0xAE0E, 0xAE0C, 0xAE0C, 0xAE0C, 0xAE0C, + 0xAE0C, 0xAE0C, 0xAE0C, 0xAE0C, 0xAE0C, 0xAE0C, 0xAE0C, 0xAE0C, 0xAE0C, + 0xAE14, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, + 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, + 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xAE16, 0xB01C, 0xB424, 0xB424, + 0xB62A, 0xBA30, 0xBC38, 0xC23A, 0xC23C, 0xC440, 0xC844, 0xCA48, 0xCE4C, + 0xD04C, 0xD04C, 0xD250, 0xD250, 0xDE54, 0xE258, 0xE45A, 0xE45A, 0xF05A, + 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, + 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, + 0xF05A, 0xEC5A, 0xD654, 0xBC50, 0xBA50, 0xB850, 0xB850, 0xB850, 0xB850, + 0xB24C, 0xB24C, 0xB24C, 0xB24C, 0xB24C, 0xB24A, 0xB248, 0xB248, 0xB248, + 0xB246, 0xB244, 0xB242, 0xB236, 0xB228, 0xB216, 0xB210, 0xB202, 0xB2FA, + 0xB2F6, 0xB2F2, 0xB2EA, 0xB2DA, 0xB6CA, 0xB6CA, 0xB6CA, 0xB6C2, 0xB6C0, + 0xB6C0, 0xB6C0, 0xB6C0, 0xB6C0, 0xB6BA, 0xB6B6, 0xB6B6, 0xB6B6, 0xB6B6, + 0xB6B6, 0xB6B6, 0xB6B6, 0xB6B6, 0xB6B6, 0xB6B6, 0xB6B6, 0xB6B6, 0xB6B6, + 0xB6B6, 0xB6B8, 0xB6B8, 0xB6B8, 0xB6B8, 0xB6BA, 0xB6BA, 0xB6BC, 0xB6BC, + 0xB6BC, 0xB6BE, 0xB6BE, 0xB6BE, 0xB6BE, 0xB6BE, 0xB6BE, 0xB6BE, 0xB6BE, + 0xB6C0, 0xB6C0, 0xB6C0, 0xB6C4, 0xB6C4, 0xB6C4, 0xB6C6, 0xB6CA, 0xB6D8, + 0xBCF0, 0xBEF6, 0xBE02, 0xBE0A, 0xBE1C, 0xBE24, 0xBE28, 0xBE28, 0xBE32, + 0xBE34, 0xBE36, 0xBE3A, 0xBE3C, 0xC040, 0xC040, 0xC040, 0xC040, 0xC040, + 0xC040, 0xC040, 0xC042, 0xC244, 0xC444, 0xC446, 0xC446, 0xCA4A, 0xCC4C, + 0xCE4C, 0xCE4E, 0xCE4E, 0xD452, 0xDC54, 0xEA5A, 0xEA5A, 0xF05A, 0xF05A, + 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF05A, 0xF45E, + 0xF45E, 0xF45E, 0xF45E, 0xF45E, 0xF45E, 0xFE5E, 0x025E, 0x025E, 0x025E, + 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, + 0x025E, 0x0260, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, + 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, + 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, + 0x0262, 0x045E, 0x045E, 0x045C, 0x045C, 0x045C, 0x045C, 0x045C, 0x045C, + 0x045C, 0x045C, 0x045A, 0x045A, 0x0458, 0xFC56, 0xFC56, 0xFC56, 0xFC56, + 0xFC56, 0xFC56, 0xFC56, 0xFC56, 0xFC56, 0xFC56, 0xDC52, 0xDA52, 0xDA52, + 0xDA52, 0xDA52, 0xDA52, 0xDA52, 0xDA52, 0xDA52, 0xDA52, 0xDA52, 0xE652, + 0xE452, 0xEE52, 0xF052, 0xF252, 0xF252, 0xFC52, 0x0252, 0x0252, 0x0252, + 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, + 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, + 0x0452, 0x0652, 0x0652, 0x0652, 0x0E52, 0x0E52, 0x0E52, 0x0E52, 0x0E52, + 0x1452, 0x1452, 0x1452, 0x1C52, 0x2252, 0x2252, 0x2252, 0x2252, 0x2252, + 0x2250, 0x364A, 0x3A4A, 0x3A4A, 0x3A4A, 0x3A4A, 0x3C48, 0x3C48, 0x3C46, + 0x3E42, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, + 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, + 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3E3C, 0x3A3C, 0x3A3C, 0x363C, + 0x323C, 0x303C, 0x303C, 0x303C, 0x2E3C, 0x2E3C, 0x2E3C, 0x2E3C, 0x2A3C, + 0x2A3C, 0x2A3C, 0x2A3C, 0x2A3C, 0x1E3C, 0x1A3C, 0x1A3C, 0x1A3C, 0x1A3C, + 0x1A3C, 0x183C, 0x123C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, + 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, + 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, 0x0E3C, + 0x0E3C, 0x0E3C, 0x163C, 0x263C, 0x2A3C, 0x2C3C, 0x323C, 0x323C, 0x323C, + 0x323C, 0x323C, 0x323C, 0x323C, 0x323C, 0x323C, 0x323C, 0x323C, 0x323C, + 0x323C, 0x323C, 0x383C, 0x383A, 0x3838, 0x3836, 0x3832, 0x3830, 0x3830, + 0x382A, 0x3826, 0x3824, 0x3824, 0x3824, 0x3824, 0x3824, 0x3824, 0x3E1E, + 0x3E1E, 0x3E1C, 0x3E1C, 0x3E1A, 0x3E14, 0x3E14, 0x3E14, 0x3E14, 0x3E12, + 0x3E10, 0x440A, 0x420A, 0x420A, 0x420A, 0x420A, 0x420A, 0x420A, 0x420A, + 0x420A, 0x420A, 0x420A, 0x420A, 0x4202, 0x4202, 0x4202, 0x4202, 0x4202, + 0x4202, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, + 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, + 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FC, + 0x42FC, 0x42FC, 0x42FC, 0x42FC, 0x42FA, 0x42FA, 0x42F8, 0x42F4, 0x42F4, + 0x42F4, 0x42F4, 0x42F4, 0x42F4, 0x42F4, 0x42F4, 0x42F4, 0x42F4, 0x42F4, + 0x42F2, 0x42E4, 0x42D6, 0x42D2, 0x42D2, 0x42D2, 0x42D2, 0x42D2, 0x42D2, + 0x42D2, 0x42D2, 0x42CC, 0x42CC, 0x42CC, 0x42CA, 0x3EC6, 0x3EC6, 0x3EC4, + 0x3CC0, 0x3CC0, 0x3CC0, 0x3CC0, 0x3CC0, 0x3AC0, 0x3AC0, 0x3AC0, 0x36C0, + 0x2AC2, 0x24C4, 0x20C8, 0x1ECE, 0x1CD0, 0x1CD0, 0x16D8, 0x0EE4, 0x0CEC, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; diff --git a/rel/data/titledemo/pact2.c b/rel/data/titledemo/pact2.c new file mode 100644 index 00000000..2429fac4 --- /dev/null +++ b/rel/data/titledemo/pact2.c @@ -0,0 +1,217 @@ +#include "types.h" + +u16 pact2_head_table[] = { + 0x0845, 0x00A0, 0x05D0, /* position */ + 0x1A8C, /* angle (37.33154296875 deg) */ + 0x2203, /* tool (fishing rod) */ + 0x0733 /* scale/size? */ +}; + +u16 pact2_key_data[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0EEA, 0x10EA, + 0x10EA, 0x10EA, 0x10EA, 0x10EA, 0x10EA, 0x10EA, 0x10EA, 0x10EA, 0x10E8, + 0x10E8, 0x10E6, 0x10E4, 0x10E4, 0x10E4, 0x10E2, 0x10DE, 0x10DC, 0x10DC, + 0x10DC, 0x10DC, 0x10DA, 0x10DA, 0x10DA, 0x10DA, 0x10D8, 0x10D4, 0x10D0, + 0x10CE, 0x10CC, 0x10CA, 0x10C8, 0x10C8, 0x10C8, 0x10C8, 0x10C8, 0x10C8, + 0x10C8, 0x10C8, 0x10C8, 0x12C8, 0x16C6, 0x18C6, 0x1CC6, 0x1CC6, 0x1CC6, + 0x1EC6, 0x1EC6, 0x1EC6, 0x1EC6, 0x1EC6, 0x1EC6, 0x1EC6, 0x1EC6, 0x1EC6, + 0x20C6, 0x22C6, 0x24C6, 0x24C6, 0x26C6, 0x26C6, 0x26C6, 0x26C6, 0x26C6, + 0x28C6, 0x28C6, 0x28C6, 0x2AC6, 0x2CC6, 0x2CC6, 0x2EC6, 0x30C6, 0x30C6, + 0x30C6, 0x32C6, 0x34CA, 0x34CC, 0x36CE, 0x36D0, 0x36D0, 0x36D2, 0x36D4, + 0x36D4, 0x3ADA, 0x3CDE, 0x3EE4, 0x42EC, 0x44F2, 0x44F6, 0x46FC, 0x46FE, + 0x46FE, 0x48FE, 0x48FE, 0x4800, 0x4806, 0x4810, 0x481A, 0x4822, 0x4824, + 0x4824, 0x4826, 0x4826, 0x4828, 0x482E, 0x3E36, 0x3E3A, 0x3C3E, 0x3C3E, + 0x3C3E, 0x3C3E, 0x3C3E, 0x3C40, 0x3C40, 0x3C40, 0x3C40, 0x3C40, 0x3C40, + 0x3C40, 0x3C40, 0x3C40, 0x3C40, 0x3C40, 0x3C40, 0x3C40, 0x3C40, 0x3E40, + 0x3E42, 0x3E42, 0x4042, 0x4444, 0x4644, 0x4A44, 0x4C44, 0x4E44, 0x5044, + 0x5444, 0x563E, 0x563C, 0x563A, 0x5834, 0x5A28, 0x5E20, 0x5E1A, 0x6214, + 0x6210, 0x640E, 0x640C, 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, + 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, + 0x6406, 0x6406, 0x6406, 0x6406, 0x6406, 0x6404, 0x6402, 0x6602, 0x6602, + 0x6602, 0x6A00, 0x6C00, 0x6C00, 0x6C00, 0x6E00, 0x7400, 0x7600, 0x7600, + 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, + 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, + 0x7A00, 0x7A00, 0x7A00, 0x7800, 0x7800, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, 0x7804, + 0x7804, 0x7804, 0x7804, 0x7802, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, + 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, + 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, 0x7800, + 0x7800, 0x7800, 0x7800, 0x7800, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, + 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, + 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7A00, 0x7B00, + 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, + 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7900, 0x7900, 0x7900, + 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, + 0x7900, 0x7900, 0x7900, 0x7900, 0x7900, 0x7B00, 0x7B00, 0x7B00, 0x7B00, + 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7B00, 0x7902, 0x7902, 0x7902, + 0x7902, 0x7902, 0x7902, 0x7902, 0x7902, 0x7902, 0x7902, 0x7902, 0x7902, + 0x7902, 0x7902, 0x7902, 0x7902, 0x7902, 0x7900, 0x7B00, 0x7B00, 0x79F8, + 0x79F0, 0x79F0, 0x79EE, 0x79EE, 0x79EE, 0x79EE, 0x79EE, 0x79EE, 0x79EE, + 0x79EE, 0x79F0, 0x79F0, 0x79F0, 0x79F2, 0x79F2, 0x79F2, 0x79F2, 0x79F4, + 0x79F6, 0x79F6, 0x79F8, 0x79F8, 0x79F8, 0x79F8, 0x79F8, 0x79FA, 0x79FA, + 0x77FC, 0xDD06, 0x8900, 0x89FE, 0x89FE, 0x89FE, 0x89FE, 0x89FE, 0x89FE, + 0x89F6, 0x89EE, 0x8BE8, 0x8BE8, 0x8BE8, 0x8BE8, 0x8DE0, 0x8ED8, 0x90D0, + 0x92CC, 0x94C8, 0x9CBE, 0xA2B4, 0xACAE, 0xACAE, 0xAEAE, 0xAEAC, 0xB2AC, + 0xB4AC, 0xBAAC, 0xC0AC, 0xC8AC, 0xD2AA, 0xDAAA, 0xE2AA, 0xE6AA, 0xF0AA, + 0xF2AA, 0xF2AA, 0xF2AA, 0xF2AA, 0xF2AA, 0xF2AA, 0xF2AA, 0xF2AA, 0xF2AA, + 0xF2AA, 0xF2AA, 0xF6AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, + 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xF8AA, 0xFAAA, 0xFAAA, + 0xFCA8, 0xFCA6, 0xFCA6, 0xFCA6, 0xFCA6, 0xFCA6, 0xFCA6, 0xFCA6, 0xFCA6, + 0xFCA4, 0xFCA4, 0xFCA4, 0xFCA4, 0xFCA4, 0xFCA4, 0xFCA4, 0xFCA4, 0xFCA4, + 0xFEA4, 0xFEA4, 0xFEA4, 0xFEA4, 0xFAA4, 0xF8A4, 0xF8A4, 0xF8A4, 0xF8A4, + 0xF4A4, 0xF0A4, 0xF0A4, 0xF0A4, 0xF0A4, 0xF0A4, 0xF0A4, 0xECA4, 0xE2A4, + 0xD6A4, 0xD4A4, 0xD2A4, 0xD0A6, 0xCCA6, 0xC6AA, 0xC4AC, 0xC2AC, 0xBEAC, + 0xBCAC, 0xBAAC, 0xBAAC, 0xBAAC, 0xBAAC, 0xBAAC, 0xBAAC, 0xBAAC, 0xBAAC, + 0xBAAC, 0xBAAC, 0xC4A8, 0xD49E, 0xD49A, 0xD698, 0xE690, 0xEE88, 0xEE88, + 0xF688, 0xFA88, 0xFA88, 0xFA88, 0xFA88, 0xFA88, 0xFA88, 0xFA88, 0xFC88, + 0xFA88, 0xFA8C, 0xFA8E, 0xFA90, 0xFA92, 0xFC94, 0xFC96, 0xFC96, 0xFC96, + 0xFC96, 0xFC96, 0xFC96, 0xFC96, 0xFC96, 0xFC96, 0xFC96, 0xFC96, 0xFC96, + 0xFC96, 0xFC96, 0xFC96, 0xFC96, 0xFC96, 0xFC98, 0xFC9A, 0xF69C, 0xF49C, + 0xF49C, 0xF29C, 0xE29E, 0xD8A0, 0xD6A0, 0xD6A0, 0xD6A2, 0xD6A2, 0xD6A2, + 0xD6A2, 0xD6A2, 0xD6A2, 0xD6A2, 0xD6A2, 0xDAA2, 0xDCA2, 0xE0A2, 0xE2A2, + 0xE4A2, 0xE4A2, 0xE4A2, 0xE4A2, 0xE4A2, 0xE4A4, 0xE4A4, 0xE0A8, 0xDCAA, + 0xDAAC, 0xDAAC, 0xDAAC, 0xDAAC, 0xDAAC, 0xD8AC, 0xD6AC, 0xD2AC, 0xD0AC, + 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, + 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AC, 0xD0AE, 0xD0AE, + 0xD0AE, 0xD0AE, 0xD0B0, 0xD0B0, 0xD0B2, 0xD0B2, 0xD0B2, 0xD0B2, 0xD0B2, + 0xD0B2, 0xCEB4, 0xCEB4, 0xCEB4, 0xCEB4, 0xCEB4, 0xCEB4, 0xCCB4, 0xCCB4, + 0xCAB4, 0xC6B6, 0xC4B6, 0xC4B8, 0xC2BC, 0xC2BE, 0xC2C2, 0xC2C6, 0xC2CA, + 0xC2CE, 0xBED4, 0xBEDA, 0xBEDC, 0xBEDC, 0xBEDC, 0xBEDC, 0xBEDC, 0xBEDC, + 0xBEDC, 0xBEDC, 0xBEDC, 0xBCDE, 0xB4E4, 0xB2E4, 0xB2E6, 0xB0E8, 0xAEEA, + 0xAAEC, 0xA2F0, 0x9CF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, + 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, + 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF4, 0x9AF0, 0x9AEC, + 0x9AE8, 0x9CE6, 0x9CE4, 0x9CE4, 0x9CE4, 0x9CE2, 0x9CDE, 0x9EDE, 0xA4D6, + 0xB0CA, 0xC2BE, 0xCABC, 0xD2BC, 0xDABA, 0xE4BA, 0xE4BA, 0xE4BA, 0xE4BA, + 0xE4BA, 0xE4BA, 0xE4BA, 0xE4BA, 0xE4BA, 0xE4BA, 0xE4B8, 0xE4B6, 0xE2B6, + 0xD8B4, 0xC4B4, 0xBEB4, 0xB8B4, 0xB6B4, 0xB4B4, 0xB0B2, 0xA8B2, 0xA4B0, + 0x9EBA, 0x94C8, 0x92D0, 0x8CDC, 0x8CE0, 0x8AEA, 0x88F4, 0x88F8, 0x88F8, + 0x88F8, 0x88FA, 0x88FA, 0x88FA, 0x88FA, 0x88FA, 0x88F8, 0x88F8, 0x88F8, + 0x88F8, 0x88F8, 0x8EF6, 0x92F6, 0x92F6, 0x92F6, 0x94F6, 0x94F6, 0x94F6, + 0x94F6, 0x94F6, 0x94F6, 0x94F6, 0x94F6, 0x94F6, 0x94F6, 0x94F6, 0x94F6, + 0x94F6, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, + 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, + 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x94F8, + 0x94F8, 0x94F8, 0x94F8, 0x94F8, 0x96F8, 0xA2F8, 0xA6F6, 0xA6F6, 0xA8F4, + 0xAAF0, 0xAAF0, 0xAEEC, 0xB2E6, 0xB2E4, 0xB6E0, 0xC4DA, 0xC8D8, 0xC8D8, + 0xC8D8, 0xC8D8, 0xC8D8, 0xC8D8, 0xC8D8, 0xBED8, 0xBED8, 0xB8D8, 0xB2DA, + 0xAEDA, 0xACDC, 0xACDC, 0xACDC, 0xACDC, 0xACDC, 0xACDC, 0xACDC, 0xACDC, + 0xACDC, 0xAADE, 0xA6E0, 0xA4E4, 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, + 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, 0xA2E6, + 0xA2E6, 0xA2E6, 0xA2E6, 0xA0E6, 0xA0E4, 0xA0E4, 0xA0E4, 0xA0E4, 0xA0E4, + 0xA0E4, 0xA0DC, 0xA4D2, 0xAEC4, 0xC6B6, 0xC6B4, 0xC4AA, 0xC49E, 0xC696, + 0xC894, 0xC894, 0xC894, 0xD092, 0xD68E, 0xDA8E, 0xDC8E, 0xE48C, 0xEA8C, + 0xEC8C, 0xEE8C, 0xF088, 0xF888, 0xFA88, 0xFA88, 0xFA88, 0xFA88, 0xFA88, + 0xFA88, 0xFA88, 0xFA88, 0xFC88, 0x008C, 0x0894, 0x0E9A, 0x14A0, 0x14A0, + 0x14A0, 0x14A0, 0x14A2, 0x14A2, 0x14A2, 0x14A4, 0x14A4, 0x14A4, 0x14A6, + 0x14A6, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, + 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, 0x14A8, + 0x14A4, 0x14A2, 0x14A2, 0x149E, 0x149C, 0x1296, 0x1294, 0x1294, 0x1294, + 0x1294, 0x1294, 0x1294, 0x1094, 0x0E94, 0x0A94, 0x0A94, 0x0A94, 0x0A94, + 0x0A94, 0x0A94, 0x0A94, 0x0A94, 0x0A94, 0x0A94, 0x0A96, 0x0898, 0x069A, + 0x049C, 0x029C, 0x029C, 0xFCA0, 0xFCA0, 0xFCA0, 0xFCA0, 0xFCA0, 0xFAA0, + 0xECA4, 0xE4A6, 0xD8AA, 0xD8AA, 0xD8AA, 0xD8AA, 0xD8AA, 0xD8AA, 0xE0AA, + 0xE4AA, 0xF8A4, 0xF8A4, 0xF8A4, 0xF8A4, 0xF8A4, 0xF89E, 0xF89C, 0xF89C, + 0xF89C, 0xF89C, 0xF89C, 0xF89C, 0xF89C, 0xFA9C, 0xFC9C, 0xFE9C, 0x089C, + 0x14A0, 0x1CA2, 0x20A4, 0x20A4, 0x20A4, 0x20A4, 0x20A4, 0x1EA4, 0x1EA2, + 0x1EA2, 0x1EA2, 0x1EA0, 0x1E9E, 0x1E9C, 0x1A9A, 0x1A9A, 0x1698, 0x1696, + 0x1696, 0x1494, 0x1494, 0x1492, 0x1290, 0x128E, 0x128C, 0x128C, 0x128C, + 0x128C, 0x128C, 0x128C, 0x128C, 0x128C, 0x128C, 0x128C, 0x128C, 0x128C, + 0x128C, 0x108C, 0x0E8C, 0x148C, 0x1E8E, 0x1E8E, 0x1E8E, 0x1E8E, 0x1E8E, + 0x1E8E, 0x1E8E, 0x1E8E, 0x1E8E, 0x1E8A, 0x1C8A, 0x1A8A, 0x0C88, 0x0088, + 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, + 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, + 0x0088, 0x028A, 0x028E, 0x028E, 0x028E, 0x0290, 0x0492, 0x0492, 0x0492, + 0x0492, 0x0492, 0x0492, 0x048E, 0x048A, 0x0488, 0x0488, 0x0488, 0x0488, + 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, + 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0288, 0x0288, 0x0288, 0x0288, + 0x0288, 0xFC88, 0xFC88, 0xF888, 0xF288, 0xEE8A, 0xE68E, 0xE68E, 0xE68E, + 0xE68E, 0xE690, 0xE690, 0xE692, 0xE692, 0xE692, 0xE692, 0xE692, 0xE692, + 0xE694, 0xE694, 0xE496, 0xE498, 0xE29A, 0xE29A, 0xE29A, 0xE09C, 0xE09C, + 0xE09C, 0xE09C, 0xE09C, 0xD8A4, 0xD6A4, 0xD4A6, 0xCEAA, 0xC8B0, 0xC6B4, + 0xC6BA, 0xC6BE, 0xC6C4, 0xC6C8, 0xC6CE, 0xC6D8, 0xC6E2, 0xC6E6, 0xC6E8, + 0xC6EA, 0xC6EC, 0xC6EC, 0xC6EE, 0xC6F0, 0xC6F6, 0xC6F8, 0xC6F8, 0xC6FC, + 0xC6FE, 0xC606, 0xC60E, 0xC610, 0xC614, 0xC614, 0xC614, 0xC614, 0xC614, + 0xC214, 0xBC16, 0xBA16, 0xBA16, 0xBA16, 0xB816, 0xB416, 0xB216, 0xB216, + 0xAE16, 0xAC16, 0xAC16, 0xA816, 0xA416, 0xA216, 0xA216, 0xA216, 0xA216, + 0xA216, 0xA216, 0xA216, 0xA218, 0xA21A, 0xA21C, 0xA21E, 0xA21E, 0xA21E, + 0xA21E, 0xA21E, 0xA21E, 0xA21E, 0xA21E, 0xA21E, 0xA21E, 0xA01E, 0x9E1E, + 0x9E1C, 0x9C18, 0x9C16, 0x9A12, 0x9810, 0x960C, 0x9206, 0x9002, 0x8CFE, + 0x88FE, 0x88FA, 0x88FA, 0x88FA, 0x88FA, 0x88FA, 0x88FA, 0x88FA, 0x88FA, + 0x88FA, 0x88FA, 0x88FA, 0x88F8, 0x88F8, 0x88F8, 0x88F8, 0x88F6, 0x8AF6, + 0x8CF6, 0x90F6, 0x90F6, 0x90F6, 0x90F6, 0x90F6, 0x90F6, 0x90F6, 0x90F6, + 0x90F6, 0x90F6, 0x90F6, 0x92F6, 0x94F6, 0x94F6, 0x94F6, 0x94F6, 0x96F6, + 0x9CF4, 0xA0F2, 0xA6EA, 0xA6EA, 0xA6E8, 0xA6E8, 0xA6E8, 0xA6E6, 0xA6E2, + 0xA8DC, 0xAAD6, 0xB4CC, 0xBAC8, 0xBAC6, 0xBEC4, 0xBEC4, 0xBEC4, 0xBEC4, + 0xC2C4, 0xC2C4, 0xC4C2, 0xC8C2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, 0xCAC2, + 0xCAC2, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, + 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xCAC0, 0xC8C0, 0xC8C0, + 0xC6C0, 0xC6C0, 0xC6C0, 0xC6C0, 0xC6C0, 0xC6C0, 0xC6C0, 0xC4C0, 0xC4C0, + 0xC4C0, 0xC4C0, 0xC2C0, 0xC2C0, 0xC2C0, 0xC0C0, 0xBCC0, 0xBAC0, 0xBAC0, + 0xBAC0, 0xB8C2, 0xB8C4, 0xB6C6, 0xB0CE, 0xAED0, 0xAED0, 0xAAD6, 0xA6DA, + 0xA6DC, 0xA6E0, 0xA6E4, 0xA6E4, 0xA6E6, 0xA6E8, 0xA6E8, 0xA6E8, 0xA6E8, + 0xA6EA, 0xA6EE, 0xA6F0, 0xA6F2, 0xA6F6, 0xA6F6, 0xA6F8, 0xA6F8, 0xA6F8, + 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, + 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F8, 0xA6F4, 0xB8D4, 0xBACA, 0xBAC8, + 0xBAC8, 0xBCC8, 0xBEC6, 0xC2C6, 0xC6C6, 0xCAC6, 0xCCC6, 0xCEC6, 0xCEC6, + 0xCEC6, 0xCEC6, 0xCEC6, 0xCEC6, 0xCEC6, 0xCEC6, 0xCEC6, 0xCEC6, 0xCAC6, + 0xC8C6, 0xC6C6, 0xC6C6, 0xC6C6, 0xC6C4, 0xC6C4, 0xC4C4, 0xC0C4, 0xC0C4, + 0xBACA, 0xAED6, 0xA8E0, 0xA6EE, 0xA6F6, 0xA6F8, 0xA6FA, 0xA6FE, 0xA606, + 0xA612, 0xA622, 0xA82A, 0xA82C, 0xAA30, 0xAC32, 0xAC34, 0xAC34, 0xAC34, + 0xAC34, 0xAC34, 0xAC34, 0xAC34, 0xAC34, 0xAC34, 0xAA34, 0xAA2C, 0xA626, + 0xA420, 0xA01A, 0x9A12, 0x9610, 0x9610, 0x9610, 0x940E, 0x920C, 0x920A, + 0x8E02, 0x8E02, 0x8E00, 0x8CFE, 0x8CFE, 0x8AFE, 0x88FC, 0x88FA, 0x88F8, + 0x88F6, 0x88F4, 0x88F0, 0x88F0, 0x88F0, 0x88F0, 0x88F0, 0x88F0, 0x88F0, + 0x88F0, 0x88F0, 0x88F2, 0x88F2, 0x88F2, 0x88F2, 0x88F4, 0x88F6, 0x88F6, + 0x88F6, 0x88F6, 0x88F6, 0x88F6, 0x88F6, 0x8CF4, 0x94F0, 0x9CEE, 0xA4E8, + 0xA4E8, 0xA4E8, 0xA4E8, 0xA4E8, 0xA4E8, 0xA4E8, 0xA4E8, 0xA4E8, 0xA4E6, + 0xA4E6, 0xA4E6, 0xA4E6, 0xA8E4, 0xAAE2, 0xAAE2, 0xAAE2, 0xAAE2, 0xACE2, + 0xACE2, 0xACE2, 0xAEE2, 0xB4E2, 0xB8E4, 0xBEEC, 0xC0EC, 0xC2F0, 0xC4F6, + 0xC4F8, 0xC600, 0xD212, 0xD61C, 0xD81C, 0xDA1E, 0xDA20, 0xDA20, 0xDA20, + 0xDC22, 0xDC24, 0xDC24, 0xDC24, 0xDC24, 0xDC24, 0xDC24, 0xDC26, 0xDC26, + 0xDC28, 0xDC28, 0xDC28, 0xDC28, 0xDA2E, 0xD830, 0xD830, 0xD832, 0xD832, + 0xD832, 0xD832, 0xD832, 0xD832, 0xD832, 0xD832, 0xD832, 0xD832, 0xD832, + 0xDA32, 0xDC30, 0xDC30, 0xDC30, 0xDC2E, 0xDC2E, 0xDC2C, 0xDC2C, 0xDC2C, + 0xDC2C, 0xDC2A, 0xDC2A, 0xDC2A, 0xDC2A, 0xDC2A, 0xDC2A, 0xDC2A, 0xDC2A, + 0xDC2A, 0xDC2A, 0xDC28, 0xDC28, 0xDC26, 0xDC26, 0xDC26, 0xDC24, 0xDE22, + 0xDE22, 0xDE22, 0xDE22, 0xDE22, 0xDE22, 0xE020, 0xE21E, 0xE61C, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000 +}; diff --git a/rel/data/titledemo/pact3.c b/rel/data/titledemo/pact3.c new file mode 100644 index 00000000..2943d990 --- /dev/null +++ b/rel/data/titledemo/pact3.c @@ -0,0 +1,217 @@ +#include "types.h" + +u16 pact3_head_table[] = { + 0x0B53, 0x00A0, 0x044D, /* position */ + 0xE400, /* angle (320.625 deg) */ + 0x0000, /* tool */ + 0x0731 /* scale/size? */ +}; + +u16 pact3_key_data[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xEAF4, 0xEAF4, 0xEAF4, + 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, + 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, 0xEAF4, + 0xEAF4, 0xEAF4, 0xEAFC, 0xEAFC, 0xEAFC, 0xEAFC, 0xEAFC, 0xEAFC, 0xEAFC, + 0xEAFC, 0xEA02, 0xEA00, 0xEA08, 0xEA0C, 0xEA10, 0xE814, 0xE816, 0xE81A, + 0xE81E, 0xE81E, 0xE81E, 0xE81E, 0xE824, 0xE824, 0xE826, 0xE828, 0xE828, + 0xE828, 0xE828, 0xE828, 0xE82C, 0xE82C, 0xE82C, 0xE82E, 0xE830, 0xE832, + 0xE834, 0xEE36, 0xF638, 0xFA3C, 0xFA3C, 0x003C, 0x003C, 0x003C, 0x003C, + 0x003C, 0x003C, 0x003C, 0x003C, 0x003C, 0x003E, 0x003E, 0x003E, 0x003E, + 0x003E, 0x003E, 0x003E, 0x003E, 0x043E, 0x043E, 0x043E, 0x043E, 0x103E, + 0x143E, 0x1840, 0x1A40, 0x2040, 0x2640, 0x2A40, 0x2A40, 0x2A40, 0x2E40, + 0x2E40, 0x3040, 0x3040, 0x3440, 0x3640, 0x3A40, 0x3C3E, 0x3E3E, 0x3E3E, + 0x3E3E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, + 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, 0x443E, + 0x443E, 0x443E, 0x4436, 0x4436, 0x4436, 0x4436, 0x4430, 0x442E, 0x442E, + 0x442A, 0x4426, 0x4422, 0x441A, 0x4410, 0x4408, 0x4402, 0x44FE, 0x44FE, + 0x44FE, 0x44FA, 0x44F4, 0x44F0, 0x44EE, 0x44EE, 0x44EE, 0x44EE, 0x44EE, + 0x44E6, 0x44E2, 0x44DE, 0x44D8, 0x44D4, 0x44D2, 0x44D2, 0x44D2, 0x44D2, + 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, + 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, 0x44D2, + 0x44D2, 0x44D2, 0x44D2, 0x44D4, 0x46D8, 0x48DC, 0x48DE, 0x48DE, 0x48DE, + 0x48E8, 0x48EE, 0x48F2, 0x48F2, 0x48F2, 0x48FC, 0x48FE, 0x48FE, 0x48FE, + 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, + 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, 0x48FE, + 0x48FE, 0x5AFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, + 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, + 0x5CFC, 0x4CFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, + 0x48F2, 0x3EE6, 0x30DC, 0x2EDA, 0x2EDA, 0x2EDA, 0x2CD8, 0x2CD8, 0x2CD6, + 0x2CD6, 0x2CD6, 0x2CD2, 0x2CD2, 0x2CD2, 0x2CD0, 0x2CD0, 0x2ACE, 0x2ACC, + 0x2ACC, 0x28CA, 0x28CA, 0x26C6, 0x22C4, 0x22C4, 0x22C4, 0x1EBE, 0x1EBE, + 0x1EBE, 0x18B8, 0x18B6, 0x18B6, 0x18B6, 0x0EB4, 0x0CB2, 0x0CB2, 0x0CB2, + 0x0CB2, 0x0CB2, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, + 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, + 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, + 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, + 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, + 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, + 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEAE, 0xFEA6, + 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, + 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, 0xFEA0, + 0xFEA0, 0xFEA0, 0x00A4, 0x02A6, 0x0CAA, 0x1EAC, 0x2CAC, 0x30AE, 0x34B0, + 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, + 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x34B0, 0x36B0, 0x36B0, + 0x36B0, 0x36B0, 0x36B0, 0x36B0, 0x36B0, 0x36B0, 0x36B0, 0x36B0, 0x36B0, + 0x32B0, 0x2EB0, 0x28B0, 0x24B0, 0x20B0, 0x1AB0, 0x1AB0, 0x1AB0, 0x1AB0, + 0x1AB0, 0x1AB0, 0x1AB0, 0x1AB0, 0x1AB0, 0x1AB0, 0x1AB0, 0x18B0, 0x18B0, + 0x18B0, 0x1CB4, 0x24B8, 0x2EBC, 0x30BE, 0x30BE, 0x32BE, 0x34C0, 0x34C0, + 0x34C0, 0x34C6, 0x34C6, 0x34C8, 0x34CA, 0x34CA, 0x34CE, 0x34CE, 0x34D0, + 0x34D4, 0x34D8, 0x34D8, 0x34D8, 0x34E8, 0x34EA, 0x34EA, 0x34F0, 0x34F2, + 0x34F6, 0x34F6, 0x34FA, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, + 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, + 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, + 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x34FC, 0x38FE, 0x38FE, 0x38FE, + 0x38FE, 0x38FE, 0x38FE, 0x38FE, 0x38FE, 0x38FE, 0x38FE, 0x38FE, 0x44FE, + 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, + 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, + 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, 0x44FE, + 0x44FE, 0x44FE, 0x44FE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, + 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, + 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AFE, 0x4AF8, 0x4AF6, 0x4AF0, 0x4AEC, + 0x4AE6, 0x4AE2, 0x4ADA, 0x48D2, 0x46CC, 0x44C6, 0x44C6, 0x44C4, 0x40C2, + 0x3EC0, 0x3EBE, 0x3CBE, 0x3CBC, 0x3ABC, 0x38BA, 0x34BA, 0x2EBA, 0x26BA, + 0x22BA, 0x1EB8, 0x1EB8, 0x18B6, 0x10B4, 0x0CB2, 0x0CB2, 0x0CB2, 0x0CB2, + 0x0CB2, 0x0CB2, 0x0CB2, 0x0CB2, 0x0CB2, 0x0CAA, 0x0CA8, 0x0CA8, 0x0CA8, + 0x0CA8, 0x0CA8, 0x0CA8, 0x0CA8, 0xFAA8, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, + 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, + 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, + 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, 0xFAA6, + 0xFAA6, 0xFAA6, 0xF8AC, 0xF2B2, 0xEEB4, 0xEEB6, 0xE8B8, 0xE8B8, 0xE8B8, + 0xE4BA, 0xDABE, 0xD6BE, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, + 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, 0xC2C2, + 0xC2C0, 0xC2C0, 0xC2C0, 0xC2C0, 0xC2C0, 0xC2C0, 0xC8BE, 0xCCBE, 0xCEBE, + 0xCEBE, 0xCEBE, 0xCEBE, 0xCEBE, 0xCEBE, 0xCEBE, 0xDAB8, 0xE0B8, 0xE4B8, + 0xE6B8, 0xE6B8, 0xE6B8, 0xEEB4, 0xEEB4, 0xF4B0, 0xF8AE, 0xF8AE, 0xF8AE, + 0xF8AE, 0xF8AE, 0xF8AE, 0xF8AE, 0xF8AE, 0xF8AE, 0xF8AE, 0xF8AE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, + 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFAAE, 0xFCB0, 0xFEB0, 0x00B0, 0x00B0, + 0x00B0, 0x00B0, 0x00B0, 0x0AB2, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, 0x0AB4, + 0x0ABA, 0x12C2, 0x18D6, 0x18D8, 0x18DA, 0x18DE, 0x18DE, 0x18E0, 0x18E2, + 0x18E6, 0x18EC, 0x18F0, 0x18F0, 0x18F2, 0x18F6, 0x18FE, 0x18FE, 0x18FE, + 0x18FE, 0x18FE, 0x18FE, 0x18FE, 0x18FE, 0x18FE, 0x18FE, 0x18FE, 0x18FE, + 0x18FE, 0x18FE, 0x1800, 0x1802, 0x1802, 0x1802, 0x1802, 0x1804, 0x1802, + 0x1806, 0x1806, 0x180A, 0x180A, 0x180E, 0x180E, 0x180E, 0x180E, 0x180E, + 0x180E, 0x180E, 0x180E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, + 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF8EA, 0xF8E6, 0xF8E6, + 0xF8E6, 0xF8DE, 0xF8DC, 0xF8DC, 0xF8DC, 0xF8D4, 0xF8D4, 0xF8D4, 0xF8D4, + 0xF8D4, 0xF8D4, 0xF8D4, 0xF8D4, 0xF8CC, 0xF8C8, 0xF4C4, 0xF2C0, 0xF0BE, + 0xF0BE, 0xE6BC, 0xE0BC, 0xD4BA, 0xD2BA, 0xD0BA, 0xD0BA, 0xD0BA, 0xD0BA, + 0xD0BA, 0xD0BA, 0xD0BA, 0xD0BA, 0xD0BA, 0xD0BA, 0xD0BA, 0xD0BA, 0xD0BA, + 0xD0BA, 0xDABA, 0xE6B8, 0xEAB8, 0xEEB6, 0xEEB6, 0xEEB6, 0xEEB6, 0xEEB6, + 0xEEB0, 0xEEA6, 0xEEA6, 0xEEA6, 0xEEA6, 0xEEA6, 0xEEA6, 0xEEA6, 0xEEA6, + 0xF0A6, 0xF0A6, 0xF0A8, 0xF0A8, 0xF0A8, 0xF0A8, 0xF0A8, 0xF0A8, 0xF0A8, + 0xF0A8, 0xF0A8, 0xF0A8, 0xF0A8, 0xF0A8, 0xF0A8, 0xF2A8, 0xF4A8, 0xF4A8, + 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, + 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, 0xF4A8, + 0xF4A8, 0xF4A8, 0xF4A8, 0xF8A8, 0xFCA8, 0xFEA8, 0x06A8, 0x0CAA, 0x14AC, + 0x18AC, 0x20AE, 0x24B0, 0x26B0, 0x26B0, 0x26B0, 0x26B0, 0x26B0, 0x26B0, + 0x26B0, 0x26B0, 0x26B0, 0x26B0, 0x26B0, 0x28B0, 0x28B0, 0x28B0, 0x24B0, + 0x20B0, 0x1AB0, 0x10B0, 0x0CB0, 0x0AB0, 0x0AB0, 0x08B0, 0x08B0, 0x08B0, + 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, + 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x02B0, 0x00B6, 0xF4C8, + 0xF0CC, 0xECD0, 0xE8D2, 0xE0D6, 0xE0D6, 0xD8D8, 0xD8D8, 0xD8DC, 0xD8DE, + 0xD8DE, 0xD8E2, 0xD6E4, 0xD6E6, 0xD6E8, 0xD6E8, 0xD6E8, 0xD6F0, 0xD6EC, + 0xD6EE, 0xD6F0, 0xD6FA, 0xD6FA, 0xD6FA, 0xD6FE, 0xD604, 0xD604, 0xD604, + 0xD604, 0xD604, 0xD604, 0xD604, 0xD604, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFEE6, 0x04D4, 0x06CE, 0x06CE, 0x06CE, 0x06CE, 0x06CE, 0x06CE, + 0x06CE, 0x06CE, 0x06CE, 0x06CE, 0x0ACE, 0x0ECE, 0x16CE, 0x20CE, 0x26CE, + 0x2CCE, 0x30CE, 0x32CE, 0x32CE, 0x34CE, 0x34CE, 0x34CE, 0x34CE, 0x34CE, + 0x34CE, 0x34CE, 0x34CE, 0x34CE, 0x34CC, 0x34CC, 0x34CC, 0x34CA, 0x34C8, + 0x34C6, 0x36C4, 0x36C2, 0x36BE, 0x36BA, 0x36B4, 0x36B0, 0x32AC, 0x30AA, + 0x2EA8, 0x2EA8, 0x2AA4, 0x2AA4, 0x2AA2, 0x28A2, 0x26A0, 0x249E, 0x229E, + 0x1E9C, 0x189C, 0x149C, 0x149C, 0x149C, 0x149C, 0x149C, 0x149C, 0x149C, + 0x0A9C, 0x0A9C, 0x089C, 0x089C, 0x089C, 0x089C, 0x089C, 0x089C, 0x089C, + 0x089C, 0x089C, 0x089C, 0x0898, 0x0898, 0x0898, 0x0898, 0x0898, 0x0898, + 0x0898, 0x0898, 0x0898, 0x0898, 0x0892, 0x088A, 0x088A, 0x088A, 0x0888, + 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, + 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, 0x0688, + 0x0688, 0x0688, 0x0888, 0x088A, 0x088C, 0x088C, 0x088C, 0x088C, 0x088C, + 0x0890, 0x0894, 0x0894, 0x0894, 0x0894, 0x0896, 0x0896, 0x0896, 0x0896, + 0x089A, 0x089E, 0x089E, 0x08A2, 0x06A6, 0x06A8, 0x06A8, 0x06A8, 0x06A8, + 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x06A8, 0x04A8, 0x04A8, + 0x04AA, 0x04AC, 0x06AE, 0x10B8, 0x20CA, 0x24D0, 0x28D0, 0x2CD2, 0x2CD2, + 0x2CD2, 0x2CD2, 0x2CD2, 0x2CD2, 0x2ED6, 0x2ED6, 0x2ED6, 0x2ED6, 0x2EDC, + 0x2EE2, 0x2EE6, 0x2EE6, 0x2EEC, 0x2EF4, 0x2CFE, 0x2CFE, 0x2C02, 0x2A08, + 0x280A, 0x280A, 0x280A, 0x280A, 0x1C0A, 0x140A, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x02EC, 0x02E8, + 0x02E4, 0x02E2, 0x02DE, 0x02DA, 0x00D8, 0xFED6, 0xFAD4, 0xFAD2, 0xFAD2, + 0xFAD2, 0xF6D0, 0xECCC, 0xECC8, 0xECC6, 0xEAC0, 0xEAC0, 0xEAC0, 0xEAC0, + 0xEAC0, 0xEAC0, 0xEAC0, 0xEAC0, 0xEAC0, 0xEAC0, 0xEAC0, 0xEAC0, 0xEAC0, + 0xEAC0, 0xEAC0, 0xEAC0, 0xE8C0, 0xE8BC, 0xE8BC, 0xE8BC, 0xE8BC, 0xE8BC, + 0xE8BC, 0xEAB8, 0xEAB8, 0xF6B6, 0xF6B6, 0xF6B6, 0xF8B6, 0xF8B6, 0xF8B6, + 0xFAB8, 0xFEBC, 0x02BE, 0x08C2, 0x08C2, 0x08C2, 0x0AC4, 0x0EC8, 0x18CE, + 0x1EDA, 0x1EDA, 0x20DC, 0x20DC, 0x20DC, 0x20DC, 0x20DE, 0x20DE, 0x20DE, + 0x20DE, 0x20DE, 0x20DE, 0x22E0, 0x22E0, 0x22E0, 0x22E0, 0x22E0, 0x22E0, + 0x22E0, 0x22E0, 0x22E0, 0x22E0, 0x22E0, 0x2AE0, 0x2AE0, 0x2AE0, 0x2AE0, + 0x2AE0, 0x2AE0, 0x2AE0, 0x2AE0, 0x2AE0, 0x20E6, 0x14F0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xF4F0, 0xF2EE, 0xF2EE, 0xF2EE, 0xF2EE, 0xF2EE, 0xF2EE, 0xF2EE, + 0xF2EE, 0xF2EE, 0xF2EE, 0xECE8, 0xECE8, 0xECE8, 0xECE8, 0xE8E4, 0xE8E4, + 0xE8E4, 0xE8E4, 0xE8E4, 0xE8E4, 0xE8E4, 0xE8E4, 0xE8E4, 0xE8E4, 0xE8E4, + 0xECEA, 0x0000, 0x0000, 0x0000, 0x0101, 0x0101, 0x0101, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x00E8, 0x00E6, 0x00E6, 0x00E6, 0x00E6, 0x00DE, 0x00D4, 0x00CE, 0x00CE, + 0x00CE, 0x00CE, 0x00CE, 0x00CE, 0x00CE, 0x00CE, 0x00CE, 0x00CE, 0x00CE, + 0x00D0, 0x02D0, 0x06D2, 0x0CD4, 0x16DA, 0x1CE2, 0x1EE8, 0x1EEA, 0x1EEA, + 0x1EEA, 0x1EEA, 0x1EF6, 0x1EF8, 0x1EF8, 0x1EFE, 0x1EFE, 0x1E00, 0x1E00, + 0x1E00, 0x1E00, 0x1E04, 0x1E04, 0x1E04, 0x1E04, 0x1E04, 0x1E04, 0x1E04, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0101, 0x0101, 0x0101, 0x0101, + 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000 +}; diff --git a/rel/data/titledemo/pact4.c b/rel/data/titledemo/pact4.c new file mode 100644 index 00000000..3b257c6e --- /dev/null +++ b/rel/data/titledemo/pact4.c @@ -0,0 +1,216 @@ +#include "types.h" + +u16 pact4_head_table[] = { + 0x062A, 0x0028, 0x09A8, /* position */ + 0xBE9F, /* angle (258.03039550781 deg) */ + 0x2201, /* tool (axe) */ + 0x072A /* scale/size? */ +}; + +u16 pact4_key_data[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE6FC, 0xE4FC, + 0xE2FC, 0xE2FA, 0xE2FA, 0xDAFA, 0xD8FA, 0xD4FA, 0xD2FA, 0xD2FA, 0xD2FA, + 0xD2FA, 0xD0FA, 0xD0FA, 0xD0FA, 0xD0FA, 0xD0FA, 0xD0FA, 0xD0FA, 0xD0FA, + 0xC8FA, 0xC4FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, + 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC2FA, 0xC4FA, + 0xC4FA, 0xC4FA, 0xC4FA, 0xC4FA, 0xC4FA, 0xC4FE, 0xC402, 0xC60E, 0xC818, + 0xCA1C, 0xCE22, 0xD026, 0xD026, 0xD026, 0xD026, 0xD028, 0xD228, 0xD22A, + 0xD42C, 0xD62C, 0xD62C, 0xD62C, 0xD62C, 0xD82C, 0xD82C, 0xDC2E, 0xDE2E, + 0xE02E, 0xE42E, 0xE62E, 0xE62E, 0xE62E, 0xE82E, 0xE82E, 0xEA2E, 0xEA2E, + 0xEA2E, 0xEA2E, 0xEA2E, 0xEA2E, 0xEA2E, 0xEA2E, 0xEA2E, 0xEA2E, 0xEA2E, + 0xEA2E, 0xEA2E, 0xEA2C, 0xEA28, 0xEA26, 0xEA26, 0xEA24, 0xEA24, 0xEA24, + 0xEA22, 0xEA22, 0xE822, 0xE822, 0xE822, 0xE820, 0xE620, 0xE620, 0xE61E, + 0xE41E, 0xE21A, 0xE016, 0xDE14, 0xDC10, 0xDC0E, 0xDA0A, 0xDA0A, 0xD808, + 0xD802, 0xD800, 0xD8FC, 0xD8FC, 0xD8FC, 0xD8FC, 0xD8FC, 0xD8FC, 0xD8FC, + 0xD8FC, 0xD8FC, 0xD8FC, 0xD8FC, 0xE0FA, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xF6EE, 0xF2EC, 0xF2EA, 0xF2EA, 0xF2EA, 0xF2EA, 0xF2EA, + 0xF2EA, 0xF2EA, 0xF2EA, 0xF2E8, 0xF2E8, 0xF2E8, 0xF2E8, 0xF2E6, 0xF2E6, + 0xF2E4, 0xF2E4, 0xF0E2, 0xF0DE, 0xF0D8, 0xF0D6, 0xF0D0, 0xF0CE, 0xF0CE, + 0xF0CE, 0xF0CC, 0xF0CC, 0xF0CC, 0xF0CA, 0xEECA, 0xE0CA, 0xDACA, 0xD6CA, + 0xD4CA, 0xD2CA, 0xD0CA, 0xD0CA, 0xCECA, 0xCCCA, 0xCCCA, 0xCACE, 0xCAD4, + 0xC8E2, 0xC4EE, 0xC0F6, 0xC00C, 0xC01C, 0xC02C, 0xC034, 0xC040, 0xC040, + 0xC044, 0xC044, 0xC044, 0xC044, 0xC044, 0xC044, 0xBE44, 0xBE44, 0xBC44, + 0xB044, 0x9E38, 0x8C24, 0x8A1A, 0x880E, 0x8806, 0x8806, 0x8806, 0x8806, + 0x8806, 0x8806, 0x8806, 0x8806, 0x8806, 0x8806, 0x8806, 0x8806, 0x8806, + 0x8806, 0x8806, 0x8806, 0x8806, 0x8806, 0x8808, 0x880A, 0x880C, 0x880C, + 0x880C, 0x880E, 0x880E, 0x8810, 0x8C14, 0x8E14, 0x9016, 0x9016, 0x9016, + 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, + 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, 0x9016, + 0x9216, 0x981C, 0xA024, 0xB236, 0xB43A, 0xB63C, 0xB840, 0xBA42, 0xBC46, + 0xBE4A, 0xC04C, 0xC050, 0xC858, 0xD05E, 0xD260, 0xD262, 0xD262, 0xD464, + 0xD466, 0xD466, 0xDA68, 0xE268, 0xE868, 0xEA68, 0xEA68, 0xEE68, 0xF868, + 0xFA68, 0xFA68, 0xFE68, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, + 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, + 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, + 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, + 0x026A, 0x026A, 0x026A, 0x0268, 0x0268, 0x0266, 0x0266, 0x0266, 0x0264, + 0x0264, 0x0264, 0x0264, 0x0264, 0x0264, 0x0264, 0x0264, 0x0264, 0x0264, + 0x0264, 0x0264, 0x0264, 0x0462, 0x0462, 0x0462, 0x0462, 0x0660, 0x165A, + 0x2054, 0x2652, 0x304C, 0x3848, 0x3846, 0x3846, 0x3844, 0x3A44, 0x3A42, + 0x3C40, 0x3C3E, 0x3C3E, 0x3C3C, 0x3C36, 0x3C32, 0x3A28, 0x3A22, 0x3A16, + 0x3A0E, 0x3A0C, 0x3A0C, 0x3A0C, 0x3A0C, 0x3A0C, 0x3A0C, 0x3A0C, 0x3A0C, + 0x3A0A, 0x3C08, 0x3C08, 0x3C08, 0x3E02, 0x3E00, 0x4000, 0x4200, 0x4200, + 0x4200, 0x42FE, 0x42FE, 0x42FC, 0x40F8, 0x3EF0, 0x3AEA, 0x38E8, 0x38E8, + 0x38E8, 0x38E6, 0x38E2, 0x38E2, 0x38E2, 0x38E0, 0x36DC, 0x36DC, 0x36DC, + 0x36DC, 0x36DC, 0x36DC, 0x36DC, 0x36DC, 0x36DC, 0x36DC, 0x36DE, 0x36E6, + 0x36F2, 0x36F2, 0x36F2, 0x36F2, 0x36F2, 0x36F2, 0x36F2, 0x36F2, 0x36F4, + 0x36F6, 0x36F8, 0x36FC, 0x36FC, 0x34FC, 0x32FD, 0x32FD, 0x30FD, 0x16FF, + 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x06EC, 0x06EA, + 0x06EA, 0x06E8, 0x06E6, 0x06E2, 0x06DE, 0x06DC, 0x06DA, 0x06DA, 0x06DA, + 0x06DA, 0x06DA, 0x06DA, 0x06D8, 0x06D6, 0x06D4, 0x06D2, 0x06D0, 0x06CC, + 0x08CA, 0x1AC8, 0x1CC8, 0x20C8, 0x2CC8, 0x2CC8, 0x30CA, 0x32CE, 0x36D2, + 0x38D6, 0x3EE2, 0x44EA, 0x4EFE, 0x52FE, 0x54FE, 0x5A00, 0x5E04, 0x6606, + 0x6E06, 0x6E06, 0x6E06, 0x7006, 0x7006, 0x7006, 0x7006, 0x7006, 0x6E04, + 0x6CFE, 0x68FE, 0x68FE, 0x66FA, 0x66F4, 0x64EA, 0x64E8, 0x64E4, 0x62E4, + 0x62E4, 0x62E4, 0x62E4, 0x62E4, 0x62E4, 0x62E4, 0x62E4, 0x62E4, 0x62E4, + 0x62E4, 0x62E4, 0x62E2, 0x60DE, 0x5EDA, 0x5AD4, 0x58CE, 0x52C6, 0x4CC2, + 0x48C0, 0x46BE, 0x42BC, 0x42BC, 0x40BA, 0x3ABA, 0x38BA, 0x38BA, 0x38B8, + 0x38B8, 0x38B8, 0x38B6, 0x38B6, 0x38B6, 0x38B6, 0x38B6, 0x38B6, 0x38B6, + 0x38B6, 0x38B6, 0x38B6, 0x38B6, 0x38B6, 0x38B6, 0x3AB6, 0x3CB6, 0x3EB6, + 0x40B6, 0x44B6, 0x46B6, 0x46B6, 0x48B8, 0x4CBC, 0x4CC0, 0x4EC4, 0x52CE, + 0x54D0, 0x56D4, 0x58DE, 0x5AE8, 0x5AEA, 0x5AEA, 0x5AEC, 0x5CEE, 0x5CF0, + 0x5CF4, 0x5CF6, 0x5CFA, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, 0x5CFC, + 0x5CFC, 0x5AFC, 0x5AFC, 0x5AFC, 0x5AFE, 0x5AFE, 0x5AFE, 0x5AFE, 0x5AFE, + 0x5A04, 0x5612, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, + 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, + 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501D, 0x5015, 0x4603, + 0x4201, 0x4001, 0x3800, 0x14FE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0214, 0x041A, 0x042E, 0x0436, 0x0444, 0x0446, + 0x0446, 0x0448, 0x0448, 0x0448, 0x0448, 0x024C, 0x0250, 0x0058, 0xFA62, + 0xF270, 0xEC78, 0xE876, 0xE876, 0xE876, 0xE876, 0xE876, 0xE876, 0xE876, + 0xEA76, 0xEA76, 0xEE78, 0xF278, 0xF878, 0xFC78, 0xFE78, 0x0078, 0x007A, + 0x007A, 0x0478, 0x0678, 0x0678, 0x0678, 0x0678, 0x0878, 0x0C78, 0x1876, + 0x1876, 0x1876, 0x2074, 0x2672, 0x2672, 0x2872, 0x2E70, 0x306E, 0x306E, + 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, + 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, 0x306E, + 0x306E, 0x306E, 0x326E, 0x346E, 0x346E, 0x346E, 0x346E, 0x346C, 0x346C, + 0x386A, 0x386A, 0x3A6A, 0x3A6A, 0x3C68, 0x4860, 0x4C5E, 0x4C5E, 0x4C5E, + 0x4C5E, 0x4E5C, 0x505C, 0x505A, 0x5258, 0x5258, 0x5258, 0x5456, 0x5A52, + 0x5A52, 0x5A50, 0x5E4C, 0x5E4C, 0x5E4C, 0x604A, 0x6248, 0x6640, 0x683C, + 0x6A3A, 0x6C34, 0x6C34, 0x6C34, 0x6C34, 0x6C34, 0x6C34, 0x6C34, 0x6E32, + 0x6E32, 0x6E2E, 0x6E2C, 0x6E2C, 0x6E2C, 0x6E2C, 0x6E2A, 0x6E2A, 0x6E2A, + 0x6E2A, 0x6E2A, 0x6E2A, 0x6C2A, 0x6826, 0x6422, 0x6216, 0x620C, 0x6204, + 0x6204, 0x6204, 0x6204, 0x6204, 0x6202, 0x6200, 0x6200, 0x6200, 0x6200, + 0x6200, 0x62FF, 0x6201, 0x3A01, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0E16, 0x1222, 0x122A, 0x1A2E, 0x1A30, 0x1A30, 0x1A30, 0x1A36, + 0x1A38, 0x1A3A, 0x1842, 0x1846, 0x164C, 0x0854, 0x025C, 0xF266, 0xDE6C, + 0xBE66, 0xB65E, 0xB05A, 0xAE58, 0xAE58, 0xAC58, 0xAC58, 0xAC58, 0xAC58, + 0xAC58, 0xAC58, 0xAC56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, + 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, + 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, + 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, + 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, 0xAA56, + 0xAA56, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, + 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, + 0xAA54, 0xA854, 0xA854, 0xA854, 0xA852, 0xA650, 0xA650, 0xA650, 0xA44E, + 0xA44C, 0xA44C, 0xA44C, 0xA44C, 0xA44C, 0xA44C, 0xA44C, 0xA44C, 0xA44C, + 0xA44C, 0xA44C, 0xA44C, 0xA44C, 0xA44E, 0xA650, 0xA650, 0xA650, 0xA650, + 0xA650, 0xA650, 0xA852, 0xA854, 0xA854, 0xA854, 0xAA54, 0xAA54, 0xAA54, + 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA54, 0xAA55, 0xAA55, 0xAA55, + 0xAC57, 0xAC57, 0xAC56, 0xB44E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF4EE, 0xF6EC, 0xF4E6, + 0xF4DE, 0xF4D2, 0xF4CC, 0xF2CC, 0xEECA, 0xEAC6, 0xEAC6, 0xEAC6, 0xEAC6, + 0xEAC6, 0xEAC6, 0xEAC6, 0xEAC6, 0xEAC6, 0xE8C0, 0xE8BC, 0xE8B4, 0xE4B0, + 0xDEB0, 0xD8B0, 0xCAB0, 0xC6B2, 0xC4B4, 0xC2BE, 0xC2CE, 0xC2E0, 0xC0F8, + 0xC00A, 0xC00C, 0xC00C, 0xC00C, 0xC00D, 0xC40B, 0xD809, 0x0001, 0x0001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xF8E6, 0xF6D4, 0xF6CC, 0xF6C6, 0xF6C6, 0xF6C6, 0xF6C6, 0xFAC4, 0xFCC2, + 0xFCC2, 0xFEC2, 0x00C0, 0x02C0, 0x08C0, 0x16BE, 0x28BA, 0x36B8, 0x3CB6, + 0x3EB6, 0x3EB6, 0x3EB6, 0x3EB6, 0x3EB6, 0x3EB6, 0x3EB6, 0x42B6, 0x46B6, + 0x4EB4, 0x54B2, 0x5CB0, 0x5EB4, 0x60B6, 0x64BC, 0x66C0, 0x66C0, 0x68C2, + 0x68C4, 0x6AC8, 0x6ECC, 0x6ECE, 0x6ED0, 0x70D2, 0x70D2, 0x70D2, 0x70D4, + 0x72D6, 0x72D8, 0x72D8, 0x74DC, 0x74E0, 0x76E8, 0x76E8, 0x76E8, 0x76EA, + 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, + 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, + 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x76EA, 0x78F4, 0x78F2, 0x78F2, + 0x78F2, 0x78F2, 0x78F2, 0x78F2, 0x78F2, 0x78F2, 0x78F2, 0x78F2, 0x78F2, + 0x78F2, 0x78F2, 0x78F2, 0x78F4, 0x78F6, 0x78F4, 0x78F4, 0x78F4, 0x78F4, + 0x78F4, 0x78F4, 0x78F4, 0x78F4, 0x78F4, 0x78F4, 0x78F4, 0x78F4, 0x76EA, + 0x70D2, 0x6CCC, 0x68C2, 0x64BC, 0x60B6, 0x58AE, 0x56AA, 0x56AA, 0x48AA, + 0x46AA, 0x42AA, 0x3EAA, 0x28A9, 0x20A9, 0x1CA9, 0x0EAB, 0x06AF, 0x06B3, + 0x06C3, 0x06E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0CF0, 0x10EC, 0x10EC, 0x10EC, 0x10EC, 0x10EA, 0x10EA, 0x16E6, + 0x1EE2, 0x22E2, 0x22E2, 0x24E0, 0x24E0, 0x24E0, 0x28E0, 0x2AE0, 0x2AE0, + 0x2AE0, 0x2CDC, 0x34D6, 0x38D4, 0x4AD2, 0x60D0, 0x70D2, 0x72D8, 0x72DA, + 0x74DE, 0x74E0, 0x78F6, 0x78FE, 0x78FE, 0x78FE, 0x78FE, 0x78FE, 0x78FE, + 0x78FE, 0x78FE, 0x7800, 0x780A, 0x780A, 0x780A, 0x780A, 0x780A, 0x7810, + 0x761C, 0x5E2A, 0x4E34, 0x4C3A, 0x4C3E, 0x4A3E, 0x4A40, 0x4840, 0x4840, + 0x4840, 0x4842, 0x4842, 0x4842, 0x4842, 0x4842, 0x4842, 0x4842, 0x4842, + 0x4842, 0x4842, 0x4842, 0x4842, 0x4842, 0x4840, 0x4840, 0x483E, 0x483C, + 0x4C2E, 0x4E2A, 0x4E24, 0x4E1E, 0x4E1A, 0x4E16, 0x4E14, 0x4E14, 0x4E10, + 0x4E0E, 0x4E0C, 0x4E0C, 0x4E0C, 0x4E0C, 0x4E0C, 0x4E0C, 0x4E0C, 0x4E0C, + 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, + 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4E0A, 0x4C0E, 0x4A10, 0x4216, + 0x3E18, 0x341E, 0x2E20, 0x2A20, 0x2620, 0x2020, 0x1C20, 0x1A20, 0x1620, + 0x1620, 0x1220, 0x0A20, 0x0820, 0x0820, 0x0820, 0x0420, 0xF820, 0xF620, + 0xEE22, 0xEC24, 0xEC24, 0xEC24, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, + 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, + 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, 0xE428, + 0xE622, 0xEC1E, 0xEC1C, 0xF218, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000 +}; diff --git a/rel/m_fbdemo.c b/rel/m_fbdemo.c index e46c7dbe..7e4caded 100644 --- a/rel/m_fbdemo.c +++ b/rel/m_fbdemo.c @@ -1,204 +1,207 @@ #include "m_fbdemo.h" -#include "libultra/gu.h" + #include "libc64/malloc.h" #include "libc64/sleep.h" +#include "libultra/gu.h" -Gfx fbdemo_gfx_init[] ={ +Gfx fbdemo_gfx_init[] = { gsDPPipeSync(), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), - gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | + G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | + G_LOD | G_SHADING_SMOOTH), gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB), - gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_1PRIMITIVE, G_AC_NONE | G_ZS_PIXEL | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2), + gsDPSetOtherMode( + G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | + G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | + G_PM_1PRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2), gsSPEndDisplayList(), }; -extern void fbdemo_init_gfx(TransitionTile* this) { - - int col; - int col2; - int colTex; - int rowTex; - - int row; - int frame; - - Vtx* vtx; - Gfx* gfx; - - +extern void fbdemo_init_gfx(fbdemo* this) { + int col; + int col2; + int colTex; + int rowTex; - guMtxIdent(&this->modelView); - guMtxIdent(&this->unk_98); - guOrtho(&this->projection, 0.0f, 320, 240, 0.0f, -1000.0f, 1000.0f, 1.0f); + int row; + int frame; - for (frame = 0; frame < 2; frame++) { - this->frame = frame; - vtx = (this->frame == 0) ? this->vtxFrame1 : this->vtxFrame2; - for (rowTex = 0, row = 0; row < (this->rows + 1);rowTex += 0x20 ,row++) { - for (colTex = 0, col = 0; col < (this->cols + 1); colTex += 0x20, col++) { - Vtx_tn* vtxn = &vtx->n; - vtx++; - vtxn->ob[0] = col * 0x20; - vtxn->ob[1] = row * 0x20; - vtxn->ob[2] = -5; - vtxn->flag = 0; - vtxn->tc[0] = colTex << 6; - vtxn->tc[1] = rowTex << 6; - vtxn->n[0] = 0; - vtxn->n[1] = 0; - vtxn->n[2] = 120; - vtxn->a = 255; - } - } + Vtx* vtx; + Gfx* gfx; + + guMtxIdent(&this->modelView1); + guMtxIdent(&this->modelView2); + guOrtho(&this->projection, 0.0f, 320, 240, 0.0f, -1000.0f, 1000.0f, 1.0f); + + for (frame = 0; frame < 2; frame++) { + this->frame = frame; + vtx = (this->frame == 0) ? this->vtxFrame1 : this->vtxFrame2; + for (rowTex = 0, row = 0; row < (this->rows + 1); rowTex += 0x20, row++) { + for (colTex = 0, col = 0; col < (this->cols + 1); colTex += 0x20, col++) { + Vtx_tn* vtxn = &vtx->n; + vtx++; + vtxn->ob[0] = col * 0x20; + vtxn->ob[1] = row * 0x20; + vtxn->ob[2] = -5; + vtxn->flag = 0; + vtxn->tc[0] = colTex << 6; + vtxn->tc[1] = rowTex << 6; + vtxn->n[0] = 0; + vtxn->n[1] = 0; + vtxn->n[2] = 120; + vtxn->a = 255; + } } + } - gfx = this->gfx; - for (rowTex = 0, row = 0; row < this->rows; rowTex += 0x20,row++) { - gSPVertex(gfx++, SEGMENT_ADDR(0xA, (u32)row * (this->cols + 1) * sizeof(Vtx)), 2 * (this->cols + 1), 0); - - colTex = 0; - col = 0; - col2 = 0; - while (col < this->cols) { - gDPPipeSync(gfx++); + gfx = this->gfx; + for (rowTex = 0, row = 0; row < this->rows; rowTex += 0x20, row++) { + gSPVertex(gfx++, + SEGMENT_ADDR(0xA, (u32)row * (this->cols + 1) * sizeof(Vtx)), + 2 * (this->cols + 1), 0); - gDPLoadTextureTile(gfx++, SEGMENT_ADDR(0xB, 0), G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, 240, - colTex, rowTex, colTex + 0x20, rowTex + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + colTex = 0; + col = 0; + col2 = 0; + while (col < this->cols) { + gDPPipeSync(gfx++); - gSP1Quadrangle(gfx++, col2, col2 + 1, + (this->cols) + 2 + col2 , this->cols + 1 + col2, 0); + gDPLoadTextureTile(gfx++, SEGMENT_ADDR(0xB, 0), G_IM_FMT_RGBA, + G_IM_SIZ_16b, 320, 240, colTex, rowTex, colTex + 0x20, + rowTex + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); - colTex += 0x20; - col2++; - col++; - } - + gSP1Quadrangle(gfx++, col2, col2 + 1, +(this->cols) + 2 + col2, + this->cols + 1 + col2, 0); + + colTex += 0x20; + col2++; + col++; } + } - gDPPipeSync(gfx++); - gSPEndDisplayList(gfx++); + gDPPipeSync(gfx++); + gSPEndDisplayList(gfx++); } -extern void fbdemo_init_data(TransitionTile* this) { - int col; - int row; - +extern void fbdemo_init_data(fbdemo* this) { + int col; + int row; - for (row = 0; row < this->rows + 1; row++) { - for (col = 0; col < this->cols + 1; col++) { - (this->vtxData + col + row * (this->cols + 1))->x = col * 0x20; - (this->vtxData + col + row * (this->cols + 1))->y = row * 0x20; - } + for (row = 0; row < this->rows + 1; row++) { + for (col = 0; col < this->cols + 1; col++) { + (this->vtxData + col + row * (this->cols + 1))->x = col * 0x20; + (this->vtxData + col + row * (this->cols + 1))->y = row * 0x20; } + } } -extern void fbdemo_cleanup(TransitionTile* this){ - msleep(100); +extern void fbdemo_cleanup(fbdemo* this) { + msleep(100); + if (this->vtxData != NULL) { + free(this->vtxData); + this->vtxData = NULL; + } + if (this->vtxFrame1 != NULL) { + free(this->vtxFrame1); + this->vtxFrame1 = NULL; + } + if (this->vtxFrame2 != NULL) { + free(this->vtxFrame2); + this->vtxFrame2 = NULL; + } + if (this->gfx != NULL) { + free(this->gfx); + this->gfx = NULL; + } +} + +extern fbdemo* fbdemo_init(fbdemo* this, int cols, int rows) { + s32 gridsize; + + bzero(this, sizeof(fbdemo)); + + this->cols = cols; + this->rows = rows; + + this->frame = 0; + this->vtxData = malloc((cols + 1) * sizeof(xy_t) * (rows + 1)); + + this->vtxFrame1 = malloc((cols + 1) * sizeof(Vtx) * (rows + 1)); + this->vtxFrame2 = malloc((cols + 1) * sizeof(Vtx) * (rows + 1)); + + this->gfx = malloc(((this->cols * 9 + 1) * this->rows + 2) * sizeof(Gfx)); + + if ((this->vtxData == NULL) || (this->vtxFrame1 == NULL) || + (this->vtxFrame2 == NULL) || (this->gfx == NULL)) { if (this->vtxData != NULL) { - free(this->vtxData); - this->vtxData = NULL; + free(this->vtxData); + this->vtxData = NULL; } + if (this->vtxFrame1 != NULL) { - free(this->vtxFrame1); - this->vtxFrame1 = NULL; + free(this->vtxFrame1); + this->vtxFrame1 = NULL; } + if (this->vtxFrame2 != NULL) { - free(this->vtxFrame2); - this->vtxFrame2 = NULL; + free(this->vtxFrame2); + this->vtxFrame2 = NULL; } + if (this->gfx != NULL) { - free(this->gfx); - this->gfx = NULL; - } -} - -extern TransitionTile* fbdemo_init(TransitionTile* this, int cols, int rows){ - - s32 gridsize; - - bzero(this, sizeof(TransitionTile)); - - this->cols = cols; - this->rows = rows; - - - - this->frame = 0; - this->vtxData = malloc((cols + 1) * sizeof(TransitionTileVtxData) * (rows + 1)); - - this->vtxFrame1 = malloc((cols + 1) * sizeof(Vtx) * (rows + 1)); - this->vtxFrame2 = malloc((cols + 1) * sizeof(Vtx) * (rows + 1)); - - this->gfx = malloc(((this->cols * 9 + 1) * this->rows + 2) * sizeof(Gfx)); - - if ((this->vtxData == NULL) || (this->vtxFrame1 == NULL) || - (this->vtxFrame2 == NULL) || (this->gfx == NULL)) { - - if (this->vtxData != NULL) { - free(this->vtxData); - this->vtxData = NULL; - } - - if (this->vtxFrame1 != NULL) { - free(this->vtxFrame1); - this->vtxFrame1 = NULL; - } - - if (this->vtxFrame2 != NULL) { - free(this->vtxFrame2); - this->vtxFrame2 = NULL; - } - - if (this->gfx != NULL) { - free(this->gfx); - this->gfx = NULL; - } - - return NULL; + free(this->gfx); + this->gfx = NULL; } - fbdemo_init_gfx(this); - fbdemo_init_data(this); - this->frame = 0; + return NULL; + } - return this; + fbdemo_init_gfx(this); + fbdemo_init_data(this); + this->frame = 0; + + return this; } - -extern void fbdemo_update(TransitionTile* this) { - int col; - int row; - Vtx* vtx; +extern void fbdemo_update(fbdemo* this) { + int col; + int row; + Vtx* vtx; - for (row = 0; row < this->rows + 1; row++) { - for (col = 0; col < this->cols + 1; col++) { - vtx = (this->frame == 0) ? this->vtxFrame1 : this->vtxFrame2; - (vtx + col + row * (this->cols + 1))->n.ob[0] = (this->vtxData + col + row * (this->cols + 1))->x; + for (row = 0; row < this->rows + 1; row++) { + for (col = 0; col < this->cols + 1; col++) { + vtx = (this->frame == 0) ? this->vtxFrame1 : this->vtxFrame2; + (vtx + col + row * (this->cols + 1))->n.ob[0] = + (this->vtxData + col + row * (this->cols + 1))->x; - vtx = (this->frame == 0) ? this->vtxFrame1 : this->vtxFrame2; - (vtx + col + row * (this->cols + 1))->n.ob[1] = (this->vtxData + col + row * (this->cols + 1))->y; - } + vtx = (this->frame == 0) ? this->vtxFrame1 : this->vtxFrame2; + (vtx + col + row * (this->cols + 1))->n.ob[1] = + (this->vtxData + col + row * (this->cols + 1))->y; } + } } -void fbdemo_draw(TransitionTile* this, Gfx** gfxP) { - Gfx* gfx = *gfxP; +void fbdemo_draw(fbdemo* this, Gfx** gfxP) { + Gfx* gfx = *gfxP; - gSPDisplayList(gfx++, fbdemo_gfx_init); - fbdemo_update(this); - gSPMatrix(gfx++, &this->projection, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); - gSPMatrix(gfx++, &this->modelView, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(gfx++, 0xA, this->frame == 0 ? this->vtxFrame1 : this->vtxFrame2); - gSPSegment(gfx++, 0xB, this->zBuffer); - gSPDisplayList(gfx++, fbdemo_gfx_init); - gSPDisplayList(gfx++, this->gfx); - gDPPipeSync(gfx++); - this->frame ^= 1; - *gfxP = gfx; + gSPDisplayList(gfx++, fbdemo_gfx_init); + fbdemo_update(this); + gSPMatrix(gfx++, &this->projection, + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPMatrix(gfx++, &this->modelView1, + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSegment(gfx++, 0xA, this->frame == 0 ? this->vtxFrame1 : this->vtxFrame2); + gSPSegment(gfx++, 0xB, this->zBuffer); + gSPDisplayList(gfx++, fbdemo_gfx_init); + gSPDisplayList(gfx++, this->gfx); + gDPPipeSync(gfx++); + this->frame ^= 1; + *gfxP = gfx; } - -extern void fbdemo_move(void){ - -} \ No newline at end of file +extern void fbdemo_move(fbdemo* this) {} diff --git a/rel/m_fbdemo_fade.c b/rel/m_fbdemo_fade.c index b74721e4..8c12671f 100644 --- a/rel/m_fbdemo_fade.c +++ b/rel/m_fbdemo_fade.c @@ -1,105 +1,88 @@ #include "m_fbdemo_fade.h" -#include "libultra/libultra.h" -#include "libultra/gu.h" -#include "m_common_data.h" +#include "libultra/gu.h" +#include "libultra/libultra.h" +#include "m_common_data.h" Gfx fbdemo_fade_gfx_init[] = { gsDPPipeSync(), - gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), - gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_1PRIMITIVE, G_AC_NONE | G_ZS_PIXEL | G_RM_CLD_SURF | G_RM_CLD_SURF2), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | + G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | + G_LOD | G_SHADING_SMOOTH), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | + G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | + G_TP_NONE | G_CYC_1CYCLE | G_PM_1PRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_CLD_SURF | G_RM_CLD_SURF2), gsDPSetCombineMode(G_CC_PRIMITIVE, G_CC_PRIMITIVE), gsSPEndDisplayList(), }; - - - - -TransitionFade* fbdemo_fade_init(TransitionFade* this){ - - bzero(this, sizeof(TransitionFade)); - return this; +fbdemo_fade* fbdemo_fade_init(fbdemo_fade* this) { + bzero(this, sizeof(fbdemo_fade)); + return this; } -void fbdemo_fade_move(TransitionFade* this, int rate){ +void fbdemo_fade_move(fbdemo_fade* this, int rate) { + f32 ftimer; + int alpha; - f32 ftimer; - int alpha; - - if(this->timer != 0){ - this->timer -= 1; - return; - } - - if(this->type != 7){ - this->frame += rate; - if( this->frame >= Common_Get(transFadeDuration)){ - this->frame = Common_Get(transFadeDuration); - this->isDone = 1; - } - ftimer = (f32) this->frame; - if(ftimer < 0.0f){ - ftimer = 0.0f; - } + if (this->timer != 0) { + this->timer -= 1; + return; + } - alpha = (255.0f * ftimer) / Common_Get(transFadeDuration); - if (this->type == 1) { - this->color.a = 255 - alpha; - } - else { - this->color.a = alpha; - } - } + if (this->type != 7) { + this->frame += rate; + if (this->frame >= Common_Get(transFadeDuration)) { + this->frame = Common_Get(transFadeDuration); + this->isDone = 1; + } + ftimer = (f32)this->frame; + if (ftimer < 0.0f) { + ftimer = 0.0f; } -void fbdemo_fade_draw(TransitionFade* this, Gfx** gfxP){ - - Gfx* gfx; - if (this->color.a != 0) { - gfx = *gfxP; - gSPDisplayList(gfx++, fbdemo_fade_gfx_init); - gDPSetPrimColor(gfx++, 0, 0, this->color.r, this->color.g, this->color.b, this->color.a); - gDPFillRectangle(gfx++, 0, 0, N64_SCREEN_WIDTH * 2, N64_SCREEN_HEIGHT * 2); - gDPPipeSync(gfx++); - *gfxP = gfx; + alpha = (255.0f * ftimer) / Common_Get(transFadeDuration); + if (this->type == 1) { + this->color.a = 255 - alpha; + } else { + this->color.a = alpha; } + } } -void fbdemo_fade_startup(TransitionFade* this){ - static s8 start_frame[] = {0x00, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0xAB, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; - - - static u8 start_color[] = {0x00, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; - - - - this->color.a = start_color[this->type]; - this->frame = start_frame[this->type]; - this->isDone = 0; - if (this->type == 1){ - - this->timer = 10; - } +void fbdemo_fade_draw(fbdemo_fade* this, Gfx** gfxP) { + Gfx* gfx; + if (this->color.a != 0) { + gfx = *gfxP; + gSPDisplayList(gfx++, fbdemo_fade_gfx_init); + gDPSetPrimColor(gfx++, 0, 0, this->color.r, this->color.g, this->color.b, + this->color.a); + gDPFillRectangle(gfx++, 0, 0, N64_SCREEN_WIDTH * 2, N64_SCREEN_HEIGHT * 2); + gDPPipeSync(gfx++); + *gfxP = gfx; + } } -void fbdemo_fade_settype(TransitionFade* this, int type){ +void fbdemo_fade_startup(fbdemo_fade* this) { + static s8 start_frame[] = {0x00, 0xFA, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - this->type = type; + static u8 start_color[] = {0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + this->color.a = start_color[this->type]; + this->frame = start_frame[this->type]; + this->isDone = 0; + if (this->type == 1) { + this->timer = 10; + } } -void fbdemo_fade_setcolor_rgba8888(TransitionFade* this, u32 color){ - - this->color.rgba = color; +void fbdemo_fade_settype(fbdemo_fade* this, int type) { this->type = type; } + +void fbdemo_fade_setcolor_rgba8888(fbdemo_fade* this, u32 color) { + this->color.rgba = color; } -u8 fbdemo_fade_is_finish(TransitionFade* this){ - - return this->isDone; -} \ No newline at end of file +u8 fbdemo_fade_is_finish(fbdemo_fade* this) { return this->isDone; } \ No newline at end of file diff --git a/rel/m_fbdemo_triforce.c b/rel/m_fbdemo_triforce.c index d98bd296..6d536cf4 100644 --- a/rel/m_fbdemo_triforce.c +++ b/rel/m_fbdemo_triforce.c @@ -1,99 +1,93 @@ #include "m_fbdemo_triforce.h" + #include "dataobject.h" -#include "libultra/libultra.h" -#include "libultra/gu.h" -#include "m_rcp.h" #include "gfxalloc.h" +#include "libultra/gu.h" +#include "libultra/libultra.h" +#include "m_rcp.h" -void fbdemo_triforce_startup(TransitionTriforce* this){ - - this->finished = 0; +void fbdemo_triforce_startup(fbdemo_triforce* this) { + this->finished = 0; - if(this->direction != 0){ - this->txt = 0; - } - else{ - this->txt = 0x224; - } + if (this->direction != 0) { + this->txt = 0; + } else { + this->txt = 0x224; + } - guPerspective(&this->perspmtx, &this->normal, 60.0f, 4.0f/3.0f, 10.0f, 12800.0f, 1.0f); - guLookAt(&this->lookatmtx, 0.0f,0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f,1.0f, 0.0f); + guPerspective(&this->perspmtx, &this->normal, 60.0f, 4.0f / 3.0f, 10.0f, + 12800.0f, 1.0f); + guLookAt(&this->lookatmtx, 0.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 0.0f); } -TransitionTriforce* fbdemo_triforce_init(TransitionTriforce* this){ - - bzero(this, sizeof(TransitionTriforce)); - return this; +fbdemo_triforce* fbdemo_triforce_init(fbdemo_triforce* this) { + bzero(this, sizeof(fbdemo_triforce)); + return this; } -void fbdemo_triforce_move(TransitionTriforce* this, int updaterate){ - int d; - f32 t; - t = (1.0f - (this->txt / 548.0f)); - if((this->textureno == 1) || (this->textureno == 2)){ - d = 0.5f * (14.0f + (12.0f * t)); +void fbdemo_triforce_move(fbdemo_triforce* this, int updaterate) { + int d; + f32 t; + t = (1.0f - (this->txt / 548.0f)); + if ((this->textureno == 1) || (this->textureno == 2)) { + d = 0.5f * (14.0f + (12.0f * t)); + } else { + d = 0.5f * (16.0f + (12.0f * t)); + } + + if (this->direction != 0) { + this->txt += d; + if (this->txt >= 548) { + this->txt = 548; + this->finished = TRUE; } - else{ - d = 0.5f * (16.0f + (12.0f * t)); - } - - if(this->direction != 0){ - this->txt += d; - if(this->txt >= 548){ - this->txt = 548; - this->finished = TRUE; - } - } - else { - this->txt -= d; - if(this->txt <= 0){ - this->txt = 0; - this->finished = TRUE; - } + } else { + this->txt -= d; + if (this->txt <= 0) { + this->txt = 0; + this->finished = TRUE; } + } } -void fbdemo_triforce_draw(TransitionTriforce* this, Gfx** gfxP){ - Gfx* gfx = *gfxP; - Gfx* t; - Gfx* scroll; +void fbdemo_triforce_draw(fbdemo_triforce* this, Gfx** gfxP) { + Gfx* gfx = *gfxP; + Gfx* t; + Gfx* scroll; - gDPPipeSync(gfx++); - scroll = gfx_tex_scroll2(&gfx, this->txt, 0, 16, 4); - gSPSegment(gfx++, 0x9, scroll); - gSPMatrix(gfx++, &this->perspmtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); - gSPPerspNormalize(gfx++, this->normal); - gSPMatrix(gfx++, &this->lookatmtx, G_MTX_MUL | G_MTX_PROJECTION); - t = gfxalloc(&gfx, 0x40); - guScale((Mtx*)t, 0.019f, 0.019f, 1.0f); + gDPPipeSync(gfx++); + scroll = gfx_tex_scroll2(&gfx, this->txt, 0, 16, 4); + gSPSegment(gfx++, 0x9, scroll); + gSPMatrix(gfx++, &this->perspmtx, + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPPerspNormalize(gfx++, this->normal); + gSPMatrix(gfx++, &this->lookatmtx, G_MTX_MUL | G_MTX_PROJECTION); + t = gfxalloc(&gfx, 0x40); + guScale((Mtx*)t, 0.019f, 0.019f, 1.0f); - gSPMatrix(gfx++, t, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(gfx++, t, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - switch(this->textureno){ - case 0: - gSPDisplayList(gfx++, ef_wipe1_modelT); - break; - case 1: - gSPDisplayList(gfx++, ef_wipe2_modelT); - break; - case 2: - gSPDisplayList(gfx++, ef_wipe3_modelT); - break; - } - gDPPipeSync(gfx++); - *gfxP = gfx; + switch (this->textureno) { + case 0: + gSPDisplayList(gfx++, ef_wipe1_modelT); + break; + case 1: + gSPDisplayList(gfx++, ef_wipe2_modelT); + break; + case 2: + gSPDisplayList(gfx++, ef_wipe3_modelT); + break; + } + gDPPipeSync(gfx++); + *gfxP = gfx; } -s8 fbdemo_triforce_is_finish(TransitionTriforce* this){ - return this->finished; +s8 fbdemo_triforce_is_finish(fbdemo_triforce* this) { return this->finished; } + +void fbdemo_triforce_settype(fbdemo_triforce* this, int type) { + this->textureno = ((type & 0x80) != 0) ? 1 : ((type & 0x40) != 0 ? 2 : 0); + this->direction = (type & 0xF) != 1; } -void fbdemo_triforce_settype(TransitionTriforce* this, int type){ - this->textureno = ((type & 0x80) != 0) ? 1 : ((type & 0x40) != 0 ? 2 : 0); - this->direction = (type & 0xF) != 1; -} - - -void fbdemo_triforce_setcolor_rgba8888(void){ - -} +void fbdemo_triforce_setcolor_rgba8888(void) {} diff --git a/rel/m_fbdemo_wipe1.c b/rel/m_fbdemo_wipe1.c index 1ab4062f..2e7002d0 100644 --- a/rel/m_fbdemo_wipe1.c +++ b/rel/m_fbdemo_wipe1.c @@ -1,28 +1,38 @@ #include "m_fbdemo_wipe1.h" -#include "m_common_data.h" -#include "libultra/libultra.h" -#include "libultra/gu.h" -#include "m_rcp.h" +#include "libultra/gu.h" +#include "libultra/libultra.h" +#include "m_common_data.h" +#include "m_rcp.h" Vtx wipe1_v[] = { #include "assets/wipe1_v.inc" }; u8 g_wipe1_txt[] = { - #include "assets/g_wipe1_txt.inc" +#include "assets/g_wipe1_txt.inc" }; - Gfx wipe1_modelT[] = { gsDPPipeSync(), - gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | + G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | + G_LOD | G_SHADING_SMOOTH), gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), - gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_1PRIMITIVE, G_AC_NONE | G_ZS_PRIM | G_RM_PASS | G_RM_AA_ZB_TEX_EDGE2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | + G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | + G_TP_PERSP | G_CYC_2CYCLE | G_PM_1PRIMITIVE, + G_AC_NONE | G_ZS_PRIM | G_RM_PASS | G_RM_AA_ZB_TEX_EDGE2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, + PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, PRIMITIVE, 0, + COMBINED, 0, PRIMITIVE, 0), gsDPSetPrimDepth(0, 0), - gsDPLoadTextureBlock_4b(g_wipe1_txt, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 6, 11, G_TX_NOLOD), - gsDPLoadMultiBlock_4b(g_wipe1_txt, 0x0100, 1, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 6, 11, 1), + gsDPLoadTextureBlock_4b(g_wipe1_txt, G_IM_FMT_I, 64, 64, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, + 6, 6, 11, G_TX_NOLOD), + gsDPLoadMultiBlock_4b(g_wipe1_txt, 0x0100, 1, G_IM_FMT_I, 64, 64, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, + 6, 11, 1), gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPDisplayList(0x08000000), @@ -36,95 +46,87 @@ Gfx wipe1_modelT[] = { gsSPEndDisplayList(), }; - -TransitionWipe* fbdemo_wipe1_init(TransitionWipe* this){ - - bzero(this, sizeof(TransitionWipe)); - return this; +fbdemo_wipe1* fbdemo_wipe1_init(fbdemo_wipe1* this) { + bzero(this, sizeof(fbdemo_wipe1)); + return this; } -void fbdemo_wipe1_move(TransitionWipe* this, int rate){ - - if (this->direction != 0) { - - this->texY += (((void)0, Common_Get(transWipeSpeed)) * 3) / rate; - if (this->texY >= (int)(153 * (1 << 2))) { - this->texY = (int)(153 * (1 << 2)); - this->finished = 1; - } - } else { - this->texY -= (((void)0, Common_Get(transWipeSpeed)) * 3) / rate; - if (this->texY <= (int)(83.25f * (1 << 2))) { - this->texY = (int)(83.25f * (1 << 2)); - this->finished = 1; - } +void fbdemo_wipe1_move(fbdemo_wipe1* this, int rate) { + if (this->direction != 0) { + this->texY += (((void)0, Common_Get(transWipeSpeed)) * 3) / rate; + if (this->texY >= (int)(153 * (1 << 2))) { + this->texY = (int)(153 * (1 << 2)); + this->finished = 1; } -} - -void fbdemo_wipe1_draw(TransitionWipe* this, Gfx** gfxP){ - - Gfx* gfx = *gfxP; - Mtx* modelView; - int pad[4]; - Gfx* texScroll; - - modelView = this->modelView[this->frame]; - this->frame ^= 1; - - guScale(&modelView[0], 0.56f, 0.56f, 1.0f); - guRotate(&modelView[1], 0.0f, 0.0f, 0.0f, 1.0f); - guTranslate(&modelView[2], 0.0f, 0.0f, 0.0f); - gDPPipeSync(gfx++); - - - texScroll = gfx_tex_scroll2(&gfx, this->texX, this->texY, 0, 0); - gSPSegment(gfx++, 8, texScroll); - - gDPSetPrimColor(gfx++, 0, 0x80, this->color.r, this->color.g, this->color.b, 255); - - gSPMatrix(gfx++, &this->projection, G_MTX_LOAD | G_MTX_PROJECTION); - gSPPerspNormalize(gfx++, this->normal); - - gSPMatrix(gfx++, &this->lookAt, G_MTX_MUL | G_MTX_PROJECTION); - gSPMatrix(gfx++, &modelView[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPMatrix(gfx++, &modelView[1], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - - gSPDisplayList(gfx++, wipe1_modelT); - gDPPipeSync(gfx++); - *gfxP = gfx; -} - -void fbdemo_wipe1_startup(TransitionWipe* this) { - - this->finished = 0; - - if (this->direction != 0) { - this->texY = (int)(83.25f * (1 << 2)); - } else { - this->texY = (int)(153.0f * (1 << 2)); + } else { + this->texY -= (((void)0, Common_Get(transWipeSpeed)) * 3) / rate; + if (this->texY <= (int)(83.25f * (1 << 2))) { + this->texY = (int)(83.25f * (1 << 2)); + this->finished = 1; } - - guPerspective(&this->projection, &this->normal, 60.0f, 1.33333337307f, 10.0f, 12800.0f, 1.0f); - guLookAt(&this->lookAt, 0.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + } } -void fbdemo_wipe1_settype(TransitionWipe* this, int type) { +void fbdemo_wipe1_draw(fbdemo_wipe1* this, Gfx** gfxP) { + Gfx* gfx = *gfxP; + Mtx* modelView; + int pad[4]; + Gfx* texScroll; - if(type == 1){ - this->direction = 1; - this->texY = 0x14D; - return; - } - this->direction = 0; - this->texY = 0x264; + modelView = this->modelView[this->frame]; + this->frame ^= 1; + + guScale(&modelView[0], 0.56f, 0.56f, 1.0f); + guRotate(&modelView[1], 0.0f, 0.0f, 0.0f, 1.0f); + guTranslate(&modelView[2], 0.0f, 0.0f, 0.0f); + gDPPipeSync(gfx++); + + texScroll = gfx_tex_scroll2(&gfx, this->texX, this->texY, 0, 0); + gSPSegment(gfx++, 8, texScroll); + + gDPSetPrimColor(gfx++, 0, 0x80, this->color.r, this->color.g, this->color.b, + 255); + + gSPMatrix(gfx++, &this->projection, G_MTX_LOAD | G_MTX_PROJECTION); + gSPPerspNormalize(gfx++, this->normal); + + gSPMatrix(gfx++, &this->lookAt, G_MTX_MUL | G_MTX_PROJECTION); + gSPMatrix(gfx++, &modelView[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(gfx++, &modelView[1], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + + gSPDisplayList(gfx++, wipe1_modelT); + gDPPipeSync(gfx++); + *gfxP = gfx; } -void fbdemo_wipe1_setcolor_rgba8888(TransitionWipe* this, u32 color){ +void fbdemo_wipe1_startup(fbdemo_wipe1* this) { + this->finished = 0; - this->color.rgba = color; + if (this->direction != 0) { + this->texY = (int)(83.25f * (1 << 2)); + } else { + this->texY = (int)(153.0f * (1 << 2)); + } + + guPerspective(&this->projection, &this->normal, 60.0f, 1.33333337307f, 10.0f, + 12800.0f, 1.0f); + guLookAt(&this->lookAt, 0.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 0.0f); } -u8 fbdemo_wipe1_is_finish(TransitionWipe* this){ - return this->finished; +void fbdemo_wipe1_settype(fbdemo_wipe1* this, int type) { + if (type == 1) { + this->direction = 1; + this->texY = 0x14D; + return; + } + this->direction = 0; + this->texY = 0x264; } + +void fbdemo_wipe1_setcolor_rgba8888(fbdemo_wipe1* this, u32 color) { + this->color.rgba = color; +} + +u8 fbdemo_wipe1_is_finish(fbdemo_wipe1* this) { return this->finished; } diff --git a/rel/m_titledemo.c b/rel/m_titledemo.c new file mode 100644 index 00000000..51abd5de --- /dev/null +++ b/rel/m_titledemo.c @@ -0,0 +1,187 @@ +#include "m_titledemo.h" + +#include "m_player.h" +#include "m_player_lib.h" +#include "m_event.h" +#include "m_name_table.h" +#include "m_bgm.h" +#include "m_common_data.h" + +#define mTD_HEADER_POSX 0 +#define mTD_HEADER_POSY 1 +#define mTD_HEADER_POSZ 2 +#define mTD_HEADER_ROTATION 3 +#define mTD_HEADER_TOOL 4 +#define mTD_HEADER_SIZE 5 + +static int S_now_demono = -1; +static int S_tdemo_frame; +static u16 S_titledemo_to_play; + +static u16 get_demo_header(int titledemo_no, int key) { + static u16* pact_data_header_pt[mTD_TITLE_DEMO_NUM] = { + pact0_head_table, pact1_head_table, pact2_head_table, pact3_head_table, pact4_head_table + }; + + return pact_data_header_pt[titledemo_no][key]; +} + +extern int mTD_demono_get() { + if (S_now_demono == -1) { + S_now_demono = 1; + } + else { + S_now_demono++; + if (S_now_demono > mTD_TITLE_DEMO_NUM) { + S_now_demono = 1; + } + } + + return S_now_demono; +} + +static void mTD_player_keydata_init(GAME_PLAY* play) { + PLAYER_ACTOR* player = get_player_actor_withoutCheck(play); + + if (mEv_CheckTitleDemo() > 0) { + u16 angle; + mActor_name_t tool = get_demo_header(mEv_CheckTitleDemo() - 1, mTD_HEADER_TOOL); + + if (tool == ITM_AXE) { + tool = ITM_AXE; + } + else if (tool == ITM_ROD) { + tool = ITM_ROD; + } + else if (tool == ITM_GELATO_UMBRELLA) { + tool = ITM_GELATO_UMBRELLA; + } + + mPlib_SetData2_controller_data_for_title_demo(tool); + angle = get_demo_header(mEv_CheckTitleDemo() - 1, mTD_HEADER_ROTATION); + + player->actor_class.shape_info.rotation.y = angle; + player->actor_class.world_rotation.y = angle; + } + + S_tdemo_frame = 0; +} + +static u16 get_tdemo_keydata(int frame) { + /* BUG: this was probably meant to be marked as static */ + u16* pact_data_keydata_pt[mTD_TITLE_DEMO_NUM] = { pact0_key_data, pact1_key_data, pact2_key_data, pact3_key_data, pact4_key_data }; + + return pact_data_keydata_pt[mEv_CheckTitleDemo() - 1][frame]; +} + +#define mTD_KEYDATA_A(d) ((d) & 1) +#define mTD_KEYDATA_B(d) (((d) >> 8) & 1) +#define mTD_KEYDATA_STICKX(d) (((s16)(d) & 0xFE00) / 512) +#define mTD_KEYDATA_STICKY(d) (((s16)((d) << 8) & 0xFE00) / 512) + +/* @nonmatching */ +static void set_player_demo_keydata(int frame) { + u16 keydata0; + u16 keydata1; + int k0_sx; + int k0_sy; + int k1_sx; + int k1_sy; + f32 stick_x; + f32 stick_y; + int btn_a; + int btn_b; + int f0; + int f1; + + /* convert 60fps framerate to 30fps input */ + f0 = frame / 2; + f1 = f0 + (frame % 2); + + if (f0 != f1 && f1 < 1800) { + keydata0 = get_tdemo_keydata(f0); + keydata1 = get_tdemo_keydata(f1); + + k0_sx = (s16)(keydata0 & 0xFE00) / 512; + k0_sy = (s16)((keydata0 & 0x00FE) << 8) / 512; + k1_sx = (s16)(keydata1 & 0xFE00) / 512; + k1_sy = (s16)((keydata1 & 0x00FE) << 8) / 512; + + /* blend stick inputs between the current frame & next frame */ + stick_x = ((f32)(s8)k0_sx + (f32)(s8)k1_sx) / 2.0f; + stick_y = ((f32)(s8)k0_sy + (f32)(s8)k1_sy) / 2.0f; + + btn_a = mTD_KEYDATA_A(keydata0); + btn_b = mTD_KEYDATA_B(keydata0); + } + else { + keydata0 = get_tdemo_keydata(f0); + k0_sx = (s16)(keydata0 & 0xFE00) / 512; + k0_sy = (s16)((keydata0 & 0x00FE) << 8) / 512; + + // single line does not make it any better + stick_x = (f32)(s8)k0_sx; + stick_y = (f32)(s8)k0_sy; + + btn_a = keydata0 & 1; + btn_b = (keydata0 >> 8) & 1; + } + mPlib_SetData1_controller_data_for_title_demo(stick_x, stick_y, btn_a, btn_b); +} + +static void mTD_game_end_init(GAME_PLAY* play) { + play->fb_fade_type = 10; // TODO: enum/define + play->fb_wipe_type = 3; // TODO: enum/define + + mPlib_request_main_invade_type1(play); + mBGMPsComp_make_ps_wipe(0x521C); // TODO: enum/define +} + +extern void title_demo_move(GAME_PLAY* play) { + if (mEv_CheckTitleDemo() > 0) { + set_player_demo_keydata(S_tdemo_frame); + S_tdemo_frame++; + + if (S_tdemo_frame >= 3600) { + mTD_game_end_init(play); + } + } +} + +extern void mTD_rtc_set() { + if (S_titledemo_to_play == TRUE) { + S_titledemo_to_play = FALSE; + + if (Common_Get(time.rtc_crashed) == TRUE) { + lbRTC_TimeCopy(Common_GetPointer(time.rtc_time), Common_GetPointer(newly_set_time)); + } + else { + lbRTC_GetTime(Common_GetPointer(time.rtc_time)); + } + + Common_Set(time.rtc_enabled, TRUE); + mTM_set_season(); + } +} + +extern void mTD_rtc_reserve() { + S_titledemo_to_play = TRUE; +} + +extern int mTD_get_titledemo_no() { + int titledemo_no = S_now_demono; + if (titledemo_no <= 0) { + titledemo_no = 1; + } + + return titledemo_no - 1; +} + +extern int mTD_tdemo_button_ok_check() { + int res = TRUE; + if (S_tdemo_frame >= 3530) { + res = FALSE; + } + + return res; +}