Software MSX-driven Laserdisc player

Pagina 2/6
1 | | 3 | 4 | 5 | 6

Van Louthrax

Prophet (2406)

afbeelding van Louthrax

07-11-2015, 12:12

Thanks Eric for such a detailed answer.

Here's my plan for a 1st step:

  • Use Raspberry Pi. It's cheap (maybe cheaper than a VGA to compositve interface), small and has native composite & stereo output.
  • Make a Palcom PV-60 to PC serial port cable. Need to find the pinouts and avoid frying my Palcom during the operation.
  • Identify protocol used by Palcom BASIC to drive the Laserdisc (openMSX will help).
  • Code a simple (no GUI) custom Theora (.OGV) player, with stereo sound output, scanning the serial port. As the decoding will be software, be sure that the Raspberry is fast enough for 60FPS.
  • Create an MSX program to select a Laserdisc image from MSX. That avoids having to plug a mouse or keyboard on the Raspberry (just launch the Theora player at boot time and start scanning serial port).
  • Put a fancy "MSX Laserdisc Player" sticker on the Raspberry Smile

I did not realize first that the Palcom Laserdiscs had the programs on the Laserdisc itself, in the right audio channel. So having this working on any MSX with superimpose capability could be something like:

  • Create a joystick to PC serial port cable (as described here).
  • Link the right audio channel output of the Raspberry to the MSX tape port.
  • Ceate a new Palcom BASIC ROM (could be flashed in MFR), that would send the Laserdiscs command to the joystick port and read the data from the tape port instead of the PV-60 audio-input port (not sure at all if this could work).

Van ericb59

Paragon (1046)

afbeelding van ericb59

07-11-2015, 14:49

palcom made an expansion for Msx , the Er-101
you can find information here
http://msx.hansotten.com/index.php?page=msxmanuals

perhaps it can help.

My own idea was not to emulate the palcom system... but rework all system and even the video file.
because Palcom games are in fact very bad... The games released for the Victor VHD system are better, also other arcade game never published on Msx laserdisc can be rework and play on a new systzm.

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

07-11-2015, 15:01

ericb59 wrote:

palcom made an expansion for Msx , the Er-101
you can find information here
http://msx.hansotten.com/index.php?page=msxmanuals

perhaps it can help.

And there's one of these in Yahoo! Auctions right now.

Van Louthrax

Prophet (2406)

afbeelding van Louthrax

09-11-2015, 00:36

A quick summary of infos I've gathered around for this project:

Here's the pinout of the LD-700 Laserdisc player:

      7  1
           4
    a   b   c
           i
      g  h 

Pin functions from the LD-700 Laserdisc player side are:

     1   I  INT/ /EXT
     4   O  /EXT ACK
     7   I  EXT CONTROL
     a   -  GND (this is also the shielding)
     b   O  +11V (do not use as a powersource)    
     c   O  RF
     g   -  NC
     h   -  NC
     i   O  VIDEO (75 Ohm)

Source: Saku Taipale, http://www.faq.msxnet.org/connector.html

More details on the pin functions:

    PIN DIR NAME       FUNCTION
     1   I  INT/ /EXT  Signal when Laserdisc stops playing.
                       Used by the MSX to stop superimposing before it loses v-sync.
     4   O  /EXT ACK   Confirm command and completion.
                       When the MSX sends PLAY to the Laserdisc, ACK is held low
                       while the disc spins up. It goes back up once the disk is
                       playing.
     7   I  EXT        Commands sent from MSX using the NEC IR protocol.

Source: Sean Young, http://www.msx.org/forum/msx-talk/development/palcom-laserdi...

Description of the NEC IR protocol used on pin 7

The NEC IR transmission protocol uses pulse distance encoding of the message bits. Each pulse burst (mark – RC transmitter ON) is 562.5µs in length, at a carrier frequency of 38kHz (26.3µs). Logical bits are transmitted as follows:

  • Logical '0' – a 562.5µs pulse burst followed by a 562.5µs space, with a total transmit time of 1.125ms
  • Logical '1' – a 562.5µs pulse burst followed by a 1.6875ms space, with a total transmit time of 2.25ms

When transmitting or receiving remote control codes using the NEC IR transmission protocol, the WB_IRRC performs optimally when the carrier frequency (used for modulation/demodulation) is set to 38.222kHz.

When a key is pressed on the remote controller, the message transmitted consists of the following, in order:

  1. a 9ms leading pulse burst (16 times the pulse burst length used for a logical data bit)
  2. a 4.5ms space
  3. the 8-bit address for the receiving device
  4. the 8-bit logical inverse of the address
  5. the 8-bit command
  6. the 8-bit logical inverse of the command
  7. a final 562.5µs pulse burst to signify the end of message transmission.

The four bytes of data bits are each sent least significant bit first.

Source: Altium, http://techdocs.altium.com/display/FPGA/NEC+Infrared+Transmi...

Van Louthrax

Prophet (2406)

afbeelding van Louthrax

09-11-2015, 00:35

Some consequences of the above details:

  • Serial port might be too slow to decode the NEC IR protocol (and I would need to use direct serial port access, which is not supported anymore on modern Windows). Luckily, the Raspberry's are providing GPIO plugs that seems perfect for that purpose: https://www.raspberrypi.org/documentation/usage/gpio/
  • I might need a thread for GPIO decoding, and another thread for the .OGV video player.

I ordered some Raspberry to start coding stuff. Waiting for that, I'll do some tests using PC audio input to interpret the NEC IR signal (should be fast enough at 44Khz).

Van Louthrax

Prophet (2406)

afbeelding van Louthrax

09-11-2015, 00:42

ericb59 wrote:

My own idea was not to emulate the palcom system... but rework all system and even the video file.
because Palcom games are in fact very bad...

Must say that's not false, the (price / game interest) ratio for these games on eBay is just amazing Smile
But well, those are MSX games, and there's even a Konami title !

Van Pentarou

Champion (389)

afbeelding van Pentarou

09-11-2015, 18:29

What would be the point of all this effort?
I would understand if someone was looking at a way to use an industrial (generic) LD player instead of a dedicated player, so REAL hardware and software.
But since you'll be emulating the player why don't you just use OpenMSX?

Van Louthrax

Prophet (2406)

afbeelding van Louthrax

09-11-2015, 18:35

Pentarou wrote:

But since you'll be emulating the player why don't you just use OpenMSX?

I already do !

Pentarou wrote:

What would be the point of all this effort?

Always the same answer: because it's fun doing that Smile
Also, that might help for other projects that would use real but different hardware as you mentionned !

Van Pentarou

Champion (389)

afbeelding van Pentarou

09-11-2015, 23:57

Louthrax wrote:

Also, that might help for other projects that would use real but different hardware as you mentionned !

I don't see how that could be, since you won't be using "real hardware".
Anyway for RC5 decoding on the RasPI you could use LIRC.

Van Louthrax

Prophet (2406)

afbeelding van Louthrax

10-11-2015, 00:08

Pentarou wrote:

I don't see how that could be, since you won't be using "real hardware".

Maybe the simple fact of having all info (pinout, protocols) summarized here (or in the future project documentation), no ?

Pagina 2/6
1 | | 3 | 4 | 5 | 6