From ed4d1a721753cfdfc4688c1c94dc22fe0b58fe67 Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Mon, 21 Dec 2020 00:36:08 +0300 Subject: [PATCH] Minor refactoring, unreachable code removed --- src/ines.cpp | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/src/ines.cpp b/src/ines.cpp index 9860b24c..1adf2c12 100644 --- a/src/ines.cpp +++ b/src/ines.cpp @@ -906,9 +906,6 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode) { case 2: FCEU_PrintError("Unable to allocate CHR-RAM."); break; - case 3: - FCEU_PrintError("CHR-RAM size < 1k is not supported."); - break; } if (ROM) free(ROM); if (VROM) free(VROM); @@ -1023,7 +1020,8 @@ static int iNES_Init(int num) { while (tmp->init) { if (num == tmp->number) { - UNIFchrrama = 0; // need here for compatibility with UNIF mapper code + // is this code used by the UNIF loader in any way? + UNIFchrrama = NULL; // need here for compatibility with UNIF mapper code if (!VROM_size) { if(!iNESCart.ines2) { @@ -1038,37 +1036,25 @@ static int iNES_Init(int num) { default: CHRRAMSize = 8 * 1024; break; } iNESCart.vram_size = CHRRAMSize; - if (CHRRAMSize < 1024) return 3; // unsupported size, VPage only goes down to 1k banks, NES program can corrupt memory if used - if ((VROM = (uint8*)FCEU_dmalloc(CHRRAMSize)) == NULL) return 2; - FCEU_MemoryRand(VROM, CHRRAMSize); } else { CHRRAMSize = iNESCart.battery_vram_size + iNESCart.vram_size; - if (CHRRAMSize > 0) - { - if ((VROM = (uint8*)FCEU_dmalloc(CHRRAMSize)) == NULL) return 2; - } - else { - // mapper 256 (OneBus) has not CHR-RAM _and_ has not CHR-ROM region in iNES file - // so zero-sized CHR should be supported at least for this mapper - VROM = NULL; - } } - - UNIFchrrama = VROM; - if(CHRRAMSize == 0) - { - //probably a mistake. - //but (for chrram): "Use of $00 with no CHR ROM implies that the game is wired to map nametable memory in CHR space. The value $00 MUST NOT be used if a mapper isn't defined to allow this. " - //well, i'm not going to do that now. we'll save it for when it's needed - //"it's only mapper 218 and no other mappers" - } - else + if (CHRRAMSize > 0) { + // again. seems like this code never executed for UNIF files + // so why we need to set UNIFchrrama here? + if ((UNIFchrrama = VROM = (uint8*)FCEU_dmalloc(CHRRAMSize)) == NULL) return 2; + FCEU_MemoryRand(VROM, CHRRAMSize); SetupCartCHRMapping(0, VROM, CHRRAMSize, 1); AddExState(VROM, CHRRAMSize, 0, "CHRR"); } + else { + // mapper 256 (OneBus) has not CHR-RAM _and_ has not CHR-ROM region in iNES file + // so zero-sized CHR should be supported at least for this mapper + VROM = NULL; + } } if (head.ROM_type & 8) AddExState(ExtraNTARAM, 2048, 0, "EXNR");