From d042648dbe6a10e0995bbc9cf17eac425fc13c7f Mon Sep 17 00:00:00 2001 From: dob205 Date: Wed, 29 Dec 2021 20:33:11 +0100 Subject: [PATCH 01/11] Adjusts the macOS specific CMakeLists.txt This should fix the icon setting for macOS bundle for potential Jenkins builds in the future. --- src/mac/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mac/CMakeLists.txt b/src/mac/CMakeLists.txt index 91759690f..f8891cf69 100644 --- a/src/mac/CMakeLists.txt +++ b/src/mac/CMakeLists.txt @@ -18,11 +18,11 @@ # # Pick the bundle icon depending on the release channel -if(RELEASE_BUILD) +if(BUILD_TYPE STREQUAL "release") set(APP_ICON_MACOSX icons/release/86Box.icns) -elseif(BETA_BUILD) +elseif(BUILD_TYPE STREQUAL "beta") set(APP_ICON_MACOSX icons/beta/86Box.icns) -elseif(ALPHA_BUILD) +elseif(BUILD_TYPE STREQUAL "alpha") set(APP_ICON_MACOSX icons/dev/86Box.icns) else() set(APP_ICON_MACOSX icons/branch/86Box.icns) @@ -50,4 +50,4 @@ set_target_properties(86Box #set(XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "YES") #set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-") -#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements) \ No newline at end of file +#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements) From 4361199fa627ddb5a4e8a205080b61351f8ef263 Mon Sep 17 00:00:00 2001 From: dob205 Date: Wed, 29 Dec 2021 23:42:42 +0100 Subject: [PATCH 02/11] Revert "Adjusts the macOS specific CMakeLists.txt" This reverts commit d042648dbe6a10e0995bbc9cf17eac425fc13c7f. --- src/mac/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mac/CMakeLists.txt b/src/mac/CMakeLists.txt index f8891cf69..91759690f 100644 --- a/src/mac/CMakeLists.txt +++ b/src/mac/CMakeLists.txt @@ -18,11 +18,11 @@ # # Pick the bundle icon depending on the release channel -if(BUILD_TYPE STREQUAL "release") +if(RELEASE_BUILD) set(APP_ICON_MACOSX icons/release/86Box.icns) -elseif(BUILD_TYPE STREQUAL "beta") +elseif(BETA_BUILD) set(APP_ICON_MACOSX icons/beta/86Box.icns) -elseif(BUILD_TYPE STREQUAL "alpha") +elseif(ALPHA_BUILD) set(APP_ICON_MACOSX icons/dev/86Box.icns) else() set(APP_ICON_MACOSX icons/branch/86Box.icns) @@ -50,4 +50,4 @@ set_target_properties(86Box #set(XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "YES") #set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-") -#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements) +#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements) \ No newline at end of file From b56b721650eaa3caccbbec11e48802705c7a0cf7 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 2 Jan 2022 20:02:33 +0300 Subject: [PATCH 03/11] =?UTF-8?q?=D0=9F=D0=B0=D1=80=D0=BE=D1=87=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20//=20A=20couple=20of=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/win/languages/ru-RU.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/languages/ru-RU.rc b/src/win/languages/ru-RU.rc index 36ebf4ee3..413b0c5f3 100644 --- a/src/win/languages/ru-RU.rc +++ b/src/win/languages/ru-RU.rc @@ -481,8 +481,8 @@ BEGIN IDS_2121 "Хотите ли вы сохранить настройки?" IDS_2122 "Это приведет к холодной перезагрузке эмулируемой машины." IDS_2123 "Сохранить" - IDS_2124 "О программе 86Box" - IDS_2125 "86Box v" EMU_VERSION + IDS_2124 "О 86Box" + IDS_2125 "86Box v." EMU_VERSION IDS_2126 "Эмулятор старых компьютеров\n\nАвторы: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE." IDS_2127 "OK" From f3758c065828787f7bf0393583cf7e32714bded2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Sun, 2 Jan 2022 23:27:06 +0100 Subject: [PATCH 04/11] Update hu-HU.rc --- src/win/languages/hu-HU.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc index 3a8dfe756..731ef0e42 100644 --- a/src/win/languages/hu-HU.rc +++ b/src/win/languages/hu-HU.rc @@ -532,8 +532,8 @@ BEGIN IDS_2149 "Magnókazetta-képek (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Minden fájl (*.*)\0*.*\0" IDS_2150 "ROM-kazetta %i: %ls" IDS_2151 "ROM-kazetta képek (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Minden fájl (*.*)\0*.*\0" - IDS_2152 "Error initializing renderer" - IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2152 "Hiba történt a renderelő inicializálásakor" + IDS_2153 "Az OpenGL (3.0 Core) megjelenítő-motort nem sikerült inicializálni. Kérem használjon másik renderelőt." END STRINGTABLE DISCARDABLE From 499a74121e7ffc0b186ebf18a53d2d64130314f6 Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 5 Jan 2022 19:28:39 +0100 Subject: [PATCH 05/11] Fixed the configuration file section the MIDI input device is obtained from. --- src/sound/midi_rtmidi.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sound/midi_rtmidi.cpp b/src/sound/midi_rtmidi.cpp index e150159e4..3354568f6 100644 --- a/src/sound/midi_rtmidi.cpp +++ b/src/sound/midi_rtmidi.cpp @@ -166,7 +166,7 @@ rtmidi_input_init(const device_t *info) return nullptr; } - midi_in_id = config_get_int((char*)SYSTEM_MIDI_NAME, (char*)"midi_input", 0); + midi_in_id = config_get_int((char*)MIDI_INPUT_NAME, (char*)"midi_input", 0); try { midiin->openPort(midi_in_id); From d8f45bcaef370508a3d7ee6af2e6d4e03ce91d1e Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 5 Jan 2022 23:58:07 +0100 Subject: [PATCH 06/11] Explicitly tell RTMIDI to not ignore any midi in message types. --- src/sound/midi_rtmidi.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sound/midi_rtmidi.cpp b/src/sound/midi_rtmidi.cpp index 3354568f6..50246cac8 100644 --- a/src/sound/midi_rtmidi.cpp +++ b/src/sound/midi_rtmidi.cpp @@ -183,7 +183,10 @@ rtmidi_input_init(const device_t *info) } } - midiin->setCallback(rtmidi_input_callback); + midiin->setCallback(&rtmidi_input_callback); + + // Don't ignore sysex, timing, or active sensing messages. + midiin->ignoreTypes(false, false, false); midi_in_init(dev, &midi_in); From d8c94093ff315d6f8a9cd61522ad27656e713572 Mon Sep 17 00:00:00 2001 From: dob205 Date: Thu, 6 Jan 2022 12:25:03 +0100 Subject: [PATCH 07/11] Smaller fixes to the German translation Fixes some smaller awkward translations and translates the previously untranslated strings. --- src/win/languages/de-DE.rc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index eaaa28171..b42761e70 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -47,7 +47,7 @@ BEGIN #endif END MENUITEM SEPARATOR - MENUITEM "Dimensionen spezifizieren...", IDM_VID_SPECIFY_DIM + MENUITEM "Fenstergröße einstellen...", IDM_VID_SPECIFY_DIM MENUITEM "&4:3-Seitenverhältnis erzwingen", IDM_VID_FORCE43 POPUP "&Fensterskalierungsfaktor" BEGIN @@ -104,7 +104,7 @@ BEGIN MENUITEM "&Einstellungen...", IDM_PREFERENCES MENUITEM "&Discord-Integration aktivieren", IDM_DISCORD MENUITEM SEPARATOR - MENUITEM "&Schallverstärkung...", IDM_SND_GAIN + MENUITEM "&Klangverstärkung...", IDM_SND_GAIN #ifdef MTR_ENABLED MENUITEM SEPARATOR MENUITEM "Tracing starten\tStrg+T", IDM_ACTION_BEGIN_TRACE @@ -288,13 +288,13 @@ END #define STR_WIDTH "Breite:" #define STR_HEIGHT "Höhe:" -#define STR_LOCK_TO_SIZE "Auf diese Größe festlegen" +#define STR_LOCK_TO_SIZE "Feste Größe" #define STR_MACHINE_TYPE "Maschinentyp:" #define STR_MACHINE "Maschine:" #define STR_CONFIGURE "Einstellen" #define STR_CPU_TYPE "CPU-Typ:" -#define STR_SPEED "Takt:" +#define STR_SPEED "Geschwindigkeit:" #define STR_FPU "FPU-Einheit:" #define STR_WAIT_STATES "Wartezustände:" #define STR_MB "MB" @@ -377,13 +377,13 @@ END #define STR_250 "ZIP 250" #define STR_ISARTC "ISA-Echtzeituhr:" -#define STR_ISAMEM "ISA-Speichererweiterung" +#define STR_ISAMEM "ISA-Speichererweiterung:" #define STR_ISAMEM_1 "Steckkarte 1:" #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" @@ -418,7 +418,7 @@ END STRINGTABLE DISCARDABLE BEGIN IDS_2064 "Die Videokarte ""%hs"" ist aufgrund von fehlenden ROMs im Verzeichnis roms/video nicht verfügbar. Es wird auf eine verfügbare Videokarte gewechselt." - IDS_2065 "Maschine" + IDS_2065 "System" IDS_2066 "Anzeige" IDS_2067 "Eingabegeräte" IDS_2068 "Multimedia" @@ -469,7 +469,7 @@ BEGIN 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_2111 "SDL konnte nicht initialisiert werden, die Datei SDL2.dll wird benötigt" - IDS_2112 "Sind Sie sich sicher, dass Sie einen Hard-Reset für die emulierte Maschine durchführen wollen?" + IDS_2112 "Sind Sie sich sicher, dass Sie einen Hard-Reset für das emulierte System durchführen wollen?" IDS_2113 "Sind Sie sich sicher, dass Sie 86Box beenden wollen?" IDS_2114 "Ghostscript konnte nicht initialisiert werden" IDS_2115 "MO %i (%ls): %ls" @@ -524,14 +524,14 @@ BEGIN IDS_2143 "OpenGL-Shader (*.GLSL)\0*.GLSL\0Alle Dateien (*.*)\0*.*\0" IDS_2144 "OpenGL-Optionen" IDS_2145 "Sie laden gerade eine nicht unterstützte Konfiguration" - IDS_2146 "Das Filtern der CPU-Typen basierend auf der ausgewählten Maschine ist für diese Maschine deaktiviert.\n\nDies ermöglicht es, dass man eine sonst nicht mit der ausgewählten Maschine inkompatible CPU auswählen kann. Allerdings kann dies zu Inkompatiblilitäten mit dem BIOS der Maschine oder anderen Programmen kommen.\n\nDas Aktivieren dieser Einstellung wird nicht unterstützt und sämtliche Bugreports können als ""invalid"" geschlossen werden." + IDS_2146 "Das Filtern der CPU-Typen basierend auf dem ausgewählten System ist für dieses System deaktiviert.\n\nDies ermöglicht es, dass man eine sonst nicht mit dem ausgewählten System inkompatible CPU auswählen kann. Allerdings kann dies zu Inkompatiblilitäten mit dem BIOS des Systems oder anderen Programmen kommen.\n\nDas Aktivieren dieser Einstellung wird nicht unterstützt und sämtliche Bugreports können als ""invalid"" geschlossen werden." IDS_2147 "Fortfahren" IDS_2148 "Kassette: %s" IDS_2149 "Kassettenimages (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Alle Dateien (*.*)\0*.*\0" IDS_2150 "Cartridge %i: %ls" IDS_2151 "Cartridgeimages (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Alle Dateien (*.*)\0*.*\0" - IDS_2152 "Error initializing renderer" - IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2152 "Fehler bei der Rendererinitialisierung" + IDS_2153 "Der OpenGL (3.0-Kern)-Renderer konnte nicht initialisiert werden. Bitte benutzen Sie einen anderen Renderer." END STRINGTABLE DISCARDABLE From 6d9e9969c2b453696cc1d7ac0db80feef7353b99 Mon Sep 17 00:00:00 2001 From: dob205 Date: Thu, 6 Jan 2022 13:18:38 +0100 Subject: [PATCH 08/11] Further adjustments to the German translation --- src/win/languages/de-DE.rc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index b42761e70..0f1e35650 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -270,7 +270,7 @@ END #define STR_SND_GAIN "Klangverstärkung" #define STR_NEW_FLOPPY "Neues Image" #define STR_CONFIG "Optionen" -#define STR_SPECIFY_DIM "Abmessungen des Hauptfensters einstellen" +#define STR_SPECIFY_DIM "Fenstergröße einstellen" #define STR_OK "OK" #define STR_CANCEL "Abbrechen" @@ -290,7 +290,7 @@ END #define STR_HEIGHT "Höhe:" #define STR_LOCK_TO_SIZE "Feste Größe" -#define STR_MACHINE_TYPE "Maschinentyp:" +#define STR_MACHINE_TYPE "Systemtyp:" #define STR_MACHINE "Maschine:" #define STR_CONFIGURE "Einstellen" #define STR_CPU_TYPE "CPU-Typ:" @@ -412,7 +412,7 @@ BEGIN IDS_2060 "An" IDS_2061 "Aus" IDS_2062 "Alle Images (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Basissektorimages (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Oberflächenimages (*.86F)\0*.86F\0" - IDS_2063 "Die Maschine ""%hs"" ist aufgrund von fehlenden ROMs im Verzeichnis roms/machines nicht verfügbar. Es wird auf eine verfügbare Maschine gewechselt." + IDS_2063 "Das System ""%hs"" ist aufgrund von fehlenden ROMs im Verzeichnis roms/machines nicht verfügbar. Es wird auf ein verfügbares System gewechselt." END STRINGTABLE DISCARDABLE From f83d386d35622a1d2ba44e3cc5d73c286dd700f2 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Thu, 6 Jan 2022 20:35:01 +0600 Subject: [PATCH 09/11] Change MO vendor length to 9 Makes sure the string doesn't overflow its field into other fields --- src/include/86box/mo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/include/86box/mo.h b/src/include/86box/mo.h index e99d5e381..caf5f2417 100644 --- a/src/include/86box/mo.h +++ b/src/include/86box/mo.h @@ -51,7 +51,7 @@ static const mo_type_t mo_types[KNOWN_MO_TYPES] = { typedef struct { - const char vendor[8]; + const char vendor[9]; const char model[16]; const char revision[5]; int8_t supported_media[KNOWN_MO_TYPES]; From 2da187c0bd9e0eb7c5f98222032bfee88527b699 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Fri, 7 Jan 2022 14:58:59 +0600 Subject: [PATCH 10/11] Fix plat_mmap on FreeBSD (#1980) * Fix plat_mmap on FreeBSD * Same for old codegen backend * ...and for new codegen backend --- src/codegen/codegen_x86-64.c | 2 +- src/codegen_new/codegen_allocator.c | 4 ++-- src/unix/unix.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/codegen/codegen_x86-64.c b/src/codegen/codegen_x86-64.c index 289411b37..ff1e1c682 100644 --- a/src/codegen/codegen_x86-64.c +++ b/src/codegen/codegen_x86-64.c @@ -67,7 +67,7 @@ void codegen_init() #if _WIN64 codeblock = VirtualAlloc(NULL, BLOCK_SIZE * sizeof(codeblock_t), MEM_COMMIT, PAGE_EXECUTE_READWRITE); #elif defined(__unix__) || defined(__APPLE__) - codeblock = mmap(NULL, BLOCK_SIZE * sizeof(codeblock_t), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, 0, 0); + 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 diff --git a/src/codegen_new/codegen_allocator.c b/src/codegen_new/codegen_allocator.c index ad07afd73..7b8b04323 100644 --- a/src/codegen_new/codegen_allocator.c +++ b/src/codegen_new/codegen_allocator.c @@ -39,9 +39,9 @@ void codegen_allocator_init() /* 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, 0, 0); + 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, 0, 0); + mem_block_alloc = mmap(0, MEM_BLOCK_NR * MEM_BLOCK_SIZE, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_PRIVATE, -1, 0); #endif for (c = 0; c < MEM_BLOCK_NR; c++) diff --git a/src/unix/unix.c b/src/unix/unix.c index d7db5cbef..f707757fb 100644 --- a/src/unix/unix.c +++ b/src/unix/unix.c @@ -374,9 +374,9 @@ void * 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), 0, 0); + void *ret = mmap(0, size, PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0), MAP_ANON | MAP_PRIVATE | (executable ? MAP_JIT : 0), -1, 0); #else - void *ret = mmap(0, size, PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0), MAP_ANON | MAP_PRIVATE, 0, 0); + void *ret = mmap(0, size, PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0), MAP_ANON | MAP_PRIVATE, -1, 0); #endif return (ret < 0) ? NULL : ret; } From e9332cf67067ffab07db5814bb4ceee044310275 Mon Sep 17 00:00:00 2001 From: ts-korhonen Date: Fri, 7 Jan 2022 08:18:15 +0200 Subject: [PATCH 11/11] Fixes for midi input - Fix buffer overflow in midi input messages - Detect sysex messages by starting byte instead of length --- src/include/86box/midi.h | 8 ++++---- src/include/86box/snd_mpu401.h | 2 +- src/include/86box/snd_sb_dsp.h | 2 +- src/sound/midi.c | 6 +++--- src/sound/midi_rtmidi.cpp | 6 +++--- src/sound/snd_gus.c | 4 ++-- src/sound/snd_mpu401.c | 4 ++-- src/sound/snd_sb_dsp.c | 8 ++++---- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/include/86box/midi.h b/src/include/86box/midi.h index e80fe79d6..155965b5a 100644 --- a/src/include/86box/midi.h +++ b/src/include/86box/midi.h @@ -10,7 +10,7 @@ extern uint8_t MIDI_evt_len[256]; extern int midi_device_current; extern int midi_input_device_current; -extern void (*input_msg)(void *p, uint8_t *msg); +extern void (*input_msg)(void *p, uint8_t *msg, uint32_t len); extern int (*input_sysex)(void *p, uint8_t *buf, uint32_t len, int abort); extern void *midi_in_p; @@ -44,7 +44,7 @@ typedef struct midi_in_handler_t int cnt; uint32_t len; - void (*msg)(void *p, uint8_t *msg); + void (*msg)(void *p, uint8_t *msg, uint32_t len); int (*sysex)(void *p, uint8_t *buffer, uint32_t len, int abort); struct midi_in_handler_t *p; struct midi_in_handler_t *prev, *next; @@ -73,9 +73,9 @@ extern void midi_raw_out_byte(uint8_t val); extern void midi_clear_buffer(void); extern void midi_poll(); -extern void midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg), int (*sysex)(void *p, uint8_t *buffer, uint32_t len, int abort), void *p); +extern void midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg, uint32_t len), int (*sysex)(void *p, uint8_t *buffer, uint32_t len, int abort), void *p); extern void midi_in_handlers_clear(void); -extern void midi_in_msg(uint8_t *msg); +extern void midi_in_msg(uint8_t *msg, uint32_t len); extern void midi_in_sysex(uint8_t *buffer, uint32_t len); #if 0 diff --git a/src/include/86box/snd_mpu401.h b/src/include/86box/snd_mpu401.h index 75eeb8261..93df18a80 100644 --- a/src/include/86box/snd_mpu401.h +++ b/src/include/86box/snd_mpu401.h @@ -159,4 +159,4 @@ extern void mpu401_device_add(void); extern void mpu401_irq_attach(mpu_t *mpu, void (*ext_irq_update)(void *priv, int set), int (*ext_irq_pending)(void *priv), void *priv); extern int MPU401_InputSysex(void *p, uint8_t *buffer, uint32_t len, int abort); -extern void MPU401_InputMsg(void *p, uint8_t *msg); +extern void MPU401_InputMsg(void *p, uint8_t *msg, uint32_t len); diff --git a/src/include/86box/snd_sb_dsp.h b/src/include/86box/snd_sb_dsp.h index 2e6e7eb8f..067e05b3e 100644 --- a/src/include/86box/snd_sb_dsp.h +++ b/src/include/86box/snd_sb_dsp.h @@ -102,7 +102,7 @@ typedef struct sb_dsp_t } sb_dsp_t; -void sb_dsp_input_msg(void *p, uint8_t *msg); +void sb_dsp_input_msg(void *p, uint8_t *msg, uint32_t len); int sb_dsp_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort); diff --git a/src/sound/midi.c b/src/sound/midi.c index 8a195e2f9..b09e75e78 100644 --- a/src/sound/midi.c +++ b/src/sound/midi.c @@ -396,7 +396,7 @@ midi_clear_buffer(void) void -midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg), int (*sysex)(void *p, uint8_t *buffer, uint32_t len, int abort), void *p) +midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg, uint32_t len), int (*sysex)(void *p, uint8_t *buffer, uint32_t len, int abort), void *p) { midi_in_handler_t *temp = NULL, *next; @@ -479,7 +479,7 @@ midi_in_handlers_clear(void) void -midi_in_msg(uint8_t *msg) +midi_in_msg(uint8_t *msg, uint32_t len) { midi_in_handler_t *temp = mih_first; @@ -488,7 +488,7 @@ midi_in_msg(uint8_t *msg) break; if (temp->msg) - temp->msg(temp->p, msg); + temp->msg(temp->p, msg, len); temp = temp->next; diff --git a/src/sound/midi_rtmidi.cpp b/src/sound/midi_rtmidi.cpp index 50246cac8..b6df5c48b 100644 --- a/src/sound/midi_rtmidi.cpp +++ b/src/sound/midi_rtmidi.cpp @@ -145,10 +145,10 @@ rtmidi_get_dev_name(int num, char *s) void rtmidi_input_callback(double timeStamp, std::vector *message, void *userData) { - if (message->size() <= 3) - midi_in_msg(message->data()); + if (message->front() == 0xF0) + midi_in_sysex(message->data(), message->size()); else - midi_in_sysex(message->data(), message->size()); + midi_in_msg(message->data(), message->size()); } diff --git a/src/sound/snd_gus.c b/src/sound/snd_gus.c index 003b93b58..afe19bc2a 100644 --- a/src/sound/snd_gus.c +++ b/src/sound/snd_gus.c @@ -1125,7 +1125,7 @@ static void gus_get_buffer(int32_t *buffer, int len, void *p) gus->pos = 0; } -static void gus_input_msg(void *p, uint8_t *msg) +static void gus_input_msg(void *p, uint8_t *msg, uint32_t len) { gus_t *gus = (gus_t *)p; uint8_t i; @@ -1136,7 +1136,7 @@ static void gus_input_msg(void *p, uint8_t *msg) if (gus->uart_in) { gus->midi_status |= MIDI_INT_RECEIVE; - for (i=0;imidi_queue[gus->midi_w++] = msg[i]; gus->midi_w &= 63; } diff --git a/src/sound/snd_mpu401.c b/src/sound/snd_mpu401.c index d79776fb8..1002e72f5 100644 --- a/src/sound/snd_mpu401.c +++ b/src/sound/snd_mpu401.c @@ -1422,12 +1422,12 @@ MPU401_InputSysex(void *p, uint8_t *buffer, uint32_t len, int abort) /*Input handler for MIDI*/ void -MPU401_InputMsg(void *p, uint8_t *msg) +MPU401_InputMsg(void *p, uint8_t *msg, uint32_t len) { mpu_t *mpu = (mpu_t *)p; int i, tick; static uint8_t old_msg = 0; - uint8_t len = msg[3], key; + uint8_t key; uint8_t recdata[2], recmsg[4]; int send = 1, send_thru = 0; int retrigger_thru = 0, chan, chrefnum; diff --git a/src/sound/snd_sb_dsp.c b/src/sound/snd_sb_dsp.c index d41467bb5..001d0e94f 100644 --- a/src/sound/snd_sb_dsp.c +++ b/src/sound/snd_sb_dsp.c @@ -1036,15 +1036,15 @@ sb_read(uint16_t a, void *priv) void -sb_dsp_input_msg(void *p, uint8_t *msg) +sb_dsp_input_msg(void *p, uint8_t *msg, uint32_t len) { sb_dsp_t *dsp = (sb_dsp_t *) p; - uint8_t len = msg[3], i = 0; + uint8_t i = 0; - sb_dsp_log("MIDI in sysex = %d, uart irq = %d, msg = %d\n", dsp->midi_in_sysex, dsp->uart_irq, msg[3]); + sb_dsp_log("MIDI in sysex = %d, uart irq = %d, msg = %d\n", dsp->midi_in_sysex, dsp->uart_irq, len); if (!dsp->uart_irq && !dsp->midi_in_poll && (dsp->mpu != NULL)) { - MPU401_InputMsg(dsp->mpu, msg); + MPU401_InputMsg(dsp->mpu, msg, len); return; }