BGMCHK()は、 TRUEかFALSEを返す関数なので 書くとしたら BGMCHK()==TRUE となると思いますけど もともとWHILEは、続く値がTRUEなら ループの中を実行するという命令なので ==TRUEは、不要ですね。 VSYNCについては、あやふやですけど 待ちを入れないと電力消費が大きいのでは? といったことが書かれているのを 以前、見たことがあるので とりあえず、入れています。