Commit Graph

137 Commits

Author SHA1 Message Date
Lili1228
0f7b52ab45 ESC/P 2: license, printing quality switch, stdbool.h, some clean-up 2026-02-08 13:13:25 +01:00
Lili1228
9aa6008e54 ESC/P 2: Implement DC1 and DC3 2026-02-08 09:57:49 +01:00
Lili1228
0b2cc7cee8 ESC/P 2: Fix dot size and non-adjacent mode with graphics 2026-02-07 23:11:32 +01:00
Lili1228
c3094d022d ESC/P 2: Exact paper sizes, 1/36" margins 2026-02-06 22:32:46 +01:00
Lili1228
50b961e0b6 ESC/P 2: Add "Auto LF" DIP switch 2026-02-06 20:02:32 +01:00
Lili1228
6869367141 ESC/P 2: Fix ESC J on 9-pin printers 2026-01-31 21:24:29 +01:00
Lili1228
397120b282 ESC/P 2: 9-bit graphics mode (9-pin ESC/P) 2026-01-31 16:26:06 +01:00
Lili1228
c850beccc9 ESC/P 2: Implement ESC 3, A, M, P, \ for 9-pin ESC/P
Also removed forward declarations.
2026-01-31 15:01:56 +01:00
Lili1228
e7fee34332 ESC/P 2: 4 versions, filtering by version, selectable paper.
The four versions are:
- EX-1000 and 7 other early printers (including FX-80, the only Epson
  available OOTB for Windows 1.03), have ESC i and ESC j.
- 9-pin ESC/P, a superset of EX-1000 besides ESC i and ESC j.
- 24-pin ESC/P in 360 DPI instead of 240.
- ESC/P 2 with raster graphics.

As for paper, four sizes: Letter, A4, Legal, B4. The former ones are
mainly for EX-800, the latter two are sideways and meant for EX-1000.

I did some other minor changes, like converting a bunch of defines to enum.
2026-01-31 14:41:04 +01:00
OBattler
7bbbf48913 PostScript and PCL printers: Do not attempt to load the library if the language is set to raw. 2026-01-27 18:58:39 +01:00
OBattler
51e0e88329 More LPT device sanitization, un-dev-branch the Generic PCL printer, add language selection to it and the PostScript printer (including a Raw option), and translate the missing strings. 2026-01-27 09:40:53 +01:00
OBattler
9b7b92622b Restructure LPT devices so that lpt_device_t is now only used internally while the exposed LPT devices are now regular device_t's. 2026-01-27 06:47:08 +01:00
OBattler
a3fbb33e10 Generic PCL Printer: Set language version to PCL 5C (PCL 5E is still supported as PCL 5C is a superset of it) and apply a few fixes, including no longer incorrectly processing the 1B 0E escape (it appears that's actually used as part of PCL 5C), fixes the HP Color LaserJet drivers when outputting to PDF. 2026-01-26 09:40:24 +01:00
OBattler
e5d2995352 PCL printer: filter out all the HP PJL stuff in order to produce clean prints using Windows 3.1x drivers. 2026-01-11 07:32:22 +01:00
OBattler
53ead845ba Improve some sanity check and convert any pending output to a PDF file on printer reset and timeout. 2026-01-10 07:35:33 +01:00
Jasmine Iwanek
3c5190a0db Header cleanups (1/2) 2025-09-21 00:48:38 -04:00
starfrost013
a44ad7e776 Remove 32-bit core dynarec 2025-09-14 15:50:01 +01:00
OBattler
7c13047fe6 Printers: Use the new timer API for the timeout timers, fixes printers on faster emulated CPU's. 2025-09-01 01:03:06 +02:00
OBattler
16d818ee1b ESC/P2 Printer: Use the Courier font when Roman is set in non-proportional mode. 2025-08-28 18:30:01 +02:00
Tiago Gasiba
331278084d Display::Name -> VMManager::Display::Name + changes for FreeBSD 2025-08-28 16:48:24 +02:00
OBattler
a680f20c33 Fixed LPT ECP operation and UM8669F IRQ and DMA assigning, fixes Windows 95 printing. 2025-08-28 14:42:57 +02:00
Lili Kurek
162697a412 ESC/P: it's actually ESC/P 2, fill international character sets 2025-08-27 07:59:02 +00:00
OBattler
c2df83d4f0 Printers: Fix two recently introduced warnings. 2025-08-04 12:24:11 +02:00
Jasmine Iwanek
b2067d7946 Paper Sizes 2025-08-03 23:26:14 -04:00
Jasmine Iwanek
60d8ea389f Support for printer configuration 2025-08-03 23:19:09 -04:00
OBattler
b9e294b781 Trned the LPT ports into device_t's. 2025-08-02 14:51:28 +02:00
Alexander Babikov
4a2f381579 Add "Printer" to the name of generic ESC/P printer
Fixes broken translations
2025-08-01 03:17:33 +05:00
Cacodemon345
9cad5f501b Timer improvements for emulated printers 2025-07-06 01:23:58 +06:00
Jasmine Iwanek
58aa261273 LPT ECP/EPP support
Co-Authored-By: Miran Grča <oubattler@gmail.com>
2025-06-24 08:18:39 -04:00
Alexander Babikov
5779340e6d ESC/P: Fix a handle leak on reset 2025-06-08 15:37:38 +05:00
OBattler
5c4fcfaf85 ESC/P Printer: No longer assume roms/ is where the binary is, fixes #5221. 2025-02-17 04:49:43 +01:00
Jasmine Iwanek
d00f80d3ce General changes from the obattler_202406 branch
Co-Authored-By: Miran Grča <oubattler@gmail.com>
2025-02-09 02:20:36 -05:00
Jasmine Iwanek
4e6f29a7d5 malloc to calloc 2025-02-01 15:38:36 -05:00
OBattler
c38fc46670 More language fixes and the remaining four languages (Ukrainian, Vietnamese, Simplified Chinese, and Traditional Chinese). 2024-11-19 03:46:03 +01:00
Jasmine Iwanek
f4b63caf0b One line per file in CmakeLists.txt 2024-09-04 18:34:06 -04:00
OBattler
e377e58881 Assorted fixes and Dev branched the Matrox G100 and the PCL printer. 2024-07-26 00:39:11 +02:00
OBattler
3f4df11329 Fixes to the GhostPCL library names on Linux and Mac. 2024-06-22 18:30:20 +02:00
Cacodemon345
a44936f3e1 Add Generic PCL Printer 2024-06-21 15:36:28 +06:00
RichardG867
e3c39170ad Re-enable harfbuzz duplicate symbol workaround for now as my gcc 13 setup triggers it 2024-06-10 19:03:31 -03:00
OBattler
80eedca82a Comment out the workaround for duplicate harfbuzz variales - it appears to no longer be needed. 2024-06-10 03:55:12 +02:00
Miran Grča
29ac8fd28b Fixed line feed in prt_escp.c
Per fix by Patrick-Barry, fixes #4477.
2024-05-22 15:46:53 +02:00
Alexander Babikov
8e06b5449f Overhaul plat_get_string()
Now takes constants with human-readable names instead of
Win32 string table IDs, language.h is no longer needed

ui_msgbox*() no longer accepts string IDs as arguments directly,
plat_get_string() must be explicitly called to retrieve the string
2024-03-20 20:33:28 +05:00
Alexander Babikov
8b4c93fdfe ESC/P: Set draft print quality by default 2023-12-25 17:34:34 +05:00
Alexander Babikov
7ff4fd355f ESC/P: Add handling for a separate italic dot matrix font 2023-12-25 17:34:32 +05:00
Alexander Babikov
a9d96371dc ESC/P: Add workaround for glyphs with negative offsets
Fixes characters disappearing when printed very close to the paper edges
2023-12-25 15:04:28 +05:00
Alexander Babikov
e812b3c3b1 ESC/P: Use the new dot matrix font
Also remove the fallback to Courier as it's no longer needed
2023-12-25 15:04:27 +05:00
Alexander Babikov
bf1f425267 prt_escp.c: Try to use courier.ttf if dotmatrix.ttf is missing 2023-12-19 03:14:45 +05:00
Alexander Babikov
ff446fab9b prt_escp.c: Fall back to roman.ttf instead of dotmatrix.ttf for unhandled typefaces 2023-12-19 03:14:45 +05:00
Jasmine Iwanek
81bb5e564b Better fallthrough annotation macro. 2023-08-09 20:09:36 -04:00
Jasmine Iwanek
d2f42198fd Fix clang build failure 2023-07-26 12:41:18 -04:00