Merge branch 'master' of github.com:86Box/86Box into tc1995

This commit is contained in:
TC1995
2022-01-10 20:00:32 +01:00
11 changed files with 64 additions and 13 deletions

View File

@@ -21,7 +21,7 @@ System requirements and recommendations
Performance may vary depending on both host and guest configuration. Most emulation logic is executed in a single thread, therefore generally systems with better IPC (instructions per clock) should be able to emulate higher clock speeds.
It is also recommended to use a manager application with 86Box for easier handling of multiple virtual machines.
* [WinBox for 86Box](https://github.com/laciba96/WinBox-for-86Box) by [Laci bá'](https://github.com/laciba96)
* [WinBox for 86Box](https://github.com/86Box/WinBox-for-86Box) by Laci bá'
* The new manager with improved new user experience; installer, automatic updates of emulator files and more.
* [86Box Manager](https://github.com/86Box/86BoxManager) by [daviunic](https://github.com/daviunic) (Overdoze)
* The traditional 86Box manager with simple interface.

View File

@@ -1031,8 +1031,8 @@ cdrom_readsector_raw(cdrom_t *dev, uint8_t *buffer, int sector, int ismsf, int c
memset(raw_buffer, 0, 2448);
memset(extra_buffer, 0, 296);
if (!(cdrom_sector_flags & 0xf0)) { /* 0x00 and 0x08 are illegal modes */
cdrom_log("CD-ROM %i: [Mode 1] 0x00 and 0x08 are illegal modes\n", dev->id);
if ((cdrom_sector_flags & 0xf8) == 0x08) { /* 0x08 is an illegal mode */
cdrom_log("CD-ROM %i: [Mode 1] 0x08 is an illegal mode\n", dev->id);
return 0;
}

View File

@@ -561,6 +561,7 @@ load_general(void)
kbd_req_capture = config_get_int(cat, "kbd_req_capture", 0);
hide_status_bar = config_get_int(cat, "hide_status_bar", 0);
hide_tool_bar = config_get_int(cat, "hide_tool_bar", 0);
confirm_reset = config_get_int(cat, "confirm_reset", 1);
confirm_exit = config_get_int(cat, "confirm_exit", 1);
@@ -2036,6 +2037,7 @@ config_load(void)
kbd_req_capture = 0;
hide_status_bar = 0;
hide_tool_bar = 0;
scale = 1;
machine = machine_get_machine_from_internal_name("ibmpc");
dpi_scale = 1;
@@ -2222,6 +2224,11 @@ save_general(void)
else
config_delete_var(cat, "hide_status_bar");
if (hide_tool_bar != 0)
config_set_int(cat, "hide_tool_bar", hide_tool_bar);
else
config_delete_var(cat, "hide_tool_bar");
if (confirm_reset != 1)
config_set_int(cat, "confirm_reset", confirm_reset);
else

View File

@@ -90,7 +90,7 @@ extern int update_icons;
extern int unscaled_size_x, /* current unscaled size X */
unscaled_size_y; /* current unscaled size Y */
extern int kbd_req_capture, hide_status_bar;
extern int kbd_req_capture, hide_status_bar, hide_tool_bar;
/* System-related functions. */
extern char *fix_exe_path(char *str);

View File

@@ -1623,7 +1623,18 @@ scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
dev->sector_len -= dev->sector_pos;
dev->sector_len++;
msf = 1;
if ((cdb[9] & 0xf8) == 0x08) {
/* 0x08 is an illegal mode */
scsi_cdrom_invalid_field(dev);
break;
}
/* If all the flag bits are cleared, then treat it as a non-data command. */
if ((cdb[9] == 0x00) && ((cdb[10] & 0x07) == 0x00))
dev->sector_len = 0;
break;
case GPCMD_READ_CD_OLD:
case GPCMD_READ_CD:
@@ -1632,6 +1643,16 @@ scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
dev->sector_pos = (cdb[2] << 24) | (cdb[3] << 16) | (cdb[4] << 8) | cdb[5];
msf = 0;
if ((cdb[9] & 0xf8) == 0x08) {
/* 0x08 is an illegal mode */
scsi_cdrom_invalid_field(dev);
break;
}
/* If all the flag bits are cleared, then treat it as a non-data command. */
if ((cdb[9] == 0x00) && ((cdb[10] & 0x07) == 0x00))
dev->sector_len = 0;
break;
}

View File

@@ -1385,6 +1385,17 @@ MPU401_InputSysex(void *p, uint8_t *buffer, uint32_t len, int abort)
mpu401_log("MPU401 Input Sysex\n");
#ifdef DOSBOX_CODE
if (mpu->mode == M_UART) {
#else
if (!mpu->intelligent || mpu->mode == M_UART) {
#endif
/* UART mode input. */
for (i = 0; i < len; i++)
MPU401_QueueByte(mpu, buffer[i]);
return 0;
}
if (mpu->filter.sysex_in) {
if (abort) {
mpu->state.sysex_in_finished=1;

View File

@@ -40,6 +40,7 @@ int rctrl_is_lalt;
int update_icons;
int kbd_req_capture;
int hide_status_bar;
int hide_tool_bar;
int fixed_size_x = 640;
int fixed_size_y = 480;
extern int title_set;

View File

@@ -382,8 +382,8 @@ END
#define STR_ISAMEM_2 "Steckkarte 2:"
#define STR_ISAMEM_3 "Steckkarte 3:"
#define STR_ISAMEM_4 "Steckkarte 4:"
#define STR_BUGGER "ISABugger-Gerät:"
#define STR_POSTCARD "POST-Code-Karte:"
#define STR_BUGGER "ISABugger-Gerät"
#define STR_POSTCARD "POST-Code-Karte"
#define FONT_SIZE 9
#define FONT_NAME "Segoe UI"
@@ -464,7 +464,7 @@ BEGIN
IDS_2104 "Tastaturbeschleuniger konnten nicht geladen werden."
IDS_2105 "Roheingaben konnten nicht registriert werden."
IDS_2106 "%u"
IDS_2107 "%u MB (ZKS: %i, %i, %i)"
IDS_2107 "%u MB (CHS: %i, %i, %i)"
IDS_2108 "Diskette %i (%s): %ls"
IDS_2109 "Alle Images (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Fortgeschrittene Sektorimages (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Basissektorimages (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Fluximages (*.FDI)\0*.FDI\0Oberflächenimages (*.86F;*.MFM)\0*.86F;*.MFM\0Alle Dateien (*.*)\0*.*\0"
IDS_2110 "FreeType konnte nicht initialisiert werden"

View File

@@ -376,7 +376,7 @@ END
#define STR_ZIP_DRIVES "ZIP pogoni:"
#define STR_250 "ZIP 250"
#define STR_ISARTC "Ura u stvarnom vrijemenu RTC:"
#define STR_ISARTC "Sat stvarnog vremena (RTC):"
#define STR_ISAMEM "Proširenje memorije ISA"
#define STR_ISAMEM_1 "Kartica 1:"
#define STR_ISAMEM_2 "Kartica 2:"
@@ -530,8 +530,8 @@ BEGIN
IDS_2149 "Slike audio kasete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Sve datoteke (*.*)\0*.*\0"
IDS_2150 "Kaseta %i: %ls"
IDS_2151 "Slike kasete (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Sve datoteke (*.*)\0*.*\0"
IDS_2152 "Error initializing renderer"
IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
IDS_2152 "Nije moguće inicijalizirati renderer"
IDS_2153 "Nije moguće inicijalizirati OpenGL (3.0 jezgra) renderer. Molimte koristite drugi renderer."
END
STRINGTABLE DISCARDABLE

View File

@@ -450,9 +450,6 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszArg, int nCmdShow)
{
char **argv = NULL;
int argc, i;
wchar_t * AppID = L"86Box.86Box\0";
SetCurrentProcessExplicitAppUserModelID(AppID);
/* Initialize the COM library for the main thread. */
CoInitializeEx(NULL, COINIT_MULTITHREADED);

View File

@@ -65,6 +65,7 @@ int user_resize = 0;
int fixed_size_x = 0, fixed_size_y = 0;
int kbd_req_capture = 0;
int hide_status_bar = 0;
int hide_tool_bar = 0;
int dpi = 96;
extern char openfilestring[512];
@@ -92,6 +93,14 @@ static dllimp_t user32_imports[] = {
{ NULL, NULL }
};
/* Taskbar application ID API, Windows 7+ */
void* shell32_handle = NULL;
static HRESULT (WINAPI *pSetCurrentProcessExplicitAppUserModelID)(PCWSTR AppID);
static dllimp_t shell32_imports[]= {
{ "SetCurrentProcessExplicitAppUserModelID", &pSetCurrentProcessExplicitAppUserModelID },
{ NULL, NULL }
};
int
win_get_dpi(HWND hwnd) {
if (user32_handle != NULL) {
@@ -1244,6 +1253,11 @@ ui_init(int nCmdShow)
/* Load DPI related Windows 10 APIs */
user32_handle = dynld_module("user32.dll", user32_imports);
/* Set the application ID for the taskbar. */
shell32_handle = dynld_module("shell32.dll", shell32_imports);
if (shell32_handle)
pSetCurrentProcessExplicitAppUserModelID(L"86Box.86Box");
/* Set up TaskDialog configuration. */
tdconfig.cbSize = sizeof(tdconfig);
tdconfig.dwFlags = TDF_ENABLE_HYPERLINKS;