Logging de datos de las roms. Cambio gbrom.cc->GBRom.cc
authorslack <slack@0666ae3d-8926-0410-aeff-ae84559ff337>
Sun, 19 Aug 2007 03:36:13 +0000 (03:36 +0000)
committerslack <slack@0666ae3d-8926-0410-aeff-ae84559ff337>
Sun, 19 Aug 2007 03:36:13 +0000 (03:36 +0000)
git-svn-id: http://slack.codemaniacs.com/wenboi@9 0666ae3d-8926-0410-aeff-ae84559ff337

GBRom.cc [new file with mode: 0644]
Makefile
gbrom.cc [deleted file]

diff --git a/GBRom.cc b/GBRom.cc
new file mode 100644 (file)
index 0000000..e7c3efd
--- /dev/null
+++ b/GBRom.cc
@@ -0,0 +1,70 @@
+#include "GBRom.h"
+#include "Logger.h"
+#include <fstream>
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <cstring>
+
+using std::ifstream;
+using std::ios;
+using std::cout;
+using std::endl;
+
+void log_rom_header(GBRom *rom, Logger::log_level level)
+{
+       std::ostringstream out;
+
+       out << std::hex << std::right << std::setfill('0');
+       out << "Entrypoint: 0x" << rom->header.entry_point << endl;
+       out << "New licensee code: 0x" << std::setw(2) << 
+               int(rom->header.new_licensee_code[0]) << std::setw(2) << 
+               int(rom->header.new_licensee_code[1]) << endl;
+
+       out << "SGB flag: " << int(rom->header.sgb_flag) << endl;
+       out << "Cartridge type: " << int(rom->header.cartridge_type) << endl;
+       out << std::dec;
+       out << "ROM size: " << (32 << int(rom->header.rom_size)) << "K" << endl;
+       out << "RAM size: " << int(rom->header.ram_size) << endl;
+       out << "Destination code: " << int(rom->header.destination_code) << endl;
+       out << "Old licensee code: " << int(rom->header.old_licensee_code) << endl;
+       out << "Mask ROM version number: " << int(rom->header.mask_rom_version_number) << endl;
+       out << std::hex;
+       out << "Header checksum: " << std::setw(2) << int(rom->header.header_checksum) << endl;
+       out << "Global checksum: " << std::setw(2) << 
+               int(rom->header.global_checksum[0]) << std::setw(2) <<  
+               int(rom->header.global_checksum[1]) << endl;
+
+       logger.log(level, out.str());
+}
+
+GBRom *read_gbrom(std::string filename)
+{
+       ifstream is;
+       is.open(filename.c_str(), ios::binary);
+
+       is.seekg(0,ios::end);
+       int length = is.tellg();
+       cout << "Loading " << filename << " (length=" << length << ")" << endl;
+       is.seekg(0,ios::beg);
+
+       void *buffer = ::operator new(length);
+       is.read((char*)buffer, length);
+       GBRom *rom = (GBRom*) buffer;
+
+       char buf[17];
+       std::memcpy(buf, rom->header.old_title, 16);
+       buf[16]=0;
+       
+       logger.info("Loaded "+std::string(buf));
+       log_rom_header(rom, Logger::DEBUG);
+
+       return rom;
+}
+
+#ifdef TEST_GBROM
+int main(int argc, char *argv[])
+{
+       GBRom *rom=read_gbrom(argv[1]);
+}
+#endif
index b442874620896c45176818334b0a22e6946b0451..c6e4bcd33a9574cb86b5c4127ed48cee19629b7d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 CXXFLAGS=-g -Wall -Weffc++ -Wstrict-null-sentinel -Wold-style-cast \
         -Woverloaded-virtual 
 
-all: gbcore.o MBC.o GBMemory.o Logger.o
+all: gbcore.o MBC.o GBMemory.o Logger.o GBRom.o
 
 tests: tests/test_gbrom
 
@@ -17,10 +17,10 @@ MBC.o: MBC.cc MBC.h Logger.h
 gbcore.o: gbcore.cc gbcore.h GBRom.h Logger.h MBC.h GBMemory.h
        g++ $(CXXFLAGS) -c -o $@ $<
                
-tests/test_gbrom: GBRom.cc GBRom.h
-       g++ -DTEST_GBROM -o $@ $<
+tests/test_gbrom: GBRom.cc GBRom.h Logger.o
+       g++ -DTEST_GBROM -o $@ GBRom.cc Logger.o 
 
 clean:
-       rm -f *.o tests/*
+       rm -f *.o tests/test_gbrom
 
 .PHONY: clean tests all
diff --git a/gbrom.cc b/gbrom.cc
deleted file mode 100644 (file)
index b43b750..0000000
--- a/gbrom.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-#include "gbrom.h"
-#include "logger.h"
-#include <fstream>
-#include <iostream>
-#include <sstream>
-#include <cstring>
-
-using std::ifstream;
-using std::ios;
-using std::cout;
-using std::endl;
-
-GBRom *read_gbrom(std::string filename)
-{
-       ifstream is;
-       is.open(filename.c_str(), ios::binary);
-
-       is.seekg(0,ios::end);
-       int length = is.tellg();
-       cout << "Loading " << filename << " (length=" << length << ")" << endl;
-       is.seekg(0,ios::beg);
-
-       void *buffer = ::operator new(length);
-       is.read((char*)buffer, length);
-       GBRom *rom = (GBRom*) buffer;
-
-       char buf[17];
-       std::memcpy(buf, rom->header.old_title, 16);
-       buf[16]=0;
-       
-       logger.info("Loaded "+std::string(buf));
-       log_rom_header(rom, Logger::DEBUG);
-
-       return rom;
-}
-
-void log_rom_header(GBRom *rom, Logger::log_level level)
-{
-       ostringstream out;
-
-       out.setf(std::ios::hex, std::ios::basefield);
-       out << "Entrypoint: " << rom->header.entry_point << endl;
-       out << "New licensee code: " << 
-               rom->neader.new_licensee_code[0] <<
-               rom->neader.new_licensee_code[1] << endl;
-
-       out << "SGB flag: " << rom->header.sgb_flag << endl;
-       out << "Cartridge type: " << rom->header.cartridge_type << endl;
-       out << "ROM size: " << (32 << rom->header.rom_size) << "K" << endl;
-       out << "RAM size: " << rom->header.ram_size << endl;
-       out << "Destination code: " << rom->header.destination_code << endl;
-       out << "Old licensee code: " << rom->header.old_licensee_code << endl;
-       out << "Mask ROM version number: " << rom->header.mask_rom_version_number << endl;
-       out << "Header checksum: " << rom->header.header_checksum << endl;
-       out << "Global checksum: " << 
-               rom->header.global_checksum[0] << 
-               rom->header.global_checksum[1] << endl;
-
-       logger.log(out.str(), level);
-}
-
-#ifdef TEST_GBROM
-int main(int argc, char *argv[])
-{
-       GBRom *rom=read_gbrom(argv[1]);
-}
-#endif