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. 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. 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. * 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) * [86Box Manager](https://github.com/86Box/86BoxManager) by [daviunic](https://github.com/daviunic) (Overdoze)
* The traditional 86Box manager with simple interface. * 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(raw_buffer, 0, 2448);
memset(extra_buffer, 0, 296); memset(extra_buffer, 0, 296);
if (!(cdrom_sector_flags & 0xf0)) { /* 0x00 and 0x08 are illegal modes */ if ((cdrom_sector_flags & 0xf8) == 0x08) { /* 0x08 is an illegal mode */
cdrom_log("CD-ROM %i: [Mode 1] 0x00 and 0x08 are illegal modes\n", dev->id); cdrom_log("CD-ROM %i: [Mode 1] 0x08 is an illegal mode\n", dev->id);
return 0; return 0;
} }

View File

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

View File

@@ -90,7 +90,7 @@ extern int update_icons;
extern int unscaled_size_x, /* current unscaled size X */ extern int unscaled_size_x, /* current unscaled size X */
unscaled_size_y; /* current unscaled size Y */ 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. */ /* System-related functions. */
extern char *fix_exe_path(char *str); 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 -= dev->sector_pos;
dev->sector_len++; dev->sector_len++;
msf = 1; 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; break;
case GPCMD_READ_CD_OLD: case GPCMD_READ_CD_OLD:
case GPCMD_READ_CD: 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]; dev->sector_pos = (cdb[2] << 24) | (cdb[3] << 16) | (cdb[4] << 8) | cdb[5];
msf = 0; 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; 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"); 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 (mpu->filter.sysex_in) {
if (abort) { if (abort) {
mpu->state.sysex_in_finished=1; mpu->state.sysex_in_finished=1;

View File

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

View File

@@ -382,8 +382,8 @@ END
#define STR_ISAMEM_2 "Steckkarte 2:" #define STR_ISAMEM_2 "Steckkarte 2:"
#define STR_ISAMEM_3 "Steckkarte 3:" #define STR_ISAMEM_3 "Steckkarte 3:"
#define STR_ISAMEM_4 "Steckkarte 4:" #define STR_ISAMEM_4 "Steckkarte 4:"
#define STR_BUGGER "ISABugger-Gerät:" #define STR_BUGGER "ISABugger-Gerät"
#define STR_POSTCARD "POST-Code-Karte:" #define STR_POSTCARD "POST-Code-Karte"
#define FONT_SIZE 9 #define FONT_SIZE 9
#define FONT_NAME "Segoe UI" #define FONT_NAME "Segoe UI"
@@ -464,7 +464,7 @@ BEGIN
IDS_2104 "Tastaturbeschleuniger konnten nicht geladen werden." IDS_2104 "Tastaturbeschleuniger konnten nicht geladen werden."
IDS_2105 "Roheingaben konnten nicht registriert werden." IDS_2105 "Roheingaben konnten nicht registriert werden."
IDS_2106 "%u" 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_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_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" IDS_2110 "FreeType konnte nicht initialisiert werden"

View File

@@ -376,7 +376,7 @@ END
#define STR_ZIP_DRIVES "ZIP pogoni:" #define STR_ZIP_DRIVES "ZIP pogoni:"
#define STR_250 "ZIP 250" #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 "Proširenje memorije ISA"
#define STR_ISAMEM_1 "Kartica 1:" #define STR_ISAMEM_1 "Kartica 1:"
#define STR_ISAMEM_2 "Kartica 2:" #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_2149 "Slike audio kasete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Sve datoteke (*.*)\0*.*\0"
IDS_2150 "Kaseta %i: %ls" IDS_2150 "Kaseta %i: %ls"
IDS_2151 "Slike kasete (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Sve datoteke (*.*)\0*.*\0" IDS_2151 "Slike kasete (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Sve datoteke (*.*)\0*.*\0"
IDS_2152 "Error initializing renderer" IDS_2152 "Nije moguće inicijalizirati renderer"
IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." IDS_2153 "Nije moguće inicijalizirati OpenGL (3.0 jezgra) renderer. Molimte koristite drugi renderer."
END END
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE

View File

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

View File

@@ -65,6 +65,7 @@ int user_resize = 0;
int fixed_size_x = 0, fixed_size_y = 0; int fixed_size_x = 0, fixed_size_y = 0;
int kbd_req_capture = 0; int kbd_req_capture = 0;
int hide_status_bar = 0; int hide_status_bar = 0;
int hide_tool_bar = 0;
int dpi = 96; int dpi = 96;
extern char openfilestring[512]; extern char openfilestring[512];
@@ -92,6 +93,14 @@ static dllimp_t user32_imports[] = {
{ NULL, NULL } { 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 int
win_get_dpi(HWND hwnd) { win_get_dpi(HWND hwnd) {
if (user32_handle != NULL) { if (user32_handle != NULL) {
@@ -1244,6 +1253,11 @@ ui_init(int nCmdShow)
/* Load DPI related Windows 10 APIs */ /* Load DPI related Windows 10 APIs */
user32_handle = dynld_module("user32.dll", user32_imports); 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. */ /* Set up TaskDialog configuration. */
tdconfig.cbSize = sizeof(tdconfig); tdconfig.cbSize = sizeof(tdconfig);
tdconfig.dwFlags = TDF_ENABLE_HYPERLINKS; tdconfig.dwFlags = TDF_ENABLE_HYPERLINKS;