ericmckean / nulldc

Automatically exported from code.google.com/p/nulldc
0 stars 0 forks source link

Error '8 bit vram writes are not possible' prevents some games from working #353

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Spec Ops 2 and Omikron/Nomad Soul fail to work after their opening FMVs, with 
the message '8 bit vram writes are not possible' repeatedly logged.

More games are probably affected, these two were specifically chosen to test a 
fix for issue 278, so maybe related.

r131 tested, in the notes for issue 278 DimitrisV22 states that these games 
worked in r107, but not in r108.

Original issue reported on code.google.com by matbur...@gmail.com on 5 Jan 2011 at 4:55

GoogleCodeExporter commented 9 years ago
Also breaks Test Drive V-Rally.

Original comment by matbur...@gmail.com on 5 Jan 2011 at 10:13

GoogleCodeExporter commented 9 years ago
And Disney's Dinosaur too.

Original comment by Spino_eX...@yahoo.com on 9 Jan 2011 at 5:26

GoogleCodeExporter commented 9 years ago
Rainbow Cotton also has the same problem, all of these games used to work until 
recently.

Original comment by matbur...@gmail.com on 2 Feb 2011 at 7:38

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I've investigated this further, on pausing the log window just before the '8 
bit vram writes are not possible' message, this message is printed immediately 
before:

Error in dc\mem\sh4_area0.cpp:WriteBios:374 -> Write to [Boot ROM] is not 
possible, addr=2c,data=4018cbce,size=4

The example above is for Rainbow Cotton, which only has the above error after 
the FMV before the first level (ie. the game loads, intro + title screen + FMV 
before level 1 all work).

I've not been able to do a proper trace through of the code, but browsing it 
suggests that the above WriteBios function is only called when the emulation 
thread is in initialisation (dc.cpp, emu_thread_state = "EMU_INIT"). This seems 
a bit odd to be in this state when the game emulation is well underway, but 
then I don't understand how nulldc is working internally whereas others do :)

In related issue 278, Mr Psyman says:
"SPU DMA takes too long and such. Setting it too low will break some stuff, too 
high will break other stuff. Now, if there was a better DMA implementation and 
timing system it would all be alright."

r108 extended the time taken by SPU DMAs, inadvertently causing this issue. My 
query is what did this visibly improve, and are those improvements worthwhile 
compared to the regression of lots of games no longer working*, particularly if 
a proper fix can only be achieved by a reworking of the DMA implementation and 
timing system?

If there's no visible improvements then perhaps we should revert r108?

* I've only tested 10-20 games, there's potentially lots more not working 
rather than just those listed above.

Original comment by matbur...@gmail.com on 3 Feb 2011 at 12:47

GoogleCodeExporter commented 9 years ago
dave mirra bmx also affected after main fmv

Original comment by sjbell1...@gmail.com on 27 Oct 2011 at 10:17

GoogleCodeExporter commented 9 years ago
This is a sh4 bug, so?

Original comment by renatout...@gmail.com on 1 Nov 2011 at 3:15

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
In the meantime, I built a new .exe with the r108 changes reverted, which runs 
these games just fine.

Info and download link here:
http://www.ngemu.com/forums/showthread.php?s=71f18e60e94e62a98c582600616a345f&t=
151606

Original comment by matbur...@gmail.com on 2 Nov 2012 at 10:46

GoogleCodeExporter commented 9 years ago
Star wars racer too

Original comment by correo...@gmail.com on 19 Aug 2013 at 10:46

GoogleCodeExporter commented 9 years ago
#9: Would you mind reuploading this build again? The links seems to be dead.

Original comment by claud...@hausnetz.lettenbach.com on 11 May 2014 at 9:43

GoogleCodeExporter commented 9 years ago
found it, the link is now: 
http://ngemu.com/threads/nulldc-r141-improved-compatibility-version-available.15
1606/

Original comment by claud...@hausnetz.lettenbach.com on 11 May 2014 at 9:46