pump events during vi (#593)

* pump events during vi

* add var

* more

* more
This commit is contained in:
Logan McNaughton 2025-10-26 13:42:25 +01:00 committed by GitHub
parent 847df61526
commit fe0297690f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 9 additions and 2 deletions

View File

@ -322,6 +322,7 @@ impl Device {
pif: pif::Pif {
rom: [0; 1984],
ram: [0; 64],
input_gathered: false,
channels: [pif::PifChannel {
tx: None,
tx_buf: None,

View File

@ -8,6 +8,7 @@ pub struct Pif {
#[serde(with = "serde_big_array::BigArray")]
pub ram: [u8; 64],
pub channels: [PifChannel; 5],
pub input_gathered: bool,
}
#[derive(Copy, Clone, serde::Serialize, serde::Deserialize)]
@ -95,6 +96,9 @@ fn process_channel(device: &mut device::Device, channel: usize) -> usize {
}
pub fn update_pif_ram(device: &mut device::Device) -> u64 {
unsafe { sdl3_sys::events::SDL_PumpEvents() };
device.pif.input_gathered = true;
let mut active_channels = 0;
for k in 0..PIF_CHANNELS_COUNT {
active_channels += process_channel(device, k)

View File

@ -159,6 +159,10 @@ pub fn vertical_interrupt_event(device: &mut device::Device) {
if device.netplay.is_none() && paused {
ui::video::pause_loop();
} else if !device.pif.input_gathered {
unsafe { sdl3_sys::events::SDL_PumpEvents() }; // in case the game isn't prompting for input
} else {
device.pif.input_gathered = false;
}
/*

View File

@ -385,8 +385,6 @@ pub fn get_controller_paths(game_ui: &ui::Ui) -> Vec<Option<String>> {
}
pub fn get(ui: &ui::Ui, channel: usize) -> InputData {
unsafe { sdl3_sys::events::SDL_PumpEvents() };
let profile_name = ui.config.input.input_profile_binding[channel].clone();
let profile = ui.config.input.input_profiles.get(&profile_name).unwrap();
let mut keys = 0;