VIDEON -- Build

Hello!

I’ve been working on a project recently that would use a custom Sega game cartridge to turn the Sega Genesis into an audio-reactive visual generator. What that means is you would plug the VIDEON game cartridge into the Genesis and plug your audio source into the game cartridge. The game would take the data from the audio source and translate it into visuals that would move with the music.

Here is a basic mock up of an Ultimate design I would like to acheive with an SD card function and an Audio Out headphone jack.

While the Ultimate version is a goal, right now I am just attempting to get the basic functions to work. I’ve designed a prototyping board with only Audio In and no SD Card funtion.

This board will allow me to use jumper cables to work out the embedded systems that are needed to make this project work.

I’m ordering PCBS for another project, going to add these to that order. Once I get them I can start testing. I will keep you all updated as I make progress. It’s a long journey to this project’s end, and these are just the first steps.

11 Likes

Hi!

PCB came in…

Immediately I realized there was a problem…

The EPROM was too low, it goes inside the Genesis… This is ok for the final design, but while I am prototyping I would like to add an EPROM socket so I can remove and reprogram the EPROM while working on the code. So this design will not work for now. I redesigned the PCB and came up with this:

PCB arrived in the mail today and it fits perfect!!

Still waiting on my EPROM sockets to come in and some new MSGEQ7s and STM32s, but basically this is what it will kinda of look like when populated with all the pieces:

Next step is getting the MSGEQ7 to talk to the STM32 and then after that is figuring out how to get the STM32 to talk to the Sega Genesis.

5 Likes

Highly interested in this. I love messing with video game visualizers!

1 Like

Hi!

Figured out the pin mapping between the MSGEQ7 and the STM32:

MSGEQ7 to STM32 pin map:

MSGEQ7 Pin STM32 Pin Function
GROUND GND Ground
5V 5V Power
OUT PA0 Analog input
STROBE PC13 GPIO output
RESET PA13 GPIO output

I made a mistake in thinking the STM32 would send data to the EPROM. I now believe the STM32 should be sending data directly to the Genesis CPU using game cartridge pins.

Here is a first draft of that pin map:

STM32 to Sega Genesis Pin Map

STM32 Pin Sega Genesis Pin Function
PB0 A0 Address line 0
PB1 A1 Address line 1
PA5 A2 Address line 2
PB3 A3 Address line 3
PB4 A4 Address line 4
PB5 A5 Address line 5
PB6 A6 Address line 6
PB7 A7 Address line 7
PA6 A8 Address line 8
PA7 A9 Address line 9
PB8 A10 Address line 10
PB9 A11 Address line 11
PA15 A12 Address line 12
PA8 D0 Data bus line 0
PA1 D1 Data bus line 1
PB10 D2 Data bus line 2
PB11 D3 Data bus line 3
PB12 D4 Data bus line 4
PB15 D5 Data bus line 5
PB14 D6 Data bus line 6
PB13 D7 Data bus line 7
PA4 /CE Chip Enable
PA2 /OE Output Enable

Now that I have this figured out, the next step is writing the code for the STM32. Problem is the EPROM uses these Address and Data Bus lines to send information to the Genesis. So I’ll probably be quiet on this thread for a bit while I teach myself multiplexing.

3 Likes

Hi!!

Progress is being made!

Realizing that the STM32 Blue Pill and the EPROM would be using the same Data Lines something needed to be in place to make sure they do not send Data at the same time.

Here is a very basic diagram of the workflow I figured out to solve this problem:

When the Output Enable Pin is low the EPROM sends Data. I am using the 74HC245 as gate to tell the STM32 Blue Pill when to send data. The problem is when the 74HC245 is low, it sends Data just like the EPROM. Adding a 74HC04 Inverter chip will flip the Output Enable Signal. So when the EPROM is low and sends data, the 74HC04 flips that signal and sends a high signal to the 74HC245 chips and they stop sending data. The opposite is true as well, when the Output Enable pin is high, the EPROM stops sending data, the 74HCO4 flips the signal to low and the 74HC245 chips send their data. I am feeling good about this design and I think the hardware is done enough to move on to software.

Here is the new PCB design:

I’ll probably order new PCBs, but first I want to make sure it works. So I glued a bread board to the back of my previous PCB Prototype board and added the new chips.

Next steps are:

  1. Upload a basic working program to the EPROM to make sure I understand the process and that the PCB works.
  2. Bread board and write code for a simple program that would take audio data from the MSGEQ7 module, send it to the STM32 Blue pill and then use that data to make an LED matrix move with the audio.
  3. Write code for both the STM32 Blue pill and for the EPROM, where the EPROM will load basic visuals to the Genesis and then Blue pill will send data received from the MSGEQ7 to make those visuals move with the audio.

If I can get the last goal to work, the rest of the build would be creating about 100 different “levels” of visuals people can cycle through for different graphics. But first the goal is just trying to get this to work.

Also, I forgot to note at the beginning of this build, I got a basic Sega Genesis Game Cartridge PCB design from this website:

https://www.hdretrovision.com/free-stuff#genrom

3 Likes