- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
06001 | Crash/Freeze | Minor | Always | Jul 28, 2015, 02:44 | Dec 5, 2022, 05:26 |
Tester | rainwarrior | View Status | Public | Platform | |
Assigned To | rainwarrior | Resolution | Fixed | OS | Windows Vista/7/8 (64-bit) |
Status [?] | Resolved | Driver | |||
Version | 0.163 | Fixed in Version | 0.201 | Build | |
Fixed in Git Commit | Github Pull Request # | ||||
Summary | 06001: nes: iNES Mapper 31 crashes with ROM size other than 1MB | ||||
Description |
The mapper 31 implementation will crash if the ROM size is not 1MB. 512k test ROM: https://dl.dropboxusercontent.com/u/883356/pico.nes 1MB test ROM: http://rainwarrior.ca/projects/nes/2a03puritans.nes For 512k, the high bit of the 8-bit bank selectors should be irrelevant. Banks 0x7F and 0xFF should select the same bank. 256k and smaller ROMs using this mapper may eventually appear (always a power of 2). I can produce test ROMs of any desired size if necessary. The relevant file is: mame/src/emu/bus/nes/2a03pur.c Suggested implementation: 1. Add a bitwise AND mask to the register writes. Line 101: m_reg[offset & 7] = data & mask; 2. Set the appropriate bits for mask during device_start() function based on ROM size at load time. |
||||
Steps To Reproduce |
1. Open 512k test ROM (pico.nes) 2. Observe immediate crash due to out of bounds memory access. (After making change, should also verify that 1MB test rom, 2a03puritans.nes still works.) |
||||
Additional Information | |||||
Github Commit | |||||
Flags | |||||
Regression Version | |||||
Affected Sets / Systems | nes | ||||
Attached Files
|
|||||
Relationships
There are no relationship linked to this issue. |
Notes
4
No.11902
rainwarrior Tester
Jul 28, 2015, 02:47
|
If needed, a specification of the mapper is available at: http://wiki.nesdev.com/w/index.php/INES_Mapper_031 |
---|---|
No.11921
Tafoid Administrator
Jul 31, 2015, 15:42
|
Confirmed using linked test roms. |
No.11942
rainwarrior Tester
Aug 5, 2015, 19:36
|
I've created test ROMs for all possible sizes: http://rainwarrior.ca/projects/nes/31_test_16.nes http://rainwarrior.ca/projects/nes/31_test_32.nes http://rainwarrior.ca/projects/nes/31_test_64.nes http://rainwarrior.ca/projects/nes/31_test_128.nes http://rainwarrior.ca/projects/nes/31_test_256.nes http://rainwarrior.ca/projects/nes/31_test_512.nes http://rainwarrior.ca/projects/nes/31_test_1024.nes |
No.15342
Osso Moderator
Aug 24, 2018, 12:30
|
Fixed by Brad Smith (rainwarrior): https://github.com/mamedev/mame/commit/af9a224f5906cbfbf253612f7f05b5740154bfac |