Reformat gambatte.cpp

This commit is contained in:
MrWint 2019-05-26 12:22:53 +02:00
parent a79febdef9
commit af42fbb714
12 changed files with 103 additions and 111 deletions

View File

@ -64,10 +64,10 @@ public:
* @param flags ORed combination of LoadFlags.
* @return 0 on success, negative value on failure.
*/
LoadRes load(const char *romfiledata, unsigned romfilelength, std::uint32_t now, unsigned flags, unsigned div);
LoadRes load(char const *romfiledata, unsigned romfilelength, std::uint32_t now, unsigned flags, unsigned div);
int loadGBCBios(const char* biosfiledata);
int loadDMGBios(const char* biosfiledata);
int loadGBCBios(char const* biosfiledata);
int loadDMGBios(char const* biosfiledata);
/**
* Emulates until at least 'samples' audio samples are produced in the
@ -136,7 +136,7 @@ public:
bool isLoaded() const;
/** Writes persistent cartridge data to disk. NOT Done implicitly on ROM close. */
void loadSavedata(const char *data);
void loadSavedata(char const *data);
int saveSavedataLength();
void saveSavedata(char *dest);
@ -146,15 +146,15 @@ public:
/** ROM header title of currently loaded ROM image. */
const std::string romTitle() const;
unsigned char ExternalRead(unsigned short addr);
void ExternalWrite(unsigned short addr, unsigned char val);
unsigned char externalRead(unsigned short addr);
void externalWrite(unsigned short addr, unsigned char val);
int LinkStatus(int which);
int linkStatus(int which);
void GetRegs(int *dest);
void getRegs(int *dest);
void SetInterruptAddresses(int *addrs, int numAddrs);
int GetHitInterruptAddress();
void setInterruptAddresses(int *addrs, int numAddrs);
int getHitInterruptAddress();
template<bool isReader>void SyncState(NewState *ns);

View File

@ -29,19 +29,19 @@ GBEXPORT void gambatte_destroy(GB *g)
delete g;
}
GBEXPORT int gambatte_load(GB *g, const char *romfiledata, unsigned romfilelength, long long now, unsigned flags, unsigned div)
GBEXPORT int gambatte_load(GB *g, char const *romfiledata, unsigned romfilelength, long long now, unsigned flags, unsigned div)
{
int ret = g->load(romfiledata, romfilelength, now, flags, div);
return ret;
}
GBEXPORT int gambatte_loadgbcbios(GB* g, const char* biosfiledata)
GBEXPORT int gambatte_loadgbcbios(GB* g, char const* biosfiledata)
{
int ret = g->loadGBCBios(biosfiledata);
return ret;
}
GBEXPORT int gambatte_loaddmgbios(GB* g, const char* biosfiledata)
GBEXPORT int gambatte_loaddmgbios(GB* g, char const* biosfiledata)
{
int ret = g->loadDMGBios(biosfiledata);
return ret;
@ -141,7 +141,7 @@ GBEXPORT void gambatte_savesavedata(GB *g, char *dest)
g->saveSavedata(dest);
}
GBEXPORT void gambatte_loadsavedata(GB *g, const char *data)
GBEXPORT void gambatte_loadsavedata(GB *g, char const *data)
{
g->loadSavedata(data);
}
@ -165,7 +165,7 @@ GBEXPORT int gambatte_newstatesave(GB *g, char *data, int len)
return !saver.Overflow() && saver.GetLength() == len;
}
GBEXPORT int gambatte_newstateload(GB *g, const char *data, int len)
GBEXPORT int gambatte_newstateload(GB *g, char const *data, int len)
{
NewStateExternalBuffer loader((char *)data, len);
g->SyncState<true>(&loader);
@ -196,30 +196,30 @@ GBEXPORT int gambatte_getmemoryarea(GB *g, int which, unsigned char **data, int
GBEXPORT unsigned char gambatte_cpuread(GB *g, unsigned short addr)
{
return g->ExternalRead(addr);
return g->externalRead(addr);
}
GBEXPORT void gambatte_cpuwrite(GB *g, unsigned short addr, unsigned char val)
{
g->ExternalWrite(addr, val);
g->externalWrite(addr, val);
}
GBEXPORT int gambatte_linkstatus(GB *g, int which)
{
return g->LinkStatus(which);
return g->linkStatus(which);
}
GBEXPORT void gambatte_getregs(GB *g, int *dest)
{
g->GetRegs(dest);
g->getRegs(dest);
}
GBEXPORT void gambatte_setinterruptaddresses(GB *g, int *addrs, int numAddrs)
{
g->SetInterruptAddresses(addrs, numAddrs);
g->setInterruptAddresses(addrs, numAddrs);
}
GBEXPORT int gambatte_gethitinterruptaddress(GB *g)
{
return g->GetHitInterruptAddress();
return g->getHitInterruptAddress();
}

View File

@ -2,7 +2,9 @@
#define COUNTERDEF_H
namespace gambatte {
enum { disabled_time = 0xFFFFFFFFul };
enum { disabled_time = 0xfffffffful };
}
#endif

View File

@ -31,7 +31,7 @@ public:
void setStatePtrs(SaveState &state);
void loadState(SaveState const &state);
void setLayers(unsigned mask) { mem_.setLayers(mask); }
void loadSavedata(const char *data) { mem_.loadSavedata(data); }
void loadSavedata(char const *data) { mem_.loadSavedata(data); }
int saveSavedataLength() {return mem_.saveSavedataLength(); }
void saveSavedata(char *dest) { mem_.saveSavedata(dest); }
@ -105,7 +105,7 @@ public:
mem_.write_nocb(addr, val, cycleCounter_);
}
int LinkStatus(int which) { return mem_.LinkStatus(which); }
int linkStatus(int which) { return mem_.linkStatus(which); }
void getRegs(int *dest);
void setInterruptAddresses(int *addrs, int numAddrs);

View File

@ -1,29 +1,30 @@
/***************************************************************************
* Copyright (C) 2007 by Sindre Aamås *
* aamas@stud.ntnu.no *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundation. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License version 2 for more details. *
* *
* You should have received a copy of the GNU General Public License *
* version 2 along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
//
// Copyright (C) 2007 by sinamas <sinamas at users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License version 2 for more details.
//
// You should have received a copy of the GNU General Public License
// version 2 along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
//
#include "gambatte.h"
#include "cpu.h"
#include "savestate.h"
#include "initstate.h"
#include <sstream>
#include "savestate.h"
#include <cstring>
#include <sstream>
namespace gambatte {
struct GB::Priv {
CPU cpu;
unsigned loadflags;
@ -34,18 +35,11 @@ struct GB::Priv {
Priv() : loadflags(0), layersMask(LAYER_MASK_BG | LAYER_MASK_OBJ)
{
}
~Priv()
{
}
};
GB::GB() : p_(new Priv) {}
GB::~GB() {
//if (p_->cpu.loaded())
// p_->cpu.saveSavedata();
delete p_;
}
@ -57,19 +51,19 @@ std::ptrdiff_t GB::runFor(gambatte::uint_least32_t *const soundBuf, std::size_t
p_->cpu.setVideoBuffer(p_->vbuff, 160);
p_->cpu.setSoundBuffer(soundBuf);
const long cyclesSinceBlit = p_->cpu.runFor(samples * 2);
samples = p_->cpu.fillSoundBuffer();
return cyclesSinceBlit < 0 ? cyclesSinceBlit : static_cast<std::ptrdiff_t>(samples) - (cyclesSinceBlit >> 1);
long const cyclesSinceBlit = p_->cpu.runFor(samples * 2);
samples = p_->cpu.fillSoundBuffer();
return cyclesSinceBlit >= 0
? static_cast<std::ptrdiff_t>(samples) - (cyclesSinceBlit >> 1)
: cyclesSinceBlit;
}
void GB::setLayers(unsigned mask)
{
void GB::setLayers(unsigned mask) {
p_->cpu.setLayers(mask);
}
void GB::blitTo(gambatte::uint_least32_t *videoBuf, std::ptrdiff_t pitch)
{
void GB::blitTo(gambatte::uint_least32_t *videoBuf, std::ptrdiff_t pitch) {
gambatte::uint_least32_t *src = p_->vbuff;
gambatte::uint_least32_t *dst = videoBuf;
@ -140,10 +134,7 @@ void GB::setLinkCallback(void(*callback)()) {
p_->cpu.setLinkCallback(callback);
}
LoadRes GB::load(const char *romfiledata, unsigned romfilelength, const std::uint32_t now, unsigned const flags, const unsigned div) {
//if (p_->cpu.loaded())
// p_->cpu.saveSavedata();
LoadRes GB::load(char const *romfiledata, unsigned romfilelength, const std::uint32_t now, unsigned const flags, const unsigned div) {
LoadRes const loadres = p_->cpu.load(romfiledata, romfilelength, flags & FORCE_DMG, flags & MULTICART_COMPAT);
if (loadres == LOADRES_OK) {
@ -152,18 +143,17 @@ LoadRes GB::load(const char *romfiledata, unsigned romfilelength, const std::uin
p_->loadflags = flags;
setInitState(state, !(flags & FORCE_DMG), flags & GBA_CGB, now, div);
p_->cpu.loadState(state);
//p_->cpu.loadSavedata();
}
return loadres;
}
int GB::loadGBCBios(const char* biosfiledata) {
int GB::loadGBCBios(char const* biosfiledata) {
memcpy(p_->cpu.cgbBiosBuffer(), biosfiledata, 0x900);
return 0;
}
int GB::loadDMGBios(const char* biosfiledata) {
int GB::loadDMGBios(char const* biosfiledata) {
memcpy(p_->cpu.dmgBiosBuffer(), biosfiledata, 0x100);
return 0;
}
@ -180,7 +170,7 @@ void GB::saveSavedata(char *dest) {
if (p_->cpu.loaded())
p_->cpu.saveSavedata(dest);
}
void GB::loadSavedata(const char *data) {
void GB::loadSavedata(char const *data) {
if (p_->cpu.loaded())
p_->cpu.loadSavedata(data);
}
@ -198,14 +188,14 @@ bool GB::getMemoryArea(int which, unsigned char **data, int *length) {
return false;
}
unsigned char GB::ExternalRead(unsigned short addr) {
unsigned char GB::externalRead(unsigned short addr) {
if (p_->cpu.loaded())
return p_->cpu.externalRead(addr);
else
return 0;
}
void GB::ExternalWrite(unsigned short addr, unsigned char val) {
void GB::externalWrite(unsigned short addr, unsigned char val) {
if (p_->cpu.loaded())
p_->cpu.externalWrite(addr, val);
}
@ -219,7 +209,7 @@ void GB::setCgbPalette(unsigned *lut) {
p_->cpu.setCgbPalette(lut);
}
const std::string GB::romTitle() const {
std::string const GB::romTitle() const {
if (p_->cpu.loaded()) {
char title[0x11];
std::memcpy(title, p_->cpu.romTitle(), 0x10);
@ -230,20 +220,20 @@ const std::string GB::romTitle() const {
return std::string();
}
int GB::LinkStatus(int which) {
return p_->cpu.LinkStatus(which);
int GB::linkStatus(int which) {
return p_->cpu.linkStatus(which);
}
void GB::GetRegs(int *dest) {
void GB::getRegs(int *dest) {
p_->cpu.getRegs(dest);
}
void GB::SetInterruptAddresses(int *addrs, int numAddrs)
void GB::setInterruptAddresses(int *addrs, int numAddrs)
{
p_->cpu.setInterruptAddresses(addrs, numAddrs);
}
int GB::GetHitInterruptAddress()
int GB::getHitInterruptAddress()
{
return p_->cpu.getHitInterruptAddress();
}

View File

@ -572,7 +572,7 @@ static bool presumedMulti64Mbc1(unsigned char const header[], unsigned rombanks)
return header[0x147] == 1 && header[0x149] == 0 && rombanks == 64;
}
LoadRes Cartridge::loadROM(const char *romfiledata, unsigned romfilelength, bool const forceDmg, bool const multicartCompat) {
LoadRes Cartridge::loadROM(char const *romfiledata, unsigned romfilelength, bool const forceDmg, bool const multicartCompat) {
//const std::auto_ptr<File> rom(newFileInstance(romfile));
//if (rom->fail())
@ -698,7 +698,7 @@ static bool hasBattery(unsigned char headerByte0x147) {
}
}
void Cartridge::loadSavedata(const char *data) {
void Cartridge::loadSavedata(char const *data) {
if (hasBattery(memptrs_.romdata()[0x147])) {
int length = memptrs_.rambankdataend() - memptrs_.rambankdata();
std::memcpy(memptrs_.rambankdata(), data, length);

View File

@ -1058,7 +1058,7 @@ void Memory::nontrivial_write(const unsigned P, const unsigned data, const unsig
ioamhram[P - 0xFE00] = data;
}
LoadRes Memory::loadROM(const char *romfiledata, unsigned romfilelength, const bool forceDmg, const bool multicartCompat) {
LoadRes Memory::loadROM(char const *romfiledata, unsigned romfilelength, const bool forceDmg, const bool multicartCompat) {
if (LoadRes const fail = cart.loadROM(romfiledata, romfilelength, forceDmg, multicartCompat))
return fail;
@ -1104,7 +1104,7 @@ bool Memory::getMemoryArea(int which, unsigned char **data, int *length) {
}
}
int Memory::LinkStatus(int which)
int Memory::linkStatus(int which)
{
switch (which)
{

View File

@ -99,13 +99,13 @@ public:
bool loaded() const { return cart.loaded(); }
unsigned curRomBank() const { return cart.curRomBank(); }
const char * romTitle() const { return cart.romTitle(); }
char const * romTitle() const { return cart.romTitle(); }
int debugGetLY() const { return display.debugGetLY(); }
void setStatePtrs(SaveState &state);
void loadState(const SaveState &state/*, unsigned long oldCc*/);
void loadSavedata(const char *data) { cart.loadSavedata(data); }
void loadSavedata(char const *data) { cart.loadSavedata(data); }
int saveSavedataLength() {return cart.saveSavedataLength(); }
void saveSavedata(char *dest) { cart.saveSavedata(dest); }
void updateInput();
@ -295,7 +295,7 @@ public:
unsigned long event(unsigned long cycleCounter);
unsigned long resetCounters(unsigned long cycleCounter);
LoadRes loadROM(const char *romfiledata, unsigned romfilelength, bool forceDmg, bool multicartCompat);
LoadRes loadROM(char const *romfiledata, unsigned romfilelength, bool forceDmg, bool multicartCompat);
void setInputGetter(unsigned (*getInput)()) {
this->getInput = getInput;
@ -346,7 +346,7 @@ public:
display.blackScreen();
}
int LinkStatus(int which);
int linkStatus(int which);
template<bool isReader>void SyncState(NewState *ns);
};

View File

@ -8,11 +8,11 @@ NewStateDummy::NewStateDummy()
:length(0)
{
}
void NewStateDummy::Save(const void *ptr, size_t size, const char *name)
void NewStateDummy::Save(const void *ptr, size_t size, char const *name)
{
length += size;
}
void NewStateDummy::Load(void *ptr, size_t size, const char *name)
void NewStateDummy::Load(void *ptr, size_t size, char const *name)
{
}
@ -21,7 +21,7 @@ NewStateExternalBuffer::NewStateExternalBuffer(char *buffer, long maxlength)
{
}
void NewStateExternalBuffer::Save(const void *ptr, size_t size, const char *name)
void NewStateExternalBuffer::Save(const void *ptr, size_t size, char const *name)
{
if (maxlength - length >= (long)size)
{
@ -30,7 +30,7 @@ void NewStateExternalBuffer::Save(const void *ptr, size_t size, const char *name
length += size;
}
void NewStateExternalBuffer::Load(void *ptr, size_t size, const char *name)
void NewStateExternalBuffer::Load(void *ptr, size_t size, char const *name)
{
char *dst = static_cast<char *>(ptr);
if (maxlength - length >= (long)size)
@ -48,19 +48,19 @@ NewStateExternalFunctions::NewStateExternalFunctions(const FPtrs *ff)
{
}
void NewStateExternalFunctions::Save(const void *ptr, size_t size, const char *name)
void NewStateExternalFunctions::Save(const void *ptr, size_t size, char const *name)
{
Save_(ptr, size, name);
}
void NewStateExternalFunctions::Load(void *ptr, size_t size, const char *name)
void NewStateExternalFunctions::Load(void *ptr, size_t size, char const *name)
{
Load_(ptr, size, name);
}
void NewStateExternalFunctions::EnterSection(const char *name)
void NewStateExternalFunctions::EnterSection(char const *name)
{
EnterSection_(name);
}
void NewStateExternalFunctions::ExitSection(const char *name)
void NewStateExternalFunctions::ExitSection(char const *name)
{
ExitSection_(name);
}

View File

@ -9,10 +9,10 @@ namespace gambatte {
class NewState
{
public:
virtual void Save(const void *ptr, size_t size, const char *name) = 0;
virtual void Load(void *ptr, size_t size, const char *name) = 0;
virtual void EnterSection(const char *name) { }
virtual void ExitSection(const char *name) { }
virtual void Save(const void *ptr, size_t size, char const *name) = 0;
virtual void Load(void *ptr, size_t size, char const *name) = 0;
virtual void EnterSection(char const *name) { }
virtual void ExitSection(char const *name) { }
};
class NewStateDummy : public NewState
@ -23,8 +23,8 @@ public:
NewStateDummy();
long GetLength() { return length; }
void Rewind() { length = 0; }
virtual void Save(const void *ptr, size_t size, const char *name);
virtual void Load(void *ptr, size_t size, const char *name);
virtual void Save(const void *ptr, size_t size, char const *name);
virtual void Load(void *ptr, size_t size, char const *name);
};
class NewStateExternalBuffer : public NewState
@ -38,31 +38,31 @@ public:
long GetLength() { return length; }
void Rewind() { length = 0; }
bool Overflow() { return length > maxlength; }
virtual void Save(const void *ptr, size_t size, const char *name);
virtual void Load(void *ptr, size_t size, const char *name);
virtual void Save(const void *ptr, size_t size, char const *name);
virtual void Load(void *ptr, size_t size, char const *name);
};
struct FPtrs
{
void (*Save_)(const void *ptr, size_t size, const char *name);
void (*Load_)(void *ptr, size_t size, const char *name);
void (*EnterSection_)(const char *name);
void (*ExitSection_)(const char *name);
void (*Save_)(const void *ptr, size_t size, char const *name);
void (*Load_)(void *ptr, size_t size, char const *name);
void (*EnterSection_)(char const *name);
void (*ExitSection_)(char const *name);
};
class NewStateExternalFunctions : public NewState
{
private:
void (*Save_)(const void *ptr, size_t size, const char *name);
void (*Load_)(void *ptr, size_t size, const char *name);
void (*EnterSection_)(const char *name);
void (*ExitSection_)(const char *name);
void (*Save_)(const void *ptr, size_t size, char const *name);
void (*Load_)(void *ptr, size_t size, char const *name);
void (*EnterSection_)(char const *name);
void (*ExitSection_)(char const *name);
public:
NewStateExternalFunctions(const FPtrs *ff);
virtual void Save(const void *ptr, size_t size, const char *name);
virtual void Load(void *ptr, size_t size, const char *name);
virtual void EnterSection(const char *name);
virtual void ExitSection(const char *name);
virtual void Save(const void *ptr, size_t size, char const *name);
virtual void Load(void *ptr, size_t size, char const *name);
virtual void EnterSection(char const *name);
virtual void ExitSection(char const *name);
};
// defines and explicitly instantiates

View File

@ -21,7 +21,7 @@
#include <algorithm>
#include <cstring>
static inline unsigned toPeriod(const unsigned nr3, const unsigned nr4) {
static inline unsigned toPeriod(unsigned nr3, unsigned nr4) {
return 0x800 - ((nr4 << 8 & 0x700) | nr3);
}

Binary file not shown.