Commit Graph

71 Commits

Author SHA1 Message Date
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
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
waltje
578619d11f Cleaned up ibm.h, updated Bugger to use new UI function, misc network stuff. 2017-05-09 22:59:01 -04: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
waltje
0eed79510e Merge branch 'master' of https://github.com/OBattler/86Box 2017-05-07 23:52:47 -04:00
waltje
5a87f91bc5 Splitting Buslogic and Aha154x up, cleanups. First phase. 2017-05-07 23:42:13 -04:00
OBattler
55a294ad37 Fixed serial (and serial mouse) operation on boards with Super I/O chips;
A few video bug fixes per patches from the mainline PCem forum;
Added CUE/BIN image support per patches from the mainline PCem forum.
2017-05-08 04:54:17 +02:00
OBattler
e2a717deae Fixed the setting of nvr_path, NVR's with CMOS settings now get saved again;
Added pclog_w which is the Unicode version of pclog, used in disc.c for logging when a floppy image could not be loaded.
2017-05-06 14:15:16 +02:00
OBattler
c403855a94 The emulator is now almost completely Unicode - this means all paths and file names used can now use non-Latin characters;
Fixed several NVR- and ROM-related bugs in the process of doing the above.
2017-05-06 04:02:03 +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
TC1995
c1757b1742 Added Compaq Portable, Portable II, and Portable III (both 286 and 386DX of the latter). Currently the original Portable has issues with CGA but works with the CGA-compatible Wyse 700 and EGA and higher).
IBM PS/1 2011 and PS/2 30-286 now default to XTIDE 1.1.5 when selected.
2017-03-15 19:32:54 +01:00
OBattler
a57aa0ffcc Version changed to 1.07;
Added Intel Advanced/ZP;
Added Commodore PC 60 III;
Fixed Force 4:3 option when overscan is not enabled;
Added option to scale (0.5x, 1x, 1.5x, 2x) the video output;
Added ability to disable ATAPI DMA for CD-ROM drives;
Applied all mainline PCem commits;
Store network card in config file as name rather than number;
Fixed NVR storing for IBM PS/2 Models 2121 and 2121+ISA.
2017-03-14 00:38:25 +01: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
86d1b0f1eb The emulator now tries to initialize the other renderer if the specified one fails, and only fatals if both fail to initialize;
On Windows, fatal now displays a message box, based on old PCem-X patch by RichardG;
Added emulation of the 287, 387, and 487SX floating point units and an option to enable them.
2017-02-21 01:18:46 +01:00
OBattler
af03793533 Added Hyundai Super-286TR;
Fixed the emulation of the Intel 82335 chip used by the Phoenix 386 clone;
Fixed a bug regarding the CGA RGB monitor type;
The IBM PS/1 Model 2121 with ISA is now acknowledged in mem.c.
2017-02-20 06:05:11 +01:00
OBattler
df4b4410e6 Fixed CGA, Hercules, and MDA for the second time, per suggestion and code from basic2004;
Added IBM PS/2 Model 30 emulation per mainline PCem patch from dns2kv2;
Commented out the Chips & Technologies VGA 451 as it needs further work;
Added the ability to disable XTIDE;
Prepared the icon that will be used for stable builds.
2017-02-20 00:16:42 +01:00
OBattler
b8418b94de Added emulation of the Intel 82335 chip for the Phoenix 386 clone;
Added the Samsung SPC-4200P;
Added the Chips & Technologies VGA 451;
Applied all mainline PCem commits;
Added Amstrad MegaPC 386DX model (exits per documentation that I have in German).
2017-02-19 01:58:21 +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
9a5dbc80ab Added emulation of BusLogic BT-958 PCI SCSI controller;
SCSI controller configuration moved to the Settings dialog, suggestion by RichardG.
2017-02-12 04:16:16 +01:00
OBattler
3c61b80a34 Fixed several bugs in the emulation of the National Semiconductors PC87306 Super I/O chip;
Attempt to fix sound fluttering in waiting for a better fix from mainline PCem;
Attempt to make the Sound Blaster louder;
Removed excess logging from cdrom_ioctl.c.
2017-02-03 23:24:56 +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
55b6f1b802 Intel SIO/PIIX/PIIX3 Turbo Reset Control is now properly implemented;
Floppy disk controller is now COMPLETELY reset on hard reset;
NukedOPL is now optional (but enabled by default) so people on older hardware can gain a few % of performance by going back to DOSBox OPL;
*.CPP files now get all the correct optimization flags applied;
Added NEC PowerMate V emulation - you can get into CMOS SETUP but it hangs before booting, and PCI graphics card don't work (yet).
2017-01-31 20:39:36 +01:00
OBattler
d4afd7c2c3 Added some things that were missing from the DMA controller;
Fixed a link-breaking bug in cdrom.c;
The AHA-154x now supports commands 0x28 (GET EXTENDED BIOS INFO) and 0x29 (UNLOCK MAILBOX) and no longer reports a firmware revision with scatter/gather bug;
The BusLogic now supports command 0x20 (RESET);
Fixed the GPIO register mapping on the National Semiconductors PC87306 Super I/O chip.
2017-01-26 17:20:55 +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
71503f69a4 Fixed a compile-breaking error. 2017-01-18 00:45:30 +01:00
OBattler
66757dfaad Added IBM PS/1 Model 2121 with ISA expansion, allows selecting any graphics card. 2017-01-18 00:43:43 +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
8818686ef4 Added a declaration of scsi_model to ibm.h. 2017-01-03 02:39:57 +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
TC1995
abf009e541 Renamed Adaptec 154x adapter source to Buslogic as now it emulates the Buslogic BT-540B SCSI adapter.
Moved CD-ROM read data buffer declaration and definitions to SCSI source files and headers, but still applying to IDE when needed.
SCSI Read commands now return the correct sectors on callback.
DMA bug fixes.
2016-12-23 17:11:59 +01:00
OBattler
fe669d31ac Added TriGem Unknown Adapter. 2016-12-23 04:14:14 +01:00
OBattler
dc46480aa4 Applied all mainline PCem commits;
Added experimental NVidia Riva TNT2 emulation (patch from MoochMcGee);
ASUS P/I-P54TP4XE, ASUS P/I-P55T2P4, and ASUS P/I-P55TVP4 are back;
National Semiconductor PC87306 Super I/O chip now correctly reenables devices after a chip power cycle;
Several FDC improvements and the behavior is now a bit closer to real hardware (based on actual tests);
Added MR Intel Advanced/ATX with Microid Research BIOS with support for 4 floppy drives and up to 4 IDE controllers;
Added floppy drives 3 and 4, bringing the maximum to 4;
You can now connect hard disks to the tertiary IDE controller;
Correct undocumented behavior of the LEA instruction with register is back on 286 and later CPU's;
Pentium-rea models with Intel chipsets now have port 92 (with alternate reset and alternate A20 toggle);
Overhauled DMA channel read and write routines and fixed cascading;
Improved IMG detection of a bad BPB (or complete lack of a BPB);
Added preliminary emulation of PS/2 1.44 MB and PC-98 1.25 MB 3-mode drives (both have an inverted DENSEL pin);
Removed the incorrect Amstrad mouse patch from TheCollector1995;
Fixed ATAPI CD-ROM disk change detection;
Windows IOCTL CD-ROM handler now tries to use direct SCSI passthrough for more things, including obtaining CD-ROM capacity;
The Diamond Stealth32 (ET4000/W32p) now also works correctly on the two Award SiS 496/497 boxes;
The (S)VGA handler now converts 6-bit RAMDAC RGB channels to standard 8-bit RGB using a lookup table generated at emulator start, calculated using the correct intensity conversion method and treating intensity 64 as equivalent to 63;
Moved a few options from the Configuration dialog box to the menu;
SIO, PIIX, and PIIX3 now have the reset control register on port CF9 as they should;
Several bugfixes.
2016-12-23 03:16:24 +01:00
Melissa Goad
dfa7e61234 Fix RIVA 128 a bit more. Add Hercules Plus 2016-11-16 15:37:07 -06:00
OBattler
7cb901e5e6 Sound Blaster 16 and AWE32 MPU-401 base address and 16-bit DMA channel are now configurable;
AHA-154x SCSI controller base address, IRQ, and 16-bit DMA channel are now configurable.
2016-11-13 18:21:15 +01:00
OBattler
65b93b4347 Added the declaration for fatal to ibm.h. 2016-11-13 16:47:24 +01:00
OBattler
e46631e47b Reworked the menus so they're more logically grouped;
Removed the lone Misc menu and mvoed Status to Settings;
Added a SCSI CD-ROM option to the menu;
Removed the atapi_cdrom_enabled option and replaced any usage of it with !scsi_cdrom_enabled;
Disabling/enabling the CD-ROM drive is now separate from the drive's contents;
The tertiary IDE controller now never gets enabled is the CD-ROM drive is either disabled or SCSI.
2016-11-13 05:39:21 +01:00
TC1995
0f035b42ea Added preliminary Adaptec 154x emulation, needs fixing in the Read 10 command.
Made ATAPI derived from SCSI.
Added proper S/G emulation for SCSI DMA.
Added SCSI CD-ROM emulation, preserving all the former ATAPI commands as well.
2016-11-12 15:06:38 +01:00
OBattler
6e2b91c3d1 Pretty much all timer counters are now 32-bit again;
Fixed FDI stream parameters passed to the 86F handler, FDI stream images now read correctly again;
The National Semiconductors PC87306 SuperI/O chip now supports enhanced FDC mode.
2016-11-07 06:39:20 +01:00
OBattler
c376302ad3 Reverted the PIT structure to Mainline, fixes NT 4.0;
THe RTL8029/AS PCI IRQ field is now hardwired, makes it work on chipsets using the PIIX3 chip (mostly boards based on 430VX and 440FX);
Fixed S3 Trio64 rendering in NT 4.0.
2016-11-05 07:17:08 +01:00
OBattler
78a44d845b Fixed a bug regarding 86F images and extra bit cells;
Brought the Intel Flash emulation in line with mainline PCem;
Removed the Intel Advanced/ML;
Reverted the ET4000/W32p code back to the code from mainline PCem, with fixes to PCI and linear frame buffer addresses according to the datasheet;
Timer counters are now 32-bit again - fixes quite a few bugs.
2016-11-04 22:32:23 +01:00
OBattler
e280faa2d6 86F format handler updated to 86F version 2.0 and bit by bit handling;
FDI stream images are now also handled by the 86F handler;
Both floppy drives' motors now spin separately;
Added Plantronics ColorPlus emulation per patch from PCem forum;
Applied all mainline PCem commits;
Fixed several bugs.
2016-11-02 22:39:07 +01:00
Melissa Goad
a07a30645c Add preliminary RIVA 128 emulation 2016-10-06 16:05:02 -05:00
Melissa Goad
f7b9249b54 RIVA TNT support 2016-10-06 13:42:13 -05:00
OBattler
d3d26999f6 Added support for TD0 (Teledisk) floppy images;
Fixed support for Japanese HDI hard disk images;
Attempt to mix DOS 4.x DOSSHELL mouse issues.
2016-09-29 21:54:34 +02:00
OBattler
7461fbfdfd Fixed the definition of nvr_path in ibm.h. 2016-09-28 23:05:01 +02:00
OBattler
a3e6c4eeb3 FDC DOR handler now does a sanity check when setting drive select, fixes OS/2 Setup fataling the emulator when reading Disk 2;
FDC SEEK command now no longer incorrectly times out when seeking to the track the FDC thinks it's already at, fixes floppies in NT 3.1;
Emulator now correctly saves configuration changes to the configuration files it was loaded with rather than always the default;
Default path for NVR's can now be overridden by adding the nvr_path option to the cfg file.
2016-09-27 21:38:29 +02:00
OBattler
bde171e81b Hard disk parameters dialog boxes now allow you to specify size in MB or select a predefined type from a combo box;
Japanese HDI hard disk images are now supproted;
FDC FORMAT command now CRC's the correct data, fixes formatting inserted IMG's;
FDC SEEK command now no longer incorrectly reports invalid status when HDSEL (head select) is 1, fixes booting from inserted floppies of any format on boards other than ASUS P/I-P55TVP4.
2016-09-25 21:39:21 +02:00
OBattler
6318e2bb17 Rewritten parts of the 86F handler to minimize false CRC errors and misidentification of sectors;
Replaced IMG handler with one that now proxies to the 86F handler;
Applies the remaining Mainline PCem speedup commit;
Fixed the National Semiconductors PC87306 Super I/O Chip's serial port IRQ assignment;
DMF images are now loaded with the correct sector interleave, improving read/write speed;
XDF images are now loaded in a way that emulates the real order of the sectors on the track, improving read/write speed;
Added 16-bit physical memory read/write routines (mem_phys_readw, mem_phys_writew) and modified the 16-bit DMA code to use them instead of two 8-bit reads/writes.
2016-09-22 21:22:56 +02:00