/**
* This file is a part of JaC64 - a Java C64 Emulator
* Main Developer: Joakim Eriksson (Dreamfabric.com)
* Contact: joakime@sics.se
* Web: http://www.dreamfabric.com/c64
* ---------------------------------------------------
*/
package com.dreamfabric.jac64;
/**
* Waveform lookup tables borrowed from the Re-Sid SID emulator
*
*
* Created: Fri Aug 26 22:42:51 2005
*
*/
public class RS6581Waves {
// Compressed versions of the resid sampled waves (6581)
private static int wave6581_PS_src[] = new int[] {
0xff00, 0x7, 0x7f00, 0x3, 0x3f00, 0x3, 0x3e00, 0x2, 0x1f, 0x7f00, 0x3,
0x3f00, 0x1, 0x3f00, 0x2f, 0x7f00, 0x37, 0x3f00, 0x3b, 0x1f00, 0x3d,
0xf00, 0x3e, 0x600, 0x30, 0x3f, 0x100, 0x30, 0x38, 0x3f, 0x3e,
0x3f, 0x3f, 0x3f, 0x7f00, 0x3, 0x7f00, 0x4f, 0x7f00, 0x57, 0x3f00, 0x5b,
0x1f00, 0x5d, 0xf00, 0x5e, 0x600, 0x40, 0x5f, 0x100, 0x40, 0x40,
0x5f, 0x5c, 0x5f, 0x5f, 0x5f, 0x7f00, 0x67, 0x3e00, 0x40, 0x6b,
0x1d00, 0x40, 0x40, 0x6d, 0x700, 0x40, 0x300, 0x40, 0x100, 0x40,
0x40, 0x6e, 0x300, 0x40, 0x100, 0x60, 0x60, 0x6f, 0x100, 0x60,
0x60, 0x6f, 0x60, 0x6f, 0x6f, 0x6f, 0x1f00, 0x40, 0xf00, 0x40,
0x700, 0x40, 0x300, 0x40, 0x100, 0x40, 0x60, 0x73, 0xf00, 0x40,
0x700, 0x40, 0x300, 0x40, 0x100, 0x60, 0x60, 0x75, 0x700, 0x60,
0x300, 0x60, 0x100, 0x60, 0x60, 0x76, 0x300, 0x60, 0x100, 0x60,
0x60, 0x77, 0x100, 0x70, 0x70, 0x77, 0x70, 0x77, 0x77, 0x77,
0xf00, 0x60, 0x700, 0x60, 0x300, 0x60, 0x100, 0x60, 0x60, 0x79,
0x700, 0x60, 0x300, 0x60, 0x100, 0x70, 0x70, 0x7a, 0x300, 0x70,
0x100, 0x70, 0x70, 0x7b, 0x40, 0x70, 0x70, 0x7b, 0x78, 0x7b,
0x7b, 0x7b, 0x700, 0x70, 0x300, 0x70, 0x100, 0x70, 0x70, 0x7c,
0x300, 0x70, 0x40, 0x70, 0x70, 0x7d, 0x40, 0x70, 0x78, 0x7d,
0x78, 0x7d, 0x7d, 0x7d, 0x100, 0x40, 0x40, 0x78, 0x60, 0x78,
0x78, 0x7e, 0x60, 0x78, 0x78, 0x7e, 0x7c, 0x7e, 0x7e, 0x7e,
0x70, 0x7c, 0x7c, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f,
0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff00, 0x7, 0x7f00, 0x3,
0x3f00, 0x3, 0x3e00, 0x2, 0x1f, 0x7f00, 0x3, 0x3f00, 0x1, 0x3f00, 0x2f,
0x7f00, 0x37, 0x3f00, 0x3b, 0x1f00, 0x3d, 0xf00, 0x3e, 0x600, 0x30,
0x3f, 0x100, 0x30, 0x38, 0x3f, 0x3e, 0x3f, 0x3f, 0x3f, 0x7f00, 0x3,
0x7f00, 0x4f, 0x7f00, 0x57, 0x3f00, 0x5b, 0x1f00, 0x5d, 0xf00, 0x5e,
0x600, 0x40, 0x5f, 0x100, 0x40, 0x40, 0x5f, 0x5c, 0x5f, 0x5f,
0x5f, 0x7f00, 0x67, 0x3e00, 0x40, 0x6b, 0x1e00, 0x40, 0x6d, 0x700, 0x40,
0x300, 0x40, 0x100, 0x40, 0x40, 0x6e, 0x300, 0x40, 0x100, 0x60,
0x60, 0x6f, 0x100, 0x60, 0x60, 0x6f, 0x60, 0x6f, 0x6f, 0x6f,
0x1f00, 0x40, 0xf00, 0x40, 0x700, 0x40, 0x300, 0x40, 0x100, 0x40,
0x60, 0x73, 0xf00, 0x40, 0x700, 0x40, 0x300, 0x40, 0x100, 0x60,
0x60, 0x75, 0x700, 0x60, 0x300, 0x60, 0x100, 0x60, 0x60, 0x76,
0x300, 0x60, 0x100, 0x60, 0x60, 0x77, 0x100, 0x70, 0x70, 0x77,
0x70, 0x77, 0x77, 0x77, 0xf00, 0x60, 0x700, 0x60, 0x300, 0x60,
0x100, 0x60, 0x60, 0x79, 0x700, 0x60, 0x300, 0x60, 0x100, 0x70,
0x70, 0x7a, 0x300, 0x70, 0x100, 0x70, 0x70, 0x7b, 0x40, 0x70,
0x70, 0x7b, 0x78, 0x7b, 0x7b, 0x7b, 0x700, 0x70, 0x300, 0x70,
0x100, 0x70, 0x70, 0x7c, 0x300, 0x70, 0x40, 0x70, 0x70, 0x7d,
0x40, 0x70, 0x78, 0x7d, 0x78, 0x7d, 0x7d, 0x7d, 0x100, 0x40,
0x40, 0x78, 0x60, 0x78, 0x78, 0x7e, 0x60, 0x78, 0x78, 0x7e,
0x7c, 0x7e, 0x7e, 0x7e, 0x70, 0x7c, 0x7c, 0x7f, 0x7c, 0x7f,
0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f
};
private static int wave6581_P_Tsrc[] = new int[] {
0x1fd00, 0x20, 0x38, 0x3f, 0xfb00, 0x40, 0x100, 0x40, 0x40, 0x5f,0x6f00,0x40,
0x700, 0x40, 0x300, 0x60, 0x100, 0x60, 0x60, 0x6f, 0x1f00, 0x40,
0xf00, 0x60, 0x700, 0x60, 0x300, 0x60, 0x100, 0x60, 0x70, 0x77,
0xf00, 0x60, 0x700, 0x60, 0x300, 0x70, 0x40, 0x70, 0x70, 0x7b,
0x600, 0x40, 0x70, 0x100, 0x40, 0x40, 0x70, 0x60, 0x70, 0x78,
0x7d, 0x100, 0x40, 0x60, 0x78, 0x60, 0x78, 0x78, 0x7e, 0x70,
0x7c, 0x7c, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f00, 0x80, 0x3f00, 0x80,
0x1f00, 0x80, 0xf00, 0x80, 0x700, 0x80, 0x300, 0x80, 0x80, 0x80,
0x80, 0x9f, 0x3f00, 0x80, 0x1f00, 0x80, 0xf00, 0x80, 0x700, 0x80,
0x100, 0x80, 0x80, 0x80, 0x80, 0xa0, 0xa0, 0xaf, 0x1f00, 0x80,
0xd00, 0x80, 0x80, 0x80, 0x300, 0x80, 0x100, 0x80, 0x80, 0xa0,
0x100, 0x80, 0x80, 0xa0, 0x80, 0xa0, 0xb0, 0xb7, 0x700, 0x80,
0x300, 0x80, 0x100, 0x80, 0x80, 0xa0, 0x300, 0x80, 0x100, 0x80,
0x80, 0xa0, 0x100, 0x80, 0x80, 0xa0, 0x80, 0xb0, 0xb0, 0xbb,
0x300, 0x80, 0x80, 0x80, 0x80, 0xb0, 0x80, 0x80, 0x80, 0xb0,
0x80, 0xb0, 0xb8, 0xbd, 0x80, 0x80, 0x80, 0xb8, 0xa0, 0xb8,
0xb8, 0xbe, 0xa0, 0xb8, 0xbc, 0xbf, 0xbe, 0xbf, 0xbf, 0xbf,
0x3f00, 0xc0, 0x1d00, 0x80, 0x80, 0xc0, 0xb00, 0x80, 0x100, 0x80,
0x80, 0xc0, 0x300, 0x80, 0x100, 0x80, 0x80, 0xc0, 0x100, 0x80,
0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xcf, 0xf00, 0x80, 0x700, 0x80,
0x300, 0x80, 0x100, 0x80, 0x80, 0xc0, 0x700, 0x80, 0x300, 0x80,
0x100, 0x80, 0x80, 0xc0, 0x300, 0x80, 0x100, 0x80, 0xc0, 0xc0,
0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xd0, 0xd7, 0x700, 0x80,
0x300, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0x100, 0x80, 0x80, 0xc0,
0x80, 0xc0, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xd0,
0xd0, 0xdb, 0x100, 0x80, 0x80, 0xc0, 0x80, 0xc0, 0xc0, 0xd0,
0x80, 0xc0, 0xc0, 0xd0, 0xc0, 0xd0, 0xd8, 0xdd, 0xc0, 0xc0,
0xc0, 0xd0, 0xc0, 0xd8, 0xd8, 0xde, 0xc0, 0xd8, 0xdc, 0xdf,
0xdc, 0xdf, 0xdf, 0xdf, 0xf00, 0x80, 0x700, 0x80, 0x300, 0x80,
0x80, 0xc0, 0xc0, 0xe0, 0x700, 0x80, 0x100, 0x80, 0x80, 0xc0,
0x80, 0xc0, 0xc0, 0xe0, 0x100, 0x80, 0x80, 0xc0, 0x80, 0xc0,
0xc0, 0xe0, 0x80, 0xc0, 0xc0, 0xe0, 0xc0, 0xe0, 0xe0, 0xe7,
0x300, 0x80, 0x100, 0x80, 0x80, 0xc0, 0x100, 0x80, 0x80, 0xc0,
0x80, 0xc0, 0xc0, 0xe0, 0x100, 0x80, 0x80, 0xc0, 0x80, 0xc0,
0xc0, 0xe0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xeb,
0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xc0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xed, 0xc0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe8, 0xe8, 0xee, 0xe0, 0xe8, 0xec, 0xef, 0xec, 0xef,
0xef, 0xef, 0x300, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x80, 0x80,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xf0, 0x80, 0xc0, 0xc0, 0xc0,
0xc0, 0xe0, 0xe0, 0xf0, 0xc0, 0xe0, 0xe0, 0xf0, 0xe0, 0xf0,
0xf0, 0xf3, 0x80, 0xc0, 0xc0, 0xe0, 0xc0, 0xe0, 0xe0, 0xf0,
0xc0, 0xe0, 0xe0, 0xf0, 0xe0, 0xf0, 0xf0, 0xf5, 0xe0, 0xe0,
0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf6, 0xf0, 0xf0, 0xf4, 0xf7,
0xf4, 0xf7, 0xf7, 0xf7, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0,
0xe0, 0xf0, 0xe0, 0xe0, 0xe0, 0xf8, 0xf0, 0xf8, 0xf8, 0xf9,
0xe0, 0xf0, 0xf0, 0xf8, 0xf0, 0xf8, 0xf8, 0xfa, 0xf0, 0xf8,
0xf8, 0xfb, 0xf8, 0xfb, 0xfb, 0xfb, 0xe0, 0xf0, 0xf0, 0xf8,
0xf0, 0xf8, 0xfc, 0xfc, 0xf8, 0xfc, 0xfc, 0xfd, 0xfc, 0xfd,
0xfd, 0xfd, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfc, 0xf8, 0xfd, 0xfd, 0xfd, 0xfc, 0xfd, 0xfc,
0xfc, 0xf8, 0xfc, 0xfc, 0xfc, 0xf0, 0xf8, 0xf0, 0xf0, 0xe0,
0xfb, 0xfb, 0xfb, 0xf8, 0xfb, 0xf8, 0xf8, 0xf0, 0xfa, 0xf8,
0xf8, 0xf0, 0xf8, 0xf0, 0xf0, 0xe0, 0xf9, 0xf8, 0xf8, 0xf0,
0xf8, 0xf0, 0xe0, 0xe0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0,
0xc0, 0xc0, 0xf7, 0xf7, 0xf7, 0xf4, 0xf7, 0xf4, 0xf0, 0xf0,
0xf6, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xf5, 0xf0,
0xf0, 0xe0, 0xf0, 0xe0, 0xe0, 0xc0, 0xf0, 0xe0, 0xe0, 0xc0,
0xe0, 0xc0, 0xc0, 0x80, 0xf3, 0xf0, 0xf0, 0xe0, 0xf0, 0xe0,
0xe0, 0xc0, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80,
0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0x80,
0x80, 0x80, 0x80, 0x300, 0xef, 0xef, 0xef, 0xec, 0xef, 0xec,
0xe8, 0xe0, 0xee, 0xe8, 0xe8, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0,
0xed, 0xe8, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xe0, 0xe0,
0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0xeb, 0xe0, 0xe0, 0xe0,
0xe0, 0xc0, 0xc0, 0xc0, 0xe0, 0xc0, 0xc0, 0x80, 0xc0, 0x80,
0x80, 0x100, 0xe0, 0xc0, 0xc0, 0x80, 0xc0, 0x80, 0x80, 0x100, 0xc0,
0x80, 0x80, 0x100, 0x80, 0x300, 0xe7, 0xe0, 0xe0, 0xc0, 0xe0,
0xc0, 0xc0, 0x80, 0xe0, 0xc0, 0xc0, 0x80, 0xc0, 0x80, 0x80,
0x100, 0xe0, 0xc0, 0xc0, 0x80, 0xc0, 0x80, 0x80, 0x100, 0x80,
0x80, 0x600, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x300, 0x80, 0x700, 0x80,
0xf00, 0xdf, 0xdf, 0xdf, 0xdc, 0xdf, 0xdc, 0xd8, 0xc0, 0xde,
0xd8, 0xd8, 0xc0, 0xd8, 0xc0, 0xc0, 0xc0, 0xdd, 0xd8, 0xd0,
0xc0, 0xd0, 0xc0, 0xc0, 0x80, 0xd0, 0xc0, 0xc0, 0x80, 0xc0,
0x80, 0x80, 0x100, 0xdb, 0xd0, 0xd0, 0xc0, 0xc0, 0xc0, 0xc0,
0x80, 0xc0, 0xc0, 0xc0, 0x80, 0xc0, 0x80, 0x80, 0x100, 0xc0,
0xc0, 0x80, 0x80, 0x80, 0x300, 0x80, 0x700, 0xd7, 0xd0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0x80, 0x100, 0x80,
0x300, 0xc0, 0x80, 0x80, 0x100, 0x80, 0x300, 0x80, 0x700, 0xc0,
0x80, 0x80, 0x100, 0x80, 0x300, 0x80, 0x700, 0x80, 0xf00, 0xcf,
0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x100, 0xc0, 0x80, 0x80,
0x100, 0x80, 0x300, 0xc0, 0x80, 0x80, 0x100, 0x80, 0xb00, 0xc0,
0x80, 0x80, 0x1d00, 0xc0, 0x80, 0x3e00, 0xbf, 0xbf, 0xbf, 0xbe,
0xbf, 0xbc, 0xbc, 0xa0, 0xbe, 0xbc, 0xb8, 0xa0, 0xb8, 0xa0,
0x80, 0x80, 0xbd, 0xb8, 0xb0, 0x80, 0xb0, 0x80, 0x80, 0x80,
0xb0, 0x80, 0x80, 0x80, 0x80, 0x300, 0xbb, 0xb0, 0xb0, 0x80,
0xa0, 0x80, 0x80, 0x100, 0xa0, 0x80, 0x80, 0x100, 0x80, 0x300, 0xa0,
0x80, 0x80, 0x100, 0x80, 0x300, 0x80, 0x700, 0xb7, 0xb0, 0xa0,
0x80, 0xa0, 0x80, 0x80, 0x100, 0xa0, 0x80, 0x80, 0x100, 0x80,
0x300, 0x80, 0x80, 0x80, 0xd00, 0x80, 0x80, 0x1e00, 0xaf, 0xa0,
0xa0, 0x80, 0x80, 0x80, 0x80, 0x100, 0x80, 0x80, 0x600, 0x80,
0xf00, 0x80, 0x1f00, 0x80, 0x3f00, 0x9f, 0x90, 0x80, 0x80, 0x80,
0x300, 0x80, 0x700, 0x80, 0xf00, 0x80, 0x1f00, 0x80, 0x3f00, 0x80,
0x7f00, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7c, 0x7c, 0x70, 0x7e,
0x7c, 0x78, 0x60, 0x78, 0x60, 0x60, 0x100, 0x7d, 0x78, 0x78,
0x60, 0x70, 0x40, 0x40, 0x100, 0x70, 0x40, 0x600, 0x7b, 0x78,
0x70, 0x40, 0x70, 0x40, 0x200, 0x60, 0x700, 0x60, 0xf00, 0x77,
0x70, 0x70, 0x100, 0x60, 0x300, 0x60, 0x700, 0x60, 0xf00, 0x40,
0x1f00, 0x6f, 0x60, 0x60, 0x100, 0x60, 0x300, 0x40, 0x700, 0x40,
0x6f00, 0x5f, 0x58, 0x40, 0x100, 0x40, 0x300, 0x40, 0xf700, 0x3f,
0x3c, 0x30, 0x1fd00};
private static int wave6581__STsrc[] = new int[] {
0x7e00, 0x3, 0x3, 0x3f00, 0x1, 0x3c00, 0x7, 0x7, 0x7, 0x7, 0x3f00, 0x1,
0x3e00, 0x3, 0x3, 0x3f00, 0x1, 0x3800, 0xe, 0xe, 0xe, 0xe,
0xf, 0xf, 0xf, 0xf, 0x7e00, 0x3, 0x3, 0x3f00, 0x1, 0x3c00, 0x7,
0x7, 0x7, 0x7, 0x3f00, 0x1, 0x3e00, 0x3, 0x3, 0x3f00, 0x1,
0x3000, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1e,
0x1e, 0x1e, 0x1e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7e00, 0x3, 0x3,
0x3f00, 0x1, 0x3c00, 0x7, 0x7, 0x7, 0x7, 0x3f00, 0x1, 0x3e00, 0x3,
0x3, 0x3f00, 0x1, 0x3800, 0xe, 0xe, 0xe, 0xe, 0xf, 0xf,
0xf, 0x1f, 0x7e00, 0x3, 0x3, 0x3f00, 0x1, 0x3c00, 0x7, 0x7,
0x7, 0x7, 0x3f00, 0x1, 0x3e00, 0x3, 0x3, 0x3f00, 0x1, 0x2000, 0x38,
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
0x38, 0x38, 0x38, 0x38, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
0x3c, 0x3c, 0x3c, 0x3e, 0x3e, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f,
0x7f, 0x7e00, 0x3, 0x3, 0x3f00, 0x1, 0x3c00, 0x7, 0x7, 0x7,
0x7, 0x3f00, 0x1, 0x3e00, 0x3, 0x3, 0x3f00, 0x1, 0x3800, 0xe,
0xe, 0xe, 0xe, 0xf, 0xf, 0xf, 0xf, 0x7e00, 0x3, 0x3,
0x3f00, 0x1, 0x3c00, 0x7, 0x7, 0x7, 0x7, 0x3f00, 0x1, 0x3e00, 0x3,
0x3, 0x3f00, 0x1, 0x3000, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c,
0x1c, 0x1c, 0x1e, 0x1e, 0x1e, 0x1e, 0x1f, 0x1f, 0x3f, 0x3f,
0x7e00, 0x3, 0x3, 0x3f00, 0x1, 0x3c00, 0x7, 0x7, 0x7, 0x7,
0x3f00, 0x1, 0x3e00, 0x3, 0x3, 0x3f00, 0x1, 0x3800, 0xe, 0xe,
0xe, 0xe, 0xf, 0xf, 0xf, 0x1f, 0x7e00, 0x3, 0x3, 0x3f00, 0x1,
0x3c00, 0x7, 0x7, 0x7, 0x7, 0x3f00, 0x1, 0x3e00, 0x3, 0x3,
0x3f00, 0x1, 0x2000, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3e, 0x3e, 0x3f,
0x3f, 0x7f, 0x7f, 0x7f, 0x7f
};
private static int wave6581_PSTsrc[] = new int[] {
0x3ff00, 0x3f, 0x3ef00, 0x20, 0x700, 0x30, 0x300, 0x78, 0x78, 0x7e, 0x7f,
0x7f, 0x3ff00, 0x3f, 0x3ef00, 0x20, 0x700, 0x30, 0x300, 0x78, 0x78,
0x7e, 0x7f, 0x7f
};
public static int wave6581_PS_[] = new int[4096];
public static int wave6581_P_T[] = new int[4096];
public static int wave6581_PST[] = new int[4096];
public static int wave6581__ST[] = new int[4096];
static {
initWaves();
}
public static void initWaves() {
unpack(wave6581_PS_src, wave6581_PS_);
unpack(wave6581_P_Tsrc, wave6581_P_T);
unpack(wave6581_PSTsrc, wave6581_PST);
unpack(wave6581__STsrc, wave6581__ST);
}
private static void unpack(int[] src, int[] dst) {
int wavePos = 0;
for (int i = 0, n = src.length; i < n; i++) {
if (src[i] > 0xff) {
// Skip a bunch of zeroes!
for (int j = 0, m = (src[i] >> 8); j < m; j++) {
dst[wavePos++] = 0;
}
// wavePos += src[i] >> 8;
} else {
// Make them 12 bits samples
dst[wavePos++] = (src[i] << 4);
}
}
System.out.println("Unpacked: " + wavePos + " data");
}
public static void main(String[] args) {
initWaves();
int[] wave = wave6581__ST;
for (int i = 0, n = 4096; i < n; i++) {
System.out.print("0x" + Integer.toString(wave[i], 16));
if (i % 8 == 7) System.out.print("\n" + Integer.toString(i + 1, 16) + "\t");
else System.out.print(",");
}
}
}