#Z88DK

2025-06-16

I noticed that someone did a pull request for my C64maze to make it run with #z88dk and the BGI graphic library. The project is open source and multiplatform since a few years. I'm amazed and really pleased that people finds this little exercise interesting: github.com/DarwinNE/C64maze

あぶり6800aburi6800
2025-06-09

そりゃ色データを10進で書いちゃおかしくなりますよ先生!
というわけで、データを16進に直したらあっさり成功、MSX2でもMSX1の微妙な色が再現できましたよ、ヨカッタヨカッタ。
これで安心して眠れるネ!(1枚目はパレット変更後の表示、2枚目はデフォルト表示)

あぶり6800aburi6800
2025-06-09

そういやパレット変更組み込むのだった。
とりあえず入れてみたけど、どうも赤要素が抜けてる気がするね、まあ変わったからヨシ!(ダメ

あぶり6800aburi6800
2025-06-08

うーん、単語の途中で改行するのは良くないなあ、とは言え禁則処理なんてリッチな処理は作りたくないから、自分で文字数で調整するか...

あぶり6800aburi6800
2025-06-08

見た目になんら反映されない地味な作業をしている

あぶり6800aburi6800
2025-06-07

ということで、nMSXtilesとPletterを使うのは間違えていなかったようだ。音周りは自前のドライバを使えばいいし、コンパイラはz88dk、エディタはVScode、ソース管理はgitだな。クロス開発環境ヨシ!

あぶり6800aburi6800
2025-06-02

色々と修正後にテストプレイしていたら、メッセージの誤りがちらほらと…
修正のついでに、他のメッセージも少し見直して、VER250603を公開しました。

github.com/aburi6800/msx-advte

※romファイルはdistディレクトリにあります

あぶり6800aburi6800
2025-06-01

とりあえずできた!
せめて音は入れたいので、まずはベータバージョンということで…

プレイはこちら↓
webmsx.org/?MACHINE=MSX1J&ROM=

あぶり6800aburi6800
2025-05-30

とりあえず、きょうの目標のところまでは作ったゾ。
明日で一通りのシーンは作れそうかな?

あぶり6800aburi6800
2025-05-30

3条件分岐の場合、こんな感じで条件分岐のシーン定義が2つ必要になって、ちょっと無駄になってしまうのは致し方ないか…
他のアドベンチャーゲームで、シナリオデータをどう作っているのか、構造を知りたいところ。

あぶり6800aburi6800
2025-05-29

C言語だと文字列を扱うのがメンドイから、シーン名ではなくシーンIDのままにして、Enumで値を定義したっす。
これだけでもだいぶシナリオデータが作りやすくなった…

あぶり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

Client Info

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