#15いつのに間にやらNesterJ?(2006-01/30) | //www.旧型、PSP開発幼稚園.game.jp/(本館)

#15いつのに間にやらNesterJ?(2006-01/30)

#15今日の夕食はお魚さんの予定(2006-01/30)

お魚さんの「MDP22S」を

初めて

あけてみた。(2006-01/30) 私はこのバイナリを落とした事も、ましてや実行したことも無い。そのうちやる。 いやバイナリはどっかに落とした筈。 ソース見てみた。(うん綺麗じゃん、嘘つき。READMEにサウンド汚いって書いてある) 例のさとうたつゆき様のコア(っていうか世界中探してもまともなのはそれしかないんだから、 それに決まってるじゃん) いいよ、もし駄目なら、こんなの簡単に入れ替えられるから。 他も見る、うんOKそう。 MUSASIは3.3。が、Verはまだ不明。(経験が身についてきた) 肝心のメイン系はまだ見てない。(だめじゃん) 「UNZIPLIB.A」があったから、中を覗く。 「EE-GCC322」、でもしかしてこれって「PSP版NESTER-J」の奴?っと、 ピーンときた。 バイナリ一致。 つまりは、全く同じやつ。 じゃあ、ほっぽらかしてある、「PSP版NESTER-J」のコンパイル進めないと、
うちは、そういえば、まだZIP開けられない程の低レベルなんだっけ、今日はこれやろ。 うまくいったら、全部にリンク出来るし。 どうしても、だめなら、PC方式に改造しちゃお。 なーーんか良くしらないが、PSPはとりあえず、読んでみて、駄目ならエラーフックして、 また読んで、ZIPならOK。見たいな複雑な手順を踏むっぽい。よく判らんが。 ここが判らんかったら、拡張子(や中身)から強制判断するよう改造してしまえって話。 いきなりやったら駄目だろから、良く調べがつくまで手をつけない事にして、保留になってる。 これをなんとかしよ。って話。うまくいくといいなあ。
ここがRUKAさんのぺえじだな。(unziplibのペ-ジ) ttp://rukapsp.hp.infoseek.co.jp/PSPSoftware/Unziplib.htm Verが判らんから、全部おとしてしまえ。 よく見たら4つの内2つは同じもの。(バイナリ一致) つまりβ版、100BIN、100SRCの三つ。じゃあ後の2つしか関係ないや。
まずBIN。バイナリ一致。OK。 次、ソース。この前は2006-01/15か。そんな古い話もう忘れたよ。(二週間前) どおしても判らなかったら、この日記を読むよ。常人には判らなくても、私には判る筈だから。っていうか、 管理人。日記つけたの、生まれて初めてだ。管理人。自分がそんな七めんどくさい事出来るとは、 思っても見なかった。意外なもんやなぁ。ブログ初めてじゃなくて、日記初めてだったとは、奥が深い。 (そろそろ、本物の夕食が食べたいです。18:35→夕食騒動→18:33ふぅ食べ終わった)
で、make
BINARY = out OBJECTS = adler32.o crc32.o infback.o inffast.o inflate.o inftrees.o\ ioapi.o uncompr.o unzip.o zlibFileMemory.o zlibInterface.o\ zutil.o all: $(BINARY) $(BINARY): $(OBJECTS) psp-ar rcs unziplib.a $(OBJECTS) %.o : %.c psp-gcc-4.0.0 -O3 -fomit-frame-pointer -g -mgp32 -mlong32 -c $< -o $@ clean: del /s /f *.o *.map
まあ、わざわざ書く程のもんでもないが、証拠。 うん。エラー、ワーニングなし。こうでなくっちゃ。(18:40)
もう何度もいろんな所で出てきてるEE-GCC332版の「UNZIPLIB.A」は199592バイト。 わたしが今コンパイルした。PSP-GCC400版の「UNZIPLIB.A」は164584バイト。
せっかくだからPSP版NESTER-Jコンパイルしてみよ。最後の最後までやってあるしね。(19:43)
menu_submenu.c:290: warning: pointer targets in passing argument 1 of 'MessageBo x' differ in signedness menu_submenu.c:293: warning: pointer targets in passing argument 1 of 'MessageBo x' differ in signedness menu_submenu.c:298: warning: pointer targets in passing argument 1 of 'MessageBo x' differ in signedness menu_submenu.c: In function 'MessageBox': menu_submenu.c:468: warning: pointer targets in passing argument 2 of '_strncpy' differ in signedness menu_submenu.c:469: warning: pointer targets in passing argument 1 of '_strlen' differ in signedness psp-ld -O0 nes/cpu/nes6502.o nes/cpu/nes_6502.o nes/ppu/nes_ppu.o nes/apu/fdssnd .o nes/apu/nes_apu.o nes/apu/nes_apu_wrapper.o nes/apu/nes_exsound.o nes/apu/nes _fme7.o nes/apu/nes_mmc5.o nes/apu/nes_n106.o nes/apu/nes_vrc6.o nes/apu/nes_vrc 7.o nes/nes.o nes/nes_config.o nes/nes_mapper.o nes/nes_rom.o nes/snss.o nes/fil eio.o nes/nes_crc32.o nes/libsnss/libsnss.o emu_main.o loadromimage.o soundmanag er.o screenmanager.o inputmanager.o startup.o main.o pg.o menu.o filer.o sound.o debug/debug.o string.o menu_submenu.o unzip/unziplib.a -M -Ttext 8900000 -q -o out > NesterJ.map outpatch make: outpatch: Command not found make: *** [out] Error 127
きたきた。ここまでくれば勝ったようなもんでしょ。(19:53) $ make psp-ld -O0 nes/cpu/nes6502.o nes/cpu/nes_6502.o nes/ppu/nes_ppu.o nes/apu/fdssnd .o nes/apu/nes_apu.o nes/apu/nes_apu_wrapper.o nes/apu/nes_exsound.o nes/apu/nes _fme7.o nes/apu/nes_mmc5.o nes/apu/nes_n106.o nes/apu/nes_vrc6.o nes/apu/nes_vrc 7.o nes/nes.o nes/nes_config.o nes/nes_mapper.o nes/nes_rom.o nes/snss.o nes/fil eio.o nes/nes_crc32.o nes/libsnss/libsnss.o emu_main.o loadromimage.o soundmanag er.o screenmanager.o inputmanager.o startup.o main.o pg.o menu.o filer.o sound.o debug/debug.o string.o menu_submenu.o unzip/unziplib.a -M -Ttext 8900000 -q -o out > NesterJ.map outpatch modulename not found make: *** [out] Error 1
そんなバカなDGENの「outpatch」なのに。
$ make psp-ld -O0 nes/cpu/nes6502.o nes/cpu/nes_6502.o nes/ppu/nes_ppu.o nes/apu/fdssnd .o nes/apu/nes_apu.o nes/apu/nes_apu_wrapper.o nes/apu/nes_exsound.o nes/apu/nes _fme7.o nes/apu/nes_mmc5.o nes/apu/nes_n106.o nes/apu/nes_vrc6.o nes/apu/nes_vrc 7.o nes/nes.o nes/nes_config.o nes/nes_mapper.o nes/nes_rom.o nes/snss.o nes/fil eio.o nes/nes_crc32.o nes/libsnss/libsnss.o emu_main.o loadromimage.o soundmanag er.o screenmanager.o inputmanager.o startup.o main.o pg.o menu.o filer.o sound.o debug/debug.o string.o menu_submenu.o unzip/unziplib.a -M -Ttext 8900000 -q -o out > NesterJ.map outpatch successed filesize:000D3513 modulename:000884A4 scemoduleinfo:0009F4E3 elf2pbp outp "NesterJ NES Emulator" Elf2Pbp v0.3 - loser 2005 successfully generated pbp file
ふぅ。今度は「outpatch」をパッチしてOK。(19:58) なぜか「HelloWorld」だった。これを「USERPROG」+$00+$00に変更。
nester107の正規バイナリの「EBOOT.PBP」は738504バイト。 わたしが今コンパイルした。「EBOOT.PBP」は879320バイト。
FC_READ_UNMAPPER PSPに入れてマッパーなしの (うちの自作吸出し機ではマッパー0のみ) 「マッピー」(ZIP圧縮)と 「マッピー」(圧縮なし)を 入れ、いざ鎌倉。 討ち死にです。 カートリッジは読む。その後ブラックアウト。電源しか受け付けない。
しかし、普通のカートリッジとを読むと直ぐ、ブラックアウト。 圧縮カートリッジを読むと、バーが伸びてから、ブラックアウト。
動作が違う。 恐らく「unziplib.a」のリンクはちゃんといってる。が、もしかしたら、「UNZIPLIB」内の怪しげな(失礼) ルーチンを使ってるのが原因って事も、十分考えられる。(malloc)とか。(20:17)
PSP_NesterJの報告スレ読んで時間つぶす。 RUKAさんのHPに旧バージョンのソースがあるの発見(遅いって)でDL。
「NesterJ_v1_01src.zip」をコンパイル。EBOOT.EBP生成 PSPに入れて実行。 カートリッジは読む。タイトル画面が出る。が、バグっている。 キー受け付けない。電源キー、長押しでOFFは可能。 しばらくすると、強制電源断。(今日はもう寝ます、明日用事があって朝早い。23:01)
MAPPY_BUGGY_TITLE 自作吸出し機。 マッパーの対応の吸出しソフトを作れば、マッパーありでも吸い出せる奴もあるかもしれん。 こいつは、初期型ファミコンをぶち壊して、SRAMのあたりに線をつけた。PPUにもつけたかも、 だけのハード。これのGB版とメガドラ版とあと作りかけのSFC版がある。 全部直結で吸い出すという、頭悪い(しかし考えようによっては豪華な)ハード。
PCにパラレルポート増設して、デュアルパラレルポートで、一気に吸い出すという、 世界一、金のかかってない吸出し機。実質数百円でできた。(時間も1日)
しかも、リードのみで切り替える方式のマッパーなら、こいつで対応可能だ。