neophob / wpc-emu

Williams Pinball machine emulator, Play it @
https://playfield.dev
Apache License 2.0
70 stars 12 forks source link

RAW DMD Dump file format #41

Closed trancefreak77 closed 4 years ago

trancefreak77 commented 4 years ago

Hi, Do you have a link or description of the RAW file format? I want to use the dumps in my private hombrew pinball project with my own software framework.

Thanks very much in advance, Christian

neophob commented 4 years ago

hi

It's code is here https://github.com/neophob/wpc-emu/blob/master/client/scripts/lib/pin2DmdExport.js

I use the PIN2DMD format:

 used to dump RAW DMD frames, use the PIN2DMD format. Format description (aka VPinMameRawRenderer)
  - HEADER, see description below
  - FRAMES, each frame consists of a 4 byte uptimeInMs counter and 1536 bytes video frames (3 * unshaded video ram content)

let me know if this helps

neophob commented 4 years ago

@trancefreak77 is this clear or do you need additional information?

trancefreak77 commented 4 years ago

Hi, Thanks very much for your reply. Yes, I think it is clear now if my assumptions are correct: The uptimeInMs is the time the frame is displayed. The 1536 frame bytes consists of 3 planes a 512 bytes and each byte represents 8 pixels on the display.

Is this correct?

I'm currently building a replica of an addams family (https://www.youtube.com/watch?v=yUXV3zRDvvQ). The most time consuming part is to analyze youtube videos frame by frame to re-engineer the light shows. Do you think it is possible to also dump the lamp matrix as a file as you implemented it for the DMD?

Regards, Christian

neophob commented 4 years ago

hey that looks rad! do you have a build log?

your assumptions are correct. about ripping the light show - thats absolutely feasible, take a look at https://github.com/neophob/wpc-emu/tree/master/assets/client-example for a minimal example.

function canvasMainLoop(emuUiState) {
  const { emuState } = emuUiState;

here the emuState contains all the information you need, just add a console log there and you will see whats available - but you might be interested in emuState.asic.wpc.lampState- then you can dump that yourself.

let me know if this helps

trancefreak77 commented 4 years ago

Thanks very much for your help! I will have a look if I am able to dump the lamp states. Javascript and myself are not very good friends 🙂

There is a small build log in a german pinball forum. Here is the link: https://www.flippermarkt.de/community/forum/threads/eigenbau-flipper-addams-family-replika.130660/

Regards, Christian