Search
lxdream.org :: lxdream/src/aica/aica.c
lxdream 0.9.1
released Jun 29
Download Now
filename src/aica/aica.c
changeset 11:0a82ef380c45
next15:5194dd0fdb60
author nkeynes
date Mon Dec 12 10:37:41 2005 +0000 (14 years ago)
permissions -rw-r--r--
last change Use cpu-specific is_valid_page function
view annotate diff log raw
     1 /**
     2  * $Id: aica.c,v 1.1 2005-12-11 12:00:09 nkeynes Exp $
     3  * 
     4  * This is the core sound system (ie the bit which does the actual work)
     5  *
     6  * Copyright (c) 2005 Nathan Keynes.
     7  *
     8  * This program is free software; you can redistribute it and/or modify
     9  * it under the terms of the GNU General Public License as published by
    10  * the Free Software Foundation; either version 2 of the License, or
    11  * (at your option) any later version.
    12  *
    13  * This program is distributed in the hope that it will be useful,
    14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  * GNU General Public License for more details.
    17  */
    19 #include "dream.h"
    20 #include "aica.h"
    21 #define MMIO_IMPL
    22 #include "aica.h"
    24 MMIO_REGION_READ_DEFFN( AICA0 )
    25 MMIO_REGION_READ_DEFFN( AICA1 )
    26 MMIO_REGION_READ_DEFFN( AICA2 )
    28 /**
    29  * Initialize the AICA subsystem. Note requires that 
    30  */
    31 void aica_init( void )
    32 {
    33     register_io_regions( mmio_list_spu );
    34     MMIO_NOTRACE(AICA0);
    35     MMIO_NOTRACE(AICA1);
    36     arm_mem_init();
    37 }
    39 void aica_reset( void )
    40 {
    42 }
    44 /** Channel register structure:
    45  * 00
    46  * 04
    47  * 08  4  Loop start address
    48  * 0C  4  Loop end address
    49  * 10  4  Volume envelope
    50  * 14
    51  * 18  4  Frequency (floating point 
    52  * 1C
    53  * 20
    54  * 24  1  Pan
    55  * 25  1  ??
    56  * 26  
    57  * 27  
    58  * 28  1  ??
    59  * 29  1  Volume
    60  * 2C
    61  * 30
    62  * 
    64 /* Write to channels 0-31 */
    65 void mmio_region_AICA0_write( uint32_t reg, uint32_t val )
    66 {
    67     //    aica_write_channel( reg >> 7, reg % 128, val );
    69 }
    71 /* Write to channels 32-64 */
    72 void mmio_region_AICA1_write( uint32_t reg, uint32_t val )
    73 {
    74     //    aica_write_channel( (reg >> 7) + 32, reg % 128, val );
    76 }
    78 /* General registers */
    79 void mmio_region_AICA2_write( uint32_t reg, uint32_t val )
    80 {
    82 }
.