Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Biofreak dosen't work on PS3 #883

Open
crystalct opened this issue Sep 14, 2020 · 130 comments
Open

Biofreak dosen't work on PS3 #883

crystalct opened this issue Sep 14, 2020 · 130 comments
Labels
bug Something isn't working

Comments

@crystalct
Copy link

It works on x86.
Is mame2003-plus-libretro Big/Little endian issues free?

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 14, 2020

Plus handles little / big endian accordingly as far as I know. It checks for it anyhow throughout the libretro-common / libretro-deps. Issue free? Hard to say. Emulation is never without it's issues.

When you say it doesn't work. How so? Doesn't load at all? Crashes, freezes, glitches?

@crystalct
Copy link
Author

image

image

Then only 2 pixel visible...
image

It's seems classic Big Endian issue.....

@crystalct
Copy link
Author

I will test all CHDs games on PS3.
Area51 family works fine.

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 14, 2020

It also looks like you're running on an older version of plus. You should update from source before testing further. We fixed some bugs since the commit your using. But probably unrelated to this issue.

@crystalct
Copy link
Author

Last official plus SELF file is 15 August 2020 old.... let me compile last commit...

@crystalct
Copy link
Author

Meanwhile i tested Blitz on x86 ... it stop here:
image

RetroArch x86 is updated:
image

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 14, 2020

Typically I wouldnt mention to update unless it was specific to the issue. But one of the updates was to dcs which is used by many midway games such as biofreak. Probably won't fix anything but it's good to test the current build.

@crystalct
Copy link
Author

image
image
image
image

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 14, 2020

Screenshot_20200914-062758_1

It's set as big endian

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 14, 2020

Looks like you got further in biofreak this time? I wonder if it has anything to do with the CMOS errors.

@crystalct
Copy link
Author

Other infos:
Beatmania family works fine.
Biofreak, calspeed and carnevil same issues at start.
cryptklr stop here:
image
All, except blitz, work fine on x86 (used same files, of course).

@crystalct
Copy link
Author

Screenshot_20200914-062758_1

It's set as big endian

Maybe in some drivers was forgotten to consider big endian machines.....
Maybe @vaguerant is able to read this comment.... let's try.
@vaguerant could you try to test this/those games on WiiU?

@mahoneyt944
Copy link
Collaborator

Well these are all Seattle driver games so that's where we need to look first I'd say.

@vaguerant
Copy link

vaguerant commented Sep 14, 2020

Hey folks, just checking in thanks to @crystalct, but I'm not going to be much help based on my progress so far.

I tried loading up biofreak.zip (with biofreak.chd) on RetroArch for Wii U, another big-endian PPC platform, but it failed with the following in the log:

[libretro INFO] [MAME 2003+] Opening ROM file: sound102.u95
[libretro INFO] [MAME 2003+] Opening ROM file: biofreak.u32
[libretro INFO] [MAME 2003+] Opening disk image: biofreak.chd
[libretro INFO] [MAME 2003+] Opening differencing image: biofreak.dif
[libretro INFO] [MAME 2003+] Creating differencing image: biofreak.dif
[libretro ERROR] [MAME 2003+] biofreak.dif: CAN'T CREATE DIFF FILE
[INFO] [Environ]: SET_MESSAGE: Required files are missing, the game cannot be run.

I don't really have any experience with these games at all, so I'm not sure exactly what I'm doing wrong. It's possible my problem is related to directory creation--there was previously an issue in the FBNeo core where directory creation was nonworking on Wii U, so I had to create a certain directory manually and then everything worked fine.

If that's the issue, then it might be resolved if I can create the directory that biofreak.dif is expected to be written to. Can anybody advise as to where that would be, or any other issues they see in what I'm doing?

In the meantime, I'll see if I can manage any more success with blitz.

EDIT: Same behavior with blitz:

[libretro INFO] [MAME 2003+] Opening ROM file: sound102.u95
[libretro INFO] [MAME 2003+] Opening ROM file: blitz1_2.u32
[libretro INFO] [MAME 2003+] Opening disk image: blitz.chd
[libretro INFO] [MAME 2003+] Opening differencing image: blitz.dif
[libretro INFO] [MAME 2003+] Creating differencing image: blitz.dif
[libretro ERROR] [MAME 2003+] blitz.dif   : CAN'T CREATE DIFF FILE
[INFO] [Environ]: SET_MESSAGE: Required files are missing, the game cannot be run.

@crystalct
Copy link
Author

crystalct commented Sep 14, 2020

@vaguerant, dont worry, the problem is the right chd. I had same problem.
For right and working CHDs (v3 CHDs) search inside Youtube (not google) "mame2003" and go to "ROMSET COMPLETO - MAME 0.78 (2003)" from Azvarel RetroGamer channel (not mame 2003 plus cause CHDs not working).
Follow link to his site and there are links to google drive for CHDs.
Passowrd is in the youtube page and it is: azvarelmame
Eventually, drivers zips can be downloaded from archive.org (search "MAME 2003-Plus Reference: Full Non-Merged Romsets")

@vaguerant
Copy link

OK, I reobtained the biofreak and blitz CHDs from the links you suggested, which took forever since the downloads were provided as a split RAR fullset, but the result was 100% identical to the issues I had with my original files. Are you absolutely sure this was the same issue you had? The errors being reported in the RetroArch log don't say anything about the CHD files, they relate to the creation of DIF files.

@crystalct
Copy link
Author

crystalct commented Sep 14, 2020

Retroarch must write diff file, of course. So... in my x86 installation it writes here: C:\RetroArch\saves\mame2003-plus\diff

On Ps3:
/dev_hdd0/game/SSNE10000/USRDIR/cores/savefiles/mame2003-plus/diff

From my experience on PS3 about Retroarch, to keep directories configuration to <Default> was always a problem. Check "Savefile" configuration of "Directory" menu.
On PS3 is /dev_hdd0/game/SSNE10000/USRDIR/cores/savefiles and it exists, of course.

@Wilstorm
Copy link
Contributor

It probably won't help much but I tested these two games running RetroPie on a Pi 4. The diff file writes to /home/pi/RetroPie/roms/mame-libretro/mame2003-plus/diff. They both run CHD version 3 from around 0.130 the latest CHD's won't work.

Biofreak runs ok but it's unplayable slow at 17 FPS on a Pi 4.

Blitz crashes on a Pi 4 with the following Libretro errors in the log file:

[libretro ERROR] cpunum_get_localtime() called for invalid cpu num!
[libretro ERROR] cpunum_get_localtime() called for invalid cpu num!
[libretro ERROR] [MAME 2003+] cpu_gettotalcycles() called with no executing cpu!

@Wilstorm
Copy link
Contributor

TO clarify Blitz is more of a lockup at the intro screen rather than a crash at the same screen @crystalct posted above.

@mahoneyt944
Copy link
Collaborator

I think the log should report the active cpu. Does it for blitz?

@Wilstorm
Copy link
Contributor

&mahoneyt944 - I can’t check right now but will post a full log tomorrow if it will help. I should have posted the whole thing when I had it! =\

@vaguerant
Copy link

Thanks Wilstorm and crystalct for the hints re: diff path! I was able to get those directories created manually; on Wii U it was located at the following path:

sd:/retroarch/cores/savefiles/mame2003-plus/diff

I had to create the mame2003-plus directory as well as the diff directory. I also manually created cfg and nvram directories at the same time since it seems like those are supposed to be generated as well. I will file a separate issue shortly re: broken directory creation, but in the meantime, I was able to launch biofreak and blitz.

My MAME 2003 Plus is 270fb0f, the same commit crystalct was testing, and neither game works on Wii U. On biofreak, I got the same result as crystalct had initially, a black screen with two white pixels. On blitz, just a black screen.

@crystalct
Copy link
Author

On x86 and retro Pi they start.. on PS3 and WiiU don't start. First are Little Endian, PS3 and WiiU are Big Endian....
we have a suspect.

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 15, 2020

@vaguerant to clarify, you got blitz and biofreak to work successfully by manually creating the correct mame2003-plus/diff directory on the WiiU (big endian system)?

If so we just need to verify why these directories were not created automatically

@vaguerant
Copy link

I didn't get the games to work successfully, I was only able to get them to launch by manually creating the mame2003-plus/diff directory. Once they launched, I seem to have the same problems as crystalct did which prevented the games from being usable. I believe there are two unrelated issues here: mkdir failing on Wii U, and some big-endian or other issue that affects PS3 and Wii U in the same way.

Here is the issue for broken mkdir on Wii U. FBNeo has a workaround to allow it to work, so possibly MAME 2003 Plus could adopt the same workaround until the issue gets a proper fix upstream.

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 15, 2020

@vaguerant ok. So once you created the directory manually. Did the diff file save there? Theres a fix in place for loading / saving as seen here:

  /*fix trailing slash in path*/
  for(i = 0; options.libretro_content_path[i] != '\0'; ++i);
  if ( options.libretro_content_path[i-1] == '/' || options.libretro_content_path[i-1]  == '\\' )
   options.libretro_content_path[i-1] =0;

But I believe we need to implement this in the creation of the directories too to fix this.

@vaguerant
Copy link

Yep, the files seem to be writing out correctly. After testing both biofreak and blitz, I've got two files in mame2003-plus/diff: biofreak.dif (31.39 MB) and blitz.dif (6.31MB).

@mahoneyt944
Copy link
Collaborator

Ok. Perfect, I'll look into the directory creation and get this going.

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 15, 2020

@vaguerant ok I implemented a fix for the filepath. Delete the directories you made then update from source and see if they are created properly. Let me know how that works then we'll look into the endian issue a bit more.

@arcadez2003
Copy link
Collaborator

arcadez2003 commented Sep 27, 2020

No that's ok. There doesn't seem to be any chd errors in you log so it's not that as far as I can tell. It's a pretty long log so I may have missed something though. I can't help but think the mips3 big endian issue might be responsible here but that would be a pretty intensive change over. Mame .082 at least is close to our core so a change over is possible but it's hard to say how far that change goes and how many drivers and games would be effected. Maybe @arcadez2003 can peek at mips3 from .082 mame and get his opinion on just how deep the change goes and if he agrees that's our issue.

@mahoneyt944 i've purposely tried to keep out of this due to not wanting to dive down the ole rabbit hole, but i have one
solitary idea as to what might be causing these issues, a while back i added the DCS speedups into the dcs2_init, previously
they were disabled for the dcs2 sound.

They were likely disabled for two reasons either they did not work or might have broke something in the games, since the
games in question here all use dcs2 sound im going to remove the speedups once again, i only added em on spec to see if
the game performance would improve as users were moaning about that although it's the devices they use being unable
to handle those games rather than a core issue per say.

This might be the cause it might not but it's worth a try at least.

@mahoneyt944
Copy link
Collaborator

@arcadez2003 if that's the case could he just try turning off the speed up in the core options ?

@vaguerant
Copy link

I just tried that (assuming "DCS Speedhack" was the one to disable), restarted RetroArch entirely to be certain it had applied, and launched biofreak again. No change, same black screen and a handful of garbage pixels.

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 27, 2020

Yeah. I think the endian problem is what we need to look into. Big endian just isn't handled properly in mips3 or elsewhere. Needs updated.

@arcadez2003
Copy link
Collaborator

arcadez2003 commented Sep 27, 2020

@vaguerant Yeah i thought it was worth a try at least.

@crystalct
Copy link
Author

@mahoneyt944, that was first time i ran make clean.
About Endian issues, dont forget that kinst and kinst2 work correctly on PS3 and them use mips3 driver.

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 27, 2020

I'm no expert on running make on different consoles but I type this to compile on my rpi3

git clone https://github.com/libretro/mame2003-plus-libretro.git
cd mame2003-plus-libretro/
make -j8 platform=rpi3

so I assume yours would be similar but with ps3 as the platform. I'm not sure you need to type clean but again I have no experience compiling on other systems.

@crystalct
Copy link
Author

^_^
make platform=ps3 works correctly. Clean is the problem. I have to erase *.o manually.

@crystalct
Copy link
Author

@vagueran, do you never tried Killer Instinct on WiiU? Yesterday i started it on my real PS3 (not PS3 emulator RPCS3) and its FPS are very low... unplayable.... @mahoneyt944 on rpi3 is it good?

@vaguerant
Copy link

@crystalct As a general rule, RetroArch performance on Wii U can be assumed to be miserable unless stated otherwise. The CPU is only about 1.2 GHz (compared to 3.2 GHz on PS3); plus the Wii U's nonstandard GPU needs to be handled; you can't just use OpenGL or something like you can on a "normal" modern console.

Based on some conversations I've had on the FB Neo Discord, the Wii U port may be doing some of that work on the CPU instead of the GPU. Whatever the reason is, the Wii U port runs a lot worse than it "should" across the board, so until now I never bothered trying kinst because I guarantee it runs poorly.

Having just tested, it runs at ~25 FPS during gameplay on Wii U.

@crystalct
Copy link
Author

LOL .... better than PS3

@mahoneyt944
Copy link
Collaborator

Never tried KI before. But I assume it runs poorly lol

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 28, 2020

testing blitz on rpi3b+ I also stop on the blitz screen. chd games in general are too slow on rpi in my limited testing.

@Wilstorm
Copy link
Contributor

Wilstorm commented Sep 28, 2020

Blitz starts ok but freezes. It's not a complete lockup as I can exit the game through RA. Screenshots below:

IMG_8079a

IMG_8080a

kinst runs decent and is playable on a Pi 4, overclocked. I'm running the arm_freq @ 2.1GHz and v3d_freq @ 850MHz. Some other minor overclock tweaks but those two are the main ones. From the limited testing the FPS stayed around 50 to 60. One fight stayed at 59.x pretty much the whole fight. Screenshot below.

kinst-200928-183328

kinst2 runs slower and has lag. I don't know if it's playable per se but it runs ok. The FPS drop out during the high action fights. Screenshot below.

kinst2-200928-183202

@mahoneyt944
Copy link
Collaborator

I just committed a bootstrap for carnevil if you want to test that. It's too slow on rpi3 but maybe rpi4 with your over clock

@Wilstorm
Copy link
Contributor

Carnevil runs fine but it can be a bit slow at times. There's an intro with a clown face swirling that shows 40 to 50 FPS but it's just slow. Definitely slower than what the FPS are showing somehow.

In game it runs about 30 to 35 FPS. When it pans and zoom to different sections in the carnival it's quick and snappy but when a mob is right up close to the screen or when they are exploding it feels a bit sluggish.

The CHD is 1.5GB so it takes a minute or so for it to load. I would assume the "movie" like background you zoom and pan through is the CHD and that movement is nice and smooth it's the action that feels a bit sluggish but it is playable.

I had a crosshair in the center of the screen the whole time and then the one I was actually using to shoot and reload.

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Sep 29, 2020

The cross hairs is just a mame addon. There's a core option to turn them off. Without them you can't tell where you're aiming. Not an issue with a real lightgun but very problematic for a joystick.

@mahoneyt944
Copy link
Collaborator

@crystalct I just merged a WIP mips3 endian patch. Not sure if it will work or break mips3 lol. Can you test mips3 titles?

@crystalct
Copy link
Author

crystalct commented Oct 6, 2020 via email

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Oct 6, 2020

@crystalct I tested biofreaks on rpi3 and it works. Just a bit too slow to play. Probably just test biofreaks since its known working on little endian.

@crystalct
Copy link
Author

Still black screen (or 2 pixels)

image

image

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Oct 6, 2020

@crystalct does mame2003 also get a black screen on biofreak?

@mahoneyt944
Copy link
Collaborator

Can you post a "debug" level log from ps3 with biofreak

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Oct 7, 2020

@crystalct @Wilstorm @vaguerant

So it doesn't look like big endian is working yet but blitz is now working on my rpi3. Though it's extremely slow. Not sure how long it sits on the blitz screen (edit: about 5mins) but it eventually got past it and is now running the demo attract screen.

IMG_20201006_220336046_1

@crystalct
Copy link
Author

crystalct commented Oct 7, 2020 via email

@vaguerant
Copy link

In the meantime, here's a debug-level log from biofreak on Wii U if that's any use to you.

Fair warning, I left the core running for long enough to reach the crash screen with the handful of garbage pixels, which was probably a minute or more (it doesn't normally take that long, but debug level logging is a massive performance hog on Wii U), so the log is a massive 145 MB uncompressed.

biofreak145MBdebug.zip

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Mar 30, 2021

As of 052aacf we now support blitz again and kinst. Should re-test mips3 games with this commit. These games require a powerful platform so expect big slowdowns on weaker devices.

This commit does not address big endian issues.

@mahoneyt944 mahoneyt944 added the bug Something isn't working label Jun 23, 2021
@mahoneyt944
Copy link
Collaborator

@crystalct @vaguerant can you retest the above mentioned games on our latest commit? Mips3 game were fixed up but unsure about possible endian issues.

@crystalct
Copy link
Author

image

Kinst:
image

Blitz:
Black screen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants