faulks78 / genplus-gx

Automatically exported from code.google.com/p/genplus-gx
Other
0 stars 0 forks source link

Can't get past second morgue scene in The Space Adventure Cobra #302

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Find Tarbeige in Hebda City
2. Enter the morgue
3. Choose the correct coffin.

What is the expected output? What do you see instead?
The empty coffin opens and the game hangs... which shouldn't happen.

Load the savestate, then:
    Look -> Area
    Look -> Froggy
    Think
    Think
    Open -> Third coffin from left

What version of the emulator are you using (official, SVN revision,...)?
Using revision 734 from the SVN. Happens (at least) with US BIOS 1.00, 1.10, 
2.00.

Original issue reported on code.google.com by icedoma...@gmail.com on 1 Nov 2012 at 4:22

Attachments:

GoogleCodeExporter commented 9 years ago
please upload internal game save instead (scd.brm) if possible

Original comment by ekeeke31@gmail.com on 1 Nov 2012 at 6:13

GoogleCodeExporter commented 9 years ago
Sure, here it is.

Original comment by iceknigh...@gmail.com on 1 Nov 2012 at 6:31

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by ekeeke31@gmail.com on 6 Nov 2012 at 6:52

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Well, that was an easy one: this game, like a few others I already knew, 
require some delay between the time a PLAY command is being sent by the game 
and the CD drive actually reaching its destination. I simply needed to increase 
the currently used delay values.

Fixed in r735

Original comment by ekeeke31@gmail.com on 6 Nov 2012 at 8:07

GoogleCodeExporter commented 9 years ago
That's great news, thanks for fixing it!

Just curious, is it calculating the delay based on the position that's being 
read and the destination?

If it's currently a fixed delay and you need help making it accurate, perhaps 
somebody could write a simple Mega-CD program that shows the elapsed time 
between specific positions, so we could post the results that could be used as 
a guide to actually calculate it.

Original comment by iceknigh...@gmail.com on 6 Nov 2012 at 11:47

GoogleCodeExporter commented 9 years ago
Well, even if there was someone writing a test program (which is very unlikely 
considering i don't know anyone else actually working on Mega CD emulation), it 
would probably not be so simple as the drive access time is not really 
consistent and depends on many other factors than only the moving distance.

The fixed value represents the minimal time required to "initiates" the 
mechanism when it is paused or stopped (it should be larger when the disc is 
not spinning but games only need the delay when coming out of pause). It is 
currently set to 13 x 75hz interrupts, which makes 173ms ( approx. 10 lines).

I only add the seek time (factor of the difference between current CD block and 
seeked CD block) when playing an audio track, since some games take the delay 
in account to synchronize with music played from the end of the disc. For data 
track, it only increases loading time when the game has a very large data track 
and access the last blocks, fixed minimal delay seem to be enough, it just 
needs to be adjusted for the few games relying on this.

Original comment by ekeeke31@gmail.com on 7 Nov 2012 at 8:37