1
0
Fork 0
Commit graph

954 commits

Author SHA1 Message Date
Patryk Obara
d0da4341fe Include cassert header in vga 2020-02-26 13:06:22 +01:00
Patryk Obara
cd93ea9507 Silence buffer overrun Coverity warning
This buffer overrun could happen if implementer forgets to fill pointer
svga.set_clock, but calls VGA_SetClock with index out of bounds.
Placing assert in here should clear out false positives detected by
Coverity.
2020-02-26 12:59:41 +01:00
krcroft
438870c75f Only resize the sendbuffer if needed 2020-02-19 19:25:47 +01:00
krcroft
fa64d98a52 Be explicit when we lose precision and change signedness 2020-02-19 19:25:47 +01:00
krcroft
4d34a80e7f Use K&R indents with some if statements 2020-02-19 19:25:47 +01:00
krcroft
7df5a30f98 Simplify by using the _TCPsocketX struct as-is
Unlike an array of 1-byte chars which only requires 1-byte
alignment (because the array's largest element is only one byte),
when we fool the compiler into allocating a _TCPsocketX as an arra
of chars, we similarly tell the compiler we only need 1-byte
alignment. But this requirement changes when we cast the 1-byte array
back to the _TCPsocketX and try to operate on members having sizes
larger than 1-byte (such as int32's); we now require 4-byte
alignment (after allocation).
2020-02-19 19:25:47 +01:00
Patryk Obara
6468e3c149 Initialize TCPsocket to nullptr
This typedef originates from SDL_net.h, it's an opaque data type used
for TCP connections.

It's a pointer, therefore prevent copying and assignment in
TCPServerSocket to prevent ownership problems.
2020-02-19 19:25:47 +01:00
Patryk Obara
75478a9a39 Make TCPClientSocket field private
Also, it is a pointer, therefore prevent bugs by disallowing copying
and assignment.
2020-02-19 19:25:47 +01:00
Patryk Obara
0e32c002ae Cleanup ifdef guards in serialport misc util 2020-02-19 19:25:47 +01:00
Patryk Obara
651aeb906c Initialize missed fields in TCPClientSocket
Also, do some code and style cleanup in c-tors.
2020-02-19 19:25:47 +01:00
Patryk Obara
534a603cb8 Remove some duplicated code in serialport
Reuse SendArray implementation instead of repeating the same code
pattern several times.

This change started as a removal of warning about comparison of
integer expressions of different signedness: ‘int’ and ‘Bitu’
(when comparing return value of SDLNet_TCP_Send), but turned into
a small cleanup and removal of dead code.
2020-02-19 19:25:47 +01:00
Marco Maccaferri
4aee47a770
Fix handling of escape characters in softmodem
When running BBS DOSBox's softmodem does not correctly handle
escape characters properly nor does it properly transition
to command mode:

Characters are swallowed instead of passed-through, this causes
issue when transmitting strings with the plus character.
Additional characters before and after the escape sequence don't
reset the counters causing switch to command mode even if not
intended. For example, connect to a remote and type a+++ it
switches to command mode, it should not. The attached proposed
patch fixes the escape handling:

Transmission pause is checked before and after the escape
sequence, so <pause>+++<pause> is the correct
sequence.</pause></pause> Extra characters cause the counters to
be reset so no unwanted switch is triggered. Use register S12 to
set the pause timer in 1/50th of seconds, default is 50 = 1 sec.
Plus characters are passed to the remote. With this fix I'm able
to run a BBS software and do file transfers with XModem and ZModem
without problems.

Imported-from: https://sourceforge.net/p/dosbox/patches/287/
2020-02-15 11:34:33 -08:00
Patryk Obara
6e89827d2b Change 'sblaster.oplemu = default' to select 'nuked'
Nuked emulator implementation seems to be the preferred one by the most
users at the moment.
2020-02-15 19:10:20 +01:00
Patryk Obara
6099ab60f3 Merge branch 'svn/trunk' r4326 2020-02-15 17:53:38 +01:00
Peter Veenstra
4d4c738ca7 fix two tiny bugs introduced by 4065.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4325
2020-02-14 21:20:31 +00:00
Peter Veenstra
5d7c4f0540 Fix bug 469. Give 640x480 and upwards square pixels and several fixes for high colour modes. (jmarsh)
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4324
2020-02-14 19:02:29 +00:00
Patryk Obara
77c4523723 Byteswap captured audio samples on PPC
Fixes: #161
2020-02-08 14:56:14 +01:00
Peter Veenstra
987a48600d Rewrite video capturing and fix some endian issues with all captures as well. Thanks jmarsh
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4314
2020-02-06 10:36:10 +00:00
Patryk Obara
a1ceacb6f1 Unifdef unused function in mame implementation 2020-02-06 09:23:18 +01:00
Patryk Obara
a7a9f84ae2 Annotate auto_free with 'inline' to prevent redefinition
This way we prevent unused function warning coming from some files
including this header.
2020-02-06 09:23:18 +01:00
Patryk Obara
2e43cf551f Swap bytes for 15bpp and 16bpp screenshots on PPC
Fixes broken colours in screenshots taken on PPC machines.
2020-02-03 05:58:12 +01:00
Patryk Obara
df5c6f6e05 Fix printf warning 2020-02-03 05:58:12 +01:00
Patryk Obara
34b3549b41 Merge branch 'svn/trunk' r4313 2020-01-30 11:26:32 +01:00
VileRancour
ffe3c5ab7f Add cga_mono machine
Emulates the user using a CGA card with a monochrome monitor.
Monochrome monitor options are: green, amber, white or paperwhite.
The color can be changed at runtime with F11.

Include paperwhite color by Basic <basic@vogons.org>
https://www.vogons.org/viewtopic.php?p=587382#p587382

Vogons thread: https://www.vogons.org/viewtopic.php?f=41&t=29101

Signed-off-by: Michael Zijlstra <mzijlstra@gmail.com>
Signed-off-by: Patryk Obara <dreamer.tan@gmail.com>

Imported-from: https://www.vogons.org/viewtopic.php?p=238045#p238045
2020-01-29 13:46:23 +01:00
Peter Veenstra
95a689013e Quick fix for vgaonly on BIGENDIAN.(jmarsh)
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4313
2020-01-29 12:07:40 +00:00
krcroft
878959a0aa Formatting and review fixes 2020-01-22 09:40:00 +01:00
krcroft
5da5c2931c Fix NULL issues in memory.cpp
There is no sense in testing the 'MemBase' pointer against null, as the memory was allocated
using the 'new' operator, which throws.
2020-01-22 09:40:00 +01:00
krcroft
6a1c90b6d8 Fix NULL issues in OPL code
The 'ptr' pointer in the 'ptr += sizeof (FM_OPL)' expression could be nullptr. In such case,
resulting value will be senseless and it should not be used.
2020-01-22 09:40:00 +01:00
Patryk Obara
2310498f79 Merge branch 'svn/trunk' r4308 2020-01-13 00:52:10 +01:00
Peter Veenstra
51aecb14c6 Refinement of the checks, so no IRQ is raised when not in autodma mode.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4307
2020-01-12 17:51:04 +00:00
Patryk Obara
f3f33c5ea1 Prevent resource leak during screenshot
Using RAII would be a better solution, but it requires non-trivial
code refactor in this area.
2020-01-11 20:52:55 +01:00
Patryk Obara
a8833b7ad6 Remove unused RAW_SIZE define 2020-01-09 22:50:47 +01:00
Patryk Obara
efacda1966 Simplify creation of OPL handler 2020-01-09 22:50:47 +01:00
Patryk Obara
f27e8762cb Update NukedOPL::Handler to C++11 2020-01-09 22:50:47 +01:00
Patryk Obara
f4609262bf Move nukedopl to libs
This way there's no need to reformat the nukedopl code to adhere to
DOSBox coding conventions.
2020-01-09 22:50:47 +01:00
Alexey Khokholov
64b90ab930 Add Nuked OPL3 emulator v1.8
Set oplemu to nuked in config file. Also set oplrate and mixer rate
to 49716 for best sound quality.

Changelog for v1.8:

- New envelope generator.
- Rhythm mode emulation is 100% correct now.

Vogons thread: https://www.vogons.org/viewtopic.php?f=9&t=37782

Imported-from: https://www.vogons.org/viewtopic.php?p=661417#p661417
2020-01-09 22:50:47 +01:00
Patryk Obara
4d674102d0 Prevent unaligned memory access in adlib
This removes the last warnings in this area; in this case changing endianess
is not used for accessing emulated memory, just to flip few values to
low endian for storage.
2020-01-09 22:50:47 +01:00
Patryk Obara
72122b731b Fix effc++ warnings in adlib code 2020-01-09 22:50:47 +01:00
Patryk Obara
bdac00740b Disable unused function in adlib 2019-12-29 08:12:28 +01:00
Patryk Obara
d726f59d83 Hide SoundBlaster autoexec line 2019-12-27 07:34:48 +01:00
Patryk Obara
3a68ba2b26 Indicate system includes for relevant SDL headers 2019-12-26 03:23:19 +01:00
Patryk Obara
a06035a35e Replace SDL 1.2 with SDL 2.0
This massive patch is based on work of NY00123, which was published on
Vogons forum in 2013 and was waiting for inclusion in SVN since then:

https://www.vogons.org/viewtopic.php?f=41&t=34770

Revision from December 2018 was used to kickstart this work. However, a
number of changes were implemented:

- Original patch preserves all SDL 1.2 code by ifdefing it; this patch
  completely removes all code ifdefed for several versions of SDL 1.2.*
  This way the code will be easier to maintain going forward and
  features enabled by SDL 2.0 do not need to be backported.
  A side-effect of this change is almost-complete removal of DirectDraw
  support - but users can now use Direct3D based acceleration (without
  any ifdefs in code).
- Code ifdefed for Android was removed to make the project easier to
  understand and modify. Android port should still be possible, but it
  requires more work (mostly CI and buildsystem work).
  Android-related functionalities that were cross-platform were
  preserved.
- Code ifdefed for OpenGL ES (which was only used for Android) was
  removed - this should not affect Android support, as
  hardware-accelerated 2D should still be viable via "texture" output,
  but it was not tested, as buildsystem does not support Android ATM.
- SDL_cdrom code is not included; it was outside of scope of SDL2
  changes. Inclusion of that library did not justify supporting one
  small usecase (playblack of CD audio from physical CDs).
- Few code warning were fixed (but new sdl_mapper implementation
  introduces many, many new warnings).
- Some formatting changes were implemented.

Overall, the original patch had ~40k lines of code - here it was
trimmed to +769,-972 (so more old code got removed than new code added).

This implementation was extensively tested on Linux and somewhat tested
on Windows 10.  It fixes numerous issues (too many too list).

Testing found two small regressions:

- Starting game in fullscreen makes it impossible to switch back to
  windowed mode correctly (Windows 10)
- Scaling works a bit worse, only in text mode, only in window (Linux)

This implementation introduces revised user settings in sdl section - it
is only partly compatible with settings from SDL 1.2; this is an issue,
but it will need to be addressed in a separete commit.
2019-12-26 03:23:19 +01:00
Patryk Obara
fc321a7fa2 Merge branch 'svn/trunk' r4298 2019-12-10 12:42:57 +01:00
Peter Veenstra
e7df2b9b19 Set cursor speed to the vga standard of 32 frames for a full period. Hope that this is correct for the other machines as well. Fix that frameskip would slow down the cursor blinking speed.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4298
2019-12-10 08:25:18 +00:00
Patryk Obara
5f9ac5eeab Remove code ifdefed for OS/2
Cleanup before replacing SDL1.2 with SDL2.

OS/2 support was introduced in DOSBox in March 2006.  OS/2 reached EOL
in December 2006.

As of 2019, OS/2 is being continued by proprietary 32-bit only ArcaOS,
although there is no official SDL2 support, despite pledges from SDL2
maintainers.
2019-12-09 16:27:11 +01:00
krcroft
b55b43f543 Use PRIuPTR and define it for Windows GCC 64-bit 2019-12-03 05:12:28 +01:00
krcroft
7e3c4d3945 Harmonize refactoring of switch statement 2019-12-03 05:12:28 +01:00
krcroft
8a5a539f9a Cleanup printf types and explicitly state unused vars 2019-12-03 05:12:28 +01:00
krcroft
e5981c3b8e Fix uninitized scalar access 2019-12-03 05:12:28 +01:00
krcroft
d1a1932a07 Fix uninitized pointer accesses 2019-12-03 05:12:28 +01:00