-
Notifications
You must be signed in to change notification settings - Fork 54
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
Adds FX3 colorization support #367
Conversation
That's really amazing! Nice addition, thanks! I'd be happy to help for Serum, |
Dude, you're killing it! Thanks! I haven't started the coloring refactoring yet, so I'll review and merge this one first. Cheers! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great. A few more things before we merge this:
- Fix the color hue when coloring is disabled, and enabled but no colorization available
- Add the same feature to
Future Pinballand Pinball Arcade - Document the feature in README.md
- Test Serum and PinMAME
I'll have a go at the second and last point.
Amazing! Thanks |
README.md
Outdated
@@ -140,6 +140,20 @@ The DMD from Pinball FX3 is pulled directly from the memory. | |||
It doesn't matter whether Pinball FX3 is started before or after `dmdext`, and | |||
it works with or without cabinet mode. | |||
|
|||
Like VPM, the FX3 memory grabber also supports colorization on a monitor or RGB display. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if we should move all the info on colorization to their own section, rather than having it under each game, since there is a fair amount of overlap.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's a good idea. Also, add a table of contents :)
Oh, and I just created an |
I mainly didn't love the idea of that one grabber doing so many different things. It's also running at a different framerate (1 FPS, lol), since the game name is infrequently changing. |
Okay. I might move it into the original grabber, because a) it allows to abstract the name retrieval across sources and b) have less duplicated code. I'll measure the performance penalty, but my guess is that's it's negligible. |
I've pushed the TPA update. @GyroJoe let me know what you think. I didn't touch FX3 yet, but basically you first set up the graphs, and at the end the switching converter, if the source supports it. |
Clean, and unifies the setup across sources. I implemented this for FX3 and added a new type One wrinkle with the unified grabber for FX3 is that the game name and the DMD aren't both available at the same point in time. I added a one-time second attempt to get the name if it fails the first time through. This was one advantage of the previous split system I guess, so I never noticed. |
Awesome, thanks a lot! Looks much cleaner indeed. Also thanks for updating |
So the remaining tasks are Future Pinball, although it's currently only emitting 4-bit frames, which I'd have to convert, and I don't know how accurate the animations and texts are so they'd be recognized by the coloring plugins (FP tables aren't ROM based, so authors re-create the DMD output manually). I'll also spend some time on reorganizing the documentation a little. @GyroJoe you don't happen to be interested in working on a new pinball simulator based on Unity? ;) |
A word of warning, the editor in VS for this file is pretty broken. Just change it with a normal text editor. |
For me it's ready to merge now. @GyroJoe if you wanna have a last look, lemme know, otherwise I'll go ahead. |
Wow, you went the extra mile with the docs including all the game names. 🚢 it |
@GyroJoe Great new feature ! Thanks for that ! |
@lucky01 That's an absurd suggestion. This feature was already announced on several Discords, how long do you think it'll take to spread on the forums anyway? It's an open source project, remember. |
@freezy O.K. no problem ! I thought I just ask before I pull the changes into my fork. |
Adds support for colorizing FX3 frames when using the memory grabber.
To achieve this, a new memory grabber has been added that can determine the name of the current game. (It appears to be the name for the UI skin the menu uses). These names are the same as the ones used for backglass images (e.g.
WMS_Monster_Bash
).Once the game name is determined, the palette is loaded, and switched to dynamically. In this way, new colorizations can be loaded without tearing down the entire render graph.
The same
altcolor
folder location strategy is used as for VPinMame. It also now searches the COM location, using the same trick the installer does.For now, I only added support for PAL/VNI, but Serum should be feasible - need a colorization for a supported game to test with. I know there has been some churn in the colorization space lately - I tried to avoid changing the logic as much as possible and only moved things to a new
ColorizationLoader
so the code could be shared. Hopefully this is not disruptive to any on-going refactor work.