mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-25 17:10:12 +00:00
commit
adb0542748
@ -1,5 +1,6 @@
|
||||
# 1.7.5 (future)
|
||||
- COMMON: Support for "OEM-102" key (usually '\' on Euro keyboards).
|
||||
- LOCALIZATION: Update Japanese translation.
|
||||
- MENU/QT/WIMP: Add option to filter extensions inside archives when adding to a playlist.
|
||||
- METAL: Add screenshot support.
|
||||
|
||||
|
@ -70,7 +70,7 @@ typedef struct video4linux
|
||||
char dev_name[255];
|
||||
} video4linux_t;
|
||||
|
||||
static int xioctl(int fd, int request, void *args)
|
||||
static int xioctl(int fd, unsigned long request, void *args)
|
||||
{
|
||||
int r;
|
||||
|
||||
@ -91,7 +91,7 @@ static bool init_mmap(void *data)
|
||||
req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
req.memory = V4L2_MEMORY_MMAP;
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_REQBUFS, &req) == -1)
|
||||
if (xioctl(v4l->fd, VIDIOC_REQBUFS, &req) == -1)
|
||||
{
|
||||
if (errno == EINVAL)
|
||||
RARCH_ERR("[V4L2]: %s does not support memory mapping.\n", v4l->dev_name);
|
||||
@ -122,7 +122,7 @@ static bool init_mmap(void *data)
|
||||
buf.memory = V4L2_MEMORY_MMAP;
|
||||
buf.index = v4l->n_buffers;
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYBUF, &buf) == -1)
|
||||
if (xioctl(v4l->fd, VIDIOC_QUERYBUF, &buf) == -1)
|
||||
{
|
||||
RARCH_ERR("[V4L2]: Error - xioctl VIDIOC_QUERYBUF.\n");
|
||||
return false;
|
||||
@ -152,7 +152,7 @@ static bool init_device(void *data)
|
||||
struct v4l2_cropcap cropcap = {0};
|
||||
video4linux_t *v4l = (video4linux_t*)data;
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYCAP, &cap) < 0)
|
||||
if (xioctl(v4l->fd, VIDIOC_QUERYCAP, &cap) < 0)
|
||||
{
|
||||
if (errno == EINVAL)
|
||||
RARCH_ERR("[V4L2]: %s is no V4L2 device.\n", v4l->dev_name);
|
||||
@ -176,7 +176,7 @@ static bool init_device(void *data)
|
||||
|
||||
cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_CROPCAP, &cropcap) == 0)
|
||||
if (xioctl(v4l->fd, VIDIOC_CROPCAP, &cropcap) == 0)
|
||||
{
|
||||
crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
crop.c = cropcap.defrect;
|
||||
@ -190,7 +190,7 @@ static bool init_device(void *data)
|
||||
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
|
||||
fmt.fmt.pix.field = V4L2_FIELD_NONE;
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_S_FMT, &fmt) < 0)
|
||||
if (xioctl(v4l->fd, VIDIOC_S_FMT, &fmt) < 0)
|
||||
{
|
||||
RARCH_ERR("[V4L2]: Error - VIDIOC_S_FMT\n");
|
||||
return false;
|
||||
@ -248,7 +248,7 @@ static bool v4l_start(void *data)
|
||||
buf.memory = V4L2_MEMORY_MMAP;
|
||||
buf.index = i;
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1)
|
||||
if (xioctl(v4l->fd, VIDIOC_QBUF, &buf) == -1)
|
||||
{
|
||||
RARCH_ERR("[V4L2]: Error - VIDIOC_QBUF.\n");
|
||||
return false;
|
||||
@ -364,7 +364,7 @@ static bool preprocess_image(void *data)
|
||||
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
buf.memory = V4L2_MEMORY_MMAP;
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_DQBUF, &buf) == -1)
|
||||
if (xioctl(v4l->fd, VIDIOC_DQBUF, &buf) == -1)
|
||||
{
|
||||
switch (errno)
|
||||
{
|
||||
@ -384,7 +384,7 @@ static bool preprocess_image(void *data)
|
||||
|
||||
scaler_ctx_scale_direct(ctx, v4l->buffer_output, (const uint8_t*)v4l->buffers[buf.index].start);
|
||||
|
||||
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1)
|
||||
if (xioctl(v4l->fd, VIDIOC_QBUF, &buf) == -1)
|
||||
RARCH_ERR("[V4L2]: VIDIOC_QBUF\n");
|
||||
|
||||
return true;
|
||||
|
@ -3001,16 +3001,11 @@ found:
|
||||
|
||||
memcpy((void*)&coro->header, coro->data,
|
||||
sizeof(coro->header));
|
||||
|
||||
if ( coro->header.id[0] != 'N'
|
||||
|| coro->header.id[1] != 'E'
|
||||
|| coro->header.id[2] != 'S'
|
||||
|| coro->header.id[3] != 0x1a)
|
||||
{
|
||||
coro->gameid = 0;
|
||||
CORO_RET();
|
||||
}
|
||||
|
||||
|
||||
if (coro->header.id[0] == 'N'
|
||||
&& coro->header.id[1] == 'E'
|
||||
&& coro->header.id[2] == 'S'
|
||||
&& coro->header.id[3] == 0x1a)
|
||||
{
|
||||
size_t romsize = 256;
|
||||
/* from FCEU core - compute size using the cart mapper */
|
||||
@ -3026,24 +3021,61 @@ found:
|
||||
* we use FCEU_read. */
|
||||
coro->round = mapper != 53 && mapper != 198 && mapper != 228;
|
||||
coro->bytes = coro->round ? romsize : coro->header.rom_size;
|
||||
}
|
||||
|
||||
/* from FCEU core - check if Trainer included in ROM data */
|
||||
MD5_Init(&coro->md5);
|
||||
coro->offset = sizeof(coro->header) + (coro->header.rom_type & 4
|
||||
|
||||
coro->offset = sizeof(coro->header) + (coro->header.rom_type & 4
|
||||
? sizeof(coro->header) : 0);
|
||||
coro->count = 0x4000 * coro->bytes;
|
||||
CORO_GOSUB(EVAL_MD5);
|
||||
|
||||
/* from FCEU core - check if Trainer included in ROM data */
|
||||
MD5_Init(&coro->md5);
|
||||
coro->count = 0x4000 * coro->bytes;
|
||||
CORO_GOSUB(EVAL_MD5);
|
||||
|
||||
if (coro->count < 0x4000 * coro->bytes)
|
||||
{
|
||||
coro->offset = 0xff;
|
||||
coro->count = 0x4000 * coro->bytes - coro->count;
|
||||
CORO_GOSUB(FILL_MD5);
|
||||
if (coro->count < 0x4000 * coro->bytes)
|
||||
{
|
||||
coro->offset = 0xff;
|
||||
coro->count = 0x4000 * coro->bytes - coro->count;
|
||||
CORO_GOSUB(FILL_MD5);
|
||||
}
|
||||
|
||||
MD5_Final(coro->hash, &coro->md5);
|
||||
CORO_GOTO(GET_GAMEID);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fall back to headerless hashing
|
||||
// PRG ROM size is unknown, so test by 16KB chunks
|
||||
size_t chunks = coro->len >> 14;
|
||||
size_t chunk_size = 0x4000;
|
||||
coro->round = 0;
|
||||
coro->offset = 0;
|
||||
|
||||
for (int i = 0; i < chunks; i++)
|
||||
{
|
||||
MD5_Init(&coro->md5);
|
||||
|
||||
coro->bytes = i + 1;
|
||||
coro->count = coro->bytes * chunk_size;
|
||||
|
||||
CORO_GOSUB(EVAL_MD5);
|
||||
|
||||
MD5_Final(coro->hash, &coro->md5);
|
||||
CORO_GOTO(GET_GAMEID);
|
||||
if (coro->count < 0x4000 * coro->bytes)
|
||||
{
|
||||
coro->offset = 0xff;
|
||||
coro->count = 0x4000 * coro->bytes - coro->count;
|
||||
CORO_GOSUB(FILL_MD5);
|
||||
}
|
||||
|
||||
MD5_Final(coro->hash, &coro->md5);
|
||||
CORO_GOSUB(GET_GAMEID);
|
||||
|
||||
if (coro->gameid > 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
CORO_RET();
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* Info Tries to identify a "generic" game
|
||||
|
1
deps/libiosuhax/iosuhax_devoptab.c
vendored
1
deps/libiosuhax/iosuhax_devoptab.c
vendored
@ -24,6 +24,7 @@
|
||||
#include <errno.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/dirent.h>
|
||||
#include <sys/iosupport.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
#include <stdint.h>
|
||||
|
@ -584,7 +584,9 @@ static bool gfx_ctx_wgl_set_video_mode(void *data,
|
||||
unsigned width, unsigned height,
|
||||
bool fullscreen)
|
||||
{
|
||||
#ifdef HAVE_VULKAN
|
||||
win32_vk.fullscreen = fullscreen;
|
||||
#endif
|
||||
|
||||
if (!win32_set_video_mode(NULL, width, height, fullscreen))
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_PUBLIC_ADDRESS,
|
||||
"公式IPアドレス"
|
||||
"グローバルIPアドレス"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NO_ARGUMENTS_SUPPLIED_AND_NO_MENU_BUILTIN,
|
||||
@ -65,7 +65,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_S_HAS_JOINED_AS_PLAYER_N,
|
||||
"「%.*s」がプレヤー「%u」で接続しました"
|
||||
"「%.*s」がプレヤー「%u」として接続しました"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_S_HAS_JOINED_WITH_INPUT_DEVICES_S,
|
||||
@ -77,7 +77,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_OUT_OF_DATE,
|
||||
"相手のRetroArchバージョンは古いから接続できません。"
|
||||
"相手のRetroArchバージョンは古いため、接続できません。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_DIFFERENT_VERSIONS,
|
||||
@ -149,11 +149,11 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_SETTINGS,
|
||||
"メニューの外観関係の設定を変更する。"
|
||||
"メニューの外観に関係する設定を変更する。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_HARD_SYNC,
|
||||
"CPUとGPUを強制に同期する。遅延が減るけどパフォーマンスも減る。"
|
||||
"CPUとGPUを強制に同期する。遅延が減る代わりに性能が低下する。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_THREADED,
|
||||
@ -173,7 +173,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_CAPABILITIES,
|
||||
"対応された機能"
|
||||
"対応機能"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_CONNECTING_TO_NETPLAY_HOST,
|
||||
@ -213,7 +213,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS,
|
||||
"レトロ実績"
|
||||
"RetroAchievements"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST,
|
||||
@ -221,11 +221,11 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_PAUSE,
|
||||
"実績(ハードコア)を一時停止"
|
||||
"実績ハードコアモードを一時停止"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_RESUME,
|
||||
"実績(ハードコア)を再開"
|
||||
"実績ハードコアモードを再開"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST_HARDCORE,
|
||||
@ -245,7 +245,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NETPLAY_TAB,
|
||||
"ネットプレイのルーム表"
|
||||
"ネットプレイのロビー表"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ASK_ARCHIVE,
|
||||
@ -499,19 +499,19 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ACHIEVEMENTS,
|
||||
"解除された実績:"
|
||||
"未解除の実績:"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ENTRY,
|
||||
"ロックされている"
|
||||
"未解除"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_SETTINGS,
|
||||
"レトロ実績"
|
||||
"RetroAchievements"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_TEST_UNOFFICIAL,
|
||||
"非公式実績をテスト"
|
||||
"非公式実績を試す"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_VERBOSE_ENABLE,
|
||||
@ -523,15 +523,15 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ACHIEVEMENTS,
|
||||
"解除可能の実績:"
|
||||
"解除済みの実績:"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY,
|
||||
"解除されている"
|
||||
"解除済み"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY_HARDCORE,
|
||||
"解除されている(ハードコア)"
|
||||
"解除済み(ハードコア)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CLOSE_CONTENT,
|
||||
@ -1411,7 +1411,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_RETROPAD,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_RETROPAD_WITH_ANALOG,
|
||||
"レトロパッド(アナログ付)")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_RETRO_ACHIEVEMENTS_SETTINGS,
|
||||
"レトロ実績")
|
||||
"実績")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_REWIND_ENABLE,
|
||||
"巻き戻しを有効")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_AFTER_TOGGLE,
|
||||
@ -1997,7 +1997,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CHEEVOS_HARDCORE_MODE_ENABLE,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_DRIVER_SETTINGS,
|
||||
"システムのドライバを変更する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_RETRO_ACHIEVEMENTS_SETTINGS,
|
||||
"実績関係の設定を変更する。")
|
||||
"実績に関係する設定を変更する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_CORE_SETTINGS,
|
||||
"コアの設定を変更する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_RECORDING_SETTINGS,
|
||||
@ -2007,7 +2007,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_ONSCREEN_DISPLAY_SETTINGS,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_FRAME_THROTTLE_SETTINGS,
|
||||
"巻き戻し、早送り、スローモーションの設定を変更する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_SAVING_SETTINGS,
|
||||
"保存関係の設定を変更する。")
|
||||
"保存に関係する設定を変更する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_LOGGING_SETTINGS,
|
||||
"ログの設定を変更する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_USER_INTERFACE_SETTINGS,
|
||||
@ -2059,7 +2059,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_ONLINE_UPDATER,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_SAMBA_ENABLE,
|
||||
"フォルダのネットワーク共有を有効する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_SERVICES_SETTINGS,
|
||||
"OS関係のサービスを管理する。")
|
||||
"OSに関係するサービスを管理する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_SHOW_HIDDEN_FILES,
|
||||
"ファイルブラウザーの中に隠しファイルとフォルダを表示する。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_SSH_ENABLE,
|
||||
@ -2684,7 +2684,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_BOKEH,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOWFLAKE,
|
||||
"スノーフレーク")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_REFRESH_ROOMS,
|
||||
"ルーム表を更新")
|
||||
"ロビー表を更新")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME,
|
||||
"ニックネーム: %s")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME_LAN,
|
||||
@ -2698,9 +2698,9 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_SMOOTH,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FILTER,
|
||||
"Apply a CPU-powered video filter. NOTE: Might come at a high performance cost. Some video filters might only work for cores that use 32bit or 16bit color.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_CHEEVOS_USERNAME,
|
||||
"レトロ実績上のユーザー名")
|
||||
"RetroAchievementsアカウントのユーザー名")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_CHEEVOS_PASSWORD,
|
||||
"レトロ実績上のパスワード")
|
||||
"RetroAchievementsアカウントのパスワード")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_NICKNAME,
|
||||
"ネットプレイの使用するニックネーム")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_POST_FILTER_RECORD,
|
||||
@ -3687,7 +3687,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MIDI_VOLUME,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POWER_MANAGEMENT_SETTINGS,
|
||||
"電源管理")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_POWER_MANAGEMENT_SETTINGS,
|
||||
"電源関係設定を変更する。")
|
||||
"電源に関係する設定を変更する。")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_SUSTAINED_PERFORMANCE_MODE,
|
||||
"パフォーマンス維持モード")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_MPV_SUPPORT,
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <errno.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/dirent.h>
|
||||
#include <sys/iosupport.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
#include <fcntl.h>
|
||||
|
Loading…
Reference in New Issue
Block a user