@Override
	public boolean InitBase(int ptra_v2m) {
		int d = 0;
		m_base.timediv = v2mBuffer.getInt(d); //System.out.println(m_base.timediv);
		m_base.timediv2 = 10000 * m_base.timediv; //System.out.println(m_base.timediv2);
		m_base.maxtime = v2mBuffer.getInt(d + 4); //System.out.println(m_base.maxtime);
		m_base.gdnum = v2mBuffer.getInt(d + 8); //System.out.println(m_base.gdnum);
		d += 12;
		m_base.ptrgptr = d; //System.out.println(m_base.ptrgptr);
		d += 10 * m_base.gdnum; //System.out.println("d:" + Integer.toHexString(0x0042c000 + d));
		//System.out.println("--------");
		for (int ch = 0; ch < 16; ch++) {
			//int ch=0;
			//V2MBase.Channel c = m_base.chan[ch];
			m_base.chan[ch].notenum = v2mBuffer.getInt(d);
			//System.out.println(c.notenum);
			d += 4;
			if (m_base.chan[ch].notenum > 0) {
				m_base.chan[ch].ptrnoteptr = d; //System.out.println(Integer.toHexString(d));
				d += 5 * m_base.chan[ch].notenum;
				m_base.chan[ch].pcnum = v2mBuffer.getInt(d); //System.out.println(c.pcnum);
				d += 4;
				m_base.chan[ch].ptrpcptr = d; //System.out.println(Integer.toHexString(0x0042c000+c.ptrpcptr));
				d += 4 * m_base.chan[ch].pcnum;
				m_base.chan[ch].pbnum = v2mBuffer.getInt(d); //System.out.println(c.pbnum);
				d += 4;
				m_base.chan[ch].ptrpbptr = d; //System.out.println(Integer.toHexString(0x0042c000+c.ptrpbptr));
				d += 5 * m_base.chan[ch].pbnum;
				for (int cn = 0; cn < 7; cn++) {
					//int cn = 0;
					//V2MBase.Channel.CC cc = c.ctl[cn];
					m_base.chan[ch].ctl[cn].ccnum = v2mBuffer.getInt(d); //System.out.println(cc.ccnum);
					d += 4;
					m_base.chan[ch].ctl[cn].ptrccptr = d; //System.out.println(Integer.toHexString(0x0042c000+cc.ptrccptr));
					d += 4 * m_base.chan[ch].ctl[cn].ccnum;
					//System.out.println("d:" + Integer.toHexString(0x0042c000+d));
				}
			}
		}
		//System.out.println("d:" + Integer.toHexString(0x0042c000+d));
		int size = v2mBuffer.getInt(d); //System.out.println(size);
		if (size > 16384 || size < 0)
			return false;
		d += 4;
		m_base.ptrglobals = d; //System.out.println("d:" + Integer.toHexString(0x0042c000+d));
		d += size;
		size = v2mBuffer.getInt(d); //System.out.println("d:" + Integer.toHexString(0x0042c000+d));
		if (size > 1048576 || size < 0)
			return false;
		d += 4;
		m_base.ptrpatchmap = d; //System.out.println("d:" + Integer.toHexString(0x0042c000+d));
		d += size;

		int spsize = v2mBuffer.getInt(d); //System.out.println("d:" + Integer.toHexString(0x0042c000+d));
		d += 4;
		if (spsize == 0 || spsize >= 8192) {
			/*for(int i = 0; i < 256; i++) {
				m_base.ptrspeechptrs[i] = " ";
			}*/
		} else {
			m_base.ptrspeechdata = d;
			d += spsize;
		}
		//System.out.println("InitBase: "+m_base.chan[0].notenum);
		return true;
	}