lib.rsannotatedlib.rssource36 lines · 803 B · raw
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    &sector_buffer[0x110..0x118] == b"SEGA 32X"
36}