Commit Graph

1532 Commits

Author SHA1 Message Date
Sergey Dvodnenko
2bc233b851 Saturn: initial support. (#612) 2022-05-22 20:09:13 +08:00
Martin Donlon
e1a58541c0 video: Don't set sync polarity when calculating modes (#611)
The polarity setting is shared between analog and digital output, so
changing it when calculatinga video mode can interfere with analog
video output. If someone has a need to use a specific polarity they
can specify it as part of the video_mode.
2022-05-22 16:58:14 +08:00
Sorgelig
168aae3f07 video: fix formatting. 2022-05-21 02:28:06 +08:00
Martin Donlon
edcb3fcefc video: Vertical Scaling Changes (#608)
Integer Resolution Scaling
Generate a video mode whose vertical resolution is an integer multiple
of the cores vertical resolution. The video mode set via the
`video_mode` parameter is considered the maximum resolution. There are
two modes of operation: vscale_mode=4 - Both vertical and horizontal
resolution are modified. The horizontal resolution is scaled in
propotion to the vertical, so the aspect ratio is maintained. This will
be most suited to VGA CRTs that expect a specific aspect ratio signal.
vscale_mode=5 - Only the vertical resolution is modified. This will be
suitable for most modern LCD/OLED displays. The additional horizontal
resolution provides more space for wide aspect ratio cores.

Video Mode Calculation
CVT timing calculations are used to generate the modified video modes
for Interger Resolution Scaling, this mode generation is also exposed as
an additional way to specify video modes in the MiSTer.ini. Modes can be
specified with just the width, height and refresh rate:
`video_mode=1920,1200,60`. Whether to use the original CVT or the
reduced blanking CVT-RB timings can be specified with an optional flag,
e.g. `video_mode=1024,768,60,cvt`. Additionally the sync polarities can
also be expressed using flags now, e.g.
`video_mode=1280,110,40,220,720,5,5,20,74250,+hsync,-vsync`

Code Changes
More functionality was broken out of `video_mode_adjust`.
`video_mode_select` determines what the correct base video mode is based
on the timing and vsync_adjust configuration. The mode selected there is
then passed to `video_resolution_adjust` which modifies it based on the
integer resolution scaling selected. Other than that the functionality
of `video_mode_adjust` remains the same.

The `video_calculate_cvt` function was added to calculated video mode
timings.

`parse_custom_video_mode` was changed to support the additional flags.
It now uses `str_tokenize` to split up the input string so it is more
easy to manage the different variations of parameter counts allowed for
the modes.

`vmode_custom_param_t` was added to alias the items in the
vmode_custom_t instead of using raw array indexing everywhere.

`str_util.h/.cpp` added to provide some safer and easy to use string
functions. `strcpyz`, `strncpyz`, `sprintfz` all ensure that the
resulting string is null terminated and doesn't overrun memory.
2022-05-21 01:48:19 +08:00
Martin Donlon
b43e5cfc34 video: Only set scan information when in game mode (#609) 2022-05-21 00:24:49 +08:00
Sorgelig
d57ed83fbe video: detect default video resolution and dvi mode from EDID. 2022-05-20 21:34:44 +08:00
Matheus Fraguas
0f0affb238 NeGcon as wheel via RetroZord adapter (arduino based) (#607) 2022-05-20 07:43:53 +08:00
Martin Donlon
590dcae13c video: Use horizontal filter when using an interlaced video mode (#606) 2022-05-19 22:34:11 +08:00
Sorgelig
ac956d2018 video: fix direct_video mode. 2022-05-19 04:09:31 +08:00
Sorgelig
a37231a46b Release 20220517. 2022-05-17 22:24:20 +08:00
Sorgelig
ccabf8c9bb audio: fix core volume control. 2022-05-17 22:18:59 +08:00
Sorgelig
63c7573a60 snes: MSU: support for data track, some refactoring. 2022-05-17 20:28:38 +08:00
Sorgelig
5bd34b8f7c snes: check for .msu file instead of .pcm for less problems. 2022-05-15 21:59:42 +08:00
Martin Donlon
b1271ad983 video: associate a VIC mode with the predefined video modes (#603) 2022-05-15 15:40:56 +08:00
Sorgelig
953e749995 snes: MSU fixes and tweaks. 2022-05-15 08:18:36 +08:00
Sorgelig
d416f5c920 snes: fixes in MSU. 2022-05-14 23:36:43 +08:00
Sorgelig
12ea16f024 snes: some cleanup, add MSU1 enable flag. 2022-05-13 23:23:29 +08:00
dentnz
fcd784ba97 snes: MSU1 audio support by dent^nz and ElectronAsh (#602)
Co-authored-by: Karl Lurman <karl.lurman@wilsongroupau.com>
2022-05-13 18:23:15 +08:00
Sorgelig
a62be08e28 smbus: reduce debug info. 2022-05-12 07:12:55 +08:00
Sorgelig
13ecfc748c video: make HDMI game mode optional. 2022-05-12 06:15:57 +08:00
Sorgelig
ec5577a620 video: configure HDMI from HPS. 2022-05-12 06:07:31 +08:00
Sorgelig
3341b03e2e Release 20220511. 2022-05-11 21:24:13 +08:00
Sorgelig
b1c915bd96 menu: fix directrory scroll. 2022-05-10 05:35:09 +08:00
Nolan Nicholson
8f80dbab77 CRT lightguns: 50 ms offscreen grace period (#599)
When a CRT lightgun starts reporting out-of-screen coordinates,
the last good on-screen coordinates are retained and passed through
for 50 ms. This improves GunCon 2 performance on NES, and generally
makes CRT-based guns a bit more reliable in games with a lot of dark
areas.
2022-05-09 15:00:28 +08:00
birdybro
011b95d328 PSX: Add "SIPS" region code support (#598)
http://redump.org/discs/quicksearch/sips/

SIPS was a code used for some Western Imports into Japan.
2022-05-09 14:56:56 +08:00
Marcoen Hirschberg
3db1b1475d PSX region detection fixes (#596)
* PSX: improve game ID detection to support more games

This adds game ID prefixes for some demos, which fixes region detection
for those games.

* PSX: implement region detection based on the license string

This fixes region detection for many games, even if the game ID is not
properly detected.
2022-05-09 01:38:36 +08:00
David Shadoff
10d1c2f0ce Fix issue in PC Engine Tanjou Debut ( #594 ) (#595)
* Fix PC Engine CD player controls ( #585 )

Correct LBA-MSF conversion for absolute offset in the SUBQ request function (relative remains without offset)

* Fix issue in PC Engine Tanjou Debut ( #594 )
2022-05-07 03:18:32 +08:00
Sorgelig
26e1cccbaa Implement new way to address status bits. 128bit status. 2022-05-05 21:06:13 +08:00
Sorgelig
f2caf20c6d PSX: allow custom BIOS load. 2022-05-03 01:05:13 +08:00
Sorgelig
03d96b7904 PSX: use preloaded BIOSes, add reset flag, some code aligning. 2022-05-02 18:29:53 +08:00
Marcoen Hirschberg
6a223f62e2 Psx region autodetect (#589) 2022-05-02 05:18:57 +08:00
Sorgelig
76fab9fc13 MGL: fix path to TGFX16 CD files. 2022-04-28 01:19:18 +08:00
Sorgelig
b0146506c2 user_io: fix info reading. 2022-04-27 21:53:54 +08:00
Sorgelig
bd9a50a0e6 MiSTer.ini: add vga_sog, some correction. 2022-04-26 01:12:20 +08:00
David Shadoff
12b9e8d75f Fix PC Engine CD player controls ( #585 ) (#586)
Correct LBA-MSF conversion for absolute offset in the SUBQ request function (relative remains without offset)
2022-04-25 15:25:10 +08:00
Sorgelig
28a751cc89 input: refactored wheel setup code. 2022-04-22 05:21:54 +08:00
Michael Huang
ef50535f74 Add Fanatec wheels (#583) 2022-04-21 22:45:17 +08:00
RobertPeip
6b688992a1 PSX: invalidate CD sector buffer when switching CD (#584) 2022-04-21 22:39:08 +08:00
birdybro
58693dc370 Add Sega 32X core (#582) 2022-04-21 07:12:39 +08:00
Sorgelig
5a6ecd790b input: initial support for wheels. 2022-04-21 04:22:39 +08:00
Sorgelig
d7d88ac40a Release 20220413. 2022-04-13 23:14:26 +08:00
zakk4223
4a361d9e40 PSX: adjust CHD TOC pregap handling to match core expectations. Also adjust reads to compensate for enforced 'fake' track 1 pregap (#580)
Co-authored-by: Zakk <zakk@rsdio.com>
2022-04-08 21:20:29 +08:00
user7182
212e808b9d user_io: Keyboard emulation mode key combo added. (#578)
A key combo, Meta (Win) + Scroll Lock was added
to allow cores using PS/2 to access the Scroll
Lock.

Num Lock (EMU_SWITCH_2) was previously excluded,
this has been re-enabled when using the Meta key
modifier.

Meta+Scroll Lock previously took a screenshot.
This is no longer possible, when that key combo
is used for keyboard emuation mode. A screenshot
must be taken with either:
  Meta+Print Screen or Alt+Scroll Lock.
2022-04-05 20:19:17 +08:00
Sorgelig
bcc57c8710 AtariST: add dongle bit into config. 2022-04-03 07:12:32 +08:00
JustWinstonIsOK
e081c68eb7 add .mgl as a valid file extension for the bootcore option in MiSTer.ini (#576) 2022-03-27 14:32:30 +08:00
Sorgelig
b2ef45007b Release 20220326. 2022-03-26 23:55:13 +08:00
user7182
bf180ef364 x86: Limited disk space reported by shared FS to 2GB (#574)
This allows older MS-DOS versions to see non-zero disk space remaining
when free space is greater than 2GB.
2022-03-21 01:44:37 +08:00
Matheus Fraguas
cc9791eea6 Guncon support via RetroZord adapter (arduino based) (#573) 2022-03-19 23:06:20 +08:00
Thomas Sowell
f5fd16c26e Override configuration based on video mode (#567)
* Override configuration based on video mode

Configuration options can now be overridden based on the core's video
mode.

The config parser now supports sections with names in the format
"video=WIDTHxHEIGHT[@VREFRESH]".  When a core changes video mode, MiSTer
reloads the config file and checks for a section matching the new mode.
If one is found, the options in the section override options in the
MiSTer/core sections.

MiSTer will look for a section matching the width, height, and vertical
refresh rate first.  If none is found, it will fall back to a section
matching the width and height but not specifying a refresh rate.  If
there is still no match, no overrides will be used.

Also, VREFRESH must match exactly the output from video_info or the
logs.  To match 720x400 31.48KHz 70.1Hz, the section title would need to
be [video=720x400@70.1].

* Move video section variables out of cfg_t
2022-03-17 14:46:57 +08:00
Sorgelig
062891cf9a spi: extend command to 16bit. 2022-03-14 17:44:42 +08:00