作者holymars ()
看板b95902HW
標題[組語][VBA] TONC's example
時間Thu Dec 27 00:56:37 2007
關於TONC的example有部份無法以VisualHAM編譯出正確結果的問題
請依照下列步驟處理
1.將($HAMDIR)\tools\win32\vbawin.exe 置換成1.7.2版
也就是去下載1.7.2的vba模擬器,改名成vbawin.exe之後取代掉原本的
!%#!#$%^ @$#^ @$@#@!@#$%!@#$!#$
總之,就是原本1.5.2版會跑不出spirite,所以要換成1.7.2版
這步應該能解決sbb_reg這個example的問題
2.但是你會發現,跑obj_demo這個example的時侯
雖然圖出來了,但是顏色是錯誤的
這時請注意obj_demo.c的main() function裡面這兩行
memcpy(&tile_mem[4][0], metrTiles, metrTilesLen);
memcpy(pal_obj_mem, metrPal, metrPalLen);
這兩行就是兇手orz
我也不知道為什麼C的standard function會錯,但是總之他就是不能正確的
把資料copy過去,所以顏色會錯掉
請改寫成
my_memcpy(&tile_mem[4][0], metrTiles, metrTilesLen
/4);
my_memcpy(pal_obj_mem, metrPal, metrPalLen
/4);
注意後面要除以四..
另外多加一行inline function在main()的前面:
inline void my_memcpy(u32* a,u32* b,u32 c) { while(c--) *a++ = *b++;}
這樣應該可以跑大部份的example了
當然,其他example有用到memcpy的部份,也要全部都改過來orz
--
找了一個晚上的bug
最後居然是錯在C的standard function和模擬器版本上
HAM我真是猜不透你啊<O>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.29.131
※ 編輯: holymars 來自: 140.112.29.131 (12/27 00:57)
1F:推 aliby:助教超強~~!! 辛苦了被我們糾纏一天的GBA >////< 12/27 07:25