• Stars
    star
    110
  • Rank 314,861 (Top 7 %)
  • Language Verilog
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

FM sound source written in Verilog, fully compatible with YM2612, YM3438 (JT12), YM2203 (JT03) and YM2610 (JT10)

JT12 FPGA Clone of Yamaha OPN hardware by Jose Tejada (@topapate)

===================================================================

You can show your appreciation through

JT12 is an FM sound source written in Verilog, fully compatible with YM2612/YM3438 (Megadrive), YM2610 (NeoGeo) and YM2203 (PC88, arcades).

The implementation tries to be as close to original hardware as possible. Low usage of FPGA resources has also been a design goal. Except in the operator section (jt12_op) where an exact replica of the original circuit is done. This could be done in less space with a different style but because this piece of the circuit was reversed engineered by Sauraen, I decided to use that knowledge.

Using JT12 in a git project

If you are using JT12 in a git project, the best way to add it to your project is:

  1. Optionally fork JT12's repository to your own GitHub account
  2. Add it as a submodule to your git project: git submodule add https://github.com/jotego/jt12.git
  3. Now you can refer to the RTL files in jt12/hdl

The advantages of a using a git submodule are:

  1. Your project contains a reference to a commit of the JT12 repository
  2. As long as you do not manually update the JT12 submodule, it will keep pointing to the same commit
  3. Each time you make a commit in your project, it will include a pointer to the JT12 commit used. So you will always know the JT12 that worked for you
  4. If JT12 is updated and you want to get the changes, simply update the submodule using git. The new JT12 commit used will be annotated in your project's next commit. So the history of your project will reflect that change too.
  5. JT12 files will be intact and you will use the files without altering them.

Directories

  • hdl -> all relevant RTL files, written in verilog
  • ver -> test benches
  • ver/verilator -> test bench that can play vgm files

Usage

Chip Top Level QIP File
YM2610 jt10.v jt10.qip
YM2612 jt12.v jt12.qip
YM2203 jt03.v jt03.qip

Simulation

There are several simulation test benches in the ver folder. The most important one is in the ver/verilator folder. The simulation script is called with the shell script go in the same folder. The script will compile the file test.cpp together with other files and the design and will simulate the tune specificied with the -f command. It can read vgm tunes and generate .wav output of them.

Related Projects

Other sound chips from the same author

Chip Repository
YM2203, YM2612, YM2610 JT12
YM2151 JT51
YM3526 JTOPL
YM2149 JT49
sn76489an JT89
OKI 6295 JT6295
OKI MSM5205 JT5205

More Repositories

1

jtbin

Binary files for MiSTerFPGA, Pocket and other platforms
Arc
239
star
2

jtcores

FPGA cores compatible with multiple arcade game machines and KiCAD schematics of arcade games. Working on MiSTer FPGA/Analogue Pocket
Verilog
217
star
3

jtcps

Capcom System 1/1.5/2 compatible verilog core for FPGA
C
89
star
4

jt51

YM2151 clone in verilog. FPGA proven.
VHDL
71
star
5

jt49

Verilog clone of YM2149
Verilog
37
star
6

jtpremium

All JT cores for MiSTer, including premium and beta content
30
star
7

jtopl

Verilog module compatible with Yamaha OPL chips
Verilog
29
star
8

jt89

sn76489an compatible Verilog core, with emphasis on FPGA implementation and Megadrive/Master System compatibility
Verilog
26
star
9

jtdd

Double Dragon FPGA core
Verilog
16
star
10

jtcontra

FPGA conversion of KONAMI's K007121-based games: Contra, Combat School, Labyrinth Runner, Fast Lane, MX5000
Verilog
15
star
11

jtcores_mister

Companion repository for theYpsilon's update script
13
star
12

jt6295

ADPCM decoder compatible with OKI 6295
Verilog
11
star
13

jtbubl

Bubble Bobble arcade compatible verilog core for FPGA
Verilog
10
star
14

jts16

FPGA core compatible with System 16 hardware
Verilog
10
star
15

jt8255

Programmable peripheral interface compatible with uPD8225
Verilog
8
star
16

jtdsp16

Verilog core compatible with ATT WE DSP16, famous for being the heart of CAPCOM Q-Sound games
Q#
7
star
17

jtcop

FPGA logic compatible with Data East Robocop arcade PCB
Verilog
7
star
18

jtjaguar

FPGA core compatible with the Atari Jaguar hardware
Shell
6
star
19

jteeprom

Verilog modules compatible with common EEPROM chips such as 93C46 or 93C06
Verilog
6
star
20

jt5205

Verilog ADPCM decoder compatible with OKI MSM5205
C++
5
star
21

jtpang

FPGA clone of Pang! arcade hardware
Verilog
4
star
22

jttwin16

FPGA core compatible with Twin16 arcade hardware
Prolog
4
star
23

jtrastan

FPGA core compatible with Rastan Saga arcade logic. #MiSTerFPGA
Verilog
4
star
24

jtoutrun

Verilog
4
star
25

jtupdate

Update scripts for MiSTer
Shell
4
star
26

jtpopeye

Popeye arcade conversion to FPGA
Verilog
3
star
27

jtkicker

FPGA core compatible with Kicker (Shaolin's Road) arcade and other games of similar hardware
Verilog
3
star
28

jt-sfg01

MSX SFG01 extension for FPGA (MiST and alike platforms)
Verilog
3
star
29

jt7759

Verilog module compatible with NEC ADPCM decoder uPD7759
Verilog
3
star
30

jtsdram

Checks the sanity of the SDRAM module on MiST and MiSTer systems
Verilog
3
star
31

jtngp

FPGA core compatible with the NeoGeo Pocket hardware
Verilog
3
star
32

jtvigil

FPGA core compatible with Vigilante hardware
Verilog
2
star
33

jtkicad

KiCAD libraries used for arcade schematics
2
star
34

jt900h

Verilog module compatible with the TLCS900H hardware
Verilog
2
star
35

jtdeco

Arcade hardware for FPGA
Verilog
2
star
36

asl

Fork of Alfred Arnold's Macro Assembler
C
1
star