diff --git a/LICENSE b/LICENSE
index 6c21aa7..2ef16f2 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,9 +1,9 @@
MIT License
-Copyright (c) 2017-2022 Marc Robledo
+Copyright (c) 2017-2023 Marc Robledo
This project incorporates components from Octicons
-(https://github.com/primer/octicons/) Copyright (c) 2022 GitHub Inc.,
+(https://github.com/primer/octicons/) Copyright (c) 2023 GitHub Inc.,
also released under MIT license.
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/_cache_service_worker.js b/_cache_service_worker.js
index bc3ddc4..cf9e35c 100644
--- a/_cache_service_worker.js
+++ b/_cache_service_worker.js
@@ -14,7 +14,7 @@
*/
var PRECACHE_ID='rom-patcher-js';
-var PRECACHE_VERSION='v27';
+var PRECACHE_VERSION='v27b';
var PRECACHE_URLS=[
'/RomPatcher.js/','/RomPatcher.js/index.html',
'/RomPatcher.js/manifest.json',
diff --git a/index.html b/index.html
index dfc4ab9..a342ebe 100644
--- a/index.html
+++ b/index.html
@@ -179,7 +179,7 @@
- Rom Patcher JS v2.7 by Marc Robledo
+ Rom Patcher JS v2.7.1 by Marc Robledo
See on GitHub
Donate
diff --git a/js/MarcFile.js b/js/MarcFile.js
index f2e4e9a..ec86c08 100644
--- a/js/MarcFile.js
+++ b/js/MarcFile.js
@@ -1,4 +1,4 @@
-/* MODDED VERSION OF MarcFile.js v20181020 - Marc Robledo 2014-2018 - http://www.marcrobledo.com/license */
+/* MODDED VERSION OF MarcFile.js v20230202 - Marc Robledo 2014-2023 - http://www.marcrobledo.com/license */
function MarcFile(source, onLoad){
if(typeof source==='object' && source.files) /* get first file only if source is input with multiple files */
@@ -146,6 +146,13 @@ MarcFile.prototype.save=function(){
}
+MarcFile.prototype.getExtension=function(){
+ var ext=this.fileName? this.fileName.toLowerCase().match(/\.(\w+)$/) : '';
+
+ return ext? ext[1] : '';
+}
+
+
MarcFile.prototype.readU8=function(){
this._lastRead=this._u8array[this.offset];
diff --git a/js/RomPatcher.js b/js/RomPatcher.js
index 2d5fbf5..de5070c 100644
--- a/js/RomPatcher.js
+++ b/js/RomPatcher.js
@@ -1,4 +1,4 @@
-/* Rom Patcher JS v20221110 - Marc Robledo 2016-2022 - http://www.marcrobledo.com/license */
+/* Rom Patcher JS v20230202 - Marc Robledo 2016-2023 - http://www.marcrobledo.com/license */
const TOO_BIG_ROM_SIZE=67108863;
const HEADERS_INFO=[
@@ -141,7 +141,7 @@ function fetchPatch(customPatchIndex, compressedFileIndex){
patchFile=CUSTOM_PATCHER[customPatchIndex].fetchedFile=new MarcFile(arrayBuffer);
patchFile.fileName=customPatch.file.replace(/^.*[\/\\]/g,'');
- if(patchFile.readString(4).startsWith(ZIP_MAGIC))
+ if(patchFile.getExtension()==='zip' && patchFile.readString(4).startsWith(ZIP_MAGIC))
ZIPManager.parseFile(CUSTOM_PATCHER[customPatchIndex].fetchedFile, compressedFileIndex);
else
parseCustomPatch(CUSTOM_PATCHER[customPatchIndex]);
@@ -161,7 +161,7 @@ function fetchPatch(customPatchIndex, compressedFileIndex){
patchFile=CUSTOM_PATCHER[customPatchIndex].fetchedFile=new MarcFile(xhr.response);
patchFile.fileName=customPatch.file.replace(/^.*[\/\\]/g,'');
- if(patchFile.readString(4).startsWith(ZIP_MAGIC))
+ if(patchFile.getExtension()==='zip' && patchFile.readString(4).startsWith(ZIP_MAGIC))
ZIPManager.parseFile(CUSTOM_PATCHER[customPatchIndex].fetchedFile, compressedFileIndex);
else
parseCustomPatch(CUSTOM_PATCHER[customPatchIndex]);
@@ -184,7 +184,7 @@ function _parseROM(){
el('checkbox-addheader').checked=false;
el('checkbox-removeheader').checked=false;
- if(romFile.readString(4).startsWith(ZIP_MAGIC)){
+ if(romFile.getExtension()==='zip' && romFile.readString(4).startsWith(ZIP_MAGIC)){
ZIPManager.parseFile(romFile);
setTabApplyEnabled(false);
}else{
@@ -653,7 +653,7 @@ function _readPatchFile(){
patchFile.littleEndian=false;
var header=patchFile.readString(6);
- if(header.startsWith(ZIP_MAGIC)){
+ if(patchFile.getExtension()==='zip' && header.startsWith(ZIP_MAGIC)){
patch=false;
validateSource();
setTabApplyEnabled(false);