#include "../libpcsxcore/r3000a.h"
#include "../plugins/dfsound/out.h"
#include "../plugins/dfsound/spu_config.h"
-#include "../plugins/dfinput/externals.h"
#include "cspace.h"
#include "main.h"
#include "menu.h"
static void *vout_buf_ptr;
static int vout_width, vout_height;
static int vout_fb_dirty;
+static int psx_w, psx_h;
static bool vout_can_dupe;
static bool duping_enable;
static bool found_bios;
{
vout_width = w;
vout_height = h;
+ psx_w = raw_w;
+ psx_h = raw_h;
if (previous_width != vout_width || previous_height != vout_height)
{
}
}
-void pl_update_gun(int *xn, int *yn, int *xres, int *yres, int *in)
+void pl_gun_byte2(int port, unsigned char byte)
{
}
//Mouse range is -32767 -> 32767
//1% is about 655
//Use the left analog stick field to store the absolute coordinates
- //Fix cursor to top-left when gun is detected as "offscreen"
+
+ int gunx = input_state_cb(port, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_SCREEN_X);
+ int guny = input_state_cb(port, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_SCREEN_Y);
+
+ //Have the Libretro API let /libpcsxcore/plugins.c know when the lightgun is pointed offscreen
+ //Offscreen value is chosen to be well out of range of any possible scaling done via core options
if (input_state_cb(port, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_IS_OFFSCREEN) || input_state_cb(port, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_RELOAD))
{
- in_analog_left[port][0] = -32767;
- in_analog_left[port][1] = -32767;
+ in_analog_left[port][0] = 65536;
+ in_analog_left[port][1] = 65536;
}
else
{
- int gunx = input_state_cb(port, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_SCREEN_X);
- int guny = input_state_cb(port, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_SCREEN_Y);
-
- in_analog_left[port][0] = (gunx * GunconAdjustRatioX) + (GunconAdjustX * 655);
- in_analog_left[port][1] = (guny * GunconAdjustRatioY) + (GunconAdjustY * 655);
+ in_analog_left[port][0] = ((gunx * GunconAdjustRatioX) + (GunconAdjustX * 655)) / 64 + 512;
+ in_analog_left[port][1] = ((guny * GunconAdjustRatioY) + (GunconAdjustY * 655)) / 64 + 512;
}
//GUNCON has 3 controls, Trigger,A,B which equal Circle,Start,Cross
#endif
pl_rearmed_cbs.gpu_peops.iUseDither = 1;
pl_rearmed_cbs.gpu_peops.dwActFixes = GPU_PEOPS_OLD_FRAME_SKIP;
- spu_config.iUseFixedUpdates = 1;
SaveFuncs.open = save_open;
SaveFuncs.read = save_read;