■コースケ氏。やっと問題の本質に気がついたな。+グラナダ99機改造(04/15)
勝手に無断転載。ON。
Commented by コースケ at 2006-04-15 12:46 x
あのね。
上記紹介のソフトは問題なく動くんだけど、
昔のノートパソコンの液晶画面のような感じで、動きが速いとちょっとだけ残像がでてしまのね。
なので、早い動きをするものは少々見づらいのです。
つまりは、グラナダも見づらいです。
Commented by PSP開発幼稚園 at 2006-04-15 15:46 x
>コースケ氏
だから言ったのに、DGEN1.40では「グラナダ」は見づらくてゲームにならない。
「SEGADRIVEA23」なら、全く残像が出ず、ゲームとして遊べる。
違うものなんだよ。
まだえBOOT対応は時期早い気がするケド。別館にある奴で動かないなら、VER###
は、動かないってコメント入れてよ。それだけが貴重な情報なんだから。それさえあれば
えBOOT対応になる可能性がある。なければえBOOT対応になる可能性は無い。
■つまり、そおいう事。わたしの口からは説明したくなかったし、巧い説明も出来ない。
エミュの作者もだたの人間だ。
ゲームで遊びこんでる奴もいれば、単に起動したからいいやで満足しちまう奴もいる。
それ以前に「手間」をかける時間など、とれやしない。「現実世界」は厳しいから、「エミュ作って遊んでる暇」
等とれやしねえ。
わたしは「時間が勿体無い」から、「エミュなど作りたくない」それが本音。
しかし、「誰もまともなメガドラエミュを作ってくれない」それが現実。
だから「無理に時間を割いて」コツコツやってる。最近ブログの更新が少ないのも同じ理由。
「ブログ書くと、開発に時間が取れないから無理だ」それが結論。
裏に生の人間がいて、そいつはプロではないし、金は別口で稼がにゃならん。それを忘れるな。
■このまま愚痴書いて終わりにするのも癪だから、補強の改造ネタ。
「グラナダ」は「わたしが吸い出した奴」と「怪しげなサイトからDLした奴」は、1バイトも違わず、
完全にバイナリ一致した。つまり、「ハック版」は存在する可能性があっても、海外版やバージョン違いは存在しない。
正規版ならバイナリ「BIN」形式のオフセット0x18eが0xf6で、0x18fが0x32。それ以外はハック版だ。
「ZIP」は展開し、「SMD」は「BIN」に変換する事。念のため。
で、当然「正規版がある」として、話を進める。
□99機改造。
ファイルを比較しています : original.bin と kaizou.bin
0000018E: F6 F7 //チェックサム修正
0000018F: 32 4E //チェックサム修正
00002F09: 03 63 //初めからデフォルトが99機
00003799: 00 01
000038D7: 06 63 //99機まで
000038E9: 06 63 //99機まで
0000390F: 00 01
じゃな。
■現在、「えBOOT」について、判っている事。
□事実1
DGENは最新版もGCC344だ。
それは「EBOOT.PBP」をバイナリエディターで覗けは書いてあるから、確実。
DGEN100は起動する。(GCC344+ZLIB)
DGEN140は起動する筈。(なぜなら、未だにGCC344だから)
□事実2
DGEN100をGCC344ではなく、GCC400で作成すると遅くなる。
だから本家のSYNZ氏は未だに344。
□事実3
管理人のDGE10_A00は、
DGEN100を(GCC400のみ)に移植したもの。(当然遅くなった)
だからZLIBはリンク失敗してZIPが読めなくなりPNG(画)も出なくなった。
□事実4
それ(事実3)から数ヶ月。SEGADRIVEはGCC400に最適化した。(当然速くなった)
少なくともDGEN100よりは速い(OUTRUNとか苦手分野もある)
DGEN140と速度を比べると、遅いのもあり、速いのもあり、また対応ソフトも違う。
現在ZLIBは止めて(RUKAさんの)UNZIPLIBに移行している。
(本家はもう使わないで欲しいらしいが、原因を追求したら安定動作出来る事を発見したので本格的に使用中)
□事実5
GCC344は移行しようと思えば、誰でも可能。不確定要素がない。
GCC402(PSPSDK)はnko氏が、コメント入れてる様に、巧くいけば良いが、失敗すればやり直し。
またSVN経由での更新なので、VER整合が「運」に左右される。(元がVERUPしなくなれば、理屈上
誰でも成功するようになる筈だが。現状微妙らしい。←少し一ヶ月グライ古い情報。もう安定したのかな?。
ワカラン。)
□事実6
RIN132はGCC400で(?)、つまりはSEGADRIVEと同じ方式だ。だが過去版はGCC344だった筈。
別館の、RIN132A00はGCC400、に移行したものだが、ZLIB関連は触らなかった(っていうか初心者で、
ワカランから手をつけなかった)これを、コンパイルしてEBOOT.PBPにした人(nko氏)がいる。
toolchain.shを走らせSVN更新をし、GCC402(PSPSDK)で、別館のRIN132A00の
「MAKEFIKE(自動作成バッチ)のGCCのVERを400→402」にしただけで、ZLIB関連もPNG(画)も
正常動作したそうだ。
これと同じ環境が構築出来るなら...
(別館のどのVERでも、SEGADRIVEをその環境で作成するだけで、全てえBOOT起動するのではないか?
という疑問がある)
何れにしても環境が構築には技術がいるらしい。失敗すると、夜中から朝までかかってやっても、
総て初めからやり直しになる模様。私は初心者でこの辺が、ヨクワカラン。
□事実7
GCC344、GCC400は、「startup.S」というプログラムを記述する必要がある。
が、GCC402(PSPSDK)では、その方式で作る事も出来るし、それをシステムに任せる。事もできる。
スーパーファミコンエミュのSNES、TYLや恐らく「psp_genesis 0.15」それに、
「NEOGEO CDZ Emulator for PSP 0.3.1」もシステムに任せる方式。
所定のライブラリインクルードして、たったの2行マクロを加えるだけ。
具体的に、「NEOGEO CDZ Emulator for PSP 0.3.1」の場合は、
/* Define the module info section */
PSP_MODULE_INFO("NCDZPSP", 0, VERSION_MAJOR, VERSION_MINOR);
/* Define the main thread's attribute value (optional) */
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
これだけ。(PSP_MODULE_INFOがあれば良い。startup.Sのリンクを止め、xmain()→main()に変更する。)
ちなみに使ったtoolscain.shは、 「psptoolchain-20060110.tgz」 だそうだ。
(だがこれは中身がSVNの自動更新だから同じ事にはならない。つまり同じ事をしても同じ結果にならない)
同READMEより無断転載。
>NEOGEO CDZ Emulator 0.3.1 for PSP
>
>現在使用しているPSPSDKは SVN revision 1812 です。
>
<中略>
>※ファームウェアVer.2.0以上で、EBOOT Loader等を使用する場合の制限
> スリープはできませんのでご注意ください。実行するとフリーズします。
> NEOGEO CDZ Emulator側で対応することも不可能ですので、ご了承ください。
つまり、上記の場合は、「toolchainの名前」は関係なくて、SVNのrevision番号が非常に重要。同じrevisionなら、
同じEBOOT.PBPになる。が、違えば当然変わる。
私が現在把握してるのはこの辺。(初心者だからワカランのです。あなたと同じ。何か解かればコメントへ)
簡単な対応として、SEGADRIVEA24で、DGEN100とまったく同じ「startup.S」を使用してみた。
但し「STUBしてる名前」は違うが、それは仕方ない。
駄目かもしれないが、トライして試て。
■それからもう一つ、ぼけーっとしてるだけで、えBOOTが勝手に進化して、いつのまにか
動くなるようになる可能性もある。(ごめんそれも言い忘れた)
「えBOOTローダー0.96」って何時の?もっと新しいのなかったっけ?
さしあたり、まず「えBOOT」詳しく調べあげるのが近道かもしれん。(1秒でも最新版を探せ)
■■それから、開発もいいけど、今遊ぶ事の方がもっと重要だと思わんか?グラナダ、今日今すぐあそぶなら、
液晶ぼろぼろでも、残機99にして、遊べー(エンディングまで)。取り敢えず。それもまた正しい使い方。
改造して欲しいソフトがあればこのページ「コースケ氏。やっと本質に気がついたな。」まで、コメント。
ただし「その際のみ」は「ソフト名以外の無駄な事」を書かない方が良い。(法律を遵守してるなら問題ない)
出来れは、この写真に写ってるソフトがいい。なぜなら、ここにあるのは、確実に吸出し済みのソフトだからな。
この写真:http://ameblo.jp/pspdevblog/entry-10007838227.html
ただしVRは駄目だよ。ありゃ無理だ。それからVER違いと言う物も若干存在する模様。
(こっちだって時間無いんだから、どれか一本ね。どおしてもちゅーなら考えるけど、せいぜい三本が限界)
■PSPで普通に作るとグラナダが遊べないという事実。だって、「遊んで試なきゃ絶対に気が付かない事実」なんだぜ。
「グラナダ」以外にも残像が残るソフトは、思いっきり(全然)遊べないな。現状SEGADRIVEA24でソニック1が
FSKIP1、22050なら、残像がないからバリバリ遊べるんだか。他のエミュはどおなんだろ?
→「ソニック1」は予想した程ではないが、やはり「ボディーブロー」の様に、効くから長く遊べない。他も同じ。
まあ、PSPは長く遊ばない。って説もあるけど。でも、わたしの場合は「リジューム」に入れて長く遊ぶんだが。
「達人」はかなり凄い残像。synz様、ここ読んで対応して欲しいな。世の中1.00や1.50なんて少数派なんですってば。(注:ちょいと勇み足かも、気長に待ちましょ?)
1.00沢山あるのはRUKA様ダケ。いいなPSP転がし。なんちゃって。
SEGADRIVEA24とDGEN140、両方使ってるわたしに言わせてもらえば、DGEN140残像疲れるから、
遊びたくない。実は本音。それからわたしの奴、真似して(MPUのINT多重割り込み)対応ソフト。
「Z-WINGの音とか」ちと増やして欲しいなぁ。ソースの都合もあるだろから、出来ればですけど。
■■噂の「AIR BUSTER」じゃなくて、「AERO BLASTERS」を試してみた。
これはもちろんACの「AIR BUSTER」のメガドラ移植。ACの奴はKANEKO開発NAMCO販売だったな。
DJBOYはKANEKO開発SEGA販売なんだよな。メガドラ版は、出来は結構良い感じだが、ステージを圧縮
してる為、展開時間が結構かかる。そうだな。PSのロードの長いのくらい。ROMなのに。
ともかくDGEN140でやってみた。設定はFSKIP1、22050。妥当な線だ。残像は結構目立たない気がする。
もしAC版をPSPに(エミュ)移植するなら、この画質になるだろ。だから残像の件はそれなりに軽視出来る問題ではない。
頭痛い。
何処が悪いのか良く判らんが、結果的に目が疲れる。それ程気になる程ではないが。但し一箇所だけ。
自機の弾が薄すぎる。
こんどはSEGADRIVEA24で試す。設定はFSKIP1、22050。これも妥当な線だ。つまり大雑把に言って、
(遊ぶ分には)速度はほぼ同等だろう。SEGADRIVEは実機の速度を追求してるので、より実機っぽい速度になる。
(実機で遅いところは遅く、実機で速い所は速く)残像は出る。一面のビルも残像出てる。弾だって出てる。でも、なんか
やりやすい。目も疲れない。残像は確かに出るんだが、直ぐ消える。DGENのように長期間に渡って残る残像
は、やっぱ目が疲れる。全体としては残像が少ない。でも出てる所はDGENより目立つ気がする。二面のボスは、
全然違った。DGENでは残像出るまくりで、訳も解からずやられてしまった。SEGADRIVEは残像出ないから
簡単。ちなみに画面全体把握出来て、実は実機より簡単。
気が付いたんだが、まずPSPの方向キーは、若干操作しずらい、その為。実機よりやられやすい。しかし、PSP
は画面が小さい。その為、「AERO BLASTERS」では画面全体を常に把握出来て、やられにくい。全体として、
上手くバランスが相殺される。チョビット簡単になるかな。ちなみに高速スクロール面は、実機より簡単。それと、
ステージ間の待ち時間が実機より微妙に少し短い気がする(速いほうが嬉しいんだが)
だから対して無い残像が余計気になるな。うーん評価はどっちもどっち。でもシューティング遊ぶなら、
やっぱSEGADRIVEの方が断然遊びやすい。っていうか端から「シューティング向け」に開発してるんですけど。
■それでもなんか別のソフトをPSPで作るなら、やっぱ残像の件は無視できない問題だよ。
それは市販ソフトも同じ。わたしは初期型PSPが出て、友達が「三国無双」込みで買い。
画面見たら、残像が...
なんか納得いかなかった。で、調べたね。液晶について。PSPの液晶は中間色の反応が異常にトロイタイプ。
ナムコミュージアムのラリーXやってみ。とてつもないから。原理的にインベーダーゲームの白黒オンリーなら、
殆ど残像は出ない。そういう液晶の特性だな。
PSP2では残像出ないタイプにして欲しいなあ、出来ないんだろな。きっと。
(画面の(横)解像度が高いと、液晶ドライバ(ハードウェアー)のリフレッシュ速度が必要。つまり高速動作。
PSPの(縦)解像度って速度が出ないからインターレースにして、誤魔化してるっぽいじゃん(言ったら駄目?
だってゲーマー目だから実は見えてるもん。知らない方が幸せな事もある)
高速動作はバッテリー喰う。つまり次世代機までおあずけ。だからあの液晶と組み合わせる。ってな落ちだと思う)
理屈上はCRTC直接弄れるのなら、解像度を下げて(だってエミュなら解像度いらない)リフレッシュレートを
非常識な程あげて、残像を少なくする事は原理上可能。だが妄想ネタだな。誰かハックしてくれない限り。もし、
そんな事が可能なら、色々変わるんだか。現状PSP1.00のプログラミングでさえ、所詮コップの中の水。
さすがにそんなのOSがフックして落としちゃう。実現には絶対オリジナルOSが必要。つまり妄想ネタ。だが、
万が一穴があれば(デバッグ用途とか)この限りではない。
それにそんな事しても液晶ドライバの仕組みから、単に写らなくなるダケだろな。(タブン)
やはりハードウェアー代えないと、つまり無理。
■「AERO BLASTER」再チェック。
こちらのSEGADRIVEA25で、FSKIP0、5512ならそれなりに動くので、もう一回チェックし直してみた。
DGEN140のFSKIP0、11025を許容範囲とする。場合の話。
両方、似た拠ったかの速度。似たか拠ったかの音質。数fpsはまあ誤差ちゅー事にする。
で、SEGADRIVEだとFSKIP1とは別ゲームになる。なんかメガドラになる。多少トロイけどな。
残像は殆ど(気になるものは)ない。(ビルとか気にならん、まあ遅いからアテにはならん。が50fps前後。
中ボスの時だけ44fpsグライまで落ちる。ボスは50fps前後)
二面の高速面。これもなんかメガドラって感じ。何がそうさせるのか理屈はワカラン。
で、ボス。これはFSKIP1だと残像ないのに。FSKIP0だと残像でゲームがやりにくい。
丁度さっきのDGEN140+FSKIP1の時と同じような感じ。ここはやりにくい。(で、死ぬ)
次、DGEN140で、FSKIP0のテスト。やりにくい。残像でやりにくい。ゲームの速度がトロイのは二の次。
あと、pspgenesis0.18cだけじゃなくて、FSKIP0レベルではDGEN140も転送方法に問題が出る。FSKIP1では
問題なかったのに、FSKIP0ではガチャガチャして見難い。それでもpspgenesis0.18cのようにゲームが出来ない
程見にくい訳ではないが、やっぱ見難いよ。VSYNC-ONでも速度低下なし。らしいが、これは落とし穴だな。
FSKIP0レベルになるつもりがないのなら現状で構わないのかも知れないがFSKIP0で問題が出る。
自機も上下に動くと残像で薄くなって、何処まで自機なのか解からん。つまり当たり判定が解からない。だから、
ゲーマーには無理。SEGADRIVEA25ならFSKIP0でそんな事にはならんよ。高速面は上下に動くとバンパー
消えちゃう(薄くなる)から、ゲームに関係が無いが、気分が嫌。それに背景も残像で解かり難い。なんか気分が半減。
$マークの黄色い金は残像でゲームに支障が出る。ちうか自機が見にくいからか、原因はどっちか
ワカランが、自機の弾も薄くて良く解からん。これが全体的にゲーム性を落としてる。
2面のボス。背景が残像で完全に消えちゃう。だから反ってゲームがやりやすくなる。不思議なものだな。
とにかく二面のボスはやりやすくなるが、それ以外はちょっと、DGEN140+FSKIP0はやる気がせんな。
却ってDGEN140+FSKIP1の方が良いよ。現状。
一方SEGADRIVEA25はFSKIP1よりFSKIP0の方が良い。おかしな転送もしないから、背景がガチャガチャ
する事がないからゲームに集中出来るし。弾がとても見やすい。自機の弾もはっきり見やすい。
2面の$も自機も$も見やすいから、確実に取れるし、取り逃した時は、パットの操作ミスのせいなので、判り易い。
DGEN140+FSKIP0だと、残像で何処に合わせて良いのか解からんもん。で、取れなくてもなんか悔しくない
だってどおせ残像でちゃんと見えんもん。でもSEGADRIVEだとちゃんと見えてるから、取り逃すとなんか
悔しい(所詮ボーナスなのに)。ああ、もっとFSKIP0が速くならんかな。せっかく遊べるのに、もったいない。
でも結局SEGADRIVEA25が遊べる。だって残像出ないもん。現状はそんな所。未来はワカラン。
ゲーマーなら、全然違うと思うよ。シューティング以外のゲームなら、ともかく。シューティングは動くなら結局
SEGADRIVEA24の方が遊べる。あと「TF4のFSKIP0」、(22050グライ)もトロイの承知なら遊べる。
「pspgenesis0.18c」はドンナ設定にしても結局遊べなかった。変な転送かけると、シューティングは結局遊べない。
(一本足打法で待つてたらあ♪)
http://pspsoftware.ddo.jp/wiki/?EBOOT%20Loader
の最後の対応リストに
RIN ver1.2 △ 0.9 メニュー画面で↑にスクロールしっぱなしになるがゲームプレイ中は正常
がありますが、これは本当に起動可能なんでしょうか?
(別にROMは読まなくても良い。「起動するか?」が知りたい。あと「HOME終了可能か?」が知りたい。)