Skip to content

TG100 sample ROMS

Technical discussion which is not directly related to VGM files. Talk about Hardware and Software.

Moderator: Staff

  • User avatar
  • vampirefrog Offline
  • Webmaster
    Webmaster
  • Posts: 825
  • Joined: 2014-01-28, 5:51:54

Re: TG100 sample ROMS

Post by vampirefrog »

the tg100 has a test dsp program to output a sine wave, maybe you can trigger that in test mode
  • Triton Offline
  • Posts: 7
  • Joined: 2023-05-19, 21:33:58
  • Location: The Netherlands
  • Contact:

Re: TG100 sample ROMS

Post by Triton »

Agreed, that would be something to try (when I get myself a TG100 :) ). As an alternative I guess I could try to disassemble the TG100 program ROM, as the DSP test program should be there.
  • andlabs Offline
  • Posts: 135
  • Joined: 2011-12-04, 22:00:12

Re: TG100 sample ROMS

Post by andlabs »

I have a working TG100; let me know if you need anything.
  • User avatar
  • vampirefrog Offline
  • Webmaster
    Webmaster
  • Posts: 825
  • Joined: 2014-01-28, 5:51:54

Re: TG100 sample ROMS

Post by vampirefrog »

If you're trying to reverse engineer the DSP chip, you might want to start by hooking up a 16 channel logic analyzer to the bus between it and the CPU, or if I recall correctly, there's also a bus between it and the synthesis chip. Then, record a normal startup and a test mode startup, where you make it play a sine wave. And then turn the capture into a byte stream and somehow figure out which of the bytes are instruction bytes and which are data bytes and so on.
  • Triton Offline
  • Posts: 7
  • Joined: 2023-05-19, 21:33:58
  • Location: The Netherlands
  • Contact:

Re: TG100 sample ROMS

Post by Triton »

The LDSP is exclusively controlled by the YMW258. I have documented the protocol here:
viewtopic.php?t=5745

In a nutshell, the YWM sends 32-bit serial command data from the DSPCDS pin, to the CDI pin on the LDSP.
The LSB 16-bit word has an identifier (0x8000 in the case of the YM3413). This is useful as you can chain the LDSP with a LEF (YM3415) and the chips need to know who should process the command. The MSB 16-bit word is a register / value combo, both 8-bit. I have observed 7 different registers, but most of their purpose is currently unknown.

I don't think much more information can be gathered from actual testing with the TG100 (except from maybe the LFO hold MIDI command... I don't know if it holds or resets the LFO).
De-soldering the YMW (and LDSP) and connecting them to an Arduino or something will be required for full hardware testing, as we need to be able to send custom data to the YMW in order to reverse-engineer the unknowns / blanks.
  • User avatar
  • vampirefrog Offline
  • Webmaster
    Webmaster
  • Posts: 825
  • Joined: 2014-01-28, 5:51:54

Re: TG100 sample ROMS

Post by vampirefrog »

NICE
  • brossaip Offline
  • Posts: 1
  • Joined: 2025-07-14, 17:54:32

TG100 samples groups by instrument

Post by brossaip »

After some tinkering, I’ve come to understand the YRW801 structure better. It starts with a 12-byte header for each sample, followed by 12-bit sample data. Looking at the Linux driver (midi_opl4_yrw801.c), I was able to see how the samples are grouped by instrument.

I also noticed that the YRW801 ROM contains a lot of empty space. At first, I thought it might have been a bad dump, especially since in the TG100 ROM, all headers and samples appear to be fully populated. But I later realized this is likely due to limitations in the hardware where OPL4 was used.

This investigation raised a question for me: if the YRW801 can already reproduce all the instruments listed in midi_opl4_yrw801.c, are there additional instruments in the TG100?

I searched the GitHub repository for something similar to midi_opl4_yrw801.c that maps instruments to their sample data, but I couldn’t find anything quite like it. The closest thing I found was samples.ods, but I wasn’t able to fully understand it.

Does anybody know if there’s a resource that shows how the TG100 samples are grouped into key ranges for each instrument, similar to how it’s done in midi_opl4_yrw801.c? For example Grand piano, key_min=0x16, key_max=0x2e, sample=300, key_min=0x2f, key_max=0x36, sample=301
  • User avatar
  • vampirefrog Offline
  • Webmaster
    Webmaster
  • Posts: 825
  • Joined: 2014-01-28, 5:51:54

Re: TG100 samples groups by instrument

Post by vampirefrog »

Check out earlier in this very thread: viewtopic.php?p=8823#p8823
Post Reply