#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バイト。
PSPに入れてマッパーなしの
(うちの自作吸出し機ではマッパー0のみ)
「マッピー」(ZIP圧縮)と
「マッピー」(圧縮なし)を
入れ、いざ鎌倉。
討ち死にです。
カートリッジは読む。その後ブラックアウト。電源しか受け付けない。
しかし、普通のカートリッジとを読むと直ぐ、ブラックアウト。
圧縮カートリッジを読むと、バーが伸びてから、ブラックアウト。
動作が違う。
恐らく「unziplib.a」のリンクはちゃんといってる。が、もしかしたら、「UNZIPLIB」内の怪しげな(失礼)
ルーチンを使ってるのが原因って事も、十分考えられる。(malloc)とか。(20:17)
PSP_NesterJの報告スレ読んで時間つぶす。
RUKAさんのHPに旧バージョンのソースがあるの発見(遅いって)でDL。
「NesterJ_v1_01src.zip」をコンパイル。EBOOT.EBP生成
PSPに入れて実行。
カートリッジは読む。タイトル画面が出る。が、バグっている。
キー受け付けない。電源キー、長押しでOFFは可能。
しばらくすると、強制電源断。(今日はもう寝ます、明日用事があって朝早い。23:01)
■自作吸出し機。
マッパーの対応の吸出しソフトを作れば、マッパーありでも吸い出せる奴もあるかもしれん。
こいつは、初期型ファミコンをぶち壊して、SRAMのあたりに線をつけた。PPUにもつけたかも、
だけのハード。これのGB版とメガドラ版とあと作りかけのSFC版がある。
全部直結で吸い出すという、頭悪い(しかし考えようによっては豪華な)ハード。
PCにパラレルポート増設して、デュアルパラレルポートで、一気に吸い出すという、
世界一、金のかかってない吸出し機。実質数百円でできた。(時間も1日)
しかも、リードのみで切り替える方式のマッパーなら、こいつで対応可能だ。