流行ってるからやってみたけど10分じゃ無理だったよ。最初、WRAMを使わずにやろうと思ったんだけど、BCD(風の何か)を出力するのに使わ ざるを得なかった。後で気づいたけど"0\01\02\0...9\0"みたいな文字定数を用意すれ ば良かったのかも分からんね。 バイナリの生成はこう。.text .align 2 .global _start _start: b main .fill 0xc0-4, 1, 0 main: mov r5, #100 1: mov r7, #0 ldr r0, cr0 swi 0xff0000 add r8, r8, #1 mov r0, r8 mov r1, #3 ldr r6, fizz0 bl mod_print mov r0, r8 mov r1, #5 ldr r6, buzz0 bl mod_print cmp r7, #0 bne 2f mov r0, r8 bl print_digit 2: cmp r8, r5 bmi 1b sub pc, pc, #8 mod_print: swi 0x60000 cmp r1, #0 bne 1f mov r0, r6 swi 0xff0000 add r7, r7, #1 1: mov pc, lr print_digit: mov r10, #0 mov r11, #0 1: mov r1, #10 swi 0x60000 mov r10, r10, LSL #4 add r10, r10, r1 add r11, r11, #1 cmp r0, #0 bne 1b 2: ldr r0, wram0 cmp r11, #0 beq 3f and r1, r10, #15 add r1, r1, #48 str r1, [r0, #0] mov r10, r10, LSR #4 swi 0xff0000 sub r11, r11, #1 b 2b 3: mov pc, lr wram0: .word 0x02000000 fizz0: .word fizz+0x07ff8000 buzz0: .word buzz+0x07ff8000 cr0: .word cr +0x07ff8000 fizz: .ascii "fizz\0" buzz: .ascii "buzz\0" cr: .ascii "\n\0"で、こうなる、と。arm-elf-as crt0.s -o fizzbuzz.o arm-elf-ld fizzbuzz.o -o fizzbuzz.elf arm-elf-objcopy -O binary fizzbuzz.elf fizzbuzz.gba![]()
撮りためたTV番組をXvidでエンコしてDVDに焼き、DV501XDRで観ている。 デコーダチップがしょぼいのか、ビットレートを高くすると再生が間に合わなくなるの が難点だが、500kbpsくらいまでなら再生出来るようだ。安い割りには結構使えるよー な気がする。でもよく考えたら液晶テレビにD-SubのRGB入力がついてるので、ノートPC から直接出力しちゃえばいいんだよなーー。
ここのところヘビーローテで世界樹の迷宮サントラを聴いてる。88版の方が人気高そう (実際こっちだけあればCD2枚も要らないという意見を何度か目にした)だけど、個人 的には量子化ノイズを隠そうともしてないDS版が萌える。エイリアシングノイズが頻繁 に発生している点も萌えどころだ。適度なlo-bit / lo-rate感がレトロっぽさっつーか 空気を生み出していると思う。あぁこれがDS実機で鳴っているんだなーというか、そう いえば俺はDSを持っていないのだった。未だにPSPとNDSのどちらを選択するかで揺れて いるというか、PSPなら384x256が丸々収まっちゃうんだよなー。機能を絞ればX68000も エミュレート出来ちゃいそうな気がしてきたしかなりPSP側に天秤が傾いている。GEを 弄るのも面白そうだ。
というわけで、むっか〜しコピったThunderForceV Legendary Wingsをアップしました。 Thunder Force V - Legendary wings 確かPMDPPZだったと思うんですが、録音したものしか残ってないので演奏データはあり ません。 以下、うんちくなので読まなくていいよ。 p(^-^)q
巷で解説されている構築手順だとまずcygwinを入れるのが鉄板らしいが、msysが安定 してるので今更cygwinを入れたくはなかった。でも、構築中にやたらと引っかかった ので、最初から素直にcygwinを入れればよかったと反省した。 以下手順。 msys 1.0.10 / gcc 4.1.2 / binutils 2.17 / w32api 3.6 が既に導入済み。 更に msysDTK 1.0.1 / svn / wget をそれぞれ入れる。 GNU M4 1.4.9をビルド。 msys-autoconf-2.59 と msys-automake-1.8.2 を上書きで / に入れる。 /bin/autom4teにパッチを当てる。/mingw/include/sys/time.hにパッチを当てる。--- /bin/autom4te.org Wed May 2 12:16:16 2007 +++ /bin/autom4te Wed May 2 12:17:06 2007 @@ -87,7 +87,7 @@ my $freeze = 0; # $M4. -my $m4 = $ENV{"M4"} || '/bin/m4'; +my $m4 = $ENV{"M4"} || '/usr/local/bin/m4'; # Some non-GNU m4's don't reject the --help option, so give them /dev/null. fatal "need GNU m4 1.4 or later: $m4" if system "$m4 --help </dev/null 2>&amp;1 | grep reload-state >/dev/null";ようやく構築準備が整った。--- /mingw/include/sys/time.h.orig Thu May 3 07:36:41 2007 +++ /mingw/include/sys/time.h Thu May 3 07:36:58 2007 @@ -36,7 +36,7 @@ The timezone pointer arg is ignored. Errors are ignored. */ -int __cdecl gettimeofday(struct timeval *__restrict__, +int gettimeofday(struct timeval *__restrict__, void *__restrict__ /* tzp (unused) */); #ifdef __cplusplusダウンロードされたパッチの改行コードがCR+LFになっているのでLFで保存しなおす。 あとは$ svn checkout svn://svn.pspdev.org/psp/trunk/psptoolchain $ ./toolchain.sh -dを最後まで放置する。これで /usr/local/pspdev/ に環境が構築されるはず。 一応確認。$ ./toolchain.sh後で気づいたんだけどdevkitPSPってPSPSDKそのまんまなのね。toolchainが最新のもの になってるし、実行ファイルはあらかじめ全てstripしてあるので、こっちを入れる方 が色々と精神的だったかも。時間も掛からず経済的だし。$ /usr/local/pspdev/bin/psp-gcc --version psp-gcc (GCC) 4.0.2 (PSPDEV 20051022)コンパイルしたhello worldがPSPEで動くのを確認したところで満足して消した。$ /usr/local/devkitPSP/bin/psp-gcc --version gcc version 4.1.2 devkitPSP release 11 (PSPDEV 20060507)
意外だった。