forked from sin365/AxibugEmuOnline
86 lines
2.1 KiB
C#
86 lines
2.1 KiB
C#
using System;
|
|
|
|
namespace VirtualNes.Core
|
|
{
|
|
public class RECTANGLE
|
|
{
|
|
public byte[] reg = new byte[4]; // register
|
|
|
|
public byte enable; // enable
|
|
public byte holdnote; // holdnote
|
|
public byte volume; // volume
|
|
public byte complement;
|
|
|
|
// For Render
|
|
public int phaseacc;
|
|
public int freq;
|
|
public int freqlimit;
|
|
public int adder;
|
|
public int duty;
|
|
public int len_count;
|
|
|
|
public int nowvolume;
|
|
|
|
// For Envelope
|
|
public byte env_fixed;
|
|
public byte env_decay;
|
|
public byte env_count;
|
|
public byte dummy0;
|
|
public int env_vol;
|
|
|
|
// For Sweep
|
|
public byte swp_on;
|
|
public byte swp_inc;
|
|
public byte swp_shift;
|
|
public byte swp_decay;
|
|
public byte swp_count;
|
|
public byte[] dummy1 = new byte[3];
|
|
|
|
// For sync;
|
|
public byte[] sync_reg = new byte[4];
|
|
public byte sync_output_enable;
|
|
public byte sync_enable;
|
|
public byte sync_holdnote;
|
|
public byte dummy2;
|
|
public int sync_len_count;
|
|
|
|
public void ZeroMemory()
|
|
{
|
|
Array.Clear(reg, 0, reg.Length);
|
|
enable = 0;
|
|
holdnote = 0;
|
|
volume = 0;
|
|
complement = 0;
|
|
|
|
phaseacc = 0;
|
|
freq = 0;
|
|
freqlimit = 0;
|
|
adder = 0;
|
|
duty = 0;
|
|
len_count = 0;
|
|
|
|
nowvolume = 0;
|
|
|
|
env_fixed = 0;
|
|
env_decay = 0;
|
|
env_count = 0;
|
|
dummy0 = 0;
|
|
env_vol = 0;
|
|
|
|
swp_on = 0;
|
|
swp_inc = 0;
|
|
swp_shift = 0;
|
|
swp_decay = 0;
|
|
swp_count = 0;
|
|
Array.Clear(dummy1, 0, dummy1.Length);
|
|
|
|
Array.Clear(sync_reg, 0, sync_reg.Length);
|
|
sync_output_enable = 0;
|
|
sync_enable = 0;
|
|
sync_holdnote = 0;
|
|
dummy2 = 0;
|
|
sync_len_count = 0;
|
|
}
|
|
}
|
|
}
|