|
|
|
2025/10/25(Sat) 09:24:12|NO.104124
MacBook Air M4とiPhone12 miniを購入しまして、iPhone用のアプリを開発したいと思っているのですが、xcodeのエミュレーター上で画像ファイルが認識されません。
xcode上のAdd FIles to "hsppoj" からPNGファイルをResourceフォルダに追加しているのですが、ビルドすると"Error 13 -->内部エラーが発生しました(13)" が表示されてしまいます。
PNGファイルは24bitで、PNGファイルを使用しなければ正常にビルドされ動作します。
HSP3DishのiPhoneについて解説しているWebサイトが皆無なため開発が進みません。
わかる方ご指導のほどよろしくお願いいたします。
#include "hsp3dish.as"
celload "test.png", 1
repeat
redraw 0
color 255, 255, 255 : boxf
color 0, 0, 255 : boxf 0, 0, 300, 300
pos 0, 0 : celput 1
redraw 1
await 16
loop
|
|
|
2025/10/25(Sat) 09:32:39|NO.104125
xcodeは 26.0.1 です。
|
|
|
2025/10/25(Sat) 10:05:20|NO.104126
それから、Dish Helperの「Dihs3/Cソース変換」で入力した、
・プロジェクト名
・Organization
・Identifier
を自分の好きなものに入力しても、
xcode上で確認すると、General > Bundle Identifierが「onionsoftware.hsptv.hspproj」になったままになっています。
|
|
|
2025/10/25(Sat) 10:19:34|NO.104128
すいません。すこし言葉足らずでした。
ビルド自体は成功しているのですが、xcode上で"Error 13 -->内部エラーが発生しました(13)" が表示されています。
内部エラー13は画像ファイルが無いということは分かっています。
|
|
|
2025/10/25(Sat) 13:18:46|NO.104132
> zrs90(5さい)さん
返信ありがとうございます。
8ビットPNGでも駄目でした。
iOSのPNGファイルについてプログラミングを見直してみたのですが、まちがってないですよね?
「HSP3Dish iOS版プログラミングガイド」より
> 21.iOS版の注意事項、制限
>
> •画像フォーマットについて
>
> celload、picload命令などで読み込まれる画像は、以下のフォーマットが使用できます。iOSでは、PNG形式が推奨されます。
> ◦JPEG baseline (プログレッシブJPEGは非サポート)
> ◦PNG (8bit、24bit、24bit+アルファチャンネル形式に対応)
> ◦TGA (サブセット)
> ◦BMP (白黒、RLE圧縮は非サポート)
> ◦PSD (RGB24bitのみ読み出し)
> ◦GIF
> ◦HDR (radiance rgbE format)
> ◦PIC (Softimage PIC)
ところで「24bit+アルファチャンネル形式に対応」って32ビットPNGファイルの認識であってますよね?
|
|
|
2025/10/26(Sun) 07:55:56|NO.104140
基本的な情報が抜けてました。
開発に使用しているHSPは3.7リリース版です。
また過去バージョンのHSP3Dish iOS版プログラミングガイドを見ていて気付いたのですが、過去バージョンでは、HSP3.6フォルダの「iOS」フォルダ内にフォルダが5つあるのに対し、
HSP3.6
> 3.iOSフォルダについて
> iOSフォルダには、HSP3Dishランタイム及びxcode用の基本プロジェクトが含まれています。
>
> ・iHSP30フォルダ - HSP3Dishランタイム本体
> ・gameplayフォルダ - HGIMG4用ランタイム
> ・extlibフォルダ - HGIMG4用ライブラリ
> ・hspprojフォルダ - HSP3Dish基本プロジェクト
> ・hspproj_gpフォルダ - HGIMG4基本プロジェクト
現在のHSP3.7リリース版ではiOSフォルダは2つしかありません。
HSP3.7
> 3.iOSフォルダについて
>
> iOSフォルダには、HSP3Dishランタイム及びxcode用の基本プロジェクトが含まれています。
> •hspprojフォルダ - HSP3Dish基本プロジェクト
> •hspproj_gpフォルダ - HGIMG4基本プロジェクト
>
> iOS向けのプロジェクトは、基本的にHSP3Dish Helperを使用して作成してください。 ランタイムやライブラリは、必要に応じてコピーする必要があります。
と記述されています。
この
> ランタイムやライブラリは、必要に応じてコピーする必要があります。
というのが分かりません。
どこから、どのフォルダやファイルをコピーするのかが全く不明です。
HSP3.7フォルダ内の「iOS」フォルダには「hspproj」と「hspproj_gp」の2つしかありません。
3.6の内容を包括していると思っていいのでしょうか?
それともそもそもxcodeのエミュレーターには対応していないのでしょうか?
|
|
|
2025/10/27(Mon) 19:45:33|NO.104155
なぜか今日になって Apple Developer Program に登録できてしまい、Webを参考にしながらiPhone実機で簡単な(boxfだけを表示する)ソースをテストできるようになりました。
ですが、やはり画像を読み込むと実機でも内部エラー13になってしまいます。
#include "hsp3dish.as"
//celload "test.png", 1
repeat
redraw 0
color 255, 255, 255 : boxf
color 0, 0, 255 : boxf 200, 200, 300, 300
//pos 0, 0 : celput 1
redraw 1
await 16
loop
|
|
|
2025/10/27(Mon) 20:12:33|NO.104159
dirinfo関数でカレントディレクトリを調べようとしましたが、駄目でした。
ログには、下記が表示されていました。
\"ファイル"com.apple.CoreMotion.plist"を表示するためのアクセス権がないため、開けませんでした。\"
おにたまさんに現象をメールしてありますので、おにたまさんからの返信を待ちたいと思います。
無駄にレスしてもうしわけありません。
#include "hsp3dish.as"
a = dirinfo(0)
dialog a
//celload "test.png", 1
repeat
redraw 0
color 255, 255, 255 : boxf
color 0, 0, 255 : boxf 200, 200, 300, 300
//pos 0, 0 : celput 1
redraw 1
await 16
loop
|
|
|
2025/10/29(Wed) 18:19:16|NO.104176
そのほかにも bload, noteload も駄目でした。
リソースファイルにアクセスするものは全て駄目なようです。
|
|
|
2025/10/29(Wed) 19:17:35|NO.104177
> 画像やサウンドなど追加のデータファイルがある場合は、「Resource」フォルダにコピーして、「File」メニューの「Add Files to "hspproj"...」を選択し、プロジェクトにリソースファイルを登録する必要があります。
このあたりの作業はされてますか?
#Xcodeで試してないので間違ってたら申し訳ないんですが、xcodeprojにtest.pngの記述が無いみたいで。
対応画像の詳細仕様はstb使ってるのでこの辺ですね。
PNGだと1チャンネルあたり1/2/4/8/16ビットに対応してて、読み込み時にstbに8ビット*4チャンネルに変換してもらう。
https://github.com/nothings/stb/blob/master/stb_image.h#L19
|
|
|
2025/10/29(Wed) 20:11:36|NO.104178
> このあたりの作業はされてますか?
> #Xcodeで試してないので間違ってたら申し訳ないんですが、xcodeprojにtest.pngの記述が無いみたいで。
「Resources」フォルダを選択して、File—>Add Files To “hspproj”… —>test.png を選択「Add」ボタンで追加。
で、いいですかね?xcode自体初めてなので、なんだかよく分からなくなってきます。
一応、celload と celput を外せば正常に動作します。
> 対応画像の詳細仕様はstb使ってるのでこの辺ですね。
> PNGだと1チャンネルあたり1/2/4/8/16ビットに対応してて、読み込み時にstbに8ビット*4チャンネルに変換してもらう。
> https://github.com/nothings/stb/blob/master/stb_image.h#L19
すいません。よく分からないのですが、Windows側の標準ペイントや24ビット指定で作ったpngファイルでは駄目なのでしょうか?
|
|
|
2025/10/29(Wed) 21:31:26|NO.104179
「show the issue navigator」の黄色をビックリマークが178個表示されています。
これは関係ありますでしょうか?
|
|
|
2025/10/29(Wed) 21:41:06|NO.104180
|
|
|
2025/10/30(Thu) 07:41:52|NO.104183
Xcodeを完全アンインストールして、再度xcodeをインストールし直しました。
iPhone 12 mini をMacに接続したところ、「show the issue navigator」の黄色をビックリマークが2つにまで減りました。
> /Users/tsutomukomatsu/Desktop/testprogram/hspproj.xcodeproj The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 10.0, but the range of supported deployment target versions is 12.0 to 26.0.99.
> Traditional headermap style is no longer supported; please migrate to using separate headermaps and set 'ALWAYS_SEARCH_USER_PATHS' to NO.
|
|
|
2025/11/1(Sat) 16:58:24|NO.104199
> zakkiさん
ありがとうございます。
GitHubよく分からないのですが、ダウンロードしたzipを展開すると
_hsp37_ios_file.patch
filepack.cpp
hsp3utfcnv.cpp
の3つが展開されましたが、このファイルをどこのフォルダに配置すればよいでしょうか?
HSP3Dishで作られたプロジェクトフォルダでしょうか?
それともHSP3側のどこかのフォルダでしょうか?
初心者過ぎて申し訳ありません。
|
|
|
2025/11/1(Sat) 17:59:08|NO.104201
_hsp37_ios_file.patch は変更差分で何のことか分からなければ無視してください。
filepack.cpp と hsp3utfcnv.cpp は、生成されたプロジェクトの hspproj/hsp3 にある同名のファイルを上書きしてください。
hsp37/iOS/hspproj/hspproj/hsp3 を差し替えて hsp3dh を再実行でも行けるかもしれませんが
問題ないこと確認してからのほうがいいしやめといたほうが安全だと思います。
ランタイム側の修正なので、良くわからなければ公式の修正待つか、
誰かiOSに詳しい人の見解待つのも良いかと思います。
私もiPhoneやmacをユーザーとしてやAI実行用プラットフォームとしては使ってますが、
iOSやmacOSプログラミングはあんまりよくわかってません。
|
|
|
2025/11/1(Sat) 18:59:08|NO.104202
> zakkiさん
> _hsp37_ios_file.patch は変更差分で何のことか分からなければ無視してください。
> filepack.cpp と hsp3utfcnv.cpp は、生成されたプロジェクトの hspproj/hsp3 にある同名のファイルを上書きしてください。
ありがとうございます。試してみたいと思います。
|
|
|
2025/11/1(Sat) 20:09:46|NO.104203
以下は3つのプロジェクトは、シミュレータ、iPhone実機両方でテストしました。
まず1つ目は、赤色の●の画像を読み込んで表示するだけのプログラムです。
読み込みは成功。しかし、表示すると青色に表示されてしまう。
画像を黄色の●の画像に変更。
読み込みは成功。しかし、表示すると水色に表示されてしまう。
#include "hsp3dish.as"
celload "test.png", 1
repeat
redraw 0
color 255, 255, 255 : boxf
color 0, 0, 255 : boxf 200, 200, 300, 300
pos 0, 0 : celput 1
redraw 1
await 16
loop
2つ目は、bloadでテキストファイル "0123456789" を読み込んで、ダイアログに読み込んだ内容を表示させるプログラム。
読み込みは成功。ダイアログに "0123456789" と表示もOK。
#include "hsp3dish.as"
buff = ""
bload "test.txt", buff
redraw 0
dialog buff
redraw 1
stop
3つ目は、mmloadでmp3を読み込んで再生させるプログラム。
読み込みは・・・?不明。ログには内部エラーは無し。しかし、再生はされず。
#include "hsp3dish.as"
mmload "test.mp3", 0, 1
mmplay 0
repeat
redraw 0
await 16
redraw 1
loop
3つのプロジェクトのzipファイルです。
https://1drv.ms/u/c/f0e0d12f289cef03/ETSo-4o-GwVAlRTwxwJ_vxIBnEUCYMZPS-4dZYfsot400g?e=j31T68
以上がテスト結果です。
|
|
|
2025/11/1(Sat) 20:26:46|NO.104204
1つ目画像を青色の●の画像に変えて表示するだけのプログラムも試してみました。
読み込みは成功。しかし、表示すると赤色に表示されてしまう。
RGBの値がおかしいようです。
画像はアルファなしの24ビットpngファイルです。
#include "hsp3dish.as"
celload "test.png", 1
repeat
redraw 0
color 255, 255, 255 : boxf
color 0, 0, 255 : boxf 200, 200, 300, 300
pos 0, 0 : celput 1
redraw 1
await 16
loop
|
|
|
2025/11/1(Sat) 20:43:27|NO.104205
試しに picload で黄色の●画像を読み込んで表示させるプログラムを試してみました。
読み込みはOK。しかし表示された●は水色に表示されてしまう。
#include "hsp3dish.as"
buffer 1, 100, 100
gsel 1
picload "test.png", 0
gsel 0
gmode 0
repeat
redraw 0
color 255, 255, 255 : boxf
color 0, 0, 255 : boxf 200, 200, 300, 300
pos 0, 0 : gcopy 1, 0, 0, 100, 100
redraw 1
await 16
loop
とりあえず以上です。
|
|
|
2025/11/1(Sat) 22:40:12|NO.104208
> zakkiさん
> test.pngのIdentityu and TypeでTypeを
> Default PNG ImageからDataに変えたら赤くなりました。。
お恥ずかしいのですが、Identityu and Typeが見つかりませんでした。
xcodeのどの場所にあるのでしょうか?
|
|
|
2025/11/1(Sat) 22:50:56|NO.104209
左のプロジェクトナビゲーターのツリー表示でtest.pngを選択して、
右側に出るインスペクターの設定項目一覧みたいなのの一番上です。
|
|
|
2025/11/1(Sat) 23:00:06|NO.104210
ああ、できました。
ありがとうございます。
|
|
|
2025/11/2(Sun) 00:44:10|NO.104212
>しまくろねこ さん
>zakki さん
xcodeのiOS向けビルドの検証と修正ありがとうございます。
xcode 26のインストールに手間取っているのですが、こちらでも確認してみたいと思います。
|
|
|
2025/11/2(Sun) 01:05:09|NO.104213
解決までもう少し待ってください。
|
|
|
2025/11/5(Wed) 15:22:19|NO.104223
iOSにおけるDPMファイルは暗号化なしのファイルのみでして、暗号化なしのDPMファイルを作成し、
「Resources」フォルダを選択して、File—>Add Files To “hspproj”… —>data.dpm を選択「Add」ボタンで追加。
内部のファイルを読もうとすると、Xcodeのログに「内部エラー13」が発生します。
zakkiさんが修正してくださった NO.104198 ももちろんコピー済みです。
Windows上では問題ありません。
|
|
|
2025/11/5(Wed) 16:34:53|NO.104224
それから、これはHSPDish側が原因なのかiOS側が原因なのか不明なのですが、iPhone実機で一度アプリを起動するとFPS値が60になるのですが、下から上にスワイプしてアプリを中断し再度アプリを起動すると、FPS値が半分の30になってしまいます。
アプリを完全終了(下から画面中央までスワイプして、更にアプリを上へスワイプ)してから再度アプリを起動するとFPS値は60に戻ります。
シミュレータではどうも起こらない模様です(昨日はシミュレータでもFPS値が30になったのですが・・・)
現象の起こるプロジェクトです。
画面一番下にFPS値が表示されます。
https://1drv.ms/u/c/f0e0d12f289cef03/EQjNIeZPDaFPsx5ekuZts6YBOp7XsfW8q2GS993jhqooYg?e=6aPA59
申し訳ないのですが、リソースフォルダに、
・picmes_0.png
・picmes_ios_0.ini
を追加してください。
|
|
|
2025/11/5(Wed) 21:29:21|NO.104225
GoogleのAIによる概要は以下の通りでした。
iPhoneアプリが中断(バックグラウンド移行)および再開(フォアグラウンド復帰)する際のFPS(フレームレート)の挙動は、iOSのアプリライフサイクルと密接に関係しています。
主なポイントは以下の通りです。
・中断中(バックグラウンド/サスペンド):
・アプリがバックグラウンドに移行すると、通常は実行が一時停止(サスペンド)されます。
・この状態では描画処理は行われず、FPSは実質的にゼロとなります。システムリソースを解放し、バッテリー消費を抑えるためのiOSの標準的な動作です。
・再開時(フォアグラウンド復帰):
・アプリが再開されフォアグラウンドに戻ると、実行が再開され、描画処理も再開されます。
・この際、アプリは通常のFPS(例えば60fpsや、ProMotionディスプレイ搭載機なら最大120fpsなど)に戻ります。
・ただし、再開直後に一時的なパフォーマンスの低下や描画の遅延が発生する可能性はあります。これは、サスペンド状態から復帰する際の初期化処理や、VRAMなどのグラフィックリソースの再読み込み・再割り当てが必要になる場合があるためです。アプリの設計やメモリ使用状況に依存します。
結論として、アプリが中断されている間はFPSは発生せず、再開時に通常のFPSに戻りますが、復帰直後に一時的なパフォーマンスの変動が起こり得ます。
|
|
|
2025/11/7(Fri) 20:36:52|NO.104231
zakkiさんが修正した NO.104198 でファイルの読み込みをしているのですが、リソースフォルダにフォルダを配置してその中のファイルにアクセスしようとすると、内部エラー12が発生します。
|
|
|
2025/11/9(Sun) 23:50:57|NO.104248
申し訳ないです。
macOSとXcodeとiOSが26.0.1から26.1にバージョンアップしてしまいました。
おにたまさんにはお手数おかけします。
|
|
|
2025/11/10(Mon) 16:51:01|NO.104252
bsave命令もシミュレータ、実機ともに
#Error 12
-->内部エラーが発生しました(12)
が出てしまいます。
|
|