Commit Graph

13140 Commits

Author SHA1 Message Date
Volker Ruppert
a1872535ca Voodoo: fixed randomly missing color palette updates. 2023-12-29 15:18:06 +01:00
Stanislav Shwartsman
e3612c30f8 Implement support for LA57 and 5-level paging 2023-12-29 14:48:38 +02: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
Volker Ruppert
29fbdb48da Set default value for SB16 dmatimer to 1000000 and updated docs. 2023-12-28 20:32:14 +01:00
Volker Ruppert
917ac4c79d Fixed some Voodoo issues.
Temporarily disable fifo_reset() in recompute_video_memory(). FIFO handling must
be observed and a better solution must be found.
Fixed hang after pressing power button: destructor modification was required since
the swapbuffer command can depend on vertical retrace.
2023-12-28 19:04:20 +01:00
Volker Ruppert
326114f4e7 Updated LGPL'd VGABIOS to version 0.8b. 2023-12-28 08:54:56 +01:00
Volker Ruppert
9d1df2915c VGA mem_write(): added missing update flag in chain4 mode. 2023-12-27 23:24:46 +01:00
Volker Ruppert
aa23a09afd VGA mem_write(): moved and fixed CGA specific code.
Removed disabled BX_DEBUG code and VGA_TRACE_FEATURE symbol.
Some other small fixes and cleanups.
TODO #1: review MAP13 addressing in case start address > 0.
TODO #2: review chain4 code in medm_write().
2023-12-26 11:16:59 +01:00
Volker Ruppert
de4876e2c4 VGA mem_write(): in text mode don't mark graphics tiles for update.
TODO: Check special cases code in mem_write() for correctness.
2023-12-25 21:03:53 +01:00
Shwartsman
5b61b51498 more optimal version for VDPBF16PS
avoid constly softfloat calls when masked
2023-12-25 16:26:28 +02:00
Shwartsman
ddff78a16c style and disasm updates, no functional impact 2023-12-25 14:57:05 +02:00
Vort
aed0c5e954
Prevent output of fraction of sample (#193)
Fixes #134.
2023-12-25 12:00:31 +02:00
Shwartsman
7c9bab8182 handle getexp methods though templates 2023-12-25 08:07:07 +02:00
Stanislav Shwartsman
ef30a12afb avoid accidential zero of the mask, due to Bit64u computation overflow (1 << 64) == 1 2023-12-24 22:37:02 +02:00
Stanislav Shwartsman
e7f2450220 fix XSAVE leaf resporting in CPUID 2023-12-24 20:12:30 +02:00
Shwartsman
00831a09d7 optimize load vector methods 2023-12-24 19:57:07 +02:00
Volker Ruppert
8a4941f670 Some cleanups in the recently fixed code. 2023-12-24 14:41:47 +01:00
Stanislav Shwartsman
662d8ec279 fix bug from previous commit 2023-12-24 15:04:31 +02:00
Stanislav Shwartsman
eb6d4f5fc8 use simpler method to write XMM register while clearing AVX upper part 2023-12-24 14:45:04 +02:00
Volker Ruppert
e3eb603ad4 Some fixes for the VGA mode 0x13 (issue #188 and discussion #108).
- Shift start address by 2 in update() code and mem_write().
- Added split screen support for this mode.
- Some code cleanups.
2023-12-23 21:37:08 +01:00
Shwartsman
b4effb58af fix compilation with minimalistic config 2023-12-23 22:10:22 +02:00
Shwartsman
19dbd7314b convert more instructions to template 2023-12-23 22:01:13 +02:00
Shwartsman
8e76c9b6bb move many SSE/AVX/AVX512 methods to template functions 2023-12-23 21:00:51 +02:00
Shwartsman
120ad141b3 reduce code duplication by merging equivalent methods 2023-12-23 19:12:03 +02:00
Shwartsman
f3053e49bd fixed warnings in x.cc 2023-12-23 16:44:00 +02:00
Shwartsman
0aaefe37e5 simplify Build workflow 2023-12-23 16:33:41 +02:00
Volker Ruppert
664fdae152 Fixed mouse toggle check (issue #181).
Clear out other keys/buttons when pressing one of the modifier keys.
2023-12-23 10:32:15 +01:00
Shwartsman
f1bab0c057 fixed MSR bit defines from FRED feature
minor update for WRMSRLIST instruction from today's SDM update
2023-12-23 10:34:03 +02:00
Volker Ruppert
84989e883f Update CHANGES 2023-12-23 08:30:36 +01:00
Volker Ruppert
f0350b575a Updated LGPL'd VGABIOS images from https://github.com/bochs-emu/VGABIOS. 2023-12-23 08:22:54 +01:00
Volker Ruppert
b63b1225a8 Fixed backward screen-to-screen copy operation for > 8 bpp modes. 2023-12-21 10:53:13 +01:00
Vort
75ea1c2222
Prevent crash in get_retrace (#185)
Fixes #184.
2023-12-20 13:35:51 +02:00
Shwartsman
fc919cd132 use true/false instead of 0/1 for bool in the cpu code 2023-12-19 20:44:56 +02:00
Shwartsman
1a2544b1bb fixed typo in comment 2023-12-19 19:51:37 +02:00
Stanislav Shwartsman
54e88eee92 more correction for CPUID leaf 0xD 2023-12-18 15:58:18 +02:00
Saulius Krasuckas
f221984d89
Fix niclist.exe crash when writing to string returned by PACKET.DLL (#179)
Seemingly Npcap returns a read-only string and `niclist.exe` tries to
modify (tokenize) it using `strtrok()`.
That results in the crash: #161

Probably related to
https://github.com/the-tcpdump-group/libpcap/pull/949.

Here is my try at fixing this.
For successful modification I propose to use a stack-allocated copy
instead of the original (const) version string.

Now
[packetWin7/Dll/Packet32.cpp#L159](https://github.com/nmap/npcap/blob/a41bc6a/packetWin7/Dll/Packet32.cpp#L159)
seems to initialize `const char PacketLibraryVersion[]` from the define
`WINPCAP_VER_STRING`, which seems to be of arbitrary length:
```
__declspec(dllexport) const char PacketLibraryVersion[] = WINPCAP_VER_STRING; 
```

Let's search for the longest string present in their repo:
```
$ git log -u version.h | awk 'BEGIN { FPAT="(([^ \t]+)?(\"[^\"]+\")?)+" } /^.*define.+WINPCAP_VER_STRING.+[0-9]/ { gsub(/"/, "", $NF); print $NF }' | sort -Vu | while read; do printf "%4s    %s\n" ${#REPLY} "${REPLY}"; done | sort -n
   4    0.01
   4    0.03
   4    0.04
   4    0.05
   4    0.06
   4    0.07
   4    0.08
   4    0.09
   4    0.10
   4    0.11
   4    0.78
   4    0.80
   4    0.81
   4    0.82
   4    0.83
   4    0.84
   4    0.85
   4    0.86
   4    0.90
   4    0.91
   4    0.92
   4    0.93
   4    0.94
   4    0.95
   4    0.96
   4    0.97
   4    0.98
   4    1.00
   4    1.10
   4    1.20
   4    1.30
   4    1.31
   4    1.40
   4    1.50
   4    1.55
   4    1.60
   4    1.70
   4    1.71
   4    1.72
   4    1.73
   4    1.74
   4    1.75
   4    1.76
   4    1.77
   4    1.78
   5    0.991
   5    0.992
   5    0.993
   5    0.994
   5    0.995
   5    0.996
   5    0.997
   6    0.9981
   6    0.9982
   6    0.9983
   6    0.9984
   6    0.9985
   6    0.9986
   6    0.9987
   6    0.9988
   6    0.9989
   6    0.9990
   6    0.9991
   6    0.9992
   6    0.9993
   6    0.9994
   6    0.9995
   6    0.9996
   6    0.9997
   7    0.08 r8
   7    0.08 r9
   7    0.09 r2
   7    0.09 r3
   7    0.09 r4
   7    0.09 r5
   7    0.09 r6
   7    0.09 r7
   7    0.09 r8
   7    0.09 r9
   7    0.10 r2
   7    0.10 r3
   7    0.10 r4
   7    0.10 r5
   7    0.10 r6
   7    0.10 r7
   7    0.10 r8
   7    0.10 r9
   7    0.78 r2
   7    0.78 r3
   7    0.78 r4
   7    0.78 r5
   7    0.99-r1
   7    0.99-r2
   7    0.99-r3
   7    0.99-r4
   7    0.99-r5
   7    0.99-r6
   7    0.99-r7
   7    0.99-r8
   7    0.99-r9
   8    0.08 r10
   8    0.09 r10
   8    0.09 r11
   8    0.09 r12
   8    0.09 r13
   8    0.10 r10
   8    0.10 r11
   8    0.10 r12
   8    0.10 r13
   8    0.10 r14
   8    0.10 r15
   8    0.10 r16
   8    0.10 r17
   8    0.10 r18
  10    4.1.0.2980
  10    4.1.0.3001
```

So it's 10 characters. (Sorry for the long Bash one-liner)

Also I visited the older code from WinPcap, and it seems it used a
64-byte long string:
[packetNtx/Dll/Packet32.c#L105](https://github.com/wireshark/winpcap/blob/267327e/packetNtx/Dll/Packet32.c#L105)
```
char PacketLibraryVersion[64]; 
```

So I assumed it's safe to allocate the same on stack.
2023-12-18 13:00:59 +02:00
Shwartsman
d794b516e1 rewrite XSAVE/XRESTORE CPUID leaf reporting,
fixed several bugs and made code correct for all future XSAVE extensions
2023-12-18 11:35:55 +02:00
Stanislav Shwartsman
54831068df
implement RDMSRLIST/WRMSRLIST instructions (+related VMX extensions) (#176) 2023-12-16 21:59:34 +02:00
Shwartsman
accb975173 use true/false for boolean values insetad of 0 and 1 2023-12-16 19:07:03 +02:00
Shwartsman
e9c39194f2 update CHANGES 2023-12-16 16:55:56 +02:00
Vort
ee528baa03
Expand maximum resolution for Banshee and Voodoo 3 from 1600x1280 to 1920x1440 (#175)
Fixes #174.
2023-12-16 16:51:18 +02:00
Shwartsman
e68ae599af added comments and consts for CPUID definitions 2023-12-16 10:10:48 +02:00
Shwartsman
cd350d8548 adopting hack listed in https://github.com/bochs-emu/Bochs/issues/147 to solve hang 2023-12-16 08:45:53 +02:00
Vort
02704120a3
Implement Voodoo 3 writes with length 8 (#173)
Fixes #172

Co-authored-by: Stanislav Shwartsman <stlintel@gmail.com>
2023-12-16 08:28:59 +02:00
Shwartsman
0fbf559276 fix bx_banshee_c::mem_read unknown access length warning 2023-12-16 08:24:08 +02:00
Shwartsman
e67fb33443 fix potentially un-initialized value warning 2023-12-15 22:49:34 +02:00
Shwartsman
438fd787c3 attempt to warn (BX_ERROR) for unsupported read/write size 2023-12-15 22:31:49 +02:00
Vort
30db11d271
Fix memory corruption when reading Voodoo ROM (#169)
Fixes #131.
2023-12-15 22:24:57 +02:00
Volker Ruppert
50258bf32e Improved Ne2k bootrom parameter description. 2023-12-14 23:01:11 +01:00
Volker Ruppert
5fec28cb17 Partly fixed display errors found in game Prehistorik 2 (issue #166).
- Fixes in MAP13 disabled mode (VGA mode 6): half dot clock, color support
- Modified method get_vga_pixel(): now using row start address as an argument
2023-12-13 17:15:09 +01:00