プチコン

「プチコン」（PETIT COMPUTER）は、2011年3月9日にスマイルブームより配信されたニンテンドーDSiウェア。開発については、北海道札幌市に所在するJOEDOWN、スマイルブーム、ロケットスタジオの3社による共同開発。バージョンアップ版である「プチコンmkII」についても記述する。

Microsoft Windowsが台頭してくる前、1980年代の低価格帯ホビーパソコン・8ビットパソコンを再現した仕様となっている。

以下、用語は原則としてプチコン取扱説明書による。

 概要 
SMILEBASICという独自のBASICが内蔵されており、ゲームなどのプログラムを自作出来る。

プログラムはDSi本体のメモリに保存され、ワイヤレス通信でデータのやり取りが可能であるが、セキュリティの都合上SDメモリーカード等を介した不特定者間でのやり取りには非対応(プチコンmkIIからはSDカードへの出力、およびQRコードからの入力に対応している)。なお当時のパソコンはカセットテープから、「ピー」「ガガガ……」と聴こえる録音でプログラムデータをやりとりしていたが、プチコンではそうした音をマイクで認識する方法も検討されていた。データのSAVE（保存）・LOAD（読み込み）を行う時は、このオマージュとも言えるピーガー音が鳴る。サンプルプログラムや画像作成ツール、サンプルゲームも内蔵されている。これらは自作したプログラム同様に読み込んで"RUN"命令で実行するが、"FILES"命令でも表示されない、"DELETE"命令で消せないという特徴を持つ（当時のパソコンでは行番号消去がDELETEでファイル削除がKILLだったが、プチコンではファイル削除がDELETE）。

 SMILEBASIC 
当時のパソコンを意識したレトロなBASICであるが、プログラム実行のために使えるメモリ容量が1,048,576バイト (1MB)であったりと、当時よりはかなり高性能のスペックを持っている。このほかに、十字ボタンやタッチパネルの入力情報も取得出来る。BASICでゲームを作る場合、当時のパソコンでは処理速度に難があり、当時コンピュータゲームの主流であったアーケードゲームと同等の速度をBASICで再現することは不可能であったが、プチコンにおいてはこれを容易にこなし、ファミリーコンピュータと同程度のゲームを作る事も可能である。

コマンドなどの主な特徴は以下の通りで、一部においては当時のパソコンでなく現代の仕様をあえて取り入れ、プログラミングの負担軽減をはかっている。

編集モード
当時のパソコンでは行番号プログラム入力と、行番号プログラム実行および行番号なしプログラム実行が同じ画面だったが、プチコンでは前者を編集モード、後者を実行モードとして、画面を切り替えている。編集モードの左に出ている番号は、1から自動的に並んでおり（画面右端まで行っても改行されず、右にスクロールして出っ張る）、現代のパソコンのテキストエディタと実質的に変わらない。編集モードで複写・貼り付け・削除も一行単位で可能。
ジャンプ先指定
当時のパソコンではプログラムを打ち込むユーザが行番号を指定していたが、プチコンではすべて、頭に"@"を関するラベルに統一されている。
IF命令による条件判断
代入は「=」だが、「AとBが同じ」は「=」でなく「==」、「AとBが違う」は「<>」でなく「!=」となる。これはC言語と同じである。またIF文にELSE分岐（条件が成立しない場合に実行）は存在しない。
画面表示命令
一般的なBASIC言語では、命令文で"?"を入力するとPRINTに自動変換されるが、プチコンでは"?"もPRINTもそのまま表示が保たれ、どちらも画面表示命令として機能する。
サウンド機能
二種類に大別できる。当時のパソコンのMML方式とDSのサウンド方式に差がありすぎ、現代型ソフト一本分の機能が必要になるため、こうした仕様になったとのこと。
BGMPLAY命令はあらかじめプリセットされているBGM30曲（制作はJOEDOWN）から選択する。一度実行するとエンドレス再生されるが（プログラムを止めたり、編集モードに入っても演奏され続ける）、ゲームにおける特定場面用に短時間演奏のみで自動終了するブリッジ式のBGMも3種類収録。
もう一方のBEEP命令は、当時のパソコンでは単なるビープ音を出すだけであったが、本機ではゲームによく使われるフィーチャーにあわせた70種類の効果音を実装。ブリッジ式BGM並みに長い音も存在する。周波数16384段、音量128段、パンポット128段を操作可能で、当時のパソコンのMUSIC命令やPLAY命令以上のMML並みの機能を持つ。
その他
一度実行したプログラムをRUN命令で再実行すると、変数が当時のパソコンではリセットされたが、プチコンでは前回の実行時の値がそのまま保存されている（CONT命令と同じ）。リセットにはCLEAR命令が必要。
文字列編集関数にLEFT$関数とRIGHT$関数は存在せず、MID$関数のみ。またMID$関数による処理対象文字列の最初の左端を指示する値が、当時のパソコンやMicrosoft BASICでは1だったが、プチコンではC言語の[[標準Cライブラリ#文字列操作 <string.h>|strn***]]関数などと同じ0。

 画面 

 実行モード画面 
プチコンを起動すると、最初に実行モード画面が表示される。DSの上画面が実行画面、下画面がQWERTY配列の仮想キーボードとなる。
いわゆるダイレクトモードで、プログラムを直接入力してEnterキーを押すと、その場で実行される。マルチステートメントが使えるが、1行を越える長いプログラムは記述・実行できない。
キーボードはモード切り替えにより、英数字、カタカナ、グラフィック記号などを入力できる。カタカナで濁点・半濁点を入力する場合、当時のパソコンは現代の半角文字同様、濁点・半濁点が分離されていたが、プチコンでは入力の際に記号入力モード+Shiftキーで、カナと濁点・半濁点がまとめて入力できる。ただし記述された文字はカタカナと濁点・半濁点が別々で、二文字分である。

 編集モード画面 
編集モードでは、上画面にプログラムリストが表示され、下画面は実行モードと同様の仮想キーボードとなる。複数行のプログラムを記述し、実行モード画面へ移ってRUN命令で実行することができる。
記述したプログラムはSAVE命令で保存、LOAD命令で呼び出すことができる。複数のプログラムを同時に呼び出して編集することはできない。
リストの編集では、下画面の仮想キーボードの他、十字キーや各種ボタンが使用できる。また、1行分のみコピー＆ペーストができる。複数行や選択範囲のコピー＆ペーストはできない。検索・置換機能も用意されていない。

 画面の構成 

画面は以下の5つのレイヤーで構成されており、重ねて表示すると上から優先して表示される。

（1）コンソール画面
いわゆる文字表示画面。当時のパソコンは横40行×縦25文字、次いで32×16が多かったが、プチコンは両者の中間的ともいえる32×24。
フォントを書き換えることにより、MZ-80シリーズ、JRシリーズなどと同じキャラクタグラフィックや、PCG機能も実現できる。

（2）ユーザー用BG（バックグラウンド）面（前）
（3）ユーザー用BG面（奥）
BGの前と奥は機能的にはまったく同じで、BG用キャラクター（8×8ドット）を並べて表示できる。仮想的にキャラクター数で縦横64個分（512×512ドット分）の広さを持っており、オフセット指定でその一部分を画面に表示するようになっている。端と端がつながっているため（ラップラウンド）、無限スクロールが可能。

（4）グラフィック面
横256ドット×縦192ドット×上下2ページ。（上下画面は別ページで、連続してはいない）。グラフィック描画命令で表示範囲を外れた座標を指定しても、エラーメッセージは出ず、画面に映らない状態で正常処理される。
グラフィック表示の命令文はすべて頭に"G"が冠されている。またカッコは関数のみに使われ、グラフィック命令の座標指定には使われない規則になっている。たとえばグラフィックで線を引く命令は、当時のパソコンでは「LINE(X1,Y1)-(X2,Y2)……」などと記述したが、プチコンは「GLINE X1,Y1,X2,Y2……」と記述する。またカラーは16色表示可能だが、コンソールとグラフィックでカラーコード値（数値と色の組み合わせはMicrosoft BASICと異なる）の対応が大小逆になっている。

（5）背景色
単色の背景色を指定できる。

 スプライト・BG 
ゲームなどのキャラクター・背景表示用として、スプライトおよびBG用キャラクターが実装されている。スプライトは上画面用が512種類（64種×8バンク）、下画面用が118種類。BG用キャラクターは1024種類（256種×4バンク）。ユーザによりオリジナルのスプライトやBGを作ることも可能。スプライトは最大100個まで同時処理でき、上述のコンソール／BG／グラフィック面のレイヤー間に配置・表示することができる。

 開発 
本作の開発元であるスマイルブームは、ゲームやツール、コンテンツの企画や開発を主とする一方、受託業務なども行っている。2010年に発表した『3D∞』同様、本作も販促グッズとしての意味合いで制作された。

本作の企画は2010年9月に始まり、11月よりプログラミングが開始された。元々、同社代表の小林貴樹はBASICに興味があり、機会を得て企画を立ち上げた。どうせやるならスマイルブームのある札幌の会社で作ろうという話になり、旧知にあたるJOEDOWNとロケットスタジオとの共同開発体制が取られた。このうち、ロケットスタジオの代表の竹部はファミリーベーシックの開発者でもあり、BASIC言語に詳しかったことから、ロケットスタジオがプログラムにかかわる部分を担った。

企画初期の段階で任天堂による審査があり、開発チームは公序良俗に反したりセキュリティ上問題のある動作を起こさないようにすることなどを、技術的に証明した。その後審査はすんなり通り、ゲームではないということでCERO区分における「教育/データベース」にカテゴリ分けされた。

 プチコンmkII 

プチコンmkII（マークツー）は2012年3月14日にニンテンドーDSiウェアとして発売されたバージョンアップ版。バージョン表記は Ver2.0 となっている。初代プチコンとは上位互換性があり、以下の機能が追加・拡張された。

ホームメニュー
初代プチコンではソフトを起動すると実行画面が表示されたが、プチコンmkIIではホームメニューが新設された。
プログラムを作る（従来の実行・編集画面へ移動）
作品を見る（選択したプログラムを実行し、ホームメニューに戻る）
ファイルの管理（ファイルの名前変更、削除、送受信、QRコード読み込み、SDカードへの書き出し）
プチコンからファイルをコピー（初代プチコンで作ったプログラムの移行。DSi/LL・3DSに初代プチコンがインストールされている場合のみ表示）
プログラム可搬性
作ったプログラムをSDカードに書き出せる。プチコンmkII公式サイト内にある「QRコード変換ツール」へアクセスすると、プログラムファイルや各種リソースファイル（キャラクターデータなど）をQRコード画像ファイルに変換することができる。
QRコードをDSi/LL・3DSのカメラ機能で撮影すると、プログラムやリソースをプチコンmkIIに取りこむことができる。
上記の手順により、QRコードを介してプログラムやデータを簡単に配布・共有することが可能になった。
プログラム編集機能の拡張
編集画面でアルファベットを入力すると、インクリメンタルサーチで命令文候補が表示され、タッチで選択できるようになった。
検索ボックスへ入力したキーワードで、プログラム内を検索ジャンプできるようになった。
音楽・発声機能の追加・拡張
BGMPLAY文で、MML形式で音階を書いて再生できるようになった。音色はGM音源と同等の基本128種類・パーカッション68種類の他、PSG（デューティ比8パターン）、ノイズ、波形メモリ音源を搭載。最大8チャンネルのMMLを8トラックまで並行で再生可能で、最大で16音同時発音が可能。波形メモリ音源は、ユーザー指定の波形パターンを32種類登録できる。
TALK文で、記述したカタカナ文字を合成音声で発音できるようになった。声質（話者）12種類、感情表現17種類、アクセント・ピッチ・速度などの設定ができる。
スプライト機能の拡張
16ドット四方固定だったスプライトのサイズが、縦横それぞれ 8, 16, 32, 64 ドットのいずれかの組み合わせを選択できるようになった。
左上に固定されていた拡大・回転の中心点を任意に設定できるようになった。
スプライト単体やグループ同士の衝突判定機能が追加された。
その他
画面を一気に初期化するACLS文の追加。
変数名・ラベル名の文字数が最大8文字から最大16文字に拡張された。また、GOTO 命令などのジャンプ先を文字列変数で指定できるようになった。
変数の最大数や配列バッファサイズが拡張された。
ELSE文の追加、飛び先ラベルの文字変数での指定など、制御系命令の機能拡張。
文字列検索・置換関数などの追加。
グラフィックなどの各種リソースデータを、プログラムと共に1パッケージで保存できるようになった。
プログラムをロードして編集中のプログラムにそのまま足すことができるAPPEND文の追加。

 関連書籍 
 蘇るBASICプログラミング プチコン公式活用テクニック ISBN 978-4048706711