| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  | # Yamaha YM2608 (OPNA)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-12 23:08:25 -04:00
										 |  |  | like YM2203, but with twice the FM channels, stereo, an ADPCM channel and built-in drums ("rhythm")! | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-12 23:08:25 -04:00
										 |  |  | it was one of the available sound chips for the NEC PC-88VA and PC-98 series of computers. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | the YM2610 (OPNB) and YM2610B chips are very similar to this one, but the built-in drums have been replaced with 6 sample channels. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # effects
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`10xy`**: set LFO parameters. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` toggles the LFO. | 
					
						
							|  |  |  |   - `y` sets its speed. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`11xx`**: set feedback of channel. | 
					
						
							|  |  |  | - **`12xx`**: set operator 1 level. | 
					
						
							|  |  |  | - **`13xx`**: set operator 2 level. | 
					
						
							|  |  |  | - **`14xx`**: set operator 3 level. | 
					
						
							|  |  |  | - **`15xx`**: set operator 4 level. | 
					
						
							|  |  |  | - **`16xy`**: set multiplier of operator. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` is the operator (1-4). | 
					
						
							| 
									
										
										
										
											2023-05-20 18:21:51 -04:00
										 |  |  |   - `y` is the multiplier. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`18xx`**: toggle extended channel 3 mode. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - 0 disables it and 1 enables it. | 
					
						
							| 
									
										
										
										
											2022-10-16 01:53:05 -04:00
										 |  |  |   - only in extended channel 3 chip. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`19xx`**: set attack of all operators. | 
					
						
							|  |  |  | - **`1Axx`**: set attack of operator 1. | 
					
						
							|  |  |  | - **`1Bxx`**: set attack of operator 2. | 
					
						
							|  |  |  | - **`1Cxx`**: set attack of operator 3. | 
					
						
							|  |  |  | - **`1Dxx`**: set attack of operator 4. | 
					
						
							|  |  |  | - **`20xx`**: set SSG channel mode. `xx` may be one of the following: | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `00`: square | 
					
						
							|  |  |  |   - `01`: noise | 
					
						
							|  |  |  |   - `02`: square and noise | 
					
						
							|  |  |  |   - `03`: nothing (apparently) | 
					
						
							|  |  |  |   - `04`: envelope and square | 
					
						
							|  |  |  |   - `05`: envelope and noise | 
					
						
							|  |  |  |   - `06`: envelope and square and noise | 
					
						
							|  |  |  |   - `07`: nothing | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`21xx`**: set noise frequency. `xx` is a value between 00 and 1F. | 
					
						
							|  |  |  | - **`22xy`**: set envelope mode. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` sets the envelope shape, which may be one of the following: | 
					
						
							|  |  |  |     - `0: \___` decay | 
					
						
							|  |  |  |     - `4: /___` attack once | 
					
						
							|  |  |  |     - `8: \\\\` saw | 
					
						
							|  |  |  |     - `9: \___` decay | 
					
						
							|  |  |  |     - `A: \/\/` inverse obelisco | 
					
						
							|  |  |  |     - `B: \¯¯¯` decay once | 
					
						
							|  |  |  |     - `C: ////` inverse saw | 
					
						
							|  |  |  |     - `D: /¯¯¯` attack | 
					
						
							|  |  |  |     - `E: /\/\` obelisco | 
					
						
							|  |  |  |     - `F: /___` attack once | 
					
						
							|  |  |  |   - if `y` is 1 then the envelope will affect this channel. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`23xx`**: set envelope period low byte. | 
					
						
							|  |  |  | - **`24xx`**: set envelope period high byte. | 
					
						
							|  |  |  | - **`25xx`**: slide envelope period up. | 
					
						
							|  |  |  | - **`26xx`**: slide envelope period down. | 
					
						
							|  |  |  | - **`29xy`**: enable SSG auto-envelope mode. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - in this mode the envelope period is set to the channel's notes, multiplied by a fraction. | 
					
						
							|  |  |  |   - `x` is the numerator. | 
					
						
							|  |  |  |   - `y` is the denominator. | 
					
						
							|  |  |  |   - if `x` or `y` are 0 this will disable auto-envelope mode. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`30xx`**: enable envelope hard reset. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - this works by inserting a quick release and tiny delay before a new note. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`50xy`**: set AM of operator. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` is the operator (1-4). a value of 0 means "all operators". | 
					
						
							|  |  |  |   - `y` determines whether AM is on. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`51xy`**: set SL of operator. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` is the operator (1-4). a value of 0 means "all operators". | 
					
						
							|  |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`52xy`**: set RR of operator. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` is the operator (1-4). a value of 0 means "all operators". | 
					
						
							|  |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`53xy`**: set DT of operator. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` is the operator (1-4). a value of 0 means "all operators". | 
					
						
							|  |  |  |   - `y` is the value: | 
					
						
							|  |  |  |     - 0: +0 | 
					
						
							|  |  |  |     - 1: +1 | 
					
						
							|  |  |  |     - 2: +2 | 
					
						
							|  |  |  |     - 3: +3 | 
					
						
							|  |  |  |     - 4: -0 | 
					
						
							|  |  |  |     - 5: -3 | 
					
						
							|  |  |  |     - 6: -2 | 
					
						
							|  |  |  |     - 7: -1 | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`54xy`**: set RS of operator. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` is the operator (1-4). a value of 0 means "all operators". | 
					
						
							|  |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`55xy`**: set SSG-EG of operator. | 
					
						
							| 
									
										
										
										
											2022-05-12 03:25:13 -04:00
										 |  |  |   - `x` is the operator (1-4). a value of 0 means "all operators". | 
					
						
							|  |  |  |   - `y` is the value (0-8). | 
					
						
							|  |  |  |     - values between 0 and 7 set SSG-EG. | 
					
						
							|  |  |  |     - value 8 disables it. | 
					
						
							| 
									
										
										
										
											2023-06-23 21:13:37 -04:00
										 |  |  | - **`56xx`**: set DR of all operators. | 
					
						
							|  |  |  | - **`57xx`**: set DR of operator 1. | 
					
						
							|  |  |  | - **`58xx`**: set DR of operator 2. | 
					
						
							|  |  |  | - **`59xx`**: set DR of operator 3. | 
					
						
							|  |  |  | - **`5Axx`**: set DR of operator 4. | 
					
						
							|  |  |  | - **`5Bxx`**: set D2R/SR of all operators. | 
					
						
							|  |  |  | - **`5Cxx`**: set D2R/SR of operator 1. | 
					
						
							|  |  |  | - **`5Dxx`**: set D2R/SR of operator 2. | 
					
						
							|  |  |  | - **`5Exx`**: set D2R/SR of operator 3. | 
					
						
							|  |  |  | - **`5Fxx`**: set D2R/SR of operator 4. |