File:  [RetroPC.NET] / np2 / common / parts.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Fri Oct 17 02:57:16 2003 JST (22 years ago) by yui
Branches: mie
CVS tags: start, rel_036
Neko Project II

#include	"compiler.h"
#include	"parts.h"


BYTE PARTSCALL AdjustAfterMultiply(BYTE value) {

	return((BYTE)(((value / 10) << 4) + (value % 10)));
}

BYTE PARTSCALL AdjustBeforeDivision(BYTE value) {

	return((BYTE)(((value >> 4) * 10) + (value & 0xf)));
}

UINT PARTSCALL sjis2jis(UINT sjis) {

	UINT	ret;

	ret = sjis & 0xff;
	ret -= (ret >> 7);
	ret += 0x62;
	if (ret < 256) {
		ret = (ret - 0xa2) & 0x1ff;
	}
	ret += 0x1f21;
	ret += (sjis & 0x3f00) << 1;
	return(ret);
}

UINT PARTSCALL jis2sjis(UINT jis) {

	UINT	high;
	UINT	low;

	low = jis & 0x7f;
	high = (jis >> 8) & 0x7f;
	low += ((high & 1) - 1) & 0x5e;
	if (low >= 0x60) {
		low++;
	}
	high += 0x121;
	low += 0x1f;
	high >>= 1;
	high ^= 0x20;
	return((high << 8) | low);
}

void PARTSCALL satuation_s16(SINT16 *dst, const SINT32 *src, UINT size) {

	SINT32	data;

	size >>= 1;
	while(size--) {
		data = *src++;
		if (data > 32767) {
			data = 32767;
		}
		else if (data < -32768) {
			data = -32768;
		}
		*dst++ = (SINT16)data;
	}
}

void PARTSCALL satuation_s16x(SINT16 *dst, const SINT32 *src, UINT size) {

	SINT32	data;

	size >>= 2;
	while(size--) {
		data = src[0];
		if (data > 32767) {
			data = 32767;
		}
		else if (data < -32768) {
			data = -32768;
		}
		dst[1] = (SINT16)data;
		data = src[1];
		if (data > 32767) {
			data = 32767;
		}
		else if (data < -32768) {
			data = -32768;
		}
		dst[0] = (SINT16)data;
		src += 2;
		dst += 2;
	}
}


RetroPC.NET-CVS <cvs@retropc.net>