From 67fec652b0df3d8a0884f10853e0e7b2fe51ed28 Mon Sep 17 00:00:00 2001 From: stephena Date: Thu, 27 Aug 2009 22:59:14 +0000 Subject: [PATCH] Updated TIA code to emulate the 'widening' part of the Cosmic Ark starfield effect. More research is required in this area. Large update to exception handling throughout the codebase. It seems that in many cases, the correct 'catch' block was never being called. I never see exceptions thrown very much, so that area doesn't get much testing. But I guess it's good that Stella doesn't generate many exceptions :) git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1862 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- src/common/Snapshot.cxx | 2 +- src/common/SoundSDL.cxx | 18 ++---- src/emucore/Cart0840.cxx | 18 ++---- src/emucore/Cart2K.cxx | 14 +---- src/emucore/Cart3E.cxx | 14 +---- src/emucore/Cart3F.cxx | 14 +---- src/emucore/Cart4A50.cxx | 14 +---- src/emucore/Cart4K.cxx | 14 +---- src/emucore/CartAR.cxx | 14 +---- src/emucore/CartCV.cxx | 14 +---- src/emucore/CartDPC.cxx | 14 +---- src/emucore/CartE0.cxx | 14 +---- src/emucore/CartE7.cxx | 14 +---- src/emucore/CartEF.cxx | 14 +---- src/emucore/CartEFSC.cxx | 14 +---- src/emucore/CartF4.cxx | 14 +---- src/emucore/CartF4SC.cxx | 14 +---- src/emucore/CartF6.cxx | 14 +---- src/emucore/CartF6SC.cxx | 14 +---- src/emucore/CartF8.cxx | 14 +---- src/emucore/CartF8SC.cxx | 14 +---- src/emucore/CartFASC.cxx | 14 +---- src/emucore/CartFE.cxx | 14 +---- src/emucore/CartMB.cxx | 14 +---- src/emucore/CartMC.cxx | 14 +---- src/emucore/CartSB.cxx | 18 ++---- src/emucore/CartUA.cxx | 14 +---- src/emucore/CartX07.cxx | 18 ++---- src/emucore/Console.cxx | 18 ++---- src/emucore/Control.cxx | 4 +- src/emucore/M6532.cxx | 18 ++---- src/emucore/StateManager.cxx | 2 +- src/emucore/Switches.cxx | 4 +- src/emucore/TIA.cxx | 99 ++++++++++++++++++++------------ src/emucore/m6502/src/M6502.cxx | 18 ++---- src/emucore/m6502/src/System.cxx | 18 ++---- 36 files changed, 147 insertions(+), 430 deletions(-) diff --git a/src/common/Snapshot.cxx b/src/common/Snapshot.cxx index d564650ab..6d2530efa 100644 --- a/src/common/Snapshot.cxx +++ b/src/common/Snapshot.cxx @@ -144,7 +144,7 @@ string Snapshot::saveBufferToPNG(ofstream& out, uInt8* buffer, return "Snapshot saved"; } - catch(const char *msg) + catch(const char* msg) { if(buffer) delete[] buffer; if(compmem) delete[] compmem; diff --git a/src/common/SoundSDL.cxx b/src/common/SoundSDL.cxx index dc8de58c0..38d716d70 100644 --- a/src/common/SoundSDL.cxx +++ b/src/common/SoundSDL.cxx @@ -457,14 +457,9 @@ bool SoundSDL::save(Serializer& out) const out.putInt(myLastRegisterSetCycle); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << device << endl; + cerr << "ERROR: SoundSDL::save" << endl << " " << msg << endl; return false; } @@ -506,14 +501,9 @@ bool SoundSDL::load(Serializer& in) if(!myIsMuted) SDL_PauseAudio(0); } } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << device << endl; + cerr << "ERROR: SoundSDL::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Cart0840.cxx b/src/emucore/Cart0840.cxx index 700f49263..3d1609fd1 100644 --- a/src/emucore/Cart0840.cxx +++ b/src/emucore/Cart0840.cxx @@ -200,14 +200,9 @@ bool Cartridge0840::save(Serializer& out) const out.putString(cart); out.putInt(myCurrentBank); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: Cartridge0840::save" << endl << " " << msg << endl; return false; } @@ -226,14 +221,9 @@ bool Cartridge0840::load(Serializer& in) myCurrentBank = (uInt16)in.getInt(); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: Cartridge0840::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Cart2K.cxx b/src/emucore/Cart2K.cxx index 2eab84f98..bd5825ecb 100644 --- a/src/emucore/Cart2K.cxx +++ b/src/emucore/Cart2K.cxx @@ -139,12 +139,7 @@ bool Cartridge2K::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: Cartridge2K::save" << endl << " " << msg << endl; return false; } @@ -163,12 +158,7 @@ bool Cartridge2K::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: Cartridge2K::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Cart3E.cxx b/src/emucore/Cart3E.cxx index 4ce255126..307d9248d 100644 --- a/src/emucore/Cart3E.cxx +++ b/src/emucore/Cart3E.cxx @@ -257,12 +257,7 @@ bool Cartridge3E::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: Cartridge3E::save" << endl << " " << msg << endl; return false; } @@ -288,12 +283,7 @@ bool Cartridge3E::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: Cartridge3E::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Cart3F.cxx b/src/emucore/Cart3F.cxx index a81101316..15dd31b3c 100644 --- a/src/emucore/Cart3F.cxx +++ b/src/emucore/Cart3F.cxx @@ -193,12 +193,7 @@ bool Cartridge3F::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: Cartridge3F::save" << endl << " " << msg << endl; return false; } @@ -219,12 +214,7 @@ bool Cartridge3F::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: Cartridge3F::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Cart4A50.cxx b/src/emucore/Cart4A50.cxx index b411bdebe..285a78cb2 100644 --- a/src/emucore/Cart4A50.cxx +++ b/src/emucore/Cart4A50.cxx @@ -347,12 +347,7 @@ bool Cartridge4A50::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: Cartridge4A40::save" << endl << " " << msg << endl; return false; } @@ -389,12 +384,7 @@ bool Cartridge4A50::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: Cartridge4A50::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Cart4K.cxx b/src/emucore/Cart4K.cxx index 9691b3acf..be0626210 100644 --- a/src/emucore/Cart4K.cxx +++ b/src/emucore/Cart4K.cxx @@ -117,12 +117,7 @@ bool Cartridge4K::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: Cartridge4K::save" << endl << " " << msg << endl; return false; } @@ -141,12 +136,7 @@ bool Cartridge4K::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: Cartridge4K::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartAR.cxx b/src/emucore/CartAR.cxx index a69f7956e..7349ff271 100644 --- a/src/emucore/CartAR.cxx +++ b/src/emucore/CartAR.cxx @@ -477,12 +477,7 @@ bool CartridgeAR::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeAR::save" << endl << " " << msg << endl; return false; } @@ -545,12 +540,7 @@ bool CartridgeAR::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeAR::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartCV.cxx b/src/emucore/CartCV.cxx index 35011afa1..12dab8bdc 100644 --- a/src/emucore/CartCV.cxx +++ b/src/emucore/CartCV.cxx @@ -181,12 +181,7 @@ bool CartridgeCV::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeCV::save" << endl << " " << msg << endl; return false; } @@ -210,12 +205,7 @@ bool CartridgeCV::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeCV::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartDPC.cxx b/src/emucore/CartDPC.cxx index 0da4bba10..ad3189f87 100644 --- a/src/emucore/CartDPC.cxx +++ b/src/emucore/CartDPC.cxx @@ -518,12 +518,7 @@ bool CartridgeDPC::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeDPC::save" << endl << " " << msg << endl; return false; } @@ -579,12 +574,7 @@ bool CartridgeDPC::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeDPC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartE0.cxx b/src/emucore/CartE0.cxx index 8e49cf5d4..1ab9b77ca 100644 --- a/src/emucore/CartE0.cxx +++ b/src/emucore/CartE0.cxx @@ -241,12 +241,7 @@ bool CartridgeE0::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeE0::save" << endl << " " << msg << endl; return false; } @@ -269,12 +264,7 @@ bool CartridgeE0::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeE0::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartE7.cxx b/src/emucore/CartE7.cxx index c4258e576..876439141 100644 --- a/src/emucore/CartE7.cxx +++ b/src/emucore/CartE7.cxx @@ -261,12 +261,7 @@ bool CartridgeE7::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeE7::save" << endl << " " << msg << endl; return false; } @@ -298,12 +293,7 @@ bool CartridgeE7::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeE7::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartEF.cxx b/src/emucore/CartEF.cxx index 1228eb032..0101c243d 100644 --- a/src/emucore/CartEF.cxx +++ b/src/emucore/CartEF.cxx @@ -151,12 +151,7 @@ bool CartridgeEF::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeEF::save" << endl << " " << msg << endl; return false; } @@ -177,12 +172,7 @@ bool CartridgeEF::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeEF::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartEFSC.cxx b/src/emucore/CartEFSC.cxx index bf6de1808..ab0edd12d 100644 --- a/src/emucore/CartEFSC.cxx +++ b/src/emucore/CartEFSC.cxx @@ -191,12 +191,7 @@ bool CartridgeEFSC::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeEFSC::save" << endl << " " << msg << endl; return false; } @@ -217,12 +212,7 @@ bool CartridgeEFSC::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeEFSC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartF4.cxx b/src/emucore/CartF4.cxx index d0670ad3f..39de83e2b 100644 --- a/src/emucore/CartF4.cxx +++ b/src/emucore/CartF4.cxx @@ -155,12 +155,7 @@ bool CartridgeF4::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeF4::save" << endl << " " << msg << endl; return false; } @@ -183,12 +178,7 @@ bool CartridgeF4::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeF4::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartF4SC.cxx b/src/emucore/CartF4SC.cxx index a462e6461..c55084c77 100644 --- a/src/emucore/CartF4SC.cxx +++ b/src/emucore/CartF4SC.cxx @@ -202,12 +202,7 @@ bool CartridgeF4SC::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeF4SC::save" << endl << " " << msg << endl; return false; } @@ -232,12 +227,7 @@ bool CartridgeF4SC::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeF4SC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartF6.cxx b/src/emucore/CartF6.cxx index d2cf212bc..54d1dcf7b 100644 --- a/src/emucore/CartF6.cxx +++ b/src/emucore/CartF6.cxx @@ -197,12 +197,7 @@ bool CartridgeF6::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeF6::save" << endl << " " << msg << endl; return false; } @@ -223,12 +218,7 @@ bool CartridgeF6::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeF6::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartF6SC.cxx b/src/emucore/CartF6SC.cxx index 69e5e4a5b..9c5082201 100644 --- a/src/emucore/CartF6SC.cxx +++ b/src/emucore/CartF6SC.cxx @@ -243,12 +243,7 @@ bool CartridgeF6SC::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeF6SC::save" << endl << " " << msg << endl; return false; } @@ -274,12 +269,7 @@ bool CartridgeF6SC::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeF6SC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartF8.cxx b/src/emucore/CartF8.cxx index 6dcd5ca40..3c79d8ec5 100644 --- a/src/emucore/CartF8.cxx +++ b/src/emucore/CartF8.cxx @@ -181,12 +181,7 @@ bool CartridgeF8::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeF8::save" << endl << " " << msg << endl; return false; } @@ -207,12 +202,7 @@ bool CartridgeF8::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeF8SC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartF8SC.cxx b/src/emucore/CartF8SC.cxx index 1b014c723..94d4d1e55 100644 --- a/src/emucore/CartF8SC.cxx +++ b/src/emucore/CartF8SC.cxx @@ -222,12 +222,7 @@ bool CartridgeF8SC::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeF8SC::save" << endl << " " << msg << endl; return false; } @@ -252,12 +247,7 @@ bool CartridgeF8SC::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeF8SC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartFASC.cxx b/src/emucore/CartFASC.cxx index c92a024ed..88221de47 100644 --- a/src/emucore/CartFASC.cxx +++ b/src/emucore/CartFASC.cxx @@ -234,12 +234,7 @@ bool CartridgeFASC::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeFASC::save" << endl << " " << msg << endl; return false; } @@ -264,12 +259,7 @@ bool CartridgeFASC::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeFASC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartFE.cxx b/src/emucore/CartFE.cxx index 821d3440f..7b79b7fb9 100644 --- a/src/emucore/CartFE.cxx +++ b/src/emucore/CartFE.cxx @@ -120,12 +120,7 @@ bool CartridgeFE::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeFE::save" << endl << " " << msg << endl; return false; } @@ -144,12 +139,7 @@ bool CartridgeFE::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeF8SC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartMB.cxx b/src/emucore/CartMB.cxx index 1692502ea..8a7086b3d 100644 --- a/src/emucore/CartMB.cxx +++ b/src/emucore/CartMB.cxx @@ -163,12 +163,7 @@ bool CartridgeMB::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeMB::save" << endl << " " << msg << endl; return false; } @@ -189,12 +184,7 @@ bool CartridgeMB::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeMB::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartMC.cxx b/src/emucore/CartMC.cxx index e6a3c8696..6b8f47f7d 100644 --- a/src/emucore/CartMC.cxx +++ b/src/emucore/CartMC.cxx @@ -249,12 +249,7 @@ bool CartridgeMC::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeMC::save" << endl << " " << msg << endl; return false; } @@ -286,12 +281,7 @@ bool CartridgeMC::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeMC::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartSB.cxx b/src/emucore/CartSB.cxx index 8b9b7a643..ec21e592b 100644 --- a/src/emucore/CartSB.cxx +++ b/src/emucore/CartSB.cxx @@ -179,14 +179,9 @@ bool CartridgeSB::save(Serializer& out) const out.putString(cart); out.putInt(myCurrentBank); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeSB::save" << endl << " " << msg << endl; return false; } @@ -205,14 +200,9 @@ bool CartridgeSB::load(Serializer& in) myCurrentBank = (uInt16)in.getInt(); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeSB::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartUA.cxx b/src/emucore/CartUA.cxx index 70bae3504..e028a7d1a 100644 --- a/src/emucore/CartUA.cxx +++ b/src/emucore/CartUA.cxx @@ -189,12 +189,7 @@ bool CartridgeUA::save(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeUA::save" << endl << " " << msg << endl; return false; } @@ -215,12 +210,7 @@ bool CartridgeUA::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeUA::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/CartX07.cxx b/src/emucore/CartX07.cxx index 9ed1e6029..108a880b2 100644 --- a/src/emucore/CartX07.cxx +++ b/src/emucore/CartX07.cxx @@ -172,14 +172,9 @@ bool CartridgeX07::save(Serializer& out) const out.putString(cart); out.putInt(myCurrentBank); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << cart << endl; + cerr << "ERROR: CartridgeX07::save" << endl << " " << msg << endl; return false; } @@ -198,14 +193,9 @@ bool CartridgeX07::load(Serializer& in) myCurrentBank = (uInt16)in.getInt(); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << cart << endl; + cerr << "ERROR: CartridgeX07::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Console.cxx b/src/emucore/Console.cxx index 810691d5b..0273ca593 100644 --- a/src/emucore/Console.cxx +++ b/src/emucore/Console.cxx @@ -206,14 +206,9 @@ bool Console::save(Serializer& out) const if(!mySwitches->save(out)) return false; } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for \'Console\'" << endl; + cerr << "ERROR: Console::save" << endl << " " << msg << endl; return false; } @@ -233,14 +228,9 @@ bool Console::load(Serializer& in) if(!mySwitches->load(in)) return false; } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for \'Console\'" << endl; + cerr << "ERROR: Console::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/Control.cxx b/src/emucore/Control.cxx index 4a06da637..8f00d2c0f 100644 --- a/src/emucore/Control.cxx +++ b/src/emucore/Control.cxx @@ -134,7 +134,7 @@ bool Controller::save(Serializer& out) const out.putInt(myAnalogPinValue[Five]); out.putInt(myAnalogPinValue[Nine]); } - catch(...) + catch(...) // FIXME { cerr << "ERROR: Controller::save() exception\n"; return false; @@ -158,7 +158,7 @@ bool Controller::load(Serializer& in) myAnalogPinValue[Five] = (Int32) in.getInt(); myAnalogPinValue[Nine] = (Int32) in.getInt(); } - catch(...) + catch(...) // FIXME { cerr << "ERROR: Controller::load() exception\n"; return false; diff --git a/src/emucore/M6532.cxx b/src/emucore/M6532.cxx index bd56c5fdf..beca45859 100644 --- a/src/emucore/M6532.cxx +++ b/src/emucore/M6532.cxx @@ -321,14 +321,9 @@ bool M6532::save(Serializer& out) const out.putByte((char)myOutTimer[2]); out.putByte((char)myOutTimer[3]); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << device << endl; + cerr << "ERROR: M6532::save" << endl << " " << msg << endl; return false; } @@ -364,14 +359,9 @@ bool M6532::load(Serializer& in) myOutTimer[2] = (uInt8) in.getByte(); myOutTimer[3] = (uInt8) in.getByte(); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << device << endl; + cerr << "ERROR: M6532::load" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/StateManager.cxx b/src/emucore/StateManager.cxx index 41d68f75f..1a60f2d28 100644 --- a/src/emucore/StateManager.cxx +++ b/src/emucore/StateManager.cxx @@ -310,7 +310,7 @@ bool StateManager::saveState(Serializer& out) } catch(const char* msg) { - cerr << "ERROR: StateManager::saveState(Serializer&)" << endl << msg << endl; + cerr << "ERROR: StateManager::saveState(Serializer&)" << endl << " " << msg << endl; } return false; } diff --git a/src/emucore/Switches.cxx b/src/emucore/Switches.cxx index 93578a55b..8df60cee3 100644 --- a/src/emucore/Switches.cxx +++ b/src/emucore/Switches.cxx @@ -114,7 +114,7 @@ bool Switches::save(Serializer& out) const { out.putByte((char)mySwitches); } - catch(...) + catch(...) // FIXME { cerr << "ERROR: Switches::save() exception\n"; return false; @@ -129,7 +129,7 @@ bool Switches::load(Serializer& in) { mySwitches = (uInt8) in.getByte(); } - catch(...) + catch(...) // FIXME { cerr << "ERROR: Switches::load() exception\n"; return false; diff --git a/src/emucore/TIA.cxx b/src/emucore/TIA.cxx index a33249a78..16c7a0a48 100644 --- a/src/emucore/TIA.cxx +++ b/src/emucore/TIA.cxx @@ -315,6 +315,9 @@ bool TIA::save(Serializer& out) const out.putInt(myColor[_P1]); out.putInt(myColor[_PF]); out.putInt(myColor[_BK]); + out.putInt(myColor[_M0]); + out.putInt(myColor[_M1]); + out.putInt(myColor[_BL]); out.putByte((char)myCTRLPF); out.putByte((char)myPlayfieldPriorityAndScore); @@ -381,14 +384,9 @@ bool TIA::save(Serializer& out) const // Save the sound sample stuff ... mySound.save(out); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << device << endl; + cerr << "ERROR: TIA::save" << endl << " " << msg << endl; return false; } @@ -425,6 +423,9 @@ bool TIA::load(Serializer& in) myColor[_P1] = (uInt32) in.getInt(); myColor[_PF] = (uInt32) in.getInt(); myColor[_BK] = (uInt32) in.getInt(); + myColor[_M0] = (uInt32) in.getInt(); + myColor[_M1] = (uInt32) in.getInt(); + myColor[_BL] = (uInt32) in.getInt(); myCTRLPF = (uInt8) in.getByte(); myPlayfieldPriorityAndScore = (uInt8) in.getByte(); @@ -498,12 +499,7 @@ bool TIA::load(Serializer& in) } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << device << endl; + cerr << "ERROR: TIA::load" << endl << " " << msg << endl; return false; } @@ -523,12 +519,7 @@ bool TIA::saveDisplay(Serializer& out) const } catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for TIA display" << endl; + cerr << "ERROR: TIA::saveDisplay" << endl << " " << msg << endl; return false; } @@ -557,14 +548,9 @@ bool TIA::loadDisplay(Serializer& in) myFrameGreyed = true; } } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for TIA display" << endl; + cerr << "ERROR: TIA::loadDisplay" << endl << " " << msg << endl; return false; } @@ -827,17 +813,13 @@ inline void TIA::updateFrameScanline(uInt32 clocksToUpdate, uInt32 hpos) // Handle all other possible combinations else { - // Update masks + // Update masks (M0 and M1 are done in updateFrame) myCurrentBLMask = &TIATables::BLMask[myPOSBL & 0x03] [(myCTRLPF & 0x30) >> 4][160 - (myPOSBL & 0xFC)]; myCurrentP0Mask = &TIATables::PxMask[myPOSP0 & 0x03] [mySuppressP0][myNUSIZ0 & 0x07][160 - (myPOSP0 & 0xFC)]; myCurrentP1Mask = &TIATables::PxMask[myPOSP1 & 0x03] [mySuppressP1][myNUSIZ1 & 0x07][160 - (myPOSP1 & 0xFC)]; - myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03] - [myNUSIZ0 & 0x07][(myNUSIZ0 & 0x30) >> 4][160 - (myPOSM0 & 0xFC)]; - myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03] - [myNUSIZ1 & 0x07][(myNUSIZ1 & 0x30) >> 4][160 - (myPOSM1 & 0xFC)]; switch(myEnabledObjects | myPlayfieldPriorityAndScore) { @@ -1463,9 +1445,54 @@ void TIA::updateFrame(Int32 clock) // Apply extra clocks for 'more motion required/mmr' if(myHMP0mmr) { myPOSP0 -= 17; posChanged = true; } if(myHMP1mmr) { myPOSP1 -= 17; posChanged = true; } - if(myHMM0mmr) { myPOSM0 -= 17; posChanged = true; } - if(myHMM1mmr) { myPOSM1 -= 17; posChanged = true; } if(myHMBLmmr) { myPOSBL -= 17; posChanged = true; } + + // TODO - 08-27-2009: Simulate the weird effects of Cosmic Ark and + // Stay Frosty. The movement itself is well understood, but there + // also seems to be some widening and blanking occurring as well. + // This doesn't properly emulate the effect, but it does give a + // fair approximation. More testing is required to figure out + // what's really going on here. + if(myHMM0mmr) + { + myPOSM0 -= 17; if(myPOSM0 < 0) { myPOSM0 += 160; } myPOSM0 %= 160; + if(myPOSM0 % 4 == 3) + { + // Stretch this missle so it's at least 2 pixels wide + myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03] + [myNUSIZ0 & 0x07][((myNUSIZ0 & 0x30) >> 4) | 0x01] + [160 - (myPOSM0 & 0xFC)]; + } + else + myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03] + [myNUSIZ0 & 0x07][(myNUSIZ0 & 0x30) >> 4][160 - (myPOSM0 & 0xFC)]; + } + else + { + if(myPOSM0 < 0) { myPOSM0 += 160; } myPOSM0 %= 160; + myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03] + [myNUSIZ0 & 0x07][(myNUSIZ0 & 0x30) >> 4][160 - (myPOSM0 & 0xFC)]; + } + if(myHMM1mmr) + { + myPOSM1 -= 17; if(myPOSM1 < 0) { myPOSM1 += 160; } myPOSM1 %= 160; + if(myPOSM1 % 4 == 3) + { + // Stretch this missle so it's at least 2 pixels wide + myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03] + [myNUSIZ1 & 0x07][((myNUSIZ1 & 0x30) >> 4) | 0x01] + [160 - (myPOSM1 & 0xFC)]; + } + else + myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03] + [myNUSIZ1 & 0x07][(myNUSIZ1 & 0x30) >> 4][160 - (myPOSM1 & 0xFC)]; + } + else + { + if(myPOSM1 < 0) { myPOSM1 += 160; } myPOSM1 %= 160; + myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03] + [myNUSIZ1 & 0x07][(myNUSIZ1 & 0x30) >> 4][160 - (myPOSM1 & 0xFC)]; + } #endif // Make sure positions are in range if(posChanged) @@ -1548,9 +1575,9 @@ void TIA::updateFrame(Int32 clock) // Yes, so set PF mask based on current CTRLPF reflection state myCurrentPFMask = TIATables::PFMask[myCTRLPF & 0x01]; - // TODO: These should be reset right after the first copy of the player - // has passed. However, for now we'll just reset at the end of the - // scanline since the other way would be to slow (01/21/99). + // TODO - 01-21-99: These should be reset right after the first copy + // of the player has passed. However, for now we'll just reset at the + // end of the scanline since the other way would be to slow. mySuppressP0 = mySuppressP1 = 0; } } diff --git a/src/emucore/m6502/src/M6502.cxx b/src/emucore/m6502/src/M6502.cxx index 0a5832e0d..a1c755f7f 100644 --- a/src/emucore/m6502/src/M6502.cxx +++ b/src/emucore/m6502/src/M6502.cxx @@ -362,14 +362,9 @@ bool M6502::save(Serializer& out) const out.putInt(myLastAddress); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << CPU << endl; + cerr << "ERROR: M6502::save" << endl << " " << msg << endl; return false; } @@ -408,14 +403,9 @@ bool M6502::load(Serializer& in) // Indicates the last address which was accessed myLastAddress = (uInt16) in.getInt(); } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << CPU << endl; + cerr << "ERROR: M6502::laod" << endl << " " << msg << endl; return false; } diff --git a/src/emucore/m6502/src/System.cxx b/src/emucore/m6502/src/System.cxx index aaf9e935b..57b51cc65 100644 --- a/src/emucore/m6502/src/System.cxx +++ b/src/emucore/m6502/src/System.cxx @@ -259,14 +259,9 @@ bool System::save(Serializer& out) const if(!myDevices[i]->save(out)) return false; } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in save state for " << device << endl; + cerr << "ERROR: System::save" << endl << " " << msg << endl; return false; } @@ -293,14 +288,9 @@ bool System::load(Serializer& in) if(!myDevices[i]->load(in)) return false; } - catch(char *msg) + catch(const char* msg) { - cerr << msg << endl; - return false; - } - catch(...) - { - cerr << "Unknown error in load state for " << device << endl; + cerr << "ERROR: System::load" << endl << " " << msg << endl; return false; }