chào anh em Gamevn của BOX PSP. Anh em chơi game đã rồi , chán chê rồi . Anh em ta muốn làm 1 cái gì đó cho PSP mà ko so đụng chạm vào phần cứng PSP . Chà ...........Homebrew , đúng rối , chính nó . Từ đó giờ toàn xài homebrew nước ngoài ko . Sao ko có 1 cái gì đó Homebrew made in Viet Nam .Thế thì bây giờ , làm Homebrew viet nam Thôi . ------------- Oai` ... bắt đầu từ đâu bây giờ , lên google tìm kiếm . thì biết homebrew làm dc từ ngôn ngữ C++ . chà , kăng quá đây . Vì C++ là 1 ngôn ngữ ko dễ nuốt . tìm tiếp thì có ngôn ngữ Lua , chà nghe có khả quan , nhưng ũng ko đơn giản . Vì sao ? ----------- OK . Để làm homebrew C++ ta mất khá nhiều thơi gian cài đặt , thứ 1 ta phải cài bộ PSPSDK , ToolKit , và Cyware ( thằng này cài rất lâu , 2 tiếng chưabiết cài xong chưa ) .==> ko khả quan . Đi tiếp em Lua Script . em này dể hơn . Nhưng gặp vấn đề khó khăn là Debug của em này vô cùng nghèo nàn . Ko thông bào lỗi , 1 là Run,2 là Out . Đố biết bị sai Code chổ nào . Mà phần Data.psp của nó bị mã hóa hoàn toàn , chả xem dc source , thua lun . Cách debug mất thời gian , khó khăn . ngôn ngữ viết lúc C , lúc Lua . Loạn xì ngầu . Được cái Source Code nhiều , nhưng ko thấm vào là bao. ----- thế là đi tong , vậy là homebrew VN , coi như là khó qua ải . tìm tiếp , Source tàn nat google , lên YOutube tìm kiếm . Ố là la . trúng ngay 1 ngôn ngữ mã nguồn khá đơn giản , lại debug = tool , thông báo lỗi , vậy là vào việc thôi . ---------------------- SDLBASIC-------------- SDLBASIC là gì : là 1 ngôn ngữ dc tao ra từ ngôn ngữ C++ , nhưng dc viết lại với 1 cach nhìn dơn giản hơn . Nhưng cũng ko mất di tính chất ngôn ngữ C.( còn bạn muốn tìm hiều thêm lên google ) ------------- Vậy làm Homebrew bằng SDLBasic thế nào . Trước tiên . Ta cần down Tool đề lập trình sdlbasic : ---Download : http://www.sdlbasic.altervista.org/main/misc/Software/Windows/sdlBasic-setup-20070714.exe ---------- Tiếp theo ta down bộ Source SDLBASIC dành cho PSP , Vì sao , Vì PSP homebrew muốn chay dc , ta cần có EBOOT.PBP , trong EBOOT.PBP có 1 file là DATA.PSP ,Đây là file quan trong đề chạy dc Homebrew , thiếu nó ko hay dc dâu nhé . Vì vậy bạn đừng đụng chạm gì vào file EBOOT.PBP nhé . Download SDLBASIC SOUCRCE PSP :(ỡ dưới cùng bài viết ) ( trong đó có 1 file .SDLBASIC , và EBOOT.PBP , ta làm viec với file .sdlbasic) ---------- BÀI 1 : OK ..... Làm 1 HomeBrew Xuất ra chữ HELLO WORLD .(bài căn bản của tất cả lập trình viên :'>) ---- Ta khởi đông SDLBasic tool :(giao diện chính ) : - -------- Ta tạo New 1 Project (File->NEW) - Bắt đầu Code : -------------------------------- ta code dòng : Mã: setdisplay(480,271,16,1) ------- Dòng này là ta khai báo chế độ hiển thi màng hình , setDisplay( width , height , depth , mode ) width : dài width : cao depth : Độ màu 8 = 256 màu 16 = 65000 màu 32 = đầy màu Mode : là hiển thị cửa sổ 0 = full screen 1 = fixed window 2 = re-sizable window -------- như vậy tôi ghi Mã: setdisplay(480,271,16,1) Tức là tôi căng màng hình ra 480x271,65000 màu , và fixed cử sổ lại luôn . OK ,,, Xong hàng đầu tiên ------------------------ Hàng 2 : Tôi Code : Mã: [COLOR="Blue"]prints[/COLOR]("[COLOR="Red"]Hello World[/COLOR]") Hàm Prints("Text cần để in ra") ----------------------- Hàng 3 : Tôi Code : Mã: [COLOR="Blue"]waitkey[/COLOR]([COLOR="Lime"]k_return[/COLOR]) Hàm waitkey : Là tôi chờ bấm 1 nút gì đó trên PSP k_return : là thuôc tính của waitkey , tức là , khi bấm 1 nút nào trên bàn phím , sẽ quay về desktop PSP , --------------------- Hàng 4 : Tôi Code : Mã: End Hàm : End , là kết thúc 1 chuỗi lênh Code -------------------- OK OK .... Tôi Save lại , Chú ý khi save bạn phải save là ( Tênsave.sdlbas) . Ta cho nó tất cả vào 1 folder , trong folder gồm có , file EBOOT.PBP (tôi đã cho bạn down ở dưới bài viết ) , Với file mà bạn vừa Code xong . ----------------------- bây giờ bạn bỏ cái Folder đó vào PSP/GAME , và TEST thử . Kết quả :
Bài 2 : Cho hình và Nhạc vào -------------------- Tương tư như bài 1 tôi code : ------- Hàng 1 : Mã: setdisplay(480,271,16,1 Hàng 2 : Khai báo 1 biến là Loadimage Mã: s=loadimage("media/001.jpg") Khai báo biến s=loadimage("thư mục của file hình") ---- Hàng 3 :dán hình vào : Mã: pasteicon(0,0,[B]s[/B]) Hàm Pasteicon(x,y,s) . X,y là tọa độ góc của trục đồ thi ( ai học toán biết đồ thi hàm số , chính là em nó ) -------- Hàng 4 : Đưa Âm thanh vào : ta code : Mã: [B]s2[/B]=loadsound("music/Bumm.wav") Ta khai báo 1 biến là s2=loadsound("thư muc/tên file.wav") Chú ý : Sound chỉ nhân âm thanh là wav , thể loại khác như mp3 , hay gì khác là nó ko nhận : ----- Hàng 5 : Chơi Sound : Ta code : Mã: playSound( [B]s2[/B], 1 ) nghĩa là : playsound(biến khai báo,volte) --------- Hàng 6 : Mã: waitkey(k_return) Chờ bấm 1 Key trên PSP : để trở lại desktop ------ Hàng 7 : Mã: End kết thúc chuổi CODE ------- Test : Code : Source : Download o duoi'
VN ta cũng có bác viết được HB rồi đấy, ko nhớ tên nhưng cái bookr v8.0 (1 HB khá phổ biến) là do 1 bác ở VN viết ra dựa vào bản 0.71
minh tìm hiểm qua bookr rồi. và co 1 bản OpenSource.Nhưng tiết thay, mình ko mỡ dc source nó ra . ------ Mình là làm từ đầu . ko edit lai cái gì cả .Thông thương Homebrew nuoc ngoài co Open source,ma ko hiếu sao ,mình ko xem dc , dù chì 1 cái. bo tay. Cho nên làm từ đầu cho nó lành.
Ủng hộ bạn 2 tay này cái C++ ngày truớc học năm thứ 2 mình toàn phải thi lại này khó kinh căn bản Toán mình hơi dốt nên mấy món này mình chịu chết
+ rep cho bạn rùi , hay thật , khâm phục bạn đấy mình down 2 file đính kèm về , nó là 1 HB đúng ko bạn , 2 file đó là bạn làm để test đúng ko :X
bài 3 : hàm DIM -------- bài này nói lập trình với hàm DIM ( là hàm khai báo biến ) --------------- Hàng 1 : Tôi Code : Mã: setdisplay(320,200,32,1):paper(0x2934933):pen(0x2840884) ---------- setdisplay ( dài , rộng , độ màu , fix windows ) paper :màu nền( cái này là bản màu )-->bạn xem bản màu trong photoshop nhé pen : màu chữ ( thường là cho Text) Chú ý : bạn khi setdisplay ,muốn thêm thuộc tính gì nữa , bạn phải để dấu : --------- Hàng 2 : tôi khai báo DIM Mã: dim a$[4]:a$[1]="dragon":a$[2]="lion":a$[3]="eagle":a$[4]="panther" Tôi khai báo 1 dim có các thuôc tính sau :( Bản cấu trúc hàm DIM ) dim {Common|Shared} name [] dim {Common|Shared} name = expression dim {Common|Shared} name [ maxValue {,...} ] dim {Common|Shared} name [ minValue To maxValue {,...} ] Vậy của tôi là hàm Dim , tên a$ [số]="chữ" ------------- hàng 3 :tiếp theo tôi dùng Hàm For : Mã: for i=1 to 4 For : tức là hàm đếm tới : Có nghĩa là tôi đếm tới từ 1 đến 4 : ----------- hàng 4 : Tôi Code : Mã: prints(a$[i]) Tức là tôi xuất ra màng hình tên a$ , ( i tôi đã đếm tới từ 1-4 ) ---------- hàng 5 :Tôi Code Mã: Next : Lý do sao tôi ko dùng End luôn mà dùng Next , bởi vì trong hàm For , tôi đang đếm lên , cho nên tôi ko End dc . tôi phải next để đi tiếp 1 cái lệnh nào đó . rồi tôi mới dám End dc ----------- hàng 6 và 7 Mã: waitkey end ------------- Cho vào PSP và kết quả : ---------- Code: ========= Code thế , nhớ bỏ file eboot.pbp ,vào mà test trên PSP nhé
Ôi mẹ ơi, mình sắp học cái này rồi. Nghe nói thi Thực Hành "tạch" cả lớp. Mấy a chị Khóa trên cũng thế//// ----- Bạn Zaizai giỏi quá. Bất ngờ lắm!
thánks ban . mấy cái Demo trên mình Test hêt rồi . bạn cứ yên tâm nhé . Khi bạn mỏ ra , nó co 1 file EBOOT.PBP , và 1 file .sdlbas . Chỉ cần 2 cái này là chạy Ok. ------- Mình chưa học C++ bao giờ cả , mình sở trường Là C#,Asp.NEt và 3Ds max .Mấy cái này mình tự mò . ăn may trúng :devil:
zaizai cho tớ hỏi tí -tớ dùng hàm loadmpeg để mở 1 file movie nhưng chạy trên win thì chỉ có tiếng chứ không có hình, bỏ vào psp thì đen toàn phần và câm nín luôn mặc dù đã encode thành mpeg1 theo yêu cầu ::( -còn nữa, làm sao để hiểu được phím bấm trên psp vậy cậu? ví dụ tớ muốn bấm nút start để dừng đoạn movie và show image lên. :p Đoạn code của tớ đây Edit: đã hiểu lý do vì sao chạy trên win chỉ có tiếng, phải encode thành smpeg ::(
dùng PSPTOOLCHAIN chạy = Cygwin để bung nó ra thử. Mình đang dùng để tạo homebrew đây (mà cái psptoolchain này fải viết = C/C++), tụi nó nói có thể bung ngược source ra lại nhưng mình chưa thử.
chào bạn . hàm bạn viết về Video mình xó xem qua . nhưng đã sai rồi . Mình đang ở trường nên chưa Update bạn hàm đó dc . thứ 2 là : Mình test hàm chay Video trên PSP rồi . nó out ra , mình thấy ko khả quan lắm . Code : Mã: finp$="film/aikido_ti3n.mpg":usesound=1:optionalloop=1:windowed=1 setdisplay(640,480,32,windowed):paper (8^8-1):ink(0):pen (0):cls loadmpeg(finp$,usesound):plaympeg(optionalloop) while 0=0:if key(27) then : end :end if: wend ----------
cái bookr 08 của bác Tâm gì đó viết xài chẳng dc gì ebook nào load cũng tự reset máy... khổ nỗi là mình lại học C# thay vì C++ nên cái này kô vọc dc