プチコン3号およびBIGで見つかった、既知の不具合の一覧です。
ソフトの性質上、またユーザーがよく訓練された人たちということもあって、「配信直後のゲームソフト」として見ればすごい勢いでバグが見つかりましたが、最新バージョン 3.5.2 ではほぼ修正されています。
プチコン3号やBIGで不具合を発見したときは、このページのコメント欄にコメントするか、ページを直接編集してください。
Ver3.6.0 以降で発見された不具合情報が掲載されています。
目次
実行すると、SmileBASIC の強制終了やハングアップ、恒久的なメモリリークなど、重大な問題を引き起こす場合がある不具合をまとめています。掲載されているプログラムは危険である場合があるので、検証以外の目的で実行しないでください。実行する前に未保存のデータは保存しておいてください。
下記のプログラムを実行すると変な挙動が発生します。
- DIM inR[1024],inI[1024]
- DIM outR[1024],outI[1024]
- FFT outR,outI,inR,inI
- outR=SETARY(0) ’outRの配列操作
- IFFT outR,outI,inR,inI
- END
- DEF SETARY(F)
- DIM A%[F]
- RETURN A%
- END
SmileBASIC で RUN を実行したり START ボタンを押して実行したりすると、本来なら4行目でエラーが発生するはずですが、何故か発生しません。その後、DIRECTモードで、
- ?FREEMEM
というように、 FREEMEM を確認しようとすると、プログラム実行中の状態になり終了できなくなります。 VIEWERから実行すると、真っ黒な画面でハングアップします。例外でHOMEボタンは反応します。
詳しくは下記を参照
3.6.0で確認
- ’<<警告>>いずれか1行でも実行するとハングアップします
- DATE$[0]=”B”
- TIME$[99]=”B” ’添字が文字数以上でも発症します。
- INC DATE$,”B”
添字について:添字が0から2,147,483,647(整数型のうちマイナスではない範囲)なら発症する可能性があります。(要検証) DATE$の場合&HFFFFFFがひとつの目安の模様。&H7FFFFFFFとかだとエラーが出ます。
なお、INC命令の場合は、加える文字列が空文字列ではないときに発症します。 ほかの変数操作命令は安全です。
- ’このあたりは安全です
- ?SHIFT(DATE$)
- ?POP(DATE$)
- PUSH DATE$,”B”
- INC DATE$,””
上記の不具合には当てはまらないものの、意図した仕様とは思われない挙動をまとめています。
プチコンBIGで作成されたTXTファイルを、プチコン3号に保存してPRGファイルとして上書きすると、以下のプログラムでは正常に読み込むことができません。また、メニューからの読みこみ (SHIFT + LOADキー) も正常にできません。
- LOAD ”PRG3:ファイル名”,FALSE
TXTリソースとして読み込むはできるようです。
- LOAD ”TXT:ファイル名”,FALSE OUT CONTENT$
BGLOAD では、配列の後に正の数値を指定すると、配列の全要素に加算してからキャラ番号として描画します。しかし、プチコンBIGでは正しく動作しません。加算されるのではなく、絶対的にその数値に変化してしまうようです。(すなわち BGFILL )
Petitverse : http://petitverse.hosiken.jp/community/petitcom/topic/?read=208
Wii Uのインターネットブラウザーには、起動中のソフトのスクリーンショットをアップロードする機能があります。しかし、その機能を使いDIRECTモードでTVとGamePadそれぞれに異なる表示をするモードにした状態でプチコンBIGのTV画面のスクリーンショットを撮ると、おかしい画像がアップロードされてしまいます。
保存した際の画像の縦横比と、表示時の縦横比が合っていないような感じの画像がアップロードされます。
TV画面なので本来ならサイズは1280×720になるはずなのですが、854×480(FWVGA,GamePad画面のサイズ)になっています。
EXIF情報やファイル名は正常です。
派生して、全体が前回HOMEボタンを押したときのスクリーンショットで上半分がおかしい画像が撮れるようになることもあります。上半分は少しだけ透けて下半分の画像の続きが見えます。その状態になると、2画面に同じ表示をするモードでもおかしくなり、いつスクリーンショットを撮ろうとしてもその状態のスクリーンショットが撮れるようになります。
例えば、
- DEF TEST OUT
- END
のようなプログラムを実行した際、
- Out of code memory in 0:1
のように表示されます。内蔵ヘルプでは
12:Out of code memory (コード領域のメモリー不足)
とあります。このような場合は Syntax error の方がエラーの意味としては正しいと思われます。
「作品を見る」でプログラムを実行している際にエラーが発生すると、次に実行しようとしたプログラムが実行されず、すぐに戻ってしまう問題です。
追記 必ず実行されないわけではないようです。その条件は不明です。
再度実行すれば問題ありません。
INPUT および LINPUT で入力待ち状態にて START ボタンなどで中断したのちに CONT で再開する場合に、想定する動作をしないというものです。
具体的には、INPUT と LINPUT ともに入力の再開ができないのと、両命令の挙動に差異があるということです。
ことを留意しておく
これは、それぞれのモードで以下の命令を実行して、入力待ちの状態で中断したあと、CONT で再開した場合の挙動をまとめたものです。
実行した命令 | DIRECT で検証 | EDIT で検証 |
---|---|---|
INPUT A | Can't continue | エラーなし |
INPUT A$ | Can't continue | エラーなし |
LINPUT A$ | Can't continue | Uninitialized variable used |
- A=30
- INPUT A
- PRINT A
数値を入力した場合はその数値が表示されるが、中断して CONT した場合は 30 が表示される。
3.6.0でも確認
SORT による整数型配列のソート結果がおかしいという不具合。
たとえば、このようなプログラムで発生します。
- DIM ARY%[8]
- ARY%[0]=1<<31
- ARY%[1]=−128
- ARY%[2]=128
- ARY%[3]=NOT (1<<31)
- SORT ARY%
- FOR I=0 TO LEN(ARY%)−1
- ?ARY%[I]
- NEXT
また、FOR-NEXT などで括って複数回ソートさせると値によっては「順番が変わる」ことがあります。
なし
A=100:PRINT A とすると、100.00000000と表示される
FORMAT$() などの文字列関数を使用して表示する
プチコンBIGから仕様を引っ張ってきたために起きてしまった不具合のようです。
コンパイル時に強制終了なので、例えすぐに実行されなくても瞬時に強制終了します。
- WAIT 120
- OPTION
次の内容はこちらでお願いします。
SmileBASIC の不具合またはこのページそのものに関係のないコメントはこの場所ではせず、掲示板でお願いします。 荒らしはしないでください。
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.036 秒 | このページの最終更新 : 2018/04/09 (月) 14:18:37 (11d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30