mirror of https://github.com/stella-emu/stella.git
saverom support for Pitfall II (DPC) cart type. Not the most efficient
implementation possible, but not the worst either. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@703 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
803a9146be
commit
3738fc1ca0
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: CartDPC.cxx,v 1.11 2005-06-28 01:15:17 urchlay Exp $
|
// $Id: CartDPC.cxx,v 1.12 2005-07-30 19:14:35 urchlay Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -28,6 +28,11 @@ CartridgeDPC::CartridgeDPC(const uInt8* image, uInt32 size)
|
||||||
{
|
{
|
||||||
uInt32 addr;
|
uInt32 addr;
|
||||||
|
|
||||||
|
// Make a copy of the entire image as-is, for use by getImage()
|
||||||
|
// (this wastes 12K of RAM, should be controlled by a #ifdef)
|
||||||
|
for(addr = 0; addr < size; ++addr)
|
||||||
|
myImageCopy[addr] = image[addr];
|
||||||
|
|
||||||
// Copy the program ROM image into my buffer
|
// Copy the program ROM image into my buffer
|
||||||
for(addr = 0; addr < 8192; ++addr)
|
for(addr = 0; addr < 8192; ++addr)
|
||||||
{
|
{
|
||||||
|
@ -587,3 +592,16 @@ bool CartridgeDPC::load(Deserializer& in)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt8* CartridgeDPC::getImage(int& size) {
|
||||||
|
size = 8192 + 2048 + 255;
|
||||||
|
|
||||||
|
for(int i=0; i<8192; i++)
|
||||||
|
myImageCopy[i] = myProgramImage[i];
|
||||||
|
|
||||||
|
for(int i=0; i<2048; i++)
|
||||||
|
myImageCopy[i + 8192] = myDisplayImage[i];
|
||||||
|
|
||||||
|
return &myImageCopy[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: CartDPC.hxx,v 1.6 2005-06-28 01:15:17 urchlay Exp $
|
// $Id: CartDPC.hxx,v 1.7 2005-07-30 19:14:35 urchlay Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef CARTRIDGEDCP_HXX
|
#ifndef CARTRIDGEDCP_HXX
|
||||||
|
@ -32,7 +32,7 @@ class Deserializer;
|
||||||
see David P. Crane's United States Patent Number 4,644,495.
|
see David P. Crane's United States Patent Number 4,644,495.
|
||||||
|
|
||||||
@author Bradford W. Mott
|
@author Bradford W. Mott
|
||||||
@version $Id: CartDPC.hxx,v 1.6 2005-06-28 01:15:17 urchlay Exp $
|
@version $Id: CartDPC.hxx,v 1.7 2005-07-30 19:14:35 urchlay Exp $
|
||||||
*/
|
*/
|
||||||
class CartridgeDPC : public Cartridge
|
class CartridgeDPC : public Cartridge
|
||||||
{
|
{
|
||||||
|
@ -93,6 +93,8 @@ class CartridgeDPC : public Cartridge
|
||||||
*/
|
*/
|
||||||
virtual bool load(Deserializer& in);
|
virtual bool load(Deserializer& in);
|
||||||
|
|
||||||
|
virtual uInt8* getImage(int& size);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Get the byte at the specified address.
|
Get the byte at the specified address.
|
||||||
|
@ -142,6 +144,9 @@ class CartridgeDPC : public Cartridge
|
||||||
// The 2K display ROM image of the cartridge
|
// The 2K display ROM image of the cartridge
|
||||||
uInt8 myDisplayImage[2048];
|
uInt8 myDisplayImage[2048];
|
||||||
|
|
||||||
|
// Copy of the raw image, for use by getImage()
|
||||||
|
uInt8 myImageCopy[8192 + 2048 + 255];
|
||||||
|
|
||||||
// The top registers for the data fetchers
|
// The top registers for the data fetchers
|
||||||
uInt8 myTops[8];
|
uInt8 myTops[8];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue