diff --git a/android/phoenix/res/layout/faq_whats_new.xml b/android/phoenix/res/layout/faq_whats_new.xml index 8593b386a7..893a57a54d 100644 --- a/android/phoenix/res/layout/faq_whats_new.xml +++ b/android/phoenix/res/layout/faq_whats_new.xml @@ -25,6 +25,7 @@ one of the buttons to progress beyond start screen)\n and Accelerate 2/Accelerate 3 (R1/R2 buttons)\n - Hooked up Gun Smoke controls - Start button (needed to progress beyond title screen)\n +- Hooked up Mighty Pang controls (P1 Shot1/P1 Shot2/P2 Shot1/P2 Shot2)\n - Fixed Varia Metal palette\n - Fixed Fairyland Story palette\n - Fixed Return of the Invaders palette\n diff --git a/audio/sinc.c b/audio/sinc.c index 937f985ca9..545f53c5f0 100644 --- a/audio/sinc.c +++ b/audio/sinc.c @@ -23,6 +23,7 @@ #include #include #include +#include "../msvc/msvc_compat.h" #ifndef RESAMPLER_TEST #include "../general.h" diff --git a/dist-scripts/retroarch-CHANGELOG.txt b/dist-scripts/retroarch-CHANGELOG.txt index 2a88b79dab..99f7cea990 100644 --- a/dist-scripts/retroarch-CHANGELOG.txt +++ b/dist-scripts/retroarch-CHANGELOG.txt @@ -16,6 +16,7 @@ one of the buttons to progress beyond start screen) and Accelerate 2/Accelerate 3 (R1/R2 buttons) - Hooked up Gun Smoke controls - Start button (needed to progress beyond title screen) +- Hooked up Mighty Pang controls (P1 Shot1/P1 Shot2/P2 Shot1/P2 Shot2) - Fixed Varia Metal palette - Fixed Fairyland Story palette - Fixed Return of the Invaders palette diff --git a/gfx/d3d9/d3d9.cpp b/gfx/d3d9/d3d9.cpp index 856838f6d3..c182325a23 100644 --- a/gfx/d3d9/d3d9.cpp +++ b/gfx/d3d9/d3d9.cpp @@ -312,7 +312,13 @@ end: void D3DVideo::calculate_rect(unsigned width, unsigned height, bool keep, float desired_aspect) { - if (!keep) + if (g_settings.video.scale_integer) + { + struct rarch_viewport vp = {0}; + gfx_scale_integer(&vp, width, height, desired_aspect, keep); + set_viewport(vp.x, vp.y, vp.width, vp.height); + } + else if (!keep) set_viewport(0, 0, width, height); else { diff --git a/input/overlay.c b/input/overlay.c index 7ce145247c..b14fdcb0ff 100644 --- a/input/overlay.c +++ b/input/overlay.c @@ -66,6 +66,8 @@ struct input_overlay const video_overlay_interface_t *iface; bool enable; + bool blocked; + struct overlay *overlays; const struct overlay *active; size_t index; @@ -390,7 +392,10 @@ static bool inside_hitbox(const struct overlay_desc *desc, float x, float y) uint64_t input_overlay_poll(input_overlay_t *ol, int16_t norm_x, int16_t norm_y) { if (!ol->enable) + { + ol->blocked = false; return 0; + } // norm_x and norm_y is in [-0x7fff, 0x7fff] range, like RETRO_DEVICE_POINTER. float x = (float)(norm_x + 0x7fff) / 0xffff; @@ -408,9 +413,19 @@ uint64_t input_overlay_poll(input_overlay_t *ol, int16_t norm_x, int16_t norm_y) state |= ol->active->descs[i].key_mask; } + if (!state) + ol->blocked = false; + else if (ol->blocked) + state = 0; + return state; } +void input_overlay_poll_clear(input_overlay_t *ol) +{ + ol->blocked = false; +} + void input_overlay_next(input_overlay_t *ol) { ol->index = (ol->index + 1) % ol->size; @@ -420,6 +435,7 @@ void input_overlay_next(input_overlay_t *ol) ol->iface->vertex_geom(ol->iface_data, ol->active->mod_x, ol->active->mod_y, ol->active->mod_w, ol->active->mod_h); ol->iface->full_screen(ol->iface_data, ol->active->full_screen); + ol->blocked = true; } bool input_overlay_full_screen(input_overlay_t *ol) diff --git a/input/overlay.h b/input/overlay.h index c8d25fe1db..b6362ada30 100644 --- a/input/overlay.h +++ b/input/overlay.h @@ -37,6 +37,9 @@ bool input_overlay_full_screen(input_overlay_t *ol); // Resulting state is a bitmask of (1 << key_bind_id). uint64_t input_overlay_poll(input_overlay_t *ol, int16_t norm_x, int16_t norm_y); +// Call when there is nothing to poll. Allows overlay to clear certain state. +void input_overlay_poll_clear(input_overlay_t *ol); + // Sets a modulating factor for alpha channel. Default is 1.0. // The alpha factor is applied for all overlays. void input_overlay_set_alpha_mod(input_overlay_t *ol, float mod); diff --git a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj index 3533b66c2e..b4cc93f5a8 100644 --- a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj +++ b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj @@ -185,7 +185,7 @@ - + @@ -272,4 +272,4 @@ - + \ No newline at end of file diff --git a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters index e35b2ee99b..1cb7219c01 100644 --- a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters +++ b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters @@ -204,15 +204,15 @@ Source Files\gfx - - Source Files\deps - Source Files Source Files\gfx\rpng + + Source Files\deps + diff --git a/msvc/msvc_compat.h b/msvc/msvc_compat.h index adbbcb9b03..43e1fe903b 100644 --- a/msvc/msvc_compat.h +++ b/msvc/msvc_compat.h @@ -42,6 +42,7 @@ typedef int ssize_t; #pragma warning(disable : 4305) #pragma warning(disable : 4146) #pragma warning(disable : 4267) +#pragma warning(disable : 4723) #define roundf(in) (in >= 0.0f ? floorf(in + 0.5f) : ceilf(in - 0.5f)) diff --git a/retroarch.c b/retroarch.c index e5077e6df4..66cf2848de 100644 --- a/retroarch.c +++ b/retroarch.c @@ -482,6 +482,7 @@ static inline void input_poll_overlay(void) unsigned device = input_overlay_full_screen(driver.overlay) ? RARCH_DEVICE_POINTER_SCREEN : RETRO_DEVICE_POINTER; + bool polled = false; for (unsigned i = 0; input_input_state_func(NULL, 0, device, i, RETRO_DEVICE_ID_POINTER_PRESSED); i++) @@ -492,7 +493,11 @@ static inline void input_poll_overlay(void) device, i, RETRO_DEVICE_ID_POINTER_Y); driver.overlay_state |= input_overlay_poll(driver.overlay, x, y); + polled = true; } + + if (!polled) + input_overlay_poll_clear(driver.overlay); } #endif