新ポケコンの部屋(PC-G815/G850)

ここはむかーし(1995年~1997年ごろ)作ったプログラムの
ソースコードをそのまま放置している場所でしたが、
2015年にとうとうポケコンの生産が終了してしまい、
そのせいかアクセスが急上昇してるので、
ついでにこのページもリニューアルしてみました。

ここでは自作の通信ソフトと、秋月のキットを使った
USB通信ケーブルの作り方、そして昔作ったゲームや
SDCCとエミュレータを組み合わせた開発環境の紹介と、
実際にそれで作ったゲームを公開しています。

PCGTool v1.01(2016/11/30更新)
 
 このソフトはポケコンで作ったデータをPCに保存したり、
 PCからポケコンにファイルを転送するためのツールで、
 純正ソフトのPCGLinkから転送処理だけに特化した
 簡易版のソフトです。

 PCGLinkでデータを送信する場合、ドラッグ&ドロップで
 開けるならまだしも、必ずファイルを開く操作が必要
 だったり、さらにCOMポートが4までしか選べないため、
 例えばUSBシリアルケーブルを使っている場合、
 USBの端子を変えてしまうと新たにポートが割り当て
 られてしまい、すぐにCOM4を超えてしまったりして、
 わざわざデバイスマネージャからCOM4以下を手動で
 選択する必要があったりと、かゆい所に手が届かず
 微妙に不便だったので、このあたりを考慮してさくっと
 作ってみました。

 使用方法は中のヘルプにもありますが、
 簡単に言えば最初に通信設定さえしておけば、
 あとはEXEやこの画面にファイルをドラッグするだけで
 即座にポケコンにデータを送信出来たり、
 受信ボタンを押してからポケコン側で送信操作を
 するだけで、すぐにPCにファイルとして保存出来ます。

ダウンロード(約231KB)
v1.01 EXEドラッグ時に転送が成功したら
   ツールを自動的に終了する機能を追加




PC-G850用
USB通信ケーブルを作ろう!

 
 別ページにUSB直結の通信ケーブルの作り方をまとめてみました。
 ※画像をクリックすると作り方のページが別ウィンドウで開きます
 ※手持ちのPC-G850とPC-G850Vで動作確認済みです



SHARP製ポケコン
「PC-G850」のゲームを
Windows上で開発

各種ツールも含め、こちらにまとめました。



最新ゲーム

動作スペック
 マシン : 学校教育用 SHARP PC-G850シリーズ
       (G850未満は行数の関係でNG)
 CPU : Z80コンパチブル
 CLOCK : 8.00MHz
 RAM : 使用可能領域が32KB
 スピーカ : BEEP再生用

画像クリックでダウンロード出来ます。

charatbeat for PC-G850
ポケコンでまさかの音ゲーw
ただしメモリ容量の関係で今は3曲だけ。
 ・AIR
 ・チョコボのテーマ
 ・TEENAGE(ときメモBGM)

曲をBEEPで再生しつつ、キー入力同時判定が入って
まぁまぁゲームとしては出来ていますが、これは
あくまでも自作SDCCライブラリのテスト用なので、
ゲームが面白いかは保障出来ませんw

ゲームの起動方法は中の説明書を見てください。

ちなみにこちらの処理をほぼそのまま移植したため、
計算自体の負荷はほとんどありませんが、
グラフィック表示は全てCPUレンダリングなので、
PC版charatbeatHDXのようなレスポンスを
期待しているととってもガッカリしますよw

あとBMSとMIDIを独自形式に変換しているため、
BMSプレイヤーとは言えないのであしからず。
また液晶のハードウェア割り込みを利用しているので、
エミュレータでは動きません。

しっかしBASICだと遅過ぎるし、アセンブラだけだと
複雑な処理は作れないので、バランスの取れた
C言語はやっぱり楽でいいね。
ただ結構メモリを喰うので使わないコードはなるべく
コメント化したり削除しとかないとダメかも?

技術資料
現状描画やサウンド処理はほぼC言語なので、
最適化されたアセンブラと比べたらまだまだ全然遅い。

それとポケコンでキー入力を行うには、まず出力ポートに
ある特定の値を出力し、その後で入力ポートを読み取ること
で行う仕様ですが、ポート出力後にすぐに入力をしても、
即座に反映はされないという致命的欠陥があるため、
通常は出力後に必ずウェイトを入れる必要があります。
で、今回のライブラリは全てのキーの状態を1個の関数で
取得する仕様としているため、ウェイト処理だけでかなり
CPUを食いつぶしている状態になっています。
例えばここをゲームで使うキーだけ取得するようにすれば、
もう少し速く出来るとは思いますが、根本的なウェイト処理
自体は無くなってはいないため、これも同じく割り込みごとに
次のキーを取得する処理にすれば、ウェイト無しでもっと
高速化出来るかもしれません。

あとスクロールですが、ここここのI/Oマップ仕様を
眺めていた所、液晶クロックの割り込みが取れることが
分かったので、これを利用することで常に一定の速度で
スクロールが出来るようになりました。
(このゲームは仕様として約20fpsを想定)

Z80には割り込みモードがいくつかありますが、
このポケコンではモード1が使われているようで、
これは割り込みがあると常にアドレス0038hに
書かれたコードが呼び出されると言うものですが、
ここを自分のコードを呼び出すように書き換えることで、
割り込み時の処理を好きなように組めるようになります。
ちなみにこれを割り込みベクタを書き換える、
またはフックすると言います。

なお、G850無印とG850Vでは液晶の割り込み速度が
異なるようで、機種ごとに微調整が必要となりますが、
このゲームではあるアドレスの値を変更することで
持っているポケコンに合わせて値を調整出来るように
なっています。
※詳しくは同梱のテキストを参照



過去のソースコード

こちらのソフトは相当古いため、現在出回っているポケコンでは
動作しない可能性がありますので、もし動かない場合は動くように
なんとかしてくださいw

また同梱のソースコードはほぼ全て行番号が付いていないため、
ポケコンに転送するには必ず「Sio」の設定で行番号の設定を
「no」に設定してください。
※noにするとポケコン側で付加してくれます

動作スペック
 マシン : 工業高校用 SHARP PC-G815、PC-G850、PC-G850V
       (それ以外でも動くかもね)
 CPU : Z80コンパチブル
 CLOCK : 3.58MHz以上
 RAM : 使用可能領域が32KB
 BEEP : 左側11pin端子のpin3(GND)とpin7(OUT)に
     圧電スピーカーを繋げることで、
     ゲームによっては効果音が出ます

画像クリックでダウンロード出来ます。

ソフト名 概要

RPG4
魔導物語外伝 ~アルル漫遊記~
ポケコンRPGの4作目でBASICと
アセンブラをフルに使ったゲーム。
シナリオは小説版をアレンジ、
漢字を使って文字が表示されたりするなど、
工業高校3年間で培った技術を結集した作品。
[操作補足]
 ・移動や選択は基本テンキーで
 ・決定はエンター
 ・マップ上でSキーでセーブが可
  (再実行するとメニューに続きからが選べる)
 ・マップ上でIキーでアイテム使用可
 ・マップ上でCLSキーでステータス確認

RPG3 魔導物語R
ポケコンRPGの3作目でBASICと、
グラフィック系にアセンブラを使ったゲーム。
シナリオは小説版をベースに完全オリジナル。
このころから本格的なプログラムを作り始める。
ちなみに右に行けば行くほど敵が強くなるという、
バランス最悪ゲームw

RPG2 CRYSTAL HUNTER
ポケコンRPGの2作目。
オールBASICなため激重。
ここからアセンブラをやろうと思い始める。

RPG1
ポケコンRPGの1作目。
BASICをほぼ完全にマスターしたので、
ちょこっと大作をということで作成してみたもの。
内容もたいしたこと無し。

カードゲーム 大富豪
トランプの大富豪ゲーム。
COM対戦でカードはグラフィック表示。
思考ルーチンとか考えるのが楽しかった。

着地ゲーム
宇宙船を地面にゆっくりと着地させるゲーム。
こんなゲームならもう一瞬で作れちゃうねw

ポンジャン
1~8の数値を使ったCOM対戦型のポンジャン。
G815の画面が4行だったので、
その中で演出に一番こったゲームかも。
バージョンアップもいろいろして、
役とかもいっぱい作ってみたり。

円周率
早打ちゲーム
出来るだけ早くテンキーで円周率を打つゲーム。
当時、友達同士で早打ち対戦にはまってて、
いつの間にか円周率を覚えてしまったヤツもいたw
実際、自分も覚えているしプログラムで打つときも、
覚えているところまで全部定義してしまうw
3.141592653589793238462643383279…

フライトゲーム
擬似3D空間を利用したドッグファイトゲーム。
同時キー判定をするためアセンブラを少々。
2468キーで移動、弾はシフトキーで撃てます。
描画はすべてBASICなので激重。

3Dダンジョンサンプル
3Dダンジョンのサンプルプログラム。
敵とかゴールとかは無く単純にテスト用。
マップ用配列を解析してラインのみで3Dっぽく見せる
というアルゴリズムを知ったときに作ってみたもの。
これで魔道物語とか作れそうw

超ヤバゲー Theサ○ン
某事件をADVにしてみた。
本気でやばいのでスルーしたほうがいいよwww
PLAYドライバ 常駐型BEEPプレイヤー。
BASICプログラムでPLAY分が使えるようになります。
PLAYとはN88-BASICにあった音楽再生用の関数で、
ポケコンではBEEPで対応します。
なお、1和音しか鳴らせないのであまり面白くないかも。
技術的にやってみたかったものってことで、
使ってみるよりソースを見たほうが役に立つ?
二重和音
サンプル
BEEP命令を連続で切り替えることで、
和音っぽく鳴らすサンプル。
とりあえずぷよぷよの曲を作ってみた。
最後のほうテンポがおかしいのは愛嬌w
ってか、自分どんだけぷよ好きなんだwww
擬似リセット画面 G815/G850用のリセット画面シミュレータwww
テストなどでリセットさせられるのを防ぐ
ことが出来ますwww
これで公式などをテキストモードで保存しておけば、
カンニングも自由自在www
ただし、バレると超危険な諸刃の剣なので、
やっぱりちゃんと勉強してくださいwwwwwwwwww
満腹大王
for ポケコン
未完成。
コンパイルのDiskStationにあったゲームを移植
・・・予定だったw
グラフィックとか無いので見た目はしょぼい。
完全にアルゴリズム勉強用。
テニス 未完成。
斜め見下ろし型のテニスゲーム。
こんなん作ってたんだねwwwもう忘れてるしw
さめがめ 未完成。
もう記憶に無い。