ROM database 参照をしてみた

NES Cart Database に text 情報全ての xml がおいてあったし、 wxWidgetsxml が読めるクラスがあったのでおためし程度。

わりといけることがわかったが、 wxWidgets をつかわない CUI mode では使えない構造なので採用しないかも。xml パーサはともかくとして、 CRC を探し当てるのに毎度順番に参照してたら(比較してないのでたぶん)遅いので、 CRC base に hash table (wxHashMap) を使ってみたんだが、これも wxWidgets のクラスだからちょっと。 STL にあれば採用してもいいかな。

wxHashMap をポインタで使う場合はちょっとこけがちなのでこうしておく。

#include <wx/wx.h>
#include <wx/xml/xml.h>

WX_DECLARE_HASH_MAP(unsigned long, wxXmlNode *, 
	wxIntegerHash, wxIntegerEqual, CartridgeHash);

void value(unsigned long key, wxXmlNode *data)
{
	CartridgeHash c;
	c[key] = data;
}
void pointer(unsigned long key, wxXmlNode *data)
{
	CartridgeHash *c = new CartridgeHash();
	(*c)[key] = data; // *c[key] だと *(c[key]) と評価される
}

ポインタなんて嫌い。