Commit Graph

90 Commits

Author SHA1 Message Date
OBattler
1e7668f1db Applied the recent mainline PCem commits (and fixed the Pentium machines);
Ported the Roland MT-32 emulation (using MUNT) from bit's MT32 emulation branch of PCem;
Sanitized the OpenAL give buffer code in openal.c a bit;
NVR path is now specifiable in the Settings dialog;
Added Logitech 3-button serial mouse per protocol description by waltje;
The RTL8029AS and the BT-958D now actually use the PCI IRQ routing;
Fixed BT-958D PCI device initialization on the bus;
PCI IRQ routing now respects the edge/level setting set on ports 4D0/4D1.
2017-06-19 06:46:08 +02:00
waltje
d2465dd5b3 More changes (stdarg.h in ide.c and name cleanups and %ws to %S in pc.c) 2017-06-16 14:09:57 -04:00
OBattler
8dcc7176a9 Hard disk image handling is now unified in hdd_image.c/h;
Fixed some bugs regarding the Winbond W83877F Super I/O Chip and serial ports;
Added the President Award 430FX PCI machine, thank you ashenone for the BIOS.
2017-06-16 03:18:59 +02:00
OBattler
760b4f89ae Fixed SVGA 15bpp and 16bpp low resolution renderers;
IDE WIN_DRIVE_DIAGNOSTICS fix per patch by greatpsycho;
The two Laser XT boards now allow using up to 1152 kB RAM per report from greatpsycho.
2017-06-11 17:40:34 +02:00
waltje
cbfa682cb7 Changes, updates and fixes to fixes. Check the new warnings re timer_add(). Using stricter prototypes receiled more stuff.. 2017-06-04 02:19:54 -04:00
OBattler
fde78d13f8 The IDE CD-ROM check now reports 0 for IDE devices 8 and 9 (corresponding to XT IDE channels 0 and 1), XTIDE now sees the hard disks. 2017-06-01 22:26:56 +02:00
OBattler
84595f1c78 Added my name to all the emulator's files that I touched;
Unfinished JEGA emulation based on akm's DOSVAX (AX-emulating fork of DOSBox), not yet hooked into the reset of the emulator.
2017-05-30 03:38:38 +02:00
OBattler
fc2a293536 CD-ROM images are now working correctly again;
Fixed all the reported bugs regarding the Settings dialog;
MIDI out device is now no longer reset to 0 after hard reset;
Removed all vestiges of the old disk activity flash;
The configuration file is no longer saved when it shouldn't be;
Redone the status bar icon updating so it is only done in win.c;
Made sure all variables in ibm.h are extern;
A lot of other bugfixes;
Added Mouse Systems Mouse emulation (patch from TheCollector1995);
Added IBM PS/1 Model 2133 (486) emulation (patch from TheCollector1995);
Tweaked the CPU dynamic recompiler cycle periods - 486SX 33 and 486DX 33 now work;
Increased compatibility with configuration files from before the previous commit.
2017-05-29 01:18:32 +02:00
OBattler
a36720f174 Large changes to configuration files again (the old ones might break, be careful);
Applied the mainline PCem slight CPU emulation speedup commit;
Added emulation of removable SCSI hard disks;
CD-ROM image handler now uses C FILE's (with the 64-bit size calls) instead of C++ iostreams, ISO images bigger than 2 GB should work properly again;
Split RLL/ESDI and XT IDE disks to their own bus types;
Turned status bar pane meaning and hard disks and CD-ROM BUS numbers to #define's;
Other miscellaneous cleanups.
2017-05-27 03:53:32 +02:00
OBattler
c669a05662 Fixed Host MIDI Out Device ID saving;
Did the UI-related preparations for adding removable hard disks.
2017-05-18 21:51:11 +02:00
OBattler
69ec4f2193 Fixed IDE CD-ROM detection, fixes ATAPI PIO and DMA CD-ROM's. 2017-05-18 00:16:04 +02:00
OBattler
1a9a55c35e Split off the Network configuration from Other peripherals in the Settings dialog and made PCap device configurable;
Overhauled the configuration files so that the global variables are now subdivided into sections;
Fixed CD-ROM MODE SENSE page 0x2A which was being incorrectly reported as not implemented, fixes among other things Rayman 1 and Spellcross: The Last Battle (both now see the CD-ROM and play CD Audio fine).
2017-05-17 21:56:31 +02:00
OBattler
34c08faf46 Fixed IDE hard disk array indexes wherever they were read from the wrong variable, fixes IDE hard disks when their configuration order does not match their IDE bus order. 2017-05-15 03:21:40 +02:00
OBattler
6a3f3727a7 Fixed ISO loading;
Fixed ESDI and XT MFM hard disk initialization;
The IDE SET_FEATURES command is now actually recognized by the command register write handler.
2017-05-15 00:35:26 +02:00
OBattler
84ac082bc4 Fixed the last stray goto abort. 2017-05-14 18:41:58 +02:00
OBattler
8d6ea357d4 Fixed the stray goto abort's in ide_set_features(), it should now compile. 2017-05-14 18:39:58 +02:00
OBattler
266a9690ae Properly reimplemented the IDE SET_FEATURES command, NT 5.00.1743 and Neptune 5.11.5111 now work. 2017-05-14 18:37:32 +02:00
OBattler
ff8186741a Added emulation IDE PIO-only hard disks (affects hard disk bus type in the configuration files - make sure to correct it in Settings after loading a configuration file from previous 86Box builds);
The IDENTIFY PACKET DEVICE command of ATAPI PIO-only drives now behaves like that of mainline PCem ATAPI CD-ROM's;
Added two functions in win.c for waltje for updating the status bar text;
The configuration loader now does sanity checks on most loaded values.
2017-05-10 02:46:01 +02:00
OBattler
cee82642ef Made the emulator even more Unicode then before - configuration files are now Unicode, and floppy images, CD/DVD .ISO images, and hard disk images can now be in paths with non-Latin characters;
Fixed a few minor UI bugs;
Brought IDE IDENTIFY command behavior back in line with Mainline PCEM, in hopes to reduce bugs.
2017-05-05 22:36:10 +02:00
OBattler
f6ef1f833c Vastly overhauled the UI, there's now a completely new Settings dialog as well as a status bar with disk activity icons and removable drive menus;
Thoroughly clean up the code to vastly reduce the number of compiler warnings and found and fixed several bugs in the process;
Applied all mainline PCem commits;
Added SCSI hard disk emulation;
Commented out all unfinished machines and graphics cards;
Added the AOpen AP53 and ASUS P/I-P55T2 machines as well as another Tyan 440FX machine, all three with AMI WinBIOS (patch from TheCollector1995);
Added the Diamond Stealth 3D 3000 (S3 ViRGE/VX) graphics card (patch from TheCollector1995);
Added the PS/2 XT IDE (AccuLogic) HDD Controller (patch from TheCollector1995);
Added Microsoft/Logitech Bus Mouse emulation (patch from waltje);
Overhauled the makefiles (patch from waltje);
Added the Adaptec AHA-1542CF SCSI controller (patch from waltje);
Added preliminary (but still unfinished) Adaptec AHA-154x SCSI controller BIOS support (patch from waltje);
Added an ISABugger debugging device (patch from waltje);
Added sanity checks to the Direct3D code.
2017-05-05 01:49:42 +02:00
OBattler
ef41672b20 WIN_SPECIFY command is now no longer strict on translation parameters with HDX images, fixes > 503 MB HDX images on 440FX;
Applied all mainline PCem commits (changes configuration files!);
Fixed EGA and (S)VGA overscan border drawing;
Added ability to invert the colors when using a (S)VGA graphics card, to appear like an early laptop monitor;
Changed version to 1.03.
2017-02-25 20:18:45 +01:00
OBattler
419b0b0c58 Added support for custom HDX hard disk image format that is less size-limited than HDI and supports storing translation parameters;
Commented out excess EGA logging.
2017-02-15 18:19:00 +01:00
OBattler
20a25caba7 cdrom_set_signature() now does a sanity check on the CD-ROM drive ID, fixes random crashes on hard reset. 2017-02-13 20:21:57 +01:00
OBattler
adf9c28e61 ATAPI DMA now tells the bus master the correct length to transfer;
ATAPI DMA now transfers all blocks at once.
2017-02-08 18:42:20 +01:00
OBattler
6ab214a2b0 Commented out the NEC PowerMate V, because it doesn't work;
Applied all mainline PCem commits;
CD-ROM sound thread is now disabled if all CD-ROM drives are either disabled or have audio disabled;
Fixed the displayed incorrect zero cylinders, head, and sectors per cylinder when loading an already existing HDI image;
Fixed the CD-ROM audio menu item not checking/unchecking correctly.
2017-02-02 02:55:08 +01:00
OBattler
bc5ac4a699 Reverted Direct3D to 2048x2048 buffer and suppressed the EGA/(S)VGA overscan, if enabled, in 2048x modes, fixes Direct3D freezes;
Improved the BusLogic incoming mailbox code;
The BusLogic callback is now three-phases and outgoing mailbox interrupts are emulated correctly;
Fixed the CD-ROM command READ DISC INFORMATION (0x51), fixes NetBSD crashing 86Box with segmentation fault when using the AHA-154x;
Added the CD-ROM command PAUSE/RESUME ALT (0xC2).
2017-01-24 01:03:23 +01:00
OBattler
bd28cc5e57 Disabled the IDE logging again. 2017-01-21 17:52:27 +01:00
OBattler
0dd769d727 ATA PACKET COMMAND now correctly callbacks+aborts when issued on a hard disk, fixes hard disk problems with a DOS CD-ROM driver loaded. 2017-01-21 17:48:45 +01:00
OBattler
3f612ab71a IDE dword reads and writes reverted to original operation, fixes the last hard disk problems;
ATAPI CD-ROM word reads no longer incorrectly discard the upper 16 bits, fixes the CD-ROM problems;
Significantly rewrote parts of the AHA-154x and BusLogic emulation, NT 3.1 RTM and MS-DOS drivers now works correctly;
The function in cdrom.c to read data blocks from the disc now correctly advances the position of the sector to read in non-passthrough mode, fixes multiblock reads from directly mounted ISO's;
Both ATAPI and SCSI now always check for Unit Attention and Not Ready on command execution.
2017-01-20 23:53:19 +01:00
OBattler
0548d8f9c8 Essentially reverted 8-bit IDE data reads and writes to old operation, fixes the hard disk bug;
SCSI LUN is now selectable for the CD-ROM drives;
Made sure every BusLogic RequestSetup ends in a StartMailbox sooner or later, fixes freezes with the DOS BusLogic drivers;
Commented out execess logging from mem.c;
Applied the mainline PCem commit that fixes the Bahamas64 on some boards.
2017-01-18 21:51:03 +01:00
OBattler
6b86549b7e Modified empty IDE channel handling, should hopefully reduce problems;
Fixed several ATAPI CD-ROM bugs;
Added some missing CPL override checks to the MMU translate functions;
Tertiary and quaternary IDE controllers are now automatically disabled if not a single device is attached to them;
Changed sleep time on compile from 10 seconds to 2 seconds.
2017-01-17 19:41:42 +01:00
OBattler
1802f8ea50 Status is now hardwired to 0x30 instead of 0x10 for empty IDE channels. 2017-01-17 01:14:37 +01:00
OBattler
082c4e9ff8 Fixed some compile-breaking errors. 2017-01-17 00:04:49 +01:00
OBattler
7e54cc4436 Two instances of the IDE code setting the error register did not set it in the cdrom struct if drive is CD-ROM, now they do, fixes CD-ROM booting on the Intel Advanced/ATX and possibly other things;
Fixed IDE and ATAPI 8-bit data reads and writes by rewriting the IDE and CD-ROM PIO data read and write code so that the base code is now 8-bit;
Added some compiler directives that if set, will enable togglable logging and log breakpoints;
Empty IDE channels now always report a status of 0x10 rather than 0x20, and do it on port 3F6h/376h/36Eh/3EEh too, fixes OAKCDROM.SYS infinite loop when hitting an empty IDE channel.
2017-01-17 00:01:59 +01:00
OBattler
4f7fd84229 Overhauled and unified CD-ROM emulation;
Four CD-ROM drives are now emulated;
ATAPI DMA is now emulated;
Unified CD-ROM pass through to host drive handling;
Applied all (applicable) mainline PCem commits.
2017-01-16 01:49:19 +01:00
OBattler
6349953413 Fixed a bug from the previous commit and changed some fseek's in ide.c to fseeko64. 2017-01-05 19:48:51 +01:00
OBattler
bb89a07a63 Sanitized the buffer zeroing on REQUEST SENSE for both ATAPI and SCSI. 2017-01-05 04:46:50 +01:00
OBattler
66838be5f9 Multiple ATAPI bugfixes. 2017-01-05 04:36:37 +01:00
OBattler
d2be2fcc81 Reimplemented the READ SUBCHANNEL command for both ATAPI and SCSI. 2017-01-04 22:33:49 +01:00
OBattler
a8bc5133ec The ATAPI implementation of the READ SUBCHANNEL command now correctly issues INVALDI FIELD IN CMD PACKET and not ILLEGAL OPCODE. 2017-01-04 21:44:01 +01:00
OBattler
d70c27a7f1 Response to the IDE/ATA packet command is now instant, fixes Rhapsody DR1. 2017-01-04 20:37:31 +01:00
OBattler
c7ffcee87e Added a forgotten semicolon in ide.c . 2017-01-04 06:35:11 +01:00
OBattler
0dc379404c CD-ROM is no longer reloaded if not in ejected/empty state;
ATAPI commands that accept a buffer length allocation now send no data if the allocated length is 0.
2017-01-04 06:33:18 +01:00
OBattler
6af40b5b16 Added a few keyboard controller commands used by the AMI BIOS'es;
The port 92 handler in mem.c now flushes MMU cache when toggling the A20 gate;
Added ability to reload previous disc after ejecting it;
Fixed the START/STOP UNIT command for both SCSI and ATAPI;
Applied mainline PCem commit: All XT models can now use 64kb RAM. Patch from ecksemmess .
2017-01-04 05:58:44 +01:00
OBattler
8fcc49cd31 Modified ATAPI and SCSI disc change handling. 2017-01-02 04:38:53 +01:00
TC1995
61b8ff9a71 More bugfixes to the Buslogic and SCSI layer, still need to understand why the f**k it doesn't issue the Request Sense command when necessary 2016-12-30 00:42:54 +01:00
OBattler
a0b7d55312 Implemented ATAPI and SCSI SEEK (6) command. 2016-12-29 20:49:01 +01:00
OBattler
03ee24cc6c Quaternary IDE controller now works properly;
Significantly cleaned up ide.c;
Made disc_img.c actually compile again.
2016-12-29 20:40:24 +01:00
OBattler
17e2cd6776 Added a quaternary IDE controller on ports 1E8-1EF/3EE;
The tertiary and quaternary IDE controllers are now fully configurable;
The IRQ of the RTL8029AS network card is now configurable;
CopyQM floppy images are now supported.
2016-12-28 23:34:00 +01:00
OBattler
e7934a1229 Moved some SCSI CD-ROM errors to the command byte/CDB decoder;
SCSI CD-ROM now correctly sets status phase on error;
SCSI CD-ROM now correctly errors on bad command.
2016-12-26 03:21:43 +01:00