パック○ンのアルゴリズムを解明するスレ

12D派3Dゲーは鑑賞が一番
リアルタイムゲーの基本だ
「迷路内で標的を追いかける」
いろんな応用がきくだろう
3DフィールドでアクションRPGにしてもいいかもしれない
さて、かのパック○ンは正確にプレイヤーを追いかけていたが、
あれは、どうやって実現しているのか
単純に左右、上下近いほうに動いていたら、ベー○ガレベルである。
さて、みんなで明かしてみよう
2名前は開発中のものです。:02/02/13 04:48 ID:???
単純に最短経路じゃだめなの?
3名前は開発中のものです。:02/02/13 05:06 ID:Ed4xQ6I8
2はモンスター毎に性格づけがなされていることを知らないのか?
4名前は開発中のものです。:02/02/13 05:24 ID:???
プログラマーやめれ。
5名前は開発中のものです。:02/02/13 05:43 ID:???
>>3
前から追いかけるか後ろから追いかけるか中途半端に追いかけるかぐらいしかないんじゃねーの?
6名前は開発中のものです。:02/02/13 05:55 ID:YFPQGBxo
>>2
最短経路を割り出すアルゴリズムを
恐らくゲープログラマーの厨房たちは知りたがっていると
いうことなのでしょう
教えてあげて~ん
7名前は開発中のものです。:02/02/13 05:58 ID:???
ここのHPじゃSLGでやってるけどコレと同じことすりゃいいのか?>最短経路
http://www.campus.ne.jp/~ishigami/CREATION/MAKING/index.html
8名前は開発中のものです。:02/02/13 06:35 ID:???
>最短経路探索
情報処理技術者試験のソフトウェア開発試験の参考書に最短経路探索のってました。
というわけで理屈わかってもプログラム組めません(゚д゚)マズー
9名前は開発中のものです。:02/02/13 07:45 ID:???
>>8
再起つかう。それだけ
10名前は開発中のものです。:02/02/13 08:11 ID:???
http://game.2ch.net/test/read.cgi/gamedev/1005038280/43-45
汚いけど、最短経路算出、性格付けもやってるのでよろしく。
コンパイル方法は、同スレの>>34
ソースは、GNU Indexとかで整形すべし。
11名前は開発中のものです。:02/02/13 10:09 ID:gJqPquDI
迷路の形状によってアルゴリズムは変わるぞ。
パックマソのように通路が1キャラ分なら比較的楽だね。
そうじゃない場合、しかも袋小路がある場合なんかは
いろいろテクが必要。各通路を分割して、それぞれの通路が
どの通路に通じているかというテーブルを作成するのが無難か。
12名前は開発中のものです。:02/02/13 21:09 ID:???
>>10
GNU Indentだね。目次作ってどーする
13名前は開発中のものです。:02/03/03 23:44 ID:1vNTzGuj
>>5
そこまで簡単に作ってはないです。
時間単位でモードが切り替わり、
行動アルゴリズムが変わるのですが、
自キャラクタを追いかけるモード時は
キャラクタの進行方向3-4ブロック先を
狙っている感じです。
それ以外のモードでは、
色別に行動パターンが違うようです。
このモードが中途半端に追いかけるモードと
言えない事もないけれども。
14名前は開発中のものです。:02/03/08 08:00 ID:DIoNf8d5
ゲームボーイやファミコンに移植されたもの、
あるいは古いゲーセンの基盤を買って、ロムから
データを吸い出して解析するというのは?

どうせ100kbもないプログラムだと思われまし。
15haruka:02/03/08 16:02 ID:???
どんなモードのときも、
迷路の分岐のところで、
目標地点への直線距離が短い方に移動します。

目標地点がキャラやモードによって変わっているので、
追いかけアルゴリズムが違うように見えるのです。
16名前は開発中のものです。:02/03/30 02:53 ID:???
>>14
アーケード版なら16KBと思われ。
17名前は開発中のものです:02/06/11 14:27 ID:???
cpuはどんなのでしょう?Z80ならありがたいけど。
6502もちょっとわかります。それ以外ならわからないし、
逆アセンブラも無いかも、、、。
18名前は開発中のものです。:02/06/15 03:15 ID:???
スレ再利用させていただきます。
Javaの勉強としてパックマンを作ろうかと。
19名前は開発中のものです。:02/06/15 12:41 ID:???
アプレットだと簡単に画像が表示できるようです。
最近はアプレットについての話はまったく聞かないのですが
ちょっとしたゲームを作成するぶんには
お手軽に扱えて便利なのかもしれません。

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class Pacman extends Applet {
  Image image;

  public void init() {
    image = getImage(getCodeBase(), "pacman.png");
  }

  public void paint(Graphics g) {
    g.drawImage(image, 0, 0, this);
  }
}
20名前は開発中のものです。:02/06/17 01:24 ID:???
なんとなく「初心者パックマン」スレの278さんのソースをパクってみる。
21名前は開発中のものです。:02/06/18 02:17 ID:???
パクったソースをコンパイルして動かしてみるも、
エラーになってしまいました。
とりあえず動くように修正。
22名前は開発中のものです。:02/06/19 03:09 ID:???
マップデータを実際のパック○ンと同じものにしてみる。
ただ、巣箱の入り口が中央にあるので
データ構造を変える必要があるかも。
キャラクタークラスを作り、パックマンと敵、エサを
ここから派生させてみる。
23名前は開発中のものです。:02/06/21 03:07 ID:???
やはり敵の動きが難しい。
とりあえず他のとこからつくっていくことにする。
24名前は開発中のものです。:02/06/22 05:04 ID:???
ソースを少し整理。
配列のコピーで悩んでしまいました。
他人のプログラムをパクったはずなのに
開発状況はむしろ後退しているような…。
25名前は開発中のものです。:02/06/24 03:45 ID:???
クラスを2つ削って1つ追加。
前に進まないです。
26名前は開発中のものです。:02/07/29 18:57 ID:???
>>17
CPUはZ80が1個です。
遅レススマソです。
27名前は開発中のものです。:02/07/30 05:43 ID:sgL/Dxn.
パッOマンの位置をもとに単純に上下に進行方向きめるだけじゃだめなの???????????????
28名前は開発中のものです。:02/07/30 11:41 ID:???
>>27
実際に作ってみ。
29名前は開発中のものです。:02/07/30 13:43 ID:sgL/Dxn.
class packman{
int x;
int y;
public:
POINT GetPosition(){POINT p={x,y};return p};;
}
class mon{
int x;int y;
int vx,vy;
public:
void Move(){
//x+vx , yのブロックが通れるか判定する。通れば
x+=vx;
//x , y + vyのブロックが通れるか判定する。,通れば
y+=vy
}
void Chase(packman p){POINT p=GetPosition();
if(x - p.x > 0){vx=-1;}else if(x==vx){vx=0;}else{vx=1;}
if(y - p.y > 0{vy=-1}else if(y==p.x){vy=0;}else{vy=1;}
}
}

どうよ。SetVector(packman p)よんだあとにMove()。あとは足すあたりをもう少し細かくすればいいだろ。
いつもこの手のモノをコーディングするときなんらかのとんでもない見当違い・見落としがあるから指摘してちょ。
30名前は開発中のものです。:02/07/30 14:24 ID:???
X SetVector
O Chase
スマソ
31名前は開発中のものです。:02/07/30 15:40 ID:???
確か、先回りしてくる色とかあったよね。

このゲムはマップ固定らしいんで、俺なら経路選択データベース作っちゃう(笑)
32名前は開発中のものです。:02/07/30 16:20 ID:NtLKH3NI
先回りして来る様に感じるのは気のせいじゃないの?
33名前は開発中のものです。:02/07/30 16:32 ID:???
 X座標を比較して追いかけるモンスター、Y座標を比較して追いかける
モンスター、ランダムに動くモンスター、X比較/Y比較/ランダムを
切り替えて追いかけるモンスター、という具合だったな、たしか。
 X座標比較モンスターと、Y座標比較モンスターがいるので、自然と
挟み撃ちになる場合は、ある。
34名前は開発中のものです。:02/07/30 16:37 ID:???
あいつらが本気になったらオレなんてイチコロ
35名前は開発中のものです。:02/07/30 16:56 ID:???
X座標を比較/Y座標を比較して追いかけるモンスターでも、
低確率でランダムに動かすと袋小路から出られる場合があるよね
36名前は開発中のものです。:02/07/30 19:06 ID:???
>32
オリジナルはパックマンの数歩先を追いかけるようにしてるよ。
37haruka:02/08/05 02:37 ID:???
アカベーはパックマンの座標を目標にしてる
ピンキーはパックマンの数歩先
アオスケはパックマンを中心にしてアカベーと点対称な位置を目標にしてる。

>>33は昔誰かが適当に作ったパックマンもどきの解説。

結局、進行方向決めるためのアルゴリズムよりも、
迷路が分岐してる箇所をどうやって捕らえて、ちゃんと曲がらせるかの方が、
どっちかというと難しいです。
38名前は開発中のものです。:02/08/08 04:07 ID:BXJft7Ds
>>37に補足というか蛇足ですが、
アオスケは近づきすぎた場合にパックマンの数歩後ろを目標にする
アルゴリズムと切り替えられています。

37氏の触れていないグズタは
パックマンとの距離が離れている場合はアカベイと同じアルゴリズムで動き、
近づき過ぎた時点で計算式がマイナスに(できるだけ遠ざかるように)変化します。

また、ワープを使うかどうかの判断は
追いかけ時とナワバリ保守時で変化しているようですが、
イジケモードからの復帰に伴う、ナワバリ保守モードに移るタイミングの
遅延処理に謎が残ります。
39名前は開発中のものです。:02/09/08 01:41 ID:5GkAdXnj
>>34
わらいました。
40名前は開発中のものです。:02/09/08 11:44 ID:???
タイトル通り、ぱっくんのアルゴリズムを解明してください
41名前は開発中のものです。:02/09/11 14:55 ID:nYkRz0Xu
>>40
初心者です。ぱっくんとはいったいどんなゲームなのですか?
過去レスを読みましたがいまいちわかりません。教えてくだちい。
42あぼーん:あぼーん
あぼーん
43名前は開発中のものです。:02/09/11 23:30 ID:???
パックマンを解析して不特定多数に情報公開してもいいか
ナムコに聞いてくれ。
44名前は開発中のものです。:02/09/11 23:41 ID:???
リバースエンジニアリングはまずいかもしれんが(その当時ライセンス契約とか合ったのかな?)、
画面だけ見て会席したのを公開するのは問題ないでしょう。倫理的には別問題だけど。
45名前は開発中のものです。:02/09/12 02:09 ID:???
プレイヤーが3分岐、4分岐の場所でどの方向に行く傾向にあるかを分析して
アルゴリズムを強化すれば面白いことができそう。
46名前は開発中のものです。:02/09/12 08:01 ID:???
ワープを繰り返すとどんどん難しくなるって本当だったのでしょうか。
なんとなく難しくなっているような、、、

面が進むと確かに難しくなりますよね。アカいのなんかプレイヤーより
速く追いかけてくるし。どうせいというのだ。何時間も遊べる人が
知れない。

47名前は開発中のものです。:02/09/12 10:47 ID:???
>>46
それはパターンで攻略してるから。リメイク版は知らんけど。
48名前は開発中のものです。:02/09/23 09:49 ID:tNIOEAr9
>>44
あんだけどこもかしこもパクリゲー作っていたような時代に
リバースエンジニアリング禁止という理念はありません。(w
49名前は開発中のものです。:02/09/24 21:35 ID:???
曲がり角も含めると節点が64にもなったんだけど。
これ全部配列にいれちゃっていいんですか?
50Default:02/09/24 23:35 ID:0wP2STVx
ナムコのパクマンはパクリゲーだろ。そもそも。
オリジナルは「ジョーブレイカー」(藁え)
51名前は開発中のものです。:02/09/25 12:26 ID:KUvf+Qal
>>36
目標位置の更新はパックマンが向きを変える毎でいいし、
パックマンの現在の進行方向の先にある分岐を目標にすればいいと思うのだが。
52名前は開発中のものです。:02/09/25 14:02 ID:???
             ,.-ー''"~"'i,
              /~   ..:::::::!.,___        ,,..、-、,
            /    .::::::::::::::`::::::~~""''''ー-,/~:::::::::.`i,
           /     .:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::: i
           /      .:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::.. |
         ,/      :::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::. i
         ,l'       ::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::. |
         l       ::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::: i
         i,       ..:::::●:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::: !
        _,,.i      ..::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::●::  i'
      /~  'l,    ..:::::::::::::::::::::::::::|、;;;;;;;;;;;;;;;;;/::::::::::::::::: ,i'            /~\
    /,.、-ー 、;i,   .::::::::::::::::::::::::::::::|  ~"''''"/::::::::::::::::::: /~\         /    i.,_
   /'/ ..::::::::|::' .,  :::::::::::::::::::::::::::::::|'⌒`ヽ,/;:::::::::::::::::: /:::::::.. \       ,i    .::.. \
   / i'  .::::::::::/:::::::`・、., :::::::::::::::::::::::,人,__,/;;;;;::::::::::::::::/;;;;;;:;:::::.. ヘ     /  .::::....::::::::. `.,
  ,i/( .::::::::::::i,::::::::::::;;;;;;~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-''";;;;;;;;;;;;;;;:::::..  \  /  .:::::::::::):::::::::.. ヘ
なぁなぁ、もうオモチャにするのやめようぜ。
53名前は開発中のものです。:02/09/25 15:56 ID:FX2GZrK1
遠藤たんに聞けばわかるのかなぁ?
54teen:02/09/25 16:10 ID:LIfDOyEE
遠藤たんって誰ですか??
教えてもらったスレで質問したけど誰も答えてくれません。
55名前は開発中のものです。:02/09/25 17:37 ID:???
パクーマンのアルゴリズムの模倣はもういいです
そろそろ本気で頃しにいきませんか?
56名前は開発中のものです。:02/09/25 20:48 ID:???
本気で4体で包囲するように動いたらそれこそゲームにならん。

冗談のようで>>34は真実。
57あぼーん:あぼーん
あぼーん
58名前は開発中のものです。:02/09/30 14:53 ID:???
パックマンも四体にして対抗すればあいつらが本気になっても対抗できるかもしれない
59名前は開発中のものです。:02/09/30 20:05 ID:???
いくらブラックホール胃袋でも、
不死身のやつらには永遠に勝てない。
60名前は開発中のものです。:02/10/04 02:53 ID:1nQfDnyQ
グズタでもランダムではないでしょ。
各モンスターのアルゴリズムをだれか解析or吸い出ししてくれ。
あとイジケ時の目標位置はどこ?
61あぼーん:あぼーん
あぼーん
62まだつづくよ:02/10/04 06:35 ID:???
オリジナル版とかファミコン版とか、微妙にアルゴリズム違うよね。
(PDSのもの含まず)
どれが一番好きですか?やっぱり最初の?
あれ、3面より先に行ったことないんだけど。
63haruka:02/10/04 09:03 ID:???
>>60
イジケ時はランダムです。

目標位置じゃなくて分岐にさしかかったときの方向の選び方がランダム。
6460:02/10/04 10:39 ID:Ed9VMs88
>>63
マジすか?
パターン攻略ってのがあるはずだけど、
ランダムだとパターンが崩れるんじゃないの?

分岐にさしかかった時に、ある目標位置を基準に方向を決定するって感じでしょ。
エミュでの感じでは、
アカベエ:パックマンの位置(縦優先)
ピンキー:パックマンの数歩先(縦優先)
アオスケ:パックマンの位置(横優先)
グズタ:???
イジケ時:???

違うかもしれない。
もうちと分析してみます。

>>62
アーケード版が好きなのでアーケード版を基に考えてます。
65名前は開発中のものです。:02/10/04 18:49 ID:???
ゲーム内のランダムにはパターンがある場合も。
66名前は開発中のものです。:02/10/04 19:21 ID:???
>>65
それは「ランダム」ではない。
67名前は開発中のものです。:02/10/04 19:25 ID:???
うん。大抵のゲーム内のランダムはランダムじゃないよ。
68名前は開発中のものです。:02/10/04 20:53 ID:???
ランダムっつうか乱数は規格化されてるだろ
69名前は開発中のものです。:02/10/04 22:00 ID:v58scI4a
同じ種を拾わせればパターンだな。
70名前は開発中のものです。:02/10/04 22:02 ID:v58scI4a
>33
FM-7版?っぽい。
FM-7活用研究にパックマンのソースが載ってて同じこと解説してた。
「スピード一定」「散り」とかないから全くの別物。
71名前は開発中のものです。:02/10/04 22:07 ID:???
パターンってイジケなくなってから使うんだっけ
72名前は開発中のものです。:02/10/05 03:57 ID:???
5面以降は王道のパターンがいくつかあるけど、
それまでは、これっていうパターンはなかったような・・。
あ、1600点パターンのことです。
動きだけならパターン化できると思います。
で、結局アーケード版のオバケのアルゴリズムは?
73sage:02/10/06 00:24 ID:2khJPmDZ
「マイコン・ゲームの本3」にある「PCG PUCK MAN」のページを見てみろ。
正解じゃないが大雑把な参考になるぞ。
持ってないヤシはヤフオクで探せ。
74名前は開発中のものです。:02/10/06 00:26 ID:???
↑スマソ。
上げちまった。
75名前は開発中のものです。:02/10/06 00:36 ID:???
まず、深夜に宅配ピザを注文してみよう
76名前は開発中のものです。:02/10/06 01:08 ID:???
夜は閉めてるみたいです。ピザ屋。
77名前は開発中のものです。:02/10/06 17:00 ID:???
注文しますた。
そうだ、これだ!
78名前は開発中のものです。:02/12/06 09:08 ID:fGyy68TZ
XEVIOISのアルゴリズムなら
レトロゲー板のendたんに簡単に聞けるのにね。
79名前は開発中のものです。:02/12/06 09:55 ID:iXb+0AbE
>>73
持ってたんで読んでみた。
フローチャートが載ってるから判り易いかも。
80名前は開発中のものです。:02/12/06 10:19 ID:mWftFmcU
 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | 先生、またクソスレです!
 \__  _____________ _______
      ∨┌───────        /         /|
        | ギコネコ     __      | ̄ ̄| ̄ ̄| ̄ ̄|  |
        | 終了事務所. /  \   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        |          | ∧∧ | < ふざけやがって!終了だ!ゴルァ!!
                    (゚Д゚,,)|  \_______________
     ∧∧        .※ ⊂ ⊂|. |〓_ |,[][][]|,[][][]|   ..|  |
      (,,   )     / U ̄ ̄ ̄ ̄ 〓/| |,[][][]|,[][][]|,[][][]|/
     /  つ    | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |  ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ~(   )     |              |        ∩∩
                         ~´ ̄ ̄ (´Д`) ゴラァ
                          UU ̄ ̄U U       【完】
81名前は開発中のものです。:03/06/09 21:10 ID:TCJ5ZKfs
晒しage
82大塚裕司:03/06/09 23:19 ID:GEwzpD3e
83名前は開発中のものです。:03/06/10 00:19 ID:yLKy5hU7
           ミ       ミ            ミ
                           ミ      ドドドスッ         ミ
 ウォリャ! ∧∧       ._                _                _
     (  ;,,)O..―─┴┴──────────┴┴──────────┴┴──┐
    /; ; つ.             終                 了              |
  ~′ /´ └―─┬┬──────────┬┬──────────┬┬──┘
   ∪ ∪        ││ _ε3                ││ _ε3                ││ _ε3
84名前は開発中のものです。:04/05/12 04:08 ID:mUyYV4MS
^ ^
85名前は開発中のものです。:04/05/12 11:04 ID:dznfUN2y
岩田氏の公演で聞いたのですが
敵のアルゴリズムは敵が数珠つなぎにならないで
主人公を4方向から取り囲むようなイメージ(で開発した)
と言ってたな。
86名前は開発中のものです。:05/02/16 03:27:20 ID:VT4V70hJ
ttp://www1.plala.or.jp/chikada/vba/pacellman/pacellman.htm

「パックマン訴訟事件、東京地裁の判決文(東京地裁昭和56年(ワ)第8371号損害賠償請求事件)」。以下原文を引用。

(二) 登場人物の説明
(1) モンスター
イ 常に服のすそをヒラヒラ動かし,進行方向に目を向け迷路上のエサの上を通過して移動し,パックマンの移動に対しそれぞれ左記の性格を有している。
① オイカケアカベイ
 追跡中はパックマンを最短距離で追跡し休息中は画面右上付近を動き回る。
② マチブセピンキー
 追跡中はパックマンの目の向いている3つ先のマスに向い待伏せをし,休息中は画面左上付近を動き回る。
③ キマグレアオスケ
 追跡中は①とパックマンを中心とする点対称のマスを目指し,休息中は画面右下付近を動き回る。
④ オトボケグズタ
 追跡中はパックマンから半径約130ドットの外ては①の性格をもってパックマンを追跡し,右半径内ではパックマンの移動と無関係に動く。
87名前は開発中のものです。:2005/05/05(木) 20:36:04 ID:bJ11k/PM
88名前は開発中のものです。:2005/05/20(金) 23:49:47 ID:len7QI+J
>>33
電波のFM-7版パックマンのアルゴリズムがそれです。
他機種は遊んだことがありませんが、昔のは全部一緒でしょう。
「オールアバウトナムコ」の各機種版解説では、PC-8001mkIISR版の
説明で、「この版では一定時間ごとに縄張りに散る動きも再現した」と
書いてあります。

FM-7版は、>>33>>70の通り、アカベイが常にX優先、ピンキーが常にY優先、
アオスケとグズタはアカベイとピンキーに乱数を混ぜたものです。種も毎回違う
のでパターンは作れません。ゲーム中の大半は、
アカベイとアオスケ、ピンキーとグズタが重なって、パックマンの後ろに
ぴったりくっついて動きます。
当時は「こんなのパックマンじゃねえ」とか文句を言いつつ必死に
遊んでました。

>>63
AC版は、イジケ時も、パックマンが同じ動きをすれば同じ動きをするので
その意味ではランダムではありません。
イジケを無視して、とにかく最初から最後まで食うパターンというのが
存在します。イジケも一定の動きをするからできることです。

ただ、AC版にはモンスターが一方通行を強いられている場所が4カ所
あるのですが、イジケ時にはその規制を無視して動いています。
4カ所とは、パックマンスタート位置の上斜めと巣箱の斜め上2カ所ずつです。
モンスターは下から入ることができません。これを利用してモンスターを
交わしていくのがテクニックであり、パターンの要にもなります。
89名前は開発中のものです。:2005/05/21(土) 17:01:25 ID:GYXuWD7m
結局まだ分かってないのはイジケ時の動きだけ?
90名前は開発中のものです。:2005/05/21(土) 17:08:12 ID:mEm+esJS
>半径約130ドット
たぶん+-128ドットの四角なんだろうね。
91名前は開発中のものです。:2005/05/23(月) 16:11:35 ID:qldApHBp
>86
リンク先、判決文かと思ったらちがかった。
92名前は開発中のものです。:2005/06/16(木) 05:42:26 ID:I0wFWCPU
アーケードオリジナルのイジケの動きは、
各フレーム毎に以下を行う。($291e~$2965)
(1)擬似乱数で仮方向(0~3)を決定
(2)それが前回と180度の方向であれば(4)へ。
(3)進行方向が壁でなければその方向で決定、(5)へ。
(4)仮方向の値を+=1して、&=3して、(2)へ。
(5)終了。
4種類のモンスターで共通。
9392
ついでに、擬似乱数のアルゴリズムは以下のとおり。($2a23~$2a34)
hl = memory[work]
hl = (hl * 5 + 1) & 0x1fff
a = memory[hl]
memory[work] = hl

つまり、ROMの$0000~$1fffのどこかのデータを読んでいる。