Alive
News Team Current issue History Online Support Download Forum @Pouet

01 - 02 - SE - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13 - 14

Alive 7
A FEW WORDS ABOUT THE

                         "VMU wildcompo entry"

                                at the

                          Error in Line #2003
------------------------------------------------------------------------------ 

        Dreamcast-owners  know the  little Visual Memory Card just
        like Playstation owners know their dual-shock controllers.
        The Visual Memory Unit (VMU) was  Sega's approach to add a
        little  more spice to the  conventional memory  cards. You
        plug them into your  controller, not into  the console, so
        you can have  up to 8 of  these little devices  (providing
        you have 4 joypads  connected) instead of  2 like it is on
        the   Playstation. You can  watch  the little  screen even
        when they  are  plugged  into  the controller  thanks to a
        window in  the Dreamcast  joypad. Due to  a little Piezzo-
        element, they   can  beep  and  inform  you  accoustically
        whether a file has  been saved  intact or not  and  thanks
        to a miniature joypad, 2 action  buttons, sleep  and  mode
        buttons, you  even  have a mini  game system  that you can
        upload  little  games to, using  the  Dreamcast, and  then
        play on the VMU.

        What sounds like a nifty  idea totally flopped, just like
        the whole  Dreamcast did. For a  memory card, the VMU was
        slightly too expensive and offering too little memory for
        game save files (1 MB). For a game  system, it  consummed
        batteries too  quickly (non-rechargeble  mini batteries),
        had  a  far too  little  display, little  joypad,  little
        buttons and a massive lack of decent software.

        Sega  tried to  slightly approach  the latter  problem by
        offering documentation  and development tools for the VMU
        without  any  "licensing" the  developpment, hoping  that
        freeware-authours  would  write a few games for  the VMU.
        And there are some, but frankly your mobile phone usually
        offers hotter games.

        Nevertheless, the documentation as  well as some parts of
        development tools are there, so I decided to use them for
        a little wild-compo entry and my personal contribution to
        the Dreamcast owners among the Atari community.

        You might probably want to know some technical details
        about this little device to judge the demo.

        The system more  or less consists  of one  chip, a Sanyo
        LC 86000/87. This chip can be run at a variety of clock-
        rates from 6KHz over 36KHz  up to 3.6 MHz (when docked).
        It is an  8-bit CPU  with an 8-bit  accumulator named A,
        2 8-bit  auxilary  registers  named  B and C, one 16-bit
        register for "far" memory  fetches named "TRH" and "TRL"
        (H for High- and B for  Low-Byte  of the  memory address
        to  fetch), supports   an    LC-Display   with  a  fixed
        resolution, one 16-bit   timer, serial   I/O through the
        docking  interface  and  one PWM  - module (Pulse-Width-
        Modulation) that  is  connected to   the  Piezzo-element
        and   can  therefore  produce  sounds. For the  experts,
        this little MCU even offers  a MAC  of 24 - bits width :
        Multiplying  8-bit  by  8-bit  numbers result  in 16-bit
        number (covered  by  A  and  B) and then allowing  up to
        8-bit  accumulation (covered  by  C so  that  the  whole
        result is stored in A, B and C).

        The LC - Display  attached  has  a  resolution of 48x32
        pixels, organized  in  two  screens of  48  x  16  each
        (Originally  assumed  by  the  Sanyo  LC86000 is one LC
        Display of 128 x 8 pixels = one line of 16 characters).
        The chipwas   meant to   have 512 KB  Flash  memory and
        256 Bytes of RAM. As the Dreamcast  VMU offers 2 memory
        pages (handled by  the Sanyo  itself), it has, in fact,
        512 Bytes of   RAM and  1 MB  of  Flash  memory, sadly,
        one  RAM - page (256) is  completely  used  up  by  the
        registers of the LC  86000 MCU, leaving  256  Bytes  of
        RAM. Also, the chip offers a 16-bit address as maximum
        address space, so  it  can only  use 64KB  of "ROM" (in
        the Flash-memory), but as it can handle 2 pages, it can
        use 128KB of "ROM". This "ROM" resides in the Flash-mem
        but sadly, Flash memory  cannot be  overwritten without
        erasing, and erasing  is organized in  blocks, hence it
        cannot be used as RAM.

       The demo features basically only three effects and some
       in-between graphics. The 3 effects are a  single scroll
       line  of 8  pixels  width, a bob-effect  and  a tunnel.
       The scroller just  works like  on any  other system, by
       shifting to  the left  over a Carry-Bit  which is  more
       or less what the LC86000 has been made for.

       The bob-effect  flickers like  mad  because  the  LCD
       screen doesn't allow double buffering (fixed address)
       and not enough RAM to have a buffer  in RAM  instead.

       Displayed  are 16  bobs and  each can  take a fully
       individual position (no fake). The bobs  are masked
       with their invert copy, so it's not a sensible mask,
       but they are masked.

       The tunnel involves two  routines. One that applies the
       tunnel-table  to  the  texture and  builds up a virtual
       screen of 16 x 16  pixels  resolution  with a   virtual
       colour-depth of   256  pixels, of  which  four are used
       (0 =   transparent,  1 =  light   grey, 2 =  dark grey,
       3 = black), the other routine turns this virtual screen
       to the 1-bit  display  required  by the  LCD (nicknamed
       c2b = chunky 2 bit-field).

       The demo has been  written in assembly  using an  official
       port of the Sanyo  LC86000  assembler, and  without Marcus
       Comstedt's   excellent  internet-documentation, this  demo
       wouldn't have been written either (was http://mc.pp.se/dc,
       but seems to be down now). Also, Marcus  Comstedt prepared
       an emulator for Linux/Unix which served me very well.

       So, in case you wondered about the wild-compo entry by
       us, i hope you have now understood  a little about the
       VMU and what's it all about.


      The Paranoid
      Paranoia

Alive 7