diff --git a/src/emucore/CartMVC.cxx b/src/emucore/CartMVC.cxx index 392233a47..ca72ac77e 100644 --- a/src/emucore/CartMVC.cxx +++ b/src/emucore/CartMVC.cxx @@ -666,7 +666,7 @@ class MovieCart writeROM(addr_title_loop + 0, 0x18); } - void writeColor(uInt16 address, uInt8 val); + void writeColor(uInt16 address); void writeAudioData(uInt16 address, uInt8 val) { writeROM(address, myVolumeScale[val]); } @@ -691,9 +691,6 @@ class MovieCart // data uInt8 myROM[1024]; - // full line of color - uInt8 myColor[10]; - // title screen state int myTitleCycles{0}; TitleState myTitleState{TitleState::Display}; @@ -778,8 +775,10 @@ bool MovieCart::init(const string& path) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void MovieCart::writeColor(uInt16 address, uInt8 v) +void MovieCart::writeColor(uInt16 address) { + uint8_t v = myStream.readColor(); + v = (v & 0xf0) | shiftBright[(v & 0x0f) + myBright]; if(myForceColor) @@ -996,11 +995,11 @@ void MovieCart::fill_addr_right_line() writeGraph(addr_set_gdata8 + 1); writeGraph(addr_set_gdata9 + 1); - writeColor(addr_set_gcol5 + 1, myColor[8]); // col 1/9 - writeColor(addr_set_gcol6 + 1, myColor[9]); // col 3/9 - writeColor(addr_set_gcol7 + 1, myColor[1]); // col 5/9 - writeColor(addr_set_gcol8 + 1, myColor[2]); // col 7/9 - writeColor(addr_set_gcol9 + 1, myColor[0]); // col 9/9 + writeColor(addr_set_gcol5 + 1); + writeColor(addr_set_gcol6 + 1); + writeColor(addr_set_gcol7 + 1); + writeColor(addr_set_gcol8 + 1); + writeColor(addr_set_gcol9 + 1); } @@ -1015,14 +1014,11 @@ void MovieCart::fill_addr_left_line(bool again) writeGraph(addr_set_gdata3 + 1); writeGraph(addr_set_gdata4 + 1); - for(int i = 0; i < 10; ++i) - myColor[i] = myStream.readColor(); - - writeColor(addr_set_gcol0 + 1, myColor[3]); // col 0/9 - writeColor(addr_set_gcol1 + 1, myColor[4]); // col 2/9 - writeColor(addr_set_gcol2 + 1, myColor[6]); // col 4/9 - writeColor(addr_set_gcol3 + 1, myColor[7]); // col 6/9 - writeColor(addr_set_gcol4 + 1, myColor[5]); // col 8/9 + writeColor(addr_set_gcol0 + 1); + writeColor(addr_set_gcol1 + 1); + writeColor(addr_set_gcol2 + 1); + writeColor(addr_set_gcol3 + 1); + writeColor(addr_set_gcol4 + 1); // addr_pick_line_end // jmp right_line diff --git a/test/roms/bankswitching/MVC/20centuryfox.bin b/test/roms/bankswitching/MVC/20centuryfox.bin new file mode 100755 index 000000000..820241b3f Binary files /dev/null and b/test/roms/bankswitching/MVC/20centuryfox.bin differ diff --git a/test/roms/bankswitching/MVC/output_cronkite.bin b/test/roms/bankswitching/MVC/cronkite.bin old mode 100644 new mode 100755 similarity index 70% rename from test/roms/bankswitching/MVC/output_cronkite.bin rename to test/roms/bankswitching/MVC/cronkite.bin index 318d39b2a..12ee99f30 Binary files a/test/roms/bankswitching/MVC/output_cronkite.bin and b/test/roms/bankswitching/MVC/cronkite.bin differ diff --git a/test/roms/bankswitching/MVC/dancer.bin b/test/roms/bankswitching/MVC/dancer.bin new file mode 100755 index 000000000..0df041e90 Binary files /dev/null and b/test/roms/bankswitching/MVC/dancer.bin differ diff --git a/test/roms/bankswitching/MVC/lion.bin b/test/roms/bankswitching/MVC/lion.bin new file mode 100755 index 000000000..5b17f6b55 Binary files /dev/null and b/test/roms/bankswitching/MVC/lion.bin differ diff --git a/test/roms/bankswitching/MVC/street.bin b/test/roms/bankswitching/MVC/street.bin new file mode 100755 index 000000000..c4354e3e1 Binary files /dev/null and b/test/roms/bankswitching/MVC/street.bin differ diff --git a/test/roms/bankswitching/MVC/testpattern.bin b/test/roms/bankswitching/MVC/testpattern.bin old mode 100644 new mode 100755 index 7c4385b09..00d3a65f1 Binary files a/test/roms/bankswitching/MVC/testpattern.bin and b/test/roms/bankswitching/MVC/testpattern.bin differ