Beispiel #1
0
        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);
        }