Commit Graph

271 Commits

Author SHA1 Message Date
OBattler
fa3394c04e Fixed parameter list in data out phase on MODE SELECT (10) command on all ATAPI and SCSI devices, fixes ATAPI and SCSI CD Audio volume control, fixes #1191. 2020-12-26 02:26:45 +01:00
OBattler
9d6f6b38ea Fixed a warning in cdrom/cdrom_image_backend.c. 2020-12-12 16:28:04 +01:00
OBattler
26d42adb1e CD-ROM CUE indexes are now respected for skip even if prestart is 0 (fixes CUE+BIN images that use indexes for pregap), CD Audio attenuation is now done per the specification, and proper sound card filtering and volume calculation now applies to CD Audio. 2020-10-19 01:02:40 +02:00
OBattler
649c084eef Rewrote the CD-ROM TOC handling. 2020-07-20 03:18:56 +02:00
OBattler
aeaf5ad34a Properly enabled SMM (and with the correct SMBASE) on AMD 486 CPU's. 2020-07-20 01:44:19 +02:00
OBattler
8837d5d882 Implemented the National Semiconductors PC87307, PC87309, PC87332, and PC97307 Super I/O chips, fixed a number of bugs, and removed two machines from the Dev branch due to them now having the correct Super I/O chips. 2020-06-14 21:59:45 +02:00
OBattler
dc7983902e Fixed some wrong letter casing in cdrom/cdrom_image_backend.c and updated Makefile.local. 2020-06-13 10:44:18 +02:00
David Hrdlička
a505894a10 Move all include files to src/include
- 86Box's own headers go to /86box
- munt's public interface goes to /mt32emu
- all slirp headers go to /slirp (might want to consider using only its public inteface)
- single file headers from other projects go in include root
2020-03-29 19:53:29 +02:00
Daniel Gurney
0c509fd551 Remove version tree-wide 2020-03-25 00:46:02 +02:00
OBattler
00ec4b72ea TC1995's port of the IBM PS/2 MCA SCSI controller (Spock). 2020-03-24 01:00:28 +01:00
OBattler
490c04fcae Current WIP code. 2020-02-29 19:12:23 +01:00
OBattler
2d02d941f8 Fixed for DVD-related stuff, DVD images should now be better readable on 86Box. 2020-01-17 03:02:12 +01:00
OBattler
bb3c5a6f52 Fixed a potential overrun in the CD-ROM image backend code. 2020-01-15 02:22:30 +01:00
OBattler
9f9883f8da Fixed a maintainability issue in the CD-ROM image backend code. 2020-01-15 02:16:25 +01:00
OBattler
70ccf03f2d The CD-ROM image code now returns with error if a seek has failed. 2020-01-14 20:49:01 +01:00
OBattler
04247f2664 The CD-ROM image code function to check if a track is audio now simply returns with a false condition if the track number obtained from the sector is -1. 2020-01-14 20:45:20 +01:00
OBattler
0139c44b7d Removed an obsolete return with error in the CD-ROM image backend code. 2020-01-14 20:43:04 +01:00
OBattler
a021607228 Fixed a bug in the CD-ROM image backend code. 2020-01-14 20:10:01 +01:00
OBattler
ad47659fd6 The CD-ROM image backed code no longer returns the pointer of a stack variable. 2020-01-14 19:46:02 +01:00
OBattler
1861d8cb0d Changed the fatal condition in the CD-ROM image backend code. 2020-01-14 19:30:33 +01:00
OBattler
fea96d6b67 Fixed some bugs in the CD-ROM image backend code. 2020-01-14 19:26:27 +01:00
OBattler
fb088329e1 Fixed NULL pointer dereferences in the CD-ROM image code. 2020-01-13 21:46:45 +01:00
OBattler
dcf06f4ba9 Fixed the mess in cdrom/cdrom_image_backend.c. 2020-01-13 21:06:32 +01:00
OBattler
be9b57fcad Added some sanity checks and pointer frees / NULL'ings to the CD-ROM image code, fixes #543. 2020-01-13 21:03:58 +01:00
OBattler
1b8017640e Fixed parsing of PREGAP clauses in CUE sheets. 2020-01-11 22:30:28 +01:00
OBattler
4957a9f867 Fixed Mode 2 handling again and added support for reading raw sectors from non-raw images with reconstructed headers. 2019-12-21 21:01:43 +01:00
OBattler
51b06be28c Removed DOSBox OPL code, and made NukedOPL, the CD-ROM image code (incl. former cdrom_dosbox.cpp/h), and Raw Input mouse code C instead of C++, and fixed OPL2 emulation with NukedOPL. 2019-12-21 20:06:34 +01:00
OBattler
4378de7e5c 86Box v2.00 Stable/Final release. 2019-10-22 01:34:43 +02:00
OBattler
93e6b9bc70 More tweaks to cue sheet loading code - feof(fp) is now checked for before fgets() is called, should allow final lines without a trailing line break to be parsed. 2019-10-20 14:47:02 +02:00
OBattler
9bf4c8fb5e Hopefully made the CD-ROM image code work with cue sheets without a trailing newline, and removed two files that should not have been there. 2019-10-20 14:19:33 +02:00
OBattler
e9d785283b Removed the SCSI_CHINON stuff that was not supposed to be committed in the first place. 2019-09-26 10:02:43 +02:00
OBattler
552a87ea3d Added the IBM 5161 ISA expansion for PC and XT;
Cleaned up the parallel port emulation, added IRQ support, and made enabling/disabling per port;
Added the Award 430NX and the Intel Classic/PCI (Alfredo, 420TX);
Finished the 586MC1;
Added 8087 emulation;
Moved Cyrix 6x86'es to the Dev branch;
Sanitized/cleaned up memregs.c/h and intel.c/h;
Split the chipsets from machines and sanitized Port 92 emulation;
Added support for the 15bpp mode to the Compaq ATI 28800;
Moved the MR 386DX and 486 machines to the Dev branch;
Ported the new dynamic recompiler from PCem, but it remains in Dev branch until after v2.00;
Ported the new timer code from PCem;
Cleaned up the CPU table of unused stuff and better optimized its structure;
Ported the Open-XT and Open-AT from VARCem, the Open-AT is in the Dev branch;
Ported the XT MFM controller rewrite and adding of more controllers (incl. two RLL ones), from VARCem;
Added the AHA-1540A and the BusTek BT-542B;
Moved the Sumo SCSI-AT to the Dev branch;
Minor IDE, FDC, and floppy drive code clean-ups;
Made NCR 5380/53C400-based cards' BIOS address configurable;
Got rid of the legacy romset variable;
Unified (video) buffer and buffer32 into one and make the unified buffer 32-bit;
Added the Amstead PPC512 per PCem patch by John Elliott;
Switched memory mapping granularity from 16k to 4k (less than 1k not possible due to internal pages);
Rewrote the CL-GD 54xx blitter, fixes Win-OS/2 on the 54x6 among other thing;
Added the Image Manager 1024 and Professional Graphics Controller per PCem patch by John Elliott and work done on VARCem;
Added Headland HT-216, GC-205 and Video 7 VGA 1024i emulation based on PCem commit;
Implemented the fuction keys for the Toshiba T1000/T1200/T3100 enhancement;
Amstrad MegaPC does now works correctly with non-internal graphics card;
The SLiRP code no longer casts a packed struct type to a non-packed struct type;
The Xi8088 and PB410a no longer hang on 86Box when PS/2 mouse is not present;
The S3 Virge on BeOS is no longer broken (was broken by build #1591);
OS/2 2.0 build 6.167 now sees key presses again;
Xi8088 now work on CGA again;
86F images converted from either the old or new variants of the HxC MFM format now work correctly;
Hardware interrupts with a vector of 0xFF are now handled correctly;
OPTi 495SX boards no longer incorrectly have 64 MB maximum RAM when 32 MB is correct;
Fixed VNC keyboard input bugs;
Fixed AT RTC periodic interrupt - Chicago 58s / 73f / 73g  / 81 MIDI play no longer hangs with the build's own VTD driver;
Fixed mouse polling with internal mice - Amstrad and Olivetti mice now work correctly;
Triones ATAPI DMA driver now correctly reads a file at the end of a CD image with a sectors number not divisible by 4;
Compaq Portable now works with all graphics cards;
Fixed various MDSI Genius bugs;
Added segment limit checks and improved page fault checks for several CPU instructions - Memphis 15xx WINSETUP and Chicago 58s WINDISK.CPL no longer issue a GPF, and some S3 drivers that used to have glitches, now work correctly;
Further improved the 808x emulation, also fixes the noticably choppy sound when using 808x CPU's, also fixes #355;
OS/2 installer no logner locks up on splash screen on PS/2 Model 70 and 80, fixes #400.
Fixed several Amstead bugs, GEM no longer crashes on the Amstrad 1640, fixes #391.
Ported John Elliott's Amstrad fixes and improvement from PCem, and fixed the default language so it's correctly Engliish, fixes #278, fixes #389.
Fixed a minor IDE timing bug, fixes #388.
Fixed Toshiba T1000 RAM issues, fixes #379.
Fixed EGA/(S)VGA overscan border handling, fixes #378;
Got rid of the now long useless IDE channel 2 auto-removal, fixes #370;
Fixed the BIOS files used by the AMSTRAD PC1512, fixes #366;
Ported the Unicode CD image file name fix from VARCem, fixes #365;
Fixed high density floppy disks on the Xi8088, fixes #359;
Fixed some bugs in the Hercules emulation, fixes #346, fixes #358;
Fixed the SCSI hard disk mode sense pages, fixes #356;
Removed the AMI Unknown 386SX because of impossibility to identify the chipset, closes #349;
Fixed bugs in the serial mouse emulation, fixes #344;
Compiled 86Box binaries now include all the required .DLL's, fixes #341;
Made some combo boxes in the Settings dialog slightly wider, fixes #276.
2019-09-20 14:02:30 +02:00
OBattler
46d0ed2baa Rewritten 808x CPU emulation core based on reenigne's XTCE, VisiOn, SnatchIt, and 8088 MPH now work correctly;
Fixed PC speaker sound volume in PIT mode 0;
A few CPU emulation clean-ups;
Hard disk controller changing redone in a less messy way;
Re-added the long-missing key send delay handling to the XT keyboard handler;
Fixed a bug that was causing SLiRP not to work when compiled with MingW/GCC 7.3.0-2 or newer;
Some serial mouse and port fixes;
A lot of changes to printer emulation, mostly based on DOSBox-X;
Printer PNG writer now uses statically linked libpng;
Added support for the HxC MFM floppy image format and upped 86F format version to 2.12;
Ported various things from PCem and some from VARCem;
Added the S3 86c801/805 emulation (patch from TheCollector1995);
Fixed and renamed the EGA monitor options;
Better synchronized the 808x to the PIT and the CGA;
Fixed the CGA wait state calculation;
Cleaned up some things in mem.c;
Fixed some things in the floppy emulation to make VisiOn get the correct errors from the copy protection disk;
Fixed several renderer-related bugs, including the SDL2 renderer's failure to take screenshots;
The Jenkins builds are now compiled with MingW/GCC 7.4.0-1 and include all the required DLL's.
2019-02-06 03:34:39 +01:00
OBattler
8b3f47ab4d Added the PLAY AUDIO TRACK RELATIVE (10) and PLAY AUDIO TRACK RELATIVE (12) CD-ROM commands;
More fixes for the PLAY AUDIO TRACK INDEX command.
2018-10-30 16:42:43 +01:00
OBattler
3a8bd15b9d Extensive rework of SCSI and ATAPI devices and numerous bug fixes and cleanups;
Extensive rework of CD-ROM image handling;
The settings save code now forces some devices' (SCSI disk, CD-ROM, etc.) pointers to NULL before resetting the machine - fixes segmentation faults after changing settings;
Added the NCR 53c825A and 53c875 SCSI controllers;
Fixed IDE/ATAPI DMA;
Slight changed to PCI IDE bus master operation.
2018-10-30 13:32:25 +01:00
OBattler
96b894f7b8 Fixed some compile-breaking bugs. 2018-10-26 04:54:04 +02:00
OBattler
473b71436d The scsi_cdrom[], zip[], and scsi_disk[] arrays are now gone. 2018-10-26 04:47:21 +02:00
OBattler
f088896a74 A few fixes, CD-ROM ejecting/reloading should no longer cause heap problems because they now allocate prev_image_path with the correct length, and the status bar should now work after a hard reset with no config change. 2018-10-21 22:09:18 +02:00
OBattler
aaf10aba68 Small CD-ROM-related fix. 2018-10-21 20:13:09 +02:00
OBattler
8802c5d3df Some CD-ROM image and IDE fixes. 2018-10-20 04:59:10 +02:00
OBattler
c663147d11 Imported CD-ROM-related changes from VARCem;
Removed cdrom_null.c/h;
Some changes to logging (will be spread to everything else soon).
2018-10-17 05:29:48 +02:00
OBattler
b8d3992c07 Fixed some CD-ROM-related bugs;
Added sanity checks to the device close functions of the Hercules family graphics cards;
Cleaned up, fixed the bugs in, and reworked the implementation of the Adaptec/BusLogic BIOS command handler;
Removed some scsi_device.c functions that have now become useless;
Removed some excess stuff from pc_init_modules().
2018-10-11 10:34:12 +02:00
OBattler
6155802b59 Split generic CD-ROM from SCSI-style CD-ROM;
Redid the way SCSI and ATAPI devices are handled;
Slight timings change in the NCR 5380;
Devices are now closed by device_close_all() in the reverse order of the one in which they were started;
Slight changes to some code in win/;
Added the WM_HARDRESET and WM_SHUTDOWN window messages for configuration manager purposes.
2018-10-10 22:33:24 +02:00
OBattler
6c7ff6b30a The REQUEST SENSE command now correctly returns as non-data if cdb[4] = 0. 2018-10-09 16:30:19 +02:00
OBattler
fd6cacc312 Fixed CD-ROM, ZIP, and SCSI disk changeable page arrays to correctly contain only 0's and 0xFF's in addition to page number and page length, and added descriptive #define's for the pages that did not yet have them. 2018-10-07 00:35:37 +02:00
OBattler
647d78e4c2 Removed a lot of useless #include's from a lot of files and reworked the SCSI #include's a bit to resolve the problem of scsi.h being a mess. 2018-10-02 22:54:28 +02:00
OBattler
d00afbc5d7 A minor fix to cdrom/cdrom.c. 2018-09-22 18:30:07 +02:00
OBattler
950ce8f5aa Added the 3Com 3C503 Network card;
Several bug fixes;
Preliminar addition of the SDL 2 renderer (does not yet work correctly in full screen mode);
SCSI devices no longer have configurable LUN's (this matches the configurability of real SCSI devices);
SCSI LUN's are now handed by the device's handler;
Removed all unused strings;
Removed some unused code files;
Significantly rewrote the bus mouse emulation.
2018-07-15 01:41:53 +02:00
OBattler
5d8deea63b Changes to logging - nothing (other than some parts of pc.c) uses the global pclog anymore (and logs will be almost empty (until the base set logging flags is agreed upon);
Fixes to various hard disk controllers;
Added the Packard Bell PB640;
Fixed the InPort mouse emulation - now it works correctly on Windows NT 3.1;
Removed the status window and the associated variables;
Completely removed the Green B 486 machine;
Fixed the MDSI Genius;
Fixed the single-sided 5.25" floppy drive;
Ported a CPU-related commit from VARCem.
2018-05-21 19:04:05 +02:00
OBattler
a412ceb4d9 Applied all relevant PCem commits;
Extensively cleaned up and changed the CD-ROM code;
Removed CD-ROM IOCTTL (it was causing performance and stability issues);
Turned a lot of things into device_t's;
Added the PS/1 Model 2011 XTA and standalone XTA hard disk controllers, ported from Varcem;
Numerous FDC fixes for the PS/1 Model 2121;
NVR changes ported from Varcem;
The PCap code no longer requires libpcap to be compiled;
Numerous fixes to various SCSI controllers;
Updated NukedOPL to 1.8;
Fixes to OpenAL initialization and closing, should give less Audio issues now;
Revorked parts of the common (S)VGA code (also based on code from QEMU);
Removed the Removable SCSI hard disks (they were a never finished experiment so there was no need to keep them there);
Cleaned up the SCSI hard disk and Iomega ZIP code (but more cleanups of that are coming in the future);
In some occasions (IDE hard disks in multiple sector mode and SCSI hard disks) the status bar icon is no longer updated, should improve performance a bit;
Redid the way the tertiary and quaternary IDE controllers are configured (and they are now device_t's);
Extensively reworked the IDE code and fixed quite a few bugs;
Fixes to XT MFM, AT MFM, and AT ESDI code;
Some changes to XTIDE and MCA ESDI code;
Some fixes to the CD-ROM image handler.
2018-04-25 23:51:13 +02:00