More Sega Channel prototypes dumped.

Discussion in 'General Sega Discussion' started by Kiddo Cabbusses, Jul 20, 2011.

  1. For reference, are we working with -both- US BIOs ROMs?
     
  2. DeanSatan

    DeanSatan

    Member
    233
    0
    0
    SF CA
    getting paid
    *nostalgic sigh*
     
  3. Has this brought up anything new you could discuss with us?
    Feels great to see you comment on the thread, BTW. :)

    On that note, since I already mentioned this elsewhere, I guess I'll type out the one experience with the Sega Channel I had as a child.

    I believe it was the 1995 (or 1996, but the former's more likely) Doylestown Arts Festival, strangely enough. The only store remotely connected to video games there is the Cyborg One comic book shop. But there, in the middle of the street, was a white cabinet - a Sega Channel Kiosk.
    I specifically remember seeing the menus in the Toejam-and-Earl style and playing "The Punisher" on the thing (with a time-reset condition similar to most Kiosks), and thinking it was the coolest thing ever, but because at the time I didn't live in Doylestown at the time (I was in Philly), I couldn't subscribe. This experience probably impacted much of how my nerddom's developed up to this point.

    I've been hoping that, someday, among the ROM dumps for Sega Channel circulating recently, will come the data that was in that Kiosk, complete with the ability to play various game demos.

    (Totally forgot if I brought this up before here.)
     
  4. Black Squirrel

    Black Squirrel

    Sometimes the real thing™ Wiki Sysop
    5,163
    58
    28
    Northumberland, England
    wiki wiki wiki
    Is there a mirror of the Demo #4 ROM - LocalH's link from 2009 which was plastered all over the net at the time has since expired.
     
  5. Teh ROM

    I do believe the ROM is also intergrated into the No-Intro sets as "Sega Channel Demo (USA) (Program).md"
     
  6. ICEknight

    ICEknight

    Researcher Researcher
    Jesus, that's on GoodGen level. Somebody should make an accurate ROM database for a change.
     
  7. No-Intro normally has higher standards than that, honestly. I think part of the reason for the sloppy name is related to their internal confusion over whether they want to handle "network" content like Sega Channel and Satellaview.

    (It also probably doesn't help that there wasn't a different demo up to this point - now... there are.)
     
  8. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    What should it be named? (I have an ever-growing list of naming issues to bring up...)
     
  9. evilhamwizard

    evilhamwizard

    Researcher
    1,313
    33
    28
    There's a lot of left over DOS, C, and assembler trash inside both of the Sega Channel roms:

    Code (Text):
    1. ********************************************************************************
    2. *              Project: Generations Lost                                       *
    3. *               Module: vectors.s                                              *
    4. *        Creation Date: July 1993                                              *
    5. *               Author: R. Frericks Jr.                                        *
    6. *   Development System: Sierra Systems 68000 Macro Assembler 3.0               *
    7. *                                                                              *
    8. *   Copyright (c)1993 Tengen Inc., Pacific SoftScape Inc.                      *
    9. ********************************************************************************
    10.                 nolist
    11.                 include genesis.I
    12.                 list
    13.  
    14. INITSTACK       equ     $ff8000                 ; Inital system stack pointer
    15.  
    16. *
    17. * First $100 bytes of the 68000 ROM space.
    18. *
    19.                 dc.l    INITSTACK               ; Reset: Initial stack pointer
    20.                 dc.l    ICD_BLK4                ; Reset: Initial program counter
    21.                 dc.l    _BusError               ; Bus Error exception
    22.                 dc.l    _AddressError           ; Addr Error execption
    23.                 dc.l    _StandardError          ; Illegal Instruction execption
    24.                 dc.l    _StandardError          ; Zero Divide execption
    25.                 dcb.l   25-6+1,_StandardError   ; Autovectors 6 through 25
    26.                 dc.l    _ExternalInt            ; Level 2 Interrupt
    27.                 dc.l    _StandardError          ; Level 3 Interrupt
    28.                 dc.l    _HorizontalInt          ; Level 4 Interrupt
    29.                 dc.l    _StandardError          ; Level 5 Interrupt
    30.                 dc.l    _VerticalInt            ; Level 6 Interrupt
    31.                 dc.l    _StandardError          ; Level 7 Interrupt
    32.                 dc.l    _NoVRAMerror            ; Trap 0
    33.                 dc.l    _NoSATerror             ; Trap 1
    34.                 dc.l    _NoObjectsError         ; Trap 2
    35.                 dcb.l   63-35+1,_StandardError  ; Autovectors 35 through 63
    Code (Text):
    1. .opt    proc=68000
    2.     .file   "..\c\header.c"
    3.     .def    BYTE\   .scl    13\ .type   0xc\    .endef
    4.     .def    WORD\   .scl    13\ .type   0xd\    .endef
    5.     .def    DWORD\  .scl    13\ .type   0xf\    .endef
    6.     .def    tagGENESIS_HEADER\  .scl    10\ .type   0x8\    .size   256\    .endef
    7.     .def    System\ .val    0\  .scl    8\  .type   0x32\   .line   23\ .size   16\ .dim    16\ .endef
    8.     .def    ReleaseYearMonth\   .val    16\ .scl    8\  .type   0x32\   .line   24\ .size   16\ .dim    16\ .endef
    9.     .def    GameNameDomestic\   .val    32\ .scl    8\  .type   0x32\   .line   25\ .size   48\ .dim    48\ .endef
    10.     .def    GameNameOverseas\   .val    80\ .scl    8\  .type   0x32\   .line   26\ .size   48\ .dim    48\ .endef
    11.     .def    ProductNumVersion\  .val    128\    .scl    8\  .type   0x32\   .line   27\ .size   14\ .dim    14\ .endef
    12.     .def    CheckSum\   .val    142\    .scl    8\  .type   0xd\    .endef
    13.     .def    IOusage\    .val    144\    .scl    8\  .type   0x32\   .line   29\ .size   16\ .dim    16\ .endef
    14.     .def    RomStart\   .val    160\    .scl    8\  .type   0xf\    .endef
    15.     .def    RomEnd\ .val    164\    .scl    8\  .type   0xf\    .endef
    16.     .def    RamStart\   .val    168\    .scl    8\  .type   0xf\    .endef
    17.     .def    RamEnd\ .val    172\    .scl    8\  .type   0xf\    .endef
    18.     .def    ExternalRam\    .val    176\    .scl    8\  .type   0x32\   .line   32\ .size   12\ .dim    12\ .endef
    19.     .def    ModemData\  .val    188\    .scl    8\  .type   0x32\   .line   33\ .size   12\ .dim    12\ .endef
    20.     .def    Memo\   .val    200\    .scl    8\  .type   0x32\   .line   34\ .size   40\ .dim    40\ .endef
    21.     .def    Country\    .val    240\    .scl    8\  .type   0x32\   .line   35\ .size   16\ .dim    16\ .endef
    22.     .def    .eos\   .val    256\    .scl    102\    .size   256\    .tag    tagGENESIS_HEADER\  .endef
    23.     .def    GENESIS_HEADER\ .scl    13\ .type   0x8\    .size   256\    .tag    tagGENESIS_HEADER\  .endef
    24.     .def    tagINIT_REGISTERS\  .scl    10\ .type   0x8\    .size   15\ .endef
    25.     .def    ModeSet1\   .val    0\  .scl    8\  .type   0xc\    .endef
    26.     .def    ModeSet2\   .val    1\  .scl    8\  .type   0xc\    .endef
    27.     .def    PatternBaseAddrA\   .val    2\  .scl    8\  .type   0xc\    .endef
    28.     .def    PatternBaseAddrW\   .val    3\  .scl    8\  .type   0xc\    .endef
    29.     .def    PatternBaseAddrB\   .val    4\  .scl    8\  .type   0xc\    .endef
    30.     .def    SatBaseAddr\    .val    5\  .scl    8\  .type   0xc\    .endef
    31.     .def    BkColor\    .val    6\  .scl    8\  .type   0xc\    .endef
    32.     .def    HInt\   .val    7\  .scl    8\  .type   0xc\    .endef
    33.     .def    ModeSet3\   .val    8\  .scl    8\  .type   0xc\    .endef
    34.     .def    ModeSet4\   .val    9\  .scl    8\  .type   0xc\    .endef
    35.     .def    HScrollAddr\    .val    10\ .scl    8\  .type   0xc\    .endef
    36.     .def    AutoIncrement\  .val    11\ .scl    8\  .type   0xc\    .endef
    37.     .def    ScrollSize\ .val    12\ .scl    8\  .type   0xc\    .endef
    38.     .def    WindowHpos\ .val    13\ .scl    8\  .type   0xc\    .endef
    39.     .def    WindowVpos\ .val    14\ .scl    8\  .type   0xc\    .endef
    40.     .def    .eos\   .val    15\ .scl    102\    .size   15\ .tag    tagINIT_REGISTERS\  .endef
    41.     .def    INIT_REGISTERS\ .scl    13\ .type   0x8\    .size   15\ .tag    tagINIT_REGISTERS\  .endef
    42.     .text
    43.     .align  2
    44.     .globl  _header
    45. _header:
    46.     .byte   "SEGA GENESIS\0"
    47.     .space  3
    48.     .byte   "(C)T-XX 1994.JAN"
    49.     .byte   "Sega Channel    \0"
    50.     .space  31
    51.     .byte   "Sega Channel    \0"
    52.     .space  31
    53.     .byte   "GM T-000000 00"
    54.     .word   0x0
    55.     .byte   "J\0"
    56.     .space  14
    57.     .long   0x0
    58.     .long   0xfffff
    59.     .long   0xff0000
    60.     .long   0xffffff
    61.     .byte   "\0"
    62.     .space  11
    63.     .byte   "\0"
    64.     .space  11
    65.     .byte   "Developed by Pacific SoftScape Inc.\0"
    66.     .space  4
    67.     .byte   "JUE\0"
    68.     .space  12
    69.     .def    _header\    .val    _header\    .scl    2\  .type   0x8\    .size   256\    .tag    tagGENESIS_HEADER\  .endef
    Code (Text):
    1. AboutBox:
    2. Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    1
    3.  
    4.    1 T                              .opt    proc=68000
    5.    2 T                              .file   "..\c\globals.c"
    6.    3 T                              .def    size_t\ .scl    13\ .type   0xf\    .endef
    7.    4 T                              .def    va_list\    .scl    13\ .type   0x12\   .endef
    8.    5 T                              .def    _iobuf\ .scl    10\ .type   0x8\    .size   28\ .endef
    9.    6 T                              .def    ptr\    .val    0\  .scl    8\  .type   0x12\   .endef
    10.    7 T                              .def    base\   .val    4\  .scl    8\  .type   0x12\   .endef
    11.    8 T                              .def    cnt\    .val    8\  .scl    8\  .type   0x4\    .endef
    12.    9 T                              .def    fd\ .val    12\ .scl    8\  .type   0x4\    .endef
    13.   10 T                              .def    bufsize\    .val    16\ .scl    8\  .type   0x4\    .endef
    14.   11 T                              .def    save_cnt\   .val    20\ .scl    8\  .type   0x4\    .endef
    15.   12 T                              .def    flags\  .val    24\ .scl    8\  .type   0x3\    .endef
    16.   13 T                              .def    ungch\  .val    26\ .scl    8\  .type   0x2\    .endef
    17.   14 T                              .def    .eos\   .val    28\ .scl    102\    .size   28\ .tag    _iobuf\ .endef
    18.   15 T                              .def    FILE\   .scl    13\ .type   0x8\    .size   28\ .tag    _iobuf\ .endef
    19.   16 T                              .def    fpos_t\ .scl    13\ .type   0xf\    .endef
    20.   17 T                              .def    BYTE\   .scl    13\ .type   0xc\    .endef
    21.   18 T                              .def    WORD\   .scl    13\ .type   0xd\    .endef
    22.   19 T                              .def    DWORD\  .scl    13\ .type   0xf\    .endef
    23.   20 T                              .def    tagGENESIS_HEADER\  .scl    10\ .type   0x8\    .size   256\    .endef
    24.   21 T                              .def    System\ .val    0\  .scl    8\  .type   0x32\   .line   23\ .size   16\ .dim    16\ .endef
    25.   22 T                              .def    ReleaseYearMonth\   .val    16\ .scl    8\  .type   0x32\   .line   24\ .size   16\ .dim    16\ .endef
    26.   23 T                              .def    GameNameDomestic\   .val    32\ .scl    8\  .type   0x32\   .line   25\ .size   48\ .dim    48\ .endef
    27.   24 T                              .def    GameNameOverseas\   .val    80\ .scl    8\  .type   0x32\   .line   26\ .size   48\ .dim    48\ .endef
    28.   25 T                              .def    ProductNumVersion\  .val    128\    .scl    8\  .type   0x32\   .line   27\ .size   14\ .dim    14\ .endef
    29.   26 T                              .def    CheckSum\   .val    142\    .scl    8\  .type   0xd\    .endef
    30.   27 T                              .def    IOusage\    .val    144\    .scl    8\  .type   0x32\   .line   29\ .size   16\ .dim    16\ .endef
    31.   28 T                              .def    RomStart\   .val    160\    .scl    8\  .type   0xf\    .endef
    32.   29 T                              .def    RomEnd\ .val    164\    .scl    8\  .type   0xf\    .endef
    33.   30 T                              .def    RamStart\   .val    168\    .scl    8\  .type   0xf\    .endef
    34.   31 T                              .def    RamEnd\ .val    172\    .scl    8\  .type   0xf\    .endef
    35.   32 T                              .def    ExternalRam\    .val    176\    .scl    8\  .type   0x32\   .line   32\ .size   12\ .dim    12\ .endef
    36.   33 T                              .def    ModemData\  .val    188\    .scl    8\  .type   0x32\   .line   33\ .size   12\ .dim    12\ .endef
    37.   34 T                              .def    Memo\   .val    200\    .scl    8\  .type   0x32\   .line   34\ .size   40\ .dim    40\ .endef
    38.   35 T                              .def    Country\    .val    240\    .scl    8\  .type   0x32\   .line   35\ .size   16\ .dim    16\ .endef
    39.   36 T                              .def    .eos\   .val    256\    .scl    102\    .size   256\    .tag    tagGENESIS_HEADER\  .endef
    40.   37 T                              .def    GENESIS_HEADER\ .scl    13\ .type   0x8\    .size   256\    .tag    tagGENESIS_HEADER\  .endef
    41.   38 T                              .def    tagINIT_REGISTERS\  .scl    10\ .type   0x8\    .size   15\ .endef
    42.   39 T                              .def    ModeSet1\   .val    0\  .scl    8\  .type   0xc\    .endef
    43.   40 T                              .def    ModeSet2\   .val    1\  .scl    8\  .type   0xc\    .endef
    44.   41 T                              .def    PatternBaseAddrA\   .val    2\  .scl    8\  .type   0xc\    .endef
    45.   42 T                              .def    PatternBaseAddrW\   .val    3\  .scl    8\  .type   0xc\    .endef
    46.   43 T                              .def    PatternBaseAddrB\   .val    4\  .scl    8\  .type   0xc\    .endef
    47.   44 T                              .def    SatBaseAddr\    .val    5\  .scl    8\  .type   0xc\    .endef
    48.   45 T                              .def    BkColor\    .val    6\  .scl    8\  .type   0xc\    .endef
    49.   46 T                              .def    HInt\   .val    7\  .scl    8\  .type   0xc\    .endef
    50.   47 T                              .def    ModeSet3\   .val    8\  .scl    8\  .type   0xc\    .endef
    51.   48 T                              .def    ModeSet4\   .val    9\  .scl    8\  .type   0xc\    .endef
    52.   49 T                              .def    HScrollAddr\    .val    10\ .scl    8\  .type   0xc\    .endef
    53.   50 T                              .def    AutoIncrement\  .val    11\ .scl    8\  .type   0xc\    .endef
    54.   51 T                              .def    ScrollSize\ .val    12\ .scl    8\  .type   0xc\    .endef
    55.   52 T                              .def    WindowHpos\ .val    13\ .scl    8\  .type   0xc\    .endef
    56.   53 T                              .def    WindowVpos\ .val    14\ .scl    8\  .type   0xc\    .endef
    57.   54 T                              .def    .eos\   .val    15\ .scl    102\    .size   15\ .tag    tagINIT_REGISTERS\  .endef
    58.   55 T                              .def    INIT_REGISTERS\ .scl    13\ .type   0x8\    .size   15\ .tag    tagINIT_REGISTERS\  .endef
    59.   56 T                              .def    tagACTOR_DATA\  .scl    10\ .type   0x8\    .size   34\ .endef
    60.   57 T                              .def    pCurrentFrame\  .val    0\  .scl    8\  .type   0x1d\   .endef
    61.   58 T                              .def    pNextFrame\ .val    4\  .scl    8\  .type   0x1d\   .endef
    62.   59 T                              .def    pRomData\   .val    8\  .scl    8\  .type   0x1d\   .endef
    63.   60 T                              .def    Xpos\   .val    12\ .scl    8\  .type   0xd\    .endef
    64.   61 T                              .def    Xfrac\  .val    14\ .scl    8\  .type   0xd\    .endef
    65. Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    2
    66.  
    67.        SECTION: .text
    68.   62 T                              .def    Ypos\   .val    16\ .scl    8\  .type   0xd\    .endef
    69.   63 T                              .def    Yfrac\  .val    18\ .scl    8\  .type   0xd\    .endef
    70.   64 T                              .def    X1\ .val    20\ .scl    8\  .type   0xd\    .endef
    71.   65 T                              .def    Y1\ .val    22\ .scl    8\  .type   0xd\    .endef
    72.   66 T                              .def    X2\ .val    24\ .scl    8\  .type   0xd\    .endef
    73.   67 T                              .def    Y2\ .val    26\ .scl    8\  .type   0xd\    .endef
    74.   68 T                              .def    Flags\  .val    28\ .scl    8\  .type   0xc\    .endef
    75.   69 T                              .def    InternalFlags\  .val    29\ .scl    8\  .type   0xc\    .endef
    76.   70 T                              .def    Blank\  .val    30\ .scl    8\  .type   0xc\    .endef
    77.   71 T                              .def    FrameCounter\   .val    31\ .scl    8\  .type   0xc\    .endef
    78.   72 T                              .def    SATindex\   .val    32\ .scl    8\  .type   0xc\    .endef
    79.   73 T                              .def    NumSAT\ .val    33\ .scl    8\  .type   0xc\    .endef
    80.   74 T                              .def    .eos\   .val    34\ .scl    102\    .size   34\ .tag    tagACTOR_DATA\  .endef
    81.   75 T                              .def    ACTOR_DATA\ .scl    13\ .type   0x8\    .size   34\ .tag    tagACTOR_DATA\  .endef
    82.   76 T                              .def    tagHERO\    .scl    10\ .type   0x8\    .size   98\ .endef
    83.   77 T                              .def    actor\  .val    0\  .scl    8\  .type   0x8\    .size   34\ .tag    tagACTOR_DATA\  .endef
    84.   78 T                              .def    pRomData\   .val    34\ .scl    8\  .type   0x1d\   .endef
    85.   79 T                              .def    MessageFunction\    .val    38\ .scl    8\  .type   0x90\   .endef
    86.   80 T                              .def    Health\ .val    42\ .scl    8\  .type   0xd\    .endef
    87.   81 T                              .def    StateFunction\  .val    44\ .scl    8\  .type   0x90\   .endef
    88.   82 T                              .def    Xvel\   .val    48\ .scl    8\  .type   0xd\    .endef
    89.   83 T                              .def    Xfrac\  .val    50\ .scl    8\  .type   0xd\    .endef
    90.   84 T                              .def    Xaccel\ .val    52\ .scl    8\  .type   0xd\    .endef
    91.   85 T                              .def    Xafrac\ .val    54\ .scl    8\  .type   0xd\    .endef
    92.   86 T                              .def    Xmax\   .val    56\ .scl    8\  .type   0xd\    .endef
    93.   87 T                              .def    Xmfrac\ .val    58\ .scl    8\  .type   0xd\    .endef
    94.   88 T                              .def    Yvel\   .val    60\ .scl    8\  .type   0xd\    .endef
    95.   89 T                              .def    Yfrac\  .val    62\ .scl    8\  .type   0xd\    .endef
    96.   90 T                              .def    Yaccel\ .val    64\ .scl    8\  .type   0xd\    .endef
    97.   91 T                              .def    Yafrac\ .val    66\ .scl    8\  .type   0xd\    .endef
    98.   92 T                              .def    Ymax\   .val    68\ .scl    8\  .type   0xd\    .endef
    99.   93 T                              .def    Ymfrac\ .val    70\ .scl    8\  .type   0xd\    .endef
    100.   94 T                              .def    param0\ .val    72\ .scl    8\  .type   0xd\    .endef
    101.   95 T                              .def    param1\ .val    74\ .scl    8\  .type   0xd\    .endef
    102.   96 T                              .def    param2\ .val    76\ .scl    8\  .type   0xd\    .endef
    103.   97 T                              .def    param3\ .val    78\ .scl    8\  .type   0xd\    .endef
    104.   98 T                              .def    param4\ .val    80\ .scl    8\  .type   0xd\    .endef
    105.   99 T                              .def    param5\ .val    82\ .scl    8\  .type   0xd\    .endef
    106.  100 T                              .def    Flags1\ .val    84\ .scl    8\  .type   0xc\    .endef
    107.  101 T                              .def    Flags2\ .val    85\ .scl    8\  .type   0xc\    .endef
    108.  102 T                              .def    NextState\  .val    86\ .scl    8\  .type   0xd\    .endef
    109.  103 T                              .def    CurrentState\   .val    88\ .scl    8\  .type   0xd\    .endef
    110.  104 T                              .def    pStateInfo\ .val    90\ .scl    8\  .type   0x1d\   .endef
    111.  105 T                              .def    pPlatform\  .val    94\ .scl    8\  .type   0x10\   .endef
    112.  106 T                              .def    .eos\   .val    98\ .scl    102\    .size   98\ .tag    tagHERO\    .endef
    113.  107 T                              .def    HERO\   .scl    13\ .type   0x8\    .size   98\ .tag    tagHERO\    .endef
    114.  108 T                              .def    tagOBJECT\  .scl    10\ .type   0x8\    .size   102\    .endef
    115.  109 T                              .def    actor\  .val    0\  .scl    8\  .type   0x8\    .size   34\ .tag    tagACTOR_DATA\  .endef
    116.  110 T                              .def    pRomData\   .val    34\ .scl    8\  .type   0x1d\   .endef
    117.  111 T                              .def    MessageFunction\    .val    38\ .scl    8\  .type   0x90\   .endef
    118.  112 T                              .def    Health\ .val    42\ .scl    8\  .type   0xd\    .endef
    119.  113 T                              .def    StateFunction\  .val    44\ .scl    8\  .type   0x90\   .endef
    120.  114 T                              .def    Xvel\   .val    48\ .scl    8\  .type   0xd\    .endef
    121.  115 T                              .def    Xfrac\  .val    50\ .scl    8\  .type   0xd\    .endef
    122.  116 T                              .def    Xaccel\ .val    52\ .scl    8\  .type   0xd\    .endef
    123.  117 T                              .def    Xafrac\ .val    54\ .scl    8\  .type   0xd\    .endef
    124.  118 T                              .def    Xmax\   .val    56\ .scl    8\  .type   0xd\    .endef
    125.  119 T                              .def    Xmfrac\ .val    58\ .scl    8\  .type   0xd\    .endef
    126.  120 T                              .def    Yvel\   .val    60\ .scl    8\  .type   0xd\    .endef
    127.  121 T                              .def    Yfrac\  .val    62\ .scl    8\  .type   0xd\    .endef
    128. Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    3
    129.  
    130.        SECTION: .text
    131.  122 T                              .def    Yaccel\ .val    64\ .scl    8\  .type   0xd\    .endef
    132.  123 T                              .def    Yafrac\ .val    66\ .scl    8\  .type   0xd\    .endef
    133.  124 T                              .def    Ymax\   .val    68\ .scl    8\  .type   0xd\    .endef
    134.  125 T                              .def    Ymfrac\ .val    70\ .scl    8\  .type   0xd\    .endef
    135.  126 T                              .def    param0\ .val    72\ .scl    8\  .type   0xd\    .endef
    136.  127 T                              .def    param1\ .val    74\ .scl    8\  .type   0xd\    .endef
    137.  128 T                              .def    param2\ .val    76\ .scl    8\  .type   0xd\    .endef
    138.  129 T                              .def    param3\ .val    78\ .scl    8\  .type   0xd\    .endef
    139.  130 T                              .def    param4\ .val    80\ .scl    8\  .type   0xd\    .endef
    140.  131 T                              .def    param5\ .val    82\ .scl    8\  .type   0xd\    .endef
    141.  132 T                              .def    Flags1\ .val    84\ .scl    8\  .type   0xc\    .endef
    142.  133 T                              .def    Flags2\ .val    85\ .scl    8\  .type   0xc\    .endef
    143.  134 T                              .def    NextState\  .val    86\ .scl    8\  .type   0xd\    .endef
    144.  135 T                              .def    CurrentState\   .val    88\ .scl    8\  .type   0xd\    .endef
    145.  136 T                              .def    pStateInfo\ .val    90\ .scl    8\  .type   0x1d\   .endef
    146.  137 T                              .def    pPlatform\  .val    94\ .scl    8\  .type   0x10\   .endef
    147.  138 T                              .def    PrevObject\ .val    98\ .scl    8\  .type   0xd\    .endef
    148.  139 T                              .def    NextObject\ .val    100\    .scl    8\  .type   0xd\    .endef
    149.  140 T                              .def    .eos\   .val    102\    .scl    102\    .size   102\    .tag    tagOBJECT\  .endef
    150.  141 T                              .def    OBJECT\ .scl    13\ .type   0x8\    .size   102\    .tag    tagOBJECT\  .endef
    151.  142 T                              .text
    152.        SECTION: .text
    153.  143 T                              .globl  _ResetRegisters
    154.  144 T 00000000                 _ResetRegisters:
    155.  145 T 00000000 06                  .byte   0x6
    156.  146 T 00000001 64                  .byte   0x64
    157.  147 T 00000002 30                  .byte   0x30
    158.  148 T 00000003 30                  .byte   0x30
    159.  149 T 00000004 07                  .byte   0x7
    160.  150 T 00000005 5e                  .byte   0x5e
    161.  151 T 00000006 00                  .byte   0x0
    162.  152 T 00000007 00                  .byte   0x0
    163.  153 T 00000008 08                  .byte   0x8
    164.  154 T 00000009 81                  .byte   0x81
    165.  155 T 0000000a 00                  .byte   0x0
    166.  156 T 0000000b 02                  .byte   0x2
    167.  157 T 0000000c 11                  .byte   0x11
    168.  158 T 0000000d 00                  .byte   0x0
    169.  159 T 0000000e 00                  .byte   0x0
    170.  160 T                              .def    _ResetRegisters\    .val    _ResetRegisters\    .scl    2\  .type   0x8\    .size   15\ .tag    tagINIT_REGISTERS\  .endef
    171.  161 T 0000000f                     .align  2
    172.  162 T                              .globl  _Stub
    173.  163 T                              .def    _Stub\  .val    _Stub\  .scl    2\  .type   0x20\   .endef
    174.  164 T 00000010                 _Stub:
    175.  165 T 00000010 4e56 fffc           link    a6,#-4
    176.  166 T 00000014                     .ln     1
    177.  167 T                              .def    .bf\    .val    .\  .scl    101\    .line   56\ .endef
    178.  168 T                              .def    .ef\    .val    .\  .scl    101\    .line   57\ .endef
    179.  169 T 00000014                     .ln     2
    180.  170 T 00000014 4e5e                unlk    a6
    181.  171 T 00000016 4e75                rts
    182.  172 T                              .def    _Stub\  .val    .\  .scl    -1\ .endef
    183.  173 T                              .def    _Hero\  .val    _Hero\  .scl    2\  .type   0x8\    .size   98\ .tag    tagHERO\    .endef
    184.  174 T                              .comm   _Hero,98,2
    185.  175 T                              .def    _object\    .val    _object\    .scl    2\  .type   0x38\   .line   62\ .size   5100\   .tag    tagOBJECT\  .dim    50\ .endef
    186.  176 T                              .comm   _object,5100,2
    187.  177 T                              .def    _WorldXpos\ .val    _WorldXpos\ .scl    2\  .type   0xf\    .endef
    188.  178 T                              .comm   _WorldXpos,4,2
    189.  179 T                              .def    _WorldYpos\ .val    _WorldYpos\ .scl    2\  .type   0xf\    .endef
    190.  180 T                              .comm   _WorldYpos,4,2
    191. Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    4
    192.  
    193.        SECTION: .text
    194.  181 T                              .def    _MinWorldX\ .val    _MinWorldX\ .scl    2\  .type   0xd\    .endef
    195.  182 T                              .comm   _MinWorldX,2,2
    196.  183 T                              .def    _MaxWorldX\ .val    _MaxWorldX\ .scl    2\  .type   0xd\    .endef
    197.  184 T                              .comm   _MaxWorldX,2,2
    198.  185 T                              .def    _MinWorldY\ .val    _MinWorldY\ .scl    2\  .type   0xd\    .endef
    199.  186 T                              .comm   _MinWorldY,2,2
    200.  187 T                              .def    _MaxWorldY\ .val    _MaxWorldY\ .scl    2\  .type   0xd\    .endef
    201.  188 T                              .comm   _MaxWorldY,2,2
    202.  189 T                              .def    _CurrentSequence\   .val    _CurrentSequence\   .scl    2\  .type   0xd\    .endef
    203.  190 T                              .comm   _CurrentSequence,2,2
    204.  191 T                              .def    _pSubmenu\  .val    _pSubmenu\  .scl    2\  .type   0x10\   .endef
    205.  192 T                              .comm   _pSubmenu,4,2
    206.  193 T                              .def    _GameFlags\ .val    _GameFlags\ .scl    2\  .type   0xd\    .endef
    207.  194 T                              .comm   _GameFlags,2,2
    208.  195 T                              .def    _BackdropRate\  .val    _BackdropRate\  .scl    2\  .type   0xc\    .endef
    209.  196 T                              .comm   _BackdropRate,1,1
    210.  
    211. Total Errors:      0
    212. Total Warnings:    0
    213.  
    214. SYMBOL TABLE
    215.  
    216. Value     Section/Type  Name
    217.  
    218. 00000000  .text         _ResetRegisters
    219. 00000010  .text         _Stub
    220.  
    221.           UNDEFINED     _P
    Code (Text):
    1.           UNDEFINED     _CurrentSequence
    2.           UNDEFINED     _GameFlags
    3.           UNDEFINED     _Hero
    4.           UNDEFINED     _MaxWorldX
    5.           UNDEFINED     _MaxWorldY
    6.           UNDEFINED     _MinWorldX
    7.           UNDEFINED     _MinWorldY
    8.           UNDEFINED     _WorldXpos
    9.           UNDEFINED     _WorldYpos
    10.           UNDEFINED     _object
    11.           UNDEFINED     _pSubmenu
    12. e
    13.  
    14. 00000000  .text         _ResetRegisters
    15. 00000010  .text         _Stub
    16.  
    17.           UNDEFINED     _
    Code (Text):
    1. /****************************************************************************
    2. *                                                                           *
    3. *              Project: SEGA CHANNEL                                        *
    4. *                                                                           *
    5. *               Module: GLOBALS.C                                           *
    6. *                                                                           *
    7. * Module Creation Date: October 1993                                        *
    8. *                                                                           *
    9. *               Author: J. Fort                                             *
    10. *                                                                           *
    11. *   Development System: Sierra C 3.0                                        *
    12. *                                                                           *
    13. *    Copyright (c)1993 Pacific SoftScape Inc.                               *
    14. *                                                                           *
    15. ****************************************************************************/
    16.  
    17. #include <stdio.h>
    18. #include "genesis.h"
    19. #include "actor.h"
    20. #include "objeng.h"
    21.  
    22.  
    23. const INIT_REGISTERS ResetRegisters =
    24. {
    25.     0x06,               /*         ModeSet1: disable H int, stop H&V ctrs */
    26.     0x64,               /*         ModeSet2: enable display, enable V int */
    27.     0x30,               /* PatternBaseAddrA: @ $C000 */
    28.     0x30,               /* PatternBaseAddrW: @ $C000 */
    29.     0x07,               /* PatternBaseAddrB: @ $e000 */
    30.     0x5e,               /*      SatBaseAddr: @ $bc00 */
    31.     0x00,               /*          BkColor: color zero */
    32.     0x00,               /*             HInt:    */
    33. #ifdef  _DEBUG
    34.     0x08,               /*         ModeSet3: enable ext int, full scroll */
    35. #else
    36.     0x08,               /*         ModeSet3: full scroll */
    37. #endif
    38.     0x81,               /*         ModeSet4: h 40 cell mode */
    39.     0x00,               /*      HScrollAddr: @ $0000 */
    40.     0x02,               /*    AutoIncrement: 2 */
    41.     0x11,               /*       ScrollSize: 64 x 64 maps */
    42.     0x00,               /*       WindowHpos:    */
    43.     0x00,               /*       WindowVpos:    */
    44. };
    45.  
    46.  
    47. /***************************************************************************
    48.   FUNCTION:     Stub -- do nothing
    49.   DESCRIPTION:  .
    50.   RETURNS:      .
    51.   PARAMETERS:   .
    52.   SIDE EFFECTS: .
    53.   REVISIONS:    10/93   -jf-
    54. ****************************************************************************/
    55. void Stub(void)
    56. {
    57. }
    58.  
    59.  
    60.  
    61. HERO    Hero;
    62. OBJECT  object[MAX_OBJECTS];
    63.  
    64. DWORD   WorldXpos;                  /* 16:16 fixed point world position */
    65. DWORD   WorldYpos;                  /* 16:16 fixed point world position */
    66.  
    67. WORD    MinWorldX,MaxWorldX;        /* world X limits */
    68. WORD    MinWorldY,MaxWorldY;        /* world Y limits */
    69.  
    70. WORD    CurrentSequence;            /* All purpose sequence counter */
    71. void    *pSubmenu;                  /* Pointer to submenu */
    72.  
    73. WORD    GameFlags;                  /* Where ICON's get thier data from */
    74.  
    75. BYTE    BackdropRate;               /* Where we ALWAYS get our backdrop reload from */
    Code (Text):
    1. *                                                                           *
    2. *              Project: Genesis CORE CODE                                   *
    3. *                                                                           *
    4. *               Module: STDOUT.S                                            *
    5. *                                                                           *
    6. * Module Creation Date: October 1993                                        *
    7. *                                                                           *
    8. *               Author: J. Fort                                             *
    9. *                                                                           *
    10. *   Development System: SIERRA SYSTEMS 3.0                                  *
    11. *                                                                           *
    12. *    Copyright (c)1993 Pacific SoftScape Inc                                *
    13. *                                                                           *
    14. *****************************************************************************
    15. *
    16. * Standard output and console routines. All output assumes MAPA and
    17. * 64x64 maps. Very little error checking, call with good data.
    18. * All positions are relative to the current window.
    19. *
    20. *
    21.  
    22.  
    23.  
    24.                 nolist
    25.                 include genesis.I
    26.                 include actor.I
    27.                 include schannel.I
    28.                 list
    29.  
    30.                 section .bss
    31. ** Current console I/O locations
    32. Row             ds.w    1
    33. Col             ds.w    1
    34. MinRow          ds.w    1
    35. MinCol          ds.w    1
    36. MaxRow          ds.w    1
    37. MaxCol          ds.w    1
    38.  
    39.  
    40.         xdef    FontOffset
    41. FontOffset      ds.w    1       ; Character offset for font addr calculations
    42.  
    43. DmaCount        ds.w    1
    44.  
    45. ScrollDMA       ds.w    8       ; 10 bytes for DMA setup
    46. ScrollDMA2      ds.w    8       ; Another 8 words
    47. BottomVRAM      ds.l    1       ; Command to set vram address
    48. NumCol          ds.w    1       ; # of columns
    49.  
    50.  
    51. DMA_SRCLO       EQU     7
    52. DMA_SRCHI       EQU     9
    53. DMA_DEST        EQU     12
    54.  
    55.  
    56.  
    57.                 tsection .text
    58.  
    59.  
    60.         xdef    _SetFontPriPal,SetFontPriPal
    61. ****************************************************************************
    62. * DESCRIPTION:  Sets up priority and palette fields for all subsequent
    63. *               text output. Will be erased by a call to _SetupStdout
    64. *               Can also setup the font to be flipped if desired.
    65. * RETURNS:      .
    66. * PARAMETERS:   WORD - genesis format pri/pal data. Will be ADDED to the
    67. *               base font data. (D0 - SP+4)
    68. * SIDE EFFECTS:
    69. * REVISIONS:    10/93   -jf-
    70. ****************************************************************************
    71. _SetFontPriPal:
    72.                 move.w  4(sp),d0
    73. SetFontPriPal:
    74.                 and.w   #$07FF,FontOffset
    75.                 and.w   #$F800,d0
    76.                 or.w    d0,FontOffset
    77.                 rts
    78.  
    79.  
    80.         xdef    SetTextPosition,_SetTextPosition
    81. ****************************************************************************
    82. * DESCRIPTION:  Sets up the console position for all subsequent writes
    83. * RETURNS:      .
    84. * PARAMETERS:   SHORT xposition         D0  SP+4
    85. *               SHORT yposition         D1  SP+6
    86. * SIDE EFFECTS:
    87. * REVISIONS:    10/93   -jf-
    88. ****************************************************************************
    89. _SetTextPosition:
    90.                 move.w  4(sp),d0
    91.                 move.w  6(sp),d1
    92. SetTextPosition:
    93.                 add.w   MinRow,d1
    94.                 cmp.w   MaxRow,d1       ;
    95.                 JBE.s   STP_1
    96.                 move.w  MinRow,d1       ; We're too big...
    97. STP_1:
    98.                 move.w  d1,Row
    99.                 add.w   MinCol,d0       ; Offset for minimuims
    100.                 cmp.w   MaxCol,d0
    101.                 JBE.s   STP_2
    102.                 move.w  MinCol,d0
    103. STP_2
    104.                 move.w  D0,Col
    105.                 rts
    106.  
    107.  
    108.         xdef    _SetTextWindow
    109. ****************************************************************************
    110. * DESCRIPTION:  Sets up the extents of the text window for the STDOUT
    111. *               functions. Also resets the origin of the window to 0,0
    112. *               Sets up the DMA's for the scroll
    113. * RETURNS:      .
    114. * PARAMETERS:   WORD UpperLeft X        SP+4
    115. *               WORD UpperLeft Y        SP+6
    116. *               WORD LowerRight X       SP+8
    117. *               WORD LowerRight Y       SP+10
    118. *       OR PASS A POINTER TO AN ARRAY LIKE ABOVE TO SetTextWindow
    119. * SIDE EFFECTS:
    120. * REVISIONS:    10/93   -jf-
    121. ****************************************************************************
    122. _SetTextWindow
    123.                 lea     4(sp),a0
    124. SetTextWindow:
    125.                 move.w  (a0)+,d0
    126.                 move.w  d0,Col
    127.                 move.w  d0,MinCol               ; D0 = MIN COL
    128.                 move.w  (a0),Row
    129.                 move.w  (a0)+,MinRow
    130.                 move.w  (a0)+,d1                ; D1 = MAX COL
    131.                 move.w  d1,MaxCol
    132.                 move.w  (a0),MaxRow
    133.  
    134.  
    135.                 lea     ScrollDMA,a1
    136.                 SetVDPreg 1,$74,(a1)+           ; set up DMA enable
    137.                 sub.w   d0,d1                   ; # of columns
    138.                 move.w  d1,NumCol               ; Remember it
    139.                 lsl.w   #1,d1                   ; #2 = # of bytes
    140.                 CalcVDPreg 19,d1
    141.                 move.w  d1,(a1)+                ; set length low based on D1
    142.                 SetVDPreg 20,0,(a1)+            ; set length high
    143.                 move.w  Row,d1
    144.                 lsl.w   #6,d1                   ; (Row*64+Col)*2
    145.                 add.w   Col,d1                  ;
    146.                 lsl.w   #1,d1                   ;
    147.                 add.w   #MAPA_VRAM,d1           ; D1 is now top-left VRAM address
    148.                 PUSH.w  d1                      ; Save it
    149.                 move.w  d1,d0
    150.                 add.w   #128,d0                 ; Next row down - source addr
    151.                 move.w  d0,d2
    152.                 CalcVDPreg 21,d2
    153.                 move.w  d2,(a1)+                ; Low Source Address
    154.                 lsr.w   #8,d0
    155.                 CalcVDPreg 22,d0
    156.                 move.w  d0,(a1)+                ; High Source Address
    157.                 SetVDPreg 23,$C0,(a1)+          ; Really high addr - set to C0
    158.                 move.w  d1,d0                   ; Dest Addr
    159.                 and.w   #$3FFF,d0
    160.                 move.w  d0,(a1)+                ; Source Addr 1
    161.                 rol.w   #2,d1
    162.                 and.w   #$0003,d1
    163.                 or.w    #$00C0,d1
    164.                 move.w  d1,(a1)                 ; DMA SETUP!
    165.                 move.w  MaxRow,d0
    166.                 sub.w   MinRow,d0
    167.                 DEC.w   d0
    168.                 move.w  d0,DmaCount             ; # of rows to DMA
    169. *
    170. *
    171. *
    172.                 INC.w   d0
    173.                 lsl.w   #7,d0                   ; # of rows * 128
    174.                 add.w   (sp)+,d0                ; And add in VRAM address of top-left
    175.                 CalcVRAMaddr d0,d1              ; Calculate it
    176.                 move.l  d1,BottomVRAM
    177.                 rts
    178.  
    179.  
    180.  
    181.         xdef    OutMultiText
    182. ****************************************************************************
    183. * DESCRIPTION:  Outputs multiple text strings to multiple positios -- this
    184. *               is a list of OutText format strings. Terminate this list with
    185. *               an additional 0
    186. * RETURNS:      .
    187. * PARAMETERS:   A0 - pointer to a list of many strings
    188. * SIDE EFFECTS:
    189. * REVISIONS:    10/93   -jf-
    190. ****************************************************************************
    191. OutMultiText:
    192.                 bsr.s   OutPosText      ; Display one string
    193.                 tst.b   (a0)
    194.                 bne.s   OutMultiText    ; Keep outputing
    195.                 rts
    196.  
    197.  
    198.  
    199.  
    200.         xdef    OutPosText,_OutPosText
    201.         xdef    OutText,_OutText
    202. ****************************************************************************
    203. * DESCRIPTION:  Displays text at a specific point on the screen -- This
    204. *               point is indicated by 2 position BYTES immediately before
    205. *               the string's text. OutText is the same, but the position is
    206. *               whatever is current
    207. * RETURNS:      A0 - pointing after the Null Terminator
    208. * PARAMETERS:   poitnter to a structure, X pos byte,            A0   SP+4
    209. *               Y pos byte, null-terminated string.
    210. * SIDE EFFECTS:
    211. * REVISIONS:    10/93   -jf-
    212. ****************************************************************************
    213. _OutText:       move.l  4(sp),a0
    214.                 bra.s   OutText
    215. _OutPosText:
    216.                 move.l  4(sp),a0
    217. OutPosText:
    218.                 PUSH.l  A3
    219.                 move.l  a0,a3
    220.                 clr.w   d0
    221.                 clr.w   d1
    222.                 move.b  (a3)+,d0                ; Xpos
    223.                 move.b  (a3)+,d1                ; Ypos!
    224.                 bsr     SetTextPosition         ; Set new position
    225.                 bra.s   OT_1
    226.  
    227. OutText:
    228.                 PUSH.l  a3
    229.                 move.l  a0,a3
    230. OT_1:
    231.                 clr.w   d0
    232.                 move.b  (a3)+,d0
    233.                 beq.s   OT_2
    234.                 bsr     putchx                  ; Display this character
    235.                 bra.s   OT_1
    236. OT_2:
    237.                 move.l  a3,a0
    238.                 POP.l   a3
    239.                 rts                             ; Done!
    240.  
    241.  
    242.  
    243.         xdef    OutHexText
    244. ****************************************************************************
    245. * DESCRIPTION:  Displays a hex WORD value as ASCII text -- This is simpler
    246. *               than calling PRINTF for simple hex words
    247. * RETURNS:      .
    248. * PARAMETERS:   D0 - WORD to display
    249. * SIDE EFFECTS:
    250. * REVISIONS:    11/93   -jf-
    251. ****************************************************************************
    252. OutHexText:
    253.                 PUSH.W  d4
    254.                 PUSH.W  d3
    255.                 move.w  d0,d4
    256.                 move.w  #4-1,d3
    257. OHT_1
    258.                 rol.w   #4,d4
    259.                 move.w  d4,d0
    260.                 and.w   #$000F,d0
    261.                 move.b  HEXASCII(pc,d0),d0
    262.                 bsr.s   putchx
    263.                 dbra    d3,OHT_1
    264.                 POP.W   d3
    265.                 POP.W   D4
    266.                 rts
    267.  
    268.  
    269. HEXASCII        dc.b    '0123456789ABCDEF'
    270.  
    271.         xdef    OutDecText
    272. ****************************************************************************
    273. * DESCRIPTION:  Displays a decimal WORD value as ASCII text -- This is simpler
    274. *               than calling PRINTF for simple decimal values
    275. * RETURNS:      .
    276. * PARAMETERS:   D0 - WORD to display
    277. * SIDE EFFECTS:
    278. * REVISIONS:    11/93   -jf-
    279. ****************************************************************************
    280. OutDecText:
    281.                 PUSHM.l d3-d4/a2
    282.                 clr.l   d3
    283.                 clr.w   d4                      ; flag
    284.                 move.w  d0,d3
    285.                 lea     DIVTABLE(pc),a2
    286. ODT_1
    287.                 move.w  (a2)+,d1
    288.                 beq.s   ODT_X                   ; Done, leave
    289.                 divu.w  d1,d3                   ; Divide d3 by d0
    290.                 move.w  d3,d1                   ; quotient
    291.                 move.b  HEXASCII(pc,d1),d0
    292.                 tst.b   d1
    293.                 bne.s   ODT_3
    294.                 tst.b   d4
    295.                 bne.s   ODT_4                   ; Need terminating zeros
    296.                 move.w  #' ',d0                 ; Spaces if not
    297.                 bra.s   ODT_4
    298.  
    299. ODT_3
    300.                 st.b    d4
    301. ODT_4
    302.                 bsr.s   putchx                  ; Display quotient
    303.                 clr.w   d3
    304.                 swap.w  d3                      ; And put remainder into d3
    305.                 bra     ODT_1
    306.  
    307. ODT_X:
    308.                 POPM.l  d3-d4/a2
    309.                 rts
    310.  
    311. DIVTABLE        dc.w    10000,1000,100,10,1,0
    312.  
    313.  
    314.                
    315.  
    316.                 xdef    _putchx
    317.                 xdef    putchx
    318. ********************************************************************************
    319. * DESCRIPTION:  Stdout putch function for printf, etc.  Puts the char to the
    320. *               Genesis Map A, 40 column mode.
    321. *               Translates a LF to CR-LF
    322. * PARAMETERS:   int     c  - The character to put out. (D0, SP+4)
    323. *                       this is an INT -- so it's 32 bits long
    324. * RETURN VALUE: void
    325. * COMMENTS:
    326. * REVISIONS:    9/93    -rf-
    327. *               10/93   -jf-    Updated
    328. ********************************************************************************
    329. _putchx:
    330.                 move.w  6(sp),d0                ; Word optimized call
    331. putchx:
    332.                 cmp.b   #10,d0                  ; LF?
    333.                 bne.s   PC_0                    ; no, goto pc_0
    334.                 add.w   #1,Row                  ;  if LF, Row++
    335.                 bra.s   PC_A                    ;  do a CR too!
    336. PC_0:
    337.                 cmp.b   #13,d0
    338.                 bne.s   PC_1                    ; CR? no- goto PC_1
    339. PC_A:
    340.                 move.w  MinCol,Col              ;   if CR - Col=MinCol
    341.                 bra.s   PC_X
    342. PC_1:
    343.                 move.w  Row,d1
    344.                 lsl.w   #6,d1                   ; (Row*64+Col)*2
    345.                 add.w   Col,d1                  ;
    346.                 lsl.w   #1,d1                   ;
    347.                 add.w   #MAPA_VRAM,d1           ;
    348.                 CalcVRAMaddr d1,d2              ;
    349.                 move.l  d2,VCTRL                ; Setup MAP VRAM address
    350.                 lea     Ascii2Font-$20(pc),a0   ; Compensate for table beginning at space too
    351.                 move.b  (a0,d0),d0              ; Get char #
    352.                 add.w   FontOffset,d0           ; Add in font offset
    353.                 move.w  d0,VDATA                ; und write to video
    354.                 INC.w   Col
    355.  
    356. *
    357. * Simple wrap-around on the X -- but we scroll for the Y
    358. *
    359. PC_X:
    360.                 move.w  Col,d0
    361.                 cmp.w   MaxCol,d0
    362.                 JBE.s   PC_X1                   ; if (Col > MaxCol)
    363.                 move.w  MinCol,Col              ;   Col=MinCol
    364.                 INC.w   Row
    365. PC_X1:
    366.                 move.w  Row,d0
    367.                 cmp.w   MaxRow,d0
    368.                 JBE.s    PC_X2
    369. *
    370. * We want to scroll here! -- First, copy over the DMA command so we can mod it
    371. *
    372.                 lea     ScrollDMA,a0
    373.                 lea     ScrollDMA2,a1
    374.                 move.l  (a0)+,(a1)+
    375.                 move.l  (a0)+,(a1)+
    376.                 move.l  (a0)+,(a1)+
    377.                 move.l  (a0),(a1)               ; copied
    378.                 lea     VCTRL,a0
    379.                 SetAutoInc 1,(a0)
    380.                 move.l  #ScrollDMA2,d2          ; Source
    381.                 move.l  d2,a1                   ; Load A1
    382.                 move.w  DmaCount,d0             ; Count
    383. PC_XA:
    384.                 move.l  (a1)+,(a0)
    385.                 move.l  (a1)+,(a0)
    386.                 move.l  (a1)+,(a0)
    387.                 move.l  (a1),(a0)               ; Do a DMA
    388.                 move.l  d2,a1                   ; Reload pointer
    389.                 add.w   #128,DMA_DEST(a1)
    390.                 add.b   #128,DMA_SRCLO(a1)
    391.                 bcc.s   PC_XB
    392.                 INC.b   DMA_SRCHI(a1)
    393. PC_XB:
    394.                 move.w  (a0),d1
    395.                 btst.l  #1,d1
    396.                 bne.s   PC_XB                   ; Wait for DMA
    397.                 dbra    d0,PC_XA
    398. *
    399. * Done -- Gotta clear bottom line, we'll use the DMA that's already set up
    400. *
    401.                 SetVDPreg 1,$64,(a0)
    402.                 SetAutoInc 2,(a0)
    403.  
    404.                 move.w  NumCol,d0
    405.                 move.w  FontOffset,d1
    406.                 and.w   #$07FF,d1               ; All clears on P0!
    407.                 move.l  BottomVRAM,(a0)
    408.                 sub.w   #4,a0
    409. PC_XC:
    410.                 move.w  d1,(a0)
    411.                 dbra    d0,PC_XC
    412.                 DEC.w   Row                     ; Correct for being one past
    413. PC_X2:
    414.                 rts
    415.  
    416.  
    417.  
    418.  
    419.  
    420.                 xdef    _SetupStdout
    421. ********************************************************************************
    422. * DESCRIPTION:  Sets up the video for text output. Loads the font into VRAM
    423. *               and resets the console parameters. The map will go into
    424. *               MAPA
    425. * PARAMETERS:
    426. *
    427. * RETURN VALUE: .
    428. * COMMENTS:     .
    429. * REVISIONS:    10/93   -jf-
    430. **********************
     
  10. Tough question. I myself made the filename match the Cartridge "art" to the best of my ability, and wrote every detail (including the date written on the cart). Yes, the date was the same as the Demo #6 cart.

    I'm kinda I kept a picture of the demo 4 cart, though - I was sloppy in saving stuff and didn't have that in a space where I'd end up reobtaining it easily. Basically, though, the cartridge description's the most accurate thing we got for it.
     
  11. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,719
    0
    0
    being an asshole =P
    Tried doing a soft reset?

    This too, WTF is M1? I'm seeing this mentioned around a lot lately.
     
  12. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    M1 started life as a MAME-based music player for arcade games. Then it got forked/mirrored/edited/frontend-ed/etc. to oblivion. The only two versions I know still exist in active (somewhat) development are Richard Bannister's Mac OS X port and the one ValleyBell is talking about, which is basically M1 for MESS.
     
  13. ValleyBell

    ValleyBell

    Tech Member
    237
    10
    18
    researching SMPS sound drivers
    Actually I'm using Richard Bannister's version. The source code included makefiles for Windows, Linux and Mac OS X, so I just had to compile it for Windows.
    The nice thing on M1 is, that is has some generic support for the GEMS sound driver (and some SMPS Z80 versions, too, btw).

    But sorry, M1 doesn't play anything with the final Sega Channel ROM. Maybe it handles some versions of the GEMS driver incorrectly.
     
  14. Rika Chou

    Rika Chou

    Tech Member
    5,241
    106
    43
    These are wonderful to see. I loved my Sega channel, so many memories. I really wish there were some way to revive the service or something. (or maybe a special sega channel theme of the retro channel? if I understand what the retro channel even is.)

    Anyone dump the Japanese Sega Channel yet? Or know if there is any difference between the tall and short adapters?
     
  15. TomoAlien

    TomoAlien

    Member
    48
    0
    0
    Poland
    Well duh, I did use soft reset because else it wouldn't be able choose a random logo.
     
  16. ICEknight

    ICEknight

    Researcher Researcher
    I haven't been able to use the Sega Channel ROMs with M1 in any way, since it requires adding offsets to the xml file.


    How are you guys doing it, what version, download link, etc.
     
  17. ValleyBell

    ValleyBell

    Tech Member
    237
    10
    18
    researching SMPS sound drivers
    M1 Windows version

    It's actually quite easy. My currrent m1.xml looks like this: (I wrote a completely new xml to speed up loading)
    [xml]<?xml version="1.0"?>
    <m1 version="1">
    <game name="SEGA_CHANNEL_04" board="Sega Genesis/MegaDrive">
    <description>Sega Channel Demo 4</description>
    <year>1994</year>
    <manufacturer>Sega</manufacturer>
    <m1data default="1" stop="0" min="1" max="32768"/>
    <region type="cpu1" size="4194304">
    <rom name="Sega Channel Demo Cartridge #4 (2-16-94) (dumped by LocalH).bin" size="524288" crc="2ABAE889" offset="0"/>
    </region>
    </game>
    <game name="SegaChannel_Fix_Regen" board="Sega Genesis/MegaDrive">
    <description>Sega Channel</description>
    <year>1994</year>
    <manufacturer>Sega</manufacturer>
    <m1data default="1" stop="0" min="1" max="32768"/>
    <region type="cpu1" size="4194304">
    <rom name="SegaChannel_Fix_Regen.bin" size="262144" crc="70DCE5DA" offset="0"/>
    </region>
    </game>
    </m1>[/xml]
    The only important things are "game name" and the line with "rom name".
    game name must be the filename of the zip-file without .zip.
    The rom line contains info about the ROM: full filename, size and checksum (crc and sha are both possible, at least one checksum is needed to make M1 read the file). offset must be always 0 for console ROMs.

    Then run "m1 SEGA_CHANNEL_04" and it will play.
     
  18. The two US Sega Channel BIOs carts are listed in the no-intro DAT as:
    Sega Channel (USA) (General Instrument) (Program).md
    Sega Channel (USA) (Scientific Atlanta) (Program).md

    The Japanese BIOs is still undumped.

    EDIT: I also just dug through the SC webpage on archive.org and found this section
    http://web.archive.org/web/19970327222115/http://www.sega.com/channel/now/9.html

    Would -each- of these have their own BIOs?
     
  19. ICEknight

    ICEknight

    Researcher Researcher
    Hey, thanks. One has to wonder why nobody has already built a version that doesn't need to zip each binary, rename it and edit an XML file specifically for it... Os with SMS support, for that matter.
     
  20. Hey guys, just doing a bump. This is for magazine scans.

    Over at the BS Zelda forums, user Madhatter digs through various old magazines for Satellaview stuff. A lot of the USA and Europe articles tend to have writings on both the Satellaview and Sega Channel on the same articles, so maybe there's stuff to spot if I share them with you guys.

    Edit: ALSO!

    The old urls are borked, so here's the files re-upped to my webspace.
    http://kiddocabbusses.tryhappy.net/SegaChannel/TAZ_MANIA.bin
    http://kiddocabbusses.tryhappy.net/SegaChannel/SEGA_CHANNEL_01.bin
    http://kiddocabbusses.tryhappy.net/SegaChannel/SEGA_CHANNEL_02L.bin
    http://kiddocabbusses.tryhappy.net/SegaChannel/SEGA_CHANNEL_GAME_GUIDE.bin