o cleanup
This commit is contained in:
38
tools/bsnes/reader/jmareader.cpp
Executable file
38
tools/bsnes/reader/jmareader.cpp
Executable file
@@ -0,0 +1,38 @@
|
||||
#ifdef READER_CPP
|
||||
|
||||
#include "jmareader.hpp"
|
||||
#include "jma/jma.h"
|
||||
|
||||
unsigned JMAReader::size() {
|
||||
return filesize;
|
||||
}
|
||||
|
||||
uint8_t* JMAReader::read(unsigned length) {
|
||||
uint8_t *data = 0;
|
||||
if(!filesize) return 0;
|
||||
|
||||
if(length <= filesize) {
|
||||
//read the entire file into RAM
|
||||
data = new(zeromemory) uint8_t[filesize];
|
||||
JMAFile.extract_file(cname, data);
|
||||
} else if(length > filesize) {
|
||||
//read the entire file into RAM, pad the rest with 0x00s
|
||||
data = new(zeromemory) uint8_t[length];
|
||||
JMAFile.extract_file(cname, data);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
JMAReader::JMAReader(const char *fn) : JMAFile(fn), filesize(0) {
|
||||
std::vector<JMA::jma_public_file_info> file_info = JMAFile.get_files_info();
|
||||
for(std::vector<JMA::jma_public_file_info>::iterator i = file_info.begin(); i != file_info.end(); i++) {
|
||||
//Check for valid ROM based on size
|
||||
if((i->size <= 0x1000000 + 512) && (i->size > filesize)) {
|
||||
cname = i->name;
|
||||
filesize = i->size;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif //ifdef READER_CPP
|
||||
Reference in New Issue
Block a user