#z88dk

あぶり6800aburi6800
2025-05-29

初期化するようにしました。

あぶり6800aburi6800
2025-05-29

ヴァァー!!
パターンジェネレータの初期化が足りなくて、WebMSXで実行したらバグったような画面になっちまったぜー!!

・・・ちゃんと初期化しよう・・・

あぶり6800aburi6800
2025-05-27

方向性が見えてきたので、タイトル画面を組み込んでみたぞー。
AIにさっき作ってもらったやつからさらに注文して、ちょっと凝った画を作ってもらった。
ついでに、画面はまんなかあたりに表示するようにしたよ。
ちなみにタイトルもシーンの1つとして登録しているから、コマンドを入れないと始まらないw

あぶり6800aburi6800
2025-05-26

とりあえず1シーンつくった、もう満足じゃ(え?

あぶり6800aburi6800
2025-05-19

というわけで、画像データの不要な部分(余白部分)のデータをpythonスクリプトでカット、pletterで圧縮したデータを表示してみた。

まずデータサイズだけど、1画面分(パターンジェネレータテーブル+カラーテーブルのそれぞれ2ページ分)を合わせて、2,787バイト。
ベタで持ったとき(8.142バイト)に対して34%くらいまで減ったゾ!スゴイ!

そして、表示なんだけど、思ったより軽微な修正で問題なくできた。画像サイズを小さくしたことでデータ展開と描画が少し速くなったのが、想定外だったけどウレシイポイントだね!
データ作成の手順が増えて大変だけど、ある程度自動化する前提で、コレで進めることにするゼ。

しかし1画面あたり約3Kとして、1バンクあたり5画面くらい入る計算か~、100画面とかにすると、プログラム含めて3メガ(ビット)ROMになるな…(逆にドローデータではなくパターンデータを持ったとしても、それくらいで収まるのか…という印象

あぶり6800aburi6800
2025-05-18

とりあえず、z88dkでのメガロムは以下で使用できそう。compilerはsccz80でもsdccでも同じ。ヨシ!

・データの場合、SECTION BANK_01とか書くと、対応するROMバンクにデータを配置してくれる。externするときに *__far とか付けなくてもOK(ロジックはまだ未確認)
・アクセスするときは自前でスイッチングアドレスに対象バンク番号を書き込むと切り替わる(ようにエミュレータが動作し)、バンク切替前のアドレスと切り替え後のアドレスは良い感じで解釈して動いてくれる(おそらく内部的には下位16ビットで処理していると想像)
・コンパイル時はzccに-pragma-define:MAPPER_ASCII16とか書けばOK。

2025-05-17

And the problem has already been fixed. 🤩 #z88dk is truly an AMAZING project.

2025-05-17

It was a #z88dk bug, indeed! Dom being an absolute legend immediately spotted the problem and I suspect it will be corrected very soon.

2025-05-17

I just corrected a bug on the Spectrum version of Silk Dust that prevented the player to finish part 2 of the game. I suspect the same bug affects other Z80 platforms. Stay tuned! darwinne.itch.io/silk-dust #indiegame #TextAdventure #correction #Z80 #z88dk #ZXSpectrum #retrocomputing #SilkDust #InteractiveFiction

あぶり6800aburi6800
2025-05-16

ちょっと思いついて、Cヘッダのアセンブリデータ部への参照をexternしているところに「__far」を書いてテスト、最初のシーンでバンク4にしか登録していない画像を表示するようにしたら、表示できたっぽい?
ということはバンクの切り替えとアドレスの参照方法はこれでいいってことかな…もう少し画像データ増やして試してみるか…

あぶり6800aburi6800
2025-05-14

うーむ、0x7000にバンク番号を入れることで切り替わりはできた…のだけど、バンク3のデータになるとうまく読めない。
メモリマップを見ると、バンク切替で0x8000以降のデータが変わっているのは確認できて、バンク1と2のデータは問題ないのだが…
.romファイルが64KByteなのも気になるところ…

あぶり6800aburi6800
2025-05-08

とりあえず仮データで3シーン分の画面データを入れてコンパイル。
自動的に16Kの2バンクに分けてくれた模様…何も考えずにアクセスできるのかな、これ?
シーン分岐用の情報も追加したので、とりあえず今日はここまで。
明日はポチポチと選択肢を追加して、動作を確認してみたい…

あぶり6800aburi6800
2025-05-07

しかしアドベンチャーゲームって、制作中のポストしにくいねぇ。まあ、今回はテスト用に作ってるから、ちょこちょことお見せしていきますが。

2025-05-07

SDK для ретрокомпьютера на примере Evo SDK

Как установила современная наука, SDK — это набор инструментов для разработки программного обеспечения, как правило, под определённую компьютерную платформу, операционную систему или устройство. Весьма полезная в хозяйстве вещь. Это довольно древнее изобретение человечества, однако есть устройства, созданные ещё раньше, и по этой причине изначально никаким SDK не обладающие. Также есть и новодельные, современные любительские платформы. Для всего этого безобразия тоже крайне полезно иметь какое-то подобие SDK. Чем полезно, а также кто, как и зачем может его сделать — разберёмся в этой статье. А в качестве примера возьмём некоторые мои старые проекты, главным образом Evo SDK для 8-битного компьютера ZX Evolution.

habr.com/ru/companies/ruvds/ar

#zx_spectrum #zxspectrum #zx_spectrum_next #nes #sega #sega_mega_drive #zilog_z80 #z80 #atm_turbo #zx_evolution #zx_evo #zxevo #sdcc #z88dk #ruvds_статьи

あぶり6800aburi6800
2025-05-06

とりあえず、グラフィック表示を組み込んでみたぜ!
ひとまずこの連休の目標は達成、細かいところで不具合が残っているので、ボチボチと潰していこう…

あぶり6800aburi6800
2025-05-03

ということで、メッセージデータに改行コード(0x0A)を入れることで、複数行の表示も対応。今回はもう、これでいいか!

あぶり6800aburi6800
2025-05-03

なんだかんだといいつつ、濁点・半濁点の処理を追加してしまった、後悔はしていない(以外と簡単に対処できてしまった…)
あとは改行記号くらいで一段落させようかな。1文字ずつの表示は根本的に構造変えないとならんので、一旦見送るのじゃ。

あぶり6800aburi6800
2025-05-02

とりあえず、細々とした表示周りに手を入れつつ、美咲フォント(一部改)のデータで表示してみたり。
地味で進捗が目でわかりにくいところのプログラムがしばらく続く…

あぶり6800aburi6800
2025-05-02

事前準備として、メッセージの文字送り表示で使う音を作ってみたよ。低い音と高い音の2つがあればいいかな。
んで、これを使うとしたら、VSYNC割り込みでタイミング見て処理していかないとならん、サウンドドライバと同じ感じかな…

あぶり6800aburi6800
2025-04-30

よし、基本の外枠はできた。あとは細かいところを詰めていく…

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst