﻿nriフォーマットの解説（推測有）		ver.20050608
解析ツールのコンソール表示に合わせてます
表示名称は便宜上付けただけなのであまり気にしないように


表示				サイズ	解説
-----------------------------------------------------------------------------
＋NORIData				nriファイル全体の構造体(NORI構造体)
　・signature			4	NORI構造体の識別子 'NORI'
　・version?			4	NORI構造体のバージョン？（この数値により多少フォーマットが変わる）
　・param_01～05		4*5	==未調査==
　・anime_count			4	収録されているアニメーションの数(=nanim)
　・param_07			4	==未調査==
　・data_length			4	NORI構造体サイズ（＝ファイルサイズ）
　　
　＋GAWIData				画像集合の構造体(GAWI構造体)
　　・signature			4	GAWI構造体の識別子 'GAWI'
　　・version?			4	GAWI構造体のバージョン？(0x012C固定？)
　　・bpp			4	画像のビット深度( 0x08(8bit) 0x10(16bit) 0x18(24bit) )
　　・flag_compress		4	画像圧縮フラグ（単純なランレングス圧縮）
　　・flag_palette		4	パレット使用フラグ（このフラグが立っている場合パレット構造体がある）
　　・param_04～07		4*4	==未調査==
　　・data_count		4	画像数(=nbmp)
　　・data_length		4	画像データサイズ
　　
　　＋PaletteData			パレット構造体
　　　・signature		4	パレット構造体の識別子 'PAL_'
　　　・param_00～05		4*6	==未調査==
　　　・data_length		4	パレット構造体サイズ(=spal+0x20)
　　　＋<RGB24DATA>		spal	パレットデータ
　　　
　　＋__offset[n]		4*nbmp	オフセットアドレステーブル
　  
　　＋n Bitmap				画像データ
　　　・data_count		4	データ数？(1固定？)
　　　・data_length		4	データサイズ(=sdata)
　　　・pic_width		4	画像横幅
　　　・pic_height		4	画像縦幅
　　　・param_04～06		4*3	==未調査==
　　　＋(ビット深度により以下のどれか)
　　　　・<RGB24Data>		sdata	24bit画像データ
　　　　・<RGB16Data>		sdata	16bit画像データ
　　　　・<PaletteIndexData>	sdata	8bit画像データ（パレット対応）
　　
　＋AnimeInfoData			アニメーション情報構造体
　　＋__offset[n]		4*nanim	オフセットアドレステーブル
　　  
　　＋n AnimeData			アニメーションデータ
　　　・animename		32	アニメーションのキー名？
　　　・frame_count		4	フレーム数(=nfrm)
　　　＋__offset[n]		4*nfrm	オフセットアドレステーブル
　　　
　　　＋n FrameData			フレームデータ
　　　　・delay			4	このフレームの持続時間？(ms)
　　　　・plane_count		4	プレーン数(=npln)
　　　　
　　　　＋n PlaneData			プレーンデータ
　　　　　・bitmap_number	4	配置するビットマップのナンバー(Bitmap の n に対応)
　　　　　・point_x		4	配置座標 x
　　　　　・point_y		4	配置座標 y
　　　　　・param_03		4	（透明度？）
　　　　　・flag_reverse	4	画像反転フラグ( [bit1]上下反転 [bit0]左右反転 )
　　　　　・param_05		4	==未調査==
　　　　　・param_06		4	（合成フラグ？）
　　　　
　　　　＋<additional data>		==未調査== （SE指定？NORI構造体のバージョンによってサイズが変わる？）






================================
==========以下補足==============
================================



データ形式		サイズ	解説
------------------------------------------------
<RGB24Data>		24bit	R8G8B8（格納順はＢＧＲ）
<RGB16Data>		16bit	n1R5G5B5 [nRRRRRGG GGGBBBBB] (格納順は上下バイト転置)
<PaletteIndexData>	8bit	パレットのインデックス



NORI構造体のversion?について
------------------------------------------------
＋推測
　・0x012Cが丁度３００になる為、管理用のバージョン情報？
　・データ有無のフラグの可能性もある
＋NORI構造体のversion?	:	FrameDataの<additional data>のサイズ
------------------------------------------------
　・0x0000012C(300)	:	0x00E0
　・0x0000012D(301)	:	0x00E4
　・0x0000012E(302)	:	0x015C
　・0x0000012F(303)	:	0x0160
・フラグとしてみれば [bit0] 0x4バイトのデータ [bit1] 0x1Cバイトのデータ の有無？



画像圧縮について
------------------------------------------------
＋基本
　・背景色部分のランレングス圧縮
　・flag_compress が 0x00000001
　・１ライン単位
＋データ		サイズ	解説
------------------------------------------------
　・bg_len		1	背景色のサイズ（このサイズ分だけ背景色で埋める）
　・pic_len		1	実画像データのサイズ
　・pic_data		pic_len	実画像データ（この部分はそのまま出力）
（以上を１ライン分(横幅分)終わるまで繰り返し）



アニメーション情報構造体について
------------------------------------------------
・複数のアニメーションデータを格納
・アニメーションしていないものでもフレーム数１としてここに格納される

＋アニメーションデータ
　・フレームを数個繋げてアニメーションを実現している
　・アニメーションしていないものはフレーム数１個
　
　＋フレームデータ
　　・プレーンデータを１個～数個配置して１つのフレームを形成している
　　・次のフレームまでの遅延時間指定あり（ms単位?）
　　
　　＋プレーンデータ
　　　・画像番号
　　　・配置場所(x,y)
　　　・合成方法
　　　・などが格納されている
------------------------------------------------
＋逆から考えれば
　・画像の配置データがプレーン
　・プレーンを１～数個配置したものがフレーム
　・フレームを１～数個まとめたものがアニメーション
　・１つのファイルにアニメーションが１～数個格納されている
・１枚しか画像のないファイルの場合 アニメーション数１フレーム数１プレーン数１になる



==未調査== の部分
------------------------------------------------
・大部分は０の為、特に意味はないと思われる
・もしくは他から推測できる
＋<additional data>部分
　・所々wavファイル名など見られるのでＳＥ指定かと思ったが、ただのゴミの可能性も？


