mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
Merge branch 'master' into pc98x1
This commit is contained in:
@@ -593,7 +593,7 @@ else
|
||||
grep -q " bullseye " /etc/apt/sources.list || echo [!] WARNING: System not running the expected Debian version
|
||||
|
||||
# Establish general dependencies.
|
||||
pkgs="cmake ninja-build pkg-config git wget p7zip-full extra-cmake-modules wayland-protocols tar gzip file appstream"
|
||||
pkgs="cmake ninja-build pkg-config git wget p7zip-full extra-cmake-modules wayland-protocols tar gzip file appstream qttranslations5-l10n"
|
||||
if [ "$(dpkg --print-architecture)" = "$arch_deb" ]
|
||||
then
|
||||
pkgs="$pkgs build-essential"
|
||||
|
||||
1
.github/workflows/cmake_linux.yml
vendored
1
.github/workflows/cmake_linux.yml
vendored
@@ -63,6 +63,7 @@ jobs:
|
||||
qtbase5-dev
|
||||
qtbase5-private-dev
|
||||
qttools5-dev
|
||||
qttranslations5-l10n
|
||||
libevdev-dev
|
||||
libxkbcommon-x11-dev
|
||||
|
||||
|
||||
1
.github/workflows/codeql_linux.yml
vendored
1
.github/workflows/codeql_linux.yml
vendored
@@ -66,6 +66,7 @@ jobs:
|
||||
qtbase5-dev
|
||||
qtbase5-private-dev
|
||||
qttools5-dev
|
||||
qttranslations5-l10n
|
||||
libevdev-dev
|
||||
libxkbcommon-x11-dev
|
||||
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -62,3 +62,6 @@ CMakeLists.txt.user
|
||||
|
||||
# clangd
|
||||
.cache
|
||||
|
||||
# Jetbrains CLion
|
||||
.idea
|
||||
|
||||
@@ -1188,12 +1188,14 @@ read_toc_raw(cdrom_t *dev, unsigned char *b)
|
||||
b[len++] = ti.attr; /* Track ADR and Control */
|
||||
b[len++] = 0; /* TNO (always 0) */
|
||||
b[len++] = ti.number; /* Point (for track points - track number) */
|
||||
b[len++] = ti.m; /* M */
|
||||
b[len++] = ti.s; /* S */
|
||||
b[len++] = ti.f; /* F */
|
||||
/* Yes, this is correct - MSF followed by PMSF, the actual position is in PMSF. */
|
||||
b[len++] = 0;
|
||||
b[len++] = 0;
|
||||
b[len++] = 0;
|
||||
b[len++] = 0;
|
||||
b[len++] = ti.m; /* PM */
|
||||
b[len++] = ti.s; /* PS */
|
||||
b[len++] = ti.f; /* PF */
|
||||
}
|
||||
|
||||
return len;
|
||||
|
||||
@@ -857,7 +857,7 @@ cdi_cue_get_flags(track_t *cur, char **line)
|
||||
}
|
||||
|
||||
static int
|
||||
cdi_add_track(cd_img_t *cdi, track_t *cur, uint64_t *shift, uint64_t prestart, uint64_t *total_pregap, uint64_t cur_pregap)
|
||||
cdi_add_track(cd_img_t *cdi, track_t *cur, uint64_t *shift, uint64_t prestart, uint64_t cur_pregap)
|
||||
{
|
||||
/* Frames between index 0 (prestart) and 1 (current track start) must be skipped. */
|
||||
track_t *prev = NULL;
|
||||
@@ -865,7 +865,8 @@ cdi_add_track(cd_img_t *cdi, track_t *cur, uint64_t *shift, uint64_t prestart, u
|
||||
/* Skip *MUST* be calculated even if prestart is 0. */
|
||||
if (prestart > cur->start)
|
||||
return 0;
|
||||
const uint64_t skip = cur->start - prestart;
|
||||
/* If prestart is 0, there is no skip. */
|
||||
uint64_t skip = (prestart == 0) ? 0 : (cur->start - prestart);
|
||||
|
||||
if ((cdi->tracks != NULL) && (cdi->tracks_num != 0))
|
||||
prev = &cdi->tracks[cdi->tracks_num - 1];
|
||||
@@ -883,7 +884,6 @@ cdi_add_track(cd_img_t *cdi, track_t *cur, uint64_t *shift, uint64_t prestart, u
|
||||
if ((cur->sector_size != RAW_SECTOR_SIZE) && (cur->form > 0) && !cur->noskip)
|
||||
cur->skip += 8;
|
||||
cur->start += cur_pregap;
|
||||
*total_pregap = cur_pregap;
|
||||
cdi_track_push_back(cdi, cur);
|
||||
return 1;
|
||||
}
|
||||
@@ -891,23 +891,21 @@ cdi_add_track(cd_img_t *cdi, track_t *cur, uint64_t *shift, uint64_t prestart, u
|
||||
/* Current track consumes data from the same file as the previous. */
|
||||
if (prev->file == cur->file) {
|
||||
cur->start += *shift;
|
||||
prev->length = cur->start + *total_pregap - prev->start - skip;
|
||||
prev->length = cur->start - prev->start - skip;
|
||||
cur->skip += prev->skip + (prev->length * prev->sector_size) + (skip * cur->sector_size);
|
||||
*total_pregap += cur_pregap;
|
||||
cur->start += *total_pregap;
|
||||
cur->start += cur_pregap;
|
||||
} else {
|
||||
const uint64_t temp = prev->file->get_length(prev->file) - (prev->skip);
|
||||
prev->length = temp / ((uint64_t) prev->sector_size);
|
||||
if ((temp % prev->sector_size) != 0)
|
||||
/* Padding. */
|
||||
prev->length++;
|
||||
/* Padding. */
|
||||
|
||||
cur->start += prev->start + prev->length + cur_pregap;
|
||||
cur->skip = skip * cur->sector_size;
|
||||
if ((cur->sector_size != RAW_SECTOR_SIZE) && (cur->form > 0) && !cur->noskip)
|
||||
cur->skip += 8;
|
||||
*shift += prev->start + prev->length;
|
||||
*total_pregap = cur_pregap;
|
||||
}
|
||||
|
||||
/* Error checks. */
|
||||
@@ -931,7 +929,6 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
||||
uint64_t shift = 0ULL;
|
||||
uint64_t prestart = 0ULL;
|
||||
uint64_t cur_pregap = 0ULL;
|
||||
uint64_t total_pregap = 0ULL;
|
||||
uint64_t frame = 0ULL;
|
||||
uint64_t index;
|
||||
int iso_file_used = 0;
|
||||
@@ -984,7 +981,7 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
||||
|
||||
if (!strcmp(command, "TRACK")) {
|
||||
if (can_add_track)
|
||||
success = cdi_add_track(cdi, &trk, &shift, prestart, &total_pregap, cur_pregap);
|
||||
success = cdi_add_track(cdi, &trk, &shift, prestart, cur_pregap);
|
||||
else
|
||||
success = 1;
|
||||
if (!success)
|
||||
@@ -1103,7 +1100,7 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
||||
char ansi[MAX_FILENAME_LENGTH];
|
||||
|
||||
if (can_add_track)
|
||||
success = cdi_add_track(cdi, &trk, &shift, prestart, &total_pregap, cur_pregap);
|
||||
success = cdi_add_track(cdi, &trk, &shift, prestart, cur_pregap);
|
||||
else
|
||||
success = 1;
|
||||
if (!success)
|
||||
@@ -1186,7 +1183,7 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
||||
return 0;
|
||||
|
||||
/* Add last track. */
|
||||
if (!cdi_add_track(cdi, &trk, &shift, prestart, &total_pregap, cur_pregap))
|
||||
if (!cdi_add_track(cdi, &trk, &shift, prestart, cur_pregap))
|
||||
return 0;
|
||||
|
||||
/* Add lead out track. */
|
||||
@@ -1196,7 +1193,7 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
||||
trk.start = 0;
|
||||
trk.length = 0;
|
||||
trk.file = NULL;
|
||||
if (!cdi_add_track(cdi, &trk, &shift, 0, &total_pregap, 0))
|
||||
if (!cdi_add_track(cdi, &trk, &shift, 0, 0))
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# include <stdlib.h>
|
||||
# define HAVE_STDARG_H
|
||||
# include <86box/86box.h>
|
||||
# include <86box/plat.h>
|
||||
# include "cpu.h"
|
||||
# include "x86.h"
|
||||
# include "x86_flags.h"
|
||||
@@ -25,14 +26,6 @@
|
||||
# include "codegen_ops.h"
|
||||
# include "codegen_ops_x86-64.h"
|
||||
|
||||
# if defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__)
|
||||
# include <sys/mman.h>
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
# if _WIN64
|
||||
# include <windows.h>
|
||||
# endif
|
||||
|
||||
int codegen_flat_ds;
|
||||
int codegen_flat_ss;
|
||||
int codegen_flags_changed = 0;
|
||||
@@ -68,13 +61,7 @@ static int last_ssegs;
|
||||
void
|
||||
codegen_init(void)
|
||||
{
|
||||
# if _WIN64
|
||||
codeblock = VirtualAlloc(NULL, BLOCK_SIZE * sizeof(codeblock_t), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
# elif defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__)
|
||||
codeblock = mmap(NULL, BLOCK_SIZE * sizeof(codeblock_t), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||
# else
|
||||
codeblock = malloc(BLOCK_SIZE * sizeof(codeblock_t));
|
||||
# endif
|
||||
codeblock = plat_mmap(BLOCK_SIZE * sizeof(codeblock_t), 1);
|
||||
codeblock_hash = malloc(HASH_SIZE * sizeof(codeblock_t *));
|
||||
|
||||
memset(codeblock, 0, BLOCK_SIZE * sizeof(codeblock_t));
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
# include <stdlib.h>
|
||||
# include <wchar.h>
|
||||
# include <86box/86box.h>
|
||||
# include <86box/plat.h>
|
||||
# include "cpu.h"
|
||||
# include <86box/mem.h>
|
||||
# include "x86.h"
|
||||
@@ -64,14 +65,6 @@
|
||||
# include "codegen_ops.h"
|
||||
# include "codegen_ops_x86.h"
|
||||
|
||||
# ifdef __unix__
|
||||
# include <sys/mman.h>
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
# if defined _WIN32
|
||||
# include <windows.h>
|
||||
# endif
|
||||
|
||||
int codegen_flat_ds;
|
||||
int codegen_flat_ss;
|
||||
int mmx_ebx_ecx_loaded;
|
||||
@@ -1194,13 +1187,7 @@ gen_MEM_CHECK_WRITE_L(void)
|
||||
void
|
||||
codegen_init(void)
|
||||
{
|
||||
# ifdef _WIN32
|
||||
codeblock = VirtualAlloc(NULL, (BLOCK_SIZE + 1) * sizeof(codeblock_t), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
# elif defined __unix__
|
||||
codeblock = mmap(NULL, (BLOCK_SIZE + 1) * sizeof(codeblock_t), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, 0, 0);
|
||||
# else
|
||||
codeblock = malloc((BLOCK_SIZE + 1) * sizeof(codeblock_t));
|
||||
# endif
|
||||
codeblock = plat_mmap((BLOCK_SIZE + 1) * sizeof(codeblock_t), 1);
|
||||
codeblock_hash = malloc(HASH_SIZE * sizeof(codeblock_t *));
|
||||
|
||||
memset(codeblock, 0, (BLOCK_SIZE + 1) * sizeof(codeblock_t));
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <86box/86box.h>
|
||||
#include "cpu.h"
|
||||
#include <86box/mem.h>
|
||||
#include <86box/plat.h>
|
||||
#include <86box/plat_unused.h>
|
||||
|
||||
#include "codegen.h"
|
||||
@@ -33,15 +34,7 @@ int codegen_allocator_usage = 0;
|
||||
void
|
||||
codegen_allocator_init(void)
|
||||
{
|
||||
#if defined WIN32 || defined _WIN32 || defined _WIN32
|
||||
mem_block_alloc = VirtualAlloc(NULL, MEM_BLOCK_NR * MEM_BLOCK_SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
/* TODO: check deployment target: older Intel-based versions of macOS don't play
|
||||
nice with MAP_JIT. */
|
||||
#elif defined(__APPLE__) && defined(MAP_JIT)
|
||||
mem_block_alloc = mmap(0, MEM_BLOCK_NR * MEM_BLOCK_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE | MAP_JIT, -1, 0);
|
||||
#else
|
||||
mem_block_alloc = mmap(0, MEM_BLOCK_NR * MEM_BLOCK_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||
#endif
|
||||
mem_block_alloc = plat_mmap(MEM_BLOCK_NR * MEM_BLOCK_SIZE, 1);
|
||||
|
||||
for (uint32_t c = 0; c < MEM_BLOCK_NR; c++) {
|
||||
mem_blocks[c].offset = c * MEM_BLOCK_SIZE;
|
||||
|
||||
@@ -730,7 +730,7 @@ static const device_config_t lt_config[] = {
|
||||
{ .description = "Non-timed (original)", .value = 0 },
|
||||
{ .description = "30 Hz (JMP2 = 1)", .value = 30 },
|
||||
{ .description = "45 Hz (JMP2 not populated)", .value = 45 },
|
||||
{ .description = "60 Hz (JMP 2 = 2)", .value = 60 },
|
||||
{ .description = "60 Hz (JMP2 = 2)", .value = 60 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
* USA.
|
||||
*/
|
||||
|
||||
#ifndef __NetBSD__
|
||||
|
||||
#ifndef BSWAP_H
|
||||
#define BSWAP_H
|
||||
|
||||
@@ -239,3 +241,5 @@ cpu_to_be32wu(uint32_t *p, uint32_t v)
|
||||
#undef be_bswaps
|
||||
|
||||
#endif /*BSWAP_H*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -837,7 +837,7 @@ machine_at_vli486sv2g_init(const machine_t *model)
|
||||
return ret;
|
||||
|
||||
machine_at_sis_85c471_common_init(model);
|
||||
device_add(&keyboard_at_ami_device);
|
||||
device_add(&keyboard_ps2_ami_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -6855,7 +6855,7 @@ const machine_t machines[] = {
|
||||
},
|
||||
/* This has an AMIKey-2, which is an updated version of type 'H'. */
|
||||
{
|
||||
.name = "[SiS 471] ASUS VL/I-486SV2G (GX4)",
|
||||
.name = "[SiS 471] ASUS VL/I-486SV2GX4",
|
||||
.internal_name = "vli486sv2g",
|
||||
.type = MACHINE_TYPE_486_S3,
|
||||
.chipset = MACHINE_CHIPSET_SIS_471,
|
||||
|
||||
@@ -935,8 +935,8 @@ static const device_config_t wd8003eb_config[] = {
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8 kB", .value = 8192 },
|
||||
{ .description = "32 kB", .value = 32768 },
|
||||
{ .description = "8 KB", .value = 8192 },
|
||||
{ .description = "32 KB", .value = 32768 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
@@ -1024,8 +1024,8 @@ static const device_config_t wd8013_config[] = {
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "16 kB", .value = 16384 },
|
||||
{ .description = "64 kB", .value = 65536 },
|
||||
{ .description = "16 KB", .value = 16384 },
|
||||
{ .description = "64 KB", .value = 65536 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
@@ -1049,8 +1049,8 @@ static const device_config_t wd8013epa_config[] = {
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8 kB", .value = 8192 },
|
||||
{ .description = "16 kB", .value = 16384 },
|
||||
{ .description = "8 KB", .value = 8192 },
|
||||
{ .description = "16 KB", .value = 16384 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
|
||||
@@ -2058,7 +2058,7 @@ escp_close(void *priv)
|
||||
}
|
||||
|
||||
const lpt_device_t lpt_prt_escp_device = {
|
||||
.name = "Generic ESC/P Dot-Matrix",
|
||||
.name = "Generic ESC/P Dot-Matrix Printer",
|
||||
.internal_name = "dot_matrix",
|
||||
.init = escp_init,
|
||||
.close = escp_close,
|
||||
|
||||
@@ -454,10 +454,49 @@ if (UNIX AND NOT APPLE AND NOT HAIKU)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Get the Qt translations directory
|
||||
get_target_property(QT_QMAKE_EXECUTABLE Qt${QT_MAJOR}::qmake IMPORTED_LOCATION)
|
||||
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_TRANSLATIONS OUTPUT_VARIABLE QT_TRANSLATIONS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
set(QM_FILES)
|
||||
file(GLOB po_files "${CMAKE_CURRENT_SOURCE_DIR}/languages/*.po")
|
||||
foreach(po_file ${po_files})
|
||||
get_filename_component(PO_FILE_NAME ${po_file} NAME_WE)
|
||||
|
||||
# Get the language and country
|
||||
string(REGEX MATCH "^[a-z]+" PO_LANGUAGE ${PO_FILE_NAME})
|
||||
string(REGEX MATCH "[A-Z]+$" PO_COUNTRY ${PO_FILE_NAME})
|
||||
|
||||
# Find the base Qt translation for the language and country
|
||||
set(qt_translation_file_dest "qt_${PO_LANGUAGE}_${PO_COUNTRY}.qm")
|
||||
if (EXISTS "${QT_TRANSLATIONS_DIR}/qtbase_${PO_LANGUAGE}_${PO_COUNTRY}.qm")
|
||||
set(qt_translation_file "qtbase_${PO_LANGUAGE}_${PO_COUNTRY}.qm")
|
||||
# Fall back to just the language if country isn't found
|
||||
elseif (EXISTS "${QT_TRANSLATIONS_DIR}/qtbase_${PO_LANGUAGE}.qm")
|
||||
set(qt_translation_file "qtbase_${PO_LANGUAGE}.qm")
|
||||
# If the translation is still not found, try the legacy Qt one
|
||||
elseif (EXISTS "${QT_TRANSLATIONS_DIR}/qt_${PO_LANGUAGE}_${PO_COUNTRY}.qm")
|
||||
set(qt_translation_file "qt_${PO_LANGUAGE}_${PO_COUNTRY}.qm")
|
||||
# Fall back to just the language again
|
||||
elseif (EXISTS "${QT_TRANSLATIONS_DIR}/qt_${PO_LANGUAGE}.qm")
|
||||
set(qt_translation_file "qt_${PO_LANGUAGE}.qm")
|
||||
else()
|
||||
unset(qt_translation_file)
|
||||
endif()
|
||||
|
||||
# Copy the translation file to the build directory
|
||||
if (qt_translation_file)
|
||||
file(COPY "${QT_TRANSLATIONS_DIR}/${qt_translation_file}" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
if (NOT (qt_translation_file STREQUAL qt_translation_file_dest))
|
||||
# Rename the file for consistency
|
||||
file(RENAME "${CMAKE_CURRENT_BINARY_DIR}/${qt_translation_file}" "${CMAKE_CURRENT_BINARY_DIR}/${qt_translation_file_dest}")
|
||||
endif()
|
||||
# Add the file to the translations list
|
||||
string(APPEND QT_TRANSLATIONS_LIST " <file>${qt_translation_file_dest}</file>\n")
|
||||
list(APPEND QM_FILES "${CMAKE_CURRENT_BINARY_DIR}/${qt_translation_file_dest}")
|
||||
endif()
|
||||
|
||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/86box_${PO_FILE_NAME}.qm"
|
||||
COMMAND "$<TARGET_FILE:Qt${QT_MAJOR}::lconvert>" -i ${po_file} -o ${CMAKE_CURRENT_BINARY_DIR}/86box_${PO_FILE_NAME}.qm
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
@@ -465,5 +504,6 @@ foreach(po_file ${po_files})
|
||||
list(APPEND QM_FILES "${CMAKE_CURRENT_BINARY_DIR}/86box_${PO_FILE_NAME}.qm")
|
||||
list(APPEND QM_FILES "${po_file}")
|
||||
endforeach()
|
||||
configure_file(qt_translations.qrc ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
|
||||
|
||||
configure_file(qt_translations.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/qt_translations.qrc)
|
||||
target_sources(ui PRIVATE ${QM_FILES} ${CMAKE_CURRENT_BINARY_DIR}/qt_translations.qrc)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -26,3 +26,48 @@ msgstr "OpenGL (3.0 Core) renderer could not be initialised. Use another rendere
|
||||
|
||||
msgid "Development of the WinBox manager stopped in 2022 due to a lack of maintainers. As we direct our efforts towards making 86Box even better, we have made the decision to no longer support WinBox as a manager.\n\nNo further updates will be provided through WinBox, and you may encounter incorrect behavior should you continue using it with newer versions of 86Box. Any bug reports related to WinBox behavior will be closed as invalid.\n\nGo to 86box.net for a list of other managers you can use."
|
||||
msgstr "Development of the WinBox manager stopped in 2022 due to a lack of maintainers. As we direct our efforts towards making 86Box even better, we have made the decision to no longer support WinBox as a manager.\n\nNo further updates will be provided through WinBox, and you may encounter incorrect behavior should you continue using it with newer versions of 86Box. Any bug reports related to WinBox behaviour will be closed as invalid.\n\nGo to 86box.net for a list of other managers you can use."
|
||||
|
||||
msgid "Apply fullscreen stretch mode when maximized"
|
||||
msgstr "Apply fullscreen stretch mode when maximised"
|
||||
|
||||
msgid "Render behavior"
|
||||
msgstr "Render behaviour"
|
||||
|
||||
msgid "<html><head/><body><p>Render each frame immediately, in sync with the emulated display.</p><p><span style=" font-style:italic;">This is the recommended option if the shaders in use don't utilize frametime for animated effects.</span></p></body></html>"
|
||||
msgstr "<html><head/><body><p>Render each frame immediately, in sync with the emulated display.</p><p><span style=" font-style:italic;">This is the recommended option if the shaders in use don't utilise frametime for animated effects.</span></p></body></html>"
|
||||
|
||||
msgid "Synchronize with video"
|
||||
msgstr "Synchronise with video"
|
||||
|
||||
msgid "<html><head/><body><p>When selecting media images (CD-ROM, floppy, etc.) the open dialog will start in the same directory as the 86Box configuration file. This setting will likely only make a difference on macOS.</p></body></html>"
|
||||
msgstr "<html><head/><body><p>When selecting media images (CD-ROM, floppy, etc.) the open dialogue will start in the same directory as the 86Box configuration file. This setting will likely only make a difference on macOS.</p></body></html>"
|
||||
|
||||
msgid "Color (generic)"
|
||||
msgstr "Colour (generic)"
|
||||
|
||||
msgid "Gray Monochrome"
|
||||
msgstr "Grey Monochrome"
|
||||
|
||||
msgid "Color (no brown)"
|
||||
msgstr "Colour (no brown)"
|
||||
|
||||
msgid "Color (IBM 5153)"
|
||||
msgstr "Colour (IBM 5153)"
|
||||
|
||||
msgid "Color 40x25 (5153/CGA)"
|
||||
msgstr "Colour 40x25 (5153/CGA)"
|
||||
|
||||
msgid "Color 80x25 (5153/CGA)"
|
||||
msgstr "Colour 80x25 (5153/CGA)"
|
||||
|
||||
msgid "Enhanced Color - Normal Mode (5154/ECD)"
|
||||
msgstr "Enhanced Colour - Normal Mode (5154/ECD)"
|
||||
|
||||
msgid "Enhanced Color - Enhanced Mode (5154/ECD)"
|
||||
msgstr "Enhanced Colour - Enhanced Mode (5154/ECD)"
|
||||
|
||||
msgid "Gray"
|
||||
msgstr "Grey"
|
||||
|
||||
msgid "Color"
|
||||
msgstr "Colour"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -457,7 +457,7 @@ DeviceConfig::DeviceName(const _device_ *device, const char *internalName, const
|
||||
if (QStringLiteral("none") == internalName)
|
||||
return tr("None");
|
||||
else if (QStringLiteral("internal") == internalName)
|
||||
return tr("Internal controller");
|
||||
return tr("Internal device");
|
||||
else if (device == nullptr)
|
||||
return "";
|
||||
else {
|
||||
|
||||
@@ -96,12 +96,12 @@ static const QStringList rpmModes = {
|
||||
};
|
||||
|
||||
static const QStringList floppyTypes = {
|
||||
"160 kB",
|
||||
"180 kB",
|
||||
"320 kB",
|
||||
"360 kB",
|
||||
"640 kB",
|
||||
"720 kB",
|
||||
"160 KB",
|
||||
"180 KB",
|
||||
"320 KB",
|
||||
"360 KB",
|
||||
"640 KB",
|
||||
"720 KB",
|
||||
"1.2 MB",
|
||||
"1.25 MB",
|
||||
"1.44 MB",
|
||||
|
||||
@@ -365,6 +365,8 @@ plat_mmap(size_t size, uint8_t executable)
|
||||
#elif defined Q_OS_UNIX
|
||||
# if defined Q_OS_DARWIN && defined MAP_JIT
|
||||
void *ret = mmap(0, size, PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0), MAP_ANON | MAP_PRIVATE | (executable ? MAP_JIT : 0), -1, 0);
|
||||
# elif defined(PROT_MPROTECT)
|
||||
void *ret = mmap(0, size, PROT_MPROTECT(PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0)), MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||
# else
|
||||
void *ret = mmap(0, size, PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0), MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||
# endif
|
||||
@@ -804,12 +806,16 @@ plat_set_thread_name(void *thread, const char *name)
|
||||
if (thread) /* Apple pthread can only set self's name */
|
||||
return;
|
||||
char truncated[64];
|
||||
# elif defined(Q_OS_NETBSD)
|
||||
char truncated[64];
|
||||
# else
|
||||
char truncated[16];
|
||||
# endif
|
||||
strncpy(truncated, name, sizeof(truncated) - 1);
|
||||
# if defined(Q_OS_DARWIN)
|
||||
pthread_setname_np(truncated);
|
||||
# elif defined(Q_OS_NETBSD)
|
||||
pthread_setname_np(thread ? *((pthread_t *) thread) : pthread_self(), truncated, "%s");
|
||||
# elif defined(Q_OS_OPENBSD)
|
||||
pthread_set_name_np(thread ? *((pthread_t *) thread) : pthread_self(), truncated);
|
||||
# else
|
||||
|
||||
@@ -195,7 +195,9 @@ ProgSettings::loadTranslators(QObject *parent)
|
||||
qDebug() << "Translations loaded.\n";
|
||||
QCoreApplication::installTranslator(translator);
|
||||
if (!qtTranslator->load(QLatin1String("qtbase_") + localetofilename.replace('-', '_'), QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
|
||||
qtTranslator->load(QLatin1String("qt_") + localetofilename.replace('-', '_'), QApplication::applicationDirPath() + "/./translations/");
|
||||
if (!qtTranslator->load(QLatin1String("qtbase_") + localetofilename.left(localetofilename.indexOf('-')), QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
|
||||
if (!qtTranslator->load(QLatin1String("qt_") + localetofilename.replace('-', '_'), QApplication::applicationDirPath() + "/./translations/"))
|
||||
qtTranslator->load(QLatin1String("qt_") + localetofilename.replace('-', '_'), QLatin1String(":/"));
|
||||
if (QApplication::installTranslator(qtTranslator)) {
|
||||
qDebug() << "Qt translations loaded."
|
||||
<< "\n";
|
||||
@@ -207,7 +209,10 @@ ProgSettings::loadTranslators(QObject *parent)
|
||||
translator->load(QLatin1String("86box_") + lcid_langcode[lang_id].first, QLatin1String(":/"));
|
||||
QCoreApplication::installTranslator(translator);
|
||||
if (!qtTranslator->load(QLatin1String("qtbase_") + QString(lcid_langcode[lang_id].first).replace('-', '_'), QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
|
||||
qtTranslator->load(QLatin1String("qt_") + QString(lcid_langcode[lang_id].first).replace('-', '_'), QApplication::applicationDirPath() + "/./translations/");
|
||||
if (!qtTranslator->load(QLatin1String("qtbase_") + QString(lcid_langcode[lang_id].first).left(QString(lcid_langcode[lang_id].first).indexOf('-')), QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
|
||||
if(!qtTranslator->load(QLatin1String("qt_") + QString(lcid_langcode[lang_id].first).replace('-', '_'), QApplication::applicationDirPath() + "/./translations/"))
|
||||
qtTranslator->load(QLatin1String("qt_") + QString(lcid_langcode[lang_id].first).replace('-', '_'), QLatin1String(":/"));
|
||||
|
||||
QCoreApplication::installTranslator(qtTranslator);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,10 +200,14 @@ RendererStack::mousePressEvent(QMouseEvent *event)
|
||||
void
|
||||
RendererStack::wheelEvent(QWheelEvent *event)
|
||||
{
|
||||
if (!mouse_capture) {
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
double numSteps = (double) event->angleDelta().y() / 120.0;
|
||||
|
||||
mouse_set_z((int) numSteps);
|
||||
|
||||
event->accept();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,5 +24,6 @@
|
||||
<file>86box_vi-VN.qm</file>
|
||||
<file>86box_zh-CN.qm</file>
|
||||
<file>86box_zh-TW.qm</file>
|
||||
@QT_TRANSLATIONS_LIST@
|
||||
</qresource>
|
||||
</RCC>
|
||||
@@ -132,7 +132,7 @@ xinput2_proc()
|
||||
XGenericEventCookie *cookie = (XGenericEventCookie *) &ev.xcookie;
|
||||
XNextEvent(disp, (XEvent *) &ev);
|
||||
|
||||
if (XGetEventData(disp, cookie) && (cookie->type == GenericEvent) && (cookie->extension == xi2opcode)) {
|
||||
if (XGetEventData(disp, cookie) && (cookie->type == GenericEvent) && (cookie->extension == xi2opcode) && mouse_capture) {
|
||||
const XIRawEvent *rawev = (const XIRawEvent *) cookie->data;
|
||||
double coords[2] = { 0.0 };
|
||||
|
||||
@@ -214,8 +214,6 @@ common_motion:
|
||||
}
|
||||
|
||||
prev_time = rawev->time;
|
||||
if (!mouse_capture)
|
||||
break;
|
||||
XWindowAttributes winattrib {};
|
||||
if (XGetWindowAttributes(disp, main_window->winId(), &winattrib)) {
|
||||
auto globalPoint = main_window->mapToGlobal(QPoint(main_window->width() / 2, main_window->height() / 2));
|
||||
|
||||
@@ -455,11 +455,8 @@ spock_process_imm_cmd(spock_t *scsi)
|
||||
int phys_id;
|
||||
int lun_id;
|
||||
|
||||
scsi->assign = 0;
|
||||
|
||||
switch (scsi->command & CMD_MASK) {
|
||||
case CMD_ASSIGN:
|
||||
scsi->assign = 1;
|
||||
adapter_id = (scsi->command >> 16) & 15;
|
||||
phys_id = (scsi->command >> 20) & 7;
|
||||
lun_id = (scsi->command >> 24) & 7;
|
||||
@@ -512,6 +509,7 @@ spock_process_imm_cmd(spock_t *scsi)
|
||||
scsi->present[j] = i;
|
||||
j++;
|
||||
} else {
|
||||
scsi->present[j] = 0xff;
|
||||
spock_log("Adapter Reset, SCSI reset not present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[i].phys_id, scsi_devices[scsi->bus][i].type);
|
||||
}
|
||||
}
|
||||
@@ -566,6 +564,7 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
scsi->present[j] = c;
|
||||
j++;
|
||||
} else {
|
||||
scsi->present[j] = 0xff;
|
||||
spock_log("Reset, SCSI reset not present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[c].phys_id, scsi_devices[scsi->bus][c].type);
|
||||
}
|
||||
}
|
||||
@@ -699,7 +698,11 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
break;
|
||||
|
||||
case CMD_DEVICE_INQUIRY:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
if (scsi->present[scsi->scb_id] != 0xff)
|
||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||
else
|
||||
scsi->cdb_id = 0xff;
|
||||
|
||||
spock_log("Device Inquiry, ID=%d\n", scsi->cdb_id);
|
||||
scsi->cdb[0] = GPCMD_INQUIRY;
|
||||
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
||||
@@ -715,9 +718,13 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
return;
|
||||
|
||||
case CMD_SEND_OTHER_SCSI:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
if (scsi->present[scsi->scb_id] != 0xff)
|
||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||
else
|
||||
scsi->cdb_id = 0xff;
|
||||
|
||||
dma_bm_read(scsi->scb_addr + 0x18, scsi->cdb, 12, 2);
|
||||
spock_log("Send Other SCSI, SCB ID=%d, PHYS ID=%d, CDB[0]=%02x, CDB_ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id, scsi->cdb[0], scsi->cdb_id);
|
||||
spock_log("Send Other SCSI, SCB ID=%d, PHYS ID=%d, CDB[0]=%02x, CDB_ID=%d, ID Present=%d.\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id, scsi->cdb[0], scsi->cdb_id, scsi->present[scsi->scb_id]);
|
||||
scsi->cdb[1] = (scsi->cdb[1] & 0x1f) | (scsi->dev_id[scsi->scb_id].lun_id << 5); /*Patch correct LUN into command*/
|
||||
scsi->cdb_len = (scb->lba_addr & 0xff) ? (scb->lba_addr & 0xff) : 6;
|
||||
scsi->scsi_state = SCSI_STATE_SELECT;
|
||||
@@ -725,7 +732,11 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
return;
|
||||
|
||||
case CMD_READ_DEVICE_CAPACITY:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
if (scsi->present[scsi->scb_id] != 0xff)
|
||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||
else
|
||||
scsi->cdb_id = 0xff;
|
||||
|
||||
spock_log("Device Capacity, SCB ID=%d, PHYS ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id);
|
||||
scsi->cdb[0] = GPCMD_READ_CDROM_CAPACITY;
|
||||
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
||||
@@ -743,7 +754,11 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
return;
|
||||
|
||||
case CMD_READ_DATA:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
if (scsi->present[scsi->scb_id] != 0xff)
|
||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||
else
|
||||
scsi->cdb_id = 0xff;
|
||||
|
||||
spock_log("Device Read Data, SCB ID=%d, PHYS ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id);
|
||||
scsi->cdb[0] = GPCMD_READ_10;
|
||||
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
||||
@@ -761,7 +776,11 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
return;
|
||||
|
||||
case CMD_WRITE_DATA:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
if (scsi->present[scsi->scb_id] != 0xff)
|
||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||
else
|
||||
scsi->cdb_id = 0xff;
|
||||
|
||||
spock_log("Device Write Data\n");
|
||||
scsi->cdb[0] = GPCMD_WRITE_10;
|
||||
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
||||
@@ -779,7 +798,11 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
return;
|
||||
|
||||
case CMD_VERIFY:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
if (scsi->present[scsi->scb_id] != 0xff)
|
||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||
else
|
||||
scsi->cdb_id = 0xff;
|
||||
|
||||
spock_log("Device Verify\n");
|
||||
scsi->cdb[0] = GPCMD_VERIFY_10;
|
||||
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
||||
@@ -798,7 +821,11 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
return;
|
||||
|
||||
case CMD_REQUEST_SENSE:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
if (scsi->present[scsi->scb_id] != 0xff)
|
||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||
else
|
||||
scsi->cdb_id = 0xff;
|
||||
|
||||
spock_log("Device Request Sense, ID=%d\n", scsi->cdb_id);
|
||||
scsi->cdb[0] = GPCMD_REQUEST_SENSE;
|
||||
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
||||
@@ -818,7 +845,7 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
|
||||
case 2: /* Wait */
|
||||
if (scsi->scsi_state == SCSI_STATE_IDLE) {
|
||||
if (scsi_device_present(&scsi_devices[scsi->bus][scsi->cdb_id])) {
|
||||
if (scsi_device_present(&scsi_devices[scsi->bus][scsi->cdb_id]) && (scsi->cdb_id != 0xff)) {
|
||||
if (scsi->last_status == SCSI_STATUS_OK) {
|
||||
scsi->scb_state = 3;
|
||||
spock_log("Status is Good on device ID %d, cdb id = %d.\n", scsi->scb_id, scsi->cdb_id);
|
||||
@@ -878,7 +905,7 @@ spock_process_scsi(spock_t *scsi, scb_t *scb)
|
||||
|
||||
case SCSI_STATE_SELECT:
|
||||
spock_log("Selecting ID %d, SCB ID %d, LUN %d, adapter id = %d.\n", scsi->cdb_id, scsi->scb_id, scsi->dev_id[scsi->scb_id].lun_id, scsi->attention);
|
||||
if ((scsi->cdb_id != (uint8_t) -1) && scsi_device_present(&scsi_devices[scsi->bus][scsi->cdb_id])) {
|
||||
if ((scsi->cdb_id != 0xff) && scsi_device_present(&scsi_devices[scsi->bus][scsi->cdb_id])) {
|
||||
scsi->scsi_state = SCSI_STATE_SEND_COMMAND;
|
||||
spock_log("Device selected at ID %i.\n", scsi->cdb_id);
|
||||
} else {
|
||||
@@ -893,6 +920,7 @@ spock_process_scsi(spock_t *scsi, scb_t *scb)
|
||||
break;
|
||||
|
||||
case SCSI_STATE_SEND_COMMAND:
|
||||
spock_log("Send Command ID=%d.\n", scsi->cdb_id);
|
||||
sd = &scsi_devices[scsi->bus][scsi->cdb_id];
|
||||
memset(scsi->temp_cdb, 0x00, 12);
|
||||
|
||||
@@ -954,9 +982,9 @@ spock_process_scsi(spock_t *scsi, scb_t *scb)
|
||||
}
|
||||
} else {
|
||||
spock_log("Normal Transfer\n");
|
||||
if (sd->phase == SCSI_PHASE_DATA_IN) {
|
||||
if (sd->phase == SCSI_PHASE_DATA_IN)
|
||||
dma_bm_write(scsi->data_ptr, sd->sc->temp_buffer, MIN(sd->buffer_length, (int) scsi->data_len), 2);
|
||||
} else if (sd->phase == SCSI_PHASE_DATA_OUT)
|
||||
else if (sd->phase == SCSI_PHASE_DATA_OUT)
|
||||
dma_bm_read(scsi->data_ptr, sd->sc->temp_buffer, MIN(sd->buffer_length, (int) scsi->data_len), 2);
|
||||
}
|
||||
|
||||
@@ -1077,9 +1105,11 @@ spock_mca_write(int port, uint8_t val, void *priv)
|
||||
|
||||
if (scsi->pos_regs[2] & 1) {
|
||||
io_sethandler((((scsi->pos_regs[2] >> 1) & 7) * 8) + 0x3540, 0x0008, spock_read, spock_readw, NULL, spock_write, spock_writew, NULL, scsi);
|
||||
if ((scsi->pos_regs[2] & 0xf0) != 0xf0) {
|
||||
mem_mapping_set_addr(&scsi->bios_rom.mapping, ((scsi->pos_regs[2] >> 4) * 0x2000) + 0xc0000, 0x8000);
|
||||
mem_mapping_enable(&scsi->bios_rom.mapping);
|
||||
if (scsi->pos_regs[4] & 2) {
|
||||
if (((scsi->pos_regs[2] >> 4) & 0x0f) != 0x0f) {
|
||||
mem_mapping_set_addr(&scsi->bios_rom.mapping, ((scsi->pos_regs[2] >> 4) * 0x2000) + 0xc0000, 0x8000);
|
||||
mem_mapping_enable(&scsi->bios_rom.mapping);
|
||||
}
|
||||
}
|
||||
}
|
||||
spock_log("[%04X:%08X]: POS Write Port = %x, val = %02x, rom addr = %05x\n", CS, cpu_state.pc, port & 7, val, ((scsi->pos_regs[2] >> 4) * 0x2000) + 0xc0000);
|
||||
@@ -1120,11 +1150,12 @@ spock_mca_reset(void *priv)
|
||||
/* Reset all devices on controller reset. */
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
scsi_device_reset(&scsi_devices[scsi->bus][i]);
|
||||
scsi->present[i] = 0;
|
||||
scsi->present[i] = 0xff;
|
||||
}
|
||||
|
||||
spock_log("Reset.\n");
|
||||
mem_mapping_disable(&scsi->bios_rom.mapping);
|
||||
scsi->pos_regs[4] = 0x02;
|
||||
spock_mca_write(0x102, 0, scsi);
|
||||
}
|
||||
|
||||
@@ -1158,6 +1189,7 @@ spock_init(const device_t *info)
|
||||
|
||||
scsi->pos_regs[0] = scsi->spock_16bit ? 0xfe : 0xff;
|
||||
scsi->pos_regs[1] = 0x8e;
|
||||
scsi->pos_regs[4] = 0x02;
|
||||
mca_add(spock_mca_read, spock_mca_write, spock_mca_feedb, spock_mca_reset, scsi);
|
||||
|
||||
scsi->in_reset = 2;
|
||||
|
||||
@@ -1499,11 +1499,11 @@ static const device_config_t gus_config[] = {
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
|
||||
@@ -4669,7 +4669,7 @@ static const device_config_t sb_32_pnp_config[] = {
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -4882,7 +4882,7 @@ static const device_config_t sb_awe32_config[] = {
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -4946,7 +4946,7 @@ static const device_config_t sb_awe32_pnp_config[] = {
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -4999,7 +4999,7 @@ static const device_config_t sb_awe64_value_config[] = {
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -409,6 +409,8 @@ plat_mmap(size_t size, uint8_t executable)
|
||||
{
|
||||
#if defined __APPLE__ && defined MAP_JIT
|
||||
void *ret = mmap(0, size, PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0), MAP_ANON | MAP_PRIVATE | (executable ? MAP_JIT : 0), -1, 0);
|
||||
#elif defined(PROT_MPROTECT)
|
||||
void *ret = mmap(0, size, PROT_MPROTECT(PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0)), MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||
#else
|
||||
void *ret = mmap(0, size, PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0), MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||
#endif
|
||||
@@ -782,7 +784,7 @@ plat_init_rom_paths(void)
|
||||
|
||||
strncpy(xdg_rom_path, getenv("XDG_DATA_HOME"), 1024);
|
||||
path_slash(xdg_rom_path);
|
||||
strncat(xdg_rom_path, "86Box/", 1024);
|
||||
strncat(xdg_rom_path, "86Box/", 1023);
|
||||
|
||||
if (!plat_dir_check(xdg_rom_path))
|
||||
plat_dir_create(xdg_rom_path);
|
||||
@@ -1394,12 +1396,16 @@ plat_set_thread_name(void *thread, const char *name)
|
||||
if (thread) /* Apple pthread can only set self's name */
|
||||
return;
|
||||
char truncated[64];
|
||||
#elif defined(Q_OS_NETBSD)
|
||||
char truncated[64];
|
||||
#else
|
||||
char truncated[16];
|
||||
#endif
|
||||
strncpy(truncated, name, sizeof(truncated) - 1);
|
||||
#ifdef __APPLE__
|
||||
pthread_setname_np(truncated);
|
||||
#elif defined(Q_OS_NETBSD)
|
||||
pthread_setname_np(thread ? *((pthread_t *) thread) : pthread_self(), truncated, "%s");
|
||||
#else
|
||||
pthread_setname_np(thread ? *((pthread_t *) thread) : pthread_self(), truncated);
|
||||
#endif
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
|
||||
# define __BSD_VISIBLE 1
|
||||
#endif
|
||||
#ifdef __NetBSD__
|
||||
# define _NETBSD_VISIBLE 1
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -3921,7 +3921,7 @@ static const device_config_t isa_ext8514_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -3990,7 +3990,7 @@ static const device_config_t mca_ext8514_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -335,11 +335,11 @@ static const device_config_t ati18800_wonder_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -750,11 +750,11 @@ static const device_config_t ati28800_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -780,11 +780,11 @@ static const device_config_t ati28800_wonderxl_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -6228,7 +6228,7 @@ static const device_config_t mach8_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -6254,7 +6254,7 @@ static const device_config_t mach32_config[] = {
|
||||
.default_int = 2048,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -6307,7 +6307,7 @@ static const device_config_t mach32_pci_config[] = {
|
||||
.default_int = 2048,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -4549,7 +4549,7 @@ static const device_config_t gd542x_config[] = {
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -4574,7 +4574,7 @@ static const device_config_t gd5426_config[] = {
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -4603,7 +4603,7 @@ static const device_config_t gd5428_onboard_config[] = {
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1596,19 +1596,19 @@ static const device_config_t ega_config[] = {
|
||||
.default_int = 256,
|
||||
.selection = {
|
||||
{
|
||||
.description = "32 kB",
|
||||
.description = "32 KB",
|
||||
.value = 32
|
||||
},
|
||||
{
|
||||
.description = "64 kB",
|
||||
.description = "64 KB",
|
||||
.value = 64
|
||||
},
|
||||
{
|
||||
.description = "128 kB",
|
||||
.description = "128 KB",
|
||||
.value = 128
|
||||
},
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
|
||||
@@ -553,9 +553,9 @@ static const device_config_t et3000_config[] = {
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{ .description = "256 kB",
|
||||
{ .description = "256 KB",
|
||||
.value = 256 },
|
||||
{ .description = "512 kB",
|
||||
{ .description = "512 KB",
|
||||
.value = 512 },
|
||||
{ .description = "" } } },
|
||||
{ .type = CONFIG_END }
|
||||
|
||||
@@ -949,11 +949,11 @@ static const device_config_t et4000_tc6058af_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -996,11 +996,11 @@ static const device_config_t et4000_bios_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -1043,11 +1043,11 @@ static const device_config_t et4000_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1707,9 +1707,9 @@ static const device_config_t v7_vga_1024i_config[] = {
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{ .description = "256 kB",
|
||||
{ .description = "256 KB",
|
||||
.value = 256 },
|
||||
{ .description = "512 kB",
|
||||
{ .description = "512 KB",
|
||||
.value = 512 },
|
||||
{ .description = "" } } },
|
||||
{ .type = CONFIG_END }
|
||||
|
||||
@@ -643,11 +643,11 @@ const device_config_t nga_config[] = {
|
||||
.default_int = 64,
|
||||
.selection = {
|
||||
{
|
||||
.description = "32 kB",
|
||||
.description = "32 KB",
|
||||
.value = 32
|
||||
},
|
||||
{
|
||||
.description = "64 kB",
|
||||
.description = "64 KB",
|
||||
.value = 64
|
||||
},
|
||||
{
|
||||
|
||||
@@ -577,11 +577,11 @@ static const device_config_t oti067_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -602,11 +602,11 @@ static const device_config_t oti067_ama932j_config[] = {
|
||||
.default_int = 256,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -627,11 +627,11 @@ static const device_config_t oti077_acer100t_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -656,11 +656,11 @@ static const device_config_t oti077_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -751,11 +751,11 @@ static const device_config_t paradise_pvga1a_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -834,11 +834,11 @@ static const device_config_t paradise_wd90c30_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -393,11 +393,11 @@ static const device_config_t rtg3105_config[] = {
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
@@ -420,11 +420,11 @@ static const device_config_t rtg3106_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10489,7 +10489,7 @@ static const device_config_t s3_orchid_86c911_config[] = {
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 1,
|
||||
.selection = {
|
||||
{ .description = "512 kB",
|
||||
{ .description = "512 KB",
|
||||
.value = 0 },
|
||||
{ .description = "1 MB",
|
||||
.value = 1 },
|
||||
@@ -10519,7 +10519,7 @@ static const device_config_t s3_phoenix_trio32_config[] = {
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 2,
|
||||
.selection = {
|
||||
{ .description = "512 kB",
|
||||
{ .description = "512 KB",
|
||||
.value = 0 },
|
||||
{ .description = "1 MB",
|
||||
.value = 1 },
|
||||
|
||||
@@ -527,11 +527,11 @@ static const device_config_t tvga_config[] = {
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user