ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

DX7のEditorを作った話

作ったと言ってもClaude Codeに丸投げしただけ。 自分で作業するより大量に素早く書いてくれるし、博学なので本当にコードを書かなくなってしまった。 自分のやりたいことを相手が作業しやすいように、いかに伝えるかというのが作業になってしまっている。 g…

幻想即興曲初めて通して弾いた

Cを練習していて、譜面を見ながら一通り進めるようになってきた。 ところどころパターンが違ったりしているので、暗譜はもうちょっとというところだが、思っていたより進んでいる気がする。 今まではA-B-Dと練習していたが、Cを始めたのでC-B-Dの練習をする…

幻想即興曲 進捗2

Dは音が飛ぶのでミスタッチだらけだが、先週くらいからやっとCに取り掛かっている。 10月から初めてここまで来るのに半年かかってる。 小節 小節数 パターン 暗譜 1-4 4 A ○ 5-40 36 B ○ 41-82 42 C 83-118 36 B ○ 119-138 20 D ○

Duolingo 1000日越え

前回書いたのが550日だったので450日経過したことになる。 そんなに経ったかと驚いている。 年末にセールがあってその割引率がずっと続くということで、ついにスーパーをサブスクリプションすることにした。 広告がない分XPが稼げるかと思ったが、暫くの間ア…

ハードオフで見つけたYDP-121

最新の電子ピアノを買いたい、と思いつつどうせ買うなら良いものをと思っているので金銭的になかなかなか買えない。 そんな中たまたまハードオフに行ったらYAMAHAのYDP-121が5,500円で置いていた。鍵盤が戻らない箇所があるのでジャンク扱いとなっていた。 …

幻想即興曲 進捗1

40小節まで思い出しながらだが暗譜できた。 小節 小節数 パターン 暗譜 1-4 4 A ○ 5-40 36 B ○ 41-82 42 C 83-118 36 B ○ 119-138 20 D 40小節覚えただけなのに、83-118は5-40(B)の繰り返しなので50%を超えたことになる。 (36 x 2 + 4) / 138 = 55.1% Cはト…

幻想即興曲はFizzBuzz

最近幻想即興曲の練習を始めた。 ゆっくりなら時間をかければなんとかなるのではないかと思ったりしていて最初の40小節までをマイルストーンとして挑戦中。 片手ずつなら譜面を読みながらなんとか追っていけるが、右は8拍で左は6拍と両手でリズムを合わせる…

Duoling 777日目

777日目になった。 トリプルXPブースト(XP 3倍)のクエストを必ずこなして、次の日の朝10分程度3倍になるのでその間にレッスンを2つくらいこなすというのがルーティンになっている。 そうしてるとクエストが一つクリアーになってもう10分とか延長になるのでも…

Xcode BETAでクラッシュ

Xcode BETAのシミュレーターで起動したら次のエラーが出る様になった。 Error enumerating all current transactions: Error Domain=ASDErrorDomain Code=509 "No active account" UserInfo={NSLocalizedDescription=No active account} Enable StoreKit Tes…

Duoling 696日目

最近はパールと黒曜石リーグを行ったり来たりしている。 チェスコースが新たに加わってチェスもしている。 チェックメイトで王様を追い込むパターンは答えがあるので分かりやすくどんどん回答できていたが、序盤の進め方になってからは正解が分からずどんど…

XIAOのPCBパターン資料

データはこちらに github.com

Space Invaders(11) - ビーム処理 3

RAMの0x2025で処理が分かれていて2まで説明した。 が、2の続きがあってビームが当たった場合alienIsExploding(0x2002)に当たり判定の結果を書き込んで終わっている。 0x2025を3にする処理がないので、爆発の表示をするところでされるのではないかと思われる…

Space Invaders(10) - ビーム処理 2

当たり判定のコードを起こしてみた。 コードはあまり綺麗ではないが当たり判定の雰囲気を視覚化した。 game_obj1.rb · GitHub movからgifにするのにAdobe Expressを使った。 MOV動画をGIFに変換|Adobe Express

r8080でゲーム機のエミュレート 5

前回は当たり判定がされてないというところで終わっていたが、当たり判定の箇所がわかったので、原因の特定は簡単だった。 Space Invaders(9) - ビーム処理 - ひとしれずひっそり VRAMを読み出して比較するのだが、VRAMの書き込みはできていたのに読み込みが…

Space Invaders(9) - ビーム処理

rst1割り込みの最初に処理されるのがビームの様なのでこちらから見ていく。 割り込みはrst1とrst2の2種類があり、画面上下それぞれのブラウン管の掃引が終わったタイミングで入る様だ。 正確には半分ではなくて上は96ラインの所らしい。X*1は224ラインあるの…

CLP-300メンテ

YAMAHA Clavinova CLP-300の鍵盤が戻りにくい箇所があって騙し騙し使っていたがバラしてみた。 前にバラしたことはあったがはるか昔で忘れてしまっていてこちらが参考になった。 www.youtube.com 元の位置がわかる様にマスキングテープで鍵盤に番号を振る 下…

Space Invaders(8) - キャラクター処理のループ

割り込みが入ってキャラクターの処理ループに移るがその部分を読んでみた。 ここら辺になる。 computerarcheology.com フローとか書いてみたがrubyで書き直した方がわかりやすそうなので書いてみた。 gist.github.com 処理内容 データの0バイト目(上位)と1バ…

Duolingo 550日目

順調に550日目まできた 嬉しい事にダイヤモンドリーグでトップを獲ることができた。 メンバーに恵まれたのとSUPERが3日間使える状態だったのと年末年始でお休みモードが幸いしてのトップだと思うのでマグレである。 取れるはずがないと思っていたタイトルが…

Space Invaders(7) - UFOの得点

0x1D54からUFOの得点表になっている。 https://computerarcheology.com/Arcade/SpaceInvaders/Code.html#SaucerScrTab ; Thus the one and only 300 comes up every 15 shots (after an initial 8). 1D54: 10 05 05 10 15 10 10 05 30 10 10 10 05 15 10 05 …

Space Invaders(6) - データ

データはROMに初期値がありそれをコピーしている。 https://computerarcheology.com/Arcade/SpaceInvaders/Code.html#CopyRAMMirror CopyRAMMirror: ; Block copy ROM mirror 1B00-1BBF to initialize RAM at 2000-20BF. ; 01E4: 06 C0 LD B,$C0 ; Number of…

r8080でゲーム機のエミュレート 4

IOの実装を進めた。 色々あるのだけと一番大きいのはシフトレジスタだ。 参考になるのはこのページで computerarcheology.com 最初は理解できなかったが16bitのシフトレジスタがあってout portの4番に書き込むと上位8bitにセットされる。 更に書き込むと前回…

r8080でゲーム機のエミュレート 3

キャラクターデータが繰り返しノイズの様に表示される現象が解決した。 CPI命令の処理が間違っていたのが原因だ。 CPI命令は次の1バイトとAレジスタを比較するが、次の2バイトが指し示すデータメモリーと比較していた。 2バイト命令を3バイト命令として扱っ…

r8080でゲーム機のエミュレート 2

割り込みを実装してみた。 途中までうまく行っていたが 10ポイントキャラの表示でおかしくなっている。 キャラクターデータが繰り返しノイズの様に表示される現象がでている。 今のところ全く見当が付いていないのと、実機の割り込みは60Hz毎に入るらしいが…

r8080でゲーム機のエミュレート 1

TK-80 save / load 実装 - ひとしれずひっそり あのゲームが動くのか? というのに手を出している。 i8080で動いているのでr8080で動かせるはずだ。 CPU部はすでに実装済みなのでゲーム固有のハードを実装すればうごくはずだ。 ただ、実行速度とか心配なとこ…

Duolingo 521日目

最近 XP 3倍のアイテムがもらえる様になって XP が稼ぎやすくなった。 と、喜んでいたのだが今まで HP が無制限だったり広告が出なかったりしていたのがなくなってしまった。 長く継続することへのご褒美くらいに思っていたが、たまたま何かの不具合でそうな…

Port 5000が競合

MacでPort 5000で起動しようとしたら既に使われていた。 Qiitaに解決策があった。 qiita.com AirPlay レシーバーをオフにすればいいようだ。

Duolingo 467日目

Duolingoで新たにMathとMusicのコースを選択している。 これらは英語で問題が出されるので躊躇していたが、今のところそれほど難しい表現が出ていない。 Mathで文章問題がたまに出て理解が足りてない時もあるが文脈から判断したりしている。 四則演算から分…

YAML.load に permitted_classes を渡す

Time を 書き出しているYaml ファイルの読み込みで以下のエラーが発生。 `find': Tried to load unspecified class: Symbol (Psych::DisallowedClass) YAML.load に permitted_classes を渡す必要があるようだ。 stackoverflow.com YAML.load(filepath) # ↓ …

Alertが表示されない

SwiftUIでalert()を使ってアラート表示している箇所があるが、いつの間にか表示されたりされなかったりする様になっていた。 ネットで調べてもしっくりくる回答がなかった。 画面遷移直後に表示される箇所があり、それが表示されると以降も問題ないことがわ…

TK-80 save / load 実装

TK-80のモニターでは save / load はシリアル出力して外部に回路を加えることで音声データとしてカセットに記録できる様になっている。 TK-80BSがボーレート300だったとあるのでおそらく300bpsではないか? これをエミュレートしても良いのだがクロックが安…