Volker Ruppert
caef53a4a1
Voodoo 1/2: Added support for dword aligned byte writes.
...
TODO: For unaligned writes the voodoo_w() function needs to be modified.
2024-01-28 11:05:16 +01:00
Volker Ruppert
2c4b9e9457
Don't set up tiles for update if screen parameters are invalid.
2024-01-28 10:31:06 +01:00
Benjamin David Lunt
19fc78d2db
Update usb_xhci.cc ( #245 )
...
reset closer to real hardware
2024-01-28 08:42:41 +02:00
finnbrudal
106e7fa03a
Fix XHCI Address Device command ( #244 )
...
Was sending the SET_ADDRESS request using the wrong (old) slot context.
2024-01-28 07:22:09 +02:00
Volker Ruppert
3ec05e8f05
Voodoo 1/2: Added support for 8 and 16 byte writes (issue #241 ).
...
Also added 16-bit read support. Odd data size and address support not done yet.
2024-01-27 18:58:22 +01:00
Shwartsman
0e1c5e35ff
added error message for unimplemented access len in bx_voodoo_1_2_c::mem_read_handler
2024-01-26 09:45:00 +02:00
Volker Ruppert
30a61c2a51
Banshee/Voodoo3 fixes in mem_write_linear (issue #231 ).
...
- Applied memory mask to start address.
- Consider half mode and double width for redraw setup.
2024-01-25 19:57:28 +01:00
Shwartsman
437ddc96fc
Addressing Black screen in Descent II: Destination Quartzon 3dfx OEM with Voodoo #238
2024-01-24 17:04:21 +02:00
Volker Ruppert
a663b9d1d0
Minor Banshee/Voodoo3 changes.
...
- Update pens when switching from / to 3D mode.
- Improved BX_ERROR message for unimplemented feature.
2024-01-22 20:23:40 +01:00
Volker Ruppert
75757e9852
Banshee/Voodoo3: Fixed overlay stride.
2024-01-22 16:37:18 +01:00
Volker Ruppert
ea0b208970
Cirrus: Implemented double scan support for color depth > 8.
...
TODO: Screen width not adjusted yet (should be done similar to Voodoo3).
2024-01-21 10:09:30 +01:00
Benjamin David Lunt
9820cf934e
Update ohci_core.cc ( #232 )
...
On a buffer underrun (Short Packet), we still need to update the CBP
---------
Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-21 06:56:35 +01:00
Benjamin David Lunt
7851bf8ce1
Update hdimage.cc ( #233 )
...
Change an ERROR to a PANIC when a .lock file is found.
2024-01-21 06:39:48 +01:00
Volker Ruppert
db0d16ff09
Banshee: Double the screen width in 'half mode' if height > width.
2024-01-20 22:30:47 +01:00
Shwartsman
35abc682cb
Merge fix for "Crash when floppy image file is missing #229 "
2024-01-20 07:53:26 +02:00
Volker Ruppert
6e48bc78fc
VGA core: Implemented a more accurate vertical timing.
...
Now using one timer with two alternating periods. A modification of the timer code
wasn't necessary. The update mode vsync is not yet affected by this change.
2024-01-19 18:40:13 +01:00
Volker Ruppert
b382358e80
Banshee: Attempt to fix redraw in case bitblt is used in 3D mode.
2024-01-18 20:32:29 +01:00
Volker Ruppert
6770a355ae
Cirrus: Fixed redraw issue caused by misaligned bitblt region.
...
If x0 + width exceeds the screen width, mark tile(s) on the left side of the screen, too.
This should finally fix issue #221 .
2024-01-17 22:12:30 +01:00
Volker Ruppert
c66d6f1a0e
Cirrus: Fixed possible segfault caused by missing address wrap.
...
- Added address wrap in cpu-to-video transparent bitblt.
- Added BX_DEBUG for address wrap detection and fixed redraw parameters.
TODO: Check other methods for possible segfaults.
2024-01-17 19:23:08 +01:00
finnbrudal
3455581a71
Cirrus: BLT System-to-screen Dword Pointer (GR2F[6:5]) implemented ( #223 )
...
Bits 5-6 of the left side clipping register have been implemented.
Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-16 19:10:06 +01:00
Volker Ruppert
8528604888
Cirrus: Corrected redraw fix for backward BitBlt.
2024-01-15 23:28:23 +01:00
Volker Ruppert
bcfe5e129f
Cirrus: Fixed redraw values for backward BitBlt.
2024-01-15 17:11:25 +01:00
Volker Ruppert
04ed1e8fd2
Some more VGA timing handling chages.
...
- Changing status of 'update_mode_vsync' is no longer supported at runtime.
If disabled, changing the value is only valid between 1 and 75.
- Modify vtotal_usec if frequency to high before activating vsync_timer.
2024-01-14 10:13:39 +01:00
Volker Ruppert
7e7c7c45ef
Attempt to fix HPET reset in legacy mode (issue #218 ).
2024-01-13 20:13:23 +01:00
Volker Ruppert
1ebe15e3fc
Rewrite of the VGA timing code.
...
- Added VSYNC timer handler using vertical total usec. The calling time is defined
as vertical retrace end and it updates the CRTC start address like real VGA does.
It also calculates the display start time used when reading the input status register.
The VSYNC timer is disabled in Voodoo / Banshee modes.
- Improved VGA timing calculation (e.g. vertical blanking and retrace start).
2024-01-13 19:33:35 +01:00
Volker Ruppert
dbc1f5d93a
Cirrus: Fixed color expand bitblt with dword granularity enabled.
2024-01-13 05:18:07 +01:00
Volker Ruppert
5b6872168a
Banshee: Attempt to implement 8 and 16 byte writes to CMDFIFO.
...
- The mem_write_handler() splits 16 bytes writes in two 8 bytes writes.
- In mem_write() the 8 byte writes to CMDFIFO are split in two 32-bit writes.
2024-01-12 18:56:49 +01:00
Volker Ruppert
b8054277cb
Fixed compilation with PCI disabled.
...
When switching to Voodoo 1/2 update timer only if update_mode_vsync is enabled.
Still TODO: update docs.
2024-01-11 18:30:39 +01:00
Volker Ruppert
fc6703a2f7
VGA update timer using vertical frequency now supported by Voodoo devices.
...
TODO: update docs.
2024-01-11 17:48:11 +01:00
Shwartsman
77bbdca17a
change from USB Debugger branch by Ben, rename variable
2024-01-10 21:25:03 +02:00
Volker Ruppert
cfa7276cb9
Added support for driving the VGA display update timer with VSYNC.
...
- Using the special value of 0 enables this feature. In that case the vertical
frequency is used for the display updates. The update() method is called at
the "vertical retrace end" time and sets the time of the display start. This
value is used to set the vertical retrace indicator in VGA register 0x03da.
- This feature is not yet enabled if Voodoo support is present. The Voodoo device
has it's own vertical timer and needs some more testing and possibly some changes.
2024-01-09 21:48:19 +01:00
Shwartsman
e5ef6d6a47
According to documentation (8254.pdf), mode 6 is the same as mode 2 and mode 7 is the same as mode 3.
2024-01-08 20:27:59 +02:00
Volker Ruppert
f06346afcb
Voodoo Banshee: added missing type cast in mem_write().
2024-01-07 22:05:41 +01:00
Volker Ruppert
9dbca8951e
Fixed Banshee read from ROM and mem_write() for any size and endianness.
2024-01-07 19:33:58 +01:00
Volker Ruppert
a566b1e69d
PCI MMIO space is not disabled if the Cirrus card is in VGA mode.
2024-01-07 13:55:43 +01:00
Volker Ruppert
c13ef56378
Increase maximum VGA update frequency to 75 and default to 10.
...
Small cleanups in the VGA code.
2024-01-07 11:15:04 +01:00
Volker Ruppert
080cf72f5f
Fixed CGA address wrap.
2024-01-06 16:31:04 +01:00
Volker Ruppert
c9c0237af3
Fixed start address in emulated CGA mode.
2024-01-06 15:05:33 +01:00
Volker Ruppert
6d433ec44b
Missing horizontal pel panning support added in modeX.
...
Added error messages for unsupported features (EGA only ?).
TODO: horizontal pel panning support missing or incorrectly implemented in other
graphics.
2024-01-06 11:29:39 +01:00
Volker Ruppert
3a73e8a0b2
Fixed address wrap in non-chain4 256-color VGA mode called modeX.
...
There were blinking dotted lines visible in old DOS games (#205/#206).
2024-01-05 14:36:42 +01:00
Volker Ruppert
1f8eb7b608
First step to fix the timer code for speaker sound output.
...
There is some output now, but not really music yet.
2024-01-04 19:26:27 +01:00
Volker Ruppert
071f5c72f7
Reduce VGA vertical screen size if blanking starts before display end.
2024-01-03 23:48:24 +01:00
Volker Ruppert
210ea89b36
Voodoo Banshee / Voodoo3 hardware cursor fixes ( #202 / #203 ).
...
- Fixed crash in "half mode" (line doubling).
- Fixed redraw_area() values (must be unsigned).
2024-01-02 21:30:28 +01:00
Volker Ruppert
f48acd833f
Some speaker output fixes.
...
- Increase buffer size and allocate buffer dynamicly.
- Make sure the beep_level is correctly set up in dsp_generator().
- TODO: fix timer code for usable sound output with the speaker.
2024-01-01 19:43:33 +01:00
Volker Ruppert
10811e13ed
SB16: added 16-bit write support for even i/o addresses.
2023-12-31 16:05:20 +01:00
Volker Ruppert
1699f30d64
Reduce default keyboard serial delay to 150 to avoid timeouts.
...
Some cleanups in the keyboard code.
2023-12-31 10:47:10 +01:00
Volker Ruppert
63ab5ea24a
Align SB16 DMA buffer size to 4 to avoid crash in 16-bit stereo mode.
2023-12-29 19:49:58 +01:00
Volker Ruppert
be1baa295c
Implemented secondary VGA charmap support.
...
All guis with 'new_text_api' and the graphical text snapshot working with it.
2023-12-29 17:47:44 +01:00
Volker Ruppert
a1872535ca
Voodoo: fixed randomly missing color palette updates.
2023-12-29 15:18:06 +01:00
Volker Ruppert
157d3a9189
Next attempt to fix the Voodoo hang on exit.
...
It occurred with the pthreads library only and should be fixed now.
2023-12-29 10:25:38 +01:00