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);