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.
Labels:
vldp-hw
Subscribe to:
Post Comments (Atom)
From Mame 0.111
ReplyDeleteByte 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
Thanks for this. Why did you have to go back to MAME 0.111 ? Was this info removed?
ReplyDeleteYep Mame no more "emulate" the 1450
ReplyDelete