07/18 01:08 明日明後日は作業になりそうなので月曜は豊洲のオクフェスにでも行くかのう… (bubu)
07/18 15:29 これ、「音が抜けている(鳴っていない)」のではなく、「1つ低いオクターブで鳴ってしまっている」ことが判明… https://twitter.com/syntaxerrors72/status/622282179221979136
(hepo)
07/18 15:32 ギャラガ'88 X68版の音楽は「基板ROMデータを逆コンパイル、自作のドライバ用のデータに変換して演奏」という実装になっている。なおこのときは「アレンジ音楽を入れる」ことが先に決まっていたので、「基板のドライバをコンバートして演奏」という選択はなかった
(home)
07/18 15:41 1オクターブ低く鳴っている(抜けてしまっている)のは「オクターブ0で演奏している部分」。コンパイラのミスで、「オクターブが0未満になったら8として演奏」という判断を「オクターブが0以下になったら」と記述してしまっていた。よくあるミス…
(maba)
07/18 20:34 pack alignment非互換の問題を持った行儀悪いC++コードを直す日。Win=8, Android=8, iOS(32)=4, iOS(64)=8で、iOS(32)はpack(8)を指定しても無効。正直「alignment依存コード書くな」をお願いしたい…
(simi)
07/18 20:37 ただ、pack alignmentの問題は「もうそれで動いちゃってて変更できないのよ」なことがわりと普通で、結局ちまちまと環境別アラインメント対応コードを仕組むしかなくてな…めんどいんじゃよ…
(sido)
07/18 20:46 同じようなトラブルを引き起こすものとしてendiannessの問題があるのだけど、これは今時だと大抵のひとは気にするようになっていて、しかも対処するとほぼ自動的にpack alignmentの問題も解消するので、最近はあまり見かけなくなったはずなんだが…いるところにはいるなと…
(suzu)
07/18 20:47 てゆーか、今時データのシリアライズに「メモリイメージそのまま」とかお行儀悪いことしないよね普通… :D
(subi)
07/18 22:15 @gorry5 つまり、「オクターブ0?8を超えたらクリップ」するはずのコードが、「以下/未満」を間違った上にジャンプ先のラベルがテレコになってて全然まともじゃないコードだったと…上限下限のオクターブはあまり使わないので気づかなかったんですな :D
(heze)
07/18 22:22 (
@syntaxerrors72)
@gorry5 詳細読ませて頂いていました。詳細ありがとうございます。当時から気になっていたこと、やっと理由がわかってすっきり(?)しました。確かにオクターブ下になってしまっている感じですね。歌ってて声域オーバーしてしまって声が出きらないときのような出音。笑
(mani)
07/18 22:30 なお、当該MMLのタイムスタンプは90年6月でした…ただでさえ休日返上の作業をしている日に、25年前のバグを探す行為とは…(苦笑
(mima)
07/18 23:04 struct hoge { double a; char b; } でsizeof(hoge)がいくつになるかとか、仕様で理解していたって実際に実行してみないと怖いところだけど、気にせずやっちゃう人はいる…
(rede)