1907 Commits

Author SHA1 Message Date
Jonathan Campbell
c49c3f4744 whoops... 2016-10-26 12:55:33 -07:00
Jonathan Campbell
6d067ead30 multitrack AVI to WAV conversion script 2016-10-26 12:53:02 -07:00
Jonathan Campbell
f6cfe15299 remove fixme, I just did it. 2016-10-26 02:28:10 -07:00
Jonathan Campbell
767026d3b3 The AVI standard allows you to attach names to streams, so take
advantage of that now so the end-user can identify which of the several
streams is which (which one is SB, GUS, PCSKR, etc).
2016-10-26 02:24:55 -07:00
Jonathan Campbell
b9b3b7460a fix AVI audio chunk keyframe bits. every chunk is a keyframe. this fixes
the problem where FFMPEG cannot seek around in the AVI when you play it.
2016-10-26 02:17:29 -07:00
Jonathan Campbell
c3180cd9cf more sensible default... 2016-10-26 02:10:26 -07:00
Jonathan Campbell
f8008edb4f Merge branch 'master' of https://github.com/joncampbell123/dosbox-x 2016-10-26 02:09:21 -07:00
Jonathan Campbell
2205c04ce8 multi-track WAV recording mode.
the difference between the existing WAV recording mode and multitrack
recording is that all mixer channels are recorded separately to their
own audio track in an AVI. Hopefully, you can use the AVI to then do
your own downmix in your video editing software of choice.
2016-10-26 02:08:00 -07:00
box-tortoise
93b62cab5f Patch: fix win32 mouse input latency in SDL 1.2hg
After the release of SDL 1.2.13, a commit for their bug# 611 was applied to enhance ioquake3 mouse input in Windows, particularly to enable dinput in an opengl application and for reliability of mouse input under the windib driver. For example (from their commit): "Googling for this indicates that often this is known to result in "spurious" and/or "missing" mouse movement events...". It also added a dependency on dinput7.

The attached patch reverts the above commit and it applies to a recent version of SDL 1.2hg (tested in mingw32 and Vista). This restores the mouse input latency to that of SDL 1.2.13 and fixes specific mouse cursor stuttering issues (limited testing of windib and directx under output=surface and =opengl in games such as SC2000, FS 5.1, and UT99/3dfx). It also fixes other minor mouse issues, such as the major loss of mouse movement events while the 3dfx emulation is active in the opengl or software rasterizer path. The previous workarounds
2016-10-25 22:36:14 -04:00
Jonathan Campbell
2f3794464d fix VGA port 3DAh to always set "vertical retrace" during vertical
retrace even if not blanking. some DOS demos program custom VGA modes
(incorrectly) that end up putting vertical retrace during active
display.

"Monolith" demo custom mode (320x590) works again.
2016-10-21 09:22:56 -07:00
Jonathan Campbell
e2d9d36a5d vga port 3DAh bugfix. the recent change wasn't quite correct.
bit 0 of 3DAh = 1 means horizontal OR vertical blanking
bit 3 of 3DAh = 1 means vertical retrace
the mistaken code set both bits during vertical blanking, not vertical
retrace, which caused hpel and page flipping/flicker issues with DOS
games and demos.
[http://www.osdever.net/FreeVGA/vga/extreg.htm#3xAR]
2016-10-20 13:12:03 -07:00
Jonathan Campbell
159499c0de testing so far shows that, at least across Intel chipsets, the PCI-based
chipsets also implement 128KB DMA, so make it on by default for "auto".
2016-10-19 00:09:29 -07:00
Jonathan Campbell
e5946f9eec Whoops! 128k DMA auto is supposed to enable if NOT PCI bus enabled. 2016-10-18 18:09:41 -07:00
Jonathan Campbell
82cd1b54ad here begins the big question: what do motherboards do with the address
register and page register when carrying out 16-bit DMA? this change
updates the code to allow either one method that allows 128KB boundaries
for 16-bit DMA (which DOSBox has already been doing anyway) and the
other method that limits 16-bit DMA to 64KB boundaries but preserves all
bits of the page register (which is said to be the way PCI-based
motherboard do it). You can choose which one from dosbox.conf now, or
let DOSBox-X decide based on your hardware configuration (which is
currently based on whether or not the VM has PCI emulation enabled).
2016-10-18 17:44:11 -07:00
box-tortoise
014b5f9930 Vga vertical blank/retrace timing improvement
See #231 : for vga emulation, expect both bits set during vertical blank/retrace. Improves mouse responsiveness in FS 5.1 and, by a previous report, in non-flight screens of Wing Commander.
2016-09-18 21:53:19 -04:00
box-tortoise
ab9db615fc Disable mipmapping for Voodoo software rasterizer
This change is specific to the Voodoo software rasterizer and effectively disables its mipmapping; however, the opengl path is unaffected. Where mipmapping is active, then textures are compressed to low resolution at a near distance whereas this should occur farther away. For GLQuake, the gl_nearest and gl_linear modes are available. UT does not offer the mipmap option in its preferences for glide mode, but this commit will workaround the above texture issue.
2016-09-01 05:51:29 -04:00
box-tortoise
609dd1d53d Removed a reference to SDL_thread.h
No reference to the contents of SDL_thread.h in sdl_mapper.cpp, so removed the relevant line. Verified also in a win32 build with this change - the compiler and linker reported no error.
2016-08-26 05:54:30 -04:00
Jonathan Campbell
7e7ea86388 Fix SC-4000 missing break statement 2016-08-13 12:24:48 -07:00
Jonathan Campbell
e7a2652e5c SB16ASP ASP mode register behavior update. Based on poking at real
hardware. Apparently bits 3 and 7 must be set to enable memory access,
else register 0x83 just returns chip ID. bits 4-6 don't matter in that
case. bits 0-2 enable index reset and autoincrement as noted.
2016-08-13 12:06:57 -07:00
Jonathan Campbell
2ad000a1ae SB16ASP reference: for DSP command 0xF9 add in comment a DOSLIB dump of
command 0xF9 results. Someday we could figure out what it means.
2016-08-13 11:45:02 -07:00
Jonathan Campbell
e06fcb6611 SB16ASP actual hardware observation: the RAM accessible through port
0x83 appears to be uninitialized at power-on. what I thought were
signficant contents were really just bytes of RAM that are mostly 0xFF
but contain randomly flipped bits based on whatever the RAM cells
happened to latch onto when the card first powered up.
2016-08-13 11:20:07 -07:00
Jonathan Campbell
4b5e3f75db Update notes regarding SB16ASP mode, modes 0xF8-0xFF and what the bits
actually mean. Apparently modes 0xF8-0xFF are some kind of memory access
mode, and bit 2 resets the memory index == 0, bit 1 says to increment
memory address on write, bit 0 says to increment memory address on read.
this also emulates useless ASP modes 0xFD-0xFF as well.
2016-08-13 11:10:38 -07:00
Jonathan Campbell
6ec4206cb5 make sure not to respond to ASP writes if ASP disabled 2016-08-13 03:49:59 -07:00
Jonathan Campbell
385d8ea3bb SB16 ASP observed behavior: register contents of undefined registers are
the register index you asked for.
2016-08-13 03:12:08 -07:00
Jonathan Campbell
c111b3b35f cleanup, and fix verbosity of SB16ASP debug messages 2016-08-13 02:57:31 -07:00
Jonathan Campbell
a6e1c49818 So... poking at a SB16 card with an ASP chipset, it turns out that ASP
register 0x83 is some sort of access port to what appears to be 2KB of
RAM on the chip (it's readable/writeable). When you set mode == 0xFA,
you enable writing to the RAM with increment. When you set mode == 0xF9,
you enable reading from the RAM with increment. Creative's DIAGNOSE.EXE
utility appears not to care so much whether the byte sequence is
0x00,0xFF,0x00,0xFF so much as it cares whether or not it can read the
bytes, invert them, write them back, then read back and invert the bytes
again. For reference, a dump of the 2KB RAM block from the chip is
provided in the source code as the initial contents. The dump is from a
Sound Blaster 16 non-PnP card with DSP version 4.4 and ASP chip version
ID 0x10. Creative's DIAGNOSE.EXE utility is happy with the emulation so
far, since it gets all the way to asking for the chip version ID.

I can only assume this 2KB block of RAM is somehow key to communicating
with the chip and the microcode you upload to the chip when you want
hardware accelerated decompression (to run CSP images).
2016-08-13 02:40:31 -07:00
Jonathan Campbell
aaf2b1b294 realism fixes: SB16 ASP commands are the same for all SB16 cards, but
what is returned to the game or OS differs by whether or not there is an
ASP chip. Cards that lack the ASP always return 0xFF no matter whether
you ask version, register contents, etc. If DOSBox/DOSBox-X does not
emulate the ASP anyway, why give the driver the impression that there
is one? Why not act like a typical SB16 that doesn't have one? But if
you want the old behavior back, you can set "enable asp=true" in the
[sblaster] section of your dosbox.conf
2016-08-10 18:53:03 -07:00
Jonathan Campbell
b28a3937a2 log SB16ASP commands with more detail, for debugging purposes 2016-08-10 18:37:09 -07:00
Jonathan Campbell
af058e941c reminder 2016-08-10 15:29:17 -07:00
Jonathan Campbell
bd08d4ded9 more 2016-08-09 11:30:11 -07:00
Jonathan Campbell
fc211a932c helper script 2016-08-09 00:39:00 -07:00
box-tortoise
76747922f7 Patch for alternate OPL3 emulation by khokh2001 2016-08-04 23:31:15 -04:00
box-tortoise
5b4a952463 3dfx/voodoo OpenGL bugfix #2
The drawing of pixels was shifted along the y-axis by 1 and led to a malformed direct3d mouse cursor in fs98. This commit fixes the issue.
2016-07-28 23:01:38 -04:00
Jonathan Campbell
a4177f925c more 2016-07-22 13:24:26 -07:00
Jonathan Campbell
abc9cd7f31 Merge branch 'master' of https://github.com/joncampbell123/dosbox-x 2016-07-22 11:47:04 -07:00
Jonathan Campbell
92b8a62ce7 SB16 emulation bugfix: properly handle sample rates from both DSP
command 0x40 (set time constant) and command 0x41/0x42 (set sample rate)
when handling SB/SBpro style playback commands (DSP command 0x14).
Bugfix for unofficial Silpheed Sound Blaster drivers. These drivers use
SB16 sample rate commands if DSP version 4.xx is detected, but will also
use DSP 1.x/2.x commands to play audio.
2016-07-22 11:45:03 -07:00
Jonathan Campbell
6cd412bf7c fixup FFMPEG autodetect in configure.ac to either detect libavcodec or to not set the makefile/config.h define
indicating it's presence. Also fixup autodetect to use pkg-config to find it (because CentOS 7 sticks FFMPEG
headers under /usr/include/ffmpeg for some reason).
2016-06-22 13:25:52 -07:00
Jonathan Campbell
18956661ee cosmetic cleanup 2016-06-13 00:22:03 -07:00
Jonathan Campbell
e0806c30f5 FPU 80-bit flag implemented. Certain operations including 80-bit
extended load/store and 64-bit integer load/store will use it to
preserve the contents correctly instead of downgrading FPU precision to
"double" type. This hack makes it possible for DOS games/demos using the
"fast Pentium memcpy trick" to copy data correctly. "Toontown" demo now
renders to screen correctly without vertical lines.
2016-06-12 13:05:32 -07:00
Jonathan Campbell
d290ef02eb FPU_Reg selftest 2016-06-12 12:19:37 -07:00
Jonathan Campbell
e3e1cca292 reminder for anyone who wants to compile this for Windows. 2016-06-12 10:43:17 -07:00
Jonathan Campbell
8cb3c035f8 use BSD endian.h functions to consolidate host ptr access down to simply
C_UNALIGNED_MEMORY or not. Make unaligned memory access layered to
simplify code.
2016-06-12 10:40:47 -07:00
Jonathan Campbell
691a4702cb 64-bit host read/write and var_write. 2016-06-12 10:23:43 -07:00
Jonathan Campbell
45c142addb allow bitfield tests even when long double == double. 2016-06-12 01:27:29 -07:00
Jonathan Campbell
98fea6a9cc make sure floating point structs are packed. update FPU tests to make
sure bitfield alignment is correct.
2016-06-12 01:25:29 -07:00
Jonathan Campbell
f8e1602f4b long double detect, and some conditional code. 2016-06-12 01:09:57 -07:00
Jonathan Campbell
d1cbadeba1 remove unused p_regs[] FPU state var 2016-06-12 00:47:58 -07:00
Jonathan Campbell
96b88b94e9 bugfix: PC speaker readback does not cycle when timer 2 is gated off.
that bit stays at '1' if gated off. just like real hardware.
2016-05-22 01:49:11 -07:00
Jonathan Campbell
c172708e40 Port E9h free on shutdown too. 2016-05-22 01:23:21 -07:00
Jonathan Campbell
0ddc24d4c6 Bochs port E9h emulation.
If enabled, ASCII text written to I/O port 0xE9 is assumed to be debug
output and directed to DOSBox-X's logging functions.
2016-05-22 01:20:44 -07:00