Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. OPL4MAXWAVECHANNELS = NR_OF_WAVE_CHANNELS
  2.  
  3. OPL4_TIMER1_COUNT   = 0x02
  4. OPL4_TIMER2_COUNT   = 0x03
  5. OPL4_TIMER_CONTROL  = 0x04
  6.  
  7.  
  8.  
  9.  
  10. OPL4_REG_TEST0               = 0x00
  11. OPL4_REG_TEST1               = 0x01
  12.  
  13. OPL4_REG_MEMORY_CONFIGURATION = 0x02
  14. OPL4_MODE_BIT                 = 0x01
  15. OPL4_MTYPE_BIT                = 0x02
  16. OPL4_TONE_HEADER_MASK         = 0x1C
  17. OPL4_DEVICE_ID_MASK           = 0xE0
  18.  
  19. OPL4_REG_MEMORY_ADDRESS_HIGH  = 0x03
  20. OPL4_REG_MEMORY_ADDRESS_MID   = 0x04
  21. OPL4_REG_MEMORY_ADDRESS_LOW   = 0x05
  22. OPL4_REG_MEMORY_DATA          = 0x06
  23.  
  24. /*
  25.  * Offsets to the register banks for voices. To get the
  26.  * register number just add the voice number to the bank offset.
  27.  *
  28.  * Wave Table Number low bits (0x08 to 0x1F)
  29.  */
  30. OPL4_REG_TONE_NUMBER  = 0x08
  31.  
  32. /* Wave Table Number high bit, F-Number low bits (0x20 to 0x37) */
  33. OPL4_REG_F_NUMBER      = 0x20
  34. OPL4_TONE_NUMBER_BIT8  = 0x01
  35. OPL4_F_NUMBER_LOW_MASK = 0xFE
  36.  
  37. /* F-Number high bits, Octave, Pseudo-Reverb (0x38 to 0x4F) */
  38. OPL4_REG_OCTAVE         = 0x38
  39. OPL4_F_NUMBER_HIGH_MASK = 0x07
  40. OPL4_BLOCK_MASK         = 0xF0
  41. OPL4_PSEUDO_REVERB_BIT  = 0x08
  42.  
  43. /* Total Level, Level Direct (0x50 to 0x67) */
  44. OPL4_REG_LEVEL        = 0x50
  45. OPL4_TOTAL_LEVEL_MASK = 0xFE
  46. OPL4_LEVEL_DIRECT_BIT = 0x01
  47.  
  48. /* Key On, Damp, LFO RST, CH, Panpot (0x68 to 0x7F) */
  49. OPL4_REG_MISC           = 0x68
  50.  
  51. OPL4_KEY_ON_BIT         = 0x80
  52. OPL4_KEY_ON_BIT_INV     = 0x7f
  53.  
  54. OPL4_DAMP_BIT           = 0x40
  55. OPL4_LFO_RESET_BIT      = 0x20
  56. OPL4_OUTPUT_CHANNEL_BIT = 0x10
  57.  
  58. OPL4_PAN_POT_MASK       = 0x0F
  59. OPL4_PAN_POT_MASK_INV   = 0xF0
  60.  
  61. /* LFO, VIB (0x80 to 0x97) */
  62. OPL4_REG_LFO_VIBRATO    = 0x80
  63. OPL4_LFO_FREQUENCY_MASK = 0x38
  64.  
  65.  
  66. OPL4_VIBRATO_DEPTH_MASK         =   0x07
  67. OPL4_VIBRATO_DEPTH_MASK_INV     =   0xF8
  68. ;OPL4_VIBRATO_DEPTH_MASK         =   00111000b   ;0x07
  69. ;OPL4_VIBRATO_DEPTH_MASK_INV     =   11000111b   ;0xF8
  70.  
  71. OPL4_CHORUS_SEND_MASK   = 0xC0
  72.  
  73. /* Attack / Decay 1 rate (0x98 to 0xAF) */
  74. OPL4_REG_ATTACK_DECAY1  = 0x98
  75. OPL4_ATTACK_RATE_MASK   = 0xF0
  76. OPL4_DECAY1_RATE_MASK   = 0x0F
  77.  
  78. /* Decay level / 2 rate (0xB0 to 0xC7) */
  79. OPL4_REG_LEVEL_DECAY2  = 0xB0
  80. OPL4_DECAY_LEVEL_MASK  = 0xF0
  81. OPL4_DECAY2_RATE_MASK  = 0x0F
  82.  
  83. /* Release rate / Rate correction (0xC8 to 0xDF) */
  84. OPL4_REG_RELEASE_CORRECTION  = 0xC8
  85. OPL4_RELEASE_RATE_MASK       = 0x0F
  86. OPL4_RATE_INTERPOLATION_MASK = 0xF0
  87.  
  88. /* AM (0xE0 to 0xF7) */
  89. OPL4_REG_TREMOLO        = 0xE0
  90. OPL4_TREMOLO_DEPTH_MASK = 0x07
  91. OPL4_REVERB_SEND_MASK   = 0xE0
  92.  
  93. /* Mixer */
  94. OPL4_REG_MIX_CONTROL_FM  = 0xF8
  95. OPL4_REG_MIX_CONTROL_PCM = 0xF9
  96. OPL4_MIX_LEFT_MASK       = 0x07
  97. OPL4_MIX_RIGHT_MASK      = 0x38
  98.  
  99. OPL4_REG_ATC             = 0xFA
  100. OPL4_ATC_BIT             = 0x01
  101.  
  102. /* Bits in the OPL4 Status register */
  103. OPL4_STATUS_BUSY = 0x01
  104. OPL4_STATUS_LOAD = 0x02
  105.  
  106.