帝国と王国のあいまいさ

https://upload.wikimedia.org/wikipedia/commons/8/83/Vexilloid_of_the_Roman_Empire.svg

帝国と王国の違いはなんだろうか。

現代的な、漠然としたイメージとしては、帝国のほうが王国よりも格上で、好戦的で、侵略膨張主義的というのはあるだろう。「帝国主義」といえば他国をどんどん侵略して支配地域を広げるイメージだし。

 

ところで、漢字の「皇帝」はもともと秦の始皇帝が由来であるが、この場合は殷や周、春秋戦国時代の「王」に対して「よりえらい君主号」として、神話の三皇五帝からとって「皇帝」という号を発明したものだ。一方「帝国」はローマ帝国の「インペリウム」の翻訳造語である。中国の王朝で君主が皇帝であった秦も漢も元も宋も明も清も国号に「帝国」とつけてはいない。現代俗に「漢帝国」などと表記される場合はあるが、これはあくまで19世紀以降にヨーロッパの「帝国」の用法を引っ張ってきてあてはめてるだけだ。清崩壊後、孫文に掛け合って中華民国の臨時大総統になった袁世凱が、皇帝に即位、中華帝国を建国したが、全然相手にされず、1年で消えている。

 

ヨーロッパにおいて「帝国」とはもともとローマ帝国の事だった。しかし、「帝国」を意味するインペリウムラテン語で「支配権」「統治権」という意味であり、別に多国を支配する事とも、皇帝に統治権が集中することとも関係がない。ローマ帝国を意味する「Imperium Romanum」はつまり「ローマによる統治」ということになるだろう。ちなみに、古代ローマの国旗というか国章に表記されるのは「SPQR」、意味は「元老院とローマ市民」である。これは共和制、帝政の両方で使われ続けた。ローマ皇帝の称号は「インペラートル」「カエサル」「アウグストゥス」などがある。「インペラートル」は軍司令官。英語の「エンペラー」はこれに由来する。「カエサル」はシーザーことユリウス・カエサルの家名、「アウグストゥス」はオクタビアヌス元老院から送られた「尊厳者」という尊称である。つまり、ローマ皇帝とは、少なくとも初期においては元老院から軍権、カエサルの後継者、尊厳者の称号を贈られ、国家統治を委任される立場でしかなかった。王家の血縁で支配権が固定されるのではなく、あくまで議会から統治を委任されるのがローマ皇帝であり、おそらく古代王政から共和制へ移行したローマならではの統治システムだったのではないかと思う。ローマが周辺諸国を侵略し、属州、属国として収奪していたのは初代皇帝オクタビアヌス以前の共和制期からのことで、現代的な「帝国主義」を当てはめるなら「共和制ローマ」はすでに「帝国」であった。

 

余談だが、SPQRに含まれる「ローマ市民」というのは、現代の国家における「市民」の概念とは少々異なり、一種の特権階級だった。ローマの法律は市民会議で決定され。属州からの収益と奴隷労働により、「ローマ市民」は労働から開放され、政府の方針に反抗する事が少なかった。「パンとサーカス」と言われるように、食料と娯楽がローマ市民には無償提供され、労働しなくても生活出来たのだ。いいなあローマ市民。カラカラ帝あたりから、市民権のバーゲンセールが始まり、旨味が少なくなっていくのだけどね。やっぱ特権階級は少数じゃねえとうまく回らないんだよな。

 

まあ、要するに「帝国」の「皇帝」ってのは、富の集まる大国の複数の権限がなんとなく集まった結果であって、意外と権威的なものがあとづけだった。たとえば現代の民主主義国たる日本で、ある個人が総理大臣と外務大臣総務大臣厚生労働大臣財務大臣防衛大臣を兼ねたとしよう。日本国の基本は変わっていないが独裁者がなんとなく出現している。これがローマ共和国からローマ帝国への変化だったのではないかな。

 

広がりすぎたローマ帝国は東西にそれぞれ正帝副帝を置き、分割統治するのだが、西ローマがゲルマン人の大移動で崩壊する。傭兵隊長オドアケル西ローマ皇帝を退位させ、西ローマ皇帝の地位を東ローマ皇帝に返す形をとった。オドアケルはいわば統一ローマ帝国の西半分を預かる代官という地位に就いた。なのでこの時点では形式的には西ローマの滅亡ではなく、東西ローマの再統合とみなしてもおかしくない。以後西ヨーロッパには各種の王国が成立するが、それらを東ローマは己の宗主権の下にあるとみなしていたし、西欧各国もそれに甘んじていた。これが、皇帝の方が王より偉いという認識の元である。やがてフランク王国が勃興。カール大帝が「ローマ皇帝」として戴冠する。ただし、東ローマとしてはあくまで「ローマ帝国の皇帝はこっちだけ、あんたは「ローマ人の皇帝」っていう伝統的なローマ皇帝の地位とは認めないよ。うちの帝国の中の格下の王国のひとつだからね」ってな認識だった。でもまあ、西としては「こっちも東と対等なローマ帝国だよ」って言いたかったんではないかと思う。

 

その後フランク王国はゲルマンの「子供に土地分けるわ~」相続で、3つの国に分かれる。フランス、イタリア、ドイツの起源である。で、なんか「イタリア王」の地位を得ることが「西ローマ皇帝」の条件みたいな話になって、主にドイツの王権がなにかとイタリアに進出したがったりして、なあなあで「神聖ローマ帝国」となっていく。

 

さて、1204年、第四次十字軍が、なにをとち狂ったか東ローマ帝国を滅ぼし、ラテン帝国を建国するという事件が起こる。このラテン帝国というのは歴史用語であって、正式な国名はロマニア帝国、ローマ人の土地という意味のロマニアを冠し、東ローマ帝国の後継国家を目指していた。十字軍から逃げ出した東ローマの皇族がニカイア帝国をたてて対抗、やがて首都を奪還して東ローマは再興されるのだが、ニカイア帝国の正式名称は亡命政権時代でも「ローマ帝国」であった。

 

「フランス」は「フランク」の国名を一番残してるが、長い間ローマ帝国にこだわることがなかった。その間ドイツが「神聖ローマ帝国」だったのだが、これ統一国家というより小国の集合体で、あんまし力のない「皇帝」位を選帝侯の綱引きで決めるだけの国になっていく。18世紀には「神聖でもなければローマ的でもない、そもそも帝国ですらない」と評されるようになるのだが、それでもこれは名目的には、カール大帝の戴冠に始まる「ローマ帝国」。東西分割したローマ帝国の西半分を継承するのが神聖ローマ帝国だったのだ。

 

一方東ローマ帝国は1453年にオスマン帝国に敗れ、滅亡するが、ロシアのイヴァン三世が東ローマ皇帝の姪と結婚していたので、これ以後ロシアの君主がカエサルに由来するツアーリという皇帝号を自称することになる。つまりロシア帝国東ローマ帝国の後裔という立場をとったわけだ。

 

オスマン帝国はまあ、ヨーロッパの帝国ではないので置いといて、ヨーロッパにおける帝国というものは、このようにローマ帝国の後継者という意味合いがあった。ところがナポレオンがフランスを帝国にしてしまう。あれはローマ帝国の後継というより、ローマ帝国の再現なんじゃねえかな。破竹の進撃でヨーロッパの覇権を握り、凱旋門を作ったりするあれは、自分をカエサルになぞらえてフランスを新たなローマにしようとしたよね。

 

30年戦争で死に体になってた神聖ローマ帝国ナポレオン戦争で帝国を維持できなくなる。このころには神聖ローマ帝国ハプスブルク家世襲帝国となっていて、皇帝フランツ二世はハプスブルク家の本拠オーストリアだけ確保して「オーストリア帝国」を建国し、神聖ローマ帝国を解散する。そののちハンガリーと合併してオーストリア=ハンガリー帝国になる。このオーストリア=ハンガリー帝国西ローマ帝国の末裔に含めるなら、古代ローマ帝国は東はロシア帝国として、西はオーストリア帝国として、第一次大戦まで残っていたことになる。そしてこの戦争中、ロシア革命によって東ローマの末裔が崩壊。その後オーストリア革命によって西ローマの末裔が滅んだということになる。どっちも明らかにローマ的ではなくなり、それぞれ紆余曲折あったが、ほとんど同時期に消滅したというのはなんだか感慨深い。

 

ナポレオンがローマ帝国の伝統に関係なく帝国を作ったことで、かつての東ローマと西の諸王国の関係にはじまる皇帝の王に対する優位というイメージを保ったまま、なんか君主や国家が偉そうにしたい場合に「エンペラー」「エンパイア」な感じの「皇帝」「帝国」を名乗ることができるようになる。旧神聖ローマ帝国のなかで、オーストリア帝国のほかに、プロイセンを中心とするドイツ帝国も存在した。西欧文化に対抗して極東の日本も天皇を対外的に「エンペラー」として「大日本帝国」を名乗るようになるし。戦後も中央アフリカのボガサが皇帝に即位して中央アフリカ帝国なんてのを、おどろくなかれ1976年に設立している。まあ これはフランスからすげえ借金してむちゃやったんで、あっというまにクーデター起きてつぶれたけど。

ファンタジー作品における冒険者ギルドとは一体なんだろう

前回の記事で「小説家になろう」で面白かった作品を並べてみたが、その多くが魔物とかがいて魔法とかがあるファンタジー小説で、転生や転移した主人公が活躍する舞台として「冒険者ギルド」というものが設定されている。こういう作品における「冒険者ギルド」とはなんだろうか。

 

日本から転移してきた主人公はもともと舞台となる世界の住民ではなく、身分を証明するものがなにもない。

多くの場合主人公が向かう町は城塞都市であり、町の門で身分証明が必要になる。ただし、もともと中世風な世界なので身分を証明する手立てがない現地人も多く、そういう場合の手続きは用意されている。

城門で一時的な滞在許可を出し、一定日数を超える滞在ならまた手続きが必要になる。冒険者ギルドに冒険者登録するならば、ギルドカードが発行され、それが恒久的な身分証明になる。

ギルドカードには冒険者の名前やレベル、作品によっては討伐した魔物の情報なども記録されるようになっている。そういう自動記録系の機能が付いている場合、カード自体が高価な魔道具であるという設定があることが多い。

そのため、冒険者ギルドでの初回登録は無料であるが、ギルドカード紛失の際の再発行は日本円換算で10万円とかの結構な高額になっている。ただし、僕が読んだ作品の中で、実際にギルドカードを紛失して高額な再発行手数料を支払った作品はない。この高額な再発行手数料という設定はなぜか使われないのに存在する謎設定である。

多くの作品で冒険者ギルドは国からある程度独立した権限を有しており、国をまたいでの身分証明が可能。また、魔物退治などで得た金はギルドに預金が出来、遠隔地のギルドでも引き出せる。

 

冒険者にはランクがあり、殆どの場合ABCといったアルファベットの等級が割り振られる。A級の上にS級とかSSS級とかが存在するが、S級以上の冒険者は世界でも片手で数えるほどしかいないってのがお約束。ギルドで冒険者登録する際は主人公がどんなチート能力を持っていても最下級(G級だったりF級だったり)から始まり、自分のランクに見合う依頼しか受けることが出来ない。最下級の依頼は薬草取りや町の溝さらいといった地味なものだが、安全な野原に薬草取りに行くとなぜか上位の魔物が現れ、これを討伐して「F級なりたてのガキが一人でがブレードボアを退治したって!?ありえない!!」などと話題になってしまう。

 

ギルドの建物で先輩冒険者の新人イビリにあい、これをあっさり撃退するのもお約束。

冒険者のたまり場という設定上、酒場が併設されていることも多い。

 

ギルドは依頼報酬を出す他に魔物の素材を買い取っている。魔物の皮とか角とか牙とかは武器防具の素材としてやたら高価で売れる。また、魔物の体内にはだいたい魔核とか魔石という魔力の源があり、これも高価で売れる。

最近の作品では魔物の肉は美味いという設定がつくことも多く、豚っぽいオークの肉が美味いのがデフォルトで、さらに高レベルの魔物ほど美味いという設定が加わり、ドラゴンの肉なんかもうすごいレア食材として珍重されたりする。なわけで肉も買い取る作品が結構多い。個人的にはヒューマノイドタイプの魔物、オークやコボルトの肉を食べるという設定は抵抗を感じるのだが、多くの作者さんは気にしてないようだ。

 

主人公は大概レアで強力な魔物に出くわすので、高価な素材を得る機会が多く、だいたいの作品で一年もしないうちに大金持ちになり、王都に庭付き一戸建てを購入し、せいぜいお湯を買って体を拭く程度の世界で浴室を作り、日本文化の毎日入浴を実践したりする。

という具合に、異世界転移物の作品において「冒険者ギルド」は非常に都合の良い設定なのだ。

 

しかしこの「冒険者ギルド」、作家のみんながごくあたりまえの存在として作品に取り入れてるが、ふと考えるとそれほどあたり前の存在には思えないのだが、そもそも由来はどこにあるのだろう。

 

ギルドで出会った人とパーティーを組んで冒険するパターンも多いのだが、そういう仲間を得る冒険者のたまり場という設定は、ウィザードリィの「ギルガメッシュの酒場」、ドラクエ3の「ルイーダの酒場」あたりが由来になるだろうか。しかしこれと「なろう」で多用される冒険者ギルドの間には随分と差があるように思える。

 

アニメ化された「オーバーロード」においては、まさにこういうギルドが登場するけど、これそもそも原作が「なろう」発表の小説だし。

 

MMORPGなどにおける「ギルド」は趣味の合うプレイヤー達が結成するグループにすぎない。上述の「オーバーロード」ではランク分けされた冒険者を登録する冒険者ギルドが登場するのはゲームに似た異世界に転移した後で、それとは別にMMORPG時代のグループであるギルド、アインズ・ウール・ゴウンが存在するという、少々ややこしいことになってたりする。これも「ギルド」というものの不思議さを表してると思うのだが。

 

都合いいよね、冒険者ギルド。僕もいずれおっぱいの大きい受付嬢がいる冒険者ギルドで、元S級冒険者のギルドマスターを驚かせるような作品を書いてみたいものである。

メモ:「小説家になろう」で面白かった作品

「小説家になろう」に投稿されている小説を、ランキングなどを頼りに読んでみて、個人的に気に入った作品を備忘録的に並べておく

 

現在の段階で完結作品(本編完結後外伝等が続いている作品も含む)

ncode.syosetu.com

冒険者ギルドとかある系のファンタジー作品だけど、「レベル」「経験値」といったゲーム用語は避けていて、かつ「レベルアップ」にあたる「成長」に面白い味付けをしている。クライマックスの盛り上げは「待ってました」と言いたくなるいい出来。

 

ncode.syosetu.com

異世界転移物。女性主人公のコメディ。とにかく主人公のキャラが立ってて楽しい。

 

ncode.syosetu.com

異世界転移物。すごい長編。書籍化作品。長いのにしっかり組み立てられてて読み応えがある。

 

ncode.syosetu.com

異世界転生物。内政チート。ケモミミラブ。書籍化作品。最後はもうちょっと余韻が欲しいが、綺麗にまとまっている。

 

ncode.syosetu.com

異世界転移物。書籍化作品。ハーレム物。バトルのインフレが心地いい。最初の方で主人公が無敵に近い力を手に入れるが、それが転移チートではないという点が工夫されている。

 

ncode.syosetu.com

異世界転生物。スライムなのに最強。やっぱ主人公が人間じゃないといまいち感情移入できねえと思って、魔物への転生物はちょっと避けてたんだけど、これは面白かった。スライムだけどわりと早く人型になるので感情移入しやすかった。でも男性とも女性とも付かない体型で性器がない姿なんだけどねえ。

 

ncode.syosetu.com

SF。突如襲来した異星人が日本とだけ国交を結ぶ。中国韓国が雑魚な悪役、アメリカは日本の仲間だからすこしだけ恩恵を被るという、ちょっと恥ずかしい展開になるのだが、ヒロインのキャラ立てがかなりよくできている。

 

現在連載中の作品

ncode.syosetu.com

悪役令嬢物。書籍化作品。悪役令嬢物だけど転生でも乙女ゲームでも婚約破棄でもない。代々悪役としか言いようのない容姿を持ち、それゆえに何を言っても裏を読まれる。そんな貴族の令嬢が主人公。そういう単純な誤解系コメディと思って読み始めたらすげえ骨太のストーリーで引きこまれた。更新が楽しみな作品。

 

ncode.syosetu.com

異世界転移物。正直に言うと多少間延びする展開もあるのだが、独自性は高く、理系心をくすぐる作品。理系チートの代表的な作品だと思う。

 

ncode.syosetu.com

異世界転生物。魔王軍の人狼に転生した主人公が活躍する。本命ヒロインが定まっていないのが弱点か。しかし面白い。

 

ncode.syosetu.com

未来宇宙物SF的な設定から、時空転移して日本の戦国時代へ。かなり変化球だけど、始まってしまえば歴史改変物。ただしもとの歴史が正史と異なっているパラレルワールド。主人公の姓は足利で、戦国時代に転移したのだが、主人公たちの歴史では「細川幕府」だったはずの時代。だけど足利幕府があるので自分たちの姓を変えて潜り込み、戦国武将に成り上がっていく。つまりパラレルワールドから僕らの世界の戦国に来て、僕らの歴史を変えてしまったという、かなり混乱する設定になっている。

 

ncode.syosetu.com

異世界召喚物は、個人が勇者として召喚される。学校のクラスが召喚される。学校が召喚されるなどのパターンがあったが、これは「日本国そのものが異世界に転移してしまう」という究極の異世界転移物。この設定で読者が思うだろう日本の国民や政府の主観が十分に描かれていないなど、小説としては粗が目立つ作品だが、意外ともともとあった異世界側の描写がよく。読んでて面白い。

アーケードゲームはアーケード商店街のゲームではない

コインを入れて遊ぶような業務用ゲーム機を一般に「アーケードゲーム」と言うが、この呼び方、なんか不思議に感じたことはないだろうか。

「アーケード」というのは、アーチなどで覆われた通路で、一般に商店街などに見られる。というか、日本だと商店街の通路にプラスチックなどの透明もしくは半透明な屋根をかけた「アーケード商店街」の形式でしか知られていないと思う。あまりゲーム機のイメージと結びつかない。

 

で、欧米における「アーケード」の用法だけど、店が通路に沿って並んでるアーケードから、催し物の夜店的な食べ物屋や、射的、輪投げなどが並ぶ状態とかもアーケード(アミューズメントアーケード)と呼ばれるようになって、ピンボールやらその他のエレメカやらのコイン遊具が並んだ場所を、一般に英語で少額コインを表す「ペニー」をつけて「ペニーアーケード」と呼ばれるようになったわけだ。「ペニー」って英国の貨幣単位なのだけど、アメリカなどではセント硬貨をペニーとも呼ぶらしい。

なので「アーケードゲーム」はビデオゲーム以前から、こういった「アーケード」に置かれる遊具の総称として存在したわけだ。

ちなみに、「催し会場」という意味での「アミューズメントアーケード」には「ミッドウェイ」という呼び名もある。ビデオゲーム初期によく見かけたアメリカのミッドウェイ社は、もともとエレメカピンボールの大手メーカーだった。

 

ところで、業務用ゲームに対し、家庭用ゲームを「コンシューマーゲーム」というが、この「コンシューマー」は「消費者」という意味の英語である。通常、業者しか買えないアーケードゲームに対して「一般消費者が購入するゲーム」というわけで、まあなるほどと思うのだが、これ和製英語である。英語では「コンソールゲーム」、家庭用ゲーム機を「ゲームコンソール」と呼ぶ。この「コンソール」は語源的にはコンピューターの制御卓、コンピューター端末を指す言葉である。MS-DOSのconデバイスなんかもこれが由来である。家庭用ゲーム機を「ゲーム端末」などと表記する場合があるが、これは英語の「ゲームコンソール」を訳したものだろう。

ゲーセン黄金時代を築いたテーブル筐体

ビデオゲームが出現する前、「エレメカ」と呼ばれる機械式遊具を置いていたのは主にデパートの屋上遊園地や観光地のホテルのような場所だった。PONGとかブロック崩しといったゲームもそういう場所に置かれることになる。僕の記憶では、1970年代初期に、観光地のホテル売店コーナーの隅にPONGが置かれていて、すごい未来ガジェットだと感激し、親に100円ねだっていた覚えがある。ちなみに初期のビデオゲームはアップライト筐体のみだった。これは当時のエレメカ等と同等の「立って機械に向かう」体験であるのだが、タイトースペースインベーダー開発前後に、テーブル筐体というものを発明する。ガラス天板のテーブル内にゲーム基板とブラウン管を収め、座って上から覗き込むプレイスタイルを実現したものだ。どうしてこんなものを作ろうと思ったのかよくわからないのだが、これが大ヒットの一因であったと思う。

 

アップライト筐体は、基本的に壁際に置くものだ。筐体の裏側は電源ケーブルしかなく、見た目も悪い。客の前に見せるものではない。しかしテーブル筐体は「裏側」がなく、手前と奥で交互に遊べる仕組みだった。フロア内にゲーム機を敷き詰めることが可能になった。昔からあるデパートの遊技場は、壁際にエレメカを並べ、中央には騎乗型の遊具を置いたりしていたのだが、テーブル筐体のインベーダーゲームを敷き詰めた「インベーダーハウス」という業態が出現する。これが「ゲームセンター」の元祖となる。

 

さらに、テーブル筐体は「テーブル」であるため、レストランや喫茶店などに置けるようになる。料理を食べるテーブルでゲームもできるのだ。

 

スペースインベーダーの登場は1978年。おそらく1980年代前半になると、「喫茶店」にはテーブル筐体が置かれるのがあたり前になっていたと思う。普通の木製テーブルと、テーブル筐体が混在している店舗が多かったように思う。逆にすべてのテーブルがテーブル筐体ゲームという店は、たとえコーヒーを出すとしても「コーヒーが飲めるゲーセン」という扱いだったのではなかったかな?

 

1980年代半ばから1990年代初期にかけて、たとえば東京23区の殆どの駅周辺には多分平均4箇所以上のゲーセンが密集してたはず。それらの店舗は概ね小さくて、平屋だったり雑居ビルの地階や2階だったりと、大資本のそれではなかった。もちろんタイトーセガナムコといったメーカー直営の大型店舗もあったけど、個人経営の小規模ゲーセンがわらわら生まれていた時代があった。狭く薄暗い店舗にテーブル筐体がぎっしり並んでいて、毎月新作ゲームが投入される。そんな感じ。あの時代、ゲーセンのバイトは人気職業だったし、もうかっていたんだろうな。

 

1990年代、スト2によって対戦格闘ブームが起こる。これはテーブル筐体の終焉を意味していた。2つの筐体で対戦する都合上、テーブル筐体ではなく、アップライトでなければいけなかったのだ。ただし、「座ってプレイする」テーブル筐体の流儀が定着していたので、昔の「立って遊ぶ」アップライト筐体とは違い、座ったままモニターを起こすスタイルになっていた。テーブル筐体は2人で交互に遊ぶのに最適化したシステムであり、同時に遊ぶ形態には適していなかった。

 

1990年代後半までは、まだ喫茶店にテーブル筐体が残っていたが、テトリスや麻雀が中心で、新しいテーブル向けゲームはあまり出てこなかった。発展をなくした喫茶店ゲーム機はすみやかに消滅。現在では、テーブル筐体のゲーム機を残す喫茶店というと、もはやレトロを売りにした店舗くらいしかないだろう。

 

なお、1980年代後半、バブル景気の時代、搭乗型の大型筐体ブームが起こっているが、大型筐体はフロアの外周に置かれ、中央にはテーブル筐体の列があるという形態は保たれていたと思う。

ハッカソン、八ヶ村

ハッカソン - Wikipedia

ハッカソンってのは要するに「ハック」+「マラソン」で、短期間のイベントでガーッとプログラム組んだりして競い合うものなんだけど。なんかこの単語見聞きするたびに中世日本の農村風景みたいなものが頭に浮かぶ。そう、「八ヶ村」である。「八ヶ村」という単語の正しい使用法は知らんが、村の集まりを指して言う言葉であろう。行政単位としての八ヶ村が存在したのかどうかよくわからないが、検索してみると「畑場八ヶ村」「熱田八ヶ村」などの地名があったらしいことがわかる。

 

現在の行政単位としての「村」が8つも隣接して存在する場所があるかどうかわからないが、そういう場所を探して、たとえば「○○郡八ヶ村ハッカソン」というイベントを企画してはどうだろうか。村おこしにもなるしw

MSX用クロス開発のすすめ(z88dk)

今の時代MSX用にプログラムを開発する際、実機もしくはエミュレータ上でアセンブラコンパイラを使うのは苦痛でしかない。コマンドラインのエディタ。K&R時代のコンパイラと付き合って、当時のままの重く、メモリも足りない環境で開発するのはあまりよい方法ではない。とはいえ、Windows上などでクロス開発するのは敷居が高いと思うだろう。いわゆる「マイコンクロス開発」と同様に、コンパイルしたバイナリを転送して、動かして、デバッグも大変でと、クロス開発ならではの苦労も想像できる。でもMSXエミュレータとホストOSの関係は実は意外と軽い。

 

openMSXというMSXエミュレータは、ホストOS上のディレクトリをフロッピーとしてマウントする機能をもっている。

f:id:juangotoh:20151029220047p:plain

 

これを使うとMSXエミュレータからWindows上のファイルがそのままMSX-DOSのファイルとして見え、実行することもできる。なのでそこにMSX用ソフトを出力するようにすればWindowsMSXの開発が行えるのだ。

 

で、MSX用に開発できるクロス開発環境を考える。さすがにかつてのMSX-DOS TOOLSで実現されてるほどにBASICと遜色ない環境を整えているものはない。だが、まあMSXにはBIOSとBDOSという、アセンブラからでも比較的容易に使える機能がてんこもりなので、とりあえず「動く」バイナリが出力できればなんとかなる。その上でいいなと思ったのがz88dkというC開発環境である。

 

z88dkはZ80を使用した様々なコンピューター用の実行ファイルを作成することを目的にした開発環境である。サンプルの豊富さなどからシンクレアZXスペクトラム用がもともとの用途なのだと思うが、TRS-80、コレコビジョン、CP/M、S-OS、シャープMZシリーズおよびX1、NEC PC6001シリーズ、セガSC-3000とマスターシステム、ソードM5なんかにも対応している。出力するプログラムも、カセットテープ用音声ファイルからディスクBASICでBLOADして動かすバイナリ、ロムカセット、DOS用などを切り替えられるという親切さだ。もちろんMSX向けにも出力できる。

安定版のインストーラも提供されているが、最後の安定版が出てから大きく改良されているのでNightlyビルド版をダウンロードした方がいい。プログラムのビルド方法なども変化しているし。

たとえばWindowsなら、

http://nightly.z88dk.org/z88dk-win32-latest.zip

をダウンロード、展開して、どこでも好きな場所に置く。cドライブ直下にz88dkフォルダを置いたとして説明すると、このあと環境変数をいくつか設定する。コントロールパネルの「システム」を開いて、「システムの詳細設定」から「環境変数」を開く

f:id:juangotoh:20151029222717p:plain

PATHの末尾に ;c:\z88dk\bin

を追加。

あとZ80_OZFILESという変数を作成して変数値を c:\z88dk\Lib

ZCCCFGという変数を作成して変数値を c:\z88dk\Lib\Config

としておく。これでOK。あとはopenMSXにマウントしたフォルダ上でターミナルを開き、ソースファイルをコンパイルして、そのままエミュ上で実行可能になる。

例えば

#include <stdio.h>

main()
{
printf("Hello World");
}

 これをtest.cとして保存し、ターミナルでコンパイルする

zcc +msx -subtype=msxdos test.c -o test.com

f:id:juangotoh:20151029234006p:plain

これをmsxエミュレータMSX-DOSから実行する

f:id:juangotoh:20151029223910p:plain

 

コンパイルオプションで '+msx'とつけることでMSX用になる。 -subtypeを指定しない場合、BASICからBLOADで読み込んで実行するバイナリになるようだ。-subtype=romというのもあって、ROMカセット形式のバイナリを作成できる。

 

なお、デフォルトではディスクI/Oをダミー関数に置き換えたndosライブラリがリンクされ、ファイルの読み書きができない。ゲームを作るなら構わないだろうが、普通にファイルの読み書きをするプログラムを書く場合はz88dk\lib\config\msx.cfgを編集して

CLIB      default -lmsx_clib -lndos

とある行を

CLIB      default -lmsx_clib

と書き換えるといい。-lndosオプションがダミーライブラリの指定になっているのでこれを削除すれば普通にファイルI/Oが使えるようになる。

 

ちなみにMSX-Cと違って、z88dkは32ビットのlong型も普通に使えるし、ほぼANSI-C準拠なのでわりと今時の感覚で使える。

 

なお、M80用のアセンブラをz88dkのz80asmで通るようにするには以下のようにする。

equによる定数は使えない。

FOO equ 0FF00H

みたいな指定は

DEFC FOO = 0FF00H

と書き換える。DEFCは32ビット定数の宣言。

マクロは使えないっぽいので展開して書き換える。

コードとデータのセクション設定は

SECTION code

SECTION data

などと書く。

DB DWなどの定数擬似命令はエラーになるようだ。

DEFB DEFWと書き換えればOK