Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
03373 Misc. Major Have not tried Aug 4, 2009, 02:29 Aug 9, 2009, 10:45
Tester Luigi30 View Status Public Platform MAME (Self-compiled)
Assigned To robiza Resolution Fixed OS Windows XP/Vista/7 32-bit
Status [?] Resolved Driver
Version 0.133u1 Fixed in Version 0.133u2 Build Normal
Fixed in Git Commit Github Pull Request #
Summary 03373: looping: Unmapped I/O read/writes result in large error log and major performance drop
Description looping has a problem with unmapped I/O memory, causing it to generate hundreds of megabytes of errors every minute of operation. It also has major slowdown.
Steps To Reproduce
Additional Information (no context): unmapped I/O memory byte write to 00000102 = 00
(no context): unmapped I/O memory byte write to 00000101 = 00
(no context): unmapped I/O memory byte write to 00000107 = 00
(no context): unmapped I/O memory byte write to 00000106 = 01
(no context): unmapped I/O memory byte read from 00000107
(no context): unmapped I/O memory byte read from 00000105

etc etc etc.
Github Commit
Flags
Regression Version 0.124u1
Affected Sets / Systems looping
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
7
User avatar
No.04772
hap
Developer
Aug 5, 2009, 17:33
fixed
User avatar
No.04777
Tafoid
Administrator
Aug 7, 2009, 01:27
There has been some discussion on the list about this and bugs like this.. the method sent to give a landing place for the unmapped writes is a nice stop gap, but not really a fix. If such fixes are done in the future, it would be best to full comment that such NOP'ing of code is a temporary measure. There is some work being done on this particular driver right now to better address unmapped I/O issues. As a result, I'm assigning to Robiza (he was working on it some) and he'll decide where to go with it.

In reality, you want all those messages coming out in a -LOG run. There are bound to be a many games or drivers which will have unknown writes and will fill up a log file quickly and slowing down emulation as a result. In the future, we will likely not be accepting bugs of this nature unless they directly result in a noticeable bug in the emulation. Lack of speed, by itself, is not a bug. If you use -LOG, you accept the fact that emulation might be beyond slow.
User avatar
No.04779
Luigi30
Tester
Aug 7, 2009, 03:10
edited on: Aug 7, 2009, 03:10
I had -log on in my mame.ini and didn't notice. It works fine without -log. It's been there so long I thought it was default behavior.
User avatar
No.04780
robiza
Developer
Aug 7, 2009, 07:16
for the real solution i think it's necessary a redump

info in the driver:

To Do:
- redump COP420 internal ROM

ROM_REGION( 0x1000, "mcu", 0 ) /* COP420 microcontroller code */
ROM_LOAD( "cop.bin", 0x0000, 0x1000, BAD_DUMP CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0
User avatar
No.04784
robiza
Developer
Aug 8, 2009, 08:00
a COP420 have only 0x400 bytes; maybe it's not a bad dump
User avatar
No.04787
robiza
Developer
Aug 8, 2009, 22:52
edited on: Aug 8, 2009, 22:56
i think the dump is ok and the start PC is 0
yet the rom is 0xc2 bytes shifted

ROM_LOAD( "cop.bin", 0x00c2, 0x033e, CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0
ROM_CONTINUE( 0x0000, 0x00c2)
ROM_CONTINUE( 0x00c2, 0x033e)
ROM_CONTINUE( 0x0000, 0x00c2)
ROM_CONTINUE( 0x00c2, 0x033e)
ROM_CONTINUE( 0x0000, 0x00c2)
ROM_CONTINUE( 0x00c2, 0x033e)
ROM_CONTINUE( 0x0000, 0x00c2)
User avatar
No.04788
robiza
Developer
Aug 9, 2009, 06:51
edited on: Aug 9, 2009, 10:21
i think the bug is in the cop420 core
with every opcodes we get a input/ouput access

thanks to Curt:
serial SIO port which is read/written on every cycle