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

年賀PSP壁紙 

2010/01/01
Fri. 07:00

2010NENGA.png

この壁紙を使った動画を作ったんですよ。
せっかくなので、PSP壁紙として無料ダウンロードいっときます。

Д Ндррч Йёш Чёдя

本年もよろしくお願いいたしまっす


ノシ
関連記事
スポンサーサイト

[edit]

CM: 2
TB: 0

page top

AniMayhem v2

少年ジャンプのキャラ総勢28人で繰り広げられる、対戦格闘ゲーム
ANM_snap4.png


-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

うひょう!ボンバーマン(次の記事で紹介)かと思ったら、戦車でボンバーマンでしたwww

PSP-2000以降でも遊べます!

BOMB1_4.jpg


某ボンバーマンと似たようなシステムです。
ブロックを破壊すると、アイテム出現

アイテムは、4種類です。
・火力UP
・爆弾数UP
・移動速度UP
・ロケット弾 1基ついか

-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

先ほど、戦車ボンバーマンを紹介したので、この記事では PSP Homebrew のボンバーマンを紹介なの~

不覚にも、PSP-1000専用ゲーム
PSP-2000の人は、CFW5.00 M33-6 + Leda v0.2 で遊んで下さい

BOMBER_TITLE.jpg

本家ハドソンのボンバーマンとほぼ同じです。
私はファミコンからのお付き合いです。

X68000 でもプレイしたなぁ、とか。

爆弾リモコンは反則なので無いです


-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

PSP dev kit


UMDドライブが付いてるし、どうやらコレが正式な開発マシンみたいです。

↓↓ これ(写真)
http://www.eurasia.nu/wiki/index.php?pagename=PspDevKitPic


なんか、普通のパソコンと変わらない外見だなwww


関連記事

[edit]

CM: 0
TB: 0

page top

新年あけまして おめでとうございます

新年です。
今年こそ、「みくねぎっと。」のソース公開&解説をしたいと思ってます。
今年の初仕事は、ライブラリの導入です。


ライブラリとは、オブジェクトファイル等をまとめたファイル群です。
ランタイムライブラリとは違いますので、ご注意ください。
SDKとは、ソフトウェア・デベロップメント・キットの略で、ソフトウェア開発キットの事。

オブジェクトファイル - Wikipedia
SDK(ソフトウェア開発キット) -Wikipedia
ライブラリ - Wikipedia
ランタイムライブラリ - Wikipedia

標準の PSPSDKは mp3ファイルをデコードして再生する といった命令群が無いので、
フリーで使えるmp3再生用のソースやオブジェクトを使います。
それがライブラリを使うきっかけです。

まず、第1回目のライブラリの導入編

ダークアレックス氏の開発したライブラリを導入してみます。
ダウンロード
http://dl.qj.net/psp/hacks-exploits/psp-cfw-401-m33.html

URL をむき出しにしてみました。これは、カスタムファームウェア 4.01 M33 です。
この中に、ライブラリが入っているのですが、何人の方が覚えてるんでしょうか??

再起動時の HEN モジュールローダー と、PSPパッカー(梱包の意)が同梱してます。


導入方法
1. どこかにフォルダを作って、その中で 401M33.rar ファイルを解凍します。
2. マイコンピュータを開いて、C:\pspsdk\psp\sdk\ を開いてください(PSPSDKの標準PATH)
3. そこに DAX というフォルダを作ります。
4. 401M33.rar を解凍した中身の SDKフォルダを開いて、以下のファイル全部をコピーして、その DAXフォルダへ貼り付けます。
5. 完了

Q. どうやって使うのか?
A. ライブラリなので、コンパイル時に使います。

以下に MAKEFILE の書き方を記述(これは雛形です)
↓↓赤い文字部分は、記述必須。青い文字部分は自由に書き換えてください。

TARGET =
OBJS =

PSPSDK=$(shell psp-config --pspsdk-path)
INCS = $(PSPSDK)/include $(PSPSDK)/DAX/include
INCDIR = $(INCS)

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

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

LIBDIR = $(PSPSDK)/DAX/lib
LDFLAGS =
LIBS = -lpspinit -lpspkdebug -lpspkubridge -lpsploadexec_kernel\
-lpspmodulemgr_kernel -lpspmodulemgr_user -lpspsysmem_kernel\
-lpspsysmem_user -lpspsystemctrl_kernel -lpspsystemctrl_user\
-lpspumd_kernel -lpspusbdevice -lpspusbdevice_driver\
-lpspvshctrl


EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = アプリ名
PSP_EBOOT_ICON = アイコンのPATH
PSP_EBOOT_ICON1 = NULL
PSP_EBOOT_UNKPNG= NULL
PSP_EBOOT_PIC1 = NULL
PSP_EBOOT_SND0 = NULL

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

# ここから下は、任意です。
main.o : main.c main.h
graphic.o : graphic.c graphic.h
sound.o : sound.c sound.h
input.o : input.c input.h
font.o : font.c


いつか使う時が来るまで封印ですな。

次回は、いよいよDXライブラリPortable の導入編ですよ~~♪

【 関連記事 】
MAKEFILEの書き方 EBOOT.PBP 生成用
MAKEFILEの書き方 プラグイン生成用
PSPSDK 同梱のライブラリ一覧

関連記事

[edit]

CM: 0
TB: 0

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 を使ってプログラミングをしよう その1

まずは、mp3ファイルを再生するプログラムを作ることにします.
これをマスターできたら、mp3プレイヤー・アプリを作れるようになるかも知れませんね.

【 お約束事項 】
 DXライブラリPortable は MediaEngine側のCPUでmp3音声をデコードするコードを生成するのですc
 よって、スレッドの属性を ユーザーモードで書いてください.
 カスタムファームウェアのPSPの方は、リカバリーモードで Homebrew Game Folder を 1.50 Kernel では無い方(5.XX Kernel など)に設定してください.
 また、パソコンで WAVE から mp3 に変換する際は 「Lame Encoder」で行なって下さい.
 WAVE は、パソコンのシステム・サウンドファイルでも良いのですが サンプリング周波数が低かったり 再生時間が短かったりするので お手持ちの音楽CDアルバルを用意して下さい.

 mp3ファイルの作り方はこちらを参照のこと(Google検索)

 さて、mp3変換している間に EBOOT.PBP を作っちゃいましょう!
 使うライブラリは、最新版の DXライブラリPortable v0.5.7 です.
 >> DXライブラリPortable v0.5.7を導入しよう


ちゅうい!
 正常ビルドを確認したコンパイラは Minimalist PSPSDK v0.8.10 です

では、コピペ推奨で…… 今回は、各自コンパイルに挑戦してくださいっ

↓↓ファイル名は main.c でお願いします.

#include <dxlibp.h>
#include <pspaudiocodec.h>
#include <pspaudio.h>
#include <psputility.h>
#include <malloc.h>
#include <string.h>
#include <stdio.h>
#include <pspkernel.h>
#include <pspdisplay.h>
#include <pspuser.h>
#include <pspgu.h>
#include <pspctrl.h>


PSP_MODULE_INFO("PLaySound", 0, 0, 0);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

int main()
{
int handle_01; // サウンドのハンドル

if(DxLib_Init() == -1) { // もしライブラリの初期化に失敗したら
goto EXIT; // ラベル:EXIT へ飛びます
}

//=================================================================================
// まずは 全てのサウンドハンドルを削除します
InitSoundMem();

// ストリーミング再生モードに設定します(チョイ読みしながら再生)
SetCreateSoundDataType(DX_SOUNDDATATYPE_FILE);

// 再生させる音声ファイルを指定します(mp3ファイルを用意してね)
if((handle_01 = LoadSoundMem("ms0:/MUSIC/a.mp3")) == -1) { // もしエラーが発生したら
goto EXIT; // ラベル:EXIT へ飛びます
}

// パンを中央に設定します
SetPanSoundMem( 0, handle_01);

// 再生しよう! 音声が鳴れば、大成功 v
PlaySoundMem( handle_01, DX_PLAYTYPE_NORMAL, TRUE);

// 再生が終わったら、サウンドハンドルの再生を停止します
StopSoundMem( handle_01 );

//---------------------------------------------------------------------------------

// ◆ 今度は、その音声ファイルを、パンを左にして再生してみます ◆

// パンを左側に設定します(範囲は -10000 ~ +10000)
SetPanSoundMem( -9000, handle_01);

// 再生しよう! 左から音声が鳴れば、大成功 v
PlaySoundMem( handle_01, DX_PLAYTYPE_NORMAL, TRUE);

// 再生が終わったら、サウンドハンドルの再生を停止します
StopSoundMem( handle_01 );

//---------------------------------------------------------------------------------

// ◆ 今度は、その音声ファイルを、パンを右にして再生してみます ◆

// パンを右側に設定します(範囲は -10000 ~ +10000)
SetPanSoundMem( 9000, handle_01);

// 再生しよう! 右から音声が鳴れば、大成功 v
PlaySoundMem( handle_01, DX_PLAYTYPE_NORMAL, TRUE);

// 再生が終わったら、サウンドハンドルの再生を停止します
StopSoundMem( handle_01 );

//---------------------------------------------------------------------------------

// 終わったので、サウンドハンドルを削除します
DeleteSoundMem( handle_01 );

//=================================================================================

// エラーが発生したら、すぐココに飛んできます
EXIT:;

DxLib_End(); // 終了します
return 0;
}



Makefile も コピペ推奨

TARGET = PLaySound
OBJS = main.o

PSPSDK=$(shell psp-config --pspsdk-path)
INCS = $(PSPSDK)/include $(PSPSDK)/DXP/include
INCDIR = $(INCS)

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

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

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

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = PLaySound
PSP_EBOOT_ICON = NULL
PSP_EBOOT_ICON1 = NULL
PSP_EBOOT_UNKPNG= NULL
PSP_EBOOT_PIC1 = NULL
PSP_EBOOT_SND0 = NULL

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

main.o : main.c


おまけの !_ビルド.bat

PATH=C:\pspsdk\bin\;C:\pspsdk\psp\bin\
DEL *.ELF
DEL *.SFO
DEL *.PBP
make
pause



【 このソースについて 】
ソースについてですが、メイン関数にこんなに長く書いてしまうのは本来はNGです.
全体の流れが分かるように、通して書いたまでです.
このソースが 理解できたらサブルーチンを作って分割してみるのを推奨します.

【 著作権とか 】
このプログラムコードは、DXライブラリPortable を使う想定で書いてあります.
もし、このソースをコンパイルして出来た実行モジュールを配布などするなら DXライブラリPortable の 著作権 表記指示に従ってくださるよう、お願いします.
私は、このソースに 著作権を設定しません.改造を推奨します、是非っ

【 ヒント 】
mp3ファイルの名前を日本語にした場合、コンパイルで 下記のような warning が発生することがあります.
main.c:35:34: warning: unknown escape sequence: '\217'
main.c:35:34: warning: unknown escape sequence: '\216'
↑↑ 原因は、その日本語文字列に「だめ文字」が含まれているからなので、【はるるん v0.3】でソースを修正して下さい.

実行結果が どうなるかは楽しみにとっておきますので、実行して確認して下さいませ.

解説は次回やります.


PSPプログラミング EBOOT.PBP 生成用 Makefile 記述方法
PSPプログラミング 正しい main( ) 関数の書き方を ご紹介
PSPプログラミング PSP の 1.50カーネルとか、3.xxカーネルとか についての講釈
PSPプログラミング 「CFW導入済み 全PSP」対応の Homebrew 作成方法
PSPプログラミング Windowsアプリ 制御文字リペア 【はるるん v0.3】 リリース!
PSPプログラミング PSPSDKにライブラリを追加しよう(4) DXLibP v0.5.7
PSPプログラミング DXライブラリPortable でプログラムの「核」を書く
PSPプログラミング DXライブラリPortable サウンド関数の解説(1)
PSPプログラミング DXライブラリPortable サウンド関数の解説(2)
PSPプログラミング DXライブラリPortable サウンド関数の解説(3)


関連記事

[edit]

CM: 0
TB: 0

page top

DXライブラリPortable は、PSPSDKに追加するライブラリなのでプログラミング言語の仕様が変わるとかいう問題はありません.

基本のC++言語を勉強していれば、プログラムを作ることは出来ます.
ただ、「DXライブラリPortable」を使用する際には決められた構文を書いてやる必要があるだけなので、ソレを覚えれば恐いモノなしです.


では、「DXライブラリPortable」を使ってのプログラムソースの書き方を ご紹介
↓↓ 赤い文字部分は変更しないで下さい。あとの文字部分は自由に書き換え可能です.

#include <dxlibp.h>

PSP_MODULE_INFO("PSP_HOMEBREW", 0, 0, 0);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

int main(int argc, char *argv[])
{
if(DxLib_Init() == -1) {
// もしライブラリの初期化に失敗したら
goto EXIT; // ラベル:EXIT へ飛びます
}

NICEGAME( ); // 実プログラム本体

// エラーが発生したら、すぐココに飛んできます
EXIT:;
DxLib_End();
// 終了します
return 0;
}



このように、DxLib_Init() と DxLib_End() で はさむだけです.始めと終わりの書き方だけが指定されているのです.
あとは、ライブラリのマニュアルからコピペしてソースを作って、パラメータ部分を正しく入力してやれば、エラーの出ないプログラムソースになるかと思います.

マニュアル(ヘルプ)の参照方法は、DXライブラリPortable の導入記事で書いたように、index.html のショートカットを作ってデスクトップに貼ってあるかと存じます.
index.html のショートカットを右クリックして軽いブラウザで開いて まず 上の「モジュール」タブをクリックして「使用必須関数」をクリックしてみると、DXライブラリの必須関数が書かれていますので、コピペしてソースを作ります.


この記事のソースをコピペして雛形として保存しておいても良いかも知れません.

今回は、核の部分を書く、という記事だけで終わります(参照用).
次回、サウンド編について書きます.

【 関連記事 】
PSPプログラミング PSPSDKにライブラリを追加しよう(2) DXLibP v0.5.5
PSPプログラミング DXライブラリPortable を使ってみよう(1) mp3再生


関連記事

[edit]

CM: 0
TB: 0

page top

2つ前の記事で、DXライブラリPortable v0.5.5 を使った mp3再生のプログラムソースを公開したので、今回は 解説その(2)です.解説その(1)は、「PSPプログラミング DXライブラリPortable でプログラムの「核」を書く」編です。

前回の要領で、マニュアル(ヘルプ)を開きます.
すると、[メインページ]のタブが開いたところに こう書いてあります.

>説明に(本家互換)とある関数はDXライブラリと挙動がほぼ同じですので、本家の関数リファレンスも参考にしてください.

本家は、Windows版「DXライブラリ」ですよ~
>> DXライブラリ 関数リファレンスページ
   ↑↑ このページに、本家Windows版のDXライブラリ関数の一覧がありますので、ブラウザのお気に入りに登録してください.
あと、ネット環境が必須ですよん(このブログを見てる時点でネット接続してるような?)

まず、PSP版の DXライブラリPortable のサウンド関数を見ます.v0.5.5 に どんなのがあるか調べましょう.

ヘルプから [モジュール]タブ → [サウンド関連]タブ の順に クリックして下さい.
11個の関数がありますね.

まず何を書くか?……… はい、サウンドの初期化関数です.
>int InitSoundMem (void)
  ↑ どうやら、コレらしいと判明
       →つまり、出だしは InitSoundMem (); と記述

次は、初期設定関数を記述します.
>> サウンドハンドルにパンを設定する int SetPanSoundMem (int pan, int handle)
>> サウンドハンドルの音量を変更する int ChangeVolumeSoundMem (int volume, int handle)
>> ループ位置を設定する        int SetLoopPosSoundMem (int looppos_s, int handle)
>> ループ位置を設定する        int SetLoopSamplePosSoundMem (int looppos, int handle)
>> LoadSoundMemの挙動を変更します int SetCreateSoundDataType (int type)
実際は、初期化したときに初期値が代入されるので、必要時以外はいじらなくて良いのです。

「パン」は、音声が出力される位置のこと.
「音量」は、その時のPSPにより異なりますが、[+][-]キーに触らないで音量を設定できるらしいのですが
      安全面を考えて「Middle」くらいの 127 とかで良いかも(後で確認する事にします)
「ループ」は、「繰り返し再生」のこと。初期値は「先頭の位置」の「0」です.
「LoadSoundMemの挙動」は、mp3プレイヤー・アプリはストリーミング再生をする方式なので「DX_SOUNDDATATYPE_FILE」を指定.

ここで、各関数の引数(ひきすう/パラメータ)を見ると「handle」という変数名があります.
「handle」==「ハンドル」です。DXライブラリPortable では、音声を「ハンドル」で管理します.
音声ファイルの指定の時に「ファイル名」を記述し、以降は「ハンドル」で音声を再生したり停止したりループしたりを行ないます.

C言語/C++言語で ファイルを 管理する「fp=fopen("ファイル名","r"); の fp の扱い感覚」で音声が制御できます.
サウンド関連の関数で、「handle」の値が返ってくる関数を調べると……
>> int LoadSoundMem ( const char * filename ) 音楽データを読み込みます(ハンドルを取得)
        ↑ どうやらコレみたいです
関数の名前は自由に書けますので、たまたまこういう名前になっているだけす.
この関数は、ストリーミング再生の時は ファイルの存在チェック と ハンドルの取得 を行なっている様です.
詳しく知りたい方はソースを順に追って調べてください(実際にプログラムを実行しながら追跡するのを、「トレースする」と言います).
プログラミング (コンピュータ) - Wikipedia の記事内でトレースを検索


ループ位置の設定関数が2個(2種類)あり、良く解らないので本家の関数マニュアルで詳しく調べます.
>> DXライブラリ 関数リファレンスページ
ブラウザにて、[CTRL]+[F]で検索窓を開いて「SetLoopSamplePosSoundMem」を放り込むと……

ふむふむ、再開位置を「サンプル数(音声データの先頭位置からのバイト数)」か「ミリ秒単位(1/1000秒単位)」か、好きな方で指定するのだと判明しました.
ここでは、先頭の「0」にしておきます 好きな関数で指定できますね.


ココまでの情報で、mp3ストリーミング再生処理を書いてみると……


    int Sound_handle;  // サウンドのハンドル変数

// まずは 全てのサウンドハンドルを削除します(初期化)
InitSoundMem();

// ストリーミング再生モードに設定します(チョイ読みしながら再生)
SetCreateSoundDataType(DX_SOUNDDATATYPE_FILE);

// 再生させる音声ファイルを指定します(mp3ファイルを用意してね)
if((Sound_handle = LoadSoundMem("ms0:/MUSIC/a.mp3")) == -1) { // もしエラーが発生したら
goto EXIT; // ラベル EXIT: へ飛びます
}

SetPanSoundMem( 0, Sound_handle ); // パンを中央に設定
ChangeVolumeSoundMem( 127, Sound_handle ); // 音量を「中」==「127」に設定
SetLoopSamplePosSoundMem( 0, Sound_handle ); // ループ再生位置を先頭に設定

サウンド再生関数(); // (仮)
サウンド終了処理(); // (仮)
サウンドハンドル解放関数(); // (仮)

// エラーが発生したら、すぐココに飛んできます
EXIT:;



どうですか? 理解できていますか?
私は DXライブラリPortable の開発者では無いので、マニュアルなどを調べながら書いています.
やりたい処理を規則に従って記述しています. まだ解ってない関数は、赤い文字の様に日本語で処理を書いています.
関数名が分からなくても、やりたい事を書けばいいのがテキストエディタの長所です.
関数の名前は、関数名が判明した時に書き直せば良いのです.
もし、理想の関数が無かったら、存在する関数を組み合わせて作るのが基本です.
楽しくPSPプログラミングしましょう.

if文に goto EXIT; を書いたので、飛び先の「ラベル EXIT:」も必ず記述しておきます.
[必須] C++言語での「ラベルの書き方」を学習しておいて下さい.

記事が長くなったので、今回は ここまでです.
質問とか無いですか?


【 関連記事 】
PSPプログラミング PSPSDKにライブラリを追加しよう(2) DXLibP v0.5.5
PSPプログラミング DXライブラリPortable を使ってみよう(1) mp3再生
PSPプログラミング DXライブラリPortable でプログラムの「核」を書く
PSPプログラミング DXライブラリPortable サウンド関数の解説(2)
PSPプログラミング DXライブラリPortable サウンド関数の解説(3)
PSPプログラミング DXライブラリPortable サウンド関数で「ドドド」
PSPプログラミング DXライブラリPortable サウンド「ドドド」解説

関連記事

[edit]

CM: 6
TB: 0

page top

アイドルマスターSP カタログ12号 PSP 

2010/01/23
Sat. 06:31

PSPアイドルマスターSP』の、その後のニュースです。

アイドルマスターSPが安くなります!!
Amazon.co.jp『アイドルマスターSP』
バンダイナムコゲームスは、PSP用ソフト『アイドルマスターSP(エスピー) パーフェクトサン/ワンダリングスター/ミッシングムーン』の PSP the Best版(ゲームソフト)を、今月28日に発売予定です(安くなります)。

バンダイナムコゲームスは、PSP用ソフト『アイドルマスターSP(エスピー) パーフェクトサン/ワンダリングスター/ミッシングムーン』のダウンロードコンテンツ (DLC)第12弾を、2010年1月27日より配信する。


-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

まずは、お知らせから……

・サウンド初期化関数ですが、「InitSoundMem(); は不要です」とのコメントを憂煉氏より頂きました.
 作者さんの意見なので間違いは無いでしょう.

「DX Library Portable ドキュメント」index.html の呼び名を「DXPヘルプ」に統一
・ヘルプやマニュアルといった言い方で、統一されてなかったので、「DXPヘルプ」という呼び方にします.
 ダウンロードファイル名には、help の文字があったのでヘルプと呼称するのだ.


では、本編です.
今回は、mp3ファイルの再生と停止とサウンドハンドルの解放の部分です.

「DXPヘルプ」を良く読むと、こう書いてあります.

LoadSoundMem(); で読み込んだファイルを
PlaySoundMem(); で再生する

mp3ファイルの再生関数は PlaySoundMem(); と判明です.

パラメータには、「演奏が終わるまで待つ」の「DX_PLAYTYPE_NORMAL」を指定する事にします.

< 使用例 >
PlaySoundMem( Sound_Handle, DX_PLAYTYPE_NORMAL, TRUE );

PlaySoundMem() の第1、第2パラメータ値は、「DXPヘルプ」を見れば解りますね.

問題は、第3パラメータです.
「rewindflag 最初から再生させるかどうか」のフラグなので「TRUE」もしくは「FALSE」で指定します.
お解り頂けましたでしょうか?

フラグになっているものは「TRUE」か「FALSE」で良いと思います.


次は、サウンド再生の停止を.

StopSoundMem( Sound_handle );
問題ないですね.


サウンドハンドルの解放(削除)

DeleteSoundMem( Sound_handle );
問題ないですね.



では、ココまでの情報で mp3ファイルの再生が出来るので最小限の構成で書いてみます.


{
int Sound_handle; // サウンドハンドル の 変数

// ストリーミング再生モードに設定します(チョイ読みしながら再生)
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );

// 再生させる音声ファイルを指定します
if((Sound_handle = LoadSoundMem("ms0:/MUSIC/a.mp3")) == -1) { // もしエラーが発生したら
goto EXIT; // ラベル EXIT: へ飛びます
}

// mp3ファイルを再生します
PlaySoundMem( Sound_handle, DX_PLAYTYPE_NORMAL, TRUE );

// 再生を停止します
StopSoundMem( Sound_handle );

EXIT:
// サウンドハンドルを削除します
DeleteSoundMem( Sound_handle );
}


ラベル「EXIT:」の後ろにセミコロンが付いていませんが、省いただけです.
間違いではありませんよ.


あとは、パンや音量やループ位置の設定を付け加えれば良いと思います.


次回はサブルーチン化してみます.


【 関連記事 】

PSPプログラミング PSPSDKにライブラリを追加しよう(2) DXLibP v0.5.5
PSPプログラミング DXライブラリPortable を使ってみよう(1) mp3再生
PSPプログラミング DXライブラリPortable でプログラムの「核」を書く
PSPプログラミング DXライブラリPortable サウンド関数の解説(1)
PSPプログラミング DXライブラリPortable サウンド関数の解説(2)
PSPプログラミング DXライブラリPortable サウンド関数の解説(3)
PSPプログラミング DXライブラリPortable サウンド関数で「ドドド」
PSPプログラミング DXライブラリPortable サウンド「ドドド」解説

関連記事

[edit]

CM: 0
TB: 0

page top

【 突然、この記事へ来た人の為に書いておくこと 】
 下記のソースは、DXライブラリPortable というライブラリを使用する事を前提に書いています.PSP用です.

今回のテーマは、「サブルーチン化」です.

何をサブルーチン化するか、決めます.
まぁ、サウンドの出力部分なのですが、「サウンドハンドル」と「パン」と「音量」をパラメータで渡すと MP3ファイル を再生してくれるのを作ります.

問題ないと思うので、そのサブルーチンだけのソースを書いてみます.


////////////////////////////////////////////////////////////////////////
// MP3ファイルを再生するサブルーチン(簡易チェック付き)
////////////////////////////////////////////////////////////////////////

int PlayMP3(Handle, Pan, Volume)
// 引数の説明とか (変数名の後はセミコロンですよ~)
int Handle; // サウンドハンドル
int Pan; // パン
int Volume; // 音量
{
// 規定範囲外の値ならエラー(-1)とする
if( (Handle == -1) // サウンドハンドル
||(Pan < -10000)||(10000 < Pan) // パン
||(Volume < 0)||(255 < Volume) ) { // 音量
return(-1);
}

// 音量を設定します
ChangeVolumeSoundMem( Volume, Handle );

// パンを設定します
SetPanSoundMem( Pan, Handle );

// mp3ファイルを再生します
PlaySoundMem( Handle, DX_PLAYTYPE_NORMAL, TRUE );

// 再生を停止します
StopSoundMem( Handle );

return 0; // 値を返す関数では、必ず「return」を記述すること
}



この関数ですが、正常終了すると 0 が返り、値を間違えると -1 が返ります(バレバレ).

次回は、これらの関数を組み合わせて、ちょっとしたプログラムを書いてみます.


【 関連記事 】
PSPプログラミング PSPSDKにライブラリを追加しよう(2) DXLibP v0.5.5
PSPプログラミング DXライブラリPortable を使ってみよう(1) mp3再生
PSPプログラミング DXライブラリPortable でプログラムの「核」を書く
PSPプログラミング DXライブラリPortable サウンド関数の解説(1)
PSPプログラミング DXライブラリPortable サウンド関数の解説(2)
PSPプログラミング DXライブラリPortable サウンド関数の解説(3)
PSPプログラミング DXライブラリPortable サウンド関数で「ドドド」
PSPプログラミング DXライブラリPortable サウンド「ドドド」解説

関連記事

[edit]

CM: 0
TB: 0

page top

キミは このタイトルを見た瞬間、「やれやれだぜ」と言う………。

やっぱし、ジョジョ好きなんですわwww
デスクトップでもジョジョネタやりましたが、MP3でもジョジョネタやります(えっへん)

ダウンロード
ちゅうい : PSPを 3.xx以降カーネルにしてから実行してください
(リカバリーメニューで Homebrew Game Folder を 5.XX Kernel に設定)

ソースコードを見たい方は、続きをドウゾ。


【 関連記事 】
PSPプログラミング PSPSDKにライブラリを追加しよう(4) DXLibP v0.5.7
PSPプログラミング DXライブラリPortable を使ってみよう(1) mp3再生
PSPプログラミング DXライブラリPortable でプログラムの「核」を書く
PSPプログラミング DXライブラリPortable サウンド関数の解説(1)
PSPプログラミング DXライブラリPortable サウンド関数の解説(2)
PSPプログラミング DXライブラリPortable サウンド関数の解説(3)
PSPプログラミング DXライブラリPortable サウンド関数で「ドドド」
PSPプログラミング DXライブラリPortable サウンド「ドドド」解説


-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

Windows本 超便利!無料ソフトカタログ ベスト180+α 

2010/01/25
Mon. 15:30

次の記事で書いている本をアマゾンでうろ覚えながら検索して見つけた本

超便利!無料ソフトカタログ ベスト180+α超便利!無料ソフトカタログ ベスト180+α
(2010/01/28)
不明

商品詳細を見る


これは買いだと思うので、近所の本屋さんで予約しよう!!

関連記事

[edit]

CM: 0
TB: 0

page top

Windowsフリーソフト大全集 2010年度版 

2010/01/25
Mon. 15:38

ランチのついでに見つけたのは、この本でした。
間違えてみたり(^^;;;


Windowsフリーソフト大全集 2010年度版 (100%ムックシリーズ)Windowsフリーソフト大全集 2010年度版 (100%ムックシリーズ)
(2009/12/10)
不明

商品詳細を見る


寸法は、B6くらい(「ゲーム●ボ」サイズ)です。
DVD-ROM が 1枚付属です。


関連記事

[edit]

CM: 0
TB: 0

page top

・PSP音声「ドドド」ダウンロードの記事に、全ソースコード追加(「続きを読む」にて読めます)
・ソースを修正(アーカイブファイル名は同じ)
・再アップロードしました


まぁ、詳しくは書きませんよ。

やっている事は、「ストリーミング再生」では無くて「メモリに読み込みしてから再生」モードで、「ドドド」音声を、左から右、右から左、位置を中央にして音量を小から大へ、という作業です。
この辺は、ヘッドフォンで聴かないと解らないかと思いますよ?

勉強熱心な方は理解できたかと思ってます。

ちなみに、この「ドドド」の声は初音ミクなんですよ。

テンポ225、オクターブ3の「ドミミ」で喋らせたのです、ハイ。
ソレをWAVE出力してSoundEnginで加工してLAMEでMP3化。

そうそう、MP3にはID3タグという情報を書き込めるので、興味ある人はSuperTagEditor使ってみ。

iTunes と Windows Media Player ではID3タグの文字コードが違う件
→ 「はてな」での解決策

次回は、DXライブラリPortable で PNG画像の表示をやります。


【 関連記事 】
PSPプログラミング PSPSDKにライブラリを追加しよう(2) DXLibP v0.5.5
PSPプログラミング DXライブラリPortable を使ってみよう(1) mp3再生
PSPプログラミング DXライブラリPortable でプログラムの「核」を書く
PSPプログラミング DXライブラリPortable サウンド関数の解説(1)
PSPプログラミング DXライブラリPortable サウンド関数の解説(2)
PSPプログラミング DXライブラリPortable サウンド関数の解説(3)
PSPプログラミング DXライブラリPortable サウンド関数で「ドドド」
PSPプログラミング DXライブラリPortable サウンド「ドドド」解説

関連記事

[edit]

CM: 3
TB: 0

page top

注意:この記事の内容は既に終了しています.

> PlayStationRHomeを遊ぶためにご用意いただくもの


> PlayStationRHomeを遊ぶためには下記が必要になります。
>
> - PlayStationR3本体(3GB以上のHDD空き容量)
強調文> - ワイヤレスコントローラ
> - ネットワーク環境
> - PlayStationRNetwork のアカウント

プレイステーション3はとっくに売り払ったぜッッッ!!
ぐはっ、見れないじゃん!!


このままプレステ3を買わずに2月8日まで過ごすのかは、ヒ・ミ・ツ・(うふっ)

関連記事

[edit]

CM: 0
TB: 0

page top


h o m e |


 

2010-01