public byte read(int address) { if (channel1.isValid(address)) return channel1.read(address); else if (channel2.isValid(address)) return channel2.read(address); else if (channel3.isValid(address)) return channel3.read(address); else if (channel4.isValid(address)) return channel4.read(address); else if (address >= 0xFF30 && address <= 0xFF3F) { return wavePatternRAM.get(address - 0xFF30); } return 0; }