vbousquet / flexdmd

A DMD renderer for Visual Pinball original tables.
Apache License 2.0
61 stars 13 forks source link

BMP files within VPX could cause a hang during adding images from VPX image manager. #28

Open MikedaSpike opened 2 years ago

MikedaSpike commented 2 years ago

Trying to replace the system 80 vpinmame by flexDMD on multiple Visual pinball tables, as Freezy's DMDdevice.dll doesn't shows the complete line and misses some characters on the (virtual) DMD,

2 tables (Surf 'n Safari v1.3.3 by Kiwi and Robo-War (Gottlieb 1988)_Bigus(MOD)1.3 by Bigus1) contains some BMP images. Creating the flexDMD object and setting the table file FlexDMD.FlexDMD.tablefile to the filename itself, it was able to initialize the VPX file. But when adding an image from the vpx to the scene with AddActor, it causes that the table is hanging.

It is not hanging on the file it tries to add to the scene, but just on a BMP that is in the GameStg store with the name staring Image Looks like when FlexDMD.FlexDMD.NewImage is called, that all images from the zip file are read. During this process, it could happen that BMP files that are stored in the .vpx file could hung the .newimage

I could identify that from Surf 'n Safari v1.3.3 .vpx the image file MetalPeg.bmp was causing the issue and from Robo-War (Gottlieb 1988)_Bigus(MOD)1.3.vpx the 2 files flipper-t5-white-red.bmp and sidewood_v-Black.bmp. Strange part is that the robo-wars VPX also contains sidewood_h-Black.bmp and this file didn't cause any issue. I hope this make sense and could be fixed without changing an image within the Visual Pinball table file