From f9e33d81bc3c47ec5cd3db92a574c6cc20544a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D0=BC=D0=B8=D0=B4=D0=B7=D0=B5?= <117635969+kzmidze@users.noreply.github.com> Date: Mon, 14 Nov 2022 16:19:40 +0800 Subject: [PATCH 1/7] Update zh-TW.rc --- src/win/languages/zh-TW.rc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/win/languages/zh-TW.rc b/src/win/languages/zh-TW.rc index 636f02ada..e06f8525c 100644 --- a/src/win/languages/zh-TW.rc +++ b/src/win/languages/zh-TW.rc @@ -15,7 +15,7 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL MainMenu MENU DISCARDABLE BEGIN - POPUP "操作(&A)" + POPUP "動作(&A)" BEGIN MENUITEM "鍵盤需要捕捉(&K)", IDM_ACTION_KBD_REQ_CAPTURE MENUITEM "將右 CTRL 鍵映射為左 ALT 鍵(&R)", IDM_ACTION_RCTRL_IS_LALT @@ -351,7 +351,7 @@ END #define STR_CHECKBPB "檢查 BPB" #define STR_CDROM_DRIVES "光碟機:" #define STR_CD_SPEED "速度:" -#define STR_EARLY "早先的驅動器" +#define STR_EARLY "早先的光碟機" #define STR_MO_DRIVES "磁光碟機:" #define STR_ZIP_DRIVES "ZIP 磁碟機:" @@ -521,7 +521,7 @@ BEGIN IDS_2159 "硬重設" IDS_2160 "ACPI 關機" IDS_2161 "設定" - IDS_2162 "早先的驅動器" + IDS_2162 "早先的光碟機" END STRINGTABLE DISCARDABLE From d7c6ea909ba8bfb61a683dde7dbcdc08536df8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D0=BC=D0=B8=D0=B4=D0=B7=D0=B5?= <117635969+kzmidze@users.noreply.github.com> Date: Mon, 14 Nov 2022 16:24:08 +0800 Subject: [PATCH 2/7] Update zh-TW.po --- src/qt/languages/zh-TW.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index e21babbe8..587db5e0c 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -1,5 +1,5 @@ msgid "&Action" -msgstr "操作(&A)" +msgstr "動作(&A)" msgid "&Keyboard requires capture" msgstr "鍵盤需要捕捉(&K)" @@ -584,7 +584,7 @@ msgid "CD-ROM drives:" msgstr "光碟機:" msgid "Earlier drive" -msgstr "早先的驅動器" +msgstr "早先的光碟機" msgid "MO drives:" msgstr "磁光碟機:" From 31a1cebed863786c8fc9d9f3956b9cd80a471b78 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Mon, 14 Nov 2022 15:19:01 +0600 Subject: [PATCH 3/7] Add proper AcerMagic S20 emulation --- src/sound/snd_azt2316a.c | 539 ++++++++++++++++++++++++++------------- 1 file changed, 367 insertions(+), 172 deletions(-) diff --git a/src/sound/snd_azt2316a.c b/src/sound/snd_azt2316a.c index bb497e3f2..238738a81 100644 --- a/src/sound/snd_azt2316a.c +++ b/src/sound/snd_azt2316a.c @@ -147,6 +147,7 @@ #include <86box/nvr.h> #include <86box/pic.h> #include <86box/sound.h> +#include <86box/gameport.h> #include <86box/snd_ad1848.h> #include <86box/snd_azt2316a.h> #include <86box/snd_sb.h> @@ -170,14 +171,15 @@ typedef struct azt2316a_t { int type; int wss_interrupt_after_config; - uint8_t wss_config; + uint8_t wss_config, opti, opti_reg_enabled; uint16_t cur_addr, cur_wss_addr, cur_mpu401_addr; - int cur_irq, cur_dma; - int cur_wss_enabled, cur_wss_irq, cur_wss_dma; - int cur_mpu401_irq; - int cur_mpu401_enabled; + int cur_irq, cur_dma; + int cur_wss_enabled, cur_wss_irq, cur_wss_dma; + int cur_mpu401_irq; + int cur_mpu401_enabled; + void *gameport; uint32_t config_word; uint32_t config_word_unlocked; @@ -187,7 +189,8 @@ typedef struct azt2316a_t { ad1848_t ad1848; mpu_t *mpu; - sb_t *sb; + sb_t *sb; + uint8_t opti_regs[6]; } azt2316a_t; static uint8_t @@ -199,7 +202,7 @@ azt2316a_wss_read(uint16_t addr, void *p) /* TODO: when windows is initializing, writing 0x48, 0x58 and 0x60 to 0x530 makes reading from 0x533 return 0x44, but writing 0x50 makes this return 0x04. Why? */ - if (addr & 1) + if ((addr & 1) || (azt2316a->opti)) temp = 4 | (azt2316a->wss_config & 0x40); else temp = 4 | (azt2316a->wss_config & 0xC0); @@ -868,6 +871,9 @@ azt2316a_get_buffer(int32_t *buffer, int len, void *p) azt2316a_t *azt2316a = (azt2316a_t *) p; int c; + if (azt2316a->opti && azt2316a->opti_regs[3] & 0x4) + return; + /* wss part */ ad1848_update(&azt2316a->ad1848); for (c = 0; c < len * 2; c++) @@ -879,6 +885,219 @@ azt2316a_get_buffer(int32_t *buffer, int len, void *p) sb_get_buffer_sbpro(buffer, len, azt2316a->sb); } +static void +optimc_remove_opl(azt2316a_t *azt2316a) +{ + io_removehandler(azt2316a->cur_addr + 0, 0x0004, azt2316a->sb->opl.read, NULL, NULL, azt2316a->sb->opl.write, NULL, NULL, azt2316a->sb->opl.priv); + io_removehandler(azt2316a->cur_addr + 8, 0x0002, azt2316a->sb->opl.read, NULL, NULL, azt2316a->sb->opl.write, NULL, NULL, azt2316a->sb->opl.priv); + io_removehandler(0x0388, 0x0004, azt2316a->sb->opl.read, NULL, NULL, azt2316a->sb->opl.write, NULL, NULL, azt2316a->sb->opl.priv); +} + +static void +optimc_add_opl(azt2316a_t *azt2316a) +{ + if (!(azt2316a->opti_regs[3] & 0x8) && (azt2316a->opti_regs[1] & 0x20)) { + fm_driver_get(FM_YMF289B, &azt2316a->sb->opl); + } else { + fm_driver_get((azt2316a->opti_regs[3] & 0x8) ? FM_YM3812 : FM_YMF262, &azt2316a->sb->opl); + } + + /* DSP I/O handler is activated in sb_dsp_setaddr */ + io_sethandler(azt2316a->cur_addr + 0, 0x0004, azt2316a->sb->opl.read, NULL, NULL, azt2316a->sb->opl.write, NULL, NULL, azt2316a->sb->opl.priv); + io_sethandler(azt2316a->cur_addr + 8, 0x0002, azt2316a->sb->opl.read, NULL, NULL, azt2316a->sb->opl.write, NULL, NULL, azt2316a->sb->opl.priv); + io_sethandler(0x0388, 0x0004, azt2316a->sb->opl.read, NULL, NULL, azt2316a->sb->opl.write, NULL, NULL, azt2316a->sb->opl.priv); +} + +static void +optimc_reload_opl(azt2316a_t *azt2316a) +{ + optimc_remove_opl(azt2316a); + optimc_add_opl(azt2316a); +} + +static void +optimc_reg_write(uint16_t addr, uint8_t val, void *p) +{ + azt2316a_t *azt2316a = (azt2316a_t *) p; + uint16_t idx = addr - 0xF8D; + uint8_t old = azt2316a->opti_regs[idx]; + static uint8_t reg_enable_phase = 0; + + if (azt2316a->opti_reg_enabled) { + switch (idx) { + case 0: /* MC1 */ + { + azt2316a->opti_regs[0] = val; + if (val != old) { + azt2316a->cur_mode = azt2316a->cur_wss_enabled = !!(val & 0x80); + io_removehandler(azt2316a->cur_wss_addr, 0x0004, azt2316a_wss_read, NULL, NULL, azt2316a_wss_write, NULL, NULL, azt2316a); + io_removehandler(azt2316a->cur_wss_addr + 0x0004, 0x0004, ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &azt2316a->ad1848); + switch ((val >> 4) & 0x3) { + case 0: /* WSBase = 0x530 */ + { + azt2316a->cur_wss_addr = 0x530; + break; + } + case 1: /* WSBase = 0xE80 */ + { + azt2316a->cur_wss_addr = 0xE80; + break; + } + case 2: /* WSBase = 0xF40 */ + { + azt2316a->cur_wss_addr = 0xF40; + break; + } + case 3: /* WSBase = 0x604 */ + { + azt2316a->cur_wss_addr = 0x604; + break; + } + } + io_sethandler(azt2316a->cur_wss_addr, 0x0004, azt2316a_wss_read, NULL, NULL, azt2316a_wss_write, NULL, NULL, azt2316a); + io_sethandler(azt2316a->cur_wss_addr + 0x0004, 0x0004, ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &azt2316a->ad1848); + + gameport_remap(azt2316a->gameport, (azt2316a->opti_regs[0] & 0x1) ? 0x00 : 0x200); + } + break; + } + case 1: /* MC2 */ + azt2316a->opti_regs[1] = val; + if (old != val) + optimc_reload_opl(azt2316a); + break; + case 2: /* MC3 */ + if (val == 0xE3) { + reg_enable_phase = 1; + break; + } + azt2316a->opti_regs[2] = val; + if (old != val) { + optimc_remove_opl(azt2316a); + azt2316a->cur_addr = (val & 0x4) ? 0x240 : 0x220; + switch ((val >> 4) & 0x3) { + case 0: + azt2316a->cur_dma = 1; + break; + case 1: + azt2316a->cur_dma = 0; + break; + case 2: + default: + azt2316a->cur_dma = 3; + break; + } + switch ((val >> 6) & 0x3) { + case 0: + azt2316a->cur_irq = 7; + break; + case 1: + azt2316a->cur_irq = 10; + break; + case 2: + default: + azt2316a->cur_irq = 5; + break; + } + sb_dsp_setaddr(&azt2316a->sb->dsp, azt2316a->cur_addr); + sb_dsp_setirq(&azt2316a->sb->dsp, azt2316a->cur_irq); + sb_dsp_setdma8(&azt2316a->sb->dsp, azt2316a->cur_dma); + optimc_add_opl(azt2316a); + } + break; + case 3: /* MC4 */ + azt2316a->opti_regs[3] = val; + if ((old & 0x8) != (val & 0x8)) + optimc_reload_opl(azt2316a); + break; + case 4: /* MC5 */ + azt2316a->opti_regs[4] = val; + break; + case 5: /* MC6 */ + azt2316a->opti_regs[5] = val; + if (old != val) { + switch ((val >> 3) & 0x3) { + case 0: + azt2316a->cur_mpu401_irq = 9; + break; + case 1: + azt2316a->cur_mpu401_irq = 10; + break; + case 2: + azt2316a->cur_mpu401_irq = 5; + break; + case 3: + azt2316a->cur_mpu401_irq = 7; + break; + } + switch ((val >> 5) & 0x3) { + case 0: + azt2316a->cur_mpu401_addr = 0x330; + break; + case 1: + azt2316a->cur_mpu401_addr = 0x320; + break; + case 2: + azt2316a->cur_mpu401_addr = 0x310; + break; + case 3: + azt2316a->cur_mpu401_addr = 0x300; + break; + } + mpu401_change_addr(azt2316a->mpu, azt2316a->cur_mpu401_addr); + mpu401_setirq(azt2316a->mpu, azt2316a->cur_mpu401_irq); + } + break; + } + } + if (addr == 0xF8F && (val == 0xE3 || val == 0x00)) { + if (reg_enable_phase) { + switch (reg_enable_phase) { + case 1: + if (val == 0xE3) { + reg_enable_phase++; + } + break; + case 2: + if (val == 0x00) { + reg_enable_phase++; + } + break; + case 3: + if (val == 0xE3) { + azt2316a->opti_reg_enabled = 1; + azt2316a->opti_regs[2] = 0x2; + break; + } + break; + } + } else + reg_enable_phase = 1; + return; + } +} + +static uint8_t +optimc_reg_read(uint16_t addr, void *p) +{ + azt2316a_t *azt2316a = (azt2316a_t *) p; + + if (azt2316a->opti_reg_enabled) { + switch (addr - 0xF8D) { + case 0: /* MC1 */ + case 1: /* MC2 */ + case 3: /* MC4 */ + case 4: /* MC5 */ + return azt2316a->opti_regs[addr - 0xF8D]; + case 5: /* MC6 (not readable) */ + return 0xFF; + case 2: /* MC3 */ + return (azt2316a->opti_regs[2] & ~0x3) | 0x2; + } + } + return 0xFF; +} + static void * azt_init(const device_t *info) { @@ -892,6 +1111,7 @@ azt_init(const device_t *info) memset(azt2316a, 0, sizeof(azt2316a_t)); azt2316a->type = info->local & 0x7fffffff; + azt2316a->opti = !!(info->local & 0x80000000); if (azt2316a->type == SB_SUBTYPE_CLONE_AZT1605_0X0C) { fn = "azt1605.nvr"; @@ -902,24 +1122,26 @@ azt_init(const device_t *info) fn = "azt2316a.nvr"; } - /* config */ - f = nvr_fopen(fn, "rb"); - if (f) { - uint8_t checksum = 0x7f; - uint8_t saved_checksum; - size_t res; + /* config (not saved for AcerMagic S20). */ + if (!azt2316a->opti) { + f = nvr_fopen(fn, "rb"); + if (f) { + uint8_t checksum = 0x7f; + uint8_t saved_checksum; + size_t res; - res = fread(read_eeprom, AZTECH_EEPROM_SIZE, 1, f); - for (i = 0; i < AZTECH_EEPROM_SIZE; i++) - checksum += read_eeprom[i]; + res = fread(read_eeprom, AZTECH_EEPROM_SIZE, 1, f); + for (i = 0; i < AZTECH_EEPROM_SIZE; i++) + checksum += read_eeprom[i]; - res = fread(&saved_checksum, sizeof(saved_checksum), 1, f); - (void) res; + res = fread(&saved_checksum, sizeof(saved_checksum), 1, f); + (void) res; - fclose(f); + fclose(f); - if (checksum == saved_checksum) - loaded_from_eeprom = 1; + if (checksum == saved_checksum) + loaded_from_eeprom = 1; + } } if (!loaded_from_eeprom) { @@ -961,93 +1183,117 @@ azt_init(const device_t *info) } if (azt2316a->type == SB_SUBTYPE_CLONE_AZT2316A_0X11) { - azt2316a->config_word = read_eeprom[11] | (read_eeprom[12] << 8) | (read_eeprom[13] << 16) | (read_eeprom[14] << 24); - - switch (azt2316a->config_word & (3 << 0)) { - case 0: - azt2316a->cur_addr = 0x220; - break; - case 1: - azt2316a->cur_addr = 0x240; - break; - default: - fatal("AZT2316A: invalid sb addr in config word %08X\n", azt2316a->config_word); - } - - if (azt2316a->config_word & (1 << 2)) - azt2316a->cur_irq = 9; - else if (azt2316a->config_word & (1 << 3)) - azt2316a->cur_irq = 5; - else if (azt2316a->config_word & (1 << 4)) - azt2316a->cur_irq = 7; - else if (azt2316a->config_word & (1 << 5)) - azt2316a->cur_irq = 10; - else - fatal("AZT2316A: invalid sb irq in config word %08X\n", azt2316a->config_word); - - if (info->local & 0x80000000) - azt2316a->cur_dma = 1; - else switch (azt2316a->config_word & (3 << 6)) { - case 1 << 6: - azt2316a->cur_dma = 0; - break; - case 2 << 6: - azt2316a->cur_dma = 1; - break; - case 3 << 6: - azt2316a->cur_dma = 3; - break; - default: - fatal("AZT2316A: invalid sb dma in config word %08X\n", azt2316a->config_word); - } - - switch (azt2316a->config_word & (3 << 8)) { - case 0: - azt2316a->cur_wss_addr = 0x530; - break; - case 1 << 8: - azt2316a->cur_wss_addr = 0x604; - break; - case 2 << 8: - azt2316a->cur_wss_addr = 0xE80; - break; - case 3 << 8: - azt2316a->cur_wss_addr = 0xF40; - break; - default: - fatal("AZT2316A: invalid wss addr in config word %08X\n", azt2316a->config_word); - } - - if (azt2316a->config_word & (1 << 10)) - azt2316a->cur_wss_enabled = 1; - else - azt2316a->cur_wss_enabled = 0; - - if (azt2316a->config_word & (1 << 12)) - azt2316a->cur_mpu401_addr = 0x330; - else - azt2316a->cur_mpu401_addr = 0x300; - - if (azt2316a->config_word & (1 << 13)) + if (azt2316a->opti) { + /* OPTi 82C929 has no EEPROM interface. */ + azt2316a->cur_wss_addr = 0x530; + azt2316a->cur_mode = 0; + azt2316a->cur_addr = 0x220; + azt2316a->cur_irq = 7; + azt2316a->cur_wss_enabled = 0; + azt2316a->cur_dma = 1; + azt2316a->cur_mpu401_irq = 9; + azt2316a->cur_mpu401_addr = 0x330; azt2316a->cur_mpu401_enabled = 1; - else - azt2316a->cur_mpu401_enabled = 0; - if (azt2316a->config_word & (1 << 24)) - azt2316a->cur_mpu401_irq = 9; - else if (azt2316a->config_word & (1 << 25)) - azt2316a->cur_mpu401_irq = 5; - else if (azt2316a->config_word & (1 << 26)) - azt2316a->cur_mpu401_irq = 7; - else if (azt2316a->config_word & (1 << 27)) - azt2316a->cur_mpu401_irq = 10; - else - fatal("AZT2316A: invalid mpu401 irq in config word %08X\n", azt2316a->config_word); + azt2316a->opti_regs[0] = ((device_get_config_int("gameport")) ? 0x01 : 0x00); + azt2316a->opti_regs[1] = 0x03; + azt2316a->opti_regs[2] = 0x00; + azt2316a->opti_regs[3] = 0x00; + azt2316a->opti_regs[4] = 0x2F; + azt2316a->opti_regs[5] = 0x83; - /* these are not present on the EEPROM */ - azt2316a->cur_wss_irq = device_get_config_int("wss_irq"); - azt2316a->cur_wss_dma = device_get_config_int("wss_dma"); - azt2316a->cur_mode = 0; + azt2316a->gameport = gameport_add(&gameport_device); + gameport_remap(azt2316a->gameport, (azt2316a->opti_regs[0] & 0x1) ? 0x00 : 0x200); + } else { + azt2316a->config_word = read_eeprom[11] | (read_eeprom[12] << 8) | (read_eeprom[13] << 16) | (read_eeprom[14] << 24); + + switch (azt2316a->config_word & (3 << 0)) { + case 0: + azt2316a->cur_addr = 0x220; + break; + case 1: + azt2316a->cur_addr = 0x240; + break; + default: + fatal("AZT2316A: invalid sb addr in config word %08X\n", azt2316a->config_word); + } + + if (azt2316a->config_word & (1 << 2)) + azt2316a->cur_irq = 9; + else if (azt2316a->config_word & (1 << 3)) + azt2316a->cur_irq = 5; + else if (azt2316a->config_word & (1 << 4)) + azt2316a->cur_irq = 7; + else if (azt2316a->config_word & (1 << 5)) + azt2316a->cur_irq = 10; + else + fatal("AZT2316A: invalid sb irq in config word %08X\n", azt2316a->config_word); + + if (info->local & 0x80000000) + azt2316a->cur_dma = 1; + else + switch (azt2316a->config_word & (3 << 6)) { + case 1 << 6: + azt2316a->cur_dma = 0; + break; + case 2 << 6: + azt2316a->cur_dma = 1; + break; + case 3 << 6: + azt2316a->cur_dma = 3; + break; + default: + fatal("AZT2316A: invalid sb dma in config word %08X\n", azt2316a->config_word); + } + + switch (azt2316a->config_word & (3 << 8)) { + case 0: + azt2316a->cur_wss_addr = 0x530; + break; + case 1 << 8: + azt2316a->cur_wss_addr = 0x604; + break; + case 2 << 8: + azt2316a->cur_wss_addr = 0xE80; + break; + case 3 << 8: + azt2316a->cur_wss_addr = 0xF40; + break; + default: + fatal("AZT2316A: invalid wss addr in config word %08X\n", azt2316a->config_word); + } + + if (azt2316a->config_word & (1 << 10)) + azt2316a->cur_wss_enabled = 1; + else + azt2316a->cur_wss_enabled = 0; + + if (azt2316a->config_word & (1 << 12)) + azt2316a->cur_mpu401_addr = 0x330; + else + azt2316a->cur_mpu401_addr = 0x300; + + if (azt2316a->config_word & (1 << 13)) + azt2316a->cur_mpu401_enabled = 1; + else + azt2316a->cur_mpu401_enabled = 0; + + if (azt2316a->config_word & (1 << 24)) + azt2316a->cur_mpu401_irq = 9; + else if (azt2316a->config_word & (1 << 25)) + azt2316a->cur_mpu401_irq = 5; + else if (azt2316a->config_word & (1 << 26)) + azt2316a->cur_mpu401_irq = 7; + else if (azt2316a->config_word & (1 << 27)) + azt2316a->cur_mpu401_irq = 10; + else + fatal("AZT2316A: invalid mpu401 irq in config word %08X\n", azt2316a->config_word); + + /* these are not present on the EEPROM */ + azt2316a->cur_wss_irq = device_get_config_int("wss_irq"); + azt2316a->cur_wss_dma = device_get_config_int("wss_dma"); + azt2316a->cur_mode = 0; + } } else if (azt2316a->type == SB_SUBTYPE_CLONE_AZT1605_0X0C) { azt2316a->config_word = read_eeprom[12] + (read_eeprom[13] << 8) + (read_eeprom[14] << 16); @@ -1118,19 +1364,19 @@ azt_init(const device_t *info) // these are not present on the EEPROM if (info->local & 0x80000000) - azt2316a->cur_dma = 1; + azt2316a->cur_dma = 1; else - azt2316a->cur_dma = device_get_config_int("sb_dma8"); // TODO: investigate TSR to make this work with it - there is no software configurable DMA8? + azt2316a->cur_dma = device_get_config_int("sb_dma8"); // TODO: investigate TSR to make this work with it - there is no software configurable DMA8? azt2316a->cur_wss_irq = device_get_config_int("wss_irq"); azt2316a->cur_wss_dma = device_get_config_int("wss_dma"); azt2316a->cur_mode = 0; } - addr_setting = device_get_config_hex16("addr"); + addr_setting = (azt2316a->opti) ? 0 : device_get_config_hex16("addr"); if (addr_setting) azt2316a->cur_addr = addr_setting; - azt2316a->wss_interrupt_after_config = device_get_config_int("wss_interrupt_after_config"); + azt2316a->wss_interrupt_after_config = (!!(azt2316a->opti)) ? 0 : device_get_config_int("wss_interrupt_after_config"); /* wss part */ if (info->local & 0x80000000) @@ -1141,7 +1387,11 @@ azt_init(const device_t *info) ad1848_setirq(&azt2316a->ad1848, azt2316a->cur_wss_irq); ad1848_setdma(&azt2316a->ad1848, azt2316a->cur_wss_dma); - io_sethandler(azt2316a->cur_addr + 0x0400, 0x0040, azt2316a_config_read, NULL, NULL, azt2316a_config_write, NULL, NULL, azt2316a); + if (!azt2316a->opti) { + io_sethandler(azt2316a->cur_addr + 0x0400, 0x0040, azt2316a_config_read, NULL, NULL, azt2316a_config_write, NULL, NULL, azt2316a); + } else { + io_sethandler(0xF8D, 6, optimc_reg_read, NULL, NULL, optimc_reg_write, NULL, NULL, azt2316a); + } io_sethandler(azt2316a->cur_wss_addr, 0x0004, azt2316a_wss_read, NULL, NULL, azt2316a_wss_write, NULL, NULL, azt2316a); io_sethandler(azt2316a->cur_wss_addr + 0x0004, 0x0004, ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &azt2316a->ad1848); @@ -1154,19 +1404,20 @@ azt_init(const device_t *info) azt2316a->sb = malloc(sizeof(sb_t)); memset(azt2316a->sb, 0, sizeof(sb_t)); - azt2316a->sb->opl_enabled = device_get_config_int("opl"); + azt2316a->sb->opl_enabled = (azt2316a->opti) ? 1 : device_get_config_int("opl"); for (i = 0; i < AZTECH_EEPROM_SIZE; i++) azt2316a->sb->dsp.azt_eeprom[i] = read_eeprom[i]; - if (azt2316a->sb->opl_enabled) - fm_driver_get(FM_YMF262, &azt2316a->sb->opl); - sb_dsp_init(&azt2316a->sb->dsp, SBPRO2, azt2316a->type, azt2316a); sb_dsp_setaddr(&azt2316a->sb->dsp, azt2316a->cur_addr); sb_dsp_setirq(&azt2316a->sb->dsp, azt2316a->cur_irq); sb_dsp_setdma8(&azt2316a->sb->dsp, azt2316a->cur_dma); sb_ct1345_mixer_reset(azt2316a->sb); + + if (azt2316a->sb->opl_enabled) + fm_driver_get(FM_YMF262, &azt2316a->sb->opl); + /* DSP I/O handler is activated in sb_dsp_setaddr */ if (azt2316a->sb->opl_enabled) { io_sethandler(azt2316a->cur_addr + 0, 0x0004, azt2316a->sb->opl.read, NULL, NULL, azt2316a->sb->opl.write, NULL, NULL, azt2316a->sb->opl.priv); @@ -1505,67 +1756,11 @@ static const device_config_t azt2316a_config[] = { static const device_config_t acermagic_s20_config[] = { // clang-format off { - .name = "wss_interrupt_after_config", - .description = "Raise CODEC interrupt on CODEC setup (needed by some drivers)", + .name = "gameport", + .description = "Gameport", .type = CONFIG_BINARY, .default_int = 0 }, - { - .name = "addr", - .description = "SB Address", - .type = CONFIG_HEX16, - .default_string = "", - .default_int = 0, - .file_filter = "", - .spinner = { 0 }, - .selection = { - { - .description = "0x220", - .value = 0x220 - }, - { - .description = "0x240", - .value = 0x240 - }, - { - .description = "Use EEPROM setting", - .value = 0 - }, - { - .description = "" - } - } - }, - { - .name = "wss_irq", - .description = "WSS IRQ", - .type = CONFIG_SELECTION, - .selection = { - { - .description = "IRQ 11", - .value = 11 - }, - { - .description = "IRQ 10", - .value = 10 - }, - { - .description = "IRQ 7", - .value = 7 - }, - { - .description = "" - } - }, - .default_int = 10 - }, - { - .name = "opl", - .description = "Enable OPL", - .type = CONFIG_BINARY, - .default_string = "", - .default_int = 1 - }, { .name = "receive_input", .description = "Receive input (SB MIDI)", From c9a8ce13564cb7cbb3a2e594ed9f4fb0b4c72729 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Mon, 14 Nov 2022 21:11:26 +0600 Subject: [PATCH 4/7] No need to actually save non-existent EEPROM configuration --- src/sound/snd_azt2316a.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/sound/snd_azt2316a.c b/src/sound/snd_azt2316a.c index 238738a81..f68584d6e 100644 --- a/src/sound/snd_azt2316a.c +++ b/src/sound/snd_azt2316a.c @@ -1453,25 +1453,27 @@ azt_close(void *p) uint8_t checksum = 0x7f; int i; - if (azt2316a->type == SB_SUBTYPE_CLONE_AZT1605_0X0C) { - fn = "azt1605.nvr"; - } else if (azt2316a->type == SB_SUBTYPE_CLONE_AZT2316A_0X11) { - fn = "azt2316a.nvr"; - } + if (!azt2316a->opti) { + if (azt2316a->type == SB_SUBTYPE_CLONE_AZT1605_0X0C) { + fn = "azt1605.nvr"; + } else if (azt2316a->type == SB_SUBTYPE_CLONE_AZT2316A_0X11) { + fn = "azt2316a.nvr"; + } - /* always save to eeprom (recover from bad values) */ - f = nvr_fopen(fn, "wb"); - if (f) { - for (i = 0; i < AZTECH_EEPROM_SIZE; i++) - checksum += azt2316a->sb->dsp.azt_eeprom[i]; - fwrite(azt2316a->sb->dsp.azt_eeprom, AZTECH_EEPROM_SIZE, 1, f); + /* always save to eeprom (recover from bad values) */ + f = nvr_fopen(fn, "wb"); + if (f) { + for (i = 0; i < AZTECH_EEPROM_SIZE; i++) + checksum += azt2316a->sb->dsp.azt_eeprom[i]; + fwrite(azt2316a->sb->dsp.azt_eeprom, AZTECH_EEPROM_SIZE, 1, f); - // TODO: confirm any models saving mixer settings to EEPROM and implement reading back - // TODO: should remember to save wss duplex setting if 86Box has voice recording implemented in the future? Also, default azt2316a->wss_config - // TODO: azt2316a->cur_mode is not saved to EEPROM? - fwrite(&checksum, sizeof(checksum), 1, f); + // TODO: confirm any models saving mixer settings to EEPROM and implement reading back + // TODO: should remember to save wss duplex setting if 86Box has voice recording implemented in the future? Also, default azt2316a->wss_config + // TODO: azt2316a->cur_mode is not saved to EEPROM? + fwrite(&checksum, sizeof(checksum), 1, f); - fclose(f); + fclose(f); + } } sb_close(azt2316a->sb); @@ -1633,7 +1635,7 @@ static const device_config_t azt1605_config[] = { }; static const device_config_t azt2316a_config[] = { - // clang-format off +// clang-format off { .name = "codec", .description = "CODEC", @@ -1776,7 +1778,7 @@ static const device_config_t acermagic_s20_config[] = { .default_int = 0 }, { .name = "", .description = "", .type = CONFIG_END } -// clang-format on + // clang-format on }; const device_t azt2316a_device = { From 6a045db126e1e9c64bec138bf72868d7dff453bd Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Tue, 15 Nov 2022 19:45:02 +0600 Subject: [PATCH 5/7] config: Cap memory size to maximum allowed by machine --- src/config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c index 426a01bd5..39826b3b5 100644 --- a/src/config.c +++ b/src/config.c @@ -494,8 +494,8 @@ load_machine(void) mem_size = (((machine_has_bus(machine, MACHINE_AT) && (machines[machine].ram_granularity < 128)) ? machines[machine].min_ram*1024 : machines[machine].min_ram); #endif - if (mem_size > 2097152) - mem_size = 2097152; + if (mem_size > machine_get_max_ram(machine)) + mem_size = machine_get_max_ram(machine); cpu_use_dynarec = !!ini_section_get_int(cat, "cpu_use_dynarec", 0); From 02314268dd66cdebf733b4bbaefb3e73cee6263a Mon Sep 17 00:00:00 2001 From: cold-brewed Date: Tue, 15 Nov 2022 09:03:24 -0500 Subject: [PATCH 6/7] qt: Set the full path of the filename in the new image dialog --- src/qt/qt_harddiskdialog.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/qt_harddiskdialog.cpp b/src/qt/qt_harddiskdialog.cpp index 22459f4fb..c514b9c48 100644 --- a/src/qt/qt_harddiskdialog.cpp +++ b/src/qt/qt_harddiskdialog.cpp @@ -328,6 +328,7 @@ void HarddiskDialog::onCreateNewFile() { } QFileInfo fi(fileName); fileName = (fi.isRelative() && !fi.filePath().isEmpty()) ? usr_path + fi.filePath() : fi.filePath(); + ui->fileField->setFileName(fileName); QFile file(fileName); if (! file.open(QIODevice::WriteOnly)) { From ad8b390782ead9ada95dc1a457f70725c9577f18 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Tue, 15 Nov 2022 12:48:58 -0500 Subject: [PATCH 7/7] Cleanup the MINGW Makefile --- src/win/Makefile.mingw | 962 ++++++++++++++++++++--------------------- 1 file changed, 481 insertions(+), 481 deletions(-) diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index 8802c25c6..e2151a5f7 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -1,56 +1,56 @@ # # -# 86Box A hypervisor and IBM PC system emulator that specializes in -# running old operating systems and software designed for IBM -# PC systems and compatibles from 1981 through fairly recent -# system designs based on the PCI bus. +# 86Box A hypervisor and IBM PC system emulator that specializes in +# running old operating systems and software designed for IBM +# PC systems and compatibles from 1981 through fairly recent +# system designs based on the PCI bus. # -# This file is part of the 86Box distribution. +# This file is part of the 86Box distribution. # -# Makefile for Win32 (MinGW32) environment. +# Makefile for Win32 (MinGW32) environment. # -# Authors: Miran Grca, -# Fred N. van Kempen, +# Authors: Miran Grca, +# Fred N. van Kempen, # # Various compile-time options. ifndef STUFF -STUFF := +STUFF := endif # Add feature selections here. ifndef EXTRAS -EXTRAS := +EXTRAS := endif ifndef DEV_BUILD -DEV_BUILD := n +DEV_BUILD := n endif ifeq ($(DEV_BUILD), y) ifndef DEBUG - DEBUG := y + DEBUG := y endif ifndef GDBSTUB - GDBSTUB := n + GDBSTUB := n endif ifndef DEV_BRANCH - DEV_BRANCH := y + DEV_BRANCH := y endif ifndef AMD_K5 - AMD_K5 := y + AMD_K5 := y endif ifndef AN430TX - AN430TX := y + AN430TX := y endif ifndef CYRIX_6X86 - CYRIX_6X86 := y + CYRIX_6X86 := y endif ifndef DESKPRO386 - DESKPRO386 := y + DESKPRO386 := y endif ifndef GUSMAX - GUSMAX := y + GUSMAX := y endif ifndef ISAMEM_RAMPAGE ISAMEM_RAMPAGE := y @@ -62,56 +62,56 @@ ifeq ($(DEV_BUILD), y) ISAMEM_BRAT := y endif ifndef LASERXT - LASERXT := y + LASERXT := y endif ifndef MGA - MGA := y + MGA := y endif ifndef OLIVETTI - OLIVETTI := y + OLIVETTI := y endif ifndef OPEN_AT - OPEN_AT := y + OPEN_AT := y endif ifndef PAS16 - PAS16 := y + PAS16 := y endif ifndef SIO_DETECT - SIO_DETECT := y + SIO_DETECT := y endif ifndef VGAWONDER - VGAWONDER := y + VGAWONDER := y endif ifndef XL24 - XL24 := y + XL24 := y endif ifndef NEW_KBC - NEW_KBC := n + NEW_KBC := n endif else ifndef DEBUG - DEBUG := n + DEBUG := n endif ifndef GDBSTUB - GDBSTUB := n + GDBSTUB := n endif ifndef DEV_BRANCH - DEV_BRANCH := n + DEV_BRANCH := n endif ifndef AMD_K5 - AMD_K5 := n + AMD_K5 := n endif ifndef AN430TX - AN430TX := n + AN430TX := n endif ifndef CYRIX_6X86 - CYRIX_6X86 := n + CYRIX_6X86 := n endif ifndef DESKPRO386 - DESKPRO386 := n + DESKPRO386 := n endif ifndef GUSMAX - GUSMAX := n + GUSMAX := n endif ifndef ISAMEM_RAMPAGE ISAMEM_RAMPAGE := n @@ -123,46 +123,46 @@ else ISAMEM_BRAT := n endif ifndef LASERXT - LASERXT := n + LASERXT := n endif ifndef MGA - MGA := n + MGA := n endif ifndef OLIVETTI - OLIVETTI := n + OLIVETTI := n endif ifndef OPEN_AT - OPEN_AT := n + OPEN_AT := n endif ifndef PAS16 - PAS16 := n + PAS16 := n endif ifndef SIO_DETECT - SIO_DETECT := n + SIO_DETECT := n endif ifndef VGAWONDER - VGAWONDER := n + VGAWONDER := n endif ifndef XL24 - XL24 := n + XL24 := n endif ifndef NEW_KBC - NEW_KBC := n + NEW_KBC := n endif endif # Defaults for several build options (possibly defined in a chained file.) ifndef AUTODEP -AUTODEP := n +AUTODEP := n endif ifndef OPTIM -OPTIM := n +OPTIM := n endif ifndef RELEASE -RELEASE := n +RELEASE := n endif ifndef X64 -X64 := n +X64 := n endif ifndef ARM ARM := n @@ -171,44 +171,44 @@ ifndef ARM64 ARM64 := n endif ifndef DINPUT - DINPUT := n + DINPUT := n endif ifndef FAUDIO - FAUDIO := n + FAUDIO := n endif ifndef OPENAL - OPENAL := n + OPENAL := n endif ifndef FLUIDSYNTH - FLUIDSYNTH := y + FLUIDSYNTH := y endif ifndef MUNT - MUNT := y + MUNT := y endif ifndef VNC - VNC := n + VNC := n endif ifndef NEW_DYNAREC - NEW_DYNAREC := n + NEW_DYNAREC := n endif ifndef DYNAREC - DYNAREC := y + DYNAREC := y endif ifndef CPPTHREADS - CPPTHREADS := y + CPPTHREADS := y endif ifndef RTMIDI - RTMIDI := y + RTMIDI := y endif ifeq ($(DYNAREC), y) ifeq ($(ARM), y) ifeq ($(NEW_DYNAREC), n) - DYNAREC := n + DYNAREC := n endif endif ifeq ($(ARM64), y) ifeq ($(NEW_DYNAREC), n) - DYNAREC := n + DYNAREC := n endif endif endif @@ -216,630 +216,630 @@ endif # Path to the dynamic recompiler code. ifeq ($(NEW_DYNAREC), y) - CODEGEN := codegen_new + CODEGEN := codegen_new else - CODEGEN := codegen + CODEGEN := codegen endif # Name of the executable. -PROG := 86Box +PROG := 86Box ######################################################################### -# Nothing should need changing from here on.. # +# Nothing should need changing from here on.. # ######################################################################### -VPATH := $(EXPATH) . $(CODEGEN) minitrace cpu \ - cdrom chipset device disk disk/minivhd floppy \ - game machine mem printer \ - sio sound \ - sound/munt sound/munt/c_interface sound/munt/sha1 \ - sound/munt/srchelper sound/munt/srchelper/srctools/src \ - sound/resid-fp sound/ymfm \ - scsi video network network/slirp win +VPATH := $(EXPATH) . $(CODEGEN) minitrace cpu \ + cdrom chipset device disk disk/minivhd floppy \ + game machine mem printer \ + sio sound \ + sound/munt sound/munt/c_interface sound/munt/sha1 \ + sound/munt/srchelper sound/munt/srchelper/srctools/src \ + sound/resid-fp sound/ymfm \ + scsi video network network/slirp win ifeq ($(X64), y) -TOOL_PREFIX := x86_64-w64-mingw32- +TOOL_PREFIX := x86_64-w64-mingw32- else -TOOL_PREFIX := i686-w64-mingw32- +TOOL_PREFIX := i686-w64-mingw32- endif -WINDRES := windres -STRIP := strip +WINDRES := windres +STRIP := strip ifeq ($(ARM64), y) -WINDRES := aarch64-w64-mingw32-windres -STRIP := aarch64-w64-mingw32-strip +WINDRES := aarch64-w64-mingw32-windres +STRIP := aarch64-w64-mingw32-strip endif ifeq ($(ARM), y) -WINDRES := armv7-w64-mingw32-windres -STRIP := armv7-w64-mingw32-strip +WINDRES := armv7-w64-mingw32-windres +STRIP := armv7-w64-mingw32-strip endif ifeq ($(CLANG), y) -CPP := clang++ -CC := clang +CPP := clang++ +CC := clang ifeq ($(ARM64), y) -CPP := aarch64-w64-mingw32-clang++ -CC := aarch64-w64-mingw32-clang +CPP := aarch64-w64-mingw32-clang++ +CC := aarch64-w64-mingw32-clang endif ifeq ($(ARM), y) -CPP := armv7-w64-mingw32-clang++ -CC := armv7-w64-mingw32-clang +CPP := armv7-w64-mingw32-clang++ +CC := armv7-w64-mingw32-clang endif else -CPP := ${TOOL_PREFIX}g++ -CC := ${TOOL_PREFIX}gcc +CPP := ${TOOL_PREFIX}g++ +CC := ${TOOL_PREFIX}gcc ifeq ($(ARM64), y) -CPP := aarch64-w64-mingw32-g++ -CC := aarch64-w64-mingw32-gcc +CPP := aarch64-w64-mingw32-g++ +CC := aarch64-w64-mingw32-gcc endif ifeq ($(ARM), y) -CPP := armv7-w64-mingw32-g++ -CC := armv7-w64-mingw32-gcc +CPP := armv7-w64-mingw32-g++ +CC := armv7-w64-mingw32-gcc endif endif -DEPS = -MMD -MF $*.d -c $< -DEPFILE := win/.depends +DEPS = -MMD -MF $*.d -c $< +DEPFILE := win/.depends # Set up the correct toolchain flags. -OPTS := $(EXTRAS) $(STUFF) -OPTS += -Iinclude -Iinclude_make \ - -iquote $(CODEGEN) -iquote cpu +OPTS := $(EXTRAS) $(STUFF) +OPTS += -Iinclude -Iinclude_make \ + -iquote $(CODEGEN) -iquote cpu ifdef EXFLAGS -OPTS += $(EXFLAGS) +OPTS += $(EXFLAGS) endif ifdef EXINC -OPTS += -I$(EXINC) +OPTS += -I$(EXINC) endif ifeq ($(OPTIM), y) - DFLAGS := -march=native + DFLAGS := -march=native else ifeq ($(X64), y) - DFLAGS := + DFLAGS := else - DFLAGS := -march=i686 + DFLAGS := -march=i686 endif endif ifeq ($(DEBUG), y) - DFLAGS += -ggdb -DDEBUG - AOPTIM := + DFLAGS += -ggdb -DDEBUG + AOPTIM := ifndef COPTIM - COPTIM := -Og + COPTIM := -Og endif else - DFLAGS += -g0 + DFLAGS += -g0 ifeq ($(OPTIM), y) - AOPTIM := -mtune=native + AOPTIM := -mtune=native ifndef COPTIM - COPTIM := -O3 -ffp-contract=fast -flto + COPTIM := -O3 -ffp-contract=fast -flto endif else ifndef COPTIM - COPTIM := -O3 + COPTIM := -O3 endif endif endif -AFLAGS := -msse2 -mfpmath=sse +AFLAGS := -msse2 -mfpmath=sse ifeq ($(ARM), y) - DFLAGS := -march=armv7-a - AOPTIM := - AFLAGS := -mfloat-abi=hard + DFLAGS := -march=armv7-a + AOPTIM := + AFLAGS := -mfloat-abi=hard endif ifeq ($(ARM64), y) - DFLAGS := -march=armv8-a - AOPTIM := - AFLAGS := -mfloat-abi=hard + DFLAGS := -march=armv8-a + AOPTIM := + AFLAGS := -mfloat-abi=hard endif -RFLAGS := --input-format=rc -O coff -Iinclude -Iinclude_make +RFLAGS := --input-format=rc -O coff -Iinclude -Iinclude_make ifeq ($(RELEASE), y) -OPTS += -DRELEASE_BUILD -RFLAGS += -DRELEASE_BUILD +OPTS += -DRELEASE_BUILD +RFLAGS += -DRELEASE_BUILD endif # Optional modules. ifeq ($(DYNAREC), y) -OPTS += -DUSE_DYNAREC -RFLAGS += -DUSE_DYNAREC +OPTS += -DUSE_DYNAREC +RFLAGS += -DUSE_DYNAREC ifeq ($(NEW_DYNAREC), y) - OPTS += -DUSE_NEW_DYNAREC - RFLAGS += -DUSE_NEW_DYNAREC + OPTS += -DUSE_NEW_DYNAREC + RFLAGS += -DUSE_NEW_DYNAREC ifeq ($(X64), y) - PLATCG := codegen_backend_x86-64.o codegen_backend_x86-64_ops.o codegen_backend_x86-64_ops_sse.o \ - codegen_backend_x86-64_uops.o + PLATCG := codegen_backend_x86-64.o codegen_backend_x86-64_ops.o codegen_backend_x86-64_ops_sse.o \ + codegen_backend_x86-64_uops.o else ifeq ($(ARM64), y) - PLATCG := codegen_backend_arm64.o codegen_backend_arm64_ops.o codegen_backend_arm64_uops.o \ - codegen_backend_arm64_imm.o + PLATCG := codegen_backend_arm64.o codegen_backend_arm64_ops.o codegen_backend_arm64_uops.o \ + codegen_backend_arm64_imm.o else ifeq ($(ARM), y) - PLATCG := codegen_backend_arm.o codegen_backend_arm_ops.o codegen_backend_arm_uops.o + PLATCG := codegen_backend_arm.o codegen_backend_arm_ops.o codegen_backend_arm_uops.o else - PLATCG := codegen_backend_x86.o codegen_backend_x86_ops.o codegen_backend_x86_ops_fpu.o \ - codegen_backend_x86_ops_sse.o codegen_backend_x86_uops.o + PLATCG := codegen_backend_x86.o codegen_backend_x86_ops.o codegen_backend_x86_ops_fpu.o \ + codegen_backend_x86_ops_sse.o codegen_backend_x86_uops.o endif - DYNARECOBJ := codegen.o codegen_accumulate.o codegen_allocator.o codegen_block.o codegen_ir.o codegen_ops.o \ - codegen_ops_3dnow.o codegen_ops_branch.o codegen_ops_arith.o codegen_ops_fpu_arith.o \ - codegen_ops_fpu_constant.o codegen_ops_fpu_loadstore.o codegen_ops_fpu_misc.o codegen_ops_helpers.o \ - codegen_ops_jump.o codegen_ops_logic.o codegen_ops_misc.o codegen_ops_mmx_arith.o codegen_ops_mmx_cmp.o \ - codegen_ops_mmx_loadstore.o codegen_ops_mmx_logic.o codegen_ops_mmx_pack.o codegen_ops_mmx_shift.o \ - codegen_ops_mov.o codegen_ops_shift.o codegen_ops_stack.o codegen_reg.o $(PLATCG) + DYNARECOBJ := codegen.o codegen_accumulate.o codegen_allocator.o codegen_block.o codegen_ir.o codegen_ops.o \ + codegen_ops_3dnow.o codegen_ops_branch.o codegen_ops_arith.o codegen_ops_fpu_arith.o \ + codegen_ops_fpu_constant.o codegen_ops_fpu_loadstore.o codegen_ops_fpu_misc.o codegen_ops_helpers.o \ + codegen_ops_jump.o codegen_ops_logic.o codegen_ops_misc.o codegen_ops_mmx_arith.o codegen_ops_mmx_cmp.o \ + codegen_ops_mmx_loadstore.o codegen_ops_mmx_logic.o codegen_ops_mmx_pack.o codegen_ops_mmx_shift.o \ + codegen_ops_mov.o codegen_ops_shift.o codegen_ops_stack.o codegen_reg.o $(PLATCG) else ifeq ($(X64), y) - PLATCG := codegen_x86-64.o codegen_accumulate_x86-64.o + PLATCG := codegen_x86-64.o codegen_accumulate_x86-64.o else - PLATCG := codegen_x86.o codegen_accumulate_x86.o + PLATCG := codegen_x86.o codegen_accumulate_x86.o endif - DYNARECOBJ := codegen.o \ - codegen_ops.o $(PLATCG) + DYNARECOBJ := codegen.o \ + codegen_ops.o $(PLATCG) endif - CGTOBJ := codegen_timing_486.o \ - codegen_timing_686.o codegen_timing_common.o codegen_timing_k6.o codegen_timing_pentium.o \ - codegen_timing_p6.o codegen_timing_winchip.o codegen_timing_winchip2.o + CGTOBJ := codegen_timing_486.o \ + codegen_timing_686.o codegen_timing_common.o codegen_timing_k6.o codegen_timing_pentium.o \ + codegen_timing_p6.o codegen_timing_winchip.o codegen_timing_winchip2.o else ifeq ($(NEW_DYNAREC), y) - OPTS += -DUSE_NEW_DYNAREC - RFLAGS += -DUSE_NEW_DYNAREC + OPTS += -DUSE_NEW_DYNAREC + RFLAGS += -DUSE_NEW_DYNAREC endif endif ifeq ($(FLUIDSYNTH), y) -OPTS += -DUSE_FLUIDSYNTH -FSYNTHOBJ := midi_fluidsynth.o +OPTS += -DUSE_FLUIDSYNTH +FSYNTHOBJ := midi_fluidsynth.o endif ifeq ($(MUNT), y) -OPTS += -DUSE_MUNT -MUNTOBJ := midi_mt32.o \ - Analog.o BReverbModel.o Display.o File.o FileStream.o LA32Ramp.o \ - LA32FloatWaveGenerator.o LA32WaveGenerator.o \ - MidiStreamParser.o Part.o Partial.o PartialManager.o \ - Poly.o ROMInfo.o SampleRateConverter.o \ - FIRResampler.o IIR2xResampler.o LinearResampler.o ResamplerModel.o \ - SincResampler.o InternalResampler.o \ - Synth.o Tables.o TVA.o TVF.o TVP.o sha1.o c_interface.o +OPTS += -DUSE_MUNT +MUNTOBJ := midi_mt32.o \ + Analog.o BReverbModel.o Display.o File.o FileStream.o LA32Ramp.o \ + LA32FloatWaveGenerator.o LA32WaveGenerator.o \ + MidiStreamParser.o Part.o Partial.o PartialManager.o \ + Poly.o ROMInfo.o SampleRateConverter.o \ + FIRResampler.o IIR2xResampler.o LinearResampler.o ResamplerModel.o \ + SincResampler.o InternalResampler.o \ + Synth.o Tables.o TVA.o TVF.o TVP.o sha1.o c_interface.o endif ifeq ($(CPPTHREADS), y) -THREADOBJ := thread.o +THREADOBJ := thread.o else -THREADOBJ := win_thread.o +THREADOBJ := win_thread.o endif ifeq ($(VNC), y) -OPTS += -DUSE_VNC -RFLAGS += -DUSE_VNC +OPTS += -DUSE_VNC +RFLAGS += -DUSE_VNC ifneq ($(VNC_PATH), ) - OPTS += -I$(VNC_PATH)\INCLUDE - VNCLIB := -L$(VNC_PATH)\LIB + OPTS += -I$(VNC_PATH)\INCLUDE + VNCLIB := -L$(VNC_PATH)\LIB endif -VNCLIB += -lvncserver -VNCOBJ := vnc.o vnc_keymap.o +VNCLIB += -lvncserver +VNCOBJ := vnc.o vnc_keymap.o endif ifeq ($(MINITRACE), y) -OPTS += -DMTR_ENABLED -RFLAGS += -DMTR_ENABLED -MINITRACEOBJ := minitrace.o +OPTS += -DMTR_ENABLED +RFLAGS += -DMTR_ENABLED +MINITRACEOBJ := minitrace.o endif ifeq ($(FAUDIO), y) -OPTS += -DUSE_FAUDIO +OPTS += -DUSE_FAUDIO endif # Options for the DEV branch. ifeq ($(DEV_BRANCH), y) -OPTS += -DDEV_BRANCH -RFLAGS += -DDEV_BRANCH -DEVBROBJ := +OPTS += -DDEV_BRANCH +RFLAGS += -DDEV_BRANCH +DEVBROBJ := ifeq ($(AMD_K5), y) -OPTS += -DUSE_AMD_K5 +OPTS += -DUSE_AMD_K5 endif ifeq ($(AN430TX), y) -OPTS += -DUSE_AN430TX +OPTS += -DUSE_AN430TX endif ifeq ($(CYRIX_6X86), y) -OPTS += -DUSE_CYRIX_6X86 +OPTS += -DUSE_CYRIX_6X86 endif ifeq ($(DESKPRO386), y) -OPTS += -DUSE_DESKPRO386 +OPTS += -DUSE_DESKPRO386 endif ifeq ($(GUSMAX), y) -OPTS += -DUSE_GUSMAX +OPTS += -DUSE_GUSMAX endif ifeq ($(ISAMEM_RAMPAGE), y) -OPTS += -DUSE_ISAMEM_RAMPAGE +OPTS += -DUSE_ISAMEM_RAMPAGE endif ifeq ($(ISAMEM_IAB), y) -OPTS += -DUSE_ISAMEM_IAB +OPTS += -DUSE_ISAMEM_IAB endif ifeq ($(ISAMEM_BRAT), y) -OPTS += -DUSE_ISAMEM_BRAT +OPTS += -DUSE_ISAMEM_BRAT endif ifeq ($(LASERXT), y) -OPTS += -DUSE_LASERXT -DEVBROBJ += m_xt_laserxt.o +OPTS += -DUSE_LASERXT +DEVBROBJ += m_xt_laserxt.o endif ifeq ($(MGA), y) -OPTS += -DUSE_MGA -DEVBROBJ += vid_mga.o +OPTS += -DUSE_MGA +DEVBROBJ += vid_mga.o endif ifeq ($(OPEN_AT), y) -OPTS += -DUSE_OPEN_AT +OPTS += -DUSE_OPEN_AT endif ifeq ($(PAS16), y) -OPTS += -DUSE_PAS16 -DEVBROBJ += snd_pas16.o +OPTS += -DUSE_PAS16 +DEVBROBJ += snd_pas16.o endif ifeq ($(SIO_DETECT), y) -OPTS += -DUSE_SIO_DETECT -DEVBROBJ += sio_detect.o +OPTS += -DUSE_SIO_DETECT +DEVBROBJ += sio_detect.o endif ifeq ($(VGAWONDER), y) -OPTS += -DUSE_VGAWONDER +OPTS += -DUSE_VGAWONDER endif ifeq ($(XL24), y) -OPTS += -DUSE_XL24 +OPTS += -DUSE_XL24 endif ifeq ($(OLIVETTI), y) -OPTS += -DUSE_OLIVETTI -DEVBROBJ += olivetti_eva.o +OPTS += -DUSE_OLIVETTI +DEVBROBJ += olivetti_eva.o endif ifeq ($(GDBSTUB), y) -OPTS += -DUSE_GDBSTUB -DEVBROBJ += gdbstub.o +OPTS += -DUSE_GDBSTUB +DEVBROBJ += gdbstub.o endif endif # Final versions of the toolchain flags. -CFLAGS := $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) \ - $(AFLAGS) -fomit-frame-pointer -mstackrealign -Wall \ - -fno-strict-aliasing +CFLAGS := $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) \ + $(AFLAGS) -fomit-frame-pointer -mstackrealign -Wall \ + -fno-strict-aliasing # Add freetyp2 references through pkgconfig -CFLAGS := $(CFLAGS) `pkg-config --cflags freetype2` +CFLAGS := $(CFLAGS) `pkg-config --cflags freetype2` -CXXFLAGS := $(CFLAGS) +CXXFLAGS := $(CFLAGS) ######################################################################### -# Create the (final) list of objects to build. # +# Create the (final) list of objects to build. # ######################################################################### -MAINOBJ := 86box.o config.o log.o random.o timer.o io.o acpi.o apm.o dma.o ddma.o \ - nmi.o pic.o pit.o pit_fast.o port_6x.o port_92.o ppi.o pci.o mca.o fifo8.o \ - usb.o device.o nvr.o nvr_at.o nvr_ps2.o machine_status.o ini.o \ - $(VNCOBJ) +MAINOBJ := 86box.o config.o log.o random.o timer.o io.o acpi.o apm.o dma.o ddma.o \ + nmi.o pic.o pit.o pit_fast.o port_6x.o port_92.o ppi.o pci.o mca.o fifo8.o \ + usb.o device.o nvr.o nvr_at.o nvr_ps2.o machine_status.o ini.o \ + $(VNCOBJ) -MEMOBJ := catalyst_flash.o i2c_eeprom.o intel_flash.o mem.o rom.o smram.o spd.o sst_flash.o +MEMOBJ := catalyst_flash.o i2c_eeprom.o intel_flash.o mem.o rom.o smram.o spd.o sst_flash.o -CPUOBJ := $(DYNARECOBJ) \ - $(CGTOBJ) \ - cpu.o cpu_table.o fpu.o x86.o \ - 8080.o 808x.o 386.o 386_common.o 386_dynarec.o 386_dynarec_ops.o \ - x86seg.o x87.o x87_timings.o +CPUOBJ := $(DYNARECOBJ) \ + $(CGTOBJ) \ + cpu.o cpu_table.o fpu.o x86.o \ + 8080.o 808x.o 386.o 386_common.o 386_dynarec.o 386_dynarec_ops.o \ + x86seg.o x87.o x87_timings.o -CHIPSETOBJ := 82c100.o acc2168.o \ - contaq_82c59x.o \ - cs4031.o cs8230.o \ - ali1429.o ali1489.o ali1531.o ali1541.o ali1543.o ali1621.o ali6117.o \ - gc100.o headland.o \ - ims8848.o intel_82335.o intel_420ex.o intel_4x0.o intel_i450kx.o intel_sio.o intel_piix.o \ - ioapic.o \ - neat.o \ - opti283.o opti291.o opti391.o opti495.o opti822.o opti895.o opti5x7.o \ - scamp.o scat.o \ - stpc.o \ - wd76c10.o vl82c480.o \ - umc_8886.o umc_hb4.o \ - via_vt82c49x.o via_vt82c505.o via_apollo.o via_pipc.o \ - sis_85c310.o sis_85c4xx.o sis_85c496.o sis_85c50x.o sis_5511.o sis_5571.o +CHIPSETOBJ := 82c100.o acc2168.o \ + contaq_82c59x.o \ + cs4031.o cs8230.o \ + ali1429.o ali1489.o ali1531.o ali1541.o ali1543.o ali1621.o ali6117.o \ + gc100.o headland.o \ + ims8848.o intel_82335.o intel_420ex.o intel_4x0.o intel_i450kx.o intel_sio.o intel_piix.o \ + ioapic.o \ + neat.o \ + opti283.o opti291.o opti391.o opti495.o opti822.o opti895.o opti5x7.o \ + scamp.o scat.o \ + stpc.o \ + wd76c10.o vl82c480.o \ + umc_8886.o umc_hb4.o \ + via_vt82c49x.o via_vt82c505.o via_apollo.o via_pipc.o \ + sis_85c310.o sis_85c4xx.o sis_85c496.o sis_85c50x.o sis_5511.o sis_5571.o -MCHOBJ := machine.o machine_table.o \ - m_xt.o m_xt_compaq.o \ - m_xt_philips.o \ - m_xt_t1000.o m_xt_t1000_vid.o \ - m_xt_xi8088.o m_xt_zenith.o \ - m_pcjr.o \ - m_amstrad.o m_europc.o \ - m_elt.o \ - m_xt_olivetti.o m_tandy.o m_v86p.o \ - m_at.o m_at_commodore.o \ - m_at_t3100e.o m_at_t3100e_vid.o \ - m_ps1.o m_ps1_hdc.o \ - m_ps2_isa.o m_ps2_mca.o \ - m_at_compaq.o \ - m_at_286_386sx.o m_at_386dx_486.o \ - m_at_socket4.o m_at_socket5.o m_at_socket7_3v.o m_at_socket7.o m_at_sockets7.o \ - m_at_socket8.o m_at_slot1.o m_at_slot2.o m_at_socket370.o \ - m_at_misc.o +MCHOBJ := machine.o machine_table.o \ + m_xt.o m_xt_compaq.o \ + m_xt_philips.o \ + m_xt_t1000.o m_xt_t1000_vid.o \ + m_xt_xi8088.o m_xt_zenith.o \ + m_pcjr.o \ + m_amstrad.o m_europc.o \ + m_elt.o \ + m_xt_olivetti.o m_tandy.o m_v86p.o \ + m_at.o m_at_commodore.o \ + m_at_t3100e.o m_at_t3100e_vid.o \ + m_ps1.o m_ps1_hdc.o \ + m_ps2_isa.o m_ps2_mca.o \ + m_at_compaq.o \ + m_at_286_386sx.o m_at_386dx_486.o \ + m_at_socket4.o m_at_socket5.o m_at_socket7_3v.o m_at_socket7.o m_at_sockets7.o \ + m_at_socket8.o m_at_slot1.o m_at_slot2.o m_at_socket370.o \ + m_at_misc.o ifeq ($(NEW_KBC), y) -DEVOBJ := bugger.o cartridge.o cassette.o hasp.o hwm.o hwm_lm75.o hwm_lm78.o hwm_gl518sm.o hwm_vt82c686.o \ - ibm_5161.o isamem.o isartc.o lpt.o pci_bridge.o postcard.o serial.o \ - clock_ics9xxx.o isapnp.o \ - i2c.o i2c_gpio.o smbus_ali7101.o smbus_piix4.o \ - keyboard.o \ - keyboard_xt.o kbc_at.o kbd_at.o \ - mouse.o \ - mouse_bus.o \ - mouse_serial.o mouse_ps2.o \ - phoenix_486_jumper.o +DEVOBJ := bugger.o cartridge.o cassette.o hasp.o hwm.o hwm_lm75.o hwm_lm78.o hwm_gl518sm.o hwm_vt82c686.o \ + ibm_5161.o isamem.o isartc.o lpt.o pci_bridge.o postcard.o serial.o \ + clock_ics9xxx.o isapnp.o \ + i2c.o i2c_gpio.o smbus_ali7101.o smbus_piix4.o \ + keyboard.o \ + keyboard_xt.o kbc_at.o kbd_at.o \ + mouse.o \ + mouse_bus.o \ + mouse_serial.o mouse_ps2.o \ + phoenix_486_jumper.o else -DEVOBJ := bugger.o cartridge.o cassette.o hasp.o hwm.o hwm_lm75.o hwm_lm78.o hwm_gl518sm.o hwm_vt82c686.o \ - ibm_5161.o isamem.o isartc.o lpt.o pci_bridge.o postcard.o serial.o \ - clock_ics9xxx.o isapnp.o \ - i2c.o i2c_gpio.o smbus_ali7101.o smbus_piix4.o \ - keyboard.o \ - keyboard_xt.o keyboard_at.o \ - mouse.o \ - mouse_bus.o \ - mouse_serial.o mouse_ps2.o \ - phoenix_486_jumper.o +DEVOBJ := bugger.o cartridge.o cassette.o hasp.o hwm.o hwm_lm75.o hwm_lm78.o hwm_gl518sm.o hwm_vt82c686.o \ + ibm_5161.o isamem.o isartc.o lpt.o pci_bridge.o postcard.o serial.o \ + clock_ics9xxx.o isapnp.o \ + i2c.o i2c_gpio.o smbus_ali7101.o smbus_piix4.o \ + keyboard.o \ + keyboard_xt.o keyboard_at.o \ + mouse.o \ + mouse_bus.o \ + mouse_serial.o mouse_ps2.o \ + phoenix_486_jumper.o endif -SIOOBJ := sio_acc3221.o sio_ali5123.o \ - sio_f82c710.o sio_82091aa.o sio_fdc37c6xx.o \ - sio_fdc37c67x.o sio_fdc37c669.o sio_fdc37c93x.o sio_fdc37m60x.o \ - sio_it8661f.o \ - sio_pc87306.o sio_pc87307.o sio_pc87309.o sio_pc87310.o sio_pc87311.o sio_pc87332.o \ - sio_prime3b.o sio_prime3c.o \ - sio_w83787f.o \ - sio_w83877f.o sio_w83977f.o \ - sio_um8669f.o \ - sio_vt82c686.o +SIOOBJ := sio_acc3221.o sio_ali5123.o \ + sio_f82c710.o sio_82091aa.o sio_fdc37c6xx.o \ + sio_fdc37c67x.o sio_fdc37c669.o sio_fdc37c93x.o sio_fdc37m60x.o \ + sio_it8661f.o \ + sio_pc87306.o sio_pc87307.o sio_pc87309.o sio_pc87310.o sio_pc87311.o sio_pc87332.o \ + sio_prime3b.o sio_prime3c.o \ + sio_w83787f.o \ + sio_w83877f.o sio_w83977f.o \ + sio_um8669f.o \ + sio_vt82c686.o -FDDOBJ := fdd.o fdc.o fdc_magitronic.o fdc_pii15xb.o \ - fdi2raw.o \ - fdd_common.o fdd_86f.o \ - fdd_fdi.o fdd_imd.o fdd_img.o fdd_json.o \ - fdd_mfm.o fdd_td0.o +FDDOBJ := fdd.o fdc.o fdc_magitronic.o fdc_pii15xb.o \ + fdi2raw.o \ + fdd_common.o fdd_86f.o \ + fdd_fdi.o fdd_imd.o fdd_img.o fdd_json.o \ + fdd_mfm.o fdd_td0.o -GAMEOBJ := gameport.o \ - joystick_standard.o joystick_ch_flightstick_pro.o \ - joystick_sw_pad.o joystick_tm_fcs.o +GAMEOBJ := gameport.o \ + joystick_standard.o joystick_ch_flightstick_pro.o \ + joystick_sw_pad.o joystick_tm_fcs.o -HDDOBJ := hdd.o \ - hdd_image.o hdd_table.o \ - hdc.o \ - hdc_st506_xt.o hdc_st506_at.o \ - hdc_xta.o \ - hdc_esdi_at.o hdc_esdi_mca.o \ - hdc_xtide.o hdc_ide.o \ - hdc_ide_opti611.o \ - hdc_ide_cmd640.o hdc_ide_cmd646.o \ - hdc_ide_sff8038i.o +HDDOBJ := hdd.o \ + hdd_image.o hdd_table.o \ + hdc.o \ + hdc_st506_xt.o hdc_st506_at.o \ + hdc_xta.o \ + hdc_esdi_at.o hdc_esdi_mca.o \ + hdc_xtide.o hdc_ide.o \ + hdc_ide_opti611.o \ + hdc_ide_cmd640.o hdc_ide_cmd646.o \ + hdc_ide_sff8038i.o MINIVHDOBJ := cwalk.o libxml2_encoding.o minivhd_convert.o \ - minivhd_create.o minivhd_io.o minivhd_manage.o \ - minivhd_struct_rw.o minivhd_util.o + minivhd_create.o minivhd_io.o minivhd_manage.o \ + minivhd_struct_rw.o minivhd_util.o -CDROMOBJ := cdrom.o \ - cdrom_image_backend.o cdrom_image_viso.o cdrom_image.o cdrom_mitsumi.o +CDROMOBJ := cdrom.o \ + cdrom_image_backend.o cdrom_image_viso.o cdrom_image.o cdrom_mitsumi.o -ZIPOBJ := zip.o +ZIPOBJ := zip.o -MOOBJ := mo.o +MOOBJ := mo.o -SCSIOBJ := scsi.o scsi_device.o \ - scsi_cdrom.o scsi_disk.o \ - scsi_x54x.o \ - scsi_aha154x.o scsi_buslogic.o \ - scsi_ncr5380.o scsi_ncr53c8xx.o \ - scsi_pcscsi.o scsi_spock.o +SCSIOBJ := scsi.o scsi_device.o \ + scsi_cdrom.o scsi_disk.o \ + scsi_x54x.o \ + scsi_aha154x.o scsi_buslogic.o \ + scsi_ncr5380.o scsi_ncr53c8xx.o \ + scsi_pcscsi.o scsi_spock.o -NETOBJ := network.o \ - net_pcap.o \ - net_slirp.o tinyglib.o \ - arp_table.o bootp.o cksum.o dnssearch.o if.o ip_icmp.o ip_input.o \ - ip_output.o mbuf.o misc.o sbuf.o slirp.o socket.o tcp_input.o \ - tcp_output.o tcp_subr.o tcp_timer.o udp.o util.o version.o \ - net_dp8390.o \ - net_3c503.o net_ne2000.o \ - net_pcnet.o net_wd8003.o \ - net_plip.o net_event.o +NETOBJ := network.o \ + net_pcap.o \ + net_slirp.o tinyglib.o \ + arp_table.o bootp.o cksum.o dnssearch.o if.o ip_icmp.o ip_input.o \ + ip_output.o mbuf.o misc.o sbuf.o slirp.o socket.o tcp_input.o \ + tcp_output.o tcp_subr.o tcp_timer.o udp.o util.o version.o \ + net_dp8390.o \ + net_3c503.o net_ne2000.o \ + net_pcnet.o net_wd8003.o \ + net_plip.o net_event.o -PRINTOBJ := png.o prt_cpmap.o \ - prt_escp.o prt_text.o prt_ps.o +PRINTOBJ := png.o prt_cpmap.o \ + prt_escp.o prt_text.o prt_ps.o -SNDOBJ := sound.o \ - snd_opl.o snd_opl_nuked.o snd_opl_ymfm.o \ - ymfm_adpcm.o ymfm_misc.o ymfm_opl.o ymfm_opm.o \ - ymfm_opn.o ymfm_opq.o ymfm_opz.o ymfm_pcm.o ymfm_ssg.o \ - snd_resid.o \ - convolve.o convolve-sse.o envelope.o extfilt.o \ - filter.o pot.o sid.o voice.o wave6581__ST.o \ - wave6581_P_T.o wave6581_PS_.o wave6581_PST.o \ - wave8580__ST.o wave8580_P_T.o wave8580_PS_.o \ - wave8580_PST.o wave.o \ - midi.o \ - snd_speaker.o \ - snd_pssj.o \ - snd_ps1.o \ - snd_lpt_dac.o snd_lpt_dss.o \ - snd_adlib.o snd_adlibgold.o snd_ad1848.o snd_audiopci.o \ - snd_ac97_codec.o snd_ac97_via.o \ - snd_azt2316a.o snd_cs423x.o snd_cmi8x38.o \ - snd_cms.o \ - snd_gus.o \ - snd_sb.o snd_sb_dsp.o \ - snd_emu8k.o snd_mpu401.o \ - snd_sn76489.o snd_ssi2001.o \ - snd_wss.o \ - snd_ym7128.o +SNDOBJ := sound.o \ + snd_opl.o snd_opl_nuked.o snd_opl_ymfm.o \ + ymfm_adpcm.o ymfm_misc.o ymfm_opl.o ymfm_opm.o \ + ymfm_opn.o ymfm_opq.o ymfm_opz.o ymfm_pcm.o ymfm_ssg.o \ + snd_resid.o \ + convolve.o convolve-sse.o envelope.o extfilt.o \ + filter.o pot.o sid.o voice.o wave6581__ST.o \ + wave6581_P_T.o wave6581_PS_.o wave6581_PST.o \ + wave8580__ST.o wave8580_P_T.o wave8580_PS_.o \ + wave8580_PST.o wave.o \ + midi.o \ + snd_speaker.o \ + snd_pssj.o \ + snd_ps1.o \ + snd_lpt_dac.o snd_lpt_dss.o \ + snd_adlib.o snd_adlibgold.o snd_ad1848.o snd_audiopci.o \ + snd_ac97_codec.o snd_ac97_via.o \ + snd_azt2316a.o snd_cs423x.o snd_cmi8x38.o \ + snd_cms.o \ + snd_gus.o \ + snd_sb.o snd_sb_dsp.o \ + snd_emu8k.o snd_mpu401.o \ + snd_sn76489.o snd_ssi2001.o \ + snd_wss.o \ + snd_ym7128.o -VIDOBJ := agpgart.o video.o \ - vid_table.o \ - vid_cga.o vid_cga_comp.o \ - vid_compaq_cga.o \ - vid_mda.o \ - vid_hercules.o vid_herculesplus.o vid_incolor.o \ - vid_colorplus.o \ - vid_genius.o \ - vid_pgc.o vid_im1024.o \ - vid_sigma.o \ - vid_wy700.o \ - vid_ega.o vid_ega_render.o \ - vid_svga.o vid_svga_render.o \ - vid_8514a.o \ - vid_ddc.o \ - vid_vga.o \ - vid_ati_eeprom.o \ - vid_ati18800.o vid_ati28800.o \ - vid_ati_mach64.o vid_ati68860_ramdac.o \ - vid_bt48x_ramdac.o \ - vid_av9194.o vid_icd2061.o vid_ics2494.o vid_ics2595.o \ - vid_cl54xx.o \ - vid_et3000.o \ - vid_et4000.o vid_sc1148x_ramdac.o \ - vid_sc1502x_ramdac.o \ - vid_et4000w32.o vid_stg_ramdac.o \ - vid_ht216.o \ - vid_oak_oti.o \ - vid_paradise.o \ - vid_rtg310x.o \ - vid_ti_cf62011.o \ - vid_f82c425.o \ - vid_tvga.o \ - vid_tgui9440.o vid_tkd8001_ramdac.o \ - vid_att20c49x_ramdac.o \ - vid_att2xc498_ramdac.o \ - vid_s3.o vid_s3_virge.o \ - vid_ibm_rgb528_ramdac.o vid_sdac_ramdac.o \ - vid_ogc.o \ - vid_nga.o \ - vid_tvp3026_ramdac.o \ - vid_xga.o +VIDOBJ := agpgart.o video.o \ + vid_table.o \ + vid_cga.o vid_cga_comp.o \ + vid_compaq_cga.o \ + vid_mda.o \ + vid_hercules.o vid_herculesplus.o vid_incolor.o \ + vid_colorplus.o \ + vid_genius.o \ + vid_pgc.o vid_im1024.o \ + vid_sigma.o \ + vid_wy700.o \ + vid_ega.o vid_ega_render.o \ + vid_svga.o vid_svga_render.o \ + vid_8514a.o \ + vid_ddc.o \ + vid_vga.o \ + vid_ati_eeprom.o \ + vid_ati18800.o vid_ati28800.o \ + vid_ati_mach64.o vid_ati68860_ramdac.o \ + vid_bt48x_ramdac.o \ + vid_av9194.o vid_icd2061.o vid_ics2494.o vid_ics2595.o \ + vid_cl54xx.o \ + vid_et3000.o \ + vid_et4000.o vid_sc1148x_ramdac.o \ + vid_sc1502x_ramdac.o \ + vid_et4000w32.o vid_stg_ramdac.o \ + vid_ht216.o \ + vid_oak_oti.o \ + vid_paradise.o \ + vid_rtg310x.o \ + vid_ti_cf62011.o \ + vid_f82c425.o \ + vid_tvga.o \ + vid_tgui9440.o vid_tkd8001_ramdac.o \ + vid_att20c49x_ramdac.o \ + vid_att2xc498_ramdac.o \ + vid_s3.o vid_s3_virge.o \ + vid_ibm_rgb528_ramdac.o vid_sdac_ramdac.o \ + vid_ogc.o \ + vid_nga.o \ + vid_tvp3026_ramdac.o \ + vid_xga.o -VOODOOOBJ := vid_voodoo.o vid_voodoo_banshee.o \ - vid_voodoo_banshee_blitter.o \ - vid_voodoo_blitter.o \ - vid_voodoo_display.o vid_voodoo_fb.o \ - vid_voodoo_fifo.o vid_voodoo_reg.o \ - vid_voodoo_render.o vid_voodoo_setup.o \ - vid_voodoo_texture.o +VOODOOOBJ := vid_voodoo.o vid_voodoo_banshee.o \ + vid_voodoo_banshee_blitter.o \ + vid_voodoo_blitter.o \ + vid_voodoo_display.o vid_voodoo_fb.o \ + vid_voodoo_fifo.o vid_voodoo_reg.o \ + vid_voodoo_render.o vid_voodoo_setup.o \ + vid_voodoo_texture.o -PLATOBJ := win.o \ - win_dynld.o \ - win_cdrom.o win_keyboard.o \ - win_mouse.o +PLATOBJ := win.o \ + win_dynld.o \ + win_cdrom.o win_keyboard.o \ + win_mouse.o -UIOBJ := win_ui.o win_icon.o win_stbar.o discord.o \ - win_sdl.o win_opengl.o win_opengl_glslp.o glad.o \ - win_dialog.o win_about.o \ - win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_preferences.o \ - win_new_floppy.o win_jsconf.o \ - win_media_menu.o win_toolbar.o +UIOBJ := win_ui.o win_icon.o win_stbar.o discord.o \ + win_sdl.o win_opengl.o win_opengl_glslp.o glad.o \ + win_dialog.o win_about.o \ + win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_preferences.o \ + win_new_floppy.o win_jsconf.o \ + win_media_menu.o win_toolbar.o ifeq ($(DINPUT), y) - PLATOBJ += win_joystick.o + PLATOBJ += win_joystick.o else - PLATOBJ += win_joystick_rawinput.o + PLATOBJ += win_joystick_rawinput.o endif ifeq ($(OPENAL), y) - SNDOBJ += openal.o + SNDOBJ += openal.o else - SNDOBJ += xaudio2.o + SNDOBJ += xaudio2.o endif -OBJ := $(MAINOBJ) $(CPUOBJ) $(CHIPSETOBJ) $(MCHOBJ) $(DEVOBJ) $(MEMOBJ) \ - $(FDDOBJ) $(GAMEOBJ) $(CDROMOBJ) $(ZIPOBJ) $(MOOBJ) $(HDDOBJ) $(MINIVHDOBJ) \ - $(NETOBJ) $(PRINTOBJ) $(SCSIOBJ) $(SIOOBJ) $(SNDOBJ) $(VIDOBJ) $(VOODOOOBJ) \ - $(PLATOBJ) $(UIOBJ) $(FSYNTHOBJ) $(MUNTOBJ) $(DEVBROBJ) $(MINITRACEOBJ) $(THREADOBJ) +OBJ := $(MAINOBJ) $(CPUOBJ) $(CHIPSETOBJ) $(MCHOBJ) $(DEVOBJ) $(MEMOBJ) \ + $(FDDOBJ) $(GAMEOBJ) $(CDROMOBJ) $(ZIPOBJ) $(MOOBJ) $(HDDOBJ) $(MINIVHDOBJ) \ + $(NETOBJ) $(PRINTOBJ) $(SCSIOBJ) $(SIOOBJ) $(SNDOBJ) $(VIDOBJ) $(VOODOOOBJ) \ + $(PLATOBJ) $(UIOBJ) $(FSYNTHOBJ) $(MUNTOBJ) $(DEVBROBJ) $(MINITRACEOBJ) $(THREADOBJ) ifdef EXOBJ -OBJ += $(EXOBJ) +OBJ += $(EXOBJ) endif ifeq ($(OPENAL), y) -LIBS := -mwindows -lopenal -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32 +LIBS := -mwindows -lopenal -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32 else ifeq ($(FAUDIO), y) -LIBS := -mwindows -lfaudio -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32 +LIBS := -mwindows -lfaudio -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32 else -LIBS := -mwindows -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32 +LIBS := -mwindows -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32 endif endif ifeq ($(RTMIDI), y) - SNDOBJ += midi_rtmidi.o - OPTS += -DUSE_RTMIDI - LIBS += -lrtmidi + SNDOBJ += midi_rtmidi.o + OPTS += -DUSE_RTMIDI + LIBS += -lrtmidi endif ifeq ($(VNC), y) -LIBS += $(VNCLIB) -lws2_32 +LIBS += $(VNCLIB) -lws2_32 endif -LIBS += -lpng -lz -lwsock32 -liphlpapi -lpsapi -lhid -lsetupapi -luxtheme -static -lstdc++ +LIBS += -lpng -lz -lwsock32 -liphlpapi -lpsapi -lhid -lsetupapi -luxtheme -static -lstdc++ ifneq ($(X64), y) ifneq ($(ARM64), y) -LIBS += -Wl,--large-address-aware +LIBS += -Wl,--large-address-aware endif endif ifeq ($(ARM64), y) -LIBS += -lgcc +LIBS += -lgcc endif ifeq ($(DINPUT), y) - LIBS += -ldinput8 + LIBS += -ldinput8 endif -LIBS += -static +LIBS += -static # Build module rules. ifeq ($(AUTODEP), y) -%.o: %.c - @echo $< - @$(CC) $(CFLAGS) $(DEPS) -c $< +%.o: %.c + @echo $< + @$(CC) $(CFLAGS) $(DEPS) -c $< -%.o: %.cc - @echo $< - @$(CPP) $(CXXFLAGS) $(DEPS) -c $< +%.o: %.cc + @echo $< + @$(CPP) $(CXXFLAGS) $(DEPS) -c $< -%.o: %.cpp - @echo $< - @$(CPP) $(CXXFLAGS) $(DEPS) -c $< +%.o: %.cpp + @echo $< + @$(CPP) $(CXXFLAGS) $(DEPS) -c $< else -%.o: %.c - @echo $< - @$(CC) $(CFLAGS) -c $< +%.o: %.c + @echo $< + @$(CC) $(CFLAGS) -c $< -%.o: %.cc - @echo $< - @$(CPP) $(CXXFLAGS) -c $< +%.o: %.cc + @echo $< + @$(CPP) $(CXXFLAGS) -c $< -%.o: %.cpp - @echo $< - @$(CPP) $(CXXFLAGS) -c $< +%.o: %.cpp + @echo $< + @$(CPP) $(CXXFLAGS) -c $< -%.d: %.c $(wildcard $*.d) - @echo $< - @$(CC) $(CFLAGS) $(DEPS) -E $< >/dev/null +%.d: %.c $(wildcard $*.d) + @echo $< + @$(CC) $(CFLAGS) $(DEPS) -E $< >/dev/null -%.d: %.cc $(wildcard $*.d) - @echo $< - @$(CPP) $(CXXFLAGS) $(DEPS) -E $< >/dev/null +%.d: %.cc $(wildcard $*.d) + @echo $< + @$(CPP) $(CXXFLAGS) $(DEPS) -E $< >/dev/null -%.d: %.cpp $(wildcard $*.d) - @echo $< - @$(CPP) $(CXXFLAGS) $(DEPS) -E $< >/dev/null +%.d: %.cpp $(wildcard $*.d) + @echo $< + @$(CPP) $(CXXFLAGS) $(DEPS) -E $< >/dev/null endif # Suppress false positive warnings in vid_voodoo_codegen_x86[-64].h @@ -848,59 +848,59 @@ ifneq ($(CLANG), y) $(VOODOOOBJ): CFLAGS += -Wstringop-overflow=0 endif -all: $(PROG).exe +all: $(PROG).exe -86Box.res: 86Box.rc - @echo Processing $< - @$(WINDRES) $(RFLAGS) $(EXTRAS) -i $< -o 86Box.res +86Box.res: 86Box.rc + @echo Processing $< + @$(WINDRES) $(RFLAGS) $(EXTRAS) -i $< -o 86Box.res -$(PROG).exe: $(OBJ) 86Box.res - @echo Linking $(PROG).exe .. - @$(CC) $(LDFLAGS) -o $(PROG).exe $(OBJ) 86Box.res $(LIBS) -pipe +$(PROG).exe: $(OBJ) 86Box.res + @echo Linking $(PROG).exe .. + @$(CC) $(LDFLAGS) -o $(PROG).exe $(OBJ) 86Box.res $(LIBS) -pipe ifneq ($(DEBUG), y) - @$(STRIP) $(PROG).exe + @$(STRIP) $(PROG).exe endif -pcap_if.res: pcap_if.rc - @echo Processing $< - @$(WINDRES) $(RFLAGS) -i $< -o pcap_if.res +pcap_if.res: pcap_if.rc + @echo Processing $< + @$(WINDRES) $(RFLAGS) -i $< -o pcap_if.res -pcap_if.exe: pcap_if.o win_dynld.o pcap_if.res - @echo Linking pcap_if.exe .. - @$(CC) $(LDFLAGS) -o pcap_if.exe pcap_if.o win_dynld.o pcap_if.res +pcap_if.exe: pcap_if.o win_dynld.o pcap_if.res + @echo Linking pcap_if.exe .. + @$(CC) $(LDFLAGS) -o pcap_if.exe pcap_if.o win_dynld.o pcap_if.res ifneq ($(DEBUG), y) - @$(STRIP) pcap_if.exe + @$(STRIP) pcap_if.exe endif -hello.exe: hello.o - $(CXX) $(LDFLAGS) -o hello.exe hello.o $(LIBS) +hello.exe: hello.o + $(CXX) $(LDFLAGS) -o hello.exe hello.o $(LIBS) ifneq ($(DEBUG), y) - @$(STRIP) hello.exe + @$(STRIP) hello.exe endif clean: - @echo Cleaning objects.. - @-rm -f *.o 2>/dev/null - @-rm -f *.res 2>/dev/null + @echo Cleaning objects.. + @-rm -f *.o 2>/dev/null + @-rm -f *.res 2>/dev/null -clobber: clean - @echo Cleaning executables.. - @-rm -f *.d 2>/dev/null - @-rm -f *.exe 2>/dev/null -# @-rm -f $(DEPFILE) 2>/dev/null +clobber: clean + @echo Cleaning executables.. + @-rm -f *.d 2>/dev/null + @-rm -f *.exe 2>/dev/null +# @-rm -f $(DEPFILE) 2>/dev/null ifneq ($(AUTODEP), y) depclean: - @-rm -f $(DEPFILE) 2>/dev/null - @echo Creating dependencies.. - @echo # Run "make depends" to re-create this file. >$(DEPFILE) + @-rm -f $(DEPFILE) 2>/dev/null + @echo Creating dependencies.. + @echo # Run "make depends" to re-create this file. >$(DEPFILE) -depends: DEPOBJ=$(OBJ:%.o=%.d) -depends: depclean $(OBJ:%.o=%.d) - @-cat $(DEPOBJ) >>$(DEPFILE) - @-rm -f $(DEPOBJ) +depends: DEPOBJ=$(OBJ:%.o=%.d) +depends: depclean $(OBJ:%.o=%.d) + @-cat $(DEPOBJ) >>$(DEPFILE) + @-rm -f $(DEPOBJ) $(DEPFILE): endif