Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements to Roland D-70 #13187

Merged
merged 4 commits into from
Jan 7, 2025

Conversation

felipesanches
Copy link
Contributor

@felipesanches felipesanches commented Jan 6, 2025

  • Chose more accurate colors for the LCD.
  • Declared more versions of the program ROMs.
  • Split the ROMs to match actual chips and renamed them to indicate their corresponding IC references (IC4 for the even ROMs and IC9 for the odd ones).

Before:
d70_old_colors

After:
Screenshot From 2025-01-05 22-07-59

(@giulioz)

Copy link
Contributor

@giulioz giulioz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! I have no merge rights but the code looks good

@giulioz
Copy link
Contributor

giulioz commented Jan 6, 2025

By the way: if you have further interest into emulating the D70, I got all the custom sound chips decapped and imaged.
PCM 1: https://siliconpr0n.org/archive/doku.php?id=furrtek:roland:r15229894
PCM 2: https://siliconpr0n.org/archive/doku.php?id=furrtek:roland:r15229895
TVF: https://siliconpr0n.org/archive/doku.php?id=furrtek:roland:r15239115
RCC: https://siliconpr0n.org/archive/doku.php?id=furrtek:roland:r15239126
At least something like the PCM interpolation table can be dumped

@cuavas cuavas merged commit 7f62d7d into mamedev:master Jan 7, 2025
3 of 5 checks passed
Comment on lines -513 to -514
ROM_SYSTEM_BIOS(0, "v203", "Version 2.03")
ROMX_LOAD("roland_d70_v110_combined.bin", 0x00000, 0x20000, CRC(52deab1e) SHA1(87d7196888edec65c9feddd16d4c715f6992abc7), ROM_BIOS(0))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this called “Version 2.03” to begin with?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think wrong copy paste from my side, sorry

ROM_SYSTEM_BIOS( 2, "v114", "Version 1.14 - September 20, 1990" )
ROM_SYSTEM_BIOS( 3, "v112", "Version 1.12 - August 8, 1990" )
ROM_SYSTEM_BIOS( 4, "v110", "Version 1.10 - April 19, 1990" )
ROM_SYSTEM_BIOS( 5, "v100", "Version 1.00 - March 10, 1990" )
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reasoning for omitting the dots?

How does one deal with the ambiguity when some ROM eventually reaches version v10.0?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s unnecessary clutter when the minor version is always two digits and there’s no patch version. If they went to two-digit major versions, it would still be obvious that v1000 is 10.00.

For other cases, see e.g. this (major version and minor version always one digit, patch version may or may not be present):
https://github.com/mamedev/mame/blob/mame0273/src/mame/osborne/osborne1.cpp#L1069

Or this:
https://github.com/mamedev/mame/blob/mame0273/src/mame/acorn/z88.cpp#L609

Or this:
https://github.com/mamedev/mame/blob/mame0273/src/mame/alesis/alesis.cpp#L480

We don’t put punctuation in the BIOS short names unless it’s really necessary for it to work as a mnemonic.

@galibert
Copy link
Member

galibert commented Jan 7, 2025

PCM 2: https://siliconpr0n.org/archive/doku.php?id=furrtek:roland:r15229895

Unless I missed something, only that one has something dumpable. It's a table that's similar but not identical to tanh. If I were to guess, I'd say it's used to handle saturation in the simulated filter.
c.txt

@giulioz
Copy link
Contributor

giulioz commented Jan 8, 2025

@galibert thank you for dumping it! I don't think it's filter related, since the filter is handled in another chip (TVF). In other similar Roland chips, the ROM stores coefficients for a 4-point interpolation algorithm, maybe it's possible that it has a similar usage. That PCM2 chip does in fact decoding and interpolation of DPCM samples.

Unless I missed something, only that one has something dumpable.

Correct, but the others can still be traces and reverse engineered (if anybody else is interested in doing it)

boamaod pushed a commit to boamaod/mame that referenced this pull request Jan 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants