Skip to content
Snippets Groups Projects
lib.rs 2.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • #![allow(clippy::uninlined_format_args)]
    
    
    use std::os::raw::{c_char, c_uint};
    
    
    const RETRO_API_VERSION: u32 = 1;
    
    #[repr(C)]
    
    pub struct RetroSystemInfo {
    
        pub library_name: *const c_char,
        pub library_version: *const c_char,
        pub valid_extensions: *const c_char,
        pub need_fullpath: bool,
        pub block_extract: bool,
    }
    
    
    #[no_mangle]
    pub extern "C" fn retro_init() {
        println!("retro_init()");
    
    pub extern "C" fn retro_deinit() {
        println!("retro_deinit()");
    
    pub extern "C" fn retro_reset() {
        println!("retro_reset()");
    
    pub extern "C" fn retro_api_version() -> c_uint {
        println!("retro_api_version()");
    
        RETRO_API_VERSION
    }
    
    #[no_mangle]
    
    pub extern "C" fn retro_get_system_info(info: *mut RetroSystemInfo) {
        println!("retro_get_system_info");
        unsafe {
            (*info).library_name = "Boytacean\0".as_ptr() as *const c_char;
            (*info).library_version = "v0.9.6\0".as_ptr() as *const c_char;
            (*info).valid_extensions = "gb|gbc\0".as_ptr() as *const c_char;
            (*info).need_fullpath = false;
            (*info).block_extract = false;
        }
    
    
    #[no_mangle]
    pub extern "C" fn retro_get_system_av_info() {
        println!("retro_get_system_av_info()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_set_environment() {
        println!("retro_set_environment()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_set_controller_port_device() {
        println!("retro_set_controller_port_device()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_run() {
        println!("retro_run()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_load_game() {
        println!("retro_load_game()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_unload_game() {
        println!("retro_unload_game()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_get_memory_data() {
        println!("retro_get_memory_data()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_get_memory_size() {
        println!("retro_get_memory_size()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_serialize_size() {
        println!("retro_serialize_size()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_serialize() {
        println!("retro_serialize()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_unserialize() {
        println!("retro_unserialize()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_cheat_reset() {
        println!("retro_cheat_reset()");
    }
    
    #[no_mangle]
    pub extern "C" fn retro_cheat_set() {
        println!("retro_cheat_set()");
    }