CPUのエミュレータを書くにあたって命令テーブルを作るのは一般的だし_settingsへのアクセスはほぼgetter、checkも軽い処理
('_settings->' 34回中 'check' 14回, 'get' 16回, 'set' 3回)
オブジェクト指向を少しでも齧ればGetXxx()は値返すだけってのがわかるのでそれすらも知らないわけだ
デバッガも現実的な速度で動作しているし読まなくてもプロファイルで処理時間は計測できますよね、わざわざここにコードを貼りつけるくらいの熱意はあるわけですから

適当に羅列して知ったかぶりしているだけで問題点を具体的に指摘できていないし
プログラミングができる人間のコードの切り取り方ではない
(まともなプログラマーなら「あちこち_settings->こんなことやってる();」なんて書き方まずしない)
わからない中貶すためにがんばってそれらしいところを拾ってきたと思うと涙ぐましい
関係ないですが前スレにも具体的な問題の指摘ができない人がいましたね

参考までに他エミュの命令デコード実装部
BizHawk(NESHawk) https://github.com/TASVideos/BizHawk/blob/master/BizHawk.Emulation.Cores/CPUs/MOS%206502X/6502XXX/Execute.cpp
マイクロコードに分割して各ステージ毎にswitch
Nestopia UE https://github.com/0ldsk00l/nestopia/blob/master/source/core/NstCpu.cpp
各命令をマクロで生成して関数ポインタで飛ばす
puNES https://github.com/punesemu/puNES/blob/master/src/core/cpu.c
命令ごとにswitch
FCEUX https://github.com/TASVideos/fceux/blob/master/src/ops.inc
命令ごとにswitch