読者です 読者をやめる 読者になる 読者になる

プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

プチコン作品一覧

■プチコン3号作品●7650 パックマンDLCを使ったパズルゲーム。 http://d.hatena.ne.jp/eidaht/20160612/1465755564●MISSILE DEFENSE for プチコン3号 ミサイルコマンド風ゲームのプチコン3号移植。 http://d.hatena.ne.jp/eidaht/20141223/1419341732●ゲーム…

プチコンプログラミング覚え書き(7) 互換機能編

プチコンBIGも発売されたので、「3号プログラミング覚え書き」でなくて「プチコンプログラミング覚え書き」にしました。・バンナムDLCを使っているプログラムを一つのソースコードでBIGやDLCの入っていない3号で動かすには DLCが入っているか入っていないか…

認知心理学の実験 on プチコン3号

以前、プチコンmkIIで作った認知心理学の実験をプチコン3号用に焼き直しました。キー: EB2X5EKE 公開日: 2016/11/03mkII時代の動画を貼っておきます。 なお、今回作ったのは、動画のうち実験2の方だけです。 www.youtube.com

補足: ほしけんさんのプチコン漢字ライブラリの高速化を試みた

「ほしけんさんのプチコン漢字ライブラリの高速化を試みた」のエントリの補足(兼自分用メモ)。 eidaht.hatenablog.com「ほしけんさんのプチコン漢字ライブラリの高速化を試みた」でキャッシュなどを導入してプチコン漢字ライブラリの高速化を行いましたが、…

文字列を追加していく時はINCの方が速い

数値を加算する時は、INCを使うよりもA=A+Bのようにふつうの代入と加算の組み合わせの方が速い、という事実が以前から知られていましたが、文字列の時はどうなのか?と思い検証してみました。以下のようなプログラムを実行します。 最初のループが代入を使う…

ほしけんさんのプチコン漢字ライブラリの高速化を試みた

ほしけんさんのプチコン漢字ライブラリ(KNJLIB)の高速化を試みてみました。ほしけんさんのプチコン漢字ライブラリ(http://wiki.hosiken.jp/petc3gou/?Toukou%2F%A5%D7%A5%C1%A5%B3%A5%F3%B4%C1%BB%FA%A5%E9%A5%A4%A5%D6%A5%E9%A5%EA) はプログラムサイズと高…

別スロットの関数名/命令名

■ライブラリの直接呼びされることを想定しないDEFは、COMMON DEFにしないようにしようライブラリとして呼び出したプログラムに、自分のプログラムと同じ関数名/命令名があると、Duplicate functionエラーになる。SLOT 0 USE 1 ?"A=";A() ?"B=";B() DEF B() R…

3号プログラミング 覚え書き(7) クリップボード編

・プチコン3号のエディターでアンドゥできなくなるのは4103文字以上の文字列をペーストしようとした時 クリップボードに入っている文字列が4102文字までの時は、ペーストしてもアンドゥできる。

計算式評価ライブラリEVALLIB

計算式を評価するいわいるEVALを実現するライブラリを作成中です。ファイル名: EVALLIB公開キー: S2NXCNKE C3E8N4JP 434X4X2D公開日: 2016/07/05 2016/07/03 2016/07/02バージョン: 0.03 0.02 0.01v0.03 ()を含めたバグ修正、前置の+-を使えるようにした v0.…

BGMCHKの挙動

旧3DSLLかつプチコン3号 Ver3.3.1で以下を確認。134番のBGMが終わってから、135番のBGMを流すつもりで以下のように処理を書くと、 BGMPLAY 134 WHILE BGMCHK():WEND BGMPLAY 135なぜかループがすぐ終了し、135番は演奏されない。BGMPLAYを発行してからタイム…

パズル 7650 (パックマンDLC必要)

パックマンDLCを使ったパズル7650。 なんか見たことあるような?いや気のせいですwファイル名: ED7650公開キー: QDAJR3B3 C33NY3AP E23N33D4公開日: 2016/12/18 2016/06/27 2016/06/12バージョン: 1.11 1.10 1.00v1.11 WiiUでエラーになる問題を修正 v1.10 D…

SMILE BASIC 小技(9)

PRGINSで動的にコードを追加する方法。PRGINSで他のスロットにコードを追加した後にUSEを実行すると、追加したコードを実行することができる。 PRGINS毎にUSEを使えば、何度でもコードを追加できる。例: VAR DQ$=CHR$(34) PRGEDIT 3 PRGDEL -1 PRGINS "DEF …

SMILE BASIC 小技(8)

BGのキャラ定義の一部がキャラクターコードに対応していることと、BGGETを使うと非常に簡単に自作キーボードを作ることができる。具体的には、 TOUCH OUT STTM, TX, TY G=BGGET(レイヤー番号,TX,TY,1)とすると、GにBGのキャラ番号がとれる。 BGの32〜95番に…

バイナリファイル調査その(2)

型変換調査 (1) VAR A#[10] A#[0]=1.5 A#[1]=2.5 SAVE "DAT:BINDATA",A# VAR B%[0] LOAD "DAT:BINDATA",B% ?"LEN=";LEN(B%) ?B%[0] ?B%[1] ?B%[2] ?B%[3]とすると、 LEN=10 1 2 0 0と表示される。(2) VAR A%[10] A%[0]=1 A%[1]=2 SAVE "DAT:BINDATA",A% VAR …

バイナリファイル調査その(1)

バイナリファイルサイズ調査 (1) VAR A[1] a[0]=1 SAVE "DAT:BINTEST",Aとすると、36バイトのファイルが作成された。(2) VAR A#[2] A#[0]=1 A#[1]=2 SAVE "DAT:BINTEST",A#だと44バイト。(3) VAR A%[1] A%[0]=1 SAVE "DAT:BINTEST",A%だと32バイト。(4) VAR …

PRGINSしたコードを呼び出すことができるか

昨日、いろいろ試していた結果。 あるスロットから他のスロットにPRGINSでコードを追加して、追加したコードを呼び出すことができるか、という研究。 PRGEDIT 3 FUNCNM$="_ABC" IF !CHKCALL(FUNCNM$) THEN PRGINS "COMMON DEF "+FUNCNM$+"()" PRGINS " RETUR…

SMILE BASIC 小技(7)

テキストの表示デモの例。 昔からある技をSMILE BASICで焼き直したもの。 他にもたくさんあったと思うが、基本的なものを書いた。今回は長いので公開キーで。 【D3KKXJAX】1.ターミナル風 ■を付けて表示する基本型。 FOR I=0 TO LEN(T$)-1 LOCATE X+I,Y:PRIN…

3号プログラミング 覚え書き(6) スマイルボタン編

・スマイルボタンに設定したプログラムはSLOT 4で実行される。 SLOT 4には他のスロットにはない特有の制限、機能がある。・スマイルボタンに設定したプログラムからスロット指定なしでEXECされたプログラムもSLOT 4で実行される。 この時、読み込まれたファ…

SMILE BASIC 小技(6)

INC,SHIFT,UNSHIFT,PUSH,POPは文字列にも使うことができる。 VAR A$="ABC",C$ INC A$,"DEF" '文字列の最後に追加 PRINT A$ 'ABCDEF C$=SHIFT(A$) '文字列の先頭の一文字を取る PRINT C$,A$ 'A BCDEF UNSHIFT A$,"Z" '文字列の先頭に文字を付け加える PRINT A…

SHIFT(文字列)もサンプルで使われてた

SHIFT("文字列")で文字列の頭一文字をとることができますが、 これも実は公式のサンプル中で使われていました。 SYS/STAFFROLLの中です。 使ってよさそうなので、これも小技で紹介することにします。

SMILE BASIC 小技(5)

コンソールへのPRINT時に文字列をセンタリング(中央によせて表示すること)したいことは多い。 LOCATEのX位置を決めるには、画面幅(50文字)の半分(25文字)から、表示したい文字列の長さの半分を引けばよい。 毎回計算するのはめんどうなので、次のような記述…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (β2版)

ゲームブック「ドルアーガの塔」アドベンチャーシート for プチコン3号 (β2版)β(ベータ)版ですが、よければどうぞ。 マッピングはそのうち入れたいです。プロジェクト名: EDDRU公開キー: 4D2PEE7D DKENNJ3Y K5N353KV XRKE73AV RS3XY3NJ RE3YN3Q4公開日: 2016…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (β版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (β版)β(ベータ)版ですが、よければどうぞ。 マッピングはそのうち入れたいです。プロジェクト名: EDDRU公開キー: 5323VXKY → 最新版はhttp://d.hatena.ne.jp/eidaht/20201231/1338118772からどうぞ公開…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (続続α版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (続続α版)ほとんどが工事中のα(アルファ)版ですが、よければどうぞ。 ある程度のところまでは速攻でアップする予定です。プロジェクト名: EDDRU公開キー: C3ENQXDF → 最新版はhttp://d.hatena.ne.jp/ei…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (続α版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (α版)ほとんどが工事中のα(アルファ)版ですが、よければどうぞ。 ある程度のところまでは速攻でアップする予定です。プロジェクト名: EDDRU公開キー: 233XD3QE → 最新版はhttp://d.hatena.ne.jp/eidaht…

SMILE BASIC 小技(4)

1フレーム単位で動くプログラムを作っているとほぼ縁がないが、キー入力が必要なプログラムでは、キーボードバッファを空にさせたい場合がある。 この時は次のようにする。 WHILE INKEY$()!="":WEND 'キーバッファを空にする 少しだけ応用して、キーボードバ…

SMILE BASIC 小技(3)

今回は、小技というよりも、よく使うコード。様々な場面でボタンが押されるまで処理を止める、ということがある。 その時に使うのが次のコード。 '何かの処理... BWAIT 'ボタンが押されるまで待つ '次の処理 END DEF BWAIT 'ボタンが押されていない→押される…

サンプルプログラムでもMID$関数の代わりにA$[n]を使う記法は使われている

3号プログラミング覚え書き(3) 文字列編(http://d.hatena.ne.jp/eidaht/20150822/1440208747)で書いた、 「・特定の文字を取りたい時は、MID$だけでなく、A$[0]のような記法でも使える」 については、 「仕様上規定されていないので非推奨」と書いたけど、 …

ドルアーガの塔 アドベンチャーシート for プチコン3号 (α版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (α版)ほとんどが工事中のα(アルファ)版ですが、よければどうぞ。 ある程度のところまでは速攻でアップする予定です。プロジェクト名: EDDRU公開キー: 4D3J43K3 → 最新版はhttp://d.hatena.ne.jp/eidaht…

SMILE BASIC 小技(2)

今回は結構実用的な技。文字列を置き換えるSUBST$は、 SUBST$("文字列",開始位置,[文字数],"置換文字列") として使う。この時、置換文字列の長さ これを使うと簡単に文字列の一部を削除できる。 具体的には、 SUBST$("文字列",削除開始位置,削除文字数,"") …

SMILE BASIC 小技(1)

覚え書きの文字列編でも書いた、文字変数に[]でアクセスすると任意の一文字を取り出せる技は、"でくくった文字列でも使える。"文字列"[数字]みたいに。 これを応用して、 "AB"[論理式] のように書くと、 論理式が成立する時はBが、成立しない時はA を取り出…

EDKANJIPNL Ver0.06

EDKANJIPNLをVer0.06にバージョンアップ。 公開キー: 73E3ED3Y詳細はhttp://d.hatena.ne.jp/eidaht/20160225/1456356091参照。

EDKANJIPNL Ver0.05

EDKANJIPNLをVer0.05にバージョンアップ。 公開キー: E283533E詳細はhttp://d.hatena.ne.jp/eidaht/20160225/1456356091参照。

漢字入力パネルEDKANJIPNL

漢字入力パネル。 (2016/10/29)変換結果をF1キーとクリップボードの両方に出力するようにした。また、LorR+Aキーで即終了かつクリップボード出力だけにした。 (2016/03/16)操作ガイドを付けました。辞書内に簡易ヘルプ(「へるぷ」を変換)を追加。他のプログ…

EDSMILE補足

現状のEDSMILEは設定ファイルをエディタで書き換えないといけなくて、まだ使いやすいとは言えないけど、将来的にはGUI上で設定を変更できるようにする予定。 でもまだ、ファイル操作関連とか先にできてほしいことが多くあるので、GUIで設定できるようにする…

スマイルボタンに登録して使う便利ツールEDSMILE Ver1.50

■Ver1.50にアップデート!(2016/10/30)スマイルボタンに登録して使う便利ツール。 るるるきゅーさんのツールに比べると画面がすごい地味(^^;)だけど一応公開。スクショはVer1.40です。ファイル名: EDSMILE公開キー: 7S3EW3H4 ED3EN23E BE84VK4E 5K333KKE QRX…

calc84maniacさんのRaycastingライブラリ(その2:使い方)

前回に引き続き、calc84maniacさんのRaycastingライブラリの使い方を書いてみる。今回は実際の使い方。 Spooky Mazeから、視点移動に関する部分を抜粋したソースを作った。 なお、今回は簡単のため衝突判定を省いたので、壁の中にめり込むとエラーが発生して…

calc84maniacさんのRaycastingライブラリ(その1:ライブラリ紹介)

calc84maniacさんが公開している「Spooky Maze」、DOOMのような画面を実現している。 最近ではバグタローさんの「GIVERS-P3D」にも驚いたが、この「Spooky Maze」もすごい。 (後々はP3Dライブラリの解説もしてみたいです。バグタローさんご本人が解説されな…

文字列関係操作ライブラリ

だいぶ前に文字列関係操作ライブラリを作ってたんだけど、ツイートだけではてなの方には記事として上げてなかったので上げておきます。えいだ on Twitter: "よく使いそうなものを実装した文字列操作ライブラリSTRLIBです。 とりあえず使い方はコメントをご覧…

Petit-Z80ちょっとだけ進捗

Petit-Z80がちょっとだけ進捗。■ツール類を作ってみたデバッグ作業を楽にするため、いくつかツール類を作りはじめた。メモリの中を確認するZ80_Mem_Viewを作った。 まだ基本的な機能しかないが、これでメモリの確認が少しだけ楽に。また、テキストファイルか…

3号プログラミング覚え書き(5) 画面編

・解像度:上画面は400x240ドット、下画面は320x240ドット・コンソール:上画面50x30文字、下画面40x30文字・画面モードの切り替えはXSCREENで行う XSCREEN 4を指定した時は、上下がつながって320x480(上240、下240)ドットになる(上画面の左右40ドットずつは…

加速度センサーを使ったサンプル

昨日調べた加速度センサーの動作にもとづいて、本体を傾けるとボールが移動するサンプルを作ってみた。ファイル名: ACCELBALL公開キー: BK7NV3AJ公開日: 2015/09/22バージョン: 1.00動画 https://vine.co/v/ePnXD9gEF2X なお、本体の傾きはGYROAでよさそうな…

3号プログラミング覚え書き(4) センサー編

・ジャイロセンサーで本体の向きを取ろうとしても実際の向きとは合わないことがあるGYROA命令で本体の向きを取ることができるが、しばらくすると実際の向きと合わなくなる。 おそらくGYROVでとれる回転角速度の累積値を、GYROAの傾き角度にしていると思われ…

Pebble Time 覚え書き5 加速度センサーをエミュレータで動かす

エミュレータで加速度センサーとかどうすんのかな?と思ってたら、ものすごく簡単にできました。 ものすごすぎて色々興奮w1.エミュレータを起動 まずはエミュレータを起動します。 エミュレータの歯車ボタンをタップしてSETTINGSを開いたら、「SENSORS」を…

Pebble Time 覚え書き4 実機で動かす

せっかくウォッチフェイスを自分で作ってみたので、実機で動かしてみる。まずPebble Timeと連動しているスマホの設定。(画面はAndroid) 右上のメニューから「Settings」を選びます。 項目の中から「Developer Connection」をタップします。 次にConnectedを…

Pebble Time 覚え書き3 ウォッチフェイスの改良(ちょっとだけ)

ひとつ前のエントリ(http://d.hatena.ne.jp/eidaht/20150920/1442732674)で、ウォッチフェイスを作ってみるチュートリアルを終えた。こっから少しずつ勝手に改良してみる。時分だけじゃなくて秒も表示してみる。 まずソースを眺めると、TickTimerServiceへの…

Pebble Time 覚え書き2 最初のウォッチフェイス

C SDKでウォッチフェイスを作ってみる。 http://developer.getpebble.com/tutorials/watchface-tutorial/part1 1.CloudPebbleからログイン https://cloudpebble.net/ide/ からCloudPebbleにログインする。2.Projectの作成 PROJECTSから「CREATE」。 「CR…

Pebble Time 覚え書き1

・ソースのサンプルや、コンパイラオプションに出てくる、「APLITE」「BASALT」ってなんのこと?何のことわりもなしに、「APLITE」「BASALT」って出てくる。 これは何?と思ったら、 http://dvorak55.hatenadiary.jp/entry/2015/07/20/160801 こちらに書かれ…

プチZ80Continueを製作中

mkIIで途中まで作っていたプチZ80。 仮想マシンとコードが一体化していたせいで、直していたらうまく動かなくなってしまって途中で放置状態になってました。。。今はプチコン3号がメインになったので、心機一転、3号でプチZ80を作りなおすことに。 今までの…

3号プログラミング スニペット(2) テストコード用スニペット

・テストコード用スニペット VAR CASE=0,OK=0 ?"TEST" ' TEST EXPRESSTION MUST BE ?TEST$(テスト式 ==想定値) ... ?"OK=";OK;"/";CASE END DEF TEST$(EXP) INC CASE ?"CASE"+FORMAT$("%2D",CASE)+":"; IF EXP==0 THEN RETURN "NG" INC OK RETURN "OK" END