2019-10-19 15:23:17 -04:00
|
|
|
#pragma once
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
|
|
|
class SpcFileData
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
string SongTitle;
|
|
|
|
string GameTitle;
|
|
|
|
string Dumper;
|
|
|
|
string Artist;
|
|
|
|
string Comment;
|
|
|
|
|
|
|
|
uint16_t PC;
|
|
|
|
uint8_t A;
|
|
|
|
uint8_t X;
|
|
|
|
uint8_t Y;
|
|
|
|
uint8_t PS;
|
|
|
|
uint8_t SP;
|
|
|
|
|
|
|
|
uint8_t CpuRegs[4];
|
|
|
|
uint8_t ControlReg;
|
|
|
|
uint8_t RamRegs[2];
|
|
|
|
uint8_t TimerOutput[3];
|
|
|
|
uint8_t TimerTarget[3];
|
|
|
|
|
|
|
|
uint8_t DspRegSelect;
|
|
|
|
uint8_t DspRegs[128];
|
|
|
|
uint8_t SpcRam[0x10000];
|
|
|
|
|
|
|
|
SpcFileData(uint8_t* spcData)
|
|
|
|
{
|
|
|
|
SongTitle = string(spcData + 0x2E, spcData + 0x2E + 0x20);
|
|
|
|
GameTitle = string(spcData + 0x4E, spcData + 0x4E + 0x20);
|
|
|
|
Dumper = string(spcData + 0x6E, spcData + 0x6E + 0x10);
|
|
|
|
Artist = string(spcData + 0xB1, spcData + 0xB1 + 0x20);
|
|
|
|
Comment = string(spcData + 0x7E, spcData + 0x7E + 0x20);
|
|
|
|
|
|
|
|
memcpy(SpcRam, spcData + 0x100, 0xFFC0);
|
|
|
|
memcpy(SpcRam + 0xFFC0, spcData + 0x101C0, 0x40);
|
|
|
|
|
|
|
|
memcpy(DspRegs, spcData + 0x10100, 128);
|
|
|
|
|
|
|
|
PC = spcData[0x25] | (spcData[0x26] << 8);
|
|
|
|
A = spcData[0x27];
|
|
|
|
X = spcData[0x28];
|
|
|
|
Y = spcData[0x29];
|
|
|
|
PS = spcData[0x2A];
|
|
|
|
SP = spcData[0x2B];
|
|
|
|
|
|
|
|
ControlReg = spcData[0x100 + 0xF1];
|
|
|
|
DspRegSelect = spcData[0x100 + 0xF2];
|
|
|
|
|
|
|
|
CpuRegs[0] = spcData[0x100 + 0xF4];
|
|
|
|
CpuRegs[1] = spcData[0x100 + 0xF5];
|
|
|
|
CpuRegs[2] = spcData[0x100 + 0xF6];
|
|
|
|
CpuRegs[3] = spcData[0x100 + 0xF7];
|
|
|
|
|
|
|
|
RamRegs[0] = spcData[0x100 + 0xF8];
|
|
|
|
RamRegs[1] = spcData[0x100 + 0xF9];
|
|
|
|
|
|
|
|
TimerTarget[0] = spcData[0x100 + 0xFA];
|
|
|
|
TimerTarget[1] = spcData[0x100 + 0xFB];
|
|
|
|
TimerTarget[2] = spcData[0x100 + 0xFC];
|
|
|
|
|
|
|
|
TimerOutput[0] = spcData[0x100 + 0xFD];
|
|
|
|
TimerOutput[1] = spcData[0x100 + 0xFE];
|
|
|
|
TimerOutput[2] = spcData[0x100 + 0xFF];
|
|
|
|
}
|
2021-03-10 11:13:28 -05:00
|
|
|
};
|