Commit Graph

63 Commits

Author SHA1 Message Date
Jasmine Iwanek
11a2f5266a More linting in src/sound 2023-08-23 00:18:16 -04:00
OBattler
975ae1f005 Fixed some MPU-401 bugs, including the IRQ being cleared where it should not have been, fixes the music on Princess Maker 2, fixes #3233. 2023-08-18 16:39:26 +02:00
OBattler
b203b28350 Assorted copyright header fixes. 2023-08-14 21:51:47 +02:00
Jasmine Iwanek
998cfe5cc8 Constification 2023-07-25 17:59:24 -04:00
Jasmine Iwanek
ee695e71f9 More sonarlint work 2023-07-25 17:59:22 -04:00
Jasmine Iwanek
ed1b369abd Yet more sonarlint fixes 2023-05-29 06:21:17 -04:00
Jasmine Iwanek
1860700eab Fix some small issues 2023-01-07 17:02:23 -05:00
Jasmine Iwanek
3fe4f75108 A bit more clang-format 2022-11-19 11:53:07 -05:00
Jasmine Iwanek
645732b7bf clang-format in src/sound/ 2022-09-18 17:22:55 -04:00
Cacodemon345
9473640552 mpu401: Add MPU-401AT I/O address ranges 2022-08-03 13:38:44 +06:00
Cacodemon345
0bd6e90da4 Add IRQ selection for MPU-IMC
This existed in later revisions of the card in real hardware
2022-07-30 00:24:30 +06:00
Jasmine Iwanek
3431e01d4a src/sound 2022-04-12 17:26:07 -04:00
RichardG867
71ba610366 Merge branch 'master' of ssh://github.com/86Box/86Box into cleanup30
# Conflicts:
#	.ci/build.sh
#	.ci/dependencies_msys.txt
#	src/sound/snd_audiopci.c
2022-03-16 00:39:53 -03:00
Jasmine Iwanek
c195b348a7 src/sound 2022-03-13 10:03:39 -04:00
RichardG867
50e49c31f6 CMI8x38 megacommit 2022-03-06 01:29:29 -03:00
Jasmine Iwanek
f7084993c3 Formatting updates in src/sound + related includes 2022-02-25 22:06:27 -05:00
RichardG867
b07570696f Initial implementation of C-Media CMI8x38 2022-02-25 19:22:45 -03:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
Jess Lovelace
f18615ae87 refactored device_t and all declarations 2022-02-02 16:31:22 -05:00
ts-korhonen
edc8c88062 Properly UART-mode detection on input sysex messages 2022-01-07 23:36:25 +02:00
ts-korhonen
a4081be22c Pass sysex messages in mpu-401 uart mode 2022-01-07 18:09:16 +02:00
ts-korhonen
e9332cf670 Fixes for midi input
- Fix buffer overflow in midi input messages
- Detect sysex messages by starting byte instead of length
2022-01-07 10:01:57 +01:00
OBattler
6661ff5dcc Abstracted away the machine bus'es and flags in order to make the rest of the emulator agnostic as to how they're stored. 2021-12-13 01:23:06 +01:00
Ompronce
d61e16d913 Added correct IRQs and port ranges for standalone ISA MPU-401 as per Roland documentation 2021-10-22 21:48:20 -04:00
OBattler
0faf6692c9 WARNING: CONFIGS MIGHT PARTIALLY BREAK WHERE DEVICE NAMES HAVE CHANGED.
Changes to device_t struct to accomodate the upcoming PCI IRQ arbitration rewrite;
Added device.c/h API to obtain name from the device_t struct;
Significant changes to win/win_settings.c to clean up the code a bit and fix bugs;
Ported all the CPU and AudioPCI commits from PCem;
Added an API call to allow ACPI soft power off to gracefully stop the emulator;
Removed the Siemens PCD-2L from the Dev branch because it now works;
Removed the Socket 5 HP Vectra from the Dev branch because it now works;
Fixed the Compaq Presario and the Micronics Spitfire;
Give the IBM PC330 its own list of 486 CPU so it can have DX2's with CPUID 0x470;
SMM fixes;
Rewrote the SYSENTER, SYSEXIT, SYSCALL, and SYSRET instructions;
Changed IDE reset period to match the specification, fixes #929;
The keyboard input and output ports are now forced in front of the queue when read, fixes a number of bugs, including the AMI Apollo hanging on soft reset;
Added the Intel AN430TX but Dev branched because it does not work;
The network code no longer drops packets if the emulated network card has failed to receive them (eg. when the buffer is full);
Changes to PCI card adding and renamed some PCI slot types, also added proper AGP bridge slot types;
USB UHCI emulation is no longer a stub (still doesn't fully work, but at least Windows XP chk with Debug no longer ASSERT's on it);
Fixed NVR on the the SMC FDC37C932QF and APM variants;
A number of fixes to Intel 4x0 chipsets, including fixing every register of the 440LX and 440EX;
Some ACPI changes.
2020-11-16 00:01:21 +01:00
OBattler
28115c4650 Overhauled SB DSP IRQ's and masking and also how it attaches to the MPU-401, fixes IBM OS/2 2.11 among other things. 2020-04-12 00:18:55 +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
OBattler
7eb9faf24c Merge pull request #624 from 86Box/feature/azt_snd
Added the Aztech Sound Galaxy 16 cards.
2020-03-25 01:12:22 +01:00
TC1995
6f4ac0de35 Added the Aztech Sound Galaxy 16 cards.
Added the reset function of MCA from PCem.
Made the MCA devices use the reset parameter if available.
2020-03-25 00:49:25 +01:00
Daniel Gurney
0c509fd551 Remove version tree-wide 2020-03-25 00:46:02 +02:00
OBattler
490c04fcae Current WIP code. 2020-02-29 19:12:23 +01:00
OBattler
e1e2d2d17d Fixed the MPU-401 tempo stuff. 2020-01-23 06:40:20 +01:00
OBattler
0cb2fa034c Fixed some bugs and warnings, and cleaned-up and reworked the MIDI input stuff so that MIDI input can go to multiple devices at a time (each device allows configuring, whether or not it should receive MIDI input), and fixed MIDI input on the Sound Blaster 16/AWE32's built-in MPU-401. 2020-01-19 05:45:05 +01:00
OBattler
8928ef3f66 Fixed an overrun in win/win_ui.c, a few newly introduced bugs, and a warning in the MPU-401 code. 2020-01-15 01:03:54 +01:00
OBattler
1b7da93aa3 Fixed a minor bug in the MPU-401 code. 2020-01-14 19:11:40 +01:00
TC1995
04931767e7 Fixed compile error. 2020-01-08 19:05:21 +01:00
OBattler
c524a62c40 Fixed an intance of undefined behavior in sb_mpu401.c. 2020-01-08 19:01:24 +01:00
OBattler
f7ffe8a247 Fixed coding style and IRQ handling per the spec.
Also made commands other than 0xFF ignored in UART mode, also per the spec.
2020-01-04 03:32:20 +01:00
TC1995
e8dd8c3774 Fixed midi input code. Currently only MPU401 (standalone) and SB cards have MIDI Input capabilities, es1371 and GUS will be done for a later time. 2020-01-02 18:19:22 +01:00
TC1995
9562a20a63 Initial commit of MIDI IN. 2020-01-01 20:20:16 +01: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
cfc626f111 Change to logging - when logging is disabled, the logging functions are now #define'd to nothing, so the compiler ignores the lines that call them completely, seems to slightly speed up the emulator; note that the logging in vid_table.c has not been changed yet, because this file on my local tree currently contains other WIP changes. 2018-10-19 00:39:32 +02:00
OBattler
4e7d0e5b6b MPU-401 read data now clears IRQ in UART mode if it was pending, fixes stuck pending MPU-401 IRQ (and broken wave audio). 2018-09-15 20:17:13 +02:00
OBattler
c588575dbe Standalone MPU-401 now actually gets initialized whenever it's enabled. 2018-09-11 23:08:51 +02:00
OBattler
b316a90bae The ISA standalone MPU-401 is now identified as the Roland MPU-IPC-T. 2018-09-11 22:46:11 +02:00
OBattler
0ea3a1307c Fixed the MCA MPU-401 and gave it its correct name;
Sound Blaster 16/AWE32 MPU-401 is now always the less-functional variant like it would be on real hardware and its IRQ is always shared with the sound card;
Standalone MPU-401 is now always the fully functional intelligent mode variant;
Standalone MPU-401 is now always available, even when Sound Blaster 16/AWE32 is in use;
Cleaned up sound/midi.c and win/win_midi.c.
2018-09-11 22:41:14 +02:00
OBattler
9a180ed33c The MPU-401 no longer issues IRQ's when in UART mode, even when started up intelligent mode, fixes MIDI playback in NT 3.5. 2018-09-04 13:45:48 +02:00
OBattler
90aac0e75a Disabled excess MPU-401 logging. 2018-09-04 13:30:09 +02:00
OBattler
9e4b534c54 Added an option to make MPU-401 use the Sound Blaster 16 (or AWE32)'s IRQ and made its IRQ pending status reflected in the SB16 IRQ source register, fixes MPU-401 detection in Windows NT 3.5. 2018-09-04 13:26:07 +02:00
TC1995
0d2ee0a57d Ported the ISA RTC and Memory expansion cards from VARCem's.
Bunch of improvements in the device, memory and MMU handling.
Re-worked the NEAT 286 chipset (ported from VARCem).
Re-worked the ATI 28800 a bit, added Sierra SC1502x ramdac to VGA Wonder XL (Compaq) since it supports such.
Top 384K memory handling improvements (256K top memory too)
Added MCA version of MPU-401 (not tested much, however).
Re-worked the SCAT 286 chipset.
2018-09-03 13:55:09 +02:00