Skip to main content

buildall/
buildall.rs

1use ymfm_sys::ffi::{self, ChipType};
2
3fn exercise_chip(chip_type: ChipType) {
4    let mut chip = ffi::create_chip(chip_type, 8_000_000);
5
6    chip.pin_mut().reset();
7
8    let saved = chip.pin_mut().save_state();
9    assert!(!saved.is_empty());
10    chip.pin_mut().restore_state(&saved);
11
12    chip.pin_mut().read(0);
13    chip.pin_mut().write(0, 0);
14
15    let channels = chip.channels() as usize;
16    let mut samples = vec![0_i32; channels * 20];
17    chip.pin_mut().generate(&mut samples);
18}
19
20fn main() {
21    let chip_types = [
22        ChipType::Ym2149,
23        ChipType::Ym2151,
24        ChipType::Ym2203,
25        ChipType::Ym2164,
26        ChipType::Ym2413,
27        ChipType::Ym2414,
28        ChipType::Ym2423,
29        ChipType::Ym2608,
30        ChipType::Ym2610,
31        ChipType::Ym2610B,
32        ChipType::Ym2612,
33        ChipType::Ym3526,
34        ChipType::Ym3438,
35        ChipType::Ymf276,
36        ChipType::Y8950,
37        ChipType::Ym3533,
38        ChipType::Ym3812,
39        ChipType::Ymf262,
40        ChipType::Ymf278B,
41        ChipType::Ymf281,
42        ChipType::Ymf289B,
43        ChipType::Ym3806,
44        ChipType::Ymf288,
45        ChipType::Ds1001,
46    ];
47
48    for chip_type in chip_types {
49        exercise_chip(chip_type);
50    }
51
52    println!("Done");
53}