2010年12月1日 星期三

2010年11月21日 星期日

偽トロキャプチャ製作

開始製作偽トロキャプチャ... :D

試作成功:D 不過接下來才是最困難的組裝orz...

2010年9月16日 星期四

開始android

我也開始坐安桌椅了...
不知道為什麼 android的程式架構就是比iphone程式的架構好懂...
再加上java也不錯寫, 又可以用native code去開發... 省去學obj-C的時間^^

2010年9月6日 星期一

筆記

mac os的console加顏色
在~/.bash_profile裡加入
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad
就好 

2010年9月4日 星期六

Persona 3 Fes Best Get

Persona3 Fes Best到手了^^
去年去日本玩的時候,在秋葉原sofmap就打算買了。
不過就算是二手的也是貴得不得了@@...,所以當時只買了Persona4。
今年年中終於有了Persona3 Fes要出best版的消息,不過卻擔心因為ps2快退出市場了台灣可能沒人進貨的狀況,一直想找人幫忙從日本帶。
不過幸好還是有店家有肯進這片,所以就順利地用一張小朋友入手了:P
最近persona team也開始發表hd平台上的作品了,希望能在ps3上玩到p5 :)

2010年8月25日 星期三

怪怪的mac 109鍵盤

用起來是沒什麼問題 只不過高度有點低 可能要自己墊東西
按起來感覺是沒有銀幻手那樣強的回彈力 但也不錯了 剪刀腳鍵盤很多都是軟趴趴的 按起來很沒感覺

在mac os下的home跟end好像都被mapping成page up跟page down了...
連fn + 方向也沒用 不知道要怎麼改orz

後來發現有個doublecommand的程式可以remap鍵盤 終於改成習慣的home/end了 :D...

然後在windows下Print Screen/Scroll Lock/PauseBreak被mapping到F14~F16....
真不知道寫driver的人在想什麼... -.-|| 寫好之後有測過keymap有合嗎???
一直覺得apple都會在這種小地方欺負windows的使用者 不起眼 不影響 但是很麻煩

又發現一個在mac下的問題... 用double command把home/end改成command + left, command + right後
每次在編source code時, 常常要按tab -> 下 -> home -> tab -> ...
這時候按home完如果很快速地按了tab, 系統就會誤判使用者按了 command + tab -> 切換視窗
小問題真多...orz 在mac上寫code還真麻煩... 回到行首還要按組合鍵真的是很腦殘的事情... -.-||

2010年8月10日 星期二

圓剛C727

http://www.avermedia.com/avertv/tw/Product/ProductDetail.aspx?Id=491

看起來是張不錯的擷取卡。不像某HDx0A,驅動生半天生不出來,果然有阿六風格,撈了就跑。
顧客反應就隨便丟個號稱解決問題的驅動來安撫大家,結果bug還是在。

等C727上市之後再來看看詳細的規格吧... PV3就讓它功成身退:)

2010年8月8日 星期日

MacBook Pro安裝Windows7記錄

0. 用bootcamp assistant切出安裝系統的分割區 (如果想要切出兩個ntfs partition,這邊是先切出C槽的部份)然後安裝Windows7

1. Bootcamp 3.0
2. Bootcamp 3.1
3.移除下列無用驅動
Realtek High Definition Audio Driver
Apple Inc. (AppleUSBEthernet) Net (01/11/2008 3.4.3.18)
Apple Bluetooth Enabler (06/27/2007 2.0.0.1)
Apple Inc. Apple Keyboard (03/05/2009 3.0.0.0)
Apple Inc. Apple Multitouch (03/25/2009 2.1.2.112)
Apple Inc. Apple Multitouch Mouse (03/25/2009 2.1.2.112)
Apple Inc. Apple Trackpad (03/05/2009 3.0.0.0)
Apple Inc. Apple Trackpad Enabler (02/19/2009 3.0.0.0)
Apple ODD (01/17/2008 2.0.2.2)
Apple Bluetooth (11/23/2009 3.0.0.4)
Atheros Communications Inc. (athr) Net (09/18/2008 7.6.1.122)
Atheros Communications Inc. (athr) Net (11/18/2009 8.0.0.258)
Atheros Communications Inc. Net (09/18/2008 7.6.1.122)
Broadcom (b57nd60x) Net (05/28/2009 12.2.0.3)
Broadcom (BCM43XX) Net (10/22/2008 5.10.38.26)
Cirrus Logic, Inc. (CirrusFilter) MEDIA (04/29/2009 6.6001.1.8)
Intel (e1yexpress) Net (02/06/2008 9.12.17.0)
Intel (E1G60) Net (01/08/2008 8.3.9.0)
Intel (e1yexpress) Net (07/22/2008 10.3.45.0)
Intel (e1yexpress) Net (08/05/2008 10.3.49.0)
Intel (e1yexpress) Net (07/16/2008 9.52.10.0)
Intel Net (02/06/2008 9.12.18.0)
Intel Net (06/13/2008 9.52.9.0)
Intel Net (07/22/2008 10.3.45.0)
Intel Net (08/05/2008 10.3.49.0)
Intel Net (11/07/2007 8.10.1.0)
Intel System (07/20/2007 1.2.76.0)
Marvell (yukonwlh) Net (03/23/2007 10.12.7.3)


如果要安裝usb音效卡,則可以將新版本Cirrus Logic音效晶片驅動程式也解除安裝。
此外,HP有提供BCM4322AG的新版驅動程式,若有需要也可把Bootcamp附帶的驅動程式移除。
若有辦法讓Toshiba Bluetooth Stack正常運作,則也可移除Apple Broadcom Bluetooth。


4. 移除Nvidia相關驅動程式。需要移除兩次,第一次是移除掉Bootcamp3.1內附的版本。
第二次則是Bootcamp 3.0的版本。


5. 此時網路卡名稱應該會多一個醜醜的"#2",要修正這問題只要先裝新版nForce,然後在裝置管理員選擇移除網路卡(含驅動程式),重開機後再安裝一次新版nForce就好了。


6. 顯示卡驅動用最新版本應該不會有問題

7. 若要切出第二個ntfs分割區,則需在macos下安裝ntfs-3g跟macfuse。然後使用磁碟分割程式從HFS parition切出所需的空間。之後再用Windows7光碟修正開機選項就可以了。

2010年8月4日 星期三

手動安裝Driver for MacbookPro in Windows7

Need:

Apple Broadcom Bluetooth (11/23/2009 3.1.0.1) Bootcamp 3.1
Apple Build-in iSight (10/25/2007 2.0.1.0) Bootcamp 3.0 AppleiSightInstaller.exe
Apple Display (01/23/2009 3.0.0.0) -> Bootcamp 3.0
Apple IR Receiver (02/21/2008 2.0.4.0) -> Bootcamp 3.0 AppleRemoteInstaller.exe
Apple Keyboard (04/06/2009 3.0.0.0) -> Bootcamp 3.1
Apple Multitouch (09/10/2009 3.0.0.0) -> Bootcamp 3.1
Apple Multitouch Mouse (09/10/2009 3.0.0.0) -> Bootcamp 3.1
Apple Trackpad (07/13/2009 3.0.0.1) ->Bootcamp 3.1
Apple Trackpad Enabler (07/13/2009 3.0.0.1) -> Bootcamp 3.1
Apple Wireless Mouse (11/30/2009 3.0.0.6) -> Bootcamp 3.1
Apple Bluetooth (11/23/2009 3.0.0.4) -> Bootcamp 3.1
Apple System (08/22/2008 2.1.1.1) -> Bootcamp 3.0 AppleNullDriver.exe

Bootcamp service -> Bootcamp.msi or Bootcamp64.msi
AppleSoftwareUpdate.msi

2010年7月26日 星期一

MBP + Windows 7 + Youtube = 當機

這問題在好幾個月前灌Windows 7時就發生了,而且在XP下不會當機orz
不過想也知道,Apple是不會回應有關在Windows系統下面發生的問題(即使是用他們提供的東西)。
但我不想為了上Youtube就得重開機切回MacOS...所以當初只好先用XP來擋著。
最近非得開始用Windows 7了,不得不面對這個問題。
幸好網路上也有不少人有反應這問題,而且也有解法了。
如果試過沒問題的話,再把解法寫下來記錄一下。
.
.
.
試的結果是.....沒用orz,雖然不會整個當掉,但看完影片一定會頓個一分鐘才回復。
如果把aero mode關掉的話,就一切正常了orz。

在XP跟MacOS下都沒有像Aero mode那樣的東西,所以才不會當吧orz。

這邊是國外的解法,最下面有完整的步驟。
如果顯示晶片是9400M的話,記得修改cfg檔加入定義,否則會沒有customize按鈕。
(被這問題卡了一整天orz)

今天用了個很鳥的方法解決(?)這問題
有個多重桌面軟體叫Desktops,這軟體原本是開發給XP使用的,
但在Vista或Windows7下也能用,只不過在開啟Aero mode的情況下,只有Desktop1會有Aero的效果。
利用這個特性,當我要看youtube影片或其它flash影片時,就切到Desktop2~4其中一個,因為Aero被關掉的關係,所以看影片也不會當了^^||。
切回Desktop1也不會影響Desktop1的Aero效果。

終於找出元兇了.....問題是出在Cirrus Logic的音效晶片上(應該是driver有問題,因為xp下是正常的)。
在Device Manager把它關掉後,影片播放就正常了。
之後另外接usb音效卡,影片也能在aero mode啟動的情況下正常播放,播完也不會停頓一分鐘。

早知道就不要把之前Creative Surround 5.1賣掉了orz... 有空再去買100元usb音效卡先撐著吧。

Note for my mbp

裝完bootcamp之後要移掉的垃圾:
Realtek High Definition Audio Driver
Apple Inc. (AppleUSBEthernet) Net (01/11/2008 3.4.3.18)
Apple Bluetooth Enabler (06/27/2007 2.0.0.1)
Apple Inc. Apple Keyboard (03/05/2009 3.0.0.0)
Apple Inc. Apple Multitouch (03/25/2009 2.1.2.112)
Apple Inc. Apple Multitouch Mouse (03/25/2009 2.1.2.112)
Apple Inc. Apple Trackpad (03/05/2009 3.0.0.0)
Apple Inc. Apple Trackpad Enabler (02/19/2009 3.0.0.0)
Apple ODD (01/17/2008 2.0.2.2)
Apple Bluetooth (11/23/2009 3.0.0.4)
Atheros Communications Inc. (athr) Net (09/18/2008 7.6.1.122)
Atheros Communications Inc. (athr) Net (11/18/2009 8.0.0.258)
Atheros Communications Inc. Net (09/18/2008 7.6.1.122)
Broadcom (b57nd60x) Net (05/28/2009 12.2.0.3)
Broadcom (BCM43XX) Net (10/22/2008 5.10.38.26)
Cirrus Logic, Inc. (CirrusFilter) MEDIA (04/29/2009 6.6001.1.8)
Intel (e1yexpress) Net (02/06/2008 9.12.17.0)
Intel (E1G60) Net (01/08/2008 8.3.9.0)
Intel (e1yexpress) Net (07/22/2008 10.3.45.0)
Intel (e1yexpress) Net (08/05/2008 10.3.49.0)
Intel (e1yexpress) Net (07/16/2008 9.52.10.0)
Intel Net (02/06/2008 9.12.18.0)
Intel Net (06/13/2008 9.52.9.0)
Intel Net (07/22/2008 10.3.45.0)
Intel Net (08/05/2008 10.3.49.0)
Intel Net (11/07/2007 8.10.1.0)
Intel System (07/20/2007 1.2.76.0)
Marvell (yukonwlh) Net (03/23/2007 10.12.7.3)

8/9上工

8/9上工
上工前想把一些東西看一看:
1. Android Development
2. DxLib
3. Directshow

2010年7月20日 星期二

DxLib Ver3.03 is out

DxLib Ver 3.03已經release了~
作者把我的BIG5/GB2312支援加進去了^^,這樣我就不用自己maintain一份source code了。

另外作者也有提到加入unicode支援,不過如果用官方的版本似乎有點問題。
需要抓source code回來重編DxUseCLib.lib才能work。

如果要重編DxUseCLib的話,需使用下面的lib/version:
zlib 1.2.3
libpng 1.2.43
libjpeg v6b (v7a會沒辦法秀出jpeg圖,而且會有memory leak)
libogg, libtheora, libvorbis (都用svn上最新版)
再將include加入至header file搜尋目錄中。

沒有特別需求的話,延用原作者編譯的zlib, libpng, libjpeg等lib就可以了,
這邊只需要一些header files即可正確編譯出DxUseCLib.lib。

DxUseCLibOgg.cpp中因為libogg新舊版本差異,還需修改下面部份

#include "vorbis/os.h" -> "#include "../lib/os.h"
#include "vorbis/misc.h" -> #include "../lib/misc.h"

然後把DxUseCLib.cpp, DxUseCLibOgg.cpp, DxUseCStrmBaseFilter.cpp
編譯成multi-thread static linking的DxUseCLib.lib即可。

2010年6月22日 星期二

一些網站記錄

記錄一下一些會用到的資料

How Sub-Pixel Font Rendering Works
http://www.grc.com/ctwhat.htm

以前還有一篇有關Font ABC的說明...現在怎麼找都找不到orz...

2010年6月15日 星期二

E3 2010

6/16
0:00 Nintendo Conference
3:00 Sony Computer Entertainment Conference

爆米花已經買好了 XDD

2010年6月11日 星期五

好用的GB2312 <-> Big5 <-> Unicode轉換程式

「日換星移」
這個程式是碩班的時候學長丟給我的。
大概是我用到現在最沒有問題的一個中文編碼轉換程式了...。
碩班時因為計畫的關係有打算寫一個類似的東西給實驗室用,但是看了看編碼對照表,最後還是放棄了orz。
今天剛好弄DxLib GB2312支援所以又想到這個程式,還是很方便。XD

原作者還寫了不少好用的工具,像是「KeyAssigner」我拿來改工作用桌機的鍵盤按鍵。

其實寫一些Tool還蠻不錯的。XD

DxLib with GB2312 encode

有人在DxLib討論區裡問有沒有支援(簡體)中文輸出... (看來是個大陸人?)
有點無聊所以剛剛照著Big5的修改法加了GB2312支援... 看起來沒什麼問題 :)
不過unicode還是比較好啊...orz 希望原作者有打算改orz

DxLib with GCC ?

有想要用gcc來build DxLib...
不過要改的東西還不少...

先記起來好了...

2010年6月7日 星期一

PV3Tool Bug?

最近用PV3Tool的時候在離開程式時都會出現Access Violation...。
查了一下是ntdll.dll裡的function產生的..。

會出現這問題主要是在有作過抓圖動作之後,
但有時候又不會有問題...。之前用那麼久PV3Tool也都沒發生過。

更神奇的是在Windows7裡沒這問題...。

真是詭異...。

2010年5月25日 星期二

Scrolling完成



終於弄好了... 真是糟糕...
接下來是sprite manager..

2010年5月21日 星期五

寫很久的捲軸


 還有一些問題...ZZZzzz...

2010年5月7日 星期五

都是Scrolling...

本來上上星期開始寫地圖捲軸的,但是寫到一半發現缺管理圖形的東西,
於是就開始寫GraphManager..... 好不容易寫好了,又繼續寫地圖捲軸,
又發現缺關卡管理的東西,又切去寫StageManager.....。
寫完之後看一看GraphManager架構,又有問題,又繼續改,......

到最後反而地圖捲軸沒什麼動XD... 不過引擎架構已經慢慢完整了。
也算是有些進度吧orz..。

2010年4月29日 星期四

DxLib with Layer Manage

最近在寫一些Game底層的東西,主要是要把DxLib的東西封裝起來能夠支援圖層。
DxLib沒有圖層的概念,先畫的東西會被後畫的東西覆蓋。所以就必須要把畫的東西的順序(圖層)先記起來,等到畫圖的時候再依照順序畫出才行。
也因為這樣子,像DrawGraph、DrawLine這些東西都要封裝成物件來記錄。甚至一些會影響到畫圖結果的function像是SetTransColor、SetDrawBlendMode這些function也要封裝起來,才能有正確的作用。

我想只能先包知道的部份,剩下的部份就看有用到再包進來就好。

另外Singleton很多人都說不好,但是我覺得還不錯用阿XD...
Orge3D也用不少Singleton,我想應該不至於差到哪去吧。
就像很多人反對用goto,但是其實goto用在對的地方並不會影響架構,反而會讓程式乾淨得多。

2010年4月21日 星期三

2010年4月14日 星期三

DxLib with BIG5 charset

trace四個小時的DxLib source code,終於讓它能夠支援Big5編碼了 :D。
基本上一樣是先用DxLib::CreateFontToHandle來建一個新的font handle,
這個function我已經修改內部可以判斷big5編碼,然後還有修改NS_MultiByteCharCheck
一樣也加入big5編碼的判斷。 其實改大概不到10行程式吧XD,但是瞭解DxLib畫字的
機制花了不少時間。

總之現在可以快樂的用DrawStringToHandle之類的function來顯示Big5編碼了:D。

Unicode的話等以後再說吧...XD

2010年4月7日 星期三

StageEditor #6

今天把room的半透明顯示的問題搞定了...
GDI+的一些繪圖功能不知道是我用得有問題還是怎樣
例如FillRectange(Brushes.Transparents,......) 填透明色到圖中的某一小塊
結果填完之後圖還是沒清掉XD (因為真的塗了透明色XD)
最後是用SetClip把Graphics重設大小,然後用Graphics.Clear(Color.Transparent)
才清掉... 有點不太瞭解它內部的機制是怎樣...

正式開始作讀寫檔的部份了

2010年4月6日 星期二

StageEditor #5

各層編輯已完成
複數room已可運作
非編輯層半透明顯示 (還要調整)

剩下讀寫檔案,另外就是要自己作一個tile bitmap了。
目前想法是tile 0x00是特殊tile,遇到這個tile就自動不畫。
拿來當橡皮擦用。

然後room connection的部份...
-1是沒接.. -2打算設定成前一個房間 (從哪個房間進到目前房間)
... 不過還有一些實作上的問題

差不多該寫遊戲本體的部份了

2010年4月2日 星期五

StageEditor #4

還剩一些bug還沒解完...

2010年3月25日 星期四

DriveIcons完工

可以儲存設定到ini檔、自訂icon、自訂label。
自動根據磁碟狀態更換對應icon。
最小化到系統列。

2010年3月24日 星期三

自用Subversion server運作中

.....其實運作很久了XD

只不過之前是用no SSL的
這次重弄成with SSL,過程一直有問題。
最後發現subversion的readme.txt裡有寫要把module檔copy到apache的module目錄裡.... -.-
我在httpd.conf裡是直接寫兩個module檔在subversion目錄裡的絕對路徑XD

不過這樣話說回來當初no SSL的時候可以跑還蠻神奇的... @@
anyway, 現在改code比較順了,也不用限一定要桌機才能改code了 :P

2010年3月23日 星期二

DriveIcons

有鑑於Alcor的讀卡機driver太笨
所以自己寫了一個會update磁碟機icon的程式... DriveIcons



DriveIcons會自動監看可移除式磁碟的狀態,然後狀態有改變時,
會自動修改registry來更換對應狀態的icon

Alcor driver byebye~~

2010年3月21日 星期日

快被Alcor的讀卡機驅動打敗.... :@

我的磁碟機 C/D/E/F/Y
讀卡機在G/H/I/J
裝完driver後 會把Y槽誤判成SD卡槽 導致icon變成sd卡的icon
開機時先拔掉線,然後等進os後再裝上讀卡機-->可以正常抓到G槽是sd卡
開機時接著線-->誤判其它槽成sd卡槽

......然後alcor的官網沒有半個driver......連新產品晶片也沒driver
driver還要自己google

alcor是一間台灣公司........

:@:@:@

2010年3月19日 星期五

RDT231WM-X

這星期訂的RDT231WM-X到貨了,
拿到之後組裝測試一下沒什麼問題。
稍微測一下亮暗點時,冒出一個綠色不會亮的點...囧 (原本還好好的說XD)

不過想說算了,沒什麼大問題,就繼續用下去這樣。
只能說最近運不太好XD,上次訂一台E2420HD也是拿到有問題的機子,還好可以退。

這次就要認命了:-p

2010年3月17日 星期三

StageEditor #3

今天的StageEditor進度
點選tile跟stage data structure已經完成了。
接下來先把stage data structure整個寫完,再來把room edit的部份完成。

2010年3月16日 星期二

StageEditor #2

StageEditor目前進度...
Tile的圖是跟Rockman 7 FC版借的。Tile跟Room還有Stage的Data Structure大致上已經思考得差不多了。
接下來先完成基本的Editor功能,然後用DxLib寫一些demo game看看。

2010年3月15日 星期一

StageEditor

上星期在構想的StageEditor,這個星期開始寫了。
主要還是用c#寫,應該跟之前寫的MapEditor一樣。
不過這次參考了很多ACT跟STG,基本上應該會寫成萬用型StageEditor。
主要是用Rockman 1~6跟Super Mario Bros. 3還有Gradius II等遊戲,當然也有考慮一些新遊戲的製作。
Editor完成後就會開始用DxLib來作一些測試。

2010年3月11日 星期四

DxLibTest

昨天提到的DxLib,今天把玩了一下
隨便寫了個秀圖的東西
繼續玩XD

2010年3月10日 星期三

DXライブラリ

最近在網路上看到的一個Game Engine(?) - DXライブラリ
是日本人開發的,主要就是把directX的function包成一個個比較實用的function
例如 (官網的範例)
#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
 if(DxLib_Init() == -1)
 {
  return -1 ;
 }

 DrawPixel(320 ,240 ,0xffff);

 WaitKey();

 DxLib_End();

 return 0;
}
這樣,就是一個很簡單在畫面上畫一個點,然後等使用者按一個按鍵就結束的程式。
這個DxLib把一些win32程式的東西都包好了,programmer只需要專注在跟遊戲相關的code。
還蠻方便的,很像我之前在公司裡用的engine。不過是日文的,如果不懂日文可能會
辛苦一點。有時間的話,來把它的說明中文化看看好了。(通常是沒時間XD)

2010年3月7日 星期日

把member function當成是thread function

參考這邊,要設定成static function才行。
不然會出現"cannot convert from 'overloaded-function' to 'LPTHREAD_START_ROUTINE'"訊息

這裡有比較詳細的原因,跟this有關。

2010年3月1日 星期一

今天

1. PSN陣亡 PS3舊機型遊戲啟動不能
我的鋼40G中槍了orz

2. 2ch被韓國駭客攻擊??
http://blog.livedoor.jp/insidears/archives/52227370.html
要看PV3/PV4 thread一直連不上...

2010年2月28日 星期日

PV3Tool final beta

PV3Tool beta修得差不多了,原本有人反應說toolbar按鈕會一直閃而且不能按,
也回報沒問題了。(不過我完全沒改半行code說......)
其實我一直覺得這問題是driver的關係,因為我這邊原本開發的機器跟新組的電腦,
兩台跑起來都沒問題,我也去挖了XP日文版來測試,也是一樣沒問題。

真要說改了什麼的話,就是有把一些跟字串有關的sizeof改成了_countof ... 該不會是
memory爆了什麼的造成這個問題吧XD...。只能說又學到東西了:)

另外就是修掉了載入電視台logo功能裡面讀檔會掛掉的問題,這算是當初在unicode化時
沒注意到就改了。因為logo檔那邊的檔頭還是用ascii code的,所以檔頭structure裡面的
char[]被我改成TCHAR[]後就會有問題。改回原本的char[]後就沒問題了。

再來我還加了個可以自由切換aero mode開關的功能。
因為我自己在windows7下用,錄影的結果很正常,但monitor的畫面都頓頓的。
關掉aero mode就正常了。看來aero mode是很漂亮,但也吃掉一些資源。

最後就只剩下OSD在Directdraw off-screen surface會一直被消掉造成閃爍的問題。
這個我想只能用個thread一直強迫重畫才行,不知道會吃掉多少cpu。

有興趣的人可以下載final beta
for winxp
for vista/windows7
source code

2010年2月27日 星期六

sizeof, _countof

_countof -> static array的element數

sizeof -> 某個型態/變數的byte數

TCHAR haha[100]

sizeof(haha) in unicode = 200
sizeof(haha) in multibyte = 100
_countof(haha) in both = 100

no _countof() ? use sizeof(haha) / sizeof(TCHAR)

這東西真的會影響很多...
一堆strncpy什麼的 如果之前都寫sizeof的話 會掛得很難看..

2010年2月26日 星期五

iPhone App Info->Identifier

from iPhone Dev Center

Example App ID: A1B2C3D4E5.com.domainname.applicationname
Identifier to enter in Xcode: com.domainname.applicationname

Example App ID: A1B2C3D4E5.com.domainname.*
Identifier to enter in Xcode: com.domainname.${PRODUCT_NAME}

Example App ID: A1B2C3D4E5.*
Identifier to enter in Xcode: ${PRODUCT_NAME:rfc1034identifier}

iPhone Dev

今天真的差一點就要抓狂了XDD

iPhone的codesign一直有問題,每次程式傳上去iPhone之後,
GDB就說沒辦法跟iPhone連線orz
網路上有很多解法,像是重作Provisioning Profile、重開機、改plist都沒用

最後怒了,把Xcode整個刪掉重新裝一次。
就好了 囧囧囧囧囧囧.......

我覺得應該是我之前在試bypass sign check的時候改了Xcode的設定
結果試完之後沒有改回來

總之,終於可以實機debug了。
果然實機跑起來比較知道程式操作起來的感覺。

開始來寫一些測試的程式

2010年2月25日 星期四

PV3Tool(續)

ok剛剛說按鈕有問題的人回報了 還錄了影片
看了一下 應該是更新按鈕state的部份有問題
或是timer的重畫時間太長
之前有試著改過timer時間為15ms畫一次
在off-screen surface下 osdbar不會一直閃
不過到了window7下因為aero的關係還是沒辦法解決
先丟一個timer 15ms的版本試試好了

如果還是有問題就要大改code了.....

PV3Tool

2ch那邊有人提到Clipboard的問題
稍微看一下code,發現原來我忘了改Clipboard的資料類型
原本是設定成ANSI TEXT,但因為整個程式都unicode化了
所以本來的檔案路徑也都變unicode了,所以抓圖完的Clipboard都會只有一個char
因為一般ascii code在unicode下都變成0x00??了,在記憶體裡排列就變成
?? 00,然後00剛好是null terminate,所以都只會有一個char

2000/XP之後有新的參數是可以指定Clipboard的資料內容是unicode text了,
改了之後就正常了,順便加上可以由ini/profile指定Clipboard字串format。
這樣應該就方便很多了。

不過有人說toolbar的按鈕問題解決了說XD
我根本沒動其它的code阿XD 要說其它修改的話,只有針對xp和windows7的def作修改
真是怪怪,不過沒問題就好,不然其實我也找不出原因orz
我換了兩台電腦都OK,想說再不行就只好灌日文XP來試了 XD
anyway, 沒問題就好:D

2010年2月23日 星期二

iPhone Developer Program

看來我也得打客服電話了...apple的人都不會回報這個問題給美國那邊嗎??
在台灣買IPHONE DEVELOPER PROGRAM的人應該都會遇到這個鳥問題吧

2010年2月19日 星期五

PV3Tool問題

2ch那邊有人提到不能按toolbar上的open memory等按鈕的問題..

..........我都可以耶XD..... 這是要怎麼debug... -.-||
只好暫時先擺放了,反正他們還有areya的版本可以用
我不用unicode版的話畫面會很亂而且會有當機bug

話說最近還發現windows7的winmm.dll export function的順序編號跟XP不一樣了
不過怎麼用起來沒差.... 為了保險起見,我還是改了def檔
免得出一些怪問題

請大家開始學寫unicode程式了,不然你的程式永遠只能給自己用

2010年2月17日 星期三

移除掉XP內建的MSN

移除XP內建MSN 
RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove
 

2010年2月10日 星期三

PV3Tool抓圖問題修正

會產生問題的原因是IDirectDrawSurface7::Lock()時會有SURFACE_BUSY的問題,加了一個新的參數MaxSnapShotRetry 讓程式在Lock有問題時可以重新再嘗試Lock

PV3Tool用Hook的方式... 這問題應該沒有好的解法吧

2010年2月5日 星期五

FindWindow與多語系 - 3

本來應該解決這個問題了
不過又半路殺出個程咬金

"另存新檔" -> 在xp, vista, windows7, 不管是x32或x64 中文版或日文版都能正確抓到字串

"開啟舊檔" -> 在xp, vista, windows7中 顯示出來是 "開啟舊檔"
但在windows7 中 comdlg32.dll裡存的字串卻是 "開啟" Orz

後來才發現 原來開啟舊檔的dialog應該是用dialog resource內#1547的dialog...
標題寫的正是"開啟舊檔"
不過打開其它的dialog 有的標題寫"開啟" 有的寫 "開啟舊檔"...... Orz

最後終於讓我用另一個方法解決這問題了
WM_ENTERIDLE會回傳給dialog的parent window
所以在parent window裡面攔這個message 其中的LPARAM就是dialog的handle了 -.-||
如果要確定是我們要的那個dialog 就用getdlgitemtext之類的檢查一下就好

2010年2月3日 星期三

FindWindow與多語系 - 2

今天終於解決(?)這個問題了

因為save dialog是依據comdlg32.dll來創造的,所以在comdlg32.dll中
就含有dialog對應的string resource

用visual studio開啟comdlg32.dll (個人是使用XP SP3)
可以看到resource id=385 就是我們要的 "另存新檔"

根據這個結果,寫了下面的程式:

LoadString((HINSTANCE)GetModuelHandle(_T("comdlg32.dll")), 385, buf, 1024);

這樣buf的內容就會是"另存新檔" 再丟給FindWindow就能找到我們要的dialog的handle

FindWindow(MAKEINTATOM(32775), buf) 這樣子就能找出SaveDialog的handle

vista下LoadString也能得到"另存新檔"字串
windows7下應該也沒有問題 而且在windows7下打開comdlg32.dll可以看到其它語系的string table
其它語系的"另存新檔" id也同樣是385
所以這個方法應該沒有問題吧... XD

現在要測試在64bits的os是否也能得到相同結果

>> 64bits OS OK!!

2010年2月2日 星期二

FindWindow與多語系

最近遇到一個問題
有支程式,原本是日本人開發的。有個部份是程式會去檢查是否有跳出"另存新檔"的視窗
如果有,程式會代替使用者按下"儲存"按鈕.. 原本的程式是這樣寫的

FindWindow(NULL, _T("名前を付けて保存"))

"名前を付けて保存"就是日本的另存新檔的意思
這樣子寫,在日文的作業系統下運作當然是沒有問題

但是到了中文的系統下就不行了 因為中文的系統下 另存新檔視窗的title就是"另存新檔"
所以程式如果不修改的話,FindWindow一定會找不到對應的視窗

當然改成FindWindow(NULL, _T("另存新檔"))這樣子就沒問題了
但是變成要維護兩份source 而且一但之後再增加新語言支援 又要再多一份source..

原本是想把這個字串放到resource裡面,不過resource editor好像原生不支援unicode
看起來打進去的字串 會依照我們設定的語言跟codepage存起來 等到compile time才會轉成unicode存起來..

而且看起來這個視窗的標題應該是系統內部有定義好 如果可以由程式拿到這個字串的話
就能解決這個問題了

2010年1月31日 星期日

win32 LoadString Function...

LoadString這個function可以用來載入某個instance裡面內含的string resource.
MSDN中對於nBufferMax參數有提到:
"If this parameter is zero, then lpBuffer receives a read-only pointer to the resource itself."

所以基本上我只要nBufferMax傳0進去.. lpBuffer就可以拿到我們指定的ID對應的string囉...

心裡這樣想,寫了下面的程式
LPTSTR haha = NULL;
LoadString(hInstance, IDS_HAHA100, haha, 0);

結果haha回來的值還是NULL (倒

難道msdn也會拐人嗎XDD

msdn有對這個技巧說明: 這個方法只能用在LoadStringW... 很好... 我寫的是unicode程式阿XDD
(都什麼時代了還在寫ansi...)
所以我的程式當然是call LoaodStringW...

google半天也不知所以然

思考了很久很久
突然想到
因為傳進去的是LPTSTR... 所以LoadString內部一定是copy一份這個變數的"值"進去 (call by value嘛)
然後在LoadString內對自己function內宣告的變數改得很高興 但是外面的變數根本就沒動阿XDD
所以應該是要傳LPTSTR的pointer進去給LoadString才對

不過LoadString只吃LPTSTR說...
改寫一下變成:
LoadString(hInstance, IDS_HAHA100, (LPTSTR)(&haha), 0);

喔喔喔喔喔喔 成功了
不過是沒有\0 (null-terminated char)的字串
要自己切

不過我記得有google到只要加/n參數在resource compiler那邊
編譯出來的resource就會含\0
不然就要自己切字串, LoadString會回傳ID對應的String長度
看是要執行檔resource肥一點點點 但跑比較快
還是執行檔code肥一點 然後要自己切字串 跑比較慢

恩 這樣搞定一個問題 很高興 :D

2010年1月30日 星期六

Hobby

1. PV3Tool Unicode version 多語言化 & 抓圖問題修正
2. Wonderswan / Wonderswan Color / SwanCrystal BootROM dump.
3. 自製TV swan (using SwanCrystal)