don't click here

Burning Saturn Games to a CD-R on macOS

Discussion in 'Technical Discussion' started by President Zippy, Apr 19, 2024.

  1. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    A couple years ago, I installed a Phantom mod chip on my Saturn, but I never put it to good use. Well, today is the day I finally play some Saturn games on native hardware, and I can't seem to find a good utility for burning these games to CD-R.

    Most of my games are a directory containing a single CUE file and multiple BIN files, but unfortunately the bchunk command-line utility only supports operating on a single CUE and a single BIN file. The first track is almost always the game binary in RAW mode, with all the other tracks being game audio.

    Does anybody know of a utility for macOS (app or command-line, doesn't matter) that works?
     
  2. Sappharad

    Sappharad

    Oldbie
    1,415
    70
    28
    You haven't specified whether you need something current or not. Unfortunately the golden age of CD burning on macOS had passed over 14 years ago.
    Disco App could burn BIN/CUE and had a neat animation of smoke coming off the app window while it burned, but it was never updated for 64-bit machines because that app died about 16 years ago.
    https://www.macupdate.com/app/mac/23176/disco

    Daemon Tools on macOS can mount pretty much any type of disc image and also burn them, but it's not free.
    https://www.daemon-tools.cc/home#3Page
    I have not tested it on Saturn games, nor have I used it in several years but I've owned a lifetime license for quite some time. It was decent the last time I used it.

    For a completely free option with no GUI, you can install cdrtools with Homebrew:
    https://formulae.brew.sh/formula/cdrtools
    CDRTools can burn cuesheets and used to be the gold standard for creating self boot Dreamcast discs from scratch 20+ years ago. (Not Saturn, but figured it was relevant to mention because most of the tutorials for creating bootable DC discs from scratch used it.)
     
    Last edited: Apr 20, 2024
    • Informative Informative x 1
    • List
  3. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    I don't have a problem paying for something that works, especially if it's only $3. The question is whether or not Daemon Tools can do the job.

    Has anybody else 'round this neck o the woods used it with CUE files containing multiple "tracks" of varying formats (e.g. MODE1/2352 "raw" data and AUDIO)?

    EDIT 1: cdrecord -raw *.bin didn't work :^(

    EDIT 2: I also tried installing and running ImgBurn on Windows, and that didn't work either. All the audio tracks were written out successfully (MODE: AUDIO/2352) and I can play them back on my Saturn's CD player application, but track 1 containing the game data (MODE1/2352) is not readable by my Saturn.

    my-macbook> cd Fighters-Megamix_SEGA-Saturn_JA
    my-macbook> cdrecord -raw *.bin

    Cdrecord-ProDVD-ProBD-Clone 3.02a09 (x86_64-apple-macosx23.0.0) Copyright (C) 1995-2016 Joerg Schilling

    cdrecord: Permission denied. WARNING: Cannot set priority using setpriority().

    cdrecord: WARNING: This causes a high risk for buffer underruns.

    cdrecord: Insufficient 'file read' privileges. You will not be able to open all needed devices.

    cdrecord: Insufficient 'file write' privileges. You will not be able to open all needed devices.

    cdrecord: Insufficient 'device' privileges. You may not be able to send all needed SCSI commands, this my cause various unexplainable problems.

    cdrecord: Insufficient 'memlock' privileges. You may get buffer underruns.

    cdrecord: Insufficient 'priocntl' privileges. You may get buffer underruns.

    cdrecord: Insufficient 'network' privileges. You will not be able to do remote SCSI.

    Using libscg version 'schily-0.9'.

    Device type : Removable CD-ROM

    Version : 0

    Response Format: 2

    Capabilities :

    Vendor_info : 'ASUS '

    Identifikation : 'SDRW-08U9M-U '

    Revision : 'A112'

    Device seems to be: Generic mmc2 DVD-R/DVD-RW/DVD-RAM.

    Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).

    Driver flags : MMC-3 SWABAUDIO BURNFREE

    Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R

    cdrecord: Warning: Cannot read drive buffer.

    cdrecord: Warning: The DMA speed test has been skipped.

    cdrecord: Permission denied. WARNING: Cannot set priority using setpriority().

    cdrecord: WARNING: This causes a high risk for buffer underruns.

    Starting to write CD/DVD/BD at speed 24 in real RAW/RAW96R mode for single session.

    Last chance to quit, starting real write 0 seconds. Operation starts.

    cdrecord: WARNING: Drive returns wrong startsec (0) using -11634 from ATIP


    WARNING: padding up to secsize (by 2272 bytes).

    Track 01: Total bytes read/written: 73885712/73887984 (30183 sectors).


    WARNING: padding up to secsize (by 2176 bytes).

    Track 02: Total bytes read/written: 1290368/1292544 (528 sectors).


    WARNING: padding up to secsize (by 432 bytes).

    Track 03: Total bytes read/written: 1287216/1287648 (526 sectors).


    WARNING: padding up to secsize (by 1872 bytes).

    Track 04: Total bytes read/written: 1293120/1294992 (529 sectors).


    WARNING: padding up to secsize (by 1120 bytes).

    Track 05: Total bytes read/written: 1621904/1623024 (663 sectors).


    WARNING: padding up to secsize (by 2096 bytes).

    Track 06: Total bytes read/written: 2029744/2031840 (830 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 07: Total bytes read/written: 2920928/2922912 (1194 sectors).


    WARNING: padding up to secsize (by 2256 bytes).

    Track 08: Total bytes read/written: 13145952/13148208 (5371 sectors).


    WARNING: padding up to secsize (by 944 bytes).

    Track 09: Total bytes read/written: 18290512/18291456 (7472 sectors).


    WARNING: padding up to secsize (by 1952 bytes).

    Track 10: Total bytes read/written: 9910000/9911952 (4049 sectors).


    WARNING: padding up to secsize (by 2000 bytes).

    Track 11: Total bytes read/written: 19398400/19400400 (7925 sectors).


    WARNING: padding up to secsize (by 784 bytes).

    Track 12: Total bytes read/written: 19409408/19410192 (7929 sectors).


    WARNING: padding up to secsize (by 1696 bytes).

    Track 13: Total bytes read/written: 19401152/19402848 (7926 sectors).


    WARNING: padding up to secsize (by 1392 bytes).

    Track 14: Total bytes read/written: 19403904/19405296 (7927 sectors).


    WARNING: padding up to secsize (by 1696 bytes).

    Track 15: Total bytes read/written: 19401152/19402848 (7926 sectors).


    WARNING: padding up to secsize (by 2000 bytes).

    Track 16: Total bytes read/written: 19398400/19400400 (7925 sectors).


    WARNING: padding up to secsize (by 2000 bytes).

    Track 17: Total bytes read/written: 19398400/19400400 (7925 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 18: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 2000 bytes).

    Track 19: Total bytes read/written: 19398400/19400400 (7925 sectors).


    WARNING: padding up to secsize (by 1392 bytes).

    Track 20: Total bytes read/written: 19403904/19405296 (7927 sectors).


    WARNING: padding up to secsize (by 2000 bytes).

    Track 21: Total bytes read/written: 19398400/19400400 (7925 sectors).


    WARNING: padding up to secsize (by 1696 bytes).

    Track 22: Total bytes read/written: 19401152/19402848 (7926 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 23: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 24: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 25: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 26: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 27: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 28: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 29: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1680 bytes).

    Track 30: Total bytes read/written: 16238352/16240032 (6634 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 31: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 416 bytes).

    Track 32: Total bytes read/written: 16477072/16477488 (6731 sectors).


    WARNING: padding up to secsize (by 1680 bytes).

    Track 33: Total bytes read/written: 16238352/16240032 (6634 sectors).


    WARNING: padding up to secsize (by 1680 bytes).

    Track 34: Total bytes read/written: 16238352/16240032 (6634 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 35: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1168 bytes).

    Track 36: Total bytes read/written: 20106704/20107872 (8214 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 37: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 38: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 39: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 40: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1984 bytes).

    Track 41: Total bytes read/written: 16235600/16237584 (6633 sectors).


    WARNING: padding up to secsize (by 1712 bytes).

    Track 42: Total bytes read/written: 48833440/48835152 (19949 sectors)

    my-macbook>
     
    Last edited: Apr 21, 2024
  4. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    By the way, I took my FLAC of the Jagged Little Pill album and burned it to a CD just to confirm the CUE files work, and the CD playback sounds awful on the Saturn. It sounds like the audio on a VHS tape that has been copied 5 times from another VHS tape.

    Is something wrong with my Saturn, or is audio playback on the Saturn just awful in general? I don't remember audio CDs sounding this bad on my PS1 in 2000.
     
  5. It might be the tool used to burn to CD? CDDA isn't the the highest audio quality, but it shouldn't sound *that* bad. I never had a Saturn but I imagine if it had issues playing CDs they would have been noted in contemporary sources. Have you tried Track 2 and beyond of the disc in another CD player?
     
  6. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    Yeah, Jagged Little Pill sounds perfect in my car stereo, better than the official m4a uploads on YouTube. Granted, there may be some placebo effect because "All I Really Want" is the only track on JLP that does anything to expose lossy compression formats. It could also be the speakers on this mid-size Toshiba CRT TV from 1999, but my N64 games don't sound nearly as muffled, and they don't have the terrible static problem that my Saturn's CD playback has.

    The reason I ask about the audio problem is because I'm seriously considering upgrading to an optical drive emulator, but if my Saturn has other problems then it's just not worth the trouble. Saturn emulation is hard several well-documented reasons, but unless I find a Saturn for less than $70 USD the next time I go to Japan for my wedding ceremony, then I'll just have to either make some contributions to the mednafen libretro core or hope for the best.
     
    Last edited: Apr 21, 2024
  7. Chibisteven

    Chibisteven

    Member
    1,365
    39
    28
    US
    Are you using an RF connection by chance or running it through an old VCR (VHS) device as a switch between different sources or as an RF modulator?
    • RF connections are usually pretty bad audio quality wise as they have hiss and hum issues, even if in Stereo. Usually muffled audio is a sign of a poorly made RF unit that is just there to get the job done and nothing more and 99% of such units are often that way and will only operate in mono. Even with external Stereo units which are rare you can have separation issues with Stereo audio itself. RF connections can be horrible if the source volume is low enough as well.
    • Composite video is where the audio quality improves greatly because it is no longer modulated with the video and completely separated from it and directly connected to the device. Video quality improves slightly but not much and can show artifacts such as dot crawl that RF connections hide a lot better.
    • S-VIDEO only improves video quality. Audio quality is on par with composite video connection.
    • RGB only improves video quality. Audio quality is on par with composite video connection.
    • Some VCRs can degrade audio quality a lot if you run any device through them.

    As for Stereo and Mono, a stereo album can sound bad if played in mono. The Saturn has both a Stereo mode and a Mono mode that can be toggled in it's menu settings as to be compatible with both kinds of composite video devices (Yellow/White = Mono and Yellow/White/Red = Stereo). If you got a Stereo TV then you'll need to go into BIOS menu and change the Saturn to operate in Stereo to get the most out of it's audio hardware.

    TVs don't usually have the best audio hardware and some TVs can have hiss if the volume is turned up loud enough and different devices can have different volume levels and if you're running this through say a VCR (VHS), try bypassing that with a direct connection to the TV and see if the audio improves or connect the Saturn to an A/V receiver instead.
     
  8. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    To answer your question, I'm using composite and I'm playing back in stereo, with no VCR in between my Saturn and my TV. I grew up with 5th Gen consoles and CRT TVs, so I'm well-acquainted with the rules of that technology- at least short of repairing a TV :thumbsup:
     
  9. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    I don't know if this counts as a double-post, but I think this is relevant:

    What if the problem is that I'm using the CUE sheet? Could it be writing out some extra metadata that subverts "game mode" for track 1?

    I was also looking at documentation on Linux's ioctl interface for writing to optical drives using SCSI commands, and I assume it's largely similar to any other POSIX ioctl for optical drives. I noticed there are separate commands to read data in raw (MODE 1, 304 bytes of metadata + 2048 bytes of payload data per sector) and cooked mode (MODE 2, just the payload), but data can only be written in "cooked" mode.

    https://www.kernel.org/doc/html/latest/userspace-api/ioctl/cdrom.html

    At this point, I am starting to question whether my phantom mod chip is the problem. I probably should have bought an NTSC-U game just to test that I didn't break my Saturn and then an NTSC-J game to test that the chip really subverts the copy protection mechanism. For all I know, I'm writing these games without the DRM, and my phantom just doesn't handle it properly. I made the mistake of not watching a YouTube video of someone successfully demonstrating use of this thing. My Saturn is an NTSC-U model 1, and for all I know this thing was only ever tested on a model 2 despite having the pins and ribbon cables for both models.
     
  10. Sappharad

    Sappharad

    Oldbie
    1,415
    70
    28
    You always want to burn the .cue sheet, not attempt the individual tracks yourself. The CUE sheet is supposed to tell it what all of the tracks are, the mode, where they start, the CDDA gaps, etc. Even with CDRecord above, you should have used it with the .cue sheet, not the bin files.

    Have you tried mounting your image in a virtual drive to see if it works in an emulator prior to burning it?
     
  11. Cobra!

    Cobra!

    Send Help Member
    206
    194
    43
    Scotland
    Telocation Gemini (Sega Saturn)
    Linux user, but I use Img Burn running on wine, and it works a charm!

    Wine is also available on MacOS, so it’s worth a shot there?

    It’s also worth pointing out that the CD-Rs you use matter, some brands work better than others. I’ve personally had the best luck with Verbatim’s “Music CD-Rs” and Taiyo Yuden.
     
    • Informative Informative x 1
    • List
  12. Tets

    Tets

    one rude dude Oldbie
    906
    73
    28
    No kidding, ImgBurn via Wine is a viable option? I'm in sort of a parallel situation here. I just installed a PsNee mod chip in my PSOne, and I've had a hell of a time with burning software on Fedora Workstation. I'll have to try this out for sure.

    Edit: Oh yeah, it works perfectly! Did have to do some tweaking, but now I have the perfect setup for burning Playstation discs again. Hopefully the same can be done on MacOS.
     
    Last edited: May 2, 2024 at 3:01 PM
  13. Cobra!

    Cobra!

    Send Help Member
    206
    194
    43
    Scotland
    Telocation Gemini (Sega Saturn)
    Oh yeah that’s right, I forgot to mention I installed it through a frontend called PlayOnLinux, which had an install script for Img Burn, that I assumed did all of the tweaking for me.
    I think the same program is available for MacOS as PlayOnMac?