blargg_err_t Nsf_Impl::load_( Data_Reader& in ) { // pad ROM data with 0 RETURN_ERR( rom.load( in, header_.size, &header_, 0 ) ); if ( !header_.valid_tag() ) return blargg_err_file_type; RETURN_ERR( high_ram.resize( (fds_enabled() ? fdsram_offset + fdsram_size : fdsram_offset) ) ); addr_t load_addr = get_addr( header_.load_addr ); if ( load_addr < (fds_enabled() ? sram_addr : rom_addr) ) set_warning( "Load address is too low" ); rom.set_addr( load_addr % bank_size ); if ( header_.vers != 1 ) set_warning( "Unknown file version" ); set_play_period( header_.play_period() ); return blargg_ok; }
void Sgc_Core::set_tempo( double t ) { set_play_period( clock_rate() / (header().rate ? 50 : 60) / t ); }