Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08860 Timing Major Always May 3, 2024, 00:01 17 days ago
Tester danylopez123 View Status Public Platform MAME (Official Binary)
Assigned To windyfairy Resolution Fixed OS Windows 10/11 (64-bit)
Status [?] Resolved Driver
Version 0.265 Fixed in Version 0.266 Build 64-bit
Fixed in Git Commit 698b634 Github Pull Request # #12375
Summary 08860: All games in konamigq.c and (probably some in) konamigv.c: The loading parts are VERY slow
Description [I was planning on making a report of nagano98 but then after compiling mame with only the konamigq.cpp hardware to see Crypt Killer, i had to include both]

Due to the new change for the 2 konami hardwares with the "new SCSI" 53CF96 and drives, the games seems to load very slow, especially with Crypt Killer because it haves to load more, for konamigv.cpp probably there are games that loads somewhat fine but *maybe* with a slightly reduce loading speed, like The Simpsons Bowling where it took a bit longer to load the first sample (and yet it continues to fail to load any other like in a report i've posted before)

Also, for Nagano Winter Olympics '98/Hyper Olympic in Nagano, because it loads slower, when you pick an event and then wait for the instructions screen to load, it first shows missing/garbled sprites and then loads them properly.

I only tested this with Crypt Killer, Dead Eye, Hyper Athlete, Nagano Winter Olympics '98 and The Simpsons Bowling, i haven't tested this with the rest of the konamigv games but im pretty sure they should have the same longer loading problem.

EDIT: So after windyfairy's comment about editing scsi_dma_transfer, putting the value to 2 still feels somewhat slower compared to actual hardware from the video that windyfairy provided with, the closest i can get from that is by either putting the value to 0

Also, as for that comment about Crypt Killer having wrong balance with the sounds, that is already reported:
Steps To Reproduce
Additional Information
Github Commit
Regression Version 0.265
Affected Sets / Systems All games in konamigq.c and (probably some in) konamigv.c
Attached Files
There are no relationship linked to this issue.
User avatar
May 4, 2024, 15:55
edited on: May 4, 2024, 15:56
For reference, here's a video of a Crypt Killer PCB to show how long it should actually take to load. The current code is doing 10 nsec per timer adjust in scsi_dma_transfer but about 2 nsec looks closer to real hardware. I think a quick fix would be to just lower the adjust time in scsi_dma_transfer but I don't know how long the transfers should take for the hardware so I can't suggest a more accurate value.

@danylopez123 Since you're capable of compiling MAME from source and testing things out, would you mind changing the "from_nsec(10)" in scsi_dma_transfer to a lower value and see how that looks? It's the same for konamigv and konamigq.
User avatar
May 4, 2024, 21:15
edited on: May 4, 2024, 21:45
Sorry, I honestly didin't bother checking the files to see the codes so i can also edit them, where can i find that line in what files?
Also thanks for putting a video for reference.

Also, not in the report but after seeing that video, seems that theres a problem with the balance with the volumes because i can barely hear some voices unless i increase the volume of a certain part of the sound chip.
User avatar
May 5, 2024, 01:36
These lines specifically:
src/mame/konami/konamigv.cpp line 484:
src/mame/konami/konamigq.cpp line 316:

Audio balance issues are completely unrelated to the speed issues and would be another bug report.
User avatar
May 5, 2024, 16:20
It’s currently 10µs per byte (microseconds, not nanoseconds), giving 100kT/s, which is probably a bit slow. 10ns would be 100MT/s, which is definitely too fast for the PlayStation platform, and 2ns would be 500MT/s, which is off the scale.

Is there any documentation for how DMA timings are actually generated? The “nocash” documentation for the PlayStation DMA controller has proliferated pretty widely, but it isn’t very good. It only gives a basic functional overview. It doesn’t give any detail about timings at all.
User avatar
May 5, 2024, 22:29
edited on: May 9, 2024, 13:38
So i did compiled mame with the lines you pointed with the value you told me ( 2 ), it does makes the loadings faster, but unfortunately, Crypt Killer still loads somewhat slower compared to that reference video, the woman at the beginning took a while to load and then when the timer hit 0, she changed to her last animation frame.

EDIT: Instead of 2 i put the number to 0 and now is "Barely" close to actual hardware, i also tried with 0 but seems like it was the same as 1 so that's the closest i could get.

I dont know, i cant tell if theres a documentation for that, sorry.
User avatar
25 days ago
edited on: 24 days ago
So i've re-compiled MAME again after seeing:

- konamigq.cpp, konamigv.cpp and twinkle.cpp
  . Process SCSI DMA transfers instantaneously. Avoids issues described in MT08860 (Loading parts are VERY slow). Added TODO notes about implementing correct DMA timings.

Seems that the slow loadings are gone now, it also seems that Crypt Killer loads a bit faster compared to lukemorse1's PCB recording.
Not sure if this can be classified as fixed but it's your choice if you want to mark this as "Resolved".