sifadil / pcsx2-playground

Automatically exported from code.google.com/p/pcsx2-playground
2 stars 0 forks source link

Shin Megami Tensei Nocturne no longer works - hangs at startup. #101

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
The problem exists both in r520 and in the latest revision. It doesn't
exist in somewhat older revisions. (most likely caused by r519?)

2) What steps will reproduce the problem?
1. boot SMT : nocturne

3) What is the expected output? What do you see instead?
game doesn't boot; black screen.
log says : dmaGetAddr: memLUT PFN warning
and then : # DMAC(15) Handler does not exist.

5) Please provide any additional information below.
After this happens, using escape and trying to load another game results in
a crash. ("Exception: write" in the log)

Original issue reported on code.google.com by Nne...@gmail.com on 31 Dec 2008 at 4:00

GoogleCodeExporter commented 8 years ago
This seems to be caused by the new cdvdWrite07() routine. If cdvdWrite07() do 
nothing
as the previous version, game works well.

Original comment by tmkkmac on 31 Dec 2008 at 4:22

GoogleCodeExporter commented 8 years ago
Hmm.. I wasn't sure what status values should be set to what for cdvd breaks.  
It
could be a number of things...

cdvd.Status = CDVD_STATUS_NONE;  <-- this?
cdvd.nCommand = 0;   <-- or this?

Try commenting one or both of those out and see if it fixes the problem.

Original comment by Jake.Stine on 1 Jan 2009 at 4:22

GoogleCodeExporter commented 8 years ago
I tried that but still doesn't work.

note: If I use dev build, simply pcsx2 crashes while booting. Nondev build shows
"vmhack" messages (by Memory.cpp line 434; mean exception?) instead of crashing.

Original comment by tmkkmac on 1 Jan 2009 at 4:56

GoogleCodeExporter commented 8 years ago
vmhacks are just a "weak" recovery of bad address reads/writes designed to help 
make
some games more playable for the avg user.  The read/write is skipped and the 
game is
allowed to continue execution.  It's always an indication of bugged emulation, 
but
it's not always critical to the game running. :)

That's interesting though.  I'll have to rethink the cdvd break implementation. 
 It
was working fine for the one test game I have here that uses it (Digital Devil 
Saga),
in that it cancelled reads correctly.  But it clearly needs more work.

Original comment by Jake.Stine on 1 Jan 2009 at 5:23

GoogleCodeExporter commented 8 years ago
At the time of all the breaks, cdvdAction is cdvdAction_None, so perhaps BREAK
doesn't need to do anything at all when there is no action to break?
Or is cdvdAction not a good indicator of what is happening?

Original comment by Nne...@gmail.com on 1 Jan 2009 at 10:01

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
currently cdvdAction is set to None for Reads, which are passed through a 
separate
handler.  So it could still be breaking reads.  A Status of 0xa indicates a 
"Seek
Complete" status, which is set when the Read action has finished seeking and 
started
reading the first block.

Original comment by Jake.Stine on 1 Jan 2009 at 10:34

GoogleCodeExporter commented 8 years ago
As for cdvdStatus (and psxRegs.interrupt) before the BREAKs - it is either
CDVD_STATUS_NONE (and psxRegs.interrupt is 0) or CDVD_STATUS_SEEK_COMPLETE (and
psxRegs.interrupt has IopEvt_CdvdRead enabled).
changing BREAK to do nothing in any one of these two cases seems to get the 
game to boot.

Original comment by Nne...@gmail.com on 1 Jan 2009 at 10:35

GoogleCodeExporter commented 8 years ago
I found a mostly-proper fix for this issue.  I'll have it up on SVN shortly. :)

Original comment by Jake.Stine on 1 Jan 2009 at 7:00

GoogleCodeExporter commented 8 years ago
Nice work, it's bootable now.

Original comment by tmkkmac on 2 Jan 2009 at 5:49

GoogleCodeExporter commented 8 years ago
Yay.  This and ICO apparently were fixed.  Still not sure if if cdvd break is
entirely correct, but it's behavior makes a reasonable amount of sense now, at 
least. ;)

Original comment by Jake.Stine on 2 Jan 2009 at 5:59