Page 1 of 1

Star Wars Trilogy Arcade running in slow motion

PostPosted: Tue Dec 25, 2018 2:51 am
by belegdol
Hello,
Star Wars Trilogy Arcade is running in slow motion for me despite the emulator showing 60 fps. According to the information I was able to gather this issue should be affecting only one of the revisions but for me it appears to affect both swtrilgy and swtrilgya. Error.log when running swtrilgy:
Code: Select all
Supermodel v0.3a-WIP Error Log
------------------------------

Started as:
  argv[0] = ./bin/supermodel
  argv[1] = -quad-rendering
  argv[2] = -show-fps
  argv[3] = /home/julas/data/mame/roms/swtrilgy.zip

Opened /home/julas/data/mame/roms/swtrilgy.zip.
swtrilgy:
  banked_crom: stride=8, chunk size=2, byte swap=1
    mpr-21342.04, crc32=0x339525ce, offset=0x00000000
    mpr-21341.03, crc32=0xb2a269e4, offset=0x00000002
    mpr-21340.02, crc32=0xad36040e, offset=0x00000004
    mpr-21339.01, crc32=0xc0ce5037, offset=0x00000006
    mpr-21346.08, crc32=0xc8733594, offset=0x01000000
    mpr-21345.07, crc32=0x6c183a21, offset=0x01000002
    mpr-21344.06, crc32=0x87453d76, offset=0x01000004
    mpr-21343.05, crc32=0x12552d07, offset=0x01000006
    mpr-21350.12, crc32=0x486195e7, offset=0x02000000
    mpr-21349.11, crc32=0x3d39454b, offset=0x02000002
    mpr-21348.10, crc32=0x1f7cc5f5, offset=0x02000004
    mpr-21347.09, crc32=0xecb6b934, offset=0x02000006
  crom: stride=8, chunk size=2, byte swap=1
    epr-21382a.20, crc32=0x69baf117, offset=0x00000000
    epr-21381a.19, crc32=0x2dd34e28, offset=0x00000002
    epr-21380a.18, crc32=0x780fb4e7, offset=0x00000004
    epr-21379a.17, crc32=0x24dc1555, offset=0x00000006
  mpeg_music: stride=1, chunk size=1, byte swap=0
    mpr-21375.18, crc32=0x735157a9, offset=0x00000000
    mpr-21376.20, crc32=0xe635f81e, offset=0x00400000
    mpr-21377.22, crc32=0x720621f8, offset=0x00800000
    mpr-21378.24, crc32=0x1fcf715e, offset=0x00c00000
  mpeg_program: stride=1, chunk size=1, byte swap=1
    epr-21384.2, crc32=0x12fa4780, offset=0x00000000
  sound_program: stride=1, chunk size=1, byte swap=1
    epr-21383.21, crc32=0x544d1e28, offset=0x00000000
  sound_samples: stride=1, chunk size=1, byte swap=1
    mpr-21355.22, crc32=0xc1b2d326, offset=0x00000000
    mpr-21357.24, crc32=0x02703fab, offset=0x00400000
  vrom: stride=32, chunk size=2, byte swap=0
    mpr-21359.26, crc32=0x34ef4122, offset=0x00000000
    mpr-21360.27, crc32=0x2882b95e, offset=0x00000002
    mpr-21361.28, crc32=0x9b61c3c1, offset=0x00000004
    mpr-21362.29, crc32=0x01a92169, offset=0x00000006
    mpr-21363.30, crc32=0xe7d18fed, offset=0x00000008
    mpr-21364.31, crc32=0xcb6a5468, offset=0x0000000a
    mpr-21365.32, crc32=0xad5449d8, offset=0x0000000c
    mpr-21366.33, crc32=0xdefb6b95, offset=0x0000000e
    mpr-21367.34, crc32=0xdfd51029, offset=0x00000010
    mpr-21368.35, crc32=0xae90fd21, offset=0x00000012
    mpr-21369.36, crc32=0xbf17eeb4, offset=0x00000014
    mpr-21370.37, crc32=0x2321592a, offset=0x00000016
    mpr-21371.38, crc32=0xa68782fd, offset=0x00000018
    mpr-21372.39, crc32=0xfc3f4e8b, offset=0x0000001a
    mpr-21373.40, crc32=0xb76ad261, offset=0x0000001c
    mpr-21374.41, crc32=0xae6c4d28, offset=0x0000001e

And when running swtrilgya:
Code: Select all
Supermodel v0.3a-WIP Error Log
------------------------------

Started as:
  argv[0] = ./bin/supermodel
  argv[1] = -quad-rendering
  argv[2] = -show-fps
  argv[3] = /home/julas/data/mame/roms/swtrilgya.zip

Opened /home/julas/data/mame/roms/swtrilgya.zip.
Opened /home/julas/data/mame/roms/swtrilgy.zip.
swtrilgya:
  banked_crom: stride=8, chunk size=2, byte swap=1
    mpr-21342.04, crc32=0x339525ce, offset=0x00000000
    mpr-21341.03, crc32=0xb2a269e4, offset=0x00000002
    mpr-21340.02, crc32=0xad36040e, offset=0x00000004
    mpr-21339.01, crc32=0xc0ce5037, offset=0x00000006
    mpr-21346.08, crc32=0xc8733594, offset=0x01000000
    mpr-21345.07, crc32=0x6c183a21, offset=0x01000002
    mpr-21344.06, crc32=0x87453d76, offset=0x01000004
    mpr-21343.05, crc32=0x12552d07, offset=0x01000006
    mpr-21350.12, crc32=0x486195e7, offset=0x02000000
    mpr-21349.11, crc32=0x3d39454b, offset=0x02000002
    mpr-21348.10, crc32=0x1f7cc5f5, offset=0x02000004
    mpr-21347.09, crc32=0xecb6b934, offset=0x02000006
  crom: stride=8, chunk size=2, byte swap=1
    epr-21382.20, crc32=0x0b9c44a0, offset=0x00000000
    epr-21381.19, crc32=0xbb5757bf, offset=0x00000002
    epr-21380.18, crc32=0x49b182f2, offset=0x00000004
    epr-21379.17, crc32=0x61ad51d9, offset=0x00000006
  mpeg_music: stride=1, chunk size=1, byte swap=0
    mpr-21375.18, crc32=0x735157a9, offset=0x00000000
    mpr-21376.20, crc32=0xe635f81e, offset=0x00400000
    mpr-21377.22, crc32=0x720621f8, offset=0x00800000
    mpr-21378.24, crc32=0x1fcf715e, offset=0x00c00000
  mpeg_program: stride=1, chunk size=1, byte swap=1
    epr-21384.2, crc32=0x12fa4780, offset=0x00000000
  sound_program: stride=1, chunk size=1, byte swap=1
    epr-21383.21, crc32=0x544d1e28, offset=0x00000000
  sound_samples: stride=1, chunk size=1, byte swap=1
    mpr-21355.22, crc32=0xc1b2d326, offset=0x00000000
    mpr-21357.24, crc32=0x02703fab, offset=0x00400000
  vrom: stride=32, chunk size=2, byte swap=0
    mpr-21359.26, crc32=0x34ef4122, offset=0x00000000
    mpr-21360.27, crc32=0x2882b95e, offset=0x00000002
    mpr-21361.28, crc32=0x9b61c3c1, offset=0x00000004
    mpr-21362.29, crc32=0x01a92169, offset=0x00000006
    mpr-21363.30, crc32=0xe7d18fed, offset=0x00000008
    mpr-21364.31, crc32=0xcb6a5468, offset=0x0000000a
    mpr-21365.32, crc32=0xad5449d8, offset=0x0000000c
    mpr-21366.33, crc32=0xdefb6b95, offset=0x0000000e
    mpr-21367.34, crc32=0xdfd51029, offset=0x00000010
    mpr-21368.35, crc32=0xae90fd21, offset=0x00000012
    mpr-21369.36, crc32=0xbf17eeb4, offset=0x00000014
    mpr-21370.37, crc32=0x2321592a, offset=0x00000016
    mpr-21371.38, crc32=0xa68782fd, offset=0x00000018
    mpr-21372.39, crc32=0xfc3f4e8b, offset=0x0000001a
    mpr-21373.40, crc32=0xb76ad261, offset=0x0000001c
    mpr-21374.41, crc32=0xae6c4d28, offset=0x0000001e

Both revisions display "Wait setup this feedback lever" upon startup. It takes about 45 seconds from when the crosshair appears at start of the Yavin stage until the "You've got one on your tail" moment, whereas it should be taking about 25 according to youtube captures:
https://youtu.be/c5o4np50Blo?t=80.
This is with self-compiled SVN 759 on Fedora 29 x86_64 and Ryzen 5 2600 CPU, as well as on another Fedora 29 x86_64 system with i7-2720QM CPU. Let me know if I can provide any further information.

Re: Star Wars Trilogy Arcade running in slow motion

PostPosted: Wed Dec 26, 2018 6:40 pm
by Bart
Thanks for posting this. I just tried it myself and indeed, it is running at half-speed. I'm not sure why. Either we changed something with the frame timing code that broke Star Wars or a necessary patch was removed from Games.xml. I'll try to investigate to find which SVN commit broke it...

Re: Star Wars Trilogy Arcade running in slow motion

PostPosted: Wed Dec 26, 2018 6:48 pm
by Bart
Found the problem. I had removed a bunch of ROM patches because I noticed the game appeared to boot and run just fine. I didn't realize that they affected the game's speed. This is also why only one ROM set ever ran at full speed -- the equivalent patches never existed for the other game revisions. Until we commit these to the code base, you can edit Config/Games.xml yourself, find the "swtrilgy" section, and replace the current patches (there should just be a single one) with:

Code: Select all
      <patches>
        <patch region="crom" bits="32" offset="0xf0e48" value="0x60000000" />
        <patch region="crom" bits="32" offset="0x043dc" value="0x48000090" /> <!-- related to joystick feedback -->
        <patch region="crom" bits="32" offset="0x029a0" value="0x60000000" /> <!-- skip force feedback setup? -->
        <patch region="crom" bits="32" offset="0x02a0c" value="0x60000000" />
        <!-- Additional patches from MAME for test menu -->
        <patch region="crom" bits="32" offset="0xf776c" value="0x60000000" /> <!-- unemulated JTAG stuff -->
        <patch region="crom" bits="32" offset="0xf7770" value="0x60000000" /> <!-- "" -->
        <patch region="crom" bits="32" offset="0xf7774" value="0x60000000" /> <!-- "" -->
      </patches>

Re: Star Wars Trilogy Arcade running in slow motion

PostPosted: Fri Dec 28, 2018 1:46 pm
by belegdol
Thank you, editing games.xml as per your instructions fixed the slow motion issue :) Happy new year!