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専科ブログで書くべきだと思い、引っ越しました。
       ↓↓↓↓
http://yaplog.jp/psp-club/archive/2
関連記事
スポンサーサイト

[edit]

CM: 12
TB: 0

page top

PSP xvi - ブログの利用規約改定 - 2011.06.04 

2011/06/04
Sat. 16:19

このブログについて 等、記述。

冷やかしで来ている方は早急に退室して下さい


PSP-X.gif


2011年6月04日 改定

このブログ記事には、誤字や内容の間違いなどがある場合を考慮してください。
このブログは、誰でも無料で自由に利用できます。
利用上のルールを良く守ってご利用願います。

このブログでは、非公式PSPプログラム開発に必要な資料を扱っています。無償配布物などの素材や再配布できる素材などを使い、一個人で記事を製作、プログラム開発を行なっていますのでショボいサンプル作品しかありません。ここにあるプログラムソースコードはGPLライセンスだったりBSDライセンスだったりです。

日本の法律では、著作権の放棄は出来ませんので、著作権を行使しています。


このブログでの著作権について

「このブログの配布物へのリンクURL」 の 盗用は禁止です。
このブログにある画像や記事は 基本 転載禁止ですが、利用者様がプログラミング上の理由などでどうしても利用したいと申請する場合に許可をする事があります。メールでお問い合わせ下さい。

このブログで公開しているプログラムコードはGPLライセンスのもありますが、通常はBSDライセンスのモノです。各記事にライセンスが何であるか書いてあると思うので良くご確認下さい。

PSPプログラマさんは、このブログ記事を参考に、新しいプログラムを開発して公開しても問題はありませんが、著作権上、参考したものとしてこのブログ記事を提示してくださる様にお願いします(URLや記事名などを明記のこと)


このブログでの株式会社ソニー様の携帯ゲーム機(PSP)の利用方法については、独自に調査した上で、かつ、ネット上に公開しても差し支えない内容を掲載しております。
もし万一 違反行為 - または内容 - を発見された場合は、管理者様からの確実な内容証拠を添えて遠慮なく指導のほどお願いいたします。


当ブログで使用している画像や記事内容など(明らかに当管理人の創作物だと思えるモノ全て)は、あらゆるメディアへの複製・コピーが可能なわけですが、他サイト様がネット上にアップロード利用してはいけないものとします。例外として、PSPプログラミングの勉強をされていて、ソースコードの転載を希望の方は、申請していただけると許可するかも知れませんので事前に ご連絡ください。


株式会社ソニー様が管理する企業秘密についてはなるべく触れないよう指導しておりますが、全部を監視できない場合が御座います。
管理者:猫山猫宗へのお問い合わせはこちら nekomune@gmail.com

なお、全記事から探し物の方は、これをクリックして下さい。
関連記事

[edit]

CM: 0
TB: 0

page top

PSP用の逆アセンブル用アプリ PSPInside v0.9p 

2011/06/04
Sat. 20:17

PSPプログラミングやっていたら、機械語を解析したくなった!という方も居るだろうと。

これは、PSP-1000専用の逐次逆アセンブル用アプリです。
ELF と EBOOT.PBP と prx を逆アセンブル可能です。
しかし、逆アセンブル結果表示だけなので、「逆アセンブルしてソースコードへ変換して出力」は出来ません。


ダウンロード
http://dl.qj.net/psp/development/pspinside-v09p.html

導入方法は あえて書かないので分かる人だけやってね!


まず、取扱説明書がPDFファイルで付属しているので読んでください


逆アセンブル機能としての使い方を紹介

起動直後の画面。
読み込んだモジュールも全部リストアップされています。
PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi

△ボタンを押してドライブ選択~ファイル選択をします
ELFファイル、PBPファイル、PRXファイル、のどれかを選んでください
×ボタンで読み込ませたら、白い枠のメニューが出るので □ボタンを押します
PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi

Modulelist:の最後に、いま読み込んだファイルのモジュール名が追加表示されます
08900040: PSP_JANKEN

下のほうに情報が表示されるので見てください
モジュールエントリポイント(Module Entrypoint)は、08900040 となっていますので、アドレス08900040 から実行されるという事です
PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi

×ボタンを押すと、逆アセンブルモードが発動
モジュールエントリポイント(Module Entrypoint) 08900040 から、逆アセンブルした機械語ニーモニックで命令が書き綴られてゆきます。
この写真は、猫山猫宗作の自作ゲーム 「じゃんけんゲーム for PSPパワードX」を逆アセンブルしながら撮影したモノです
PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi

メモリのダンプはこんな感じです
PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi
注意とか
これは、単純な逆アセンブルしかできないので、データ部分(文字列とか)であっても構わず全部機械語命令部分である、とみなして翻訳して表示します。
データ部分なのか機械語命令部分なのかは、使用者が判断しないといけません。

まぁ、おかしな命令が続くようであれば、そこはデータ部分である、と推測できると思うけどね


終了する場合は L+R+HOME ですお!



※ 逆アセンブルしちゃダメなソフトウェア(リバースエンジニアリング禁止のソレ)も ありますので 各ソフトウェアの規約を守っての利用を推奨します
PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi PSP xvi
MIPSプロセッサ入門―アーキテクチャの解説から評価ボードを使った組み込みプログラミング事例まで (TECH I Processor)MIPSプロセッサ入門―アーキテクチャの解説から評価ボードを使った組み込みプログラミング事例まで (TECH I Processor)
(2008/06)
インターフェース編集部

商品詳細を見る


MIPS R4000 User\'s ManualMIPS R4000 User\'s Manual
(1993/06/24)
Silicon Graphics Inc.

商品詳細を見る

関連記事

[edit]

CM: 0
TB: 0

page top

build.mak と Makefile ~ 署名に関する解説 

2011/06/05
Sun. 19:19

皆さんお馴染みのMakefileですが、build.mak というファイルがインクルードされているのに気付いてらっしゃいましたか?

> PSPSDK=$(shell psp-config --pspsdk-path)
> include $(PSPSDK)/lib/build.mak
>
> # 以下、任意で(開発しているソースに依存)
> main.o : main.c

この事実から、Makefile と build.mak は関係がある、と理解してくださいませ

そんな訳で、「署名技術」ですが・・・
ここまでで解かっているのは、
①PRX形式のEBOOT.PBPを作成
②fix-relocationsする
③prxEncrypterする
の3つの過程をすると署名化できる、という事実

で、Makefileへの記述は、
BUILD_PRX = 1 と記述すると ① が実現される
ENCRYPT = 1   と記述すると ②③ が実現される
・・・というからくりです。

詳細は、build.mak に記述してある手順を解読すれば分かると思います。
ちょっと書いてみると・・・

build.mak から抜粋
> ifeq ($(BUILD_PRX),1)
> $(PSP_EBOOT): $(TARGET).prx $(PSP_EBOOT_SFO)
↑↑ 「BUILD_PRX = 1」 と記述されていたら、PRX出力する、という条件式記述

> ifeq ($(ENCRYPT), 1)
>     $(FIXRELO) $(TARGET).prx
>     $(ENC) $(TARGET).prx
↑↑ 「ENCRYPT = 1」 と記述されていたら、$(FIXRELO)して、$(ENC)する、という条件式記述
           ↑↑↑↑↑↑
これをもっと詳しく説明すると、build.mak の最初のほうにある記述
> FIXRELO  = fix-relocations  ・・・$(FIXRELO)
> ENC     = prxEncrypter  ・・・$(ENC)

これで、PRXを fix-relocations して prxEncrypter しているんだな、と分かって貰えたかと思います

原理は、SONYのライセンスを受けて開発している、というような記述を埋め込む作業なんでしょうけど・・・


この記事で言いたかったことは、
①PRX形式のEBOOT.PBPを作成
②fix-relocationsする
③prxEncrypterする
の3つの過程をすると署名化できる!!
・・・・・・という事実と、
ビルド(コンパイル)手順でも全く同じ事をやって署名化している、という 技術の公開です(たいした事ないですが)

まぁ、これは深く考えなくてもいいので、気になっている方だけ学習して下さいませ。

次回は、旧OSLib版の "Hello,World." 作ってみようかな、と。
新OSLibは理解しにくいし、初心者向けではないと思うぞ(笑)

関連記事

[edit]

CM: 2
TB: 0

page top

旧OSLib版 "Hello,World." ソースコード配布 

2011/06/10
Fri. 01:15

はいはい、旧OSLib版 "Hello,World." できました。以前配布した 旧OSLib版ひな型ソースコードをベースに DXライブラリ版の ”Hello,World." を移植してみました。
OSLibを勉強したい方は 基礎だと思うので是非解析してみてください。


◆ 対応PSP ◆
・システムソフトウェア2.80以上の公式PSP
・自作ソフトを起動可能なPSP(カスタムファームウェアやHENなど)
・ユーザーモードのソフトウェアなので、3.XX以降カーネルモード必須

◆ 未対応PSP ◆
・カーネルモード(1.50Kernel)になっているカスタムファームウェアのPSP
・Half-Byte Loader R113からの起動
・システムソフトウェア2.80未満の公式PSP

コンパイラは アドオン適用PSPSDK v0.9.5 限定です


ソースコードは これ(拡張子を ZIP で保存・解凍お願いします)
OSL_HelloWorld2_zip.txt


スクリーンショットはこんな感じ


解説は後日やります

関連記事

[edit]

CM: 0
TB: 0

page top

署名ツールが開発されて、当初は浮かれて使ってましたけど、自作ソフト開発者にとっては どういう利益になるのかまじめに考えてみました。

1.自作ソフトが公式PSPで起動するのには感動した
2.公式のPSPを所有している人が、非公式の自作ソフトであそべるようになった
3.公式PSPの所有者が、署名した自作ソフトを漁るようになった
4.公式PSPの所有者は、改造することも無く自作ゲームを選り好みするようになった
5.CFWの導入ソフトにも署名技術が使われ、公式PSPの改造され率が増えた
6.ISOファイルをEBOOT.PBPに変換して所持されまくられているかもしれない(割れユーザー増量?)
7.ついに署名したエミュレータが登場し、ROMの違法DL件数が増加したかもしれない(割れユーザー増量?)
8.自作ソフトが動作するPSPの所有者には何の変化も得も見られない

・・・・・・なんか、PSPのCFW登場以来よりも悪質なユーザー増えてるwww

結論
何の得にもならないので、署名技術は もう封印することにします!

ボクは当初、自作ソフトは 改造したPSPでのみ遊べるままでいて欲しかった、と発言してます
皆さんの意見を聞かせて欲しかったりします。

関連記事

[edit]

CM: 4
TB: 0

page top

PSP xvi 流 公開されているソースコードの使い方 

2011/06/17
Fri. 22:23

世間では色々なプログラマさんが書いたプログラムのソースコードが公開されています

そういうソースコードは技術を教えるために書かれているものが殆どですが、誰もが考え付くようなソースコードである場合もあります。

サンプルソースコードは、ハードディスク等に入れて名前別に管理する人が殆どだと思いますが、そういう使い道しか出来ない人は伸びません。

では、どうするか?

せっかく収集したのだから、自分で理解できるものから順に解析をして、この一連の作業を書くとこういう処理をしてくれるという事を導き出して、それをパソコン用のデータ管理ソフト(ワード、エクセル、パワーポイント、ほか・・・)で自分用の資料にまとめてゆく作業をするべきだと思います。その際、出典元もちゃんと記録しておかないと、後で確認し直す作業が大変な事になってしまい、結局 使うことができない資料になってしまいます。

資料をまとめてゆくと、固有の処理をするアルゴリズムが複数あることが判明したりするので、最適なものを導き出す事も出来ます。
ソースコードには、「誰もが思いつく、決まっているパターン」や「色々な考え方(アルゴリズム)と作り方」や「個人プログラマ特有の技法」などがあります。まだ他にもあると思いますが、省略。

他人の書いたプログラムコードを見て、「書き方がおかしいから書き直せ」などという発言をするプログラマも居ます。
そういうのは参考書を頼りにプログラムを作る人なのです。だから考え方が柔軟になってない場合があります。
プログラムの書き方には絶対のルールは無いですが、参考書では書き方のルールが決められています。

過去に、プログラムの書き方を指摘注意された事はありましたが、プログラムの考え方が間違っている、と指摘された事は無いと覚えています。
ボクは色んな言語で開発をした経験があるので、うっかり、他の言語でプログラムを書いてしまう場合もあります。
しかし、ボクは気にせず、そこから始めて C言語のソースコードへたどり着きます

ここにあるサンプルソースコードは、その時の猫山が思いついた方法をコーディングしたものです。絶対的なソースコードではありません。
なので、ボクはソースコード丸暗記ではなくて アルゴリズムを理解して自分のものにして頂きたいと思ってます。

皆さんには、それぞれ皆さんなりの作り方で自由に作って頂きたいので、「結局こうなる」という作品を仕上げてもらえばいいという事。
プログラムに無駄部分があってはいけない、というルールは無いのでライブラリを使った開発もアリだと思う。
逆に無駄部分を削りすぎると、リバースエンジニアリングされやすい実行ファイルになってしまいます。
(アセンブラで書くソースコードから作られる実行ファイルは一切の無駄部分を無くする事が可能です)


つまり、公開されているソースコードは、必要な部分だけ抽出して、見出しと出典元を付けてパソコンで資料にしておく事を推奨します。ソースコードを収集して飾っているだけの人は、良く考え直してみてください


関連記事

[edit]

CM: 1
TB: 0

page top

これらのソースコードですが、ダウンロードして 比較してみた方はどれだけいるんだろうか?

どちらも、実行する作業は同じなのですが、最後だけ、やってる事が違います。

簡単に言うと、
・DXライブラリPortable版は、画面描画をした後で、ループでパッド入力のチェックだけをやっている
・旧OSLib版は、ループで 画面描画を行ないつつ、パッド入力チェックをやっている
という点です

で、DXライブラリPortable版は はっきり言って手抜き なのです
OSLib版のように、毎回画面描画をしつつ、パッド入力をやるのが好ましいプログラミング技術です

配布物はこのままにしておきます。
皆さんが好ましいと判断した "Hello,World." を作ってみてはいかがかな、と。

そろそろ、みなさんも実力を付けて来たと思うので、工作プログラミング(初級)をやってみようかな、と思います

関連記事

[edit]

CM: 0
TB: 0

page top

サイコロさんゲームを作ってみないか!? 

2011/06/27
Mon. 22:18

はいはい、ボクは長い間 いろいろと教え続けてきたと思います。

そこで、皆さんにあるテーマを投げつけて、自作ゲームを作ってもらおうという作戦を開始します。
・・・と言っても、初回なのでフローチャートを用意しておきました。

何を作って頂くかというと、サイコロを振って目を出すだけのプログラムです。
最初なのでね、これだけですよ。

え?もっとかっこいいゲームを作りたいって・・・?そんな人は、そういう妄想を抱いて何も作れないままで居るつもりですか、クソゲーとか決め付けるのは心の狭い考えしか出来ない人です。何にでもチャレンジしてくださいっ!

製作期間は、一週間くらい、とします。

リソースも含めて、全部製作していただきます。

製作のヒントを言うと・・・
・PSPSDKだけで作るもよし、DXライブラリPortableを使って作るもよし
・画面描画の後は、画面表示をしないと反映されない
・サイコロの目は乱数で求める
・パッド入力待ちルーチンはどこかに書いてある
・×ボタン、○ボタンの値はDXライブラリPortableにも定義されている


完成した人は、ウチのアップローダーに登録しても良いですよ(ファイルスペースが許す範囲で)
なので、仕様書や、使い方、著作権表記も書いて頂きます
恥ずかしい・・・と思ってる人は、こっそり作って自分のPSPだけで遊んでいて下さい

サイコロ振るだけです。1~6の数値を乱数で生成すればよろし

これだけ言いましたから、1週間あるんだし、のんびり製作していただけるかと思いますが、どうでしょう。

猫山式のフローチャート貼っておきます

サイコロさん0002

コンテストでも何でも無い、自作ゲーム開発の第一歩だと思って 是非挑戦して下さい
作り方は このブログの記事に書いてあるはずです。いろいろ分散してますが

アップローダーはこちら
http://loda.jp/nekomune_/

猫山も製作します。一応、見本として提出予定

関連記事

[edit]

CM: 6
TB: 0

page top

これはもう痛快活劇!



製作 : Black Knight さん

気分転換に見ればよろし
関連記事

[edit]

CM: 1
TB: 0

page top


h o m e |


 

2011-06