public long export_CHR_data(int _bank_ind, string _filename) #endif { long data_size = -1; tiles_data data = m_data_mngr.get_tiles_data(_bank_ind); BinaryWriter bw = null; try { if (data != null) { bw = new BinaryWriter(File.Open(_filename, FileMode.Create)); #if DEF_NES data_size = data.export_CHR(bw, _save_padding); #elif DEF_SMS if (_bpp < 1 || _bpp > 4) { throw new Exception("Invalid CHRs bpp value! The valid range is 1-4."); } data_size = data.export_CHR(bw, _bpp); #elif DEF_PCE || DEF_ZX || DEF_SMD data_size = data.export_CHR(bw); #endif } else { throw new Exception("Invalid bank index ( " + _bank_ind + " )! Use " + CONST_PREFIX + "num_banks() to get a valid range!"); } } catch (Exception _err) { throw new Exception(CONST_PREFIX + "export_CHR_data error! Can't save CHR data!\n" + _err.Message); } finally { if (bw != null) { bw.Close(); } } return(data_size); }