PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

さて、いよいよ実践的なライブラリの導入をする日が来ました。

DXライブラリPortable

これは、「DXライブラリ」というWindows版ライブラリのPSP版です。
作者は 憂煉(ゆうれん)さんです。

彼については、PSPいじり と PSP用ライブラリ開発が大好きな方と伺っております。

この記事で紹介の v0.5.5 にはバグがあったので、v0.5.7 を導入することを強く推奨します。
>> PSPプログラミング PSPSDKにライブラリを追加しよう(4) DXLibP v0.5.7

-- 続きを読む --
スポンサーサイト

[edit]

CM: 2
TB: 0

page top

この記事は、古い DXライブラリPortable v0.4.14 の導入記事です

現在は DXライブラリPortable v0.5.7 でPSPプログラミングをやっているのでこの記事は必要な方だけ読んで下さい


続きに

-- 続きを読む --

[edit]

CM: 0
TB: 0

page top

DXライブラリPortableがヴァージョンアップです。
バグ修正版なので、まだ v0.5.6以下を導入したままの方は 思い切って取り替えて下さい。

これは、「DXライブラリ」というWindows版ライブラリのPSP版です。
作者は 憂煉(ゆうれん)さんです。

では、ダウンロードから。

DXライブラリPortable
↑↑ クリックして入室
ページの左側に、「DX Library Portable」という項目があります。
そこをクリックします。

現在の最新版です。 バグ取りしてある安心版。  ヴァージョン 0.5.7 。
まだ未定ですが、憂煉氏が C++言語版のDXライブラリPortable を作りたいと意見しておられました。 うほっ、3D強化大作戦!!

ダウンロードしましょう。
【 必要なファイル 】
・dxlibp_v0.5.7.zip    ← これがライブラリ本体です
・dxlibp_help_v0.5.1.zip ← これがヘルプファイルです(下の方にあります)
( DXP ver.0.5.7 のソースは、SVN から取得して下さい、との事。欲しい人はダウンロードするのだっ )

【 新アプリの導入 】
制御文字リペア 【はるるん v0.2】
日本語を正しく修正してくれるアプリです。使い方は、ReadMe.嫁.txt を読んで下さい。
好きなフォルダにインストール出来ます。レジストリは未使用。
ソース中に「だめ文字」が存在する場合に使います。
だめ文字についての Wikipedia 資料

【 インストール方法 】
1. どこでも良いので、仮フォルダ内にて、dxlibp_v0.5.7.zip を解凍します
2. PSPSDKのインストール先の、SDKフォルダを開きます(標準PATHは、C:\pspsdk\psp\sdk\)
3. そこに、'DXP_v0.5.7'というフォルダを新規作成します。
4. そのDXP_v0.5.7フォルダの直下に、'include'フォルダと'lib'フォルダと'HELP'フォルダを新規作成します
5. 標準PATHで C:\pspsdk\psp\sdk\DXP_v0.5.7\include\ に 1.の dxlibp.h を入れます
6. 標準PATHで C:\pspsdk\psp\sdk\DXP_v0.5.7\lib\ に 1.の dxlibp.a を入れます
7. 標準PATHで C:\pspsdk\psp\sdk\DXP_v0.5.7\HELP\ に dxlibp_help_v0.5.1.zip を解凍して入れます
8. 7.の中にある、index.html ファイルのショートカットを作り、わかりやすい名前にリネームして(DXライブラリPortableヘルプ とか)、デスクトップへ貼り付けます
9. 完了

おまけ
【 インストール方法 】の 5. の dxlibp.h のショートカットを作り、わかりやすい名前にリネームして(DXライブラリPortableヘッダ とか)、デスクトップへ貼り付けておいても良いかも知れません。

【 ヘルプファイルの使い方 】
DXライブラリPortable の関数のマニュアルとして参照します。
ショートカットを作ってデスクトップに配置しておくと、参照しやすいです(上の記事【 インストール方法 】を参照)
ブラウザで見る形式のマニュアルなので、「IEが重いよ~」の方は、軽いブラウザをインストールして、そのブラウザで閲覧して下さい。お勧めのブラウザは Firefox とか Google Crome です。
なお、そのブラウザに お気に入りも 複写(同期)したい場合は、無料アプリの BookSync を使用してください。

【 振り返る 】
ここで、DXライブラリPortableさんに戻って、ページ内容全部を軽く閲覧しておきましょう。
色々な発見があるかと思いますよ。特に掲示板は重要です。

【 ライブラリの使い方 】
ライブラリなので、コンパイル時に使用します。

MAKEFILEの書き方(DXライブラリPortable v0.5.7版)
リンクしているライブラリは、v0.5.5 と同じです。
雛形です。コピペ推奨。赤い文字は必須。青い文字は必要に応じて書き換えてください。
TARGET = NICEGAME
OBJS = main.o graphic.o sound.o input.o sub1.o sub2.o …………

PSPSDK=$(shell psp-config --pspsdk-path)
INCS = $(PSPSDK)/include $(PSPSDK)/DXP_v0.5.7/include
INCDIR = $(INCS)

CFLAGS = -Wall -G0 -O3 -fomit-frame-pointer -mgp32 -mlong32

CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

LIBDIR = $(PSPSDK)/DXP_v0.5.7/lib
LDFLAGS =
LIBS = $(PSPSDK)/DXP_v0.5.7/lib/dxlibp.a
LIBS += -lpspgu -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec\
-lpsputility -lpspvalloc -lpsppower

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = 開発ソフトウェア名
PSP_EBOOT_ICON = NULL or アイコンのPATH(ICON0.png)144x80
PSP_EBOOT_ICON1 = NULL or 動画アイコンのPATH(ICON1.PMF)144x80
PSP_EBOOT_UNKPNG= NULL or ゲーム説明画像のPATH(ICON1.PNG)310x180
PSP_EBOOT_PIC1 = NULL or アイコンの背景画像PATH(PIC1.png)480x272
PSP_EBOOT_SND0 = NULL or 音楽ファイルのPATH(SND0.AT3)500KB以内

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

# 以下、任意で(開発しているソースに依存)
main.o : main.c main.h mydef.h graphic.h sound.h input.h
graphic.o : graphic.c graphic.h mydef.h main.h
sound.o : sound.c sound.h mydef.h main.h
input.o : input.c input.h mydef.h main.h



EBOOT.PBPに日本語文字で名前を付けたい場合は…
開発したPSPソフトウェアに日本語文字で名前を付けたい場合は、NAGAOKA STATIONさんで配布中のWindows用アプリ PSP用ソフトのアイコンを抽出・変更するソフト V0.04b を使用して下さい。

【 DXPを利用しての開発で気を付ける事など 】
その1.
DXライブラリPortable は フリーウェアですが、著作権は 作者の憂煉氏にあります。
DXライブラリPortable を利用、もしくは DXライブラリPortable のソースコードを利用、の場合は、製作した作品の付属ドキュメントなどに、「DXライブラリPortable を使用して開発しました」宣言を書き添えるように心がけてください。また、mediumgauge氏の全角文字表示ライブラリも同梱されているので「mediumgauge氏の全角文字表示ライブラリも使用しています」宣言も書き添えるように。マナーです。
その2.
>DXライブラリPortable の バージョン 0.5.xの場合、ソースの宣言部分で
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);
>ではなくて
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
>にしないといけないです.

>VFPUを使う人へ
>乱数生成関数、算術支援関数、DrawModiGraph、DrawRotaGraph及びその派生関数では内部で一時的にVFPUレジスタの0~2ブロックを使っています。
>それらの関数が呼ばれた時点で該当するVFPUレジスタの内容が破壊されますので、注意してください。
>また、今後のアップデートでVFPUを使う関数が増えたり、使うレジスタを増やす可能性があります。

と、README.TXT に書いてありました。




次の記事は、『DXライブラリ v0.5.7の改造 できるかな?』です。

【 関連記事 】
PSPプログラミング EBOOT.PBP 生成用 Makefile 記述方法
PSPプログラミング プラグイン生成用 Makefile 記述方法
PSPプログラミング テキストエディター【 Apsaly 】のススメ
PSPプログラミング インクルードやリンクについての講釈
PSPプログラミング PSPSDK に同梱されているライブラリの一覧とリンク記述
PSPプログラミング コンパイルオプションについて調べてみました。
PSPプログラミング 制御文字リペア 【はるるん v0.2】リリース
PSPプログラミング PSPSDKにライブラリを追加しよう(1) CFW4.01m33
PSPプログラミング PSPSDKにライブラリを追加しよう(3) DXLibP v0.4.14
PSPプログラミング PSPSDKにライブラリを追加しよう(4) DXLibP v0.5.7


[edit]

CM: 1
TB: 0

page top

ども、暫くぶりの更新です。
DXライブラリPortable を色々弄ってたら、こんなに日にちが経っていました。

今回はちょっと手抜き仕様です。

この記事は、DXライブラリPortable を改造するという、上級者向けです。
弄りたくない人は、読むだけにしてね

まずは、DXライブラリPortable v0.5.7 のソースのダウンロードから
↓↓ココ(一部、ファイル名が文字化けしますが)
http://sourceforge.jp/projects/dxlibp/svn/view/dxlibp/trunk.tar.gz?root=dxlibp&view=tar


判明した DXライブラリPortable の上限数 と 変数名

ありか       変数名            何を扱う値か?        設定値
sound.h  DXP_BUILDOPTION_SOUNDHANDLE_MAX   サウンドハンドルの最大数      32
dxlibp.h  DXP_BUILDOPTION_FILEHANDLE_MAX   ファイルの同時読み出し最大数    32
dxlibp.h  DXP_BUILDOPTION_FILENAMELENGTH_MAX ファイル名の最長          260
dxlibp.h  DXP_BUILDOPTION_TEXTURE_MAXNUM   内部で持つテクスチャの最大枚数   512
dxlibp.h  DXP_BUILDOPTION_GHANDLE_MAXNUM   グラフィックスハンドルの最大数  2048
dxlibp.h  DXP_BUILDOPTION_MODEL_MAXNUM    3Dモデルの最大数          16
dxlibp.h  DXP_BUILDOPTION_FONTHANDLE_MAX   フォントのハンドル最大数      8


コレを見ると、サウンドが 32種類まで となっていますので、もっと効果音を増やしたい人は、
64 とか 96 に変更するといいでしょう。ただし、メモリ使用量は確認しないとだめですよ

グラフィック は 2048種類までですが、これは問題ないかと思います。
小っこいスプライトを大量に使用したい人とかは、値を増やしてみて下さい。

ファイル名の最長は、PSPは Windowsと同じ 256文字までだと思うので弄らなくて良し。
他の値については、自分が作りたいソフトウェアに合わせて設定してください。

弄り終えたら DXライブラリPortable の再構築(コンパイル)をして PSPSDK に登録すればいいです


[edit]

CM: 7
TB: 0

page top

メーカーが明かしたPSPの性能表には、PSPに使われているCPUの型番と動作クロック周波数も書かれています。
PSPの性能(過去記事)


必読の資料
第4回 CPU・MPUはどうやって動く? ~ 発振器のナゾ - @IT MONOist
クロック周波数とは?
バスクロックとは? 意味・解説

エミュレータでは実行速度を上げる為に、CPUクロック周波数を333MHzなどに上げる処理がみられますね。

PSP の 333MHz駆動は、長時間持続させるとCPUが壊れる可能性がかなり高いです。危険なので、333MHz駆動をさせる場合は気をつけて下さい

CPUクロック周波数について補足
 CPUが、一番速く処理できる命令(何もしない命令:NOP とか)を 1秒間に何回実行できるかの回数。単位はHz(ヘルツ)。
 1つの機械語命令の、処理開始から処理終了までの実行にかかる時間は クロックという単位で表され、2~3クロック程度の速い命令から 10~30クロックくらい(またはそれ以上)かかる遅い命令などもあります。
 一般に、CPU内部では 掛け算命令は足し算の繰り返しで計算して求められるので 他の命令より処理速度は
遅いのです。
 PSPは、222MHz駆動なので、最速 222百万回/秒 の命令を実行できる、という計算上での話。
 もちろん、値が大きいと処理速度が速い、という事です。


一般に、バスクロックに与えるクロック周波数は、CPUに与えたクロック周波数の半分の値です。
PSPでも、CPUのクロック周波数を半分にした値をバスクロックに設定すればいいのです。


DXライブラリPortable で記述する場合 このソースコードはBSDライセンス
#include <dxlibp.h>
// CPU動作クロック周波数を変更
int freq, old_freq;

freq = 266;
old_freq = ChangeCpuSpeed(freq);
パラメータ:内部PLL&CPUクロック共用、バスクロックには1/2の値が入る
      クロック設定する前に、1 ~ 333 の範囲か調べています
     (内部PLLは、19 ~ 333 なので修正した方がいいと思います)

  返り値:直前のCPUクロック周波数 数値



CPUの動作クロック周波数を下げると、消費電力が抑えられますので、PSP Homebrew の mp3プレイヤー などではCPU動作クロック数を下げる処理がされていて、標準で5時間駆動のPSPが9時間駆動とかになるのは この為です。

ちょっと裏技とか
PSP Revolution では 222MHz と 333MHz での切り替えしかありませんが、CWC(チートプラグイン)を使えば 300MHz駆動とか可能になりますよ~


パソコンのCPUクロック周波数についての一覧表は、こっちを見て下さい。


[edit]

CM: 0
TB: 0

page top

現在時刻の取得 DXライブラリPortable 

2010/07/18
Sun. 20:54

今回は、PSPの現在時刻を取得する手順について解説します


DXライブラリPortable

#include <dxlibp.h>
int GetDateTime ( DATEDATA *datebuf );
基本は、上記関数を呼ぶだけです。
そしたら、DATEDATA構造体で定義した datebuf に、現在の 日付&時刻 が取得される様です

では、DATEDATA構造体を調べてみましょう
"dxlibp.h"というファイルに定義が書いてあります

DATEDATA構造体 は、こんな風に定義されています
typedef struct DATEDATA__
{
int Year; // 年
int Mon; // 月
int Day; // 日
int Hour; // 時
int Min; // 分
int Sec; // 秒
}DATEDATA;

int なので、32Bit長ですね。
int なので、負の値が返ってくる可能性がありますよ?(ありえないとは思うけどなw)


DXライブラリPortableには、この他に、
ミリ秒単位(=1/1000秒)の精度を持つカウンタの現在値を得る(本家互換)関数や、
int GetNowCount ( void );

マイクロ秒単位(=1/1000000秒)の精度を持つカウンタの現在値を得る(本家互換)関数もあります。
u64 GetNowHiPerformanceCount ( void );





これらの関数を使って「カレンダー&時計」のアプリが作れそうですね



[edit]

CM: 3
TB: 0

page top

2012/01/03更新

DXライブラリPortable v0.5.7 の色コードが、あまりにも貧弱すぎなので勝手に作成w

ここでは、プログラムで使用できる PSP向けの色コードを紹介することにします
尚、この表はどんどん更新します
ダウンロードリンクをご利用下さい

ライセンスはBSDライセンスです。自由にお使いください。

転載される方は、ちゃんと「転載です」って書いてくださいね

色コード表☆バージョン1.21


HTMLによる色付きの表とDXライブラリPortable v0.5.7用並びに OldSchoolLibrary v1.x.x用のヘッダファイル
使い方も書いてあります


/***************************************************************************
* 32ビット色コード for PSP DXライブラリPortable v0.5.7 *
* 32ビット色コード for PSP Old School Library v1.x.x *
***************************************************************************/

// 基本の20色
#define XVI_COLOR_BLACK 0xFF000000 // 黒色   ■■■■■■■■
#define XVI_COLOR_BLUE 0xFFFF0000 // 青色   ■■■■■■■■
#define XVI_COLOR_RED 0xFF0000FF // 赤色   ■■■■■■■■
#define XVI_COLOR_GREEN 0xFF00FF00 // 緑色   ■■■■■■■■
#define XVI_COLOR_DARKBLUE 0xFF800000 // 紺色   ■■■■■■■■
#define XVI_COLOR_MARINBLUE 0xFFFA0000 // 水色   ■■■■■■■■
#define XVI_COLOR_BROWN 0xFF404080 // 茶色   ■■■■■■■■
#define XVI_COLOR_PINK 0xFFFF80FF // 桃色   ■■■■■■■■
#define XVI_COLOR_DARKGREEN 0xFF008000 // 深緑色  ■■■■■■■■
#define XVI_COLOR_YELLOGREEN 0xFF00FF80 // 黄緑色  ■■■■■■■■
#define XVI_COLOR_PURPLE 0xFFFF0080 // 紫色   ■■■■■■■■
#define XVI_COLOR_ORANGE 0xFF4080FF // 橙色   ■■■■■■■■
#define XVI_COLOR_LEMON 0xFF80FFFF // レモン色 ■■■■■■■■
#define XVI_COLOR_YELLOW 0xFF00FFFF // 黄色   ■■■■■■■■
#define XVI_COLOR_SKYBLUE 0xFFFFFF00 // 空色   ■■■■■■■■
#define XVI_COLOR_PEARLORANGE 0xFF75BAFF // 肌色   ■■■■■■■■
#define XVI_COLOR_GRAY 0xFF808080 // 灰色   ■■■■■■■■
#define XVI_COLOR_SILVER 0xFFC0C0C0 // 銀色   ■■■■■■■■
#define XVI_COLOR_GOLD 0xFF20C0E6 // 金色   ■■■■■■■■
#define XVI_COLOR_WHITE 0xFFFFFFFF // 白色   □□□□□□□□

// ホームページデザインでよく利用されている色(アルファベット順)
この下は、HTML用の色コードを全部PSP用に移植した、という暇人ぷりです

ありか
PSP xvi のろだにあげてあるので欲しい人は取りに行ってください

[edit]

CM: 0
TB: 0

page top

2011年6月13日更新

どうやら、現在の6.20HEN(TN-B)ではイントラフォントで利用しているAPIの解析が不十分らしくて、S-JISでの日本語文字描画が出来ません
↑↑ なんだか、システムソフトウェア6.xx以降では S-JIS文字を廃止してUNICODE文字のみを使用するように変更になった可能性がありますよ?つまり、UTF-8文字コード・オンリー
6_20HEN_TN-B.jpg

UTF-8 での日本語文字の描画は出来るので、DXライブラリPortable v0.5.7 でイントラフォントによる文字描画を行ないたい場合、DXライブラリPortable v0.5.7 を少々改造する必要があります


まずは、DXライブラリPortable v0.5.7 のソースコードのダウンロードから
↓↓ココ(一部、ファイル名が文字化けしますが)
http://sourceforge.jp/projects/dxlibp/svn/view/dxlibp/trunk.tar.gz?root=dxlibp&view=tar

改造箇所
1.
/font/ フォルダの font.c の 18行目

>  dxpFontArray[0].pif = intraFontLoad(DXP_FONTNAME_DEFAULT,INTRAFONT_STRING_SJIS);

"INTRAFONT_STRING_SJIS" を "INTRAFONT_STRING_UTF8" に書き換えてビルドして、出来る dxlibp.adxlibp_UTF8.a にリネームして PSPSDK の pspsdk/psp/sdk/DXP_v0.5.7/lib/ の中へ入れる

2.
Makefile の書き換え

LIBDIR = $(PSPSDK)/DXP_v0.5.7/lib
LDFLAGS =
LIBS = $(PSPSDK)/DXP_v0.5.7/lib/dxlibp_UTF8.a
LIBS += -lpspgu -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec\
-lpsputility -lpspvalloc -lpsppower

3.
ソースコードの文字コードの変更
DXLib Portable v0.5.7 UTF-8版を利用するプログラムソースコードは、シフトJISでは無くてUTF-8コードでソースコードを上書き保存してください
UTF8保存


4.
以上の過程を実行してソースコードを再ビルドすると、イントラフォントを利用した文字描画が、システムソフトウェア6.xx系の 6.20HEN(TN-B) や Half-Byte Loader からでも通常通りに利用できます

5.注意事項
全角文字表示ライブラリを使用した文字の描画を行なうプログラムコードは シフトJISコードでないと文字化けしますので、UTF-8のソースコードとは別のファイルとして分割する必要があります


この記事で紹介している改造方法で製作した、DXライブラリPortable v0.5.7 UTF-8版 を配布しております
こっちをクリックで該当記事へ飛びます
 → PSPプログラミング DXLib Portable v0.5.7 UTF-8版 代理リリース!


ちとくのホームページ様にて、システムソフトウェア6.xx以降のPSPでも Shift_JIS コードでイントラフォントを利用可能にする方法が公開されています
>[資料]6.XX上のintraFont - PSPプログラミング
http://chitoku.symphonic-net.com/PSPPrograming/d05-intrafontsjis.html

[edit]

CM: 10
TB: 0

page top

2011年05月13日 更新

DXライブラリPortable v0.5.7を使ってプログラムを書くときに使える雛形です.
これに肉付けをしてゆくと何かのプログラムになります.

あとは、「イラスト鑑賞アプリ」とか「千早が765衣装で吹っ切れた!?PSP」とかのソースコードを見て勉強していただければ何か作れるはずなのでがんばって下さい.

この雛形ソースコードでは無音の実行ファイルが作れます.
システムソフトウェア6.xx以降のPSPでは、扱える文字コードがUNICODEのみ みたいなので、DXライブラリPortable v0.5.7 UTF-8版を使用して文字描画をする事を推奨します


DXLib Portable v0.5.7 での雛形(ダウンロード)
DXLibP_HINAGATA02_zip.txt
拡張子を ZIP で保存&解凍して下さい.

前回からの変更点

「もじゅ~る・いんふぉ」をこの様に書くと うまくいったw↓↓
/*****************************************************************************
* もじゅ~る・いんふぉ / メインコードはユーザモード
*****************************************************************************/
PSP_MODULE_INFO("HINAGATA_DXP_02", PSP_MODULE_USER, 1, 0);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
PSP_HEAP_SIZE_KB(16*1024); // 新規追加
PSP_MAIN_THREAD_STACK_SIZE_KB(512); // 新規追加



PSPSDKに署名機能を追加するには、下記ページを参考にし下さい
>> 署名済みPSP自作ソフトの作り方 @プログラミングで
>> http://nekoyama2gillien.blog36.fc2.com/blog-entry-417.html


実際のソースコードは、続きに書いてあります


-- 続きを読む --

[edit]

CM: 10
TB: 0

page top

2011年5月18日更新

DXライブラリPortable の 開発元、憂煉さんにUTF-8版のリリースをお願いしたところ、忙しいので代理でリリースしてくださいと言われました

そんな訳で、猫山がソースコードを書き換えてビルドした DXライブラリPortable v0.5.7 UTF-8版 を配布開始します.
PSPSDKのバージョンは 最新版の 0.11.1 でビルドしてます.
猫山猫宗の名前は形式上書いていますが本家は憂煉さんですよ.



Q.これは何?
A.PSPのシステムソフトウェア6.xx以降では、文字コードがUnicodeのみ対応になったらしく、今まで使用できていた、シフトJIS日本語文字コードが利用できなくなりました。そこでDXライブラリPortableでのイントラフォント文字描画をUTF-8コードで文字描画するように改変したものが、このUTF-8版という事です


DXライブラリPortable v0.5.7 UTF-8版

ダウンロードしに行く
ソースコードも付属してます.

使い方
今まではシフトJIS文字コードで保存していたソースコードですが、これからは UTF-8文字コードで保存してからコンパイル&ビルドして下さい




パソコンへの導入方法はこちらを参考に
PSPプログラミング PSPSDKにライブラリを追加しよう(5)DXLibP v0.5.7 UTF8版

[edit]

CM: 6
TB: 0

page top

今まで正式には書いてなかったのです、御免なさい

DXライブラリPortableを改造しただけですが
PSPシステムソフトウェア6.XX以降にも対応した自作ソフトを作りたい人は、これに乗り換えてください
ついでに署名化にも対応させちゃいます!


これは、「DXライブラリ」というWindows版ライブラリのPSP版です。
移植作者さんは 憂煉(ゆうれん)さんです。猫山が改造しました。

では、ダウンロードから。

http://loda.jp/nekomune_/?id=91.zip
dxlibp_v0.5.7_UTF8.zip

まだDXライブラリPortable v0.5.7 を使っていなかった方はこちらの手順を参考にしてください
----------- ココカラ ---------------------------------------------------------------
DXライブラリPortable
↑↑ クリックして入室
ページの左側に、「DX Library Portable」という項目があります。
そこをクリックします。

現在の最新版です。 バグ取りしてある安心版。  ヴァージョン 0.5.7 。
まだ未定ですが、憂煉氏が C++言語版のDXライブラリPortable を作りたいと意見しておられました。 うほっ、3D強化大作戦!!

ダウンロードしましょう。
【 必要なファイル 】
・dxlibp_help_v0.5.1.zip ← これがヘルプファイルです(下の方にあります)

【 新アプリの導入 】
制御文字リペア 【はるるん v0.3】
日本語を正しく修正してくれるアプリです。使い方は、ReadMe.嫁.txt を読んで下さい。
好きなフォルダにインストール出来ます。レジストリは未使用。
ソース中に「だめ文字」が存在する場合に使います。
だめ文字についての Wikipedia 資料
----------- ココマデ ---------------------------------------------------------------

【 UTF8版インストール方法 】
1. どこでも良いので、仮フォルダ内にて、dxlibp_v0.5.7_UTF8.zip を解凍します
2. PSPSDKのインストール先の、SDKフォルダを開きます(標準PATHは、C:\pspsdk\psp\sdk\)
3. そこに、'DXP_v0.5.7'というフォルダを新規作成します。
4. そのDXP_v0.5.7フォルダの直下に、'include'フォルダと'lib'フォルダと'HELP'フォルダを新規作成します
5. 標準PATHで C:\pspsdk\psp\sdk\DXP_v0.5.7\include\ に 1.の dxlibp.h を入れます
6. 標準PATHで C:\pspsdk\psp\sdk\DXP_v0.5.7\lib\ に 1.の dxlibp_UTF8.a を入れます
7. 標準PATHで C:\pspsdk\psp\sdk\DXP_v0.5.7\HELP\ に dxlibp_help_v0.5.1.zip を解凍して入れます
8. 7.の中にある、index.html ファイルのショートカットを作り、わかりやすい名前にリネームして(DXライブラリPortableヘルプ とか)、デスクトップへ貼り付けます
9. 完了

おまけ
【 インストール方法 】の 5. の dxlibp.h のショートカットを作り、わかりやすい名前にリネームして(DXライブラリPortableヘッダ とか)、デスクトップへ貼り付けておいても良いかも知れません。

【 ヘルプファイルの使い方 】
DXライブラリPortable の関数のマニュアルとして参照します。
ショートカットを作ってデスクトップに配置しておくと、参照しやすいです(上の記事【 インストール方法 】を参照)
ブラウザで見る形式のマニュアルなので、「IEが重いよ~」の方は、軽いブラウザをインストールして、そのブラウザで閲覧して下さい。お勧めのブラウザは Firefox とか Google Crome です。
なお、そのブラウザに お気に入りも 複写(同期)したい場合は、無料アプリの BookSync を使用してください。

【 振り返る 】
ここで、DXライブラリPortableさんに戻って、ページ内容全部を軽く閲覧しておきましょう。
色々な発見があるかと思いますよ。特に掲示板は重要です。

【 ライブラリの使い方 】
ライブラリなので、コンパイル時に使用します。

MAKEFILEの書き方(DXライブラリPortable v0.5.7 UTF8コード版)
リンクしているライブラリは、v0.5.7 とほぼ同じです。
雛形です。コピペ推奨。赤い文字は必須。青い文字は必要に応じて書き換えてください。
TARGET = NICEGAME
OBJS = main.o graphic.o sound.o input.o sub1.o sub2.o …………

PSPSDK=$(shell psp-config --pspsdk-path)
INCS = $(PSPSDK)/include $(PSPSDK)/DXP_v0.5.7/include
INCDIR = $(INCS)

CFLAGS = -Wall -G0 -O3 -fomit-frame-pointer -mgp32 -mlong32

CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

LIBDIR = $(PSPSDK)/DXP_v0.5.7/lib
LDFLAGS =
LIBS = $(PSPSDK)/DXP_v0.5.7/lib/dxlibp_UTF8.a
LIBS += -lpspgu -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec\
-lpsputility -lpspvalloc -lpsppower

# 署名ツールで署名する為に、PRX型の EBOOT.PBP で書き出させます
BUILD_PRX = 1

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = 開発ソフトウェア名
PSP_EBOOT_ICON = NULL or アイコンのPATH(ICON0.png)144x80
PSP_EBOOT_ICON1 = NULL or 動画アイコンのPATH(ICON1.PMF)144x80
PSP_EBOOT_UNKPNG= NULL or ゲーム説明画像のPATH(ICON1.PNG)310x180
PSP_EBOOT_PIC1 = NULL or アイコンの背景画像PATH(PIC1.png)480x272
PSP_EBOOT_SND0 = NULL or 音楽ファイルのPATH(SND0.AT3)500KB以内

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

# 以下、任意で(開発しているソースに依存)
main.o : main.c main.h mydef.h graphic.h sound.h input.h
graphic.o : graphic.c graphic.h mydef.h main.h
sound.o : sound.c sound.h mydef.h main.h
input.o : input.c input.h mydef.h main.h



EBOOT.PBPに日本語文字で名前を付けたい場合は…
開発したPSPソフトウェアに日本語文字で名前を付けたい場合は、NAGAOKA STATIONさんで配布中のWindows用アプリ PSP用ソフトのアイコンを抽出・変更するソフト V0.04b を使用して下さい。

【 DXPを利用しての開発で気を付ける事など 】
その1.
DXライブラリPortable は フリーウェアですが、著作権は 作者の憂煉氏にあります。
DXライブラリPortable を利用、もしくは DXライブラリPortable のソースコードを利用、の場合は、製作した作品の付属ドキュメントなどに、「DXライブラリPortable を使用して開発しました」宣言を書き添えるように心がけてください。また、mediumgauge氏の全角文字表示ライブラリも同梱されているので「mediumgauge氏の全角文字表示ライブラリも使用しています」宣言も書き添えるように。マナーです。
その2.
>DXライブラリPortable の バージョン 0.5.xの場合、ソースの宣言部分で
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);
>ではなくて
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
>にしないといけないです.

>VFPUを使う人へ
>乱数生成関数、算術支援関数、DrawModiGraph、DrawRotaGraph及びその派生関数では内部で一時的にVFPUレジスタの0~2ブロックを使っています。
>それらの関数が呼ばれた時点で該当するVFPUレジスタの内容が破壊されますので、注意してください。
>また、今後のアップデートでVFPUを使う関数が増えたり、使うレジスタを増やす可能性があります。

と、README.TXT に書いてありました。





これに伴い、ソースコードの保存方法を変更してください
今まではシフトJIS文字コードで保存していたソースコードですが、これからは UTF-8文字コードで保存してからコンパイル&ビルドして下さい



こちらの記事も必ず読んでくださいね
> PSPプログラミング UTF-8コードに潜む罠
> http://nekoyama2gillien.blog36.fc2.com/blog-entry-672.html


> 公式PSPにも対応する、署名済みPSP自作ソフトの作り方 @プログラミングで
> http://nekoyama2gillien.blog36.fc2.com/blog-entry-417.html



【 関連記事 】
PSPプログラミング EBOOT.PBP 生成用 Makefile 記述方法
PSPプログラミング プラグイン生成用 Makefile 記述方法
PSPプログラミング テキストエディター【 Apsaly 】のススメ
PSPプログラミング インクルードやリンクについての講釈
PSPプログラミング PSPSDK に同梱されているライブラリの一覧とリンク記述
PSPプログラミング コンパイルオプションについて調べてみました。
PSPプログラミング 制御文字リペア 【はるるん v0.3】リリース
PSPプログラミング PSPSDKにライブラリを追加しよう(1) CFW4.01m33
PSPプログラミング PSPSDKにライブラリを追加しよう(3) DXLibP v0.4.14
PSPプログラミング PSPSDKにライブラリを追加しよう(4) DXLibP v0.5.7

[edit]

CM: 0
TB: 0

page top

DXライブラリPortable v0.5.7 UTF8コード版 を使ってプログラムを書くときに使える雛形です.
これに肉付けをしてゆくと何かのプログラムになります.

あとは、「千早が765衣装で吹っ切れた!?PSP」のソースコードを見て勉強していただければ何か作れるはずなのでがんばって下さい.

この雛形ソースコードでは無音の実行ファイルが作れます.
システムソフトウェア6.xx以降のPSPでは 扱える文字コードがUNICODEのみで シフトJISコードは廃止 なので、DXライブラリPortable v0.5.7 UTF-8版を使用して文字描画をする事を推奨します


まず、閲覧してください
DXLib Portable v0.5.7 UTF8コード版 での雛形(閲覧用)
http://blog-imgs-17.fc2.com/n/e/k/nekoyama2gillien/DXPLib_UTF8_hinagata.html

ダウンロードはこれです
DXLib Portable v0.5.7 UTF8コード版 での雛形(ダウンロード)
http://loda.jp/nekomune_/?id=93.zip
DXLibP_UTF8_ひながたsrc.zip


少しずつ覚えましょうね(#^.^#)

[edit]

CM: 0
TB: 0

page top

はいはい、ショートプログラムを作りました
以前の「UTAUスライドショウ」に、音声ファイルがない場合のメッセージ表示機能を追加しました

画像のスライドショウ+イントラフォント文字列表示+音楽再生
の3機能だけに重点を置いた簡単なモノです

UTAUスライドショウ


音楽を再生しつつ、ねんぷちUTAU3人衆(ねんぷちデフォ子さん、ねんぷち重音テトさん、ねんぷち桃音モモさん)+ねんぷちミクさんの合計4人が切り替え表示されます.
皆さんのゲーム開発の雛形に使えるようにしております.
簡易ファイル読み込みチェッカー付き.

プログラムは長めですが、特に難しい事はしていませんので解析してみてください.
こういうのは ソースコードを少しずつ いじりながら組み方を憶えてゆけばいいです.

このプログラムを作るにあたり、エナメル・ハッチP様が制作された、MikuMikuDance用のねんどろいど風PMDモデル達を使わせて頂き、MikuMikuDanceにてポーズを付けて撮影した画像を配布物に含めています。
エナメル・ハッチ様のブログ ・・・ 現在、新装開店準備で閉鎖中です
-enamel toy box-

またもや「アルプス一万尺」を使っていますが、著作権が消滅している楽曲だから配布物に含んでも良いのです.
音楽をやっている方に依頼して演奏してもらった楽曲なのです.

この画像ファイルや音声ファイルについての著作権については配布物の中に書いてあります


ありか
ソースコード閲覧(ソースを見て、覚えて作る人とか)
http://blog-imgs-17.fc2.com/n/e/k/nekoyama2gillien/DXP_UTF8__UTAU_Slideshow_NEO.html

UTAUスライドショウNEO・ソースDXP.zip
http://loda.jp/nekomune_/?id=96

UTAUスライドショウ・リソース.lzh(まだDLしてない方のみ)
http://loda.jp/nekomune_/?id=94


音声ファイルが無い場合、あるメッセージが追加表示されます
どう違うのか実験してみてくださいね


[edit]

CM: 0
TB: 0

page top


h o m e |


 

2017-05