1pub mod api; 2pub mod audio; 3mod backupram; 4mod bus; 5mod cddrive; 6mod font; 7mod graphics; 8mod memory; 9mod rf5c164; 10mod wordram; 11 12pub use api::parse_disc_region; 13use bincode::{Decode, Encode}; 14use cdrom::cdtime::CdTime; 15use cdrom::reader::CdRom; 16pub use wordram::WordRam; 17 18pub const DEFAULT_PCM_LPF_CUTOFF: u32 = genesis_config::DEFAULT_PCM_LPF_CUTOFF; 19 20#[derive(Debug, Clone, Copy, PartialEq, Eq, Encode, Decode)] 21enum ScdCpu { 22 Main, 23 Sub, 24} 25 26#[must_use] 27pub fn is_cd_32x_disc(disc: &mut CdRom) -> bool { 28 let mut sector_buffer = [0; cdrom::BYTES_PER_SECTOR as usize]; 29 30 if let Err(err) = disc.read_sector(1, CdTime::SECTOR_0_START, &mut sector_buffer) { 31 log::error!("Error reading game header: {err}"); 32 return false; 33 } 34 35 §or_buffer[0x110..0x118] == b"SEGA 32X" 36}