1 /*---------------------------------------------------------------------------* 2 Project: TwlSDK - NA - include 3 File: sub_banner.h 4 5 Copyright 2007-2008 Nintendo. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Date:: 2011-04-12#$ 14 $Rev: 11403 $ 15 $Author: okubata_ryoma $ 16 *---------------------------------------------------------------------------*/ 17 #ifndef TWL_NA_ARM9_SUB_BANNER_H_ 18 #define TWL_NA_ARM9_SUB_BANNER_H_ 19 20 #include <twl/misc.h> 21 #include <twl/types.h> 22 #include <nitro/os/common/emulator.h> 23 #include <nitro/gx/gxcommon.h> 24 #include <nitro/gx/struct_2d.h> 25 26 #ifdef __cplusplus 27 extern "C" { 28 #endif 29 30 /*===========================================================================*/ 31 32 33 #define NA_SUBBANNER_VERSION 3 34 #define NA_SUBBANNER_PLATFORM 1 35 #define NA_SUBBANNER_PALETTE_NUM 16 36 #define NA_SUBBANNER_CHARACTER_NUM 16 37 #define NA_SUBBANNER_PATTERN_NUM 8 38 #define NA_SUBBANNER_CONTROL_NUM 64 39 40 41 typedef struct NASubBannerHeader 42 { 43 u8 version; 44 u8 platform; 45 u16 crc16_v1; 46 u16 crc16_v2; 47 u16 crc16_v3; 48 u16 crc16_anime; 49 u8 reserved_[ 22 ]; 50 } 51 NASubBannerHeader; 52 53 typedef struct NASubBannerControl 54 { 55 u8 frameCount : 8; 56 57 union 58 { 59 struct 60 { 61 u8 cellNo : 3; 62 u8 plttNo : 3; 63 u8 reserved : 2; 64 } 65 frameInfo; 66 67 u8 animeType; 68 }; 69 } 70 NASubBannerControl; 71 72 typedef struct NASubBannerAnime 73 { 74 GXCharFmt16 image [ NA_SUBBANNER_PATTERN_NUM ][ NA_SUBBANNER_CHARACTER_NUM ]; 75 GXRgb pltt [ NA_SUBBANNER_PATTERN_NUM ][ NA_SUBBANNER_PALETTE_NUM ]; 76 NASubBannerControl control [ NA_SUBBANNER_CONTROL_NUM ]; 77 } 78 NASubBannerAnime; 79 80 typedef struct NASubBanner 81 { 82 NASubBannerHeader header; 83 NASubBannerAnime anime; 84 } 85 NASubBanner; 86 87 88 89 BOOL NAi_SaveSubBanner( const NASubBanner *banner ); 90 BOOL NAi_LoadSubBanner(NASubBanner *banner); 91 BOOL NAi_DeleteSubBanner( NASubBanner *workBuffer ); 92 void NAi_MakeSubBannerHeader(NASubBanner *banner); 93 NA_SaveSubBanner(const NASubBanner * banner)94static inline BOOL NA_SaveSubBanner(const NASubBanner *banner ) 95 { return OS_IsRunOnTwl() ? NAi_SaveSubBanner(banner): FALSE; } NA_LoadSubBanner(NASubBanner * banner)96static inline BOOL NA_LoadSubBanner(NASubBanner *banner) 97 { return OS_IsRunOnTwl() ? NAi_LoadSubBanner(banner): FALSE; } NA_DeleteSubBanner(NASubBanner * workBuffer)98static inline BOOL NA_DeleteSubBanner(NASubBanner *workBuffer) 99 { return OS_IsRunOnTwl() ? NAi_DeleteSubBanner(workBuffer): FALSE; } NA_MakeSubBannerHeader(NASubBanner * banner)100static inline void NA_MakeSubBannerHeader(NASubBanner *banner) 101 { if (OS_IsRunOnTwl()) NAi_MakeSubBannerHeader(banner); } 102 103 104 105 /*===========================================================================*/ 106 107 #ifdef __cplusplus 108 } /* extern "C" */ 109 #endif 110 111 #endif /* TWL_NA_ARM9_SUB_BANNER_H_ */ 112 113 /*---------------------------------------------------------------------------* 114 End of file 115 *---------------------------------------------------------------------------*/ 116