From 9ce4b081e35861e86fcf06d7767a7cc413fbe7ca Mon Sep 17 00:00:00 2001 From: mjbudd77 Date: Mon, 14 Mar 2022 07:28:40 -0400 Subject: [PATCH] Fix for Qt iNES header editor mapper index. Account for mapper array not being continuously sequential. For issue #480. --- src/drivers/Qt/iNesHeaderEditor.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/drivers/Qt/iNesHeaderEditor.cpp b/src/drivers/Qt/iNesHeaderEditor.cpp index 124faa44..9342a002 100644 --- a/src/drivers/Qt/iNesHeaderEditor.cpp +++ b/src/drivers/Qt/iNesHeaderEditor.cpp @@ -240,7 +240,7 @@ iNesHeaderEditor_t::iNesHeaderEditor_t(QWidget *parent) { sprintf(stmp, "%d %s", bmap[i].number, bmap[i].name); - mapperComboBox->addItem( tr(stmp), i ); + mapperComboBox->addItem( tr(stmp), bmap[i].number ); } hdrLayout->addLayout( hbox1 ); @@ -904,7 +904,21 @@ void iNesHeaderEditor_t::setHeaderData(iNES_HEADER* header) { mapper |= (header->ROM_type3 & 0x0F) << 8; } - mapperComboBox->setCurrentIndex( mapper ); + for (i=0; icount(); i++) + { + if ( mapperComboBox->itemData(i).toInt() > mapper ) + { + sprintf( buf, "%i Unknown/unsupported", i); + mapperComboBox->insertItem( i, tr(buf), mapper); + mapperComboBox->setCurrentIndex(i); + break; + } + else if ( mapperComboBox->itemData(i).toInt() == mapper ) + { + mapperComboBox->setCurrentIndex(i); + break; + } + } // Sub Mapper sprintf(buf, "%d", ines20 ? header->ROM_type3 >> 4 : 0);