Giter VIP home page Giter VIP logo

spectabis's Introduction

Spectabis

Spectabis is a frontend for a PlayStation®2 emulator.

Features

  • Per-game configuration
  • Boxart scraping (automatic with ISO files)
  • Partial support for GZ, BIN, CSO support
  • Drag-n-drop game file
  • Directory scanning
  • Plugin configuration access
  • Search functionality (enable in settings)
  • Integratable into other frontends with command line interface features

Links

Contributions

New Features

If you wish to contiribute new features to the project, please check keep an eye out for next the next version of Spectabis.

Bug Reports

https://github.com/FaithLV/Spectabis/wiki/How-to-Report-an-Issue

Bug Fixes

Feel free to create pull requests with bug fixes on quality of life improvements.

spectabis's People

Contributors

cyberfoxhax avatar grantfar avatar ilyafinkelshteyn avatar lightningterror avatar michanne avatar urbancmc avatar valters-tomsons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spectabis's Issues

Implement Big Picture / TV Mode with Controller Support

Hello!

I would love to see a Big Picture implemented in this program as I use my TV often when I play games. Similar to PCSX2Bonus's TV Mode and Steam's Big Picture, I could navigate around in the menu with the controller and select the game whatever I want to play.

I also would like to see some UI menus when configuring the games in Big Picture, rather than using the default PCSX2 menu. Some menu functions aren't needed, but you know what I mean. Configuring global controller setting, video plugin setting, and such are the most important.

Looking forward to this! Let me know if this is possible or not. Thanks!

User settings not saving

It's the C# Setting Properties going all crazy again.

For time being, delete all folders inside AppData\Local\Spectabis_WPF and saving should work again.

I'm looking into this issue.

Support for cue files

Steps to trigger: try dragging a cue file to the program or pressing add game and navigating to a cue file

What happens when you follow the steps: can't add

what you expected to happen instead: add game

Any other information that you think could help the case: When you have a bin/cue, you're supposed to run the cue file, not the bin file.

A Couple Of Issues

  1. Spectabis definitely does not automatically fetch boxart. I know because I had to use my Giantbomb API key and refetch over 600 titles individually. Even once you check the box for automatic scraping nothing happens.
  2. I used FixIso to rename all of the games in my folder to their proper SLUS codes and there's still a bunch that aren't named properly when I go to fetch boxart for them. This is not a dealbreaker for me, it's just going to take a good chunk of time to get all the missing art hunted down (about 50 out of 600+ titles not found)

ALL IN ALL:
Spectabis is fantastic in its functionality when it does what it is purported to do.

Spectabis-WPF stopped working

I have .NET framework 4.5 (or higher according to windows) so I'm not too sure what causes Spectabis to crash with, "Spectabis=WPF stopped working".

I've noticed that I have to use the program slowly otherwise it'll crash. Too many clicks or clicking different buttons like the back arrow or menu config button too fast will cause it to crash.

What can we do about it?

Gamepad friendly

Hi, I think a great implementation can be the frontend to be gamepad and keyboard friendly, as I can only use it with a mouse.

IGDB API No longer works

Among the list of supported Boxart Scraping APIs IGDB is no longer functional.

Steps to Repro-
Go to Settings and Put your Personal IGDB Key into the text box.
Go Back to library and Re-fetch BoxArt and you will be introduced to an infinite loading anim

Intended Behavior-
Re-fetch Boxart should result in your games Boxart being downloaded and shown

Console Crash-
Well there is no crash and the console simply stops at

Ape Escape  Pumped  Primed - clicked
Checking if QueueThread is busy.
QueueThread is not busy, starting it
QueueThread_DoWork
QueueThread_DoWork - Ape Escape  Pumped  Primed

Windows 10 x64

Playtime resets every hour

When in-game, the playtime counter resets back to 0 when it reaches 60 minutes, and the saved total playtime also does the same. No hours are displayed nor saved.

Command-line arguments do not work

As of the recent update, commands seem to not work anymore. Since I haven't tested with other command lines, only -profile...

On Steam, for every game I add, I add in the text inside "Target" as follows:
"C:\Classic Games\bin\PCSX2\frontend\Spectabis.exe" -profile "Persona 4"
Setting an example for Persona 4. The profile name is exactly the same on Spectabis, since I set the name for it.

And Spectabis simply will open. Not the game itself anymore. Before update it does though. Has this been overlooked or were commands replaced/removed? Just saying, in the case something like this happens, shouldn't the wiki be updated? Especially this page: Command Line Arguments.

Spectabis fails to collect art for all games

When I choose the "Refetch Boxart" option this error message appears: "Failed to connect to GiantBomb. Is the API key valid?"
I double and triple checked my API key, and yes, it is valid. I also tried using TheGamesDB option to collect boxart and I had the same issue with a slightly different error message, this time it was: "Failed to connect to TheGamesDB."
The weird thing is that I've never had this problem before, everything used to be fully functional. It was a real plug and play type of situation before now. I have no idea was is causing this or how to fix this.

Spectabis giving error PCSX2 Installation Corrupt

Whenever I run Spectabis and try to launch a game from it, it just tells me that my PCSX2 installation is corrupt, then force-closes itself. The version of PCSX2 I'm pointing it to works perfectly fine when I run it. It is however using a developer build, so not sure if that's causing some kind of issue with Spectabis.

Current version of PCSX2 is 1.5.0-20180712010509. Running Spectabis version 1.0.8.

Add cheat support

https://forums.pcsx2.net/Thread-Spectabis-Advanced-Game-Launcher-Frontend?pid=574069#pid574069

Add a menu item in right-click as "Cheats" where a user can manage their cheats for the particular game in a neat UI.

These Cheats will be saved as normal into PCSX2 cheat directory

Feature should also be able to read the cheat files already present in that directory and display any pre-existing cheats.

There should also be support for saving all cheats and having the option to turn them off/on again whenever the user wishes, and it would be great if all available cheats for a game (from some source) were already available when user loads their game.

Can not find core PSCX2 settings

This issue came when I clean installed PCSX 1.5.0 & Spectabis from my computer. I installed everything, as usual, I installed everything in the same folders as before & then it couldn't detect my PCSX2 core settings.

There is another issue I had doing this, Spectabis couldn't detect my PCSX2.exe file when I tried to fix the above issue. I tried to fix it by choosing the same PCSX2 directory where the exe file is located, it was the same directory I set it as when I first launched Spectabis & had to choose where my PCSX2 exe file was located.

Thanks for your effort on Spectabis! I love it & it have made emulating PS2 games so much easier. Keep up the amazing work.

Downloading Boxart

Program says 'downloading boxart' endlessly on the latest build for me

Program crashes when trying to add new game

Drop-Down doesn't work at all
and when trying to add manually from selecting the iso file, it crashes immediately with any game i have tried. These games launch fine on pcsx2.

Im using the latest spectabisbuild 1.0.3 and pcsx2 1.4.0
also windows 10 pro 64bit

Spectabis changes plugins

Sorry for the odd title, I wasn't sure what else to call this.

Basically, when I run Katamari Damacy via Spectabis, the guy singing "Na na na na na na" never stops, but when I run it from regular PCSX2, it works fine. I also noticed Spectabis uses its own plugin files, not the regular PCSX2 ones.

The following two screenshots show a peculiar difference between Spectabis' audio config, and PCSX2's one.

I can't help but wonder if this is why the problem is occuring.

pcsx2
spectabis

Runtime exception due to missing ini file values

When building application under either Debug or Release target, the following runtime exception will occur if the advanced.ini file is deleted or replaced with an empty file:

image

Methods will fail due to required ini file values missing, as well as no mechanism for initialization of ini file values present

BIOS/GS Options never remembered.

Heyo, I've only really just started using Spectabis/PCSX2, so I have no idea if this is my fault or not, but I have a problem whenever I start a game without first "setting it up" so to speak.
If I try to run a game, PCSX2 will immediately throw an error that my GS Plugin doesn't exist, as it's searching in "C:\Users\James\LaunchBox\Emulators\Spectabis\PCSX2\plugins\Please Configure", the same for my BIOS file. I have to use the "Configure in PCSX2" option and set these paths again for each game before I am able to properly play it.
Is this intended behavior, hence the Please Configure, or am I missing an option to change somewhere within Spectabis?

adding "Champions: Return to Arms" causes a crash

Crashlog: https://gist.github.com/FaithLV/a2a11080224f6effff45f37ad996307e

Issue is with characters in GameIndex.dbf

Serial = SLES-53039
Name = Champions - Return to Arms // aka "Champions of Norrath 2"
Region = PAL-M4
Compat = 4
// allows import of characters from first game
MemCardFilter = SLES-53039/SLES-52325

Serial = SLUS-20973
Name = Champions - Return to Arms // aka "Champions of Norrath 2"
Region = NTSC-U
Compat = 5
MemCardFilter = SLUS-20973/SLUS-20565

Serial = SLUS-29126
Name = Champions - Return to Arms [Demo] // aka "Champions of Norrath 2 [Demo]"
Region = NTSC-U
Compat = 4

straight up crashes

i used the giant bomb option,made an account,and it crashes everytime i try to add a game

Can't search sub-directories?

My PS2 folder has over 100 games, and each game is placed inside a folder with it's corresponding name.

When I choose that folder to add to Spectabis, nothing happens.

I have to choose each game .iso individually

I would rather not have to drag them all out into the same folder

Is there really no way for Spectabis to search the sub-directories as well? Or am I missing something? If not, it should definitely be added

Spectabis crashing constantly and not recognizing button inputs.

When I try to manually add a game without dragging and dropping, or when I try to change a game configuration, it crashes. And when I run the game, it doesn't recognize any inputs, for some reason (Tested with SF Alpha Anthology)

Also, how do I update the program? And did I have to reconfigure everything when I ran PCSX2 with it the first time?

DirectoryNotFoundException if ini folders do not exist

On a fresh install, I received DirectoryNotFoundExceptions when attempting to add games. Checking the source revealed that in Spectabis_WPF.Domain.GameProfile.Create(...) (currently GameDiscovery.xaml.cs:55), you're checking to see if one of two directories exist:

  1. an 'inis' folder inside the pcsx2 directory, or else
  2. a 'PCSX2\inis' folder in the user's documents directory

If neither of these locations exist, the app crashes. I suggest either a graceful fail with an explanation presented to the user or simply yes/no dialog allowing the user to create one of these folders.

Request: Highlights with Show Game Titles disabled.

Would it be possible to add the coloured highlight feature when selecting games when the Show Game Titles option is disabled? I think it would be helpful as without it I find that sometimes when I double click on a game I'm unsure of whether its loading or not and having it highlighted is a good indicator.

Setup CI

Should setup a CI with build artifacts, as I'm not planning to make any new releases.

AFAIK only Azure currently support windows machines.

Picks the wrong language for its config

I have tested it extensively with stable and dev builds:
Set everything to locale English for Windows and the PCSX2 versions
Then put games into Spectabis and it always gives me Arabic as standard PCSX2 locale.

I dont even use Arabic anywhere.

Is this the culprit?
image

program crashes after trying to import game.

I am trying to import games from my folder and every time I select the file, the program just closes.

Does It Have To Do With the File Type? I've Been Using .ISO's

Thank You!

Won't open anymore

This has happened a few times. I have to do a fresh install, then it works fine, but next time I boot up my PC it won't launch whatsoever.

Windows 10 1909 64bit, tried compatibility settings, running as admin, nothing works

EDIT: I found out the problem.....the "lib" folder is removed... I have no antivirus or windows defender active so idk how it keeps being deleted

Suggestion: Better game name detection

I'm not sure how Spectabis currently detects game names, but it doesn't work very well. This makes it annoying to add bulk games to the library, because you'll have to manually add artwork to each and every one of them, which can be really time-consuming.

Even some basic improvements would be a massive help. For example, my games are named like this: "Burnout 3 Takedown [SLUS-21050] [1.00].iso.gz". I think even just detecting game serials in filenames would be a huge help.

For the heathens who don't compress their ISOs, that would be easy, since you could just checksum the ISO to determine the game with 100% accuracy.

Detecting the game name if the filename doesn't contain the game serial might be a bit trickier, since there are multiple ways of formatting game names. For example, some people might call it "Burnout 3 - Takedown". Maybe this could be worked around by removing all special characters, spaces, etc. and then comparing that end result to a database of files which has an actual, standardised game name to look up.

For a rough example of what I mean, take these game filenames...:

  • Marc Eckō's Getting Up - Contents Under Pressure
  • marc eckos getting up contents under pressure
  • Marc Eckōs Getting Up Contents Under Pressure

...would be stripped of special characters, and the end result would be "marcecksgettingupcontentsunderpressure" for all three of those filenames. Then, there would be a big local file with a database which tells the program to convert "marcecksgettingupcontentsunderpressure" to the actual game's name; "Marc Eckō's Getting Up: Contents Under Pressure", which would then be looked up online.

Now, there is an issue with this concept, and that is that filenames with things other than the name of the game would kind of ruin it. For example, my personal way of naming game ISOs would result in "burnout3takedownslus21050100isogz", which obviously is too different to expect and put into this database. So yeah, it isn't a perfect solution, but it's an idea that someone smarter than me can play with and maybe come to a proper solution.

Anyway, this shit's getting long, so to conclude: better game name detection pls.

Also, I should mention that I have no programming experience, so this might be a really stupid way to go about it lol.

"Cannot find default PCSX2 configuration"

It looks like Spectabis is looking in the Documents folder for PCSX2 settings, but PCSX2 keeps everything in its own folder (by default as far as I know) now. So every time you add a game, it can't load the default settings you have and it asks you to set up everything from scratch with each game.

Not sure if there's a way to fix this, can't find an option in Spectabis that looks in a different folder for the PCSX2_ui.ini file.

Is there a way of running an ELF file instead of ISO for one game profile?

I've been setting up Spectabis and it works great but one game (.Hack Fragment) requires an ELF to be run instead of the ISO to be able to play online and I can't figure out a way to do so or even if it's possible. There is a PCSX2 command line argument to run elfs (--elf=(file location)) and I tried fooling around with the spectabis.ini by adding elf=(file location) which does nothing or switching iso file location to elf instead which doesn't boot anything as I expected.

Is it possible?

Spectabis crashes when unable to find game on GiantBomb

I am using the GiantBomb API to add games into Spectabis.
When trying to add a game whose name does not appear in the GiantBomb database, Spectabis crashes.

For example, when adding the ISO AutoModellista, Spectabis crashed because that exact name couldn't be found on GiantBomb; it was missing a space. When renaming the ISO to Auto Modellista, the app didn't crash and was able to find it.

Very Ram Hungry

Im not sure if this is an issue or is intended but ive seen this program take up about 2gb of ram. seems a bit much for a frontend

Windows 10 x64
i5 6402P 8GB DDR4
AMD RX 480 4GB

PCSX2 base configuration

@Faithlv

Spectabis is asking me to configure each game.
Is there any way you can add an option to have all games use the same base configuration?

Having to configure each game is extremely antiproductive to what spectabis is suppose to relieve us from. I don't want to spend hours upon hours configuring X game 1 then X game 2 it's suuuper annoying. Any way we can get this feature? I will literally buy you some coffee.

Specifying pluginDir creates crash on start

Entering the plugin directory path (null works, of course) in advanced.ini will crash Spectabis with the following error:

'The invocation of the constructor on type 'Spectabis_WPF.Views.MainWindow' that matches the specified binding constraints threw an exception.' Line number '15' and line position '9'.
The process cannot access the file 'E:\Emulator Games\PCSX2\plugins\LilyPad.dll' because it is being used by another process.

No process is running that would load LilyPad.dll, so this confuses me. Have you encountered it before?

[Suggestion] Build Cache File for faster Startup

Im not sure how this would work or if its even implemented but would making a Cache with a DB of all games in the users library decrease the time it takes to start the program? Im not sure if the program does this already or just looks in the directory but it does kinda take a bit.

If it is scanning the directory each boot up why not just make a Database of the games and load from that instead? Plus if something new is added a simple refresh button to rescan would suffice, and it would only need to look for settings and such if the game is accessed.

Spectabis crashes when resource plugin config is in use

When configuring a game's audio settings in the frontend, Spectabis loads the SPU2-X plugin settings.
Even if nothing is changed, when exiting this screen it will try to access the plugin ini in Spectabis' directory.
If it is unable to, the app crashes with the following stack:

Unhandled Exception: System.IO.IOException: The process cannot access the file 'C:\Users\<xxx>\Downloads\Spectabis108\inis\SPU2-X.ini' because it is being used by another process. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost) at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite) at Spectabis_WPF.Views.MainWindow.AudioSettings_click(Object sender, RoutedEventArgs e) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) at System.Windows.Controls.Primitives.ButtonBase.OnClick() at System.Windows.Controls.Button.OnClick() at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e) at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows.Application.Run(Window window) at System.Windows.Application.Run() at Spectabis_WPF.App.Main()


This happened to both Nightshade and Castlevania Curse of Darkness, but did not happen to my Dark Cloud. Nothing is configured between these three games other than video settings which are all the same. (OpenGL -> changed to D3D 11)

Subfolder game discovery

Please add an option to search iso images in subfolders.
And it would be cool have a time counter (how long I play a game last time I launched it and in total). Similar feature is in PCSX2Bonus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.