TTL IC で自作する Atari Pong(3)

3 枚目はボール位置のカウンタ、ボール速度の計算回路を載せています。
毎度美しくない配線ですが、このほうが後のデバッグに都合良いのです…

Pong の回路の面白いところは、上下左右に動くボールの「位置」を 74161 (同期式カウンタ…オリジナルでは Fairchild 9316 ですが) によって演算させていることです。どういう仕組みなのかというと、例えば次のフレームでのボールの縦位置は現在位置の ± N とするためには、ディスプレイの縦幅が 252 ラインなので、74161 のプリセットを 4+N (>0) とした modulo 256-(4+N) のカウンタ回路を構成します。このカウンタを水平同期信号でフリーランすると、カウンタがプリセットされるタイミングの V 位置 y(t) として y(t) = y(t-1)+N となるわけです。(説明を理解するより回路を見た方が早いでしょう)

ボールの垂直速度、水平速度は動的に変わってゆきます。垂直速度はボールがパドルに当たった位置によって変化するので、ボールの移動角 度が変わることになります。水平速度もゲームが進むにつれて高速になります。これらの工夫により、Pong というゲームは素朴ながらゲーム性が高くなっているわけです。

コメントを残す

メールアドレスが公開されることはありません。