Thursday, December 20, 2012

Added some more LDP-1450 commands

In order to add support for text overlay to my LDP-1450 code, I decided to get Dexter working with Dragon's Lair 2. As it turns out, Dragon's Lair 2 sends a bunch of commands upon bootup to the LDP-1450 to make sure it is in a sane default state. I don't actually have to do any processing of these commands (like I said they just put the player into a default state which I am already in) but I do need to acknowledge them anyway. The commands I now acknowledge include: 0x62 (motor on) 0x6E (CX on) 0x27 (video on) 0x28 (picture stop code enable) 0x55 (frame mode) 0x24 (audio on) Dragon's Lair 2 also issues a 0x67 (status inquiry) command which I do not have documentation for. I confirmed (by using my real LDP-1450) that when the player is playing, it will return 0x80 0x00 0x10 0x00 0x01 and when the player is paused (still frame mode) it will return 0x80 0x00 0x10 0x00 0x20. I can't think of what other state the player possibly could be in except maybe in the middle of a search and playing backward or at a different speed. I am not sure how much I need to explore this since DL2 probably just wants to know if the disc is playing or paused and other games probably don't care at all. I guess this is one thing I can leave barely implemented for now and add richer support for later if it becomes required. After adding the bare bones status inquiry response, I can get wookin' on the text overlay stuff.


  1. From Mame 0.111

    Byte 0: LDP ready status:
    0x80 Ready
    0x82 Disc Spinning down
    0x86 Tray closed & no disc loaded
    0x8A Disc ejecting, tray opening
    0x92 Disc loading, tray closing
    0x90 Disc spinning up
    0xC0 Busy Searching

    Byte 1: Error status:
    0x00 No error
    0x01 Focus unlock
    0x02 Communication Error

    Byte 2: Disc/motor status:
    0x01 Motor Off (disc spinning down or tray opening/ed)
    0x02 Tray closed & motor Off (no disc loaded)
    0x11 Motor On

    Byte 3: Command/argument status:
    0x00 Normal
    0x01 Relative search or Mark Set pending (Enter not sent)
    0x03 Search pending (Enter not sent)
    0x05 Repeat pending (Enter not sent) or Memory Search in progress
    0x80 FWD or REV Step

    Byte 4: Playback mode:
    0x00 Searching, Motor On (spinning up), motor Off (spinning down), tray opened/ing (no motor phase lock)
    0x01 FWD Play
    0x02 FWD Fast
    0x04 FWD Slow
    0x08 FWD Step
    0x10 FWD Scan
    0x20 Still
    0x81 REV Play
    0x82 REV Fast
    0x84 REV Slow
    0x88 REV Step
    0x90 REV Scan

  2. Thanks for this. Why did you have to go back to MAME 0.111 ? Was this info removed?

  3. Yep Mame no more "emulate" the 1450