##HIDEME##

2008-04-21

EBOOT-Logo圖修改


這幾天 又陷入所謂的  不知所謂倦怠期
剛好看這CoAsia的圖看得很不順眼
向正哥請教一些eboot的修改經驗之後
就開始進行大鳥育成計畫

基本要點就是把想要放的圖檔轉成hex即可
再對程式進行一點小修改就好了

只要利用bmp2hex可以輕鬆地得到hex資料

LCD的size為 480x272
bppmode預設為16bpp

因為程式利用到的是memcpy這個func
如果不想動太多腦的話 基本上就是使用 480xN 的圖檔
這個N還不能太大 不然產生的eboot.bin就會爆掉(囧)

開始嘗試各種不用動腦的改法
480x272x16bpp --> 爆
480x25?x12bpp --> 沒這種bppmode可以選 硬幹會變成一隻綠綠鳥
480x272x8bpp  --> 應該可以 但是轉檔程式沒有8bpp-_-
240x  N x16bpp --> 用了很蠢的方法 不過圖太小
擴大eboot size   --> 被板子討厭 完全沒變大的跡象

320x240x16bpp --> 用蠢方法一定爆的  只好搏感情了

最後在一陣絕望與煩悶的亂改之下 成功了!!! 大鳥再現 +_+
現在改成天然呆巫女娘佐久夜(サクヤ)

=====================================================
DisplaySample_320_240.h裡的圖檔hex做陣列定義    
const UINT16    prayer16bpp[]
--->
const UINT16    prayer16bpp[240][320]

並對main.c做些微的修改
[Line 689]
for (a=0;a<240:a++)
{
memcpy((void *)(IMAGE_FRAMEBUFFER_UA_BASE + a * 480 * 2 + N),
               prayer16bpp[a], 320 * 2);
}
好像是因為這是在#define裡的程式
所以記得要在前面宣告全域變數 int a 不然你將會被PB討厭

基本精神就是每次取320x2bytes之後就換行
那個N是起始點基本位移量 就是決定要從哪一點開始繪圖
如果N=0的話 就是從左上角開始

對於320x240x16bpp的圖而言 如果想讓圖看起來在中間
N = 480*16*2+80*2 = 15520

上面動不動就有個惱人的 x2  這個應該是與16bpp有關 [4bytes = 2pixels]
少了這個 圖的樣子會完全跟你想的不一樣 XDD
=====================================================

不過 因為自己編出來的eboot在燒寫kernel時會有問題 但是launch卻是ok的
所以就索性把自己編的eboot.bin燒進去之後 再利用CoAisa給的eboot.nb0
來進行kernel的寫入作業

沒有留言: