原文: http://napalm.intelinet.com/_faq.htm

#PsxDev FAQ

このドキュメントは何ですか。 (ver 1 rev 10; 最終更新:)

これは元来Simon Barratt(Barog/Napalm^ nothing ^tesko)によって作成されましたが、今の時点で私が保守しています(また、私が自分でそういう場合、ほとんど完全にゼロからに書きました)。 しかしながら、 barog@freenet.co.ukで このFAQとメーリングリスト(彼がmoderateする)に関してBarogをなお悩ますことができます。

私は誰か? mr.Loopです! (Adriaan Moors aka antiloop-、 antiloop@napalm.intelinet.com )



プレイステーション開発の歴史

(Barogによる)

この部分のためにHitmenに感謝します。これは彼らのウェブページの変更されたバージョンです。

1996年の最中に、Hitmenはプレイステーションを使用し始めました。 あなたがDatel Action ReplayおよびComms Linkだけを使用して、標準のプレイステーションに関する自分のプログラムをアップロードし実行できると信じられていませんでした。

JihadとCurlinは、Action Replayにモノをアップロードする方法と、アップロードされたコードを実行するために彼らの独自のROMのバージョンを作ることができるかどうか考えました。

その後、彼らはSnake/McBain(EZ-O-RAYの作者)、およびさらにBlackbagと連絡をとりました。
Ez-o-rayは、人々がモノをアップロードし実行することを可能にしたROMをリリースしました、さらに容易。 Blackbagはプレイステーションの内部についての詳細な情報を公表しました。

一度eco2exeが生産されたならば、人々はyarozeコンパイラをgrabしてyaroze実行形式を通常のplaystation実行形式に変換し、平易な灰色のplaystation上でそれらを実行できます。

今日、シーンには多くの他のグループがあり、多くの人々がいます(psxdevメーリングリスト上に180人以上の人々がいます)。
シーンをfadeさせないで、リリースする人々を増やそう!
また、あなたのリリースをメーリングリスト上で発表できることを憶えていてください!



必要条件

いくつかのM$ OSまたは(むしろもちろん)Linux(あるいは他のunix os、unix psx開発メーリングリストをチェックしてください)を備えたpcやamiga(私はamigaを持っていないので、あなたがamigaについて何かを書きたければ、 私にメールしてください 、そうすれば、それをここに含めることができます)
PSX..hmm または PSEmu Pro
Action Replay、Game Sharkあるいはimport(それらはフラッシュするのが困難になりうるというクレームがいくつかありますが)
comms link
オプションでmodチップ
(多くの)コーディングの経験(cとむしろさらにasm)
脳(あるいは互換デバイス)!
好奇心、固執と忍耐!


PSXへの迅速な入門

このコンソール用のCPUは33Mhzで動作する修正済のr3000(より詳細に関しては www.sgi.comwww.idt.com を参照)で、stripped down MMUを持っています。この意味は(他のものの中に)、メモリアドレスはハードワイヤード:論理的なアドレス0x00xxxxxx、0xA0xxxxxx、0x80xxxxxxは全て、同じ物理メモリを指します(違いはキャッシング等にあります)。 RAM(それは全く遅い)は2メガの大きさです。 ROM(512K)は0xBFC00000に位置します。 DTLH-3000のために行なったメモリレイアウト を見てください。

2DグラフィックスエンジンはGPUと呼ばれます、それはスプライト、2Dポリゴンなどを描画することができます。1メガのVRAM(それはpc上でのように直接アクセスできない)があります。 したがって、迅速なcalcは、16ビットのモードにおいて、1024x512の最大「サーフェイス」を持つと私たちに伝えます(したがってテクスチャの格納するにもまた十分はであるべきです)。

3Dポイントを2Dポイントに変換、シェーディング、マトリックス演算 + ずっとより多くのために、 dispositionでGTEがいます。 詳細な低レベルのGTEの情報のあるサイトへのリンクに関しては、Napalmのハッキング(低レベル)セクションを参照してください。

最後に、音のためのSPU、そしてもちろんCD、パッド、メモリーカード、パラレルポートとシリアルポートがあります。



psxに(多かれ少なかれ)関連するいくつかの略語

MMU メモリ管理ユニット、第1のコプロセッサ(cpuと同じチップ上にある)、cop0とも呼ばれる
GTE 幾何変形エンジン(Geometry Transform Engine)、cop2とも呼ばれる、上で述べたように3Dのためです。
tri 三角形(triangle)の短縮形
CLUT カラールックアップテーブル、パレットの別名(VRAMに格納される)
ar、gs Action Replay、GameShark、同じものすべて。より多くの情報のために 下を 見てください。
PIO パラレル入出力(Parallel Input and Output)
vag psxフォーマット中の一種のwavファイル
seq psx用のmidi
prim これはGPUに送る情報の最小パケットです。 スプライト、ポリゴン、タイルなどのためのprimがあります。
それらは、色や位置などの情報を含んでいるC構造体によって表わされます。 低レベルの議論のためのNagraのサイト(Blackbag)あるいはNapalmを見てください。
OT リンクしたprimsのbucketソートの一種。単純なzソートと見なすことができます。 OTはポインタの配列によって表わされます(その長さは単に重要である)、そのように望む(大きなOTは、1インデックス当たり、より少数のprimsを持ち、したがってより高いzソートの「分解能」を持っています。小さなOTを作れば、zの異なる多くのprimが同じ場所で終わり、したがって「同時に」描画されます) 例としてzソート(OTのほとんどの頻繁な使用です)を使用しましたが、本質的に、OTは単にprimsが描画される順序を決定します。 最後の1つの注:OTの「逆クリア」(それは非常に速くクリアするこの方法を作る)だけを行うDMAチャンネル(再び、Nagraのサイトを参照)があります。 そして「逆クリア」されたOTは、アクセスすることが容易です。 この上の 近く起こる記事 を捜してください.. 今時間がありません:-/。
MDEC Motion DECodingを意味し、圧縮したデータ(ムービー)を展開するために、mpegライクな展開を使用します。


Action ReplayとComms Link

Action Replay

アメリカでGamesharkとして知られています
Commslink

クローンバージョンはここに描写されました。

それらを得るべき場所

多くの場所があります: AnthroxThe RageGameitBuyrite など (訳注:日本ではBung JapanKARAT、秋葉原等にあります。他にCommand8Console7等もありますが、Comms Linkは扱っていないようです)

それは何ですか。

Action Replay(以後「ar」)は、psx<->pc間の通信を可能にするためにPSXの後部に接続する1個のエレクトロニクスです。(訳注:本来は実行中のPSXゲームにパッチをあてて(自機無限等)改造するためのものです) そこにカバーに関するそれ、それ、より「低レベルの」情報のために読み続けてください。 それは、 Caetla 、ez-o-rayあるいはdatelとcoからのcheat romのような、PIOシェル(パラレル入出力)を保持するEEPROMを含んでいます。 EEPROM(それは正しい)、したがって、ソフトウェアを使用してフラッシュすることができます。 あなたが今ごろはもう理解していなければ、arはパラレルです。 しかしながら、PCのパラレルポートはPARポートが扱うことができないいくらか余分なロジックを持つので、パラレルポートに直接つなぐことができません... caetlaによってサポートされるいくつかのハックがあります: Caetla文書中で言及される Freewing と別のもの。
ところで、もしarを「壊した」場合、ar-flasherを備えたcdを焼くことで修正できる可能性がなおあります。リンクセクション中のサイト上で見回してください(Napalm、Hitmen、Loserのサイト.. それらはすべて、そのためのisoがあるはずです)。

代案

Okay、恐らくあなたは予備のISAカードがありません、やきもきしないで、 X-Plorer(特徴のロードを備えた新しい1種のar) を単に買ってやる、しかし、Caetla(あるいは他の置換ROMで)でそれをフラッシュすることができません。 再フラッシュに理由はありませんが、それはあなたが必要とするすべてを持ち、私たちは十分な開発サポートがすぐに来ると聞いています。 パラレルポートにこの小さな驚異を接続します。 それが基本的にpeeceeをflyするので、通常のarでこれを行おうと努めないでください.. (上記参照)

最後のオプションは Skywalkerのシリアルケーブル (あるいは Hitmen を見る)を作ることです。 その後、yarozeキット、あるいはJihadのuploaderユーティリィティでpsxへ材料をアップロードできます。 この上のより多くの情報に関しては、 下に 参照してください。



Modチップ

これらは地域ロックアウトコードを回避するためにPSXにインストールする、小さなPICです。したがって、輸入品と自家製材料(より多くの情報のために 自分のpsx CDを作る方法 を参照)をプレイすることができます。
買うかインストールするガイドのために、 www.modchips.com をチェックしてください(多くの他のサイトがあるので見回してください)。 (訳注:日本では、上記のPARを扱っているサイトで大体扱っているようです)
ModChips、配線図と様々なPICチップ用のソースに関するより多くの情報のために REIのサイト をチェックしてください (thx Crazy Bee)
あなたがまあ自作派なら ProPIC2 をチェックしてください。 クールなPICプログラマ... (thx Crazy Bee)

開発キット

psyq

これはプロの開発者用の公式キットです。 それは設備のすべての種類に付属します(特に「青いPSX」)。 コンパイラは Sn Systems 製で、ライブラリとドキュメントはソニー製です(あなたに彼らのURLを伝える必要はないね?)。 基本的に、これは(yarozeと反対に)十分な範囲でpsxを使用することができるtheキットです。それは事態をずっと容易にしますが(コーディング、賢明)、(適正に)よいコンパイラを備えたくだらないコーダーはなおくだらないコーダーです。

yaroze

rip-off、 occasionのために黒く塗られた灰色psx、シリアルケーブル、cd、dongleメモリーカード、ドキュメントとコンパイラ(ecoffを生成する)、一つの、よく、大きく、器用なlibps.exe(多くのメモリを消費する)へコンパイルされているすべてのライブラリを得ます。 お金を払って入手することだけが合法です。 使用する場合、eco2exeを使用して、yarozeコンパイラが生成するecoffを「実際の」psx-exeに変換しなければなりません。 またcombineは、libps.exeとexeを組み合わせるために役に立ちます。

gccクロスコンパイル/not yaroze(サイト)

最初に、psxのCPUはインテルのball parkにはないことを思い出してください(事実、gamedayさえない;-))、それはmips cpu(言ったように、修正済のr3000)です。 したがって、いかなるコンパイラもちょうど使用できません。r3000 ecoff(あるいは、いくつかのコンパイラはターゲットとしてpsxをさらに含んでいます)を出力するものを必要とします。 ecoffを生成するコンパイラを持っていれば、ecoffを正規のpsx-exeに変換するためにeco2exeを必要とします。

したがって最良の賭けは、r3000 ecoffを出力するように(もう一度)gnuコンパイラをクロスコンパイルすることです。

今、これは(私の考えでは)、ただひとつの「容易な」合法的な方法です。c(何人かの変人はasmを好みますが..;-))をなお使用することができ、明白に合法的なエリア上います: Not Yaroze サイト(win32をターゲットとした コンパイラキット へのリンクがある)をチェックしてください。 また、私たちが幸運ならば、将来同じ機能性を提示するライブラリ(ソニーから独立して開発されていた)があるでしょう;-) しかし現在、単にクラッキングを始めてください。-

注:psyqがまだ(afaik)ハックされていない専用フォーマット(ecoffではない、似ているが完全ではない)を使用するので、クロスコンパイルされたgnuキットで公式ライブラリを使用できません。

r3000 asm、BIOSと他の実行形式のリバースエンジニアリング関して

既に知っているように.. psxの中のcpuは修正済のr3000( www.idt.com を参照)です。また、mips asmはfookとして単純です。 ftp.idt.com/docs/3467.pdf からよいリファレンスをダウンロードできます。 今のところ、それが容易で(HitmenとNapalmサイトを参照)、多くの例があるので、asmでのプログラミングの教本を入れていません.. erm 私は逆アセンブルするためにexeのを意味します。 私は、それが困難な方法であることを知っていますが、単純な例(恐らく自分でコンパイルしたcソースで、例えばpsyq)の上でそれを2、3回行うことによって、C、psx、コンパイラがどう「最適化」するかに関して多くを学習します。 また、追加ボーナスとして、私の逆アセンブラでpsyqによって生成されたシンボルテーブルを使用できます。 これは事態をさらにより容易にします。
それはAdisasMという名前で、HitmenとNapalmで見つけることができます.. バージョン0.3bは最新です。それはちょうど2、3 buxfixesで、-xスイッチ(「高レベル逆アセンブル」を可能にする)を加えました.. それは今のところたいしたものではありませんが、私はリオーダリング命令のように、特にコンパイルされたcコード用の何かのコード化に関して恐らく考えています、単純なフロー制御とメモリ参照を備えた一種の擬似言語を... あなたにアイデアがある場合、あるいはその中で考えコード化する時間を投資したい場合、私に知らせてください、私の考えを実装する時間がちょうどありません。



PSX cdを作る方法

モード2/CD ROMXA CDを焼くことができます。CD上にexeの名前を指定するsystem.cnfファイルを置きます(任意のpsx cdの上で1つを単に見てください)(プログラムをpsx.exeという名前にして、スペシャルを感じなければ、system.cnfファイルを省略できます)。 その後、すべてのデータでisoを作り、それをライセンスします(Hitmenを参照、hitliceが効くはずです)。(訳注:hitliceは米国(?)のライセンスコードを書き込むので、日本のPSでは動作しません。詳細はNot Yarozeを参照してください) その後、psx cdの読み込みのメカニズムのために、その時にフルセクタを読むように、exeが2048バイトの倍数であることを確かめなければなりません(exefixupはうまく働きます)。 まあ、もう1つのもの、cdの最後の3分は信頼性が低い..

注: EZ CD PRO 95 あるいは「バージョン番号を備えたISO 9660レベル1ファイル名」を行うことができる別のcdライタプログラムを使用しなければなりません。 (ez cd proでファイル名タブを参照。)
それが参照しているバージョン番号は、ファイル名の終わりに;1です。 (Barubaryにこれを感謝します。)

次のコードはpsxプログラムをディスクからロードし、実行し、それらのメニューを作成します。

StopCallback();
printf("Stopped callback\n");
_96_init();
printf("_96_Init\n");
printf("Loading Exec file\n");
LoadExec("cdrom:\\SLES_012.28;1",0x801ffff0,0);

あるいは、偶然それを見つければ、さらにbuildcdを使用できます.. ヒント:それは犬を嫌い、小さな小鳥を食べます(it hates dogs and eats little birdies)。 うっ.. 私はそれが不完全なことを知っています.. hehe-



Caetla

何?

これはpsxへコード(またデータ)をダウンロードするためにarへフラッシュするものです。 それは、たくさんのよい特徴があります:
ファイルサーバ、printfをpcにリダイレクト(デバッグに偉大)、 yarozeコードをpsxにロードすることを容易にするためにecoffをpsx exesに変換。

PS:しかしわずかな問題があります:不完全な会社がCaetla ROM(それは無料でコーダーだけのために配布された)の著作権侵害したので、K-Commsは、それらのソフトウェアを保護することを決定しました。 それらは、PARポートサポートを仮定されます(あなた自身作ることができるハックによる)。しかし、I can't get through to the leech department ;-)

したがって、私たちはK-Commsの希望を尊重しなければなりませんが、他方では、psxシーンに新人のコーダーが彼らのstuffをpsxへアップロードするためにどうですか。 Right, well no comment コメント

1つの他のar置換romがあります。正確にはありました:ez-o-ray(mmh.. これを逆に読んでください)。 それは、psyq DOSデバッガ(psx plugin ISAボードをエミュレートするためにTSRを使用して)のサポートのようないくつかのクールな特徴を持っていました。 しかし、著者の1つの希望により、それはもはや配布されません。 多くのl33t coderz :)は、古い時間のために(私の推測では)、なおezを使用します。 (それは私に思い出させる..昔..ずっと昔、#psxdevシーンが生まれた時、彼らは置換ROMをまだ持っていませんでした。したがって、Hitmenとcoのクールなd00dsは、彼らのコードをバイト単位でアップロードするために巧妙なもの(それらはよいタイミングを要求した)の種類をすべて行わなければならなかったこと..私のポイントは、私たちはCaetlaやEz-o-rayを持って幸運だということです。ですから、困難やsummitに関して泣き言を言わないこと)

Caetlaセットアップ

さて、Madmanは、この上のよいfaqを既に作りました、したがって、わかり切ったことを最初からやり直すことの中のポイントはありません。ここに、 Caetla FAQ (Danzigによる追加を備えた)があります。

daファイルサーバの使用

再び、メーリングリスト(また、それのブラウズからあなたに問題を取っておきましょう..)上で例を見つけました。

This is very easy, just use code like the following:
void main()
{
 char c[80]; 
 struct DIRENTRY res;
 strcpy(c, "pcdrv:*.*");
 printf("\n** Loading files...\n");
 // Generate list from dir entrys...
 if (firstfile(c,&res)==0)
 {
  printf("Failed to read directory entry, does directory pcdata exist?\n");
  exit(1);
 }
 processFile(rec.name)
 while (nextfile(&res)!=0)
 {
  processFile(rec.name)
 }
}
void processfile(char *name)
{
 int fd;
 char fullName[80];
 strcat(fullName, name);
 fd = open(fullName, O_RDONLY);
 if (fd==-1)
 {
  printf("Failed to open file %s\n",rec->filename);
  exit(1);
 }
// Load file here...
 numRead = read(fd, (char *)rec->ptr, rec->length);
 if (numRead != rec->length)
 {
  close(fd);
  printf("Failed to read from file %s\n",rec->filename);
  exit(1);
 }
 printf("ok.\n");
 close(fd);
 rec = rec->next;
}
This will read the directory from the PC and load all files into PSX ram,
hope that helps
FuSIONMan

Caetlaの代わり

Ez-o-ray(それはもちろんromとツールを備えた完全な置換である)に加えて、psexeと同じかあるいはよりよい機能性を提示する、いくつかのpc側ツールがあります。 リンクセクション中で見てください。 いくつかの追加の特別にいい物(WindowsNTとの互換性のような)を提示するIMHO(最もクールな置換)は、 CatFlap です。 Napalmのユーティリィティセクションにそれを見つけることができます。 さらに私たちの中のlinux中毒のために、pioconsがあります(DBalsterとNagraによって元来作られた、またAndrewKによって改善された--> リンク セクションを見てください) 。 see the links section). (原文) -->



シリアルケーブルでのプログラミング

(Gadgetによって寄与されて、ありがとう!)

追加の必要条件

(PSXなどに加えて)

PSX Yarozeコンパイラ
SioconsあるいはJohadによるSerial(Hitmenからダウンロードする、クールなと同じくらい簡単 :-) )

Sioconsのコンフィグレーション

デフォルトでは、sioconsは9600ボーにセットされます。 これは通常遅すぎるので、プログラミングの任意の種類を遂行できません。 シリアル接続の速度は115kbpsに増加する必要があります。 これらはそうするのに必要なステップです。

  1. psxのslot2にメモリーカードを差します。
  2. sioconsを開始します。
  3. sioconsの内で、>>BAUD 115200をタイプします。
  4. F10、F2でsioconsを中止します。
  5. コマンドラインsiocons -B115200でsioconsを再開します。
  6. このボーレートをメモリーカードへ保存したいかどうか尋ねるメッセージが現われます。
  7. 「yes」を選択します。
  8. その後、新しいボーレートがメモリーカード上に保存されます。 sioconsが始められる場合は常に、新しいボーレートを使用するために-B115200パラメータで始められる必要があります。


psx exeをロードするためにsioconsを使用する


この時点でyaroze起動ディスクがplaystationの中にあってロードされなければなりません。
単一のyaroze exeをロードするために、以下の指令に従います。

  1. sioconsの内で、F4キーを打ちます。
  2. ロードプロンプトが現われます。
  3. 実行するexeの名前をタイプインします。 (つまりmain)
  4. その後、ファイルはplaystationの上で実行します。


データファイルをexeに載せる必要がある場合、以下の指令に従います。

  1. sioconsの内で、F9キーとF4キーを連続して打ちます。
  2. dloadプロンプトが現われます。
  3. データをロードするためにアドレスを後に続けて、ロードするためにデータファイルの名前をタイプインします。
  4. 例: dload[2]: test.tim 80150000
  5. すべてのデータファイル用にステップ1~3を繰り返します。
  6. exeをロードするためにF4キーを打ちます。
  7. 実行するexeの名前をタイプインします。

sioconsを終了し閉じる
F10キーとF2キーを連続して打ちます。

バッチファイルからデータファイルをロードしexesを実行する

  1. 「auto」という名前のファイルを作成します。
  2. データをロードするためには、コマンド「local dloat test.tim 80150000」を使用します。
  3. exeをロードするためには、コマンド「local load main」を使用します。
  4. プログラムを実行するために、バッチファイルの最終行上に「go」を置きます。
  5. ファイルを保存します。
  6. バッチファイルを実行するために「siocons auto」のスタート


これはシリアルリンクでのsioconsの使用のために詳細をすべて与えるべきです。
ケーブルとyaroze起動ディスク。
exeを80100000にロードできないことを憶えていてください、libps.exeファイル(ライブラリ)がそこにロードされます。



様々なユーティリィティ

多くのよいユーティリィティが外にそこにあります。それらをすべてここでリストする時間がありません。 あなたのutilがこの中にあるべきだと感じれば、その名前と短い解説(+使用法?)を私にメールしてください。そうすれば、リストにそれを加えましょう。 (今のところ、NapalmとHitmenのサイトを単にチェックしてください)。



様々なコード+説明

vagsをループにする

ここに置く材料のためにメーリングリストを拾い読みしていました。そしてSilpheedのメールに遭遇しました:

bITmASTER からのvagpackツールは、ループするサンプルを作成するオプションを持っていません、しかし、私が実験のために使っているvagファイルはループするサンプルだった...
したがって、次の質問は: vag-ファイルに格納されたループ情報はどこですか。


OK、16進エディタでvagファイルを見てください。 (48バイトのヘッダの後の)データが16バイトのセクションへ整えられることを理解します。 2ヘッダバイトがあり、サウンドデータの圧縮された14バイトが続きます。 ループに関する限りでは、第2のヘッダ・バイトは面白いバイトです。 ループしないサンプルでは、セクションはこれに似ます:

XX 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX

第2のヘッダ・バイトは、常に0にセットされます。 (ループしないサンプルの非常に最後の2つの16バイトブロックを除いて(以下を参照)。)

ループするサンプルでは、実際に単にループ出発点をセットできます。ループの終了は、サンプルの終わりだけにありえます。 ループしたい16バイトのセクションの第2ヘッダ・バイトの適切なビットをセットすることにより、2つのポイントをセットします。 このように:

ループのスタート:
XX 06 XX XX XX XX XX XX XX XX XX XX XX XX XX XX

ループの終了(さらにサンプルの最後の16バイト):
XX 03 XX XX XX XX XX XX XX XX XX XX XX XX XX XX

(BTW、ループしないサンプルの第2の最後の16バイトのセクションの第2ヘッダー・バイトは、03の代わりに01にセットされます。その後、16バイトのSPU irqクリアブロックがこれに続きます(このように見える):

00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00

私は、すべてセンスを作ることを望みます。

見ればわかるように、16バイト・ブロック・レベルだけにループ・ポイントをセットできます、それほど正確になりえません。 (実際に、各16バイトブロックがオリジナルの圧縮されていないサンプルデータの28バイトに相当するので、それより悪い)。
かなり多数のmodsが非常に短い輪状のサンプルを使用するので、これは私のmodプレーヤに関する問題です。 その問題の極端な例として、modの中のサンプルの1つは16バイト長だけと仮定します。 これは、圧縮されてpsxサンプル・データの1つの16バイトブロックに詰め込まれます。 オリジナルのサンプルが非常に短いので、それは16バイトブロックの半分だけを恐らく満たします。 これは、ブロックの大きな部分を0バイトとして残しておきます。また、psxの上で再生された時、psxがオリジナルの16バイトのサンプルに加えて余分な0バイト(合計の重要な割合を構成する)を再生するので、全く悪く聞こえます。 長いサンプルでは、最後の余分の少数の0バイトは気づきませんが、それは、0バイトがサンプルの合計のより大きな割合を構成するサンプルに全く悪い効果があります。

とにかく、私は、それがすべてあなたを助けることを望みます... (それは、私が意図したより全く少し長いと判明しました:)。

ではまた、
Silpheed。

自動的なPAL/NTSCモード選択

自動的にPALまたはNTSCに切り替えるためにこの小さなコードの一片を使用できます。 (それはすべてのBIOSに作用しないかもしれませんが、それに関して何か問題があれば、 BIOS verとfix(?)と共に私に単にメールしてください。そうすれば私はcorrecterバージョンをここで記入できます)

if (*(char *)0xbfc7ff52=='E') // E(urope) --> PAL; A(merica) and J(apan) both use NTSC
 SetVideoMode(1);     // PAL
else
 SetVideoMode(0);     // NTSC

これは の場合のみ動作します。
(1995年、BIOSの日付を表わす、94の場合、SCPH1000の上で走っています。)
好きな16進エディタを単に得て、BIOSダンプを見てください。



OTの

私は わずかな例ソース を作りました。見てください。 あなたがcのコード方法を知っていて、脳を使用すれば、明らかに違いありません。

あなたが何も理解しないかもしれない例外的な時に、単に自殺しろ.. erm、つまり、私に小さなメールを送ります。



MP3プレーヤの作成

もちろん、ここにコードはありません、それはまだ..まだ行われていません.. それは不可能ではありませんが、非常に複雑です。
psxのcpuパワーは、Pentium MMX上のように高品質mp3デコードと再生を行うことに十分ではありません(それは基本的に露出した最小である).. それはそれに似ています。
生じる他の問題もあります:通常のmp3のサイズについて考えて、次に、psxのRAMが2メガの大きさだけであることを思い出します.. (また、それは全く遅い)。 SPUがADPCMを使用するという事実も、それをより容易にしません。

しかし、より低いサンプリングレート(音質と読む)では、それが可能になりえます。 したがって、それが可能かどうか議論することをやめて、批評家が間違っていることを証明し、プレーヤを作成してください! 再び、私が決定すれば、可能性についての議論は蹴られます。 もちろん、誰かがどうそれを行うかについて議論するのを見ることができれば、私は幸福だろう。

PS:同じ考察は、エミュレータを作ることに当てはまります(特にメモリ制約)。

モラル:夢見て何も遂行しない代わりに、psxの限界(それらは全く遠くにある)へpsxを押すことのように、可能なものに注目してください。 私は「夢見ることをやめろ」とは言っていません、「コーディングを始めろ」と言っています! やめている道徳家Loop ;-)



1つのファイル中にデモを入れる

(Gabriel_Kによって寄与されました、感謝。)

この後ろの基礎的な考えは、バイナリファイル(tims、vabs、tmds、マップなど)を最終的な実行形式にコンパイルできるオブジェクトファイルにコンパイルすることです。 Rob Witheyのpsxライブラリをダウンロードすれば、彼はバイナリファイルCファイルにするツール(bin2src)を既に書きました。 Rob Witheyのpsxライブラリは Napalm 上のダウンロードに利用可能です。

bin2srcの使用:
bin2src.exe -L<ラベル名> -A/-C -Fi<ファイル名> -Fo<ファイル名>

ラベル名 srcの中で出力するラベルを決定します。
-A/-Cは、Cファイルかアセンブラファイルかどうか決めます[-Cがデフォルト]
-Fi は入力ファイルを決定します
-Fo は出力ファイルを決定します

一度バイナリをCフォーマットで得たなら、その後、コンパイラを使用して、オブジェクトファイルにそれをコンパイルします。
GCC/Yaroze: gcc -c
PSY-Q: ccpsx -c


コードからオブジェクトファイルへのアクセス:

最初に、それを以下と類似に宣言しなければなりません:
extern char arrayname[];

その後、このようにそれにアクセスできます(例はtimファイル用にあります):

u_long *ptr;

ptr=((u_long*)arrayname);
ptr++;
GsGetTimInfo(ptr,&A_GsIMAGE);
最終コンパイル: (単純化された)

ccpsx image.obj main.c -o main.cpe


これが助けになることを望みます... さらに幾つかの例を望めば、brainwalkerのremembering amigaソースをチェックできます。

-Gabriel Knight/NAPALM



一般に用いられている1つの方法、すなわちアセンブラのincbinステートメントの使用を加えたい。 データを含んでいるcファイルを作る代わりに、以下のようにasmファイルを作ります:

section .object
global pic

pic: incbin "pic.bin"

あなたがそれをdata.sと命名すれば、makefileはこのように見えます(psyq):

#  Makefile for MyK1ck4zzTro
CC   = CCPSX
ASM  = ASMPSX
LINK = PSYLINK
CCOPTS   = -c -g -comments-c++
ASMOPTS  = /l /o c+,h+,n+
LINKOPTS = /m
OBJS = main.obj data.obj
tro.cpe: $(OBJS)
        del tro
        $(LINK) $(LINKOPTS) /p @tro.lnc,tro,tro.sym,tro.map
        $(LINK) $(LINKOPTS) @tro.lnc,tro.cpe
        ren tro.bin tro
        cpe2x /CE tro.cpe
main.obj : main.c
        $(CC) $(CCOPTS) main.c
data.obj : data.s
        $(ASM) $(ASMOPTS) data,data

注意を払っていたならば、 tro.lnc に気づいたでしょう。 (tro.lnkであると思われますが、windozeはfucks up、ショートカットとして扱います)、それをあなた自身また作る必要がある、あるいは、 このテンプレート(makefile、lnkファイルなどのzip )を使用できます。

残りはGabriel_Kの方法と同じです。



EMU

基本的に2つのエミュレータがあります:

PSEmu Pro:win32の上で走る大きなエミュレータ.. それはassを蹴ります :-) ((pII 350と3Dカードがある場合;-))
Sope:これをチェックしていません。Linuxの上で走る唯一の(約束する)エミュレータです!
また第3(はい、2つだけあると言いました):Psyke、それがクールなエミューなので(だったので)、ただ名前を挙げたかった.. PSEmu Proのための実際の競争者、しかし私が聞いた最後のもの、彼らはPSemu Proチームと提携しました(それらは - もちろん - 偉大なことです)!


メーリングリスト

メインのpsxdev

www.egroups.com をチェックします。 (メーリングリストの名前は psxdev です。 そのサイト上でリストに参加、ブラウズと検索できます。

言ったように、Barogはリストをmoderateします、したがって、あなたや彼の時間を浪費しない、またあなたが何を書くかに関して考えます。 不完全な材料は彼を何としても通過しません。;-)

unix psxdev

このリストの名前は psxdev-unix です。



すべきこととしてはいけないこと

さて、非常に重要な1つの規則があります、尋ねる前にいまいましい脳を使用します。 あなたにとっては1つの質問かもしれませんが、しかしこれを行っていた人にとっては、全く何度も、これらの質問は(少し)頻繁に答えられました.. なぜわざわざこのFAQを作ると思いますか。 ( 私のよい性格に加えて;-) )。

まあ、また、このセクションを下に見ますか。 リンク.. はい、それは正しい.. したがって、何かがここにない場合、それらをチェックしてください!

メーリングリストをさらに拾い読みして、すべてを試みたならば(btw、readme.txtはwhocares.txtと同じではありません)、#psxdevに単に来て(さて)、うまく(かつ明白に)尋ねてください。 これは、さらにメーリングリストに当てはまります:'I NEED HELP'のような主題は無駄です。 (行って確か、しかしない、私たちがあなたに提供できる種類)。これは、さらにあなたが参考のためにメーリングリストを拾い読みする時にずっと容易にします。 faqを作る間にこれを行いました。また、不明瞭な主題のためにどれだけの負けの一振りを読まなければならないか信じることができません。 メーリングリストが非常に有用なので攻撃はない、しかしそこに、そこのwhinig lamersの房である.. (また、誰か特定しているわけではありません)。

したがって、FAQを読んでおらずリンクをすべてブラウズし、この中にあるいはそれらのサイト上で答えられる質問をする#psxdevに来れば、靴をはいたために準備されてください。

そしてもう1つ、私たちは、#psxdevでwarezについて議論しません、(imho)、無断複製なしの現実のシーンがないので、もちろんこれは少々偽善者に聞こえるかもしれません。 hrm.. あなたがたの多くの野郎がこれに反対することを知っていますが、私はこのように感じます。 したがって、ちょうどしない、はしけ舟、の中で、また最も少しの考えをさらに持っていない場合、PsyQを求めに(いくらかは、それらが要求への位置にあるとさらに思います)行く、コード化する方法。 それの値があることを最初に証明してください! しかし、私(また、私だけではないと確信します)がこのシーンを非常に元気でぴんぴんしているように見たい、ある樽口!



リンク

(順不同)

Napalm クールなpsxグループのクールサイト
Hitmen 彼らは基本的にpsx開発の教父です。 恐らく、彼ら無しではpsxコーディングシーンはなかったでしょう。
AndrewKのlinux psxサイト linux上のよいutils、さらにpsexeの彼の置換とfixupのためのソースがあります。 pioconsの彼の改善されたバージョンはここにまた見つけることができます。
PSX dev with BSD Well..hum..それをチェックしてください.. しかしながら、日本語を最初に学習したいと思うかもしれません。 AndrewKより多くの特徴と共に、psexe置換のためのソースを行っています。
Not Yaroze psxのために「ライブラリ」を使用せずに、コード化すること上の偉大なページ
Blackbag さらに、1つの、わずかに時代遅れだったとはいえ大きな、低レベルの情報を備えたサイト.. あなたがpsxハックに実際に興味を持っていれば、読まなければなりません。
K-Comms caetla の作者
Trickmeister linix box上でコーディングを始めるために必要なすべてのツールを約束するページ、だがリリース用の呼吸を保持しない..
PSEmu Pro 最良のpsxエミュレータ(さらにEFNetの上の#psemuをチェックしてください)
Sopeのホームページ linux PSXエミュレータ。
Ganga Cracktion Replayと他のユーティリィティ。
www.palevich.com/
www.neocor.com/
translingo.com/tldl.htm
^^^(25のfkn megs評価コピー!)
日本語翻訳ソフト
BitMaster
クールなpsxハッキングサイト
Creature 別のクールなpsxハッキングサイト
Dudley Soft このガイはクールな計画を持っています、それらをチェックします。
irc://EFNet/#psxdev
IRCで時間を浪費する以外に何もすることがない、すべての悲しいbastardのための溜まり場-
www.argonet.co.uk/users/sps/psxfaq/ 一般大衆に向けられているが、それにもかかわらず面白い、別のpsx faq。
Cat House 多くの面白いツールを備えたクールサイト!
Codeworks Mobius Codeworks、非常にクールな気取り屋.. クールサイトとクールなイントロで。
Psx Heaven Segmondのサイト、全く面白い
Psyke MoonshadowとRaskyによる優れたPSXエミュレータ。
Freewing PARポートハック
Nonstd 別のparポートハック
Loserのページ 情報、例ソースなどのための大きなソース。
Blackthunder それをチェックします!
GNU Psx 別のよいGNUサイト!
Mark Heath's PSX page psx、exefixupなどのためのgnuのような多くのlinuxベースの材料を持っています。
GNU Psx psxのためのGNU、よい説明。
BarogのPSXサイト 訪問しなければならない! (それはいつ上がっていますか;)
よいグラフィックスサイト PSXのためにではないが。
Van HelsingのPSXページ さて、言うことがより多く、それをチェックします。
K-Commsパスワードページ それが作動するように見えます、確かでない Caetlaの最新のバージョン(0.33)をあなたが捜していれば、試みてください。
psxdevサイト 言いませんでした。 「まだ別のblabla」.. それをチェックしていません。しかし、あなた(と私)は実際にするべきです! ;-。
psxdevサイト STRファイルをcdへ焼く情報がある、LOOK HERE FOR BURNING YER OWN CEEDEEZ! いつかこれに関する別の質問を得れば、アクションに責任を負うと判決できません。


Credits (again, not really in a special order (!), I think I better spend my time writing the faq instead of thinking of the peeps I wanna greet, dontcha fink?)

感謝したい:Twin (whoop!), Jihad, Silpheed, Nagra and Danz! (また私を助けた他の人すべて)。

そしてgreetz fly out to: Xerox, FoxFire, Nik, Amerrykan, Brainwalker, Skywalker, Madman, Irka (thx!), AshH, Gadget, Knight, Barog (great job with the ml+site), Bufferman, FusionMan, F0rier, Barubary, Cat, N3xus, Test64, Scorpion, Matt, Tratax, Duddie, Groepaz, Tranziie (monkey!), Burny, Crash0r, SmartAzz, Phazey, Dach (cool site), Wuselfuzz, Fony :o) そして#psxdevと#psemuの中で挨拶したい他の人すべて。

あなたの名前がこの中にない場合、非常にすみません.. 単に私の脳は名前の扱いがあまり上手ではありません...

あなたが反対する、間違いがある、感謝/挨拶中であなたを忘れたならば、あるいはあなたが寄与したければ(oh goody! =o) )、 antiloop@napalm.intelinet.com で私に常にメールできます。


Copyright (c)1999 Napalm.All Rights Reserved. Napalmからの書かれた許可なくHtmlと関連するグラフィックスの全体や一部を使用することはできません。
1