diff --git a/src/include/86box/plat.h b/src/include/86box/plat.h
index f39f6ba51..81874685e 100644
--- a/src/include/86box/plat.h
+++ b/src/include/86box/plat.h
@@ -50,7 +50,9 @@ enum {
STRING_HW_NOT_AVAILABLE_DEVICE, /* "Device \"%hs\" is not available..." */
STRING_MONITOR_SLEEP, /* "Monitor in sleep mode" */
STRING_GHOSTPCL_ERROR_TITLE, /* "Unable to initialize GhostPCL" */
- STRING_GHOSTPCL_ERROR_DESC /* "gpcl6dll32.dll/gpcl6dll64.dll/libgpcl6 is required..." */
+ STRING_GHOSTPCL_ERROR_DESC, /* "gpcl6dll32.dll/gpcl6dll64.dll/libgpcl6 is required..." */
+ STRING_ESCP_ERROR_TITLE, /* "Unable to find Dot-Matrix fonts" */
+ STRING_ESCP_ERROR_DESC /* "TrueType fonts in the \"roms/printer/fonts\" directory..." */
};
/* The Win32 API uses _wcsicmp. */
diff --git a/src/include/86box/rom.h b/src/include/86box/rom.h
index 1f6e611b1..83fd7cf90 100644
--- a/src/include/86box/rom.h
+++ b/src/include/86box/rom.h
@@ -52,6 +52,7 @@ extern uint8_t rom_read(uint32_t addr, void *priv);
extern uint16_t rom_readw(uint32_t addr, void *priv);
extern uint32_t rom_readl(uint32_t addr, void *priv);
+extern void rom_get_full_path(char *dest, const char *fn);
extern FILE *rom_fopen(const char *fn, char *mode);
extern int rom_getfile(char *fn, char *s, int size);
extern int rom_present(const char *fn);
diff --git a/src/io.c b/src/io.c
index 27f8503b0..2565ac537 100644
--- a/src/io.c
+++ b/src/io.c
@@ -30,6 +30,7 @@
#include "cpu.h"
#include <86box/m_amstrad.h>
#include <86box/pci.h>
+#include <86box/mem.h>
#define NPORTS 65536 /* PC/AT supports 64K ports */
@@ -59,6 +60,7 @@ int initialized = 0;
io_t *io[NPORTS];
io_t *io_last[NPORTS];
+// #define ENABLE_IO_LOG 1
#ifdef ENABLE_IO_LOG
int io_do_log = ENABLE_IO_LOG;
@@ -69,7 +71,8 @@ io_log(const char *fmt, ...)
if (io_do_log) {
va_start(ap, fmt);
- pclog_ex(fmt, ap);
+ if (CS == 0xf000)
+ pclog_ex(fmt, ap);
va_end(ap);
}
}
@@ -77,6 +80,18 @@ io_log(const char *fmt, ...)
# define io_log(fmt, ...)
#endif
+uint16_t last_port_read = 0xffff;
+
+static void
+print_lpr(void)
+{
+ FILE *f = fopen("d:\\86boxnew\\ndiags.dmp", "wb");
+ fwrite(&(ram[0x24c30]), 1, 65536, f);
+ fclose(f);
+
+ pclog("last_port_read = %04X\n", last_port_read);
+}
+
void
io_init(void)
{
@@ -106,6 +121,8 @@ io_init(void)
/* io[c] should be NULL. */
io[c] = io_last[c] = NULL;
}
+
+ atexit(print_lpr);
}
void
@@ -333,6 +350,11 @@ io_debug_check_addr(uint16_t addr)
}
#endif
+#include <86box/random.h>
+
+uint8_t post_code = 0xc6;
+uint8_t action = 0x00;
+
uint8_t
inb(uint16_t port)
{
@@ -393,7 +415,33 @@ inb(uint16_t port)
ret = 0xfe;
#endif
- io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
+#if 0
+ if (port == 0x5f7)
+ ret = 0xaf;
+#endif
+
+ if (port == 0x379)
+ ret &= 0xf8;
+
+ // io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
+
+ // if (CS == 0xc000)
+ // pclog("[%04X:%08X] [R] %04X = %02X\n", CS, cpu_state.pc, port, ret);
+
+ // if (port == 0x62)
+ // ret = 0xf2;
+
+ // if (port == 0x62)
+ // ret |= random_generate() & 0x80;
+
+ // if ((port >= 0x60) && (port <= 0x66))
+ // pclog("[%04X:%04X] [R] %04X = %02X\n", CS, cpu_state.pc, port, ret);
+
+ if ((port != 0x0061) && (port != 0x0177) && (port != 0x01f7) && (port != 0x0376) && (port != 0x03c7) && (port != 0x03c8) && (port != 0x03c9) && (port != 0x03f6) && (port != 0x03da)) {
+ io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
+ }
+
+ last_port_read = port;
return ret;
}
@@ -447,7 +495,20 @@ outb(uint16_t port, uint8_t val)
#endif
}
- io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
+ // io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
+
+ if (port == 0x0068)
+ action = val;
+
+ if (port == 0x0080)
+ post_code = val;
+
+ // if (port == 0x3db)
+ // pclog("[%04X:%04X] [W] %04X = %02X\n", CS, cpu_state.pc, port, val);
+
+ if ((port != 0x0061) && (port != 0x00ed) && (port != 0x03c7) && (port != 0x03c8) && (port != 0x03c9)) {
+ io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
+ }
return;
}
@@ -525,7 +586,9 @@ inw(uint16_t port)
if (!found)
cycles -= io_delay;
- io_log("[%04X:%08X] (%i, %i, %04i) in w(%04X) = %04X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
+ if (1) {
+ io_log("[%04X:%08X] (%i, %i, %04i) in w(%04X) = %04X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
+ }
return ret;
}
@@ -594,7 +657,21 @@ outw(uint16_t port, uint16_t val)
#endif
}
- io_log("[%04X:%08X] (%i, %i, %04i) outw(%04X, %04X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
+ if (port == 0x0080)
+ post_code = val;
+
+#if 0
+ if (port == 0x0c02) {
+ if (val)
+ mem_set_mem_state(0x000e0000, 0x00020000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
+ else
+ mem_set_mem_state(0x000e0000, 0x00020000, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);
+ }
+#endif
+
+ if (1) {
+ io_log("[%04X:%08X] (%i, %i, %04i) outw(%04X, %04X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
+ }
return;
}
@@ -704,7 +781,9 @@ inl(uint16_t port)
if (!found)
cycles -= io_delay;
- io_log("[%04X:%08X] (%i, %i, %04i) in l(%04X) = %08X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
+ if (1) {
+ io_log("[%04X:%08X] (%i, %i, %04i) in l(%04X) = %08X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
+ }
return ret;
}
@@ -791,7 +870,9 @@ outl(uint16_t port, uint32_t val)
#endif
}
- io_log("[%04X:%08X] (%i, %i, %04i) outl(%04X, %08X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
+ if (1) {
+ io_log("[%04X:%08X] (%i, %i, %04i) outl(%04X, %08X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
+ }
return;
}
@@ -801,6 +882,7 @@ io_trap_readb(uint16_t addr, void *priv)
{
io_trap_t *trap = (io_trap_t *) priv;
trap->func(1, addr, 0, 0, trap->priv);
+ pclog("[%04X:%08X] io_trap_readb(%04X)\n", CS, cpu_state.pc, addr);
return 0xff;
}
@@ -809,6 +891,7 @@ io_trap_readw(uint16_t addr, void *priv)
{
io_trap_t *trap = (io_trap_t *) priv;
trap->func(2, addr, 0, 0, trap->priv);
+ pclog("[%04X:%08X] io_trap_readw(%04X)\n", CS, cpu_state.pc, addr);
return 0xffff;
}
@@ -817,6 +900,7 @@ io_trap_readl(uint16_t addr, void *priv)
{
io_trap_t *trap = (io_trap_t *) priv;
trap->func(4, addr, 0, 0, trap->priv);
+ pclog("[%04X:%08X] io_trap_readl(%04X)\n", CS, cpu_state.pc, addr);
return 0xffffffff;
}
@@ -825,6 +909,7 @@ io_trap_writeb(uint16_t addr, uint8_t val, void *priv)
{
io_trap_t *trap = (io_trap_t *) priv;
trap->func(1, addr, 1, val, trap->priv);
+ pclog("[%04X:%08X] io_trap_writeb(%04X)\n", CS, cpu_state.pc, addr);
}
static void
@@ -832,6 +917,7 @@ io_trap_writew(uint16_t addr, uint16_t val, void *priv)
{
io_trap_t *trap = (io_trap_t *) priv;
trap->func(2, addr, 1, val, trap->priv);
+ pclog("[%04X:%08X] io_trap_writew(%04X)\n", CS, cpu_state.pc, addr);
}
static void
@@ -839,6 +925,7 @@ io_trap_writel(uint16_t addr, uint32_t val, void *priv)
{
io_trap_t *trap = (io_trap_t *) priv;
trap->func(4, addr, 1, val, trap->priv);
+ pclog("[%04X:%08X] io_trap_writel(%04X)\n", CS, cpu_state.pc, addr);
}
void *
@@ -885,6 +972,9 @@ io_trap_remap(void *handle, int enable, uint16_t addr, uint16_t size)
io_trap_writeb, io_trap_writew, io_trap_writel,
trap);
}
+
+ if ((addr == 0x0170) || (addr == 0x0376) || (addr == 0x01f0) || (addr == 0x03f6))
+ pclog("io_trap_remape(%04X) = %i\n", addr, trap->enable);
}
void
diff --git a/src/mem/rom.c b/src/mem/rom.c
index f9718b7ce..8b2308402 100644
--- a/src/mem/rom.c
+++ b/src/mem/rom.c
@@ -86,6 +86,48 @@ rom_add_path(const char *path)
path_slash(rom_path->path);
}
+static int
+rom_check(const char *fn)
+{
+ FILE *fp = NULL;
+ int ret = 0;
+
+ if ((fn[strlen(fn) - 1] == '/') || (fn[strlen(fn) - 1] == '\\'))
+ ret = plat_dir_check((char *) fn);
+ else {
+ fp = fopen(fn, "rb");
+ ret = (fp != NULL);
+ fclose(fp);
+ }
+
+ return ret;
+}
+
+void
+rom_get_full_path(char *dest, const char *fn)
+{
+ char temp[1024] = { 0 };
+
+ dest[0] = 0x00;
+
+ if (strstr(fn, "roms/") == fn) {
+ /* Relative path */
+ for (rom_path_t *rom_path = &rom_paths; rom_path != NULL; rom_path = rom_path->next) {
+ path_append_filename(temp, rom_path->path, fn + 5);
+
+ if (rom_check(temp)) {
+ strcpy(dest, temp);
+ return;
+ }
+ }
+
+ return;
+ } else {
+ /* Absolute path */
+ strcpy(dest, fn);
+ }
+}
+
FILE *
rom_fopen(const char *fn, char *mode)
{
diff --git a/src/printer/prt_escp.c b/src/printer/prt_escp.c
index 0198444a0..d0836e5f2 100644
--- a/src/printer/prt_escp.c
+++ b/src/printer/prt_escp.c
@@ -1968,16 +1968,16 @@ escp_init(void *lpt)
dev->ctrl = 0x04;
dev->lpt = lpt;
+ rom_get_full_path(dev->fontpath, "roms/printer/fonts/");
+
/* Create a full pathname for the font files. */
- if (strlen(exe_path) >= sizeof(dev->fontpath)) {
+ if (strlen(dev->fontpath) == 0) {
+ ui_msgbox_header(MBX_ERROR, plat_get_string(STRING_ESCP_ERROR_TITLE),
+ plat_get_string(STRING_ESCP_ERROR_DESC));
free(dev);
return (NULL);
}
- strcpy(dev->fontpath, exe_path);
- path_slash(dev->fontpath);
- strcat(dev->fontpath, "roms/printer/fonts/");
-
/* Create the full path for the page images. */
path_append_filename(dev->pagepath, usr_path, "printer");
if (!plat_dir_check(dev->pagepath))
diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot
index ac2db7d07..65cc32f85 100644
--- a/src/qt/languages/86box.pot
+++ b/src/qt/languages/86box.pot
@@ -2135,3 +2135,9 @@ msgstr ""
msgid "Generic PC/AT Memory Expansion"
msgstr ""
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr ""
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr ""
diff --git a/src/qt/languages/ca-ES.po b/src/qt/languages/ca-ES.po
index e49ab3223..cf3d5c7f7 100644
--- a/src/qt/languages/ca-ES.po
+++ b/src/qt/languages/ca-ES.po
@@ -2129,3 +2129,9 @@ msgstr "Expansió de memòria genèrica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansió de memòria genèrica PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "No es pot trobar tipus de lletra de matriu de punts"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Els tipus de lletra TrueType al directori \"roms/printer/fonts\" són necessaris per a l'emulació de la impressora de matriu de punts ESC/P genèrica."
diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po
index cafadd63b..e3d85dd09 100644
--- a/src/qt/languages/cs-CZ.po
+++ b/src/qt/languages/cs-CZ.po
@@ -2129,3 +2129,9 @@ msgstr "Obecné rozšíření paměti PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Obecné rozšíření paměti PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Nastala chyba při nachození jehličkových písem"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Pro emulaci obecné jehličkové tiskárny ESC/P jsou vyžadována písma TrueType ve složce \"roms/printer/fonts\"."
diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po
index aa666cc48..c904cad0d 100644
--- a/src/qt/languages/de-DE.po
+++ b/src/qt/languages/de-DE.po
@@ -2132,3 +2132,9 @@ msgstr "Generische PC/XT-Speichererweiterung"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generische PC/AT-Speichererweiterung"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Nadel-Schriften konnten nicht gefunden werden"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "TrueType-Schriften in das \"roms/printer/fonts\"-Verzeichnis sind für die Allgemeines ESC/P Nadel-Druckers erforderlich."
diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po
index 5cac8968f..ca7a3ad53 100644
--- a/src/qt/languages/es-ES.po
+++ b/src/qt/languages/es-ES.po
@@ -2128,3 +2128,9 @@ msgstr "Expansión de Memoria Generica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansión de Memoria Generica PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "No fué posible encontrar las fuentes matriciales"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Las fuentes TrueType en el directorio \"roms/printer/fonts\" son necesarias para la emulación de la impresora matricial ESC/P genérica."
diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po
index 21dcfd1bc..f044365f0 100644
--- a/src/qt/languages/fi-FI.po
+++ b/src/qt/languages/fi-FI.po
@@ -2129,3 +2129,9 @@ msgstr "Yleinen PC/XT-muistilaajennus"
msgid "Generic PC/AT Memory Expansion"
msgstr "Yleinen PC/AT-muistilaajennus"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Pistematriisifontteja ei löydy"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "TrueType-fontteja kansiossa \"roms/printer/fonts\"-hakemistoon yleinen ESC/P pistematriisitulostin emulointiin."
diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po
index ff8a5168f..3b283b3dd 100644
--- a/src/qt/languages/fr-FR.po
+++ b/src/qt/languages/fr-FR.po
@@ -2129,3 +2129,9 @@ msgstr "Expansion de la mémoire générique PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansion de la mémoire générique PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Impossible de trouver les polices à matrice à points"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Les polices TrueType dans le répertoire \"roms/printer/fonts\" sont nécessaires à l'émulation de l'imprimante générique ESC/P à matrice à points."
diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po
index 9d242f8e0..ed4fdf621 100644
--- a/src/qt/languages/hr-HR.po
+++ b/src/qt/languages/hr-HR.po
@@ -655,7 +655,7 @@ msgid "ZIP images"
msgstr "ZIP slike"
msgid "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory."
-msgstr "86Box nije mogao pronaći upotrebljive ROM datoteke.\n\nMolimte posjetite sknite paket s ROM datotekama i ekstrahirajte paket u \"roms\" mapu."
+msgstr "86Box nije mogao pronaći upotrebljive ROM datoteke.\n\nMolimte posjetite sknite paket s ROM datotekama i ekstrahirajte paket u mapu \"roms\"."
msgid "(empty)"
msgstr "(prazno)"
@@ -2062,7 +2062,7 @@ msgid "Generic Text Printer"
msgstr "Generični tekstovni pisač"
msgid "Generic ESC/P Dot-Matrix Printer"
-msgstr "Generični pisač matrični ESC/P"
+msgstr "Generični matrični pisač ESC/P"
msgid "Generic PostScript Printer"
msgstr "Generični pisač PostScript"
@@ -2129,3 +2129,9 @@ msgstr "Generičko proširenje memorije PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generičko proširenje memorije PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Nije moguće pronaći matrične fontove"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "TrueType fontovi u mapi \"roms/printer/fonts\" potrebni su za emulaciju generičnog matričnog pisača ESC/P."
diff --git a/src/qt/languages/hu-HU.po b/src/qt/languages/hu-HU.po
index 2b5adacf4..b4afd8010 100644
--- a/src/qt/languages/hu-HU.po
+++ b/src/qt/languages/hu-HU.po
@@ -2129,3 +2129,9 @@ msgstr "Általános PC/XT memóriabővítők"
msgid "Generic PC/AT Memory Expansion"
msgstr "Általános PC/AT memóriabővítők"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Nem találja a Dot-Matrix betűtípusokat"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Az általános ESC/P pontmátrixnyomtató emulációjához a \"roms/printer/fonts\" könyvtárban található TrueType betűtípusok szükségesek."
diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po
index c9af80127..73ec57ec0 100644
--- a/src/qt/languages/it-IT.po
+++ b/src/qt/languages/it-IT.po
@@ -655,7 +655,7 @@ msgid "ZIP images"
msgstr "Immagini ZIP"
msgid "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory."
-msgstr "86Box non può trovare immagini ROM utilizzabili.\n\nPlease download a ROM set and extract it into the \"roms\" directory."
+msgstr "86Box non può trovare immagini ROM utilizzabili.\n\nSi prega di scaricare un set di ROM ed estrarlo nella directory \"roms\"."
msgid "(empty)"
msgstr "(empty)"
@@ -2129,3 +2129,9 @@ msgstr "Espansione di memoria generica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Espansione di memoria generica PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Impossibile trovare i font a matrice di punti"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "I font TrueType presenti nella directory \"roms/printer/fonts\" sono necessari per l'emulazione della stampante a matrice di punti ESC/P generica."
diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po
index 9a3289b51..9c6fa66e7 100644
--- a/src/qt/languages/ja-JP.po
+++ b/src/qt/languages/ja-JP.po
@@ -2129,3 +2129,9 @@ msgstr "汎用PC/XTメモリ拡張カード"
msgid "Generic PC/AT Memory Expansion"
msgstr "汎用PC/ATメモリ拡張カード"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "ドットマトリクスフォントが見つかりません"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "汎用ESC/Pドットマトリクスプリンタのエミュレーションには、roms/printer/fontsディレクトリ内のTrueTypeフォントが必要です。"
diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po
index c6928ad43..ec4b20d0d 100644
--- a/src/qt/languages/ko-KR.po
+++ b/src/qt/languages/ko-KR.po
@@ -2129,3 +2129,9 @@ msgstr "일반 PC/XT 메모리 확장 카드"
msgid "Generic PC/AT Memory Expansion"
msgstr "일반 PC/AT 메모리 확장 카드"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "도트 매트릭스 글꼴을 찾을 수 없습니다"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "일반 ESC/P 도트 매트릭스 프린터의 에뮬레이션을 사용하려면 \"roms/printer/fonts\" 디렉터리에 있는 트루타입 글꼴이 필요합니다."
diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po
index 27870db90..c601197ac 100644
--- a/src/qt/languages/nl-NL.po
+++ b/src/qt/languages/nl-NL.po
@@ -2129,3 +2129,9 @@ msgstr "Generieke PC/XT geheugenuitbreiding"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generieke PC/AT geheugenuitbreiding"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Dot-matrix-lettertypen niet gevonden"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "TrueType lettertypen in de map \"roms/printer/fonts\" zijn nodig voor de emulatie van de generieke ESC/P dot-matrix-printer."
diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po
index e42904458..78ded239f 100644
--- a/src/qt/languages/pl-PL.po
+++ b/src/qt/languages/pl-PL.po
@@ -2129,3 +2129,9 @@ msgstr "Generyczne rozszerzenie pamięci PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generyczne rozszerzenie pamięci PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Nie można znaleźć czcionek igłowych"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Czcionki TrueType w katalogu \"roms/printer/fonts\" są wymagane do emulacji generyczniej drukarki igłowej ESC/P."
diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po
index de1bcd544..1594e30ab 100644
--- a/src/qt/languages/pt-BR.po
+++ b/src/qt/languages/pt-BR.po
@@ -2129,3 +2129,9 @@ msgstr "Expansão de memória genérica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansão de memória genérica PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Não foi possível localizar os fontes matriciais de pontos"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P genérica."
diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po
index d4c8bf170..b31f020d4 100644
--- a/src/qt/languages/pt-PT.po
+++ b/src/qt/languages/pt-PT.po
@@ -2129,3 +2129,9 @@ msgstr "Expansão de memória genérica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansão de memória genérica PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Não foi possível encontrar os fontes matriciais de pontos"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P genérica"
diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po
index a2e352faa..a8a4b7794 100644
--- a/src/qt/languages/ru-RU.po
+++ b/src/qt/languages/ru-RU.po
@@ -2135,3 +2135,9 @@ msgstr "Стандартное расширение памяти PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Стандартное расширение памяти PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Невозможно найти матричные шрифты"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Шрифты TrueType в каталоге \"roms/printer/fonts\" необходимы для эмуляции стандартного матричного принтера ESC/P."
diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po
index 6b2074d47..e789d9ef9 100644
--- a/src/qt/languages/sk-SK.po
+++ b/src/qt/languages/sk-SK.po
@@ -2129,3 +2129,9 @@ msgstr "Všeobecné rozšírenie pamäte PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Všeobecné rozšírenie pamäte PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Nastala chyba pri hľadaní ihličkových písem"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Písma TrueType v adresári \"roms/printer/fonts\" sú potrebné na emuláciu generickej ihličkovej tlačiarne ESC/P."
diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po
index 9d8ccaaf9..1394a3635 100644
--- a/src/qt/languages/sl-SI.po
+++ b/src/qt/languages/sl-SI.po
@@ -823,10 +823,10 @@ msgid "Are you sure you want to exit 86Box?"
msgstr "Ste prepričani, da želite zapreti 86Box?"
msgid "Unable to initialize Ghostscript"
-msgstr "Ne morem inicializirati Ghostscript"
+msgstr "Ghostscript-a ni bilo mogoče inicializirati"
msgid "Unable to initialize GhostPCL"
-msgstr "Ne morem inicializirati GhostPCL"
+msgstr "GhostPCL-ja ni bilo mogoče inicializirati"
msgid "MO %i (%ls): %ls"
msgstr "MO %i (%ls): %ls"
@@ -2129,3 +2129,9 @@ msgstr "Generična razširitev pomnilnika PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generična razširitev pomnilnika PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Matričnih pisav ni bilo mogoče najti"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Matrične pisave v imeniku \"roms/printer/fonts\" so potrebne za emulacijo generičnega matričnega tiskalnika ESC/P."
diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po
index 288412154..81866b3ce 100644
--- a/src/qt/languages/tr-TR.po
+++ b/src/qt/languages/tr-TR.po
@@ -2129,3 +2129,9 @@ msgstr "Sıradan PC/XT bellek artırma"
msgid "Generic PC/AT Memory Expansion"
msgstr "Sıradan PC/AT bellek artırma"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Dot Matrix yazı tipleri bulunamıyor"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Sıradan ESC/P Dot Matrix Yazıcının emülasyonu için \"roms/printer/fonts\" dizinindeki TrueType yazı tipleri gereklidir."
diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po
index 5ce59be01..9b57ac03e 100644
--- a/src/qt/languages/uk-UA.po
+++ b/src/qt/languages/uk-UA.po
@@ -2135,3 +2135,9 @@ msgstr "Загальне розширення пам'яті PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Загальне розширення пам'яті PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Неможливо знайти матричні шрифти"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Шрифти TrueType у каталозі \"roms/printer/fonts\" потрібні для емуляції загального матричного принтера Generic ESC/P."
diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po
index 707c7ae7f..fafbbc160 100644
--- a/src/qt/languages/vi-VN.po
+++ b/src/qt/languages/vi-VN.po
@@ -2129,3 +2129,9 @@ msgstr "Chung mở rộng bộ nhớ qua PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Chung mở rộng bộ nhớ qua PC/AT"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "Không tìm thấy phông chữ ma trận chấm"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "Cần có phông chữ TrueType trong thư mục \"roms/printer/fonts\" để mô phỏng máy in generic ESC/P ma trận chấm."
diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po
index 81451b2b3..ec5d2c252 100644
--- a/src/qt/languages/zh-CN.po
+++ b/src/qt/languages/zh-CN.po
@@ -2129,3 +2129,9 @@ msgstr "通用 PC/XT 内存扩展"
msgid "Generic PC/AT Memory Expansion"
msgstr "通用 PC/AT 内存扩展"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "无法找到点阵字体"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "仿真通用 ESC/P 点阵打印机需要使用 \"roms/printer/fonts\" 目录中的 TrueType 字体。"
diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po
index 9bf8edfc6..b0d8163cb 100644
--- a/src/qt/languages/zh-TW.po
+++ b/src/qt/languages/zh-TW.po
@@ -2062,7 +2062,7 @@ msgid "Generic Text Printer"
msgstr "通用文字印表機"
msgid "Generic ESC/P Dot-Matrix Printer"
-msgstr "通用 ESC/P 點矩陣"
+msgstr "通用 ESC/P 點矩陣印表機"
msgid "Generic PostScript Printer"
msgstr "通用 PostScript 印表機"
@@ -2129,3 +2129,9 @@ msgstr "通用 PC/XT 記憶體擴充"
msgid "Generic PC/AT Memory Expansion"
msgstr "通用 PC/AT 記憶體擴充"
+
+msgid "Unable to find Dot-Matrix fonts"
+msgstr "無法找到點矩陣字型"
+
+msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
+msgstr "通用 ESC/P 點矩陣印表機的模擬需要 \"roms/printer/fonts\" 目錄中的 TrueType 字體。"
diff --git a/src/qt/qt_platform.cpp b/src/qt/qt_platform.cpp
index dd6c34efc..561c94d8a 100644
--- a/src/qt/qt_platform.cpp
+++ b/src/qt/qt_platform.cpp
@@ -639,6 +639,8 @@ ProgSettings::reloadStrings()
translatedstrings[STRING_MONITOR_SLEEP] = QCoreApplication::translate("", "Monitor in sleep mode").toStdWString();
translatedstrings[STRING_NET_ERROR] = QCoreApplication::translate("", "Failed to initialize network driver").toStdWString();
translatedstrings[STRING_NET_ERROR_DESC] = QCoreApplication::translate("", "The network configuration will be switched to the null driver").toStdWString();
+ translatedstrings[STRING_ESCP_ERROR_TITLE] = QCoreApplication::translate("", "Unable to find Dot-Matrix fonts").toStdWString();
+ translatedstrings[STRING_ESCP_ERROR_DESC] = QCoreApplication::translate("", "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulatio of the Generic ESC/P Dot-Matrix Printer.").toStdWString();
}
wchar_t *