video: fix the Scanline Sync offset storing max+value instead of value

Setting the offset to -950 in the menu stored 2050. The row passed
offset_by = 0 with a minimum of -3000, and setting_action_ok_uint opens
a dropdown that maps list index to value through offset_by: index 2050
is -950 counted up from -3000, and with offset_by wrong it was stored
as 2050 literally. crt_switch_center_adjust passes offset_by = -50 for
its -50..50 range; this does the same with the minimum.

Step goes from 1 to 10. A step of 1 made the dropdown 6001 rows and put
the useful value 950 presses away, and the precision this needs is the
half-width of a 90 line blanking interval.
This commit is contained in:
LibretroAdmin authored and libretroadmin committed 2026-09-02 03:52:19 +02:00
1 parent 2d6caa73dd
commit fc23f85979
1 file changed
+1 -1
+1 -1
View File
@@ -64,7 +64,7 @@ S_INT(video_max_frame_latency, VIDEO_MAX_FRAME_LATENCY,
"Tells the video driver to explicitly use a specified buffering mode.")
S_INT(video_scanline_sync_offset, VIDEO_SCANLINE_SYNC_OFFSET,
"video_scanline_sync_offset",
DEFAULT_SCANLINE_SYNC_OFFSET, SD_FLAG_LAKKA_ADVANCED, SDESC_RANGE_MINMAX, CMD_EVENT_NONE, -MAXIMUM_SCANLINE_SYNC_OFFSET, MAXIMUM_SCANLINE_SYNC_OFFSET, 1, 0, setting_action_ok_uint, NULL,
DEFAULT_SCANLINE_SYNC_OFFSET, SD_FLAG_LAKKA_ADVANCED, SDESC_RANGE_MINMAX, CMD_EVENT_NONE, -MAXIMUM_SCANLINE_SYNC_OFFSET, MAXIMUM_SCANLINE_SYNC_OFFSET, 10, -MAXIMUM_SCANLINE_SYNC_OFFSET, setting_action_ok_uint, NULL,
"Scanline Sync Offset",
"Shifts the Scanline Sync target by this many scanlines. The sync cannot see when the GPU finishes a frame or when the flip reaches the display, so adjust this until the tear line moves off screen. Negative aims earlier.")
S_BOOL(video_hard_sync, VIDEO_HARD_SYNC,