Conversation
|
I´m currently on vacation and can start testing earliest in 3 weeks . |
Yes, the problem is just that my VNI collection is somewhat limited, and PAC files is what people will finally use. If you could give me a few non-standard game names, that would help. Specially games with 128x16 input and games with HD output. Then I can hunt down those VNIs. Also, you were mentioning segdisplay colorizations?
A little bit in the train, and it crashed. ;) Looking into it.
Yes, I figured. Will clean that up. Have a good vacation! |
|
For 128x16 there are hook, batman, star trek 25th, checkpoint and tmnt. Games with 256x64 are Capcom Football Flipper but there is no colorization. Seg Display there is Lupin and Ken based on diner both presented by darden78 on vpu, but I can send you my testing project when I´m back. |
Sorry, I missed this. I'll ping darden78 on VPU, maybe he's willing to share. |
I sent you a simple test project |
|
I recognized that you have the color rotation code in the virtual display. I moved it to colorutils and that way made it available for all RGB24 devices like pixelcade, pindmd3, avi etc. |
|
Okay, I'll have a look. Right now, when rendering the rotations for the virtual DMD, we actually only update the palette in the shader (as opposed to rendering an entire RGB24 texture). |
|
Your LibDmd/DmdDevice/AlphaNumeric.cs does also not have my latest fixes |
Hmm, I'm pretty sure I did pull your changes. I haven't gone through all of them yet, but this one seems up to date. Your version versus mine. Anything particular that is missing? |
|
I just had a look at your plugin code. Why do you try to split the RGB24 frame in palette based frames in there, while the majority of the supported devices does not need that ? Why not only split frames and generate a palette when the output device needs it to overcome performance lags that way ? So far I have no performance issues reported from pindmdv3, pixelcade or pin2dmd users processing the colorized frames as RGB24. |
|
Because it's the frame format that goes into the render graph, and once it's in there, subscribers don't know whether it's a frame that can be converted back to colored gray. I profiled it, it turned out not to be an expensive operation. |
|
Did you take both the splitting into palette based and the conversion back to RGB24 for e.g. the virtual dmd into account for your profiling ? I introduced a coloredgray source to be able to differentiate a normal RGB24 frame from a colorized RGB24 frame in the rendergraph. |
|
The virtual DMD renders colored gray frames, the RGB conversion is done in the shader. It's funny that you seem to be concerned about performance now, when you could simply return colored gray frames in the plugin and get the best of both worlds. ;) |
|
Frankly , personally I don´t care because I don´t use my vpin cab anymore. But if users recognize that your implementation of the API is laggy compared to mine there might be an issue. But if you are sure that the speed is the same - fine ! |
|
@lucky01 I've added frame de-duplication since it avoids a whole lot of garbage collection. Is the plugin dependent on a trigger of duplicate frames, or will that still work? |
|
The plugin it attached to the 15ms frame timing of pinmame |
|
What happens if the plugin only gets frames when they change? Some animations don't play? |
|
I expect some scenes have a wrong timing e.g LAH with movie replacement scenes, |
|
Okay, thanks. I'll de-dupe after colorization then. TBH I have never used PinUP and @nailbuster is currently on holidays. I'll release a beta version of this branch tonight, since PinballFX is launching a new version today with dmddevice support, for which I had to add a few fixes, which ended up in this branch. Hopefully I'll get the de-duping fixed before, otherwise that will be another beta. Are you back from holidays and did you happen to test this a bit more? |
I already checked that and the frames are forwarded correctly, however it seems that the matching does not work reliably with the 32bit version.
No in previous versions you received the frames at 60Hz without dupe check. |
|
I can't reproduce the FlexDMD issue you have on VPU (it's down, so posting here). If you pull latest and compile it with the I'm getting frame data for both PIN2DMD and virtual DMD. Can you reproduce with that? If so, can you share your TBH, I don't think it's fair to stall because of this. It's literally and edge case of an edge case that has nothing to do with the plugin nor coloring in general. |
|
Sure ! Can do next week ! The more critical issue is PUP triggers not working correctly on 32bit compile. Any updates ? |
|
I´m not stalling anything here I just want to make sure it is working at least as good as my current version and does not contain issues that were already solved there. |
I can reproduce that however when I start FlexDMDUI, go to the designer tab and click on run you can see that with virtual set to false it only sends 2 packets while with set to true it constantly sends packets when the display changes. I assume without virtual it only sends the init frames but not the display content. |
|
When you exit flexdmdUI it sends another 3 frames for deinit. |
|
Thanks, now I see it. Looking into it! |
|
Try this. I haven't tested everything because I'm on vacation and it's difficult to launch actual games through remote desktop, but the missing output should be fixed. I'll look into pinup when I'm back home, but this might got fixed as a side effect as well. If you could verify that'd be awesome. |
I don´t have pinup installed but will ask someone to test. Enjoy your vacation |
|
FlexdmdUI works fine now but
still the same problem ! |
|
Okay, cool. So pup is the last remaining issue? |
|
I have another two issues here which I need to check wether they are caused by the plugin or your code. |
|
@lucky01 any hint of a trigger in Baywatch that I could test? I have Pup set up now, but I'm kinda clueless what to look for. |
|
I can only forward the information I receive, because I don´t have pup installed. |
The PR adds external plugin support to dmdext, originally provided by @lucky01 in #347.
I've chosen a more generic approach. Instead of hard-coded DLL names, users will need to enable the plugin in DmdDevice.ini. For pin2color, it would look something like that:
The
0, because, well, there might be other plugins in the future.The biggest chunk of this PR however is integration of #239, although I didn't tackle the multi resolution feature yet. But the render graph now exclusively deals with frame objects, which is much cleaner, less code and more comprehensible. Also, there are now unit tests covering the render graph routing and the frame conversion and transformation code.
The reason for getting #239 into the plugin branch was because the transformation logic was a mess, and I ended up not knowing the relation between the dimensions of a frame and the data of the frame, since they were de-coupled.
Now, every frame's dimensions always correlate with the data. Usually, the transformation logic is the following. Given a colored frame:
This is still WIP, lots of stuff can be cleaned up and improved, but it's functional. I'll spend the next days integrating the other fixes of #347, and then we could start some public beta testing.
@lucky01 let me know if this works for you. I couldn't test any PAC files because I don't have pin2color.dll with PAC support.
This PR closes #347, #239, #7, #323, #380, #330, #234.