/******************************************************************************** Ultra 64 MARIO Brothers alphabet shape data module Copyright 1995 Nintendo co., ltd. All rights reserved December 12, 1995 ********************************************************************************/ #if ENGLISH #include "Font/alphabet16b_ENG.h" #include "Font/alphabet88.h" #include "Font/alphabet4b.h" #include "Font/cam_icon.h" #elif CHINA #include "Font/alphabet16b_zh.h" #include "Font/alphabet88.h" #include "Font/alphabet4b_zh.h" #include "Font/cam_icon.h" #else #include "Font/alphabet16b.h" #include "Font/alphabet88.h" #include "Font/english.h" #include "Font/hiragana.h" #include "Font/katakana.h" #include "Font/cam_icon.h" #endif #define G_CC_MODULATECOL TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0 #define G_CC_SHADECOL SHADE, 0, ENVIRONMENT, 0, SHADE, 0, ENVIRONMENT, 0 /********************************************************************************/ /* Alphabet Pointer for dprintf */ /********************************************************************************/ #if ENGLISH unsigned short *texDataPtr[] = { a0n_txt, a1n_txt, a2n_txt, a3n_txt, a4n_txt, a5n_txt, a6n_txt, a7n_txt, a8n_txt, a9n_txt, A_txt , B_txt , C_txt , D_txt , E_txt , F_txt , G_txt , H_txt , I_txt , NULL, K_txt , L_txt , M_txt , N_txt , O_txt , P_txt , NULL, R_txt , S_txt , T_txt , U_txt , NULL, W_txt , NULL , Y_txt , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, batu_txt, coin_icon_txt, mario_icon_txt, star_coin_icon_txt, NULL, NULL, l_ten1_txt , l_ten2_txt, }; #elif CHINA unsigned short *texDataPtr[] = { a0n_txt, a1n_txt, a2n_txt, a3n_txt, a4n_txt, a5n_txt, a6n_txt, a7n_txt, a8n_txt, a9n_txt, A_txt , B_txt , C_txt , D_txt , E_txt , F_txt , G_txt , H_txt , I_txt , NULL, K_txt , L_txt , M_txt , N_txt , O_txt , P_txt , NULL, R_txt , S_txt , T_txt , U_txt , NULL, W_txt , NULL , Y_txt , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, batu_txt, coin_icon_txt, mario_icon_txt, star_coin_icon_txt, NULL, NULL, l_ten1_txt , l_ten2_txt, c_0_0_txt, c_0_1_txt, c_0_2_txt, c_0_3_txt, c_1_0_txt, c_1_1_txt, c_1_2_txt, c_1_3_txt, c_2_0_txt, c_2_1_txt, c_2_2_txt, c_2_3_txt, c_3_0_txt, c_3_1_txt, c_3_2_txt, c_3_3_txt, c_4_0_txt, c_4_1_txt, c_4_2_txt, c_4_3_txt, c_5_0_txt, c_5_1_txt, c_5_2_txt, c_5_3_txt, c_6_0_txt, c_6_1_txt, c_6_2_txt, c_6_3_txt, c_7_0_txt, c_7_1_txt, c_7_2_txt, c_7_3_txt, c_8_0_txt, c_8_1_txt, c_8_2_txt, c_8_3_txt, c_9_0_txt, c_9_1_txt, c_9_2_txt, c_9_3_txt, c_10_0_txt, c_10_1_txt, c_10_2_txt, c_10_3_txt, c_11_0_txt, c_11_1_txt, c_11_2_txt, c_11_3_txt, c_12_0_txt, c_12_1_txt, c_12_2_txt, c_12_3_txt, c_13_0_txt, c_13_1_txt, c_13_2_txt, c_13_3_txt, c_14_0_txt, c_14_1_txt, c_14_2_txt, c_14_3_txt, c_15_0_txt, c_15_1_txt, c_15_2_txt, c_15_3_txt, c_16_0_txt, c_16_1_txt, c_16_2_txt, c_16_3_txt, c_17_0_txt, c_17_1_txt, c_17_2_txt, c_17_3_txt, c_18_0_txt, c_18_1_txt, c_18_2_txt, c_18_3_txt, c_19_0_txt, c_19_1_txt, c_19_2_txt, c_19_3_txt, c_20_0_txt, c_20_1_txt, c_20_2_txt, c_20_3_txt, c_21_0_txt, c_21_1_txt, c_21_2_txt, c_21_3_txt, c_22_0_txt, c_22_1_txt, c_22_2_txt, c_22_3_txt, c_23_0_txt, c_23_1_txt, c_23_2_txt, c_23_3_txt, c_24_0_txt, c_24_1_txt, c_24_2_txt, c_24_3_txt, c_25_0_txt, c_25_1_txt, c_25_2_txt, c_25_3_txt, c_26_0_txt, c_26_1_txt, c_26_2_txt, c_26_3_txt, c_27_0_txt, c_27_1_txt, c_27_2_txt, c_27_3_txt, c_28_0_txt, c_28_1_txt, c_28_2_txt, c_28_3_txt, c_29_0_txt, c_29_1_txt, c_29_2_txt, c_29_3_txt, c_30_0_txt, c_30_1_txt, c_30_2_txt, c_30_3_txt, /* c_31_0_txt, c_31_1_txt, c_31_2_txt, c_31_3_txt, c_32_0_txt, c_32_1_txt, c_32_2_txt, c_32_3_txt, c_33_0_txt, c_33_1_txt, c_33_2_txt, c_33_3_txt, c_34_0_txt, c_34_1_txt, c_34_2_txt, c_34_3_txt, c_35_0_txt, c_35_1_txt, c_35_2_txt, c_35_3_txt, c_36_0_txt, c_36_1_txt, c_36_2_txt, c_36_3_txt, c_37_0_txt, c_37_1_txt, c_37_2_txt, c_37_3_txt, c_38_0_txt, c_38_1_txt, c_38_2_txt, c_38_3_txt, c_39_0_txt, c_39_1_txt, c_39_2_txt, c_39_3_txt, c_40_0_txt, c_40_1_txt, c_40_2_txt, c_40_3_txt, c_41_0_txt, c_41_1_txt, c_41_2_txt, c_41_3_txt, c_42_0_txt, c_42_1_txt, c_42_2_txt, c_42_3_txt, c_43_0_txt, c_43_1_txt, c_43_2_txt, c_43_3_txt, */ }; #else unsigned short *texDataPtr[] = { a0n_txt, a1n_txt, a2n_txt, a3n_txt, a4n_txt, a5n_txt, a6n_txt, a7n_txt, a8n_txt, a9n_txt, A_txt , B_txt , C_txt , D_txt , E_txt , F_txt , G_txt , H_txt , I_txt , J_txt , K_txt , L_txt , M_txt , N_txt , O_txt , P_txt , Q_txt , R_txt , S_txt , T_txt , U_txt , V_txt , W_txt , X_txt , Y_txt , Z_txt , bikuri_txt, Wbikuri_txt, question_txt , and_txt, per_cent_txt , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, batu_txt, coin_icon_txt, mario_icon_txt, star_coin_icon_txt, coin_shadow_icon_txt, key_icon_txt, l_ten1_txt , l_ten2_txt, }; #endif /********************************************************************************/ /* Font Pointer for Message */ /********************************************************************************/ #if ENGLISH unsigned char* MessTexDataPtr[] = { m_0_txt, m_1_txt, m_2_txt, m_3_txt, m_4_txt, m_5_txt, m_6_txt, m_7_txt, m_8_txt, m_9_txt, m_A_txt, m_B_txt, m_C_txt, m_D_txt, m_E_txt, m_F_txt, m_G_txt, m_H_txt, m_I_txt, m_J_txt, m_K_txt, m_L_txt, m_M_txt, m_N_txt, m_O_txt, m_P_txt, m_Q_txt, m_R_txt, m_S_txt, m_T_txt, m_U_txt, m_V_txt, m_W_txt, m_X_txt, m_Y_txt, m_Z_txt, ms_a_txt, ms_b_txt, ms_c_txt, ms_d_txt, ms_e_txt, ms_f_txt, ms_g_txt, ms_h_txt, ms_i_txt, ms_j_txt, ms_k_txt, ms_l_txt, ms_m_txt, ms_n_txt, ms_o_txt, ms_p_txt, ms_q_txt, ms_r_txt, ms_s_txt, ms_t_txt, ms_u_txt, ms_v_txt, ms_w_txt, ms_x_txt, ms_y_txt, ms_z_txt, m_pyon2_txt,m_period_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, m_up_txt, m_down_txt, m_left_txt, m_right_txt, m_A2_txt, m_B2_txt, m_C2_txt, m_Z2_txt, m_R2_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, m_pyon_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, m_bar_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,m_kakko_l_txt, m_kakko_lr_txt, m_kakko_r_txt, m_LR_txt, m_and_txt, m_tenten3_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, m_bikuri_txt, m_persent_txt, m_question_txt, m_tenten1_txt, m_tenten2_txt, m_mimizu_txt, NULL, m_coin_txt, m_star_txt,m_kakeru_txt, m_point_txt,m_star2_txt, NULL, NULL, }; #elif CHINA #include "../../i10n/assets/zh/zh_msg.idx" #else unsigned short* MessTexDataPtr[] = { zero_txt, one_txt, two_txt, three_txt, four_txt, five_txt, six_txt, seven_txt, eight_txt, nine_txt, aA_txt, aB_txt, aC_txt, aD_txt, aE_txt, aF_txt, aG_txt, aH_txt, aI_txt, aJ_txt, aK_txt, aL_txt, aM_txt, aN_txt, aO_txt, aP_txt, aQ_txt, aR_txt, aS_txt, aT_txt, aU_txt, aV_txt, aW_txt, aX_txt, aY_txt, aZ_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, a_txt, i_txt, u_txt, e_txt, o_txt, ka_txt, ki_txt, ku_txt, ke_txt, ko_txt, sa_txt, si_txt, su_txt, se_txt, so_txt, ta_txt, ti_txt, tu_txt, te_txt, to_txt, na_txt, ni_txt, nu_txt, ne_txt, no_txt, ha_txt, hi_txt, hu_txt, he_txt, ho_txt, ma_txt, mi_txt, mu_txt, me_txt, mo_txt, ya_txt, yu_txt, yo_txt, ra_txt, ri_txt, ru_txt, re_txt, ro_txt, wa_txt, wo_txt, n_txt, NULL, toten_txt, k_a_txt, k_i_txt, k_u_txt, k_e_txt, k_o_txt, k_ka_txt, k_ki_txt, k_ku_txt, k_ke_txt, k_ko_txt, k_sa_txt, k_si_txt, k_su_txt, k_se_txt, k_so_txt, k_ta_txt, k_ti_txt, k_tu_txt, k_te_txt, k_to_txt, k_na_txt, k_ni_txt, k_nu_txt, k_ne_txt, k_no_txt, k_ha_txt, k_hi_txt, k_hu_txt, k_he_txt, k_ho_txt, k_ma_txt, k_mi_txt, k_mu_txt, k_me_txt, k_mo_txt, k_ya_txt, k_yu_txt, k_yo_txt, k_ra_txt, k_ri_txt, k_ru_txt, k_re_txt, k_ro_txt, k_wa_txt, NULL, k_n_txt, NULL, k_bar_txt, s_e_txt, s_tu_txt, s_ya_txt, s_yu_txt, s_yo_txt, s_a_txt, s_i_txt, s_u_txt, s_o_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, k_s_e_txt, k_s_tu_txt, k_s_ya_txt, k_s_yu_txt, k_s_yo_txt, k_s_a_txt, k_s_i_txt, k_s_u_txt, k_s_o_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,kakko_l_txt, kakko_lr_txt, kakko_r_txt, LR_txt, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, daku_txt, maru_txt, mes_bikuri_txt,mes_percent_txt, mes_question_txt, kakkoA_txt, kakkoB_txt, kara_txt, tenten_txt, mes_coin_txt, mes_star_txt,mes_kake_txt, point_txt,m_shstar_txt, NULL, NULL, }; #endif /********************************************************************************/ /* small Color Font Pointer for Ending */ /********************************************************************************/ unsigned short* s88ColfontPtr[] = { NULL, NULL, NULL, sg_3_txt, sg_4_txt, NULL, sg_6_txt, NULL, NULL, NULL, sag_A_txt, sag_B_txt, sag_C_txt, sag_D_txt, sag_E_txt, sag_F_txt, sag_G_txt, sag_H_txt, sag_I_txt, sag_J_txt, sag_K_txt, sag_L_txt, sag_M_txt, sag_N_txt, sag_O_txt, sag_P_txt, sag_Q_txt, sag_R_txt, sag_S_txt, sag_T_txt, sag_U_txt, sag_V_txt, sag_W_txt, sag_X_txt, sag_Y_txt, sag_Z_txt, sag_ten_txt, }; /********************************************************************************/ /* Camera Icon ImageData List */ /********************************************************************************/ unsigned short* camIconPtr[] = { camera_txt,mario_icon_txt,jugem_icon_txt,stop_icon_txt,sankaku_up_txt,sankaku_down_txt }; /********************************************************************************/ /* Message Data List */ /********************************************************************************/ #if ENGLISH #include "Font/semess_data.h" #include "Font/mess_data_ENG.h" #include "Font/coursename_ENG.h" #include "Font/star_name_ENG.h" #elif CHINA #include "Font/semess_data.h" #include "Font/mess_data_zh.h" #include "Font/coursename_zh.h" #include "Font/star_name_zh.h" #else #include "Font/semess_data.h" #include "Font/mess_data.h" #include "Font/coursename.h" #include "Font/star_name.h" #endif /********************************************************************************/ /********************************************************************************/ /* Texture Font Gfx List. (Iwamoto) */ /********************************************************************************/ static long long alphabet_patch_0 = 0; /*============================ CopyMode Copy===========================================*/ extern Gfx RCP_tfont_on[] = { gsDPPipeSync(), gsDPSetCycleType(G_CYC_COPY), // <--- This is copy mode !! gsDPSetTexturePersp(G_TP_NONE), // <--- Necessary G_TP_NONE !! gsDPSetAlphaCompare(G_AC_THRESHOLD), // <--- Necessary in Alpha for CopyMode gsDPSetBlendColor(255,255,255,255), // gsDPSetRenderMode(G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2), // Must not use ZB !! gsDPSetRenderMode(G_RM_NOOP,G_RM_NOOP2), //All NONE!! gsSPEndDisplayList() }; extern Gfx RCP_tfont_main[] = { gsxDPLoadTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 4,4, G_TX_NOLOD, G_TX_NOLOD), gsSPEndDisplayList() }; extern Gfx RCP_tfont_off[] = { gsDPPipeSync(), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetAlphaCompare(G_AC_NONE), gsDPSetCycleType(G_CYC_1CYCLE), gsSPEndDisplayList() }; /*======================================================================================*/ /*============================ 1cycle Mode===========================================*/ extern Gfx RCP_tfont2_on[] = { gsDPPipeSync(), gsDPSetTexturePersp(G_TP_NONE), // <--- Necessary G_TP_NONE !! gsDPSetCombineMode(G_CC_MODULATECOL, G_CC_MODULATECOL), gsDPSetEnvColor(255,255,255,255), gsDPSetRenderMode(G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2), // Must not use ZB !! gsDPSetTextureFilter(G_TF_POINT), gsSPEndDisplayList() }; extern Gfx RCP_tfont2_main[] = { gsxDPLoadTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 4,4, G_TX_NOLOD, G_TX_NOLOD), gsSPEndDisplayList() }; extern Gfx RCP_tfont2_off[] = { gsDPPipeSync(), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetEnvColor(255,255,255,255), gsDPSetTextureFilter(G_TF_BILERP), gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF), gsSPEndDisplayList() }; /*======================================================================================*/ /****************************************************************************************** Message Window ******************************************************************************************/ static Vtx vtx_mess[] = { { 0 , -80 , 0, 0 , 0 , 0, 255, 255, 255, 255}, { 130 , -80 , 0, 0 , 0 , 0, 255, 255, 255, 255}, { 130 , 0 , 0, 0 , 0 , 0, 255, 255, 255, 255}, { 0 , 0 , 0, 0 , 0 , 0, 255, 255, 255, 255}, }; extern Gfx RCP_Mess_window[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING), gsDPSetCombineMode(G_CC_SHADECOL, G_CC_SHADECOL), gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2), gsSPVertex(&vtx_mess[0], 4, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 0, 2, 3, 0), gsSPEndDisplayList() }; /****************************************************************************************** Message Font ******************************************************************************************/ #if ENGLISH || CHINA #define gsxDPLoadTextureImage_4b(fmt, siz, width, height, pal, \ cms, cmt, masks, maskt, shifts, shiftt) \ \ gsDPSetTile(fmt, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0 , cmt, \ maskt, shiftt, cms, masks, shifts), \ gsDPLoadSync(), \ gsDPLoadBlock(G_TX_LOADTILE, 0, 0, (((width)*(height)+3)>>2)-1, \ CALC_DXT_4b(width)), \ gsDPSetTile(fmt, G_IM_SIZ_4b, ((((width)>>1)+7)>>3), 0, \ G_TX_RENDERTILE, pal, cmt, maskt, shiftt, cms, masks, \ shifts), \ gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, \ ((width)-1) << G_TEXTURE_IMAGE_FRAC, \ ((height)-1) << G_TEXTURE_IMAGE_FRAC) static Vtx vtx_mess_font[] = { { 0 , 0 , 0, 0 , 0, (8 << 5), 255,255,255,255}, { 8 , 0 , 0, 0 , 0, 0, 255,255,255,255}, { 8 , 16 , 0, 0 , (16 << 5), 0, 255,255,255,255}, { 0 , 16 , 0, 0 , (16 << 5), (8 << 5), 255,255,255,255}, }; extern Gfx RCP_mess_font_on[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING), gsDPSetCombineMode(G_CC_MODULATECOL, G_CC_MODULATECOL), gsDPSetEnvColor(255,255,255,255), gsDPSetRenderMode(G_RM_XLU_SURF,G_RM_XLU_SURF2), gsDPSetTextureFilter(G_TF_POINT), gsSPTexture(0xffff, 0xffff, 0, G_TX_RENDERTILE, G_ON), gsSPEndDisplayList() }; extern Gfx RCP_mess_font_main[] = { gsxDPLoadTextureImage_4b(G_IM_FMT_IA, G_IM_SIZ_16b, 16, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 4,3, G_TX_NOLOD, G_TX_NOLOD), gsSPVertex(&vtx_mess_font[0], 4, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 0, 2, 3, 0), gsSPEndDisplayList() }; extern Gfx RCP_mess_font_off[] = { gsDPPipeSync(), gsSPTexture(0xffff, 0xffff, 0, 0, 0), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetEnvColor(255,255,255,255), gsSPSetGeometryMode(G_SHADING_SMOOTH|G_LIGHTING), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList() }; #else static Vtx vtx_mess_font[] = { { 0 , 0 , 0, 0 , 0, (16 << 6), 255,255,255,255}, { 8 , 0 , 0, 0 , (8 << 6), (16 << 6), 255,255,255,255}, { 8 , 16 , 0, 0 , (8 << 6), 0, 255,255,255,255}, { 0 , 16 , 0, 0 , 0, 0, 255,255,255,255}, }; extern Gfx RCP_mess_font_on[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING), gsDPSetCombineMode(G_CC_MODULATECOL, G_CC_MODULATECOL), gsDPSetEnvColor(255,255,255,255), gsDPSetRenderMode(G_RM_XLU_SURF,G_RM_XLU_SURF2), gsDPSetTextureFilter(G_TF_POINT), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), gsSPEndDisplayList() }; extern Gfx RCP_mess_font_main[] = { gsxDPLoadTextureImage(G_IM_FMT_IA, G_IM_SIZ_8b, 8, 16, 0, G_TX_CLAMP | G_TX_NOMIRROR, G_TX_CLAMP | G_TX_NOMIRROR, 3,4, G_TX_NOLOD, G_TX_NOLOD), gsSPVertex(&vtx_mess_font[0], 4, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 0, 2, 3, 0), gsSPEndDisplayList() }; extern Gfx RCP_mess_font_off[] = { gsDPPipeSync(), gsSPTexture(0xffff, 0xffff, 0, 0, 0), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetEnvColor(255,255,255,255), gsSPSetGeometryMode(G_SHADING_SMOOTH|G_LIGHTING), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList() }; #endif /****************************************************************************************** Message cursor ******************************************************************************************/ static Vtx vtx_mess_cursor[] = { { 0 , 0 , 0, 0 , 0 , 0 , 255,255,255,255}, { 8 , 8 , 0, 0 , 0 , 0 , 255,255,255,255}, { 0 , 16 , 0, 0 , 0 , 0 , 255,255,255,255}, }; extern Gfx RCP_mess_cursor[] = { gsSPClearGeometryMode(G_LIGHTING), gsDPSetCombineMode(G_CC_SHADECOL, G_CC_SHADECOL), gsDPSetRenderMode(G_RM_XLU_SURF,G_RM_XLU_SURF2), gsDPSetTextureFilter(G_TF_POINT), gsSPVertex(&vtx_mess_cursor[0], 3, 0), gsSP1Triangle( 0, 1, 2, 0), gsSPSetGeometryMode(G_LIGHTING), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList() };