GBJzMk-IIアサルト改レボリューションZフォーエバーTypeRエターナル

@ Ga氏のサウンドエンジンを搭載して音が出るようになりました。

A 適当に横向きに対応しときました

B 速度犠牲にするけど、微妙にワイドっぽいものも。

C Pシリーズ用に、SPへのキャッシュ機構搭載。約700KBまでの.GBか.ZIPファイルをキャッシュできます。 これによりSDカードアクセスによる速度低下を回避できます。

D 905以外で動くかどうかは知らない。240x320ワイド対応機なら動きそう。[追記]他のも置いておく。ちなみにメガアプリで903以降用。


 DOWNLOAD (240x320 ワイド)
 DOWNLOAD (240x426 フルワイド)
 DOWNLOAD (240x240 ショボ)
 ベンチマーク
 クリック募金

・フルワイドは横長すぎだしその分処理重いので、一番上のワイドあたりがオヌヌメ。

・ちなみに横向き時のキー配置は、真ん中の列の2,5,8,0キーを用います。

・周波数の変更後はROMの再読み込みしたほうがよさげ。

・音量0に設定すれば音出力を停止できます。

・しかし諸々整合性のためPCMの合成だけはしてるので、音無しバージョンのエミュより若干遅くなるかも。

・音無しのときのステートセーブをロードすると少しのあいだフリーズするかも。自分の環境ではしばらくしたら復帰した。

・偽装系はのけといた。


 更新履歴

[071203] Ver.2.00
作った。
[071203] Ver.2.01
弄った。げ、DoJaエミュと実機とじゃ回転拡大描画の座標系がなんか違う(;´Д`) なんじゃこりゃあ。[追記] 直した。
[071204] Ver.2.02
一部の設定の自動保存 画面スタイル、音量、スキップ 細かいfix
[071204] Ver.2.03
他の解像度版も。
[071204] Ver.2.04
SPへのROMキャッシュ容量を709KBに増加。700KBあればかなりの数の1MB ROMが保存できると思う。 また非.zipファイルは自動でGZIP圧縮して保存します。ただし処理に時間がかかるのでzipファイルの用意推奨。 そして今までの非圧縮ROMデータは読み込めないので、そんな場合は再キャッシュを。
[071206] Ver.2.04b
バグ等修正、GZIP圧縮がやたら時間かかるので容量が足りてるときはそのまま保存に。
[071219] Ver.2.05
Ga氏の着メロ形式のサウンドエンジンにとりあえずの対応。Ga氏GodJob!。音の種類変えたときは再起動なりリセットなりしたほうがいいのかもしれない。よくわかんね。 今のところ着メロ形式のときは音量のみ設定可。
[071228] Ver.2.06
Ga氏のサウンドエンジンが更新されたので入れ替え。あと細かいところの修正とか。

 操作説明

ROM読み込み -> 登録
指定名のダミーファイルをSDカードに出力します。その後PCから同名のROMを上書きしてください。
ROM読み込み -> SD
上書きしたROMデータを読み出してプレイします。.gb .zipの拡張子のデータを読み込むことができます。
ROM読み込み -> リストアウト
SDカード内のROMデータとセーブデータの一覧をSDカードに出力します(LIST.txt,LIST2.TXT)。手動でリストデータを書き換える場合は、英半角11文字以下のみ使用可であることに注意。
ROM読み込み -> リストイン
ファイル一覧をSDカードから読み込み、ダミーファイルを生成します。(一旦リストアウトを実行し、ダミーファイルを生成してからリストデータを上書きして利用してください。)
ROM読み込み -> toSP
SDカード内のROMデータをSP(スクラッチパッド,本体)にキャッシュします。.gb .zip の拡張子で、約709KB以内のデータを読み込むことができます。
ROM読み込み -> fromSP
SPにキャッシュしたROMデータを読み込みます。これによりSDカードアクセスによる速度低下(P端末系の問題)を回避できます。
RAMセーブ
バックアップRAM上のセーブデータをSPへセーブします。合計64KBまで利用できます。ロードはROM読み込み時に自動でされます。
スキップ
フレームスキップを指定します。処理速度を調節してください。
ズーム
画面を拡大表示します。横向きワイド時はズーム設定にすると補完処理がなされ、少し画面が滑らかになります。。
回転
通常、横向き、横向きワイド、横向きワイド全画面を選択できます。横向き時のキー配置は2,5,8,0がそれぞれSELECT,START,B,Aに対応します。
周波数
小さいと音質が悪いが処理は軽く、大きいと音質は良いが処理が重くなります。あんまり弄らないほうがいいかも。
音量
0を指定すると音出力を停止し、処理が軽くなります。
SAVE SP or SD
SPまたはSDにステートセーブを行います。SPは全タイトルで3つまで、SDは1タイトルあたり9つまでセーブできます。
LOAD SP or SD
SPまたはSDのステートセーブをロードします。
その他の項目
それっぽくなる。


 MEMO

http://www.geocities.jp/nullpoy700/ Ga神のサウンドエンジンはイイモノです。
http://www.ix.sakura.ne.jp/~yoshi/ GBのアイコンを拝借してきました。
http://pyon.org/furukawa/GBj.html nullpoy作者436氏に感謝。
http://www.moreread.net/mario/emu/gbj/GBJ.htm 旧バージョンはこちら。

DoJa5.1からオプションのCanvas2を使えば、システム側で画面を回転してくれる。
P905のためにあるのかと思って実装したら対応していませんエラーが出て噴いた。
どうもDrawAreaを逆に書いておかないとだめっぽい気がする。

g.setFlipMode(Graphics.FLIP_ROTATE_RIGHT);
g.drawScaledImage(imgTurn,0,0,320,240,40,65,160,144);
の挙動がおかしい。転送元画像の座標指定が、実機では回転前の座標、エミュレータでは回転後の座標になってる。うんこ。

自分も一応速度測っといた。特に高速化とかした覚えはないので速くはないと思う。
GBJz(ry スーパーマリオランド スタートボタンを押してゲーム開始後放置
P905i SD未使用 キャッシュ機構使用
fs=5  音8KHz  通常画面     77 fps
fs=5  音無し   通常画面     125 fps
fs=5  音8KHz  ワイド拡大表示   67 fps

アプリの名前は雑誌にすっぱぬかれた時のささやかな抵抗?
しかし905は速いなぁ。PCMの音ありでもなんとかプレイできそう。

DoJa5.1からオプションAPIで垂直同期を取る命令が追加されてる。
処理が間に合っている場合に限り、これを利用すれば滑らかに画面が動くかも。fs=2で音なしなら結構いけるかな。906の処理能力に期待しとこう。

全画面表示のサイズがよくわからなかったので、細かくDrawArea変化させながら実験したところ、P905iでは240x426が自動拡大有りでの全画面サイズだった。 iモードJAVAスレではN905は240*427とか書かれてたが、機種によって違うのかね。Pじゃだめだった。



 SOURCE


そろそろ就職。結局まともに整理してないけど一応ソースおいときます。
汚いのであんまり参考にならないよ。

気が向いたらまた自分でも弄るつもり。
ソース(080321)