forked from joncampbell123/dosbox-x
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
1971 lines (1952 loc) · 101 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(next version)
- Added option to control how unhandled IRQs are dealt with.
One option, mask_isr, is derived from em-dosbox.
- Code added to read the screen dimensions in Linux/X11,
either through XRandR or through the base X11 API.
- Code added to read and store the dimensions, size, and
DPI (Dots per Inch) of the screen.
- Fixed bug that enabled IBM style APM BIOS in PC-98 mode.
- For PC-98 mode, PIC emulation by default (but controllable
through dosbox.conf) now initializes the PIC at startup to
return the ISR (interrupt in-service) register instead of
the IRR (interrupt request) register. This fixes FM
music problems with Blackbird by Vivian caused by a
programming mistake in the FM interrupt handler.
- PIC emulation now accepts a dosbox.conf option not to mark
the cascade interrupt as in service, for troublesome games.
- VESA BIOS emulation now supports a packed 16-color (4bpp)
mode as seen on a Toshiba Libretto (Chips & Tech) system.
The packed format is different than the normal planar 16-color
SVGA modes seen on most systems.
- INT 33h no longer reports relative mouse motion unless the
user captures the cursor.
- Fixed EGA 16-color display modes (M_EGA) to honor CGA and
Hercules compatible mapping modes (bits 0 and 1 of the
CRTC mode control) and limit memory display to 8KB or 16KB
accordingly. This fixes the mode select screen in the game
"Prehistorik 2".
- Removed Sound Blaster goldplay mode + sample accurate mode
warning, goldplay mode no longer has issues with sample
accurate mode.
- Mixer "sample accurate" mode fixed to work again.
- Windows SDL1 builds fixed to work around Windows SDK-level API
limitation that normally prevents Win32 applications from
fully receiving WM_KEYDOWN events for the left/right shift
keys independently. Left and right shift keys are now fully
usable on Windows builds (i.e. for use with pinball games).
- INSTALL.MD guide and test files (Aybe)
- CONFIG -get now populates %CONFIG% environment variable with
configuration setting (follow DOSBox SVN behavior)
0.82.9
- "Always on top" mode is now available for Mac OS X builds.
- PS/2 mouse emulation fixed not to send relative mouse motion
unless mouse cursor is captured.
- Shell no longer provides MEM.COM if machine=pc98 or cputype=8086.
MEM.COM is not compatible with either case.
- INT 10h emulation will now set the S3 LFB enable bit for VESA
SVGA modes, unless machine=vesa_nolfb was specified.
- VGA emulation revised to report possible known problems with
Windows 3.1 with regard to LFB base address or memalias setting.
- VGA emulation fixed to emit warning if memalias=24, for S3 LFB,
if machine=svga_s3, to inform the user that the configuration is
known to cause the Windows 3.x driver to crash.
- VGA emulation will no longer report S3 linear framebuffer address
unless machine=svga_s3. The LFB address doesn't matter for anything
other than SVGA S3 emulation.
- S3 emulation will now automatically disable PCI VGA emulation if
constraints prevent DOSBox-X from setting a linear framebuffer
address aligned to 32MB (as required for PCI emulation).
- VGA emulation fixed to pick a more appropriate linear framebuffer
(S3) address if memalias is set to a value below 32.
- Added dosbox.conf option "pci vga" to control whether the VGA
emulation appears as a PCI or ISA device.
- ROM BIOS now forces reported RAM down to make room for BIOS
alias at top of memory instead of throwing an E_Exit error.
- Fixed Hercules emulation (and MDA) so that the Hercules palette
is always enforced. This fixes a bug where switching to HGC
graphics mode resulted in monochrome blue/black graphics instead
of the intended white/green/amber color expected.
- Added MDA emulation (machine=mda). It functions like
machine=hercules minus the graphics mode and Hercules-specific
extensions to the base MDA card.
- DOSBox shell no longer accepts dosbox.conf settings as commands
by default, unless enabled in dosbox.conf. Typing "cycles" will
no longer show cycle count. The dosbox.conf setting allows the
user to enable it again i.e. for compatibility with DOSBox SVN.
This is to prevent dosbox.conf settings from polluting the
available commands at the shell and conflicting with shell and
executable names.
- EGA emulaton fixed to obey Color Plane Enable register in
16-color planar modes.
- Fixed BIOS model byte to report PS/2 model 30 correctly when
machine=mcga, to allow certain DOS games to detect MCGA that way.
- CGA mode/color select registers are readable on MCGA, fix 3D8-3D9h
to reflect that.
- INT 10h fixed to properly allow/deny AH=10h, AH=11h, and AH=12h calls
according to machine= type instead of mistakes that blocked too many
calls.
- CGA composite mode should not be available when machine=mcga.
- Fixed INT 10h to report MCGA color display if machine=mcga.
- MCGA (IBM PS/2 Multi-Color Graphics Adapter) emulation added.
- bitop C++11 self-test disabled for Microsoft Visual Studio builds.
Microsoft's compiler can't handle them for some reason.
- Added DOSLIB DSXMENU.EXE to the built-in executable list.
DSXMENU.EXE allows DOS CONFIG.SYS style menus to be set up to
run commands based on menu selection.
- PC-98 ANSI emulation fixed to use the number of rows on the screen,
not cursor position, to range-clip ANSI cursor positioning.
- Added code to have DX-CAPTURE wait 3 seconds (or until ENTER/SPACE
is pressed) after the program exits, before stopping capture.
- DOSBox-X menus now allow runtime selection of capture format
(AVI+ZMBV or MPEG-TS H.264). Changing while capturing will stop/start
capture correctly.
- Added switches to DX-CAPTURE to allow specifying audio, multitrack audio,
and video as well.
- DX-CAPTURE shell command added. The command to run is specified
after DX-CAPTURE and DX-CAPTURE will start video capture, run the
program, then stop capture when the program exits.
- VGA/SVGA emulation fixed to enforce 256KB (64KB planar) wraparound
when emulating stock VGA modes (not SVGA/VESA BIOS). Some
demoscene productions rely on the 256KB wraparound when showing
scrolling credits.
- Gravis Ultrasound emulation now uses I/O callout system, with
I/O port handling to emulate ISA bus 10-bit decoding (but with
consideration of GUS MAX 7xx registers) so that GUS I/O ports
are visible every 1000h I/O ports. A demoscene production was
found that relies on an alias of GUS ports at 5xxxh rather than
using the I/O ports directly.
- Mouse emulation no longer sends motion to serial and PC-98 mouse
emulation unless mouse cursor has been captured.
- Mouse emulation fixed to set sensitivity and mickey count even if
int33=false on mouse emulation reset.
- Debugger fixed to paginate commands with a lot of output, including
HELP, PIC, and various commands to dump interrupts and GDT/IDT tables.
- CPU core no longer triggers Double Fault if Divide Overflow
occurs within Divide Overflow. This is needed for bizarre anti-debugger
obfuscated code seen in a demoscene production, where the program
wraps the demo in a mini-filesystem emulated by trapping INT 21h.
- cputype= dosbox.conf setting fixed to allow selecting between
new 486 emulation (cputype=486) and old 486 emulation (cputype=486old).
The "old" 486 core emulates older 486 CPUs that differ significantly
from the newer 486 CPUs that inherited features from the Pentium.
- IRQ hack setting for GUS and Sound Blaster is now a list so that
multiple hacks can be specified, but in a way that is backwards
compatible with existing dosbox.conf files.
- IRQ hack option for Gravis Ultrasound added.
- INT 20h emulation fixed to work with demoscene productions that
call INT 20h in a way that the interrupt frame wraps around the
64KB limit of the stack.
- XMS emulation now has a dosbox.conf setting to control the number
of XMS handles available.
- Added INT 33h option not to round mouse cursor coordinates to text
cell boundaries in text mode. Some demoscene productions were found
that detects mouse movement, but reads initial position from text mode
before switching to graphics.
- Removed IRQ0 error measurement hack, to match DOSBox SVN. This fixes
timing problems with some demoscene productions. The error measurement
hack was apparently added for Microsoft Flight simulator, but has not
been needed since and has been causing timing issues since.
- Fixed INT 10h VGA save state function to program the Attribute Controller
properly so that the screen is not left blank after the call.
- 8042 keyboard emulation now initializes port 60h to 0xAA on hardware
reset and initialization. Some DOS games and demoscene productions
need something with bit 7 set in the register at startup in order not
to act as if a key was immediately pressed.
- Add printer emulation from Daum's branch of DOSBox, add FreeType 2.9.1
to go with it (Alex/AT)
- Add keyboard type setting, for use in future development.
- PCjr emulation fixed to emulate PC/XT style NMI mask at port A0h
rather than emulate the secondary PIC.
- Code of Conduct revised to make it clear that forks/derivatives CAN
have their own Code of Conduct but that it only applies to that fork
or derivative version. No forking DOSBox-X, changing the code of
conduct, and enforcing it on anyone outside your fork.
- CPU normal core fixed to clear ZF flag after MUL when cputype=8086,
which fixes problems with MSD.EXE mis-detecting the CPU as a NEC V20.
- Fixed PCjr emulation not to allow UMB (upper memory blocks) since
that seems to cause stability issues with emulation. Also, PCjr
does not have UMB as far as I know.
- Fixed PCjr not to re-read port 60h from IRQ1 handler.
- Fixed PCjr not to emulate INT 15h keyboard hook.
- PCjr keyboard emulation fixed to trigger NMI and reflect to IRQ1
the way it actually works on IBM PCjr systems, which also fixes
keyboard control issues with the PCjr version of "Pitfall".
- configure.ac now provides an option for compiler optimization (Yksoft1)
- Code of Conduct, initial version, added to source tree
- PC-98 palette save/load state
- CPU, memory, VGA palette and attribute controller save/load state
- DOS SHELL now implements INT 0x2E to allow DOS programs to invoke
shell commands through COMMAND.COM (borrowed from DOSBox SVN).
- Added dosbox.conf option to control the physical memory address of the
S3 SVGA linear framebuffer.
- Save/load state system added, currently very minimal and experimental.
- Appveyor XML added to source tree (Allofich)
- Fixed *most* SDL2 refresh problems.
- Sound Blaster Pro mixer volume fixed to return reserved bits SET rather
than CLEAR. Some demoscene productions detect Sound Blaster Pro by whether
these bits remain set when written. This fix allows them to detect Sound
Blaster Pro as Sound Blaster Pro.
- VGA emulation fixed not to add 2 scanlines twice, which fixes VGA vertical
timing and scanline count and fixes the scroller in "Inconexia".
- Gravis Ultrasound emulation now prints a warning if the game/demo attempts
a DMA transfer while leaving the DMA channel masked.
- Fixed Gravis Ultrasound emulation to mask DRAM peek/poke I/O to the 1MB
offered by the card, which fixes GUS problems with a demoscene production
that has random values in DRAM address bits 23-20.
- Added dosbox.conf option that, if set, lets Gravis Ultrasound emulation
start a DMA transfer if the game/demo is polling the DMA control register
when DMA is unmasked and DMA terminal count has not occured, which helps
some demoscene productions.
- Added "PIC unmask IRQ" option for Gravis Ultrasound emulation.
- Gravis Ultrasound emulation now has a dosbox.conf setting to initialize
the hardware at startup as if ULTRINIT had been run.
- Added dosbox.conf option for VESA BIOS emulation that, if set, instructs
non-LFB modes to report 64KB windows but map 128KB from the start of
the window, which helps (but does not fully solve) some Demoscene
productions with redraw problems handling non-LFB as if LFB.
- Fixed ET4000 emulation to support the hretrace "wobble" needed for
"Copper"
- VGA DAC/attribute controller behavior updated to reflect actual behavior
as seen on an IBM PS/2 VGA model, as well as almost any SVGA clone.
- VGA DAC behavior unique to Tseng ET4000 implemented when machine=svga_et4000.
256-color mode on the ET4000 seems to map the low 4 bits through the
attribute controller and, if enabled, the upper 4 bits through the
color select register. Note this behavior is REQUIRED for the
"copper" demo to display properly.
- VGA palette, DAC, and attribute controller emulation updated to
reflect actual VGA behavior, including the way that 256-color mode
is mapped through the attribute controller.
- Sierra highcolor DAC can now be enabled for any VGA/SVGA emulation
- Cleanup and reorganization of scaler, aspect ratio handling (Alex/AT)
- MinGW config.h builds fixed to enable Direct3D (Alex/AT)
- Build fixes for SDL1 and Linux and extended functions (JP Cimalando)
- Fixed ALSA MIDI mistake preventing the creation of subscription
ports (JP Cimalando)
- Previous release broke SVGA 16-color planar modes by masking video
memory to 64KB planar boundaries at all times, fixed code to do so
only for non-VESA modes. 1024x768 16-color mode works again.
- Fixed user-defined VESA BIOS modes to validate the required video
memory against the available memory on the emulated SVGA hardware.
- VESA BIOS modelist generaton moved into it's own function. Modelist
is regenerated upon editing/deletion of modes.
- VESA BIOS modes added as suggested by hail-to-the-ryzen
- VESA BIOS emulation now allows scriptable editing, deletion, and
mode renaming of VESA BIOS modes for use with picky DOS games and
demoscene productions that assume mode numbers.
- Added VESA BIOS mode 0x136 as an alias for 320x200x16bpp mode
- Enhancements to GFX_CaptureMouse and CaptureMouseNotify added
- Fixed scaler change detection to use sizeof(int) properly than assume
a certain byte count
- Fixed undefined sse2_available reference issue in certain builds
0.82.8
- New xBRZ scaler (with bilinear mode) (Alexat)
- Fixed aspect ratio correction to use the ratio given by VGA emulation
instead of assuming 4:3
- output=surface and xBRZ now permit filling the window just like
output=opengl and output=direct3d
- Added critical section around Windows SDL 1.x resize code to solve
the remaining 0.5% probability that resizing the window causes move
and resize to stop working in Windows 10.
- INT 10h AH=10h now ignores AL=3 in PCjr mode.
- Fixed keyboard handler bug in PCjr mode that caused some CPU
register corruption and general crashiness in games.
- Improved shell: (Aybe, Joncampbell123)
- Ctrl+Left and Ctrl+Right permits word-navigation.
- Added emulation of 'Ins' key behavior.
- Num Lock, Caps Lock, Scroll Lock are now synchronized at startup
and when DOSBox-X window gains focus again (Windows). (Aybe)
- Added visual feedback to Hat/D-pad buttons in mapper. (Aybe)
- Added documentation for 'dir' command sorting switches. (Aybe)
- Menu 'Show console' is now checked with '-console' (SDL1). (Aybe)
- Improved joystick support (see README.joystick): (Aybe)
- Added deadzone and response for joystick axes.
- Axes can be remapped for devices with questionable layout.
- User-settable deadzones for joystick bindings in mapper,
mappings like WSAD keys to axes is less frustrating.
- Improved mouse integration (Aybe):
- Now by default DOSBox-X does not emulate mouse movement when the mouse
is not locked. This gives a consistent experience when compared to host OS.
For the old behavior, use [sdl] mouse_emulation=always.
- Added visual or auditive feedback about auto-lock state (Windows).
This feature can be switched off, use [sdl] autolock_feedback=none.
- Added CAPMOUSE program for capturing/releasing mouse from command line. (Aybe)
0.82.7
- Mac OS X builds now honor showmenu=false by leaving the
stock SDL menu in place at startup.
- Default minimum MCB free/base is now 0x100, to sidestep
unknown unstable DOS application behavior when DOS
applications are loaded at around segment 0x800.
This also puts DOSBox-X at parity with the base memory
behavior of DOSBox SVN.
- Add dosbox.conf option to set Sound BIOS enable
bit in non-volatile RAM (PC-98) that tells older
PC-98 games the FM card is present (Yksoft)
- BOOT updated to boot D88 except for 2D format which
is generally used by PC-88 disk images.
- Added D88 disk image support
- CMake files added (Aybe)
- PIC timing updated to use "double" float type for
more precision, but as a typedef for future support
as a compile time option.
- Removed geometry checks from INT 1Bh FDC functions,
to allow non-uniform disks to work.
- MinGW builds now allowed to use Direct3D.
- Direct3D output fixed to use the same texture
coordinate, window fitting, and positioning
logic as OpenGL.
- Update zlib and libpng libraries in-tree.
- Fixed VFD disk image support to correctly signal
failure to detect geometry, to avoid divide by
zero crash with FAT driver.
- showmenu= now taken into consideration whether to
show the menu bar at startup
- Fixed get_item() E_Exit crash if menus asked to
show from dosbox.conf
- SDL drawn menus fixed to integrate with Direct3D
output on Windows.
- PC-98 mode can now boot floppy disk images where the
boot sector is 128 or 256 bytes/sector despite
track 1 and higher having 1024 bytes/sector.
- General codebase cleanup, compiler warning cleanup.
- Enable XInput support on Windows (Aybe)
- Fixed SDL drawn menus to use std::vector properly,
not to hold onto iterators while resizing the vector
and popping things off the top.
- PC-98 INT 1Bh "read id" floppy disk call fixed to
cycle through sector numbers. Some bootable PC-98
games use "MEGDOS" which polls this BIOS call before
attempting to read the disk. If the sector numbers
never cycle, "MEGDOS" will not attempt to read the
disk.
- Fixed bug that prevented some menu options (such as
"aspect ratio") from working if still in the BIOS or
booted into a guest OS.
- PC-98 mode fixed to ignore "mainline compatible mapping".
That mapping mode refers to DOSBox SVN which never
supported PC-98 mode anyway.
- Fix PC-98 INT 1Bh "test read" call, which then allows
"cherry bomb" to run.
- Remove geometry checks in PC-98 INT 1Bh BIOS call, so
that FDD images with odd sector sizes can work.
- ROM BIOS now automatically occupies E8000-FFFFF instead
of F0000-FFFFF when in PC-98 mode.
- Most 128 byte/sector FDD images appear to jump to
E800:0002. I'm guessing that's ROM BASIC, so add a
callback at that location to catch these boot disks
and show a message instead of allowing the boot
sector to jump to nothing and crash.
- PC-98 BOOT fixed to check for and support booting from
FDD images where track 0 contains 128 byte/sector
boot sectors.
- PC-98 INT 1Bh support fixed to support reading/writing
sector sizes other than the one sector size reported
by the image. It is now possible to read the other
sector sizes from an FDD/VFD image.
- Fixed somewhat serious bug that, when compiled against
Microsoft C++, causes the AVI writer to use the 32-bit
lseek() function instead of the 64-bit lseek64() function.
Prior to this fix, AVI captures would begin to corrupt
themselves after growing past 2GB in size.
- Cleanup code, fix compiler warnings, typecast problems,
C/C++ conformance problems as reported by GCC 4.8,
GCC 7.3.0 (MinGW), Visual Studio 2017, and Clang/LLVM
on Mac OS X.
- FM Towns machine type stub, for anyone interested in
forking DOSBox-X to implement FM Towns emulation.
- Code cleanup, refactor, according to compiler warnings.
- SDL drawn menus fixed to copy Direct3D backbuffer to
the SDL surface when popup occurs. This allows the
menus to overlap the Direct3D display correctly.
- Fixed Direct3D output so that when composing the next
frame in the backbuffer, it also copies the SDL drawn
menu from the SDL surface in order to keep it on
screen.
- Direct3D output updated to follow SDL clip rectangle
struct, in the same exact manner as the OpenGL output.
This also permits the Direct3D output to correctly size
itself and leave space at the top for the SDL drawn
menus.
- Fixed dynamic core entry point to push/pop EBP because
debug builds need the compiler to track the stack frame.
- Updated in-tree zlib and libpng libraries to the latest
provided by both projects.
- Fixed VFD (FDD) disk image support to signal to FAT driver
properly an error if it could not determine a geometry.
- Fixed code breakage with SDL2 that prevented compilation
with Munt (MT32) emulation enabled. SDL2 builds now allow
MT32 emulation.
- Mac OS X builds now compile against the in-tree zlib and
libpng libraries for consistency.
- MinGW builds now compile against the MinGW provided zlib
and the in-tree libpng library for consistency.
- Enabled MinGW builds to use Direct3D and Direct3D shaders.
- Added code to auto-detect the VirtualBox display driver
in Windows build, because OpenGL output doesn't work
in Windows XP under VirtualBox. The change will switch
the default output to "surface" if VirtualBox is detected,
else will retain the "opengl" default. This change applies
only to MinGW builds and not HX DOS or main VS2017 builds.
- Added PC-98 INT DCh emulation for function call that
writes a char to the screen, allowing Eve Burst Error
to clear the function row
- Added command line option to allow skipping the 1-second
wait in the BIOS startup screen.
- SDL2 builds now support use of the SDL drawn menu with
a touchscreen device.
- Fixed up SDL2 support code to compile correctly on
Mac OS X.
- Fixed up SDL2 compilation to automatically use the
SDL2 library on the system, or if that is not available,
use the SDL2 library in-tree. There are no plans to make
modifications to the in-tree SDL2 code.
- Added code to read and discard OpenGL error code before
creating font texture, to avoid false failure handling.
This fixes font rendering on Windows MinGW builds when
output=opengl.
- OpenGL SDL drawn menus fixed to ensure the menu contents
have been redrawn at least twice. One for each OpenGL
buffer because DOSBox-X uses the double-buffered mode.
- SDL drawn menus implemented for output=opengl. The menu
bar in Linux builds is now available in OpenGL mode.
- SDL drawn menus fixed to redraw only when state changes,
and to clean up menu drawing code.
- US keyboards can now enter the "Ro" key in PC-98 mode.
Default binding is set up to map the Windows Menu key
as Ro in PC-98 mode.
- VGA option change code fixed to trigger scaler redraw
correctly. Changing video modes or changing between
8/9-pixel VGA text no longer leaves artifacts on the
screen.
- Added code to force redrawing additional frames when
output=opengl, in order to correct a bug with Linux/X11
and MesaGL where the first OpenGL buffer swap after
SDL_SetVideoMode() is misplaced when the window size
changes.
- Renderer SSE line comparison fixed to use correct sizeof()
of the integer type during compare.
- Renderer fixed not to use SSE and non-SSE line comparision
at the same time, if SSE was enabled at compile time.
- Fixed in-tree SDL 1.x library to allow DOSBox-X to disable
auto-refresh of the window in Linux/X11 after SDL_SetVideoMode
to prevent visible flickering when resizing the window.
- Conditional support for Direct3D (9) output enabled for
MinGW builds, if the MinGW headers are available (yksoft1).
Option is disabled by default.
- Configuration GUI dialog box widened to accomodate buttons
that were previously cut off on the right.
- Replace E_Exit() with LOG_MSG() for key codes from the mapper
that a keyboard scan code generator does not recognize. This
fixes E_Exit() crashes if typing certain keys on a Japanese
keyboard with no equivalent in IBM PC/AT mode.
- Added code to double the size of the menu and menu items if
the window is 1280x800 or larger, for users with high
definition laptop displays and screens.
- Enforce minimum window size of 640x400 if the menu bar is
visible and DOSBox-X is drawing them, to make sure the menus
are accessible on screen.
- Removed auto-scalar-size code when output=surface that was
causing problems when resizing the window.
- Do not show "screenshot" menu item if screenshot support not
available at compile time.
- Remove "always on top" for anything but Windows at this time.
- Disable "Show debugger" option on Linux and Mac OS X if no
console attached to STDIN/STDOUT/STDERR.
- Disable "Show console" option on Linux and Mac OS X since
the console is not under our control.
- Windows "Always on top" fixed to remember selection and
enforce it between SDL_SetVideoMode and fullscreen entry/exit.
- Windows builds fixed NOT to change window Z-order on the
screen when updating the window on SDL_SetVideoMode.
- HX DOS builds fixed to keep window maximized at all times
to fill the otherwise unused space on the screen since
HXGUI only supports one window.
- Menu framework support for any other platform (including
Linux) added. The menus are drawn by DOSBox-X itself
using the 8x16 VGA font. This also gives SDL 2.x builds
a working menu. These menus are used if no other platform
specific menus are available. These menus are NOT AVAILABLE
at this time if output=opengl.
- Cycle count edit dialog box fixed to immediately place
keyboard focus in the text field, and to process
ENTER and ESCAPE keyboard input as OK and CANCEL
button input. You can type a new cycles count without
having to click on the text field first.
- Menu framework and mapper fixed so that menus always
reflect the mapper binding in the menu.
- Windows SDL 1.x fixed async hack to properly destroy
and shut down the parent window again.
- Fixed output=opengl crash on Mac OS X.
- Menu framework support for Mac OS X NSMenu objects added.
This gives DOSBox-X the same useful menu on Mac OS X
instead of the useless default menu SDL 1.x offers.
- Menu framework support for Windows win32 menu resources
added. The Windows menu is now generated at runtime,
the static IDR_MENU resource is no longer used.
- New platform independent menu framework added. Menus
that were once Windows-only are now available on
any other platform including Linux and Mac OS X.
- In-tree SDL 1.x library fixed to #define a special
variable that the code now requires to compile
SDL 1.x builds. The option to use your host SDL 2.x
library is left open.
- C++11 is now mandatory to compile DOSBox-X
0.82.6
- Resizing the window in SDL 1.x Windows builds
fixed to work correctly in the latest build
(1803) of Windows 10. Prior to this fix, resizing
the window on that build would quickly hit a deadlock
that prevented the user from moving or resizing the
window again after that point.
- PC-98 dosbox.conf option added to select between
accurate key/shift mapping, vs an alternate mapping
appropriate for US keyboards (Yksoft1)
- SDL 1.x for Linux/X11 modified to differentiate
Ro and Yen keys despite X11 xkbmap apparently
mapping both to the backslash. The keymap is
queried to detect the scancodes at startup
in order to return the correct SDLK constant.
- SDL 1.x and DOSBox-X mapper code updated to
correctly map Ro, Yen, @ ^ ; : keys on a JP
keyboard in Windows and Linux.
- PC-98 keyboard BIOS handling updated to generate
ASCII codes according to PC-98 layout, instead
of by US keyboard layout.
- Mapper updated to support @ (at sign) key,
^ (caret) key, and a few other keys that
exist on JP keyboards.
- "Hold" modifier for mapper bindings fixed.
It is now possible to tap the key again to
release the hold.
- VHD differencing disk support added (Shane32)
- INT 18h AH=0Ah updated to support 20-line
text mode. Some games use the 20-line text
mode to space the text out vertically.
Such games will display correctly now.
- INT 18h now maintains text layer state
in BIOS data area byte 0x53C, just as
the actual BIOS does.
- Added PC-98 INT 18h function AH=0Ah and
AH=0Bh to support BIOS calls that enable
"Simple Graphics" mode. This fixes
problems with other games having vertical
lines over the graphics, even though
these games do not appear to use the
simple graphics at all. (yksoft1)
- Added support for PC-98 "Simple Graphics"
mode of text layer attribute bit 4. When
enabled, the attribute bit 4 changes
meaning from vertical line to a bit
indicating that the 8-bit character is
a low resolution 2x4 bitmap to be
displayed in the text layer. This fixes
score and status display in Carat.
- PC-98 INT 18h now implements AH=31h to
report CRTC, text and graphics state and
24khz/31khz video mode selection. This
fix allows some games including Touhou
Project to pace it's gameplay correctly
in either video mode.
- MinGW HX DOS builds default to host key
F12 again
- PC-98 mode now offers selection between
24khz and 31khz video modes (yksoft1)
- KEYB.COM fixed to load only the fonts the
ROM BIOS has allocated. This fixes a guest
system crash if using KEYB.COM with
machine=ega
- Moved host key to F11 for Windows. F12 is
already taken by some internal debugging
voodoo within Windows itself.
- DOSBox-X codebase now strongly encourages
compilation with C++11, will become
required soon.
- BOOT command fixed to make it possible to
IMGMOUNT multiple floppies to drive 1, and
boot from another disk in drive 0. This
should enable the use of DOSBox-X with
PC-98 games that expect to boot from drive
A and the user to rotate through floppies
in drive B.
- IMGMOUNT fixed to support mounting with no
filesystems and multiple disk images, and
using the "swap floppy" command to rotate
through them.
- Added options to BOOT command that allows
specifying multiple disk images and an option
that says to swap disk images only through
one drive.
- VHD dynamic support added (shane32)
- INT 10 AH=9 background color fixed in 256-color
VGA modes.
- Intro text updated to reflect new default
key bindings.
- Mapper shortcuts not in common use now exist
without any default binding, and most existing
default bindings are now associated with the
"host" key.
- Added 4th modifier "host" key to the mapper.
This "host" key is F12 by default. The intent
is to eventually move most mapper shortcuts
to some combination of F12 and another key,
rather than many shortcuts scattered over the
keyboard. Existing dosbox mapper files should
continue to work.
- Renderer and 32bpp VGA display code fixed to
reorder RGBA order for correct display on Intel
Mac OS X systems. Mac OS X, on Intel systems,
uses a strange BGRA 32bpp format that requires
some adjustment on our part to display correctly.
- Added more 24bpp INT 10h VESA BIOS modes.
- Removed per-sector debug messages from VFD/FDD
image support code.
0.82.5 (04/18/2018)
- Expanded memory manager memory copy fixed to
enable A20 gate temporarily so that the copy
works correctly.
- PC-98 FM board emulation now defaults to IRQ 12
instead of IRQ 3. A lot of PC-98 games seem to
have a strong preference for that IRQ with regard
to FM music.
- PC-98 reset I/O port (F0h) fixed to emulate CPU
reset according to the SHUT0 and SHUT1 state set
by the guest. Normally writing port F0h is a
signal to reset but SHUT0 and SHUT1 can be set to
indicate alternate behavior. This fixes VEMM486.EXE
(an expanded memory manager) and allows it to run,
since this manager appears to reset by port F0h
then resume execution normally. Prior to this fix,
booting a MS-DOS disk image that loads VEMM486.EXE
at startup yielded nothing but an infinite reboot
loop.
- XMS and EMS emulation fixed not to leave A20 gate
enabled unless EMS emulation is set to EMM386 and
dosbox.conf is set to run the system in virtual
8086 mode. There are plenty of DOS games that
malfunction if loaded too low in memory with the
A20 gate enabled.
- PC-98 mouse emulation, at the 8255 level, now uses
new C++ abstraction that seems to work fairly well
even with the common PC-98 MOUSE.COM driver.
- "BOOT" command in PC-98 mode updated to no longer
require the --force switch. Booting MS-DOS from a
hard disk or floppy disk image in PC-98 mode is
generally functional now.
- Added PC-98 SCSI/SASI hard disk emulation, and fixed
BOOT to enable booting PC-98 MS-DOS from a hard drive
(HDI image)
- FAT driver fixed to read/write logical sectors vs
actual drive sectors and removed geometry remapping
hack.
- FAT driver fixed to avoid memory corruption that
may occur if reading a partition table from a drive
that has more than 512 bytes/sector.
- .BAT file parsing fixed to handle BAT files not
in the current directory (yksoft1)
- Fixed floppy controller emulation bug that failed
to advance sectors during multi-sector read/write.
- Fixed floppy emulation bug that prevented seeking.
The "head" would get stuck at track 0 and never move.
- Dynamic core allows running with paging enabled again,
IF dosbox.conf says to allow it (yksoft1)
- DOS file I/O functions AH=3Fh and AH=40h updated to
reflect undocumented MS-DOS behavior that silently
truncates read/written byte count if the offset
and byte count reach beyond the end of a 64KB segment.
This fixes some demoscene productions that read 64KB-1
bytes but apparently rely on this behavior to avoid
display errors.
- FluidSynth fixes and API updates. DOSBox-X no longer
uses a private API within FluidSynth. (heftig)
- Added dosbox.conf option to control the size of the
DOS "Swappable Data Area" which is said to help with
shelling and task swapping in WordPerfect 5.x and 6.x
- Added "minimum mcb free", and set minimum mcb segment to
value same or similar to DOSBox SVN. The "free" option
directs DOSBox-X to allocate memory before that segment
value to fill memory.
- Fixed COMMAND.COM PSP segment to correctly identify it's
resident size in memory.
- COMMAND.COM in the DOSBox shell now allocates itself
normally instead of from a special segment so that it
appears normally in the MCB allocation chain.
- BIOS now clears it's stack before booting the DOS shell.
- Fix Pause (CTRL+Pause or ALT+Pause) to release all keys
in the mapper so that CTRL, ALT, or Shift are not left
"stuck" when emulation resumes.
- Initial host keyboard recognition, and base framework
for general keyboard language/layout handling. Keyboard
layout recognition added for Windows and Linux/X11.
- Fixed 350-line INT 10h VESA modes not to apply EGA mode
adjustments, which fixes display distortion.
- INT 10h VESA modes 720x480 and 848x480 fixed.
- Fixed INT 10h VESA emulation to round up bytes/scanline
so that 4bpp planar modes display properly.
- Fixed INT 10h VESA mode 1400x1050 16-color (4bpp planar)
mode to resolve overlapping mode number.
- Pulled in VGA vtotal + 2 fix from DOSBox SVN
- Pulled in EGA display mode fixes from DOSBox SVN to fix
EGA graphics emulation.
- Fixed INT 10h AH=1Ch (save/restore VGA state) to handle
VGA attribute controller properly so that the display is
not left blank.
- PC-98 GDC emulation fixed to handle START DISPLAY properly
by un-blanking the display (fixes "Ellena")
- Fixed possible format string vulnerabilities (gnustomp)
- Added menu options to enable/disable EGC and GRCG
emulation (yksoft1)
- Added options to enable/disable EGC and GRCG emulation
(to emulate older hardware).
- Added PC-98 BIOS function to read 8x16 character bitmaps,
which fixes "Power Dolls 2"
- BIOS now reports 16-color and EGC graphics. Some games
that check the BIOS for capabilities may now begin to
use 16-color graphics and EGC functions.
- Added PC-98 INT 18h function to read character font.
This also resolves garbled text in TH01.
- PC-98 GDC emulation now uses cursor specification
(line per character row) to determine whether graphics
are doubled vertically or not. Several PC-98 games
switch between 200-line (doubled) and 400-line graphics
by programming the GDC directly, rather than through
the BIOS.
- Added various video-related BIOS variables to the data
in PC-98 mode.
- GDC RESET/SYNC debug text updated to indicate which GDC
is undergoing the RESET/SYNC.
- Debugger "LOG" command (CPU execution logging) fixed to
automatically stop logging when the BIOS begins the
POST routine after system reset. The user who invoked
"LOG" probably cares more about what happened up to the
game crash, fault and reset rather than normal BIOS startup.
- BIOS now properly unmasks the PC-98 cascade IRQ, which
allows IRQ 8-15 to function, including the mouse (IRQ13)
- Debugger interface now indicates whether 80386 paging is
enabled or not at any time.
- Help text updates to reflect DOSBox-X changes (Shane32)
- BIOS INT 13h emulation updated to support up to 4 hard
drives (Shane32)
- IMGMOUNT and BOOT code cleanup (Shane32)
- IMGMOUNT RAM drive support: Additional fixes and geometry
work done, and some hangs resolved (Shane32)
- CPU emulation fixed to allow setting a breakpoint on
ANY interrupt of a specific number, not just software
interrupts. It is now possible to use BPINT to break
upon hardware (IRQ) interrupts.
- DOS kernel fixed to drop to the debugger if the MCB
(memory control block) chain is corrupted, so that
the corrupted state can be examined. When the debugger
continues execution, a full restart of the DOS kernel
is run. If DOSBox-X was compiled without the debugger,
then the normal E_Exit() path is still taken.
- Added debugger command to show, and modify, the state
of the PIC (interrupt controller).
- Added debugger command to view or change the A20 gate.
- Added debugger command to view the state of EMS, memory
handles, allocation, and EMS page frame mapping.
- Added debugger command to view the state of XMS, memory
handles, and allocation.
- Added debugger command to view the layout of the ROM
BIOS region (0xF0000-0xFFFFF) chosen by emulation.
- DOS kernel now logs kernel allocations, which can be
seen in the debugger using the "DOS KERN" command.
- Added "RUN" command as an alternative to hitting F5.
- Added "RUNWATCH" to the debugger, so that watching the
system run in the debugger is possible.
- Debugger data window can now be used to view memory in
segmented, virtual (through paging), and physical (bus
address) modes.
- Debugger window data and code view windows now indicate
regions of memory that are beyond the end of the segment.
- Debugger window data and code view windows now indicate
regions of memory that are paged out (will cause a page
fault if accessed)
- PC-98 A20 gate I/O port F6h fixed to work properly as an
enable or disable, rather than just an enable. The PC-98
version of HIMEM.SYS no longer complains about not being
able to control the A20 gate.
- IMGMOUNT RAM drive support: Ramdrive bug fixes and changed
drive limits from ATA limits to BIOS/MBR (Shane32)
- INT 21h fixed to use BIOS INT 1Ch to read date and time in
PC-98 mode. Arrowgun now runs properly.
- Fixed EMS emulation not to claim XMS memory (and zero BIOS
extended memory size) if EMS emulation is in EMS board mode
(and therefore not allocating extended memory through HIMEM.SYS).
- PC-98 INT 1Fh extended memory copy implemented. DOS games in
PC-98 mode can now use this API to access extended memory.
- Fixed HIMEM.SYS emulation in PC-98 mode to zero BIOS extended
memory values when claiming extended memory.
- PC-98 mode now sets BIOS data area values correctly regarding
conventional and extended memory.
- Added rudimentary emulation of non-volatile RAM at the
trailing edge of text RAM (A3FE0-A3FFF).
- PC-98 mode now adds additional BIOS data values at boot time
so that guest OSes like PC-98 MS-DOS can see the floppy drive,
see keyboard input, and determine the boot drive properly.
It is now possible to boot MS-DOS in PC-98 mode.
- Added rudimentary PC-98 INT 1Bh BIOS interrupt, at least for
floppy disk emulation.
- Cleanup and formatting enhancements to IMGMOUNT ramdisk (Shane32)
- DOS CON emulation in PC-98 mode now emulates two additional
ANSI escapes to clear the screen that are specific to NEC's
MS-DOS implementation, which fixes text layer problems with
Rusty.
- PC-98 GDC dip switch 2-8 emulation fixed. It was backwards.
This may break existing dosbox.conf configurations, apologies
in advance.
- Added -xms option to LOADFIX command. When given, the command
consumes extended memory instead of conventional memory.
- HIMEM.SYS emulation fixed to behave more like Microsoft's
HIMEM.SYS implementation regarding global & local A20 gate
control.
- Mac OS X builds fixed to work from the user's home directory
if run from the Finder, instead of trying to operate at the
root of the filesystem as directed by the Finder.
- Mac OS X builds now put the FREECG98.BMP file inside of the
.app bundle, and fall back to it if not found in the current
directory.
- RPM builds now install FREECG98.BMP in /usr/share/dosbox-x
and refer to it if not in your local directory, in order to
better provide PC-98 emulation.
- PC-98 BOOT command: Loading addresses and CPU register layout
updated to match actual hardware behavior, in which the boot
sector is loaded at just under 128KB.
- Build updates to support compiling for Windows with MinGW.
- BOOT now accepts a --debug switch that causes DOSBox-X to break into
the debugger when the boot sector begins to execute.
- BOOT now accepts a --force switch to override the PC-98 lockout,
if the user wants to better understand why I locked it out in PC-98 mode.
- PC-98 support now supports reading font from FONT.ROM, if available.
- Code, data, and output now respond to arrow, page up/down and
home/end keys as a user would normally expect.
- Arrow and page up/down keyboard input now goes to active window
instead of mapping directly to any specific window.
- Debugger interface now has the concept of an "active" window, and
the title bar of each window hilights if it is active.
- Debugger interface now hides the "variables" window by default.
- Fixed window "titles" in debugger interface to fill the terminal
line they're on and use ncurses horizontal line character which
on modern systems looks better than hyphens.
- Removed one line padding around data window in debugger interface.
- Debugger interface redesigned to permit more flexible layout
- Debugger interface no longer crashes when terminal window is sized
down too small (when there is no room for the output window)
- EMM386 (ems) emulation fixed to always turn on the A20 gate when
the DOS application requests to map pages into the EMS page frame.
This fixes crashes with Creative's Sound Blaster 16 installer when
run with the A20 gate turned off.
0.82.4 (02/28/2018)
- Updated ramdisk formatting code to better match FAT12/FAT16
specifications and limits (Shane32)
- Menu items related to Gravis Ultrasound, Glide emulation, Innova SID,
and other IBM PC-specific options are now grayed out in PC-98 mode.
- Updated Windows menus to gray out CPU core and type options that
are invalid. Selecting a prefetch CPU type while core dynamic is
no longer possible, and selecting dynamic core while using a
prefetch cpu type is no longer possible.
- CPU type submenu in Windows updated to reflect all types supported
by DOSBox-X including 8086 and 286 cores.
- Fixed E_Exit() crash on Windows in PDCurses endwin() that only
happens if you had never brought up the debugger console window.
- Minor oddities with OPNA stereo panning resolved.
- Sound Blaster, Adlib, and PC-98 FM emulation now reset state
correctly when the reset signal is given to avoid stuck notes.
- Fixed BIOS logo in PC-98 mode to properly reset the graphics mode
so that the logo is visible.
- Added Windows menu items to control PC-98 GDC speed, 4-partition enable,
200-line "scanline" effect enable, and PIT timer clock control.
- Added "Restart DOS" command to the Windows menu, with code to
allow it only if at the initial DOS shell.
- Added "multi-track WAV" command to the Windows menu, under Capture
- Added "reset system" command to the Windows menu
- "Restart" menu command updated to clarify that it restarts DOSBox-X entirely.
- OpenGL HQ output removed.
- Commands to force driver (DirectX or WINDIB) removed.
- Default disk I/O limit raised to more reasonable speeds.
- FM code borrowed from Neko Project II now compiles on Mac OS X
- IMGMOUNT now supports mounting a RAM drive (using -t ram) (Shane32)
- Direct3D fullscreen aspect ratio fixes, especially for
monitors with a 5:4 aspect ratio (such as 1280x1024) (Shane32)
- "Show menu" in Windows builds system menu is now a toggle
to show/hide the menu bar (Shane32)
- Fixed broken color palette with CGA composite and EGA
machine emulation. Composite CGA and machine=ega displays
properly again.
- According to documentation, IBM PC and PC-98 use different
initial PC speaker frequencies. Update the code to match.
- 8254 I/O port alias at 3FD9h-3FDFh added, which is needed
for several PC-98 games that program the PC speaker
frequency through those ports instead of through 71h-77h
- New Intel 8255 emulation. PC-98 system 8255 emulation
now uses this emulation, along with PC speaker emulation.
- Fixed XMS memory copy functions to enable the A20
gate so extended memory copies work correctly whether
or not the DOS application in question made the call
with A20 enabled. This fixes crashes and memory
corruption while installing Windows 3.1 using SETUP.EXE.
- "CLS" now sends the proper ANSI escapes to clear the
console in PC-98 mode.
- BIOS logo in PC-98 fixed to clear graphics RAM and
set graphics back to 8-color digital mode when booting
to DOS. This should fix palette errors and color issues
with older PC-98/PC-88 games that use the 8-color
graphics modes.
- Added PC-98 INT 1Ch timer interval BIOS function,
and timer countdown routine in IRQ 0.
- Windows builds now incorporate pdcurses and enable
the debugger interface (bulletshot60)
- DOSBox-X now tracks the systemwide keyboard layout
on Windows, and acts on user changes to the keyboard
and language in the system.
- Removed hack code in SDL 1.x that sets DOSBox-X's
keyboard layout to the US layout even if the host
uses anything else.
- Fix CPU cycles count increment not to nag you to use
core=dynamic if a) dynamic core is not available or
b) you're already using dynamic core.
- Added dynamic core back, it seems to be very stable
again.
- PC-98 FM board now allows changing the base I/O port
and IRQ (interrupt) line used by the card.
- PC-98 mode now supports joystick emulation. Joystick
input is mapped through the DOSBox mapper to the
PC-98 FM board where DOS games expect to see it.
- Added dosbox.conf option to select which PC-98 FM
board to emulate.
- Fixed PC-98 FM code to enable the ADPCM and Rhythm
FM channels.
- Re-ported Neko Project II FM board emulation, this
time keeping the code intact and keeping the separate
board emulations intact for PC-98 mode.
- VGA palette errors with Crystal Dream II fixed.
- PC-98 FM synthesis fixed not to initialize itself
again when rebooting, which fixes a problem with
garbled FM synthesis after rebooting.
- Removed some now-unnecessary SDL Video quit/init
calls from Windows builds.
- machine=pc98 now starts entire emulation in PC-98
mode instead of booting up in IBM PC mode and
switching to PC-98 mode.
- Initial "BIOS" startup screen now operates in
PC-98 mode when machine=pc98.
- Prefetch core debug code now disabled at compile
time. Seems to be stable so far.
- Prefetch core now emulates partial load of the
prefetch buffer on miss, and completing the buffer
fill on hit, to better emulate (probable) 80486
behavior.
- 486_prefetch is now a valid cputype setting, despite
the setting having existed for years in the source
code. Prior to this fix, 486_prefetch was ignored.
0.82.3 (02/13/2018)
- Removed DOSBox SVN-style "fast" A20 gate emulation.
Recent changes make it infeasible to keep. "fast" is
now mapped to "mask" mode.
- RAM aliasing is now always on, even if memalias is not
set, in order to help enforce A20 gate behavior, and
to fix emulator crashes when a non-aliased RAM page
is referenced through an alias.
- Cleanup and rewrite of prefetch core, to make the code
cleaner and more readable and maintainable.
- DOS file I/O updated to apply a proper delay rather
than the old DOSBox SVN code's cycle count dependent
method. The delay by default will slow disk I/O down
to mid 1990's IDE PIO speeds, which can resolve issues
with MS-DOS demoscene or game executables that can
malfunction when disk I/O is too fast.
- PIC code updated to enforce a proper IRQ delay on ALL
IRQ signals, which fixes issues with MS-DOS executables
that have race conditions between their code and their
interrupt handlers.
- DOS Shell now shows the full intro text only at first
run, instead of every shell invocation.
- Use FCB record size of 128 bytes if the FCB record size
is zero (from DOSBox SVN).
- PC speaker fix not to generate a continuous tone if
the PIT timer was set to mode 0. This fixes issues with
many early 1990s demoscene executables leaving the PC
speaker enabled (BEEEEEEP).
- Register DEBUGBOX.COM at DOS environment start instead
of boot, which allows the command to work again.
- EXE loader sets stack pointer (SS:SP) into PSP segment
(from DOSBox SVN)
- EXE loader fixed to use the larger of the minimum and
maximum memory sizes listed in the EXE header, which
fixes some demoscene executables with a minimum size
larger than maximum.
- VGA DAC (palette) emulation updated to better match
actual SVGA chipset (Paradise SVGA) behavior, which
fixes some VGA palette errors in some demoscene
productions.
- Added -nocachedir option to internal MOUNT command, to
disable directory caching for a local folder mounted
to a drive letter. When mounted this way, changes on
the host filesystem are immediately visible in the
guest DOS environment.
- Added -ro and -rw options to internal MOUNT command, to
allow mounting local folders to a drive letter as a
read-only volume.
- MIDI Fluidsynth fixed to initialize and free state properly
so that switching to and from Fluidsynth doesn't cause
a segfault or crash.
- MPU-401 fixed to allow changes to MIDI configuration from
CONFIG.COM.
- DOS filename handling fixed to maintain ASCII conversion
to uppercase, while not converting Shift-JIS double-byte
characters in PC-98 mode. This fixes Shift-JIS filename
corruption when the trailing byte can be mistaken for
lowercase ASCII a to z.
- Windows fixes to keep menu bar items updated with
DOSBox-X state.