Quantcast

Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 31

Thread: Genesis/SEGA CD multi tool homebrew.

  1. #16
    Comrade as in friend. Master of Shinobi ComradeOj's Avatar
    Join Date
    Dec 2012
    Location
    New Mexico, USA
    Age
    24
    Posts
    1,333
    Rep Power
    56

    Default

    Follow up post!

    I've been working on that RAM test. Here's what I have so far.


    It works pretty well! It's almost done. I tested it on one of my junk model 2s, and it seemed to work.
    It showed 0 errors normally, but I was able to induce errors by shorting pins on the RAM chips.

    I think this program I just made might be genuinely useful, and I hope it can help people diagnose possible RAM issues.

    Here is the download link for the ROM: https://drive.google.com/file/d/0B-u...ew?usp=sharing

    Things that need to be added:

    1. A way to tell which memory addresses failed. Maybe I'll make it so the program stops on failure, and you need to press a button to resume.

    2. The failure counter needs to count in decimal, not hexadecimal.

    3. SEGA CD port

    4. Integration into main test program.
    Modded consoles:
    Master System (v7040) with s-video & direct AV out
    Model 1 with 10mhz overclock & halt switches
    Model 1 with 10mhz 68010
    Model 2 VA2.3 with unfiltered Mega Amp, & s-video
    Model 3 VA1 with compatibility fixes & s-video
    32X with s-video
    Visit my web site at www.mode5.net
    Or my collection of homebrew Genesis games, programs, and music on SEGA-16!

  2. #17
    Sports Talker
    Join Date
    Jan 2014
    Posts
    31
    Rep Power
    0

    Default

    Interesting! Great tool!

    Is there any possibility to add a motherboard identifier (VA1, VA2...)?

  3. #18
    Comrade as in friend. Master of Shinobi ComradeOj's Avatar
    Join Date
    Dec 2012
    Location
    New Mexico, USA
    Age
    24
    Posts
    1,333
    Rep Power
    56

    Default

    Quote Originally Posted by ziltoid View Post
    Interesting! Great tool!

    Is there any possibility to add a motherboard identifier (VA1, VA2...)?
    Probably not. I don't think there is any way to tell motherboard revision from software. With things like region, you can read a certain part of memory, and it will have a unique number that corresponds to a certain region.
    There isn't anything like that for motherboard revision, as far as I know.
    Modded consoles:
    Master System (v7040) with s-video & direct AV out
    Model 1 with 10mhz overclock & halt switches
    Model 1 with 10mhz 68010
    Model 2 VA2.3 with unfiltered Mega Amp, & s-video
    Model 3 VA1 with compatibility fixes & s-video
    32X with s-video
    Visit my web site at www.mode5.net
    Or my collection of homebrew Genesis games, programs, and music on SEGA-16!

  4. #19
    Comrade as in friend. Master of Shinobi ComradeOj's Avatar
    Join Date
    Dec 2012
    Location
    New Mexico, USA
    Age
    24
    Posts
    1,333
    Rep Power
    56

    Default

    Bumping this because I uploaded a fixed version of the program.
    I edited the original post's download link to have the new version.

    Eke over on spritesmind.net said that the TMSS indicator, and the 4th sub program weren't working on his/her VA4 model 1. I fixed the program, and they confirmed the issues to be resolved. The problem was caused by not clearing out the system's RAM, and was pretty simple to fix.

    I'm not sure if there were other bugs happening on certain versions of the Genesis/MD, but if you had problems with the old version then you should try downloading this newer version.
    Modded consoles:
    Master System (v7040) with s-video & direct AV out
    Model 1 with 10mhz overclock & halt switches
    Model 1 with 10mhz 68010
    Model 2 VA2.3 with unfiltered Mega Amp, & s-video
    Model 3 VA1 with compatibility fixes & s-video
    32X with s-video
    Visit my web site at www.mode5.net
    Or my collection of homebrew Genesis games, programs, and music on SEGA-16!

  5. #20
    Hero of Algol
    Join Date
    Aug 2010
    Posts
    7,665
    Rep Power
    173

    Default

    You must spread some Reputation around before giving it to ComradeOj again.

    One feature which could be really useful for Sega CD owners IMO would be a seek time and data transfer benchmark where we could insert a CD of our choice in the Sega CD's drive and test it:
    • This way we could measure differences between model 1 and model 2 Sega CDs (and their revisions)/laser assembly models.
    • We could also use it to measure the wear level of the Sega CDs we own in terms of reading original CDs in different conditions (mint, OK, scratched, etc.).
    • Furthermore, we could also use it to measure which brand of CD-R goes better with the model we own (because a given brand can work fine with a Sony KSS-210A laser assembly and don't work at all with a JVC Optima-5, for an example). We could also measure the performance difference between original and burned CDs for a same game.
    • Possibly including a configurable stress test to be used at their own risk - SOA used to have a tool for that AFAIK; where we could measure the data transfer speed over time to see if the CD mechanism efficiency gets worse after warming up and how long it takes to do so. More complicated to implement but safer and maybe even more useful would be if the program itself had a minimum performance line which would make the stress test auto-stop before the time limit if the performance dropped below the acceptable level.
    • And a grade system which could be like: "S - Your Sega CD works like brand new!" (possibly only reachable on emulators or on real systems with just-replaced brand new laser assembly); "A - Your Sega CD is in great shape!"; "B - Your Sega CD works fine but may have issues with Silpheed."; "C - Your Sega CD is worn out."; "D - Your Sega CD needs repair."
    • You could also have a specific ComradeOj's Test CD image to be burned and used with this benchmark in order to make the results a bit more uniform.


    So many myths could be busted with a benchmark feature like that.
    Last edited by Barone; 07-18-2015 at 01:44 PM.

  6. #21
    Raging in the Streets goldenband's Avatar
    Join Date
    Dec 2009
    Posts
    4,400
    Rep Power
    90

    Default

    ^Sounds like a great idea to me!

  7. #22
    Comrade as in friend. Master of Shinobi ComradeOj's Avatar
    Join Date
    Dec 2012
    Location
    New Mexico, USA
    Age
    24
    Posts
    1,333
    Rep Power
    56

    Default

    @Barone

    That would be a really awesome program, and I would be willing to make it, but...

    I really don't know much about the SEGA CD. You would think I did because the programs I make often have a SEGA CD version, but no.

    Specifically, I don't have a good understanding about reading data and accessing memory on the SEGA CD. Wonder why the SEGA CD version of my Gen Test program is missing the sound test? Well, it's because I didn't know to read data off of the disc, so I was at the mercy of how much data the BIOS loaded in by itself.

    Still, if someone can give me an "Explain it like I'm 5" of how to program the SEGA CD, I'll see what I can do.

    My main questions:

    How do I tell the SEGA CD what data to read, and where to write it to?
    How do I put data into an ISO, then be able to have my program know where it is?
    Modded consoles:
    Master System (v7040) with s-video & direct AV out
    Model 1 with 10mhz overclock & halt switches
    Model 1 with 10mhz 68010
    Model 2 VA2.3 with unfiltered Mega Amp, & s-video
    Model 3 VA1 with compatibility fixes & s-video
    32X with s-video
    Visit my web site at www.mode5.net
    Or my collection of homebrew Genesis games, programs, and music on SEGA-16!

  8. #23
    Hero of Algol
    Join Date
    Aug 2010
    Posts
    7,665
    Rep Power
    173

    Default

    Quote Originally Posted by goldenband View Post
    ^Sounds like a great idea to me!
    Thanks for the feedback.

    Quote Originally Posted by ComradeOj View Post
    @Barone
    That would be a really awesome program, and I would be willing to make it
    Cool!!!

    Quote Originally Posted by ComradeOj View Post
    Still, if someone can give me an "Explain it like I'm 5" of how to program the SEGA CD, I'll see what I can do.
    My main questions:
    How do I tell the SEGA CD what data to read, and where to write it to?
    How do I put data into an ISO, then be able to have my program know where it is?
    I'm certainly NOT the guy who could do that (Chilly Willy and bgvanbur would the ones IMO) but maybe you could find your answers here:

    The Sega CD's mode 1 thing by Chilly Willy is probably very similar to what we're aiming at (with sources):
    http://www.sega-16.com/forum/showthr...SEGA-CD-Mode-1
    http://gendev.spritesmind.net/forum/...r=asc&start=15

    There's also these samples by Chilly (with sources):
    http://www.sega-16.com/forum/showthr...on-your-SegaCD
    http://gendev.spritesmind.net/forum/...pic.php?t=1403
    http://gendev.spritesmind.net/forum/...pic.php?t=1407

    Interesting discussion (has some source code on it and quite some info):
    http://gendev.spritesmind.net/forum/...pic.php?t=1650

    bgvanbur's stuff:
    http://gendev.spritesmind.net/forum/...pic.php?t=1169

    SNASM-CD Installation Manual v1.0 (Sega CD Devkit) scans:
    http://gendev.spritesmind.net/forum/...pic.php?t=1103

    Here you can find good quality scans of the Sega CD's development manual:
    http://gendev.spritesmind.net/forum/...ic.php?p=14100


    Mega CD Disc format (pregap, postgap, ...):
    http://gendev.spritesmind.net/forum/...pic.php?t=1140

    Some rather old but possibly interesting stuff:
    http://web.archive.org/web/201004260...y.net/~kbanks/
    http://gendev.spritesmind.net/forum/...pic.php?t=1786

  9. #24
    Wildside Expert bgvanbur's Avatar
    Join Date
    Jul 2011
    Location
    NY, USA
    Age
    36
    Posts
    199
    Rep Power
    20

    Default

    Quote Originally Posted by Barone View Post
    You must spread some Reputation around before giving it to ComradeOj again.

    One feature which could be really useful for Sega CD owners IMO would be a seek time and data transfer benchmark where we could insert a CD of our choice in the Sega CD's drive and test it:
    • This way we could measure differences between model 1 and model 2 Sega CDs (and their revisions)/laser assembly models.
    • We could also use it to measure the wear level of the Sega CDs we own in terms of reading original CDs in different conditions (mint, OK, scratched, etc.).
    • Furthermore, we could also use it to measure which brand of CD-R goes better with the model we own (because a given brand can work fine with a Sony KSS-210A laser assembly and don't work at all with a JVC Optima-5, for an example). We could also measure the performance difference between original and burned CDs for a same game.
    • Possibly including a configurable stress test to be used at their own risk - SOA used to have a tool for that AFAIK; where we could measure the data transfer speed over time to see if the CD mechanism efficiency gets worse after warming up and how long it takes to do so. More complicated to implement but safer and maybe even more useful would be if the program itself had a minimum performance line which would make the stress test auto-stop before the time limit if the performance dropped below the acceptable level.
    • And a grade system which could be like: "S - Your Sega CD works like brand new!" (possibly only reachable on emulators or on real systems with just-replaced brand new laser assembly); "A - Your Sega CD is in great shape!"; "B - Your Sega CD works fine but may have issues with Silpheed."; "C - Your Sega CD is worn out."; "D - Your Sega CD needs repair."
    • You could also have a specific ComradeOj's Test CD image to be burned and used with this benchmark in order to make the results a bit more uniform.


    So many myths could be busted with a benchmark feature like that.
    Very cool idea. Something about spreading rep around

    There is no ELI5 for Sega CD beyond BasiEgaXorz. The easiest approach would be to have the main CPU count in a loop when the sub CPU has a reading flag set. The sub CD would do a small read to make sure the drive is spinning (don't see any way to check this from the sega cd bios calls), seek to a predictable sector, set the flag, read a certain number of sectors, then clear the flag.

    There should be various tests that could be run, reading a single sector, reading a few sectors, reading a large chunk of sectors. Might be good to run each test more than once and provide min/mean/max/average type results. But you could also do different seeks to find the seek time for short seek and a long seek and this would indicate the lens motor status whereas the reading time would measure lens reading status (and if the lens motor is bad enough that would factor in).

  10. #25
    Hedgehog-in-Training Hedgehog-in-TrainingSports Talker
    Join Date
    Sep 2015
    Posts
    36
    Rep Power
    0

    Default

    Great tools, thanks a lot!

    May I suggest displaying some background graphics for the ram tester?
    It might help diagnose EMI from the bus activity getting into the RGB video lines, especially on earlier model 1's.
    Maybe it'll show up, maybe it won't. It'll help to use some particularly revealing images (or sprites?).
    The 240p test suite has some nice examples of those

  11. #26
    Hedgehog-in-Training Hedgehog-in-Training Eidolon's Avatar
    Join Date
    May 2016
    Location
    Bonn, Germany
    Posts
    18
    Rep Power
    0

    Default

    Nice idea! What about plans to include Sega CD support, did this proceed? I realise it is a rather old thread here...

    I have a problem with my Mega CD model 1's PCM audio (see here) and I suspect the cause may be faulty RAM chips directly associated with the PCM IC3. These are the Toshiba RAM ICs IC13 and IC14.

    The reason I suspect is that the above-mentioned audio fault happens with Lunar 2, but it does e.g. NOT happen with the music playing in the Mega CD model 1 Japanese BIOS screen (which is also pure Mega CD PCM).

    Therefore I conclude it must be some fault either with the PCM chip or the RAM chips.

    Would it even be possible to write a test program that verifies the functionality of these RAM chips, or is the PCM chip's RAM hidden so far away that it can't be reliably tested?

    If I look at the Mega CD model 1 schematics, I see no direct link between the 68k's address&data bus to the PCM chip RAM. So the test would need to be indirect via the PCM chip I suppose.

    Of course, the Mega CD is a beast of a machine and my problem may be due to many, many other reasons, too... Nevertheless I think it would be nice to have this possibility to do software based RAM&ROM integrity test first (if possible also check integrity of special ICs like the PCM chip) before starting to mess with the hardware.

  12. #27
    Road Rasher
    Join Date
    Apr 2013
    Location
    SF Bay Area, California
    Posts
    301
    Rep Power
    20

    Default

    Quote Originally Posted by Eidolon View Post
    Would it even be possible to write a test program that verifies the functionality of these RAM chips, or is the PCM chip's RAM hidden so far away that it can't be reliably tested?

    If I look at the Mega CD model 1 schematics, I see no direct link between the 68k's address&data bus to the PCM chip RAM. So the test would need to be indirect via the PCM chip I suppose.
    It's been a long time, but from what I remember the 68K has more or less free access to PCM RAM when the PCM chip is not playing samples. That access does indeed go through the PCM chip, so you can't completely isolate PCM chip problems from RAM problems, but I would expect you would see a different pattern of failure in most cases.

  13. #28
    Hedgehog-in-Training Hedgehog-in-Training Eidolon's Avatar
    Join Date
    May 2016
    Location
    Bonn, Germany
    Posts
    18
    Rep Power
    0

    Default

    Quote Originally Posted by Mask of Destiny View Post
    you can't completely isolate PCM chip problems from RAM problems
    Well, then it sounds like it does not make much sense to develop such a specific test.

    In my case by the way, it was indeed a hardware problem - but a different one than I suspected.
    It was not a RAM chip failure, but simply a bad connection between one of the RAM ICs (IC13,IC14) and IC3 (the PCM chip).

    This explains why some of the PCM music played well (e.g. the Mega CD Japanese BIOS screen), and some sounded garbled:
    The samples for the well-sounding music must've been so small as to utilize only one of the RAM ICs, the one with the good connection.

    I fixed it by reflowing the solder joints for all three ICs, after that my PCM sound problem was gone.

  14. #29
    Comrade as in friend. Master of Shinobi ComradeOj's Avatar
    Join Date
    Dec 2012
    Location
    New Mexico, USA
    Age
    24
    Posts
    1,333
    Rep Power
    56

    Default

    Rise from your grave!

    I've made a few updates to this program of mine. This is mostly a minor update with a few fixes that have been bugging me. Two new features have been added too. Please let me know of any bugs/issues.

    You can download it here: http://mode5.net/download/GenTestV3.0.zip
    And of course, source code is included with the download.

    Changes:
    added:
    68010 cpu detection
    direct color DMA test (under test images)

    fixed:
    6 button controllers now work correctly!
    hex writer/dumper now save last memory address. No need to re-enter.
    hex writer cursor now displays correctly upon loading module

    What does this mean?

    68010
    the 68010 is a 68000 compatible CPU that can be installed in to a Genesis system. The 68010 contains an additional vector base register (VBR). My program tries to read from this VBR. All will go well on a 68010 equipped system. A stock 68000 will throw an illegal instruction error. Based on this, it is possible to determine if the system is equipped with a 68010. Emulators may yield a false positive in some cases, but it should work 100% on real hardware.

    Direct color DMA
    I think most of us are familiar with this. I added a test image using this trick under the "test images" section.

    6 button controllers
    The last version of this program could not correctly detect when a 6 button controller button was released, which made them unusable. This has bugged me, and probably many others. I'm glad to say that It's fixed.

    hex writer/dumper now save last memory address
    Previously, these two programs would forget what memory address you had set them to when switching pages and reset to 0, which made it a pain in the ass to use. This has been fixed.

    hex writer cursor
    Some dumb thing I did to fix another dumb bug in the SEGA CD port. It's fixed now, although I don't think anyone even noticed there was a problem.

    Screenshots:

    My 68010 equipped Genesis being detected


    Direct DMA test image





    The SEGA CD port as not been updated, and has been deprecated.
    Modded consoles:
    Master System (v7040) with s-video & direct AV out
    Model 1 with 10mhz overclock & halt switches
    Model 1 with 10mhz 68010
    Model 2 VA2.3 with unfiltered Mega Amp, & s-video
    Model 3 VA1 with compatibility fixes & s-video
    32X with s-video
    Visit my web site at www.mode5.net
    Or my collection of homebrew Genesis games, programs, and music on SEGA-16!

  15. #30
    16-bits is all he needs Master of Shinobi matteus's Avatar
    Join Date
    Apr 2006
    Location
    UK
    Age
    37
    Posts
    2,299
    Rep Power
    59

    Default

    Neat! Very nice and great to see the direct DMA colour trick implemented too!


Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •