Bah, I cant find this bug to save my life.
(NOTE: It is 4AM at the moment)
here is the section of code where the thing happens..
Code:
#include "C8memory.h"
C8memory::C8memory()
{
Memory = new unsigned char [MEMORY_SIZE];
Registers = new unsigned char [REGISTERS];
Stack = new unsigned short [STACK];
Reset();
}
C8memory::~C8memory()
{
delete [] Memory;
delete [] Registers;
delete [] Stack;
}
void C8memory::Reset()
{
memset(Memory, 0, MEMORY_SIZE);
memset(Registers, 0, REGISTERS);
memset(Stack, 0, STACK);
PC = 0x200;
Register_I = 0x200;
SP = 0;
}
bool C8memory::LoadRom(char *filename)
{
std::ifstream rom(filename, std::ios::binary);
if(!rom.is_open()) return false;
rom.seekg(0, std::ios::end);
const long file_size = rom.tellg();
rom.seekg(0, std::ios::beg);
char *rom_buffer = new char [file_size];
rom.read(rom_buffer, file_size);
rom.close();
memcpy(&Memory[0x200], rom_buffer, file_size); //<--HERE is the fault
delete [] rom_buffer;
return true;
}
I am exausted and it could possibly be something simple.
Sorry in advance if it is