Ecernosoft Posted November 2, 2022 Share Posted November 2, 2022 Hello! I've got 2 questions: 1. Apparently the very complex, 8 voice YM2151 occupies 2 bytes in $460 - $461 region. HOW DOES IT DO THAT???? 2. Documents? Thanks. I want ICT3 to have 2151 support so that I can play sega-genesis music in my 48K, possibly lock-on ICT3. (I really hope I can make it lock on, because that way if you guys want to hack ICT3 to make your own game, you can make an "Expansion" for ICT3 (and sell it for much cheaper!) instead of making it from scratch. You can even do it in 7800basic (And if you need to, you can have it memory-mapped too so it can be MORE than 16KB) as well if 7800basic supports GOTO (jmp location) and GOSUB (jsr location). Quote Link to comment Share on other sites More sharing options...
Eagle Posted November 2, 2022 Share Posted November 2, 2022 http://7800.8bitdev.org/index.php/YM2151_Programming Quote Link to comment Share on other sites More sharing options...
Ecernosoft Posted November 2, 2022 Author Share Posted November 2, 2022 1 hour ago, Eagle said: http://7800.8bitdev.org/index.php/YM2151_Programming On another hand, I think YM2151 support will be delayed to ICT4 Quote Link to comment Share on other sites More sharing options...
Jinks Posted November 3, 2022 Share Posted November 3, 2022 11 minutes ago, Ecernosoft said: On another hand, I think YM2151 support will be delayed to ICT4 What are we supposed to do in the meantime? Play bloop beeps? I would include it in ICT 3 would make more sense. ICT 4 should require 3d glasses and to turn the set on it's side. ICT 5 would only function if your in the bathtub with the atari humidity sensor attachment on joystick port 2 That does leave to question ICT 6 AND 7. But you do have 15 mintues to come up with those game concepts before moving to ICT 9 and 10. 1 1 5 Quote Link to comment Share on other sites More sharing options...
Ecernosoft Posted November 3, 2022 Author Share Posted November 3, 2022 52 minutes ago, Jinks said: What are we supposed to do in the meantime? Play bloop beeps? I would include it in ICT 3 would make more sense. ICT 4 should require 3d glasses and to turn the set on it's side. ICT 5 would only function if your in the bathtub with the atari humidity sensor attachment on joystick port 2 That does leave to question ICT 6 AND 7. But you do have 15 mintues to come up with those game concepts before moving to ICT 9 and 10. Hahaha. In the mean-time, I'll use the POKEY. 2 Quote Link to comment Share on other sites More sharing options...
Astal4 Posted November 3, 2022 Share Posted November 3, 2022 (edited) http://bitsavers.org/components/yamaha/YM2151_199112.pdf Go to town. It only takes up two bytes of address space because well it only has one bit of addressing. If you were to read the documentation you'll see one address is for setting it to data input, one for address input. Edited November 3, 2022 by Astal4 1 Quote Link to comment Share on other sites More sharing options...
Ecernosoft Posted November 3, 2022 Author Share Posted November 3, 2022 (edited) 5 hours ago, Astal4 said: http://bitsavers.org/components/yamaha/YM2151_199112.pdf Go to town. It only takes up two bytes of address space because well it only has one bit of addressing. If you were to read the documentation you'll see one address is for setting it to data input, one for address input. OH! That makes sense. I didn't read the doc at the time since I was busy working on ICT3. I also don't really think ICT3 needs 2151 support. If I have ROM space left I will TRY though. Edited November 3, 2022 by Ecernosoft Quote Link to comment Share on other sites More sharing options...
playsoft Posted November 4, 2022 Share Posted November 4, 2022 It looks like this might be too late for ICT3 but in case it's useful in the future... The documents I found useful are the attached user manual and the guide here: https://cx5m.file-hunter.com/fmunit.htm Each channel has 26 registers for controlling the instrument sound. If you want to define your own instruments you would have to understand these, but luckily there are OPM packs with different predefined instruments available (I have attached the FB1 factory patches converted to register values). To start playing a note you set the key code register (pitch) for that channel, then do a key on for that channel. To stop playing a note you do a key off for that channel. I have attached a simple test (7800basic with asm) that plays a note on trigger press and stops playing on release. For YM2151 audio in A7800 or JS7800 you must enable the YM2151 in the XM control register. YM2151 User Manual.pdf fb1_factory_patches.txt test.zip Quote Link to comment Share on other sites More sharing options...
Ecernosoft Posted November 4, 2022 Author Share Posted November 4, 2022 1 hour ago, playsoft said: It looks like this might be too late for ICT3 but in case it's useful in the future... The documents I found useful are the attached user manual and the guide here: https://cx5m.file-hunter.com/fmunit.htm Each channel has 26 registers for controlling the instrument sound. If you want to define your own instruments you would have to understand these, but luckily there are OPM packs with different predefined instruments available (I have attached the FB1 factory patches converted to register values). To start playing a note you set the key code register (pitch) for that channel, then do a key on for that channel. To stop playing a note you do a key off for that channel. I have attached a simple test (7800basic with asm) that plays a note on trigger press and stops playing on release. For YM2151 audio in A7800 or JS7800 you must enable the YM2151 in the XM control register. YM2151 User Manual.pdf 1.3 MB · 1 download fb1_factory_patches.txt 30.93 kB · 1 download test.zip 2.92 kB · 1 download It is too late for ICT3, it’s already going on V12.5 which adds walls and stuff. If it’ll work, I think I’ll design a wave table synth chip or use @Astal4’s design. Quote Link to comment Share on other sites More sharing options...
Astal4 Posted November 4, 2022 Share Posted November 4, 2022 DO NOT rely on my design, it's a long way to production and is subject to changes. I'm still trying to source the CPLDs I'd like to use (XC9500XL series) and it's likely that it can't even become a thing until 2023 or 2024 even because of stock. Quote Link to comment Share on other sites More sharing options...
Ecernosoft Posted November 4, 2022 Author Share Posted November 4, 2022 2 hours ago, Astal4 said: DO NOT rely on my design, it's a long way to production and is subject to changes. I'm still trying to source the CPLDs I'd like to use (XC9500XL series) and it's likely that it can't even become a thing until 2023 or 2024 even because of stock. Ok. I wasn't going to. And the problem with my design is that it needs to run at at least 1 mhz. Quote Link to comment Share on other sites More sharing options...
Astal4 Posted November 4, 2022 Share Posted November 4, 2022 Lucky for you the Phi2 output of the 7800 is 1.79MHz. Quote Link to comment Share on other sites More sharing options...
Ecernosoft Posted November 4, 2022 Author Share Posted November 4, 2022 1 hour ago, Astal4 said: Lucky for you the Phi2 output of the 7800 is 1.79MHz. Yeah. If my design actually becomes REAL (Of course, some smoothing would be added to make the waveforms less noisy) then I might add an 8 voice mode to allow higher pitches to be played. My design works by switching between the 16 voices, adding their values together, and then playing that. So, 1 voice cycle = 16 clock cycles, and yes, there would be mixing. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.