1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

7.GBDKの関数一覧

Last updated at Posted at 2023-06-26

7.GBDKの関数一覧

chatGPTを使用して調べたGBDKの関数をチートシート用にまとめていきます。
全243種
 ※未検証の為使用できないものも含まれている可能性がありますのでご了承ください。

・目次
グラフィックス関連
タイルマップ関連
ビットマップ関連
パレット関連
ゲームボーイカラーパレット関連
サウンド関連
ディスプレイ制御関連
入力関連
タイマー関連
メモリ関連
テキスト表示関連
文字列操作関連
判定関連
ファイル操作関連
ランダム関連
計算関連
バンク関連





1.関数一覧

グラフィックス関連:
set_bkg_data(const unsigned char *data, unsigned int length, unsigned int bank) 背景タイルデータを設定します。dataは背景データへのポインタであり、lengthはデータのバイト数です。bankはVRAMバンクを指定します。
set_sprite_data(unsigned int first_tile, unsigned int nb_tiles, const unsigned char *data) スプライトのタイルデータを設定します。first_tileは最初のタイルの番号、nb_tilesは設定するタイルの数、dataはタイルデータへのポインタです。
set_win_data(unsigned int first_tile, unsigned int nb_tiles, const unsigned char *data) ウィンドウ内のタイルデータを設定します。

move_sprite(unsigned int sprite_number, unsigned int x, unsigned int y) スプライトを指定した位置に移動します。sprite_numberはスプライトの番号、xとyは移動先の座標です。
scroll_win(int x, int y) ウィンドウを指定したピクセル数だけスクロールさせます。
cls() 画面をクリアし、背景を塗りつぶします。

タイルマップ関連:
set_sprite_tile(unsigned int sprite_number, unsigned int tile_number) スプライト番号に対応するスプライトタイルを設定します。sprite_numberはスプライトの番号であり、tile_numberは設定するタイルの番号です。
set_win_tiles(unsigned int x, unsigned int y, unsigned int w, unsigned int h, const unsigned char *tiles) ウィンドウ内のタイルを指定した位置に設定します。
set_bkg_tiles(unsigned int x, unsigned int y, unsigned int w, unsigned int h, const unsigned char *tiles) 背景タイルのタイルデータを指定した位置に設定します。xとyは設定を開始する座標を示し、wとhはタイルの幅と高さです。tilesはタイルデータへのポインタです。
scroll_bkg(int x, int y) 背景を指定したピクセル数だけスクロールさせます。

ビットマップ関連:
set_bkg_1bit_data(unsigned int first_tile, unsigned int nb_tiles, const unsigned char *data) 背景の1ビットデータ(モノクロ)を設定します。
set_sprite_1bit_data(unsigned int first_tile, unsigned int nb_tiles, const unsigned char *data) スプライトの1ビットデータ(モノクロ)を設定します。

パレット関連:
BGP_REG バックグラウンドパレットデータレジスタへのアクセスです。
OBP0_REG スプライトパレット0データレジスタへのアクセスです。
OBP1_REG スプライトパレット1データレジスタへのアクセスです。

ゲームボーイカラーパレット関連:
set_bkg_palette(unsigned char first_palette, unsigned char count, unsigned char *palette_data) 背景パレットを設定します。
set_sprite_palette(unsigned char first_palette, unsigned char count, unsigned char *palette_data) スプライトパレットを設定します。

サウンド関連:
NR10_REG チャンネル1のスウィープ設定レジスタへのアクセスです。
NR11_REG チャンネル1の長さ・波形データ設定レジスタへのアクセスです。
NR12_REG チャンネル1のボリューム・エンベロープ設定レジスタへのアクセスです。
NR13_REG チャンネル1の周波数ローバイト設定レジスタへのアクセスです。
NR14_REG チャンネル1の周波数ハイバイト設定レジスタへのアクセスです。
NR21_REG チャンネル2の長さ・波形データ設定レジスタへのアクセスです。

ディスプレイ制御関連:
SHOW_BKG 背景を表示します。
HIDE_BKG 背景を非表示にします。
SHOW_SPRITES スプライトを表示します。
HIDE_SPRITES スプライトを非表示にします。
HIDE_WIN ウィンドウを非表示にします。
SHOW_WIN ウィンドウを表示します。

入力関連:
joypad() ゲームボーイのボタン入力状態を取得します。
joypad_init(unsigned char buttons) 使用するボタンの初期化を行います。
joypad_ex(unsigned char *keys, unsigned char *down, unsigned char *changed) 拡張されたボタンの状態を取得します。
waitpad(unsigned char mask) 指定されたボタンが押されるまで待機します。
joypad_up(unsigned char keys) 上ボタンが押されているかどうかを判定します。
joypad_down(unsigned char keys) 下ボタンが押されているかどうかを判定します。

タイマー関連:
delay(unsigned int frames) 指定したフレーム数の間、処理を一時停止します。
wait_vbl_done() 垂直ブランク期間の終わりまで待機します。
delay_frames(unsigned char frames) 指定したフレーム数の間、処理を一時停止します。

メモリ関連:
VBK_REG VRAMバンクレジスタへのアクセスです。VRAMのバンクを切り替えるために使用します。
memcpy(void *dest, const void *src, unsigned int size) メモリ領域のコピーを行います。
memset(void *dest, int value, unsigned int size) メモリ領域を指定した値で埋めます。
memcmp(const void *ptr1, const void *ptr2, unsigned int num) 2つのメモリブロックを比較します。
memmove(void *dest, const void *src, unsigned int num) オーバーラップするメモリ領域を考慮してメモリブロックをコピーします。

malloc(unsigned int size) ヒープメモリから指定されたバイト数の領域を割り当てます。
free(void *ptr) 割り当てられたメモリ領域を解放します。
SWITCH_RAM_MBC1(unsigned char bank) MBC1カートリッジのRAMバンクを切り替えます。
memcpy_bkg(unsigned int dest_addr, const void *src_addr, unsigned int size) 背景のメモリ領域にデータをコピーします。
WRAM_ENABLE ワーキングRAMの有効化を行います。
WRAM_DISABLE ワーキングRAMの無効化を行います。
calloc(unsigned int num, unsigned int size) ヒープメモリから指定された要素数とサイズで領域を割り当てます。領域はゼロで初期化されます。
realloc(void *ptr, unsigned int new_size) 既存のメモリ領域のサイズを変更します。

memcpy_bkgd(void *dest, const void *src, size_t n) メモリブロックを背景メモリ領域にコピーします。
memmove_bkgd(void *dest, const void *src, size_t n) オーバーラップするメモリ領域を考慮して背景メモリ領域にメモリブロックをコピーします。
memmove_bank1(void *dest, const void *src, size_t n) オーバーラップするメモリ領域を考慮してバンク1にメモリブロックをコピーします。
bmove(void *dest, const void *src, size_t n) メモリブロックをブロック転送します。
bset(void *dest, int value, size_t num) メモリブロックを指定した値で埋めます。
bcmp(const void *ptr1, const void *ptr2, size_t num) 2つのメモリブロックを比較します。
bzero(void *ptr, size_t num) メモリブロックをゼロで埋めます。
memcpy(void *dest, const void *src, size_t num) メモリ領域の内容をコピーします。
malloc(size_t size) 動的にメモリを割り当てます。

memset(void *ptr, int value, size_t num) メモリブロックを指定した値で埋めます。
memchr(const void *ptr, int value, size_t num) メモリブロック内で指定した値を検索します。
memcmp(const void *ptr1, const void *ptr2, size_t num) 2つのメモリブロックを比較します。
memmove(void *dest, const void *src, size_t num) オーバーラップするメモリ領域を考慮してメモリブロックをコピーします。

calloc(size_t num, size_t size) サイズを指定してメモリ

テキスト表示関連:
puts(const unsigned char *str) 文字列を画面に表示します。
printf(const unsigned char *format, ...) フォーマット指定子を使用してフォーマットされた文字列を表示します。
sprintf(char *str, const char *format, ...) フォーマット指定子を使用してデータを文字列に書き込みます。
printf(const char *format, ...) フォーマット指定子を使用してデータを表示します。
strerror(int errnum) エラーコードに対応するエラーメッセージを取得します。

getchar() 標準入力から1文字読み込みます。
putchar(int c) 1文字を標準出力に出力します。

文字列操作関連:
toupper(int character) 文字を大文字に変換します。
tolower(int character) 文字を小文字に変換します。
strncmp(const char *str1, const char *str2, unsigned int num) 2つの文字列を指定された文字数で比較します。
strcpy(char *dest, const char *src) 文字列をコピーします。
strncpy(char *dest, const char *src, unsigned int num) 文字列を指定された文字数までコピーします。
strstr(const char *str1, const char *str2) 文字列内で指定された部分文字列を検索します。
strchr(const char *str, int character) 文字列内で指定された文字を検索します。
strrchr(const char *str, int character) 文字列内で指定された文字を後方から検索します。
strcmp(const char *str1, const char *str2) 2つの文字列を比較します。
strcat(char *dest, const char *src) 文字列を連結します。
strlen(const char *str) 文字列の長さを取得します。
strtoul(const char *str, char **endptr, int base) 文字列を符号なし長整数に変換します。
atoi(const char *str) 文字列を整数に変換します。
atof(const char *str) 文字列を倍精度浮動小数点数に変換します。
itoa(int value, char *str, int base) 整数を文字列に変換します。
strncmpi(const char *str1, const char *str2, size_t n) 大文字小文字を無視して2つの文字列を比較します。
strspn(const char *str1, const char *str2) 文字列内で指定した文字集合に連続して含まれる文字数を返します。
strlwr(char *str) 文字列をすべて小文字に変換します。
strupr(char *str) 文字列をすべて大文字に変換します。
strrev(char *str) 文字列を逆順に並び替えます。
strcmpi(const char *str1, const char *str2) 大文字小文字を無視して2つの文字列を比較します。

strcoll(const char *str1, const char *str2) 文字列を辞書順で比較します。
strpbrk(const char *str1, const char *str2) 文字列内で指定した文字集合のいずれかに一致する最初の文字を検索します。
strcspn(const char *str1, const char *str2) 文字列内で指定した文字集合に含まれない最初の文字の位置を検索します。
strtok(char *str, const char *delimiters) 文字列を指定した区切り文字で分割します。

strncpy(char *dest, const char *src, size_t n) 文字列を指定した長さまでコピーします。
strncat(char *dest, const char *src, size_t n) 文字列を指定した長さまで連結します。

strncmp(const char *str1, const char *str2, size_t n) 2つの文字列を指定した長さまで比較します。

strstr(const char *haystack, const char *needle) 文字列haystack内でneedleを検索し、最初に見つかった位置を返します。
strchr(const char *str, int c) 文字列str内で最初に文字cを見つけた位置を返します。
strrchr(const char *str, int c) 文字列str内で最後に文字cを見つけた位置を返します。

判定関連:
isalnum(int character) 文字がアルファベットまたは数字の文字かどうかを判定します。
isalpha(int character) 文字がアルファベットの文字かどうかを判定します。
iscntrl(int character) 文字が制御文字かどうかを判定します。
isdigit(int character) 文字が数字の文字かどうかを判定します。

islower(int character) 文字が小文字かどうかを判定します。
isprint(int character) 文字が表示可能な文字かどうかを判定します。
isspace(int character) 文字が空白文字かどうかを判定します。
isupper(int character) 文字が大文字かどうかを判定します。
isdigit(int c) 文字が数字かどうかを判定します。
isalpha(int c) 文字がアルファベットかどうかを判定します。
isalnum(int c) 文字がアルファベットまたは数字かどうかを判定します。

isgraph(int character) 文字が印字可能かどうかを判定します。
ispunct(int character) 文字が句読点かどうかを判定します。
isxdigit(int character) 文字が16進数の文字かどうかを判定します。
isblank(int character) 文字が空白またはタブ文字かどうかを判定します。
isascii(int character) 文字がASCII文字かどうかを判定します。

islower(int c) 文字が小文字であるかどうかを判定します。
isupper(int c) 文字が大文字であるかどうかを判定します。

ファイル操作関連:
fopen(const char *filename, const char *mode) ファイルを開きます。
fclose(FILE *stream) ファイルを閉じます。
fputc(int character, FILE *stream) 文字をファイルに書き込みます。
fgetc(FILE *stream) ファイルから1文字読み込みます。
fgets(char *str, int num, FILE *stream) ファイルから指定された文字数までの文字列を読み込みます。
fprintf(FILE *stream, const char *format, ...) フォーマット指定子を使用してフォーマットされたデータをファイルに書き込みます。
feof(FILE *stream) ファイルの終端に達したかどうかを判定します。
remove(const char *filename) ファイルを削除します。
fseek(FILE *stream, long offset, int origin) ファイル内での位置を変更します。
ftell(FILE *stream) ファイル内の現在の位置を取得します。
getc(FILE *stream) ファイルから1文字読み込みます。
putc(int character, FILE *stream) 1文字をファイルに書き込みます。
rename(const char *oldname, const char *newname) ファイルの名前を変更します。
sprintf(char *str, const char *format, ...) フォーマット指定子を使用してデータを文字列に書き込みます。
sscanf(const char *str, const char *format, ...) 文字列からデータをスキャンして読み取ります。

vfprintf(FILE *stream, const char *format, va_list arg) 可変長引数を使用してフォーマット指定子をファイルに書き込みます。

fscanf(FILE *stream, const char *format, ...) ファイルからフォーマットに従ってデータを読み取ります。

fputs(const char *str, FILE *stream) 文字列をファイルに書き込みます。

scanf(const char *format, ...) フォーマットに従ってデータを入力します。

ランダム関連:
rand() 0から32767の範囲の擬似乱数を生成します。
srand(unsigned int seed) 乱数生成器のシード値を設定します。
rand_range(int min, int max) 指定された範囲内の乱数を生成します。

計算関連:
abs(int value) 整数の絶対値を返します。
sqrt(int x) 整数の平方根を求めます。
min(int a, int b) 2つの整数のうち小さい方を返します。
max(int a, int b) 2つの整数のうち大きい方を返します。
pow(int base, int exponent) 整数のべき乗を計算します。
ceil(float x) 小数点以下を切り上げた値を返します。
floor(float x) 小数点以下を切り捨てた値を返します。
sqrt(double x) 平方根を計算します。
pow(double x, double y) xのy乗を計算します。
fabs(double x) 絶対値を返します。
ceil(double x) x以上の最小の整数を返します。
floor(double x) x以下の最大の整数を返します。
sin(double x) サイン(正弦)を計算します。
cos(double x) コサイン(余弦)を計算します。
tan(double x) タンジェント(正接)を計算します。
asin(double x) アークサインを計算します。
acos(double x) アークコサインを計算します。
atan(double x) アークタンジェントを計算します。
exp(double x) eのx乗を計算します。
log(double x) 自然対数を計算します。
log10(double x) 10を底とする対数を計算します。
fabsf(float x) 絶対値を返します(単精度浮動小数点数版)。
ceilf(float x) x以上の最小の整数を返します(単精度浮動小数点数版)。
floorf(float x) x以下の最大の整数を返します(単精度浮動小数点数版)。
sinf(float x) サイン(正弦)を計算します(単精度浮動小数点数版)。
cosf(float x) コサイン(余弦)を計算します(単精度

バンク関連:
rand_bank1() バンク1内で疑似乱数を生成します。
srand_bank1(unsigned int seed) バンク1内で乱数生成のシード値を設定します。
abs_bank1(int n) バンク1内で整数の絶対値を返します。
ldiv_bank1(long numer, long denom) バンク1内で長整数の商と余りを計算します。
bsearch_bank1(const void *key, const void *base, size_t num, size_t size, int (*compar)(const void *, const void *)) バン
qsort_bank1(void *base, size_t num, size_t size, int (*compar)(const void *, const void *)) バンク1内でクイックソートを実行します。
atexit_bank1(void (*func)(void)) バンク1内でプログラム終了時に実行される関数を登録します。
abort_bank1() バンク1内でプログラムを強制終了します。
exit_bank1(int status) バンク1内でプログラムを終了します。
getchar_bank1() バンク1内で標準入力から1文字を取得します。
putchar_bank1(int c) バンク1内で1文字を標準出力に出力します。
puts_bank1(const char *str) バンク1内で文字列を標準出力に出力します。
fgets_bank1(char *str, int num, FILE *stream) バンク1内で指定されたストリームから文字列を読み込みます。
sprintf_bank1(char *str, const char *format, ...) バンク1内で指定されたフォーマットに従って文字列を書式化します。
vsprintf_bank1(char *str, const char *format, va_list arg) バンク1内で指定された可変長引数リストを使用して文字列を書式化します。
printf_bank1(const char *format, ...) バンク1内で指定されたフォーマットに従って文字列を標準出力に書き込みます。
vprintf_bank1(const char *format, va_list arg) バンク1内で指定された可変長引数リストを使用して文字列を標準出力に書き込みます。
vfprintf_bank1(FILE *stream, const char *format, va_list arg) バンク1内で指定された可変長引数リストを使用して文字列を指定されたストリームに書き込みます。
snprintf_bank1(char *str, size_t size, const char *format, ...) バンク1内で指定されたフォーマットに従って文字列を書式化し、指定されたバッファに最大サイズを制限して格納します。
vsnprintf_bank1(char *str, size_t size, const char *format, va_list arg) バンク1内で指定された可変長引数リストを使用して文字列を書式化し、指定されたバッファに最大サイズを制限して格納します。
strlen_bank1(const char *str) バンク1内で文字列の長さを取得します。
strcpy_bank1(char *dest, const char *src) バンク1内で文字列をコピーします。
strncat_bank1(char *dest, const char *src, size_t n) バンク1内で指定された長さの範囲内で文字列を連結します。
strchr_bank1(const char *str, int c) バンク1内で文字列内で指定された文字を検索します。
strrchr_bank1(const char *str, int c) バンク1内で文字列内で指定された文字を末尾から検索します。
strstr_bank1(const char *haystack, const char *needle) バンク1内で文字列内で指定された部分文字列を検索します。
strspn_bank1(const char *str, const char *accept) バンク1内で文字列の先頭で指定された文字セットに含まれる文字の数を取得します。
strcspn_bank1(const char *str, const char *reject) バンク1内で文字列の先頭で指定された文字セットに含まれない文字の数を取得します。
strpbrk_bank1(const char *str, const char *accept) バンク1内で文字列内で指定された文字セットのいずれかの文字を検索します。
isdigit_bank1(int c) バンク1内で指定された文字が数字かどうかを判定します。
isalpha_bank1(int c) バンク1内で指定された文字がアルファベットの文字かどうかを判定します。
isalnum_bank1(int c) バンク1内で指定された文字が英数字の文字かどうかを判定します。
islower_bank1(int c) バンク1内で指定された文字が小文字の文字かどうかを判定します。
isupper_bank1(int c) バンク1内で指定された文字が大文字の文字かどうかを判定します。
isspace_bank1(int c) バンク1内で指定された文字が空白文字かどうかを判定します。
isprint_bank1(int c) バンク1内で指定された文字が表示可能な文字かどうかを判定します。
toupper_bank1(int c) バンク1内で指定された文字を大文字に変換します。
tolower_bank1(int c) バンク1内で指定された文字を小文字に変換します。
getc_bank1() バンク1内でユーザーからの文字入力を取得します。
gets_bank1(char *str) バンク1内で文字列を入力します。
scanf_bank1(const char *format, ...) バンク1内でフォーマット指定子を使用して入力を受け取ります。
sscanf_bank1(const char *str, const char *format, ...) バンク1内でフォーマット指定子を使用して文字列から入力を受け取ります。
memset_bank1(void *ptr, int value, size_t num) バンク1内で指定された値でメモリを埋めます。
memcpy_bank1(void *dest, const void *src, size_t n) バンク1内でメモリをコピーします。
memcmp_bank1(const void *ptr1, const void *ptr2, size_t n) バンク1内でメモリ領域を比較します。
memchr_bank1(const void *ptr, int value, size_t n) バンク1内でメモリ領域から指定された値を検索します。
labs_bank1(long x) バンク1内で長整数の絶対値を取得します。
div_bank1(int numer, int denom) バンク1内で整数の商と剰余を計算します。
atoi_bank1(const char *str) バンク1内で文字列を整数に変換します。
atol_bank1(const char *str) バンク1内で文字列を長整数に変換します。
atof_bank1(const char *str) バンク1内で文字列を倍精度浮動小数点数に変換します。
itoa_bank1(int value, char *str, int base) バンク1内で整数を文字列に変換します。
ltoa_bank1(long value, char *str, int base) バンク1内で長整数を文字列に変換します。
utoa_bank1(unsigned int value, char *str, int base) バンク1内で符号なし整数を文字列に変換します。
ultoa_bank1(unsigned long value, char *str, int base) バンク1内で符号なし長整数を文字列に変換します。
vsprintf_bank1(char *str, const char *format, va_list ap) バンク1内で可変長引数を使用してフォーマットされた文字列を生成します。
fprintf_bank1(FILE *stream, const char *format, ...) バンク1内で指定されたファイルストリームにフォーマットされた文字列を書き込みます。
vfprintf_bank1(FILE *stream, const char *format, va_list ap) バンク1内で可変長引数を使用して指定されたファイルストリームにフォーマットされた文字列を書き込みます。
fputc_bank1(int c, FILE *stream) バンク1内で指定された文字をファイルストリームに書き込みます。
fputs_bank1(const char *str, FILE *stream) バンク1内で指定された文字列を
getc_bank1(FILE *stream) バンク1内でファイルストリームから文字を読み込みます。
putc_bank1(int c, FILE *stream) バンク1内で指定された文字をファイルストリームに書き込みます。
feof_bank1(FILE *stream) バンク1内でファイルストリームの終端フラグをチェックします。
ferror_bank1(FILE *stream) バンク1内でファイルストリームのエラーフラグをチェックします。
rewind_bank1(FILE *stream) バンク1内でファイルストリームを先頭に巻き戻
fseek_bank1(FILE *stream, long offset, int origin) バンク1内でファイルストリームの位置を指定されたオフセットと基準位置で設定します。
ftell_bank1(FILE *stream) バンク1内でファイルストリームの現在位置を取得します。
fread_bank1(void *ptr, size_t size, size_t count, FILE *stream) バンク1内でファイルストリームからデータを読み込みます。
fwrite_bank1(const void *ptr, size_t size, size_t count, FILE *stream) バンク1内でデータをファイルストリームに書き込みます。
remove_bank1(const char *filename) バンク1内で指定されたファイルを削除します。
strncpy_bank1(char *dest, const char *src, size_t n) 文字列をバンク1に指定した長さまでコピーします。
strcat_bank1(char *dest, const char *src) 文字列をバンク1に連結します。
strcmp_bank1(const char *str1, const char *str2) 2つの文字列をバンク1で比較します。
strncmp_bank1(const char *str1, const char *str2, size_t n) 2つの文字列をバンク1で指定した長さまで比較します。




以上!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?