Merge pull request #84 from libretro/master

update
This commit is contained in:
alphanu1 2018-09-10 17:35:58 +01:00 committed by GitHub
commit adb0542748
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 95 additions and 58 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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>

View File

@ -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))
{

View File

@ -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,

View File

@ -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>