Commit Graph

943 Commits

Author SHA1 Message Date
TC1995
04e48a071e S3 changes part 3:
Added the Phoenix S3 Vision968 (IBM RGB) and the MiroCRYSTAL 20SD VLB (864, SDAC) (alongside their BIOSes).
Added the vendor specific bits of CRTC5c used by the MiroVIDEO 40SV Ergo (968), Phoenix 868 and Phoenix 968.
Restored FIFO in the pre-964 cards, but without threading (Warning, code might be bloated for this).
Fixed horizontal issue with the SPEA Mercury P64V (968).
2021-09-11 22:02:31 +02:00
Miran Grča
c5864a46d8 Merge pull request #1676 from 86Box/master
Bring the branch up to par with master.
2021-09-08 00:08:23 +02:00
OBattler
0c4003caa3 Added the C&T 82C100 chipset needed by the Victor V86P. 2021-09-07 23:41:17 +02:00
Miran Grča
c107fde4e5 Merge pull request #1675 from lkundrak/lr/victor-v86p
Victor V86P Emulation
2021-09-07 22:17:49 +02:00
Lubomir Rintel
f482ad54f6 Add the Victor V86P Machine
This is a portable computer based around 80C86 processor and Chips &
Technologies chip set. It features a 640x200 monochromatic LCD display,
and up to two 720k 3.25" floppy drives.

It can optionally contain a hard drive controller along with 20M 3.25" MFM
hard drive in place of one floppy drives, which is not emulated yet.
Also not emulated is the expanded memory over 640K.

At least two versions of BIOS have been seen in the wild -- one from
89/09/04 another from 09/12/20.

The MD5 checksums of the ROM images (a pair of chips for each BIOS versions
and a character ROM) are as follows:

  SHA1(ce39ab220de25bbd824dbd5c7411c88f3a8d7430) =
  roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Even.rom

  SHA1(9b374cf5aa48186577293c3a83250cdc1aed7c9a) =
  roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Odd.rom

  SHA1(57015c8b85aecb10890d4ddd4a0d133e1ba4ca49) =
  roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Even.rom

  SHA1(1d3217e9fde7410167cd462ad82b360bf546b9d0) =
  roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Odd.rom

  SHA1(59ff86fcfea479b02075c32da12c6c1579d71df5) =
  roms/machines/v86p/v86pfont.rom
2021-09-07 21:34:18 +02:00
Lubomir Rintel
a05f5d493f Add Chips & Technologies 82C425 CGA LCD/CRT controller emulation
The 82C425 is a CGA-compatible display controller chip. On top of being
able to drive a regular CRT display like an ordinary CGA card, it can
be configured to drive a monochrome 640x200 LCD panel instead.

The chip along with a LCD panel are notably used in the Victor V86P
laptop comupter.

When driving a monochrome LCD, the controller is able to employ some clever
tricks to compensate for he lack of color: by alternately turning dots on
and off with various duty cycles it can achieve displaying 4 or 8 shades
of gray. It can also enhance contrast between the text glyphs and their
background when it's less than the configured minimum (with "SMARTMAP"
algorithm).

The emulation is fairly complete. The 320x200 graphical mode uses 4 gray
shades along with stretching the pixels horziontally much like the real
hardware would. SMARTMAP is implemented for text mode and also matches
the real hardware pretty closely.

The missing bits are:

 * Configurable blink rates
 * Mapping the character map into host address space

The code is based on the T1000 display controller emulation and
still bears strong resemblance to it.
2021-09-07 21:34:18 +02:00
Lubomir Rintel
ad5e0943f1 Add Chips & Technologies 82C606 Super I/O emulation
This adds support for Chips & Technologies 82C606 CHIPSpak Multifunction
Controller emulation. It is similar enough to 82C710 that supporting the
82C606 is merely a matter of adding a variant to the existing code.

The 82C606 is notably used in the Victor V86P portable computer.

Compared to 82C710, the 82C606 provides neither floppy nor IDE hard
driver support. On the other hand it provides a RTC with non-volatile
CMOS RAM and a Game Port. The base addresses and interrupt lines of the
peripherals are configurable.
2021-09-07 21:34:18 +02:00
Lubomir Rintel
d152e92648 Don't raise the UART interrupts if no IRQ is configured
The 82C606 SuperIO allows reconfiguring the interrupt line used for the
UART alarm at runtime, including disabling it altogether.

While at that, correct the type in the serial_setup() prototype to be
the same as serial_t.irq uses.
2021-09-07 21:34:18 +02:00
Lubomir Rintel
e641e81de7 Add possibility to change the RTC interrupt line
The 82C606 SuperIO allows reconfiguring the interrupt line used for the
RTC alarm at runtime.
2021-09-07 21:34:18 +02:00
Cacodemon345
d232ce99fe Redirect fopen64 functions to fopen for non-Linux Unix systems 2021-09-07 16:24:50 +06:00
TC1995
4f5a78a8b9 Added a force byte mode variable to prevent dword mode from operating due to glitches in the S3 acceleration using said mode. 2021-09-06 13:03:50 +02:00
Miran Grča
7145e3aa9a Merge pull request #1662 from 86Box/master
Bring the branch up to par with master.
2021-09-05 20:31:53 +02:00
TC1995
0ae17cbb3e S3 changes/improvements:
Overhauled the read portion of the PIX TRANS command (fixes white corruption in some instances while keeping everything already working fine).
Fixed Miro 10SD recalctimings issue about losing graphics mode.
DWORD mode SVGA CRTC bit fixed when S3 DWORD mode bit is enabled.
2021-09-05 18:10:54 +02:00
TC1995
16996ab2a2 Added the 3dfx Velocity 100 per request, alongside its BIOS. 2021-09-05 01:16:56 +02:00
Miran Grča
b0ec4e1ece Merge pull request #1652 from 86Box/master
Brought the branch up to par with master.
2021-09-03 16:41:24 +02:00
Miran Grča
e9fbddd9aa Merge pull request #1648 from 86Box/tc1995
S3 & TVP3026: Part 2.
2021-09-03 00:14:49 +02:00
TC1995
391c6a3571 S3 & TVP3026: Part 2.
Reworked the pix tranfer register to allow a word in a byte transfer.
Added an alternative bios selection for the SPEA Mirage 801 card (3.05I and 4.01, the latter being the default now.
Added the MiroCrystal 10SD 805 VLB, Phoenix 801 ISA, MiroVideo 40SV 968 VLB/PCI, SPEA Mercury P64V 968 PCI , SPEA Mirage P64 Trio64 VLB cards.
Removed some non-working S3 cards like the Trio64V+ VLB and Elsa Winner 2000 Pro X VLB (only PCI variants of these cards are now in)
2021-09-03 00:05:43 +02:00
OBattler
e74cd24c17 Increased the size of the gdcreg array. 2021-09-02 21:28:47 +02:00
OBattler
5b972fc477 Implemented CD Audio de-emphasizing for pre-emphasized tracks, closes #1623. 2021-09-02 20:52:30 +02:00
OBattler
84f4b8cac7 Added a bunch of parameters (including one to specify custom ROM path), fixed a warnings, removed excess commented out code from video/vid_voodoo.c, and made Makefile.mingw quiet again. 2021-09-02 20:15:46 +02:00
Miran Grča
a505a6a910 Merge pull request #1640 from 86Box/master
Brought the branch up to par with master.
2021-09-01 15:03:15 +02:00
Miran Grča
e4197b8ca4 Merge pull request #1631 from laciba96/master
Add support for overridable VM name
2021-09-01 15:02:10 +02:00
Cacodemon345
1fa760a161 Use local OpenAL headers
fddload command implemented
2021-08-29 23:50:22 +06:00
Cacodemon345
cb2d0a1046 Use local copy of alext.h for the time being 2021-08-29 23:50:21 +06:00
Cacodemon345
a903e24702 Fix remaining warnings 2021-08-29 23:50:21 +06:00
Cacodemon345
91e27c0ffc Second shot at fixing macOS compilation 2021-08-29 23:50:21 +06:00
Cacodemon345
f6af2b0162 Fix compile errors and get rid of glib dependency 2021-08-29 23:50:21 +06:00
Cacodemon345
39fea69d5c Fix warnings 2021-08-29 23:50:21 +06:00
Cacodemon345
1b93e8e989 Initial Linux/Unix code 2021-08-29 23:50:16 +06:00
Ompronce
2596c0143c Make the Innovation SSI-2001's IO address configurable (#1636) 2021-08-29 06:40:21 +02:00
Miran Grča
8afee010d0 Merge pull request #1635 from 86Box/master
Bring the branch up to par with master.
2021-08-28 11:55:46 +02:00
Alexander Babikov
5171ebb35a Add a filter for CD de-emphasis, with coefficients calculated based on SoX's code
This only adds the filter itself and needs hooking up to the rest of the code
2021-08-27 17:26:19 +05:00
Laci bá
13ff9af7e1 Add support for overridable VM name
- A global variable added as vm_name
- This variable can be filled with the `--vmname "Name"` or `-V "Name"` parameter.
- If there are no such a parameter definied this variable will filled up with the directory name.
- The Discord module displays this global variable, as VM name.
- Various 86Box managers can use this feature to display fancy VM names, instead of GUID folder names.
- This variable can be easily used later for adding cool things, like the VM name in title bar, etc.
2021-08-26 20:30:37 +02:00
Miran Grča
18af472059 Merge pull request #1629 from 86Box/master
Bring the branch up to par with master.
2021-08-24 21:12:37 +02:00
OBattler
d30ad04a88 UMC UM88xx fixes, ALi M1429 documentation, and added the DataExpert 386SX, PC Chips M919, Samsung SPC7700P-LW, and Acrosser AR-B1423C. Also renamed the ALi M1429G AMI WinBIOS 486 to Kaimei 486. 2021-08-24 21:11:00 +02:00
OBattler
3ddbca6fca Merged tiseno100's ALi M1429(G) changes. 2021-08-23 22:01:25 +02:00
dob205
34a14354bf Fixes some small potential issues with the updated plat.h
Added a small fix for the if condition, so that the OS definition can work properly
2021-08-22 17:56:34 +02:00
dob205
672ff82e46 Update plat.h 2021-08-22 17:30:05 +02:00
OBattler
67367798a7 Merged various SMC FDC67C6xx Super I/O chips into one file, re-added the UMC88xx 486 chipsets (and four machines for it) based on work by tiseno100 and my own work, various other fixes, and added quite a few machines (including the AOpen AP5VM which now works), also added the remaining ALi M6117 machine (Protech SBC with Award BIOS), and made the Intel Advanced/ATX's on-board S3 Trio64V+ work, as well as the on-board S3 Trio64/V2 of the two Compaq Presarios. 2021-08-21 18:19:10 +02:00
OBattler
42dbde1905 Fixes to lpt.h. 2021-08-20 19:19:16 +02:00
OBattler
3e7057d458 Changes to lpt.h. 2021-08-20 19:18:40 +02:00
OBattler
a76fda99d8 Various Super I/O chip rewrites and fixes (and implemented dual-chip mode for the SMC FDC73C669). 2021-08-20 17:50:42 +02:00
Miran Grča
a0d855823a Merge pull request #1618 from 86Box/master
Bring the branch up to par with master.
2021-08-20 16:58:49 +02:00
TC1995
a4f2d781e8 Initial implementation of the Trantor T128 SCSI adapter, another one using the 5380 chip but with a different undocumented ASIC compared to the rest of the already implemented line of cards. 2021-08-17 14:26:47 +02:00
Miran Grča
9d648644f8 Merge pull request #1598 from 86Box/master
Bring the branch up to par with master.
2021-08-10 15:49:15 +02:00
OBattler
03d91af98c Some Flash fixes for the Acrosser AR-B1479. 2021-08-10 15:37:15 +02:00
OBattler
df00d0ac58 Added three ALi M1487/89 machines and that 430VX machine with Award 4.50PG BIOS. 2021-08-07 12:28:33 +02:00
OBattler
5ecf3ac6cb Merged the ALi M1217 into the M6117 (that's based on the M1217), moved the M6117 out of the Dev branch, removed the broken M6117 Acrosser, and added three M1217 machines. This finishes the ALi work. 2021-08-05 18:16:17 +02:00
Miran Grča
5b867e6a32 Merge pull request #1588 from 86Box/master
Bring the branch up to par with master.
2021-08-05 16:38:33 +02:00
Miran Grča
6f639cd866 Merge pull request #1587 from lemondrops/feature/sndgain
Make the sound gain dialog accessible from the menu bar
2021-08-05 16:23:08 +02:00