For the millionth time... Changing the CD drives in a NeoCD?

td741

, NOTE: Please add 16 points to his feedback., --
Joined
Jun 7, 2002
Posts
1,735
Yes, this has probably been discussed over and over, I remember reading a post back when I was on DHP.

Now, if money wasn't an object, what would be required to connect the NeoCD to a newer (faster) CDRom drive? [Tried out a NeoCD emulator the other day and it just blew me away how quickly stuff loaded on my 48x drive. Well, of course it's 48x faster but... well you get the idea. :p ]

a) What type of controller is handling the drive? I'm guessing is some proprietary controller? Anyone ever figured how it worked? Would it be easy to convert it to something like IDE or SCSI. (For example, like how you can convert IDE devices to work on a SCSI chain: <a href="http://www.scsi2ide.com/)." target="_blank">http://www.scsi2ide.com/).</a>

b) With that done, is there anyway for the system as it is to cope with a faster drive? Would we have to recode the bios, change some of the chips. What modifications would be needed to try and boost the speed. While we're at it, anyone tried replacing some of the Neo's chips with "drop in" upgrades? :p (IE: Wasn't the 68010 a drop in replacement for the 68000?)

Makes me want to look into a dead NeoCD just to take a look at it's innards. (I'm not touching my working one. ;) )

[ July 18, 2002: Message edited by: td741 ]</p>
 

eddicef

NEST Puppet
Joined
Jan 31, 2002
Posts
163
Interesting topic! Back when I had a Neo Geo CD system I always wanted to do something like that aswell, but never did I find someone willing to experiment on that. Of course it would be possible. You would just have to find someone who knows about the architectur of the Neos Main Board and all it components. Good Luck! ;)

[ July 18, 2002: Message edited by: eddicef ]</p>
 

Takumaji

Krautmin
Staff member
Joined
Jul 24, 2001
Posts
20,456
Thing is that you not only would have to change the cache RAM (too slow), but also the Bios (the original wouldn't work with newer drives), the work/code RAM (also too slow) and the drive controller. Even if you would manage it somehow to alter/update the Bios code for yourself, you would run into serious problems with the games, 'cause their old Bios calls wouldn't work with the new i/o system in the worst case.

You could code a new Bios interface/filter for this, but... uh... I honestly wouldn't want to do that.

The Neo CD drive controller is a non-IDE, non-SCSI proprietary product, because the drive isn't really a single speed drive, it reaches up to 500-550k/sec transfer rates, which is slightly above the usual 330k/sec. for standard single speed units.

As I mention in my Neo CD faq (click my sig to read it), there's a theoretical chance of success, but that's about it. Sad as it is. A Neo CD with a 52x drive would ROCK MY WORLD! <img src="graemlins/drool.gif" border="0" alt="[Drool]" />

The Neo CD emu really is no reference here. The emulator by that french guy simply ignores the CD hardware parts of the standard Neo CD Bios and uses the std. PC ide/scsi i/o instead.
 

td741

, NOTE: Please add 16 points to his feedback., --
Joined
Jun 7, 2002
Posts
1,735
Okay, let's work on these points and see what we come up with. Again, money's not an object. Just brainstorming.

I've cut and pasted some of this stuff to sort the points out.
Thing is that you not only would have to change the cache RAM (too slow)
<hr></blockquote>
How is that different from?
the work/code RAM (also too slow)
<hr></blockquote>

Okay, how come the cache is too slow?
Obviously the cache is fast enough to use in game?
Is this some kind of memory where write operations are much slower?
What is the maximum speed you can write to cache ram?
Has anyone measured this?

and the drive controller.
<hr></blockquote>

We can possibly get away from replacing the controller if we can create a circuit that translate the controller's signals to some industry standard. But that doesn't get around other problems. Such as speed limitations on the controller and also a big "?" as to how the controller works itself.

Or...

but also the Bios (the original wouldn't work with newer drives)...
Even if you would manage it somehow to alter/update the Bios code for yourself, you would run into serious problems with the games, 'cause their old Bios calls wouldn't work with the new i/o system in the worst case.
You could code a new Bios interface/filter for this, but... uh... I honestly wouldn't want to do that. <hr></blockquote>

Well, we'd need to dump the bios (already done) and take a good hard look at it. If anyone can figure out the code behind it (possibly via the help of an emulator) then there might be a slim chance.

a) If all CD function calls are made via the Bios, then we can possibly bypass the onboard CD controller. Try and link in a new controller, and modify the BIOS calls so that we mask this change.

b) can software access the CD controller directly? How do some games implement their custom "cd-loading gauge"'s? Can we bypass all of that? (If we can get around wasting CPU time by not displaying a load-gauge.)

How does the emulator do it? Does it emulate the controller or override the BIOS calls to the controller?

[Edited for clarity]

[ July 18, 2002: Message edited by: td741 ]</p>
 

Takumaji

Krautmin
Staff member
Joined
Jul 24, 2001
Posts
20,456
The brain storm rages on...

1) RAM timing

The cache/work RAM has a certain i/o ratio, which would be overridden by a very fast drive, since it would deliver more data to the bus than it could possibly handle.

This timing is derived from the 12MHz of the m68k CPU, which sets the bus tact.

2) i/o or disc controller

Yup, it would be necessary to analyse the standard Neo CD bios and compare it to a PC-style one, in order to find a way to either "translate" the calls or re-write them.

3) Neo CD emulation

Well, I haven't disassembled the emu myself, I've just read some white papers/faqs about it. According to what I've read, the emu naturally emulates the disc access too, on top of the PC hardware, a concept which needs a quite powerful computing base, say a Pentium-based CPU (powerful compared to the Neo, that is).

You would need a dedicated logic board for this if you'd want it to work in a Neo CD. Quite some fuzz, eh.
 

td741

, NOTE: Please add 16 points to his feedback., --
Joined
Jun 7, 2002
Posts
1,735
...more brainstorming.

I'm a software developer, not hardware. :) So bare with me. (I know just enough to be dangerous. ;) )

And thanks for baring with me again.

1) RAM timing

The cache/work RAM has a certain i/o ratio, which would be overridden by a very fast drive, since it would deliver more data to the bus than it could possibly handle.

This timing is derived from the 12MHz of the m68k CPU, which sets the bus tact.
<hr></blockquote>

How much throughput could the ram take?

7mhz 68000 based Amigas can handle SCSI output from harddrives. Granted, there's DMA helping the whole thing along so it's another beast altogether. *humm*

I'd expect we could always add a big buffer and/or cache for the cache, but that seems rather pointless and doesn't gain us anything in that respects.

Okay, I'm not quite sure where I'm going with this. Maybe it would help to figure out how information is stored in the cache.

Hmm... This comes from my software background. It's probably not feasible in hardware but here goes.

Say we replace the cache altogether. We have the cache wired up to the controller and have DMA access. When CD Rom controller is loading files into cache (via the bios calls?) the cache is locked out from the rest of the system enabling the CD Controller to access ram through a faster bus. When the cache is being accessed by the rest of the system, then the DMA bust is cut off.

a) Does software ever write anything directly in the cache? IE: Is the "cache" used as swap space.
b) Will it ever happen that the cache will be accessed by the CD Controller and the rest of the system at the same time?

2) i/o or disc controller

Yup, it would be necessary to analyse the standard Neo CD bios and compare it to a PC-style one, in order to find a way to either "translate" the calls or re-write them.
<hr></blockquote>

Okay. Well, we have the Neo CD bios and I'm guessing someone disabled it somewhere in order to isolate some parts of it? How feabile would it be to make modifications?

3) Neo CD emulation

Well, I haven't disassembled the emu myself, I've just read some white papers/faqs about it. According to what I've read, the emu naturally emulates the disc access too, on top of the PC hardware, a concept which needs a quite powerful computing base, say a Pentium-based CPU (powerful compared to the Neo, that is).
<hr></blockquote>

Hmm... I'm not convince that a powerful cpu is required to emulate the disk access. Granted yeah, a 68000 might be a little slow. Can we counter that with DMA? Again, I'm not sure how deep down inside DMA works.

On a side note, the fact that emu's manage to have games loading on faster systems does show that the actual game software itself doesn't seem to have problems with being on a faster cd. IE: no critical timing issues. Mind-you, I did see some sync problems between the CD audio and the graphics on screen (but that could have been due to slow drawing of graphics.)

You would need a dedicated logic board for this if you'd want it to work in a Neo CD. Quite some fuzz, eh.
<hr></blockquote>

"fuzz"? Sorry, must be my francophoness coming through? What does that mean?

Oh, I didn't doubt that it would need a dedicated logic board at all.

Would it be easier to shoe horn this logic into the existing Neo, or take essentially the core parts, and transpose them on a new board with revised I/O?

Or better yet. (And more psycho.)

Make a NeoGeoCD compatible expansion unit for the AES or MVS. :)

Is *THAT* possible?

What would need to be able to do that?

a) How different are these two architectures?
b) What can we access through the cart slot? Are there any other i/o?
c) We'd definatly need to replace the bios, or can we override it from the cart slot?

Anyway, I'll leave you with the above. :)
 

Takumaji

Krautmin
Staff member
Joined
Jul 24, 2001
Posts
20,456
Originally posted by td741:
<strong>...more brainstorming.

I'm a software developer, not hardware. :) So bare with me. (I know just enough to be dangerous. ;) ) [...] </strong><hr></blockquote>

Heh, yeah, same here, tho I'm really interested in hardware stuff, specially of course in the Neo in all its manifestations.

Originally posted by td741:
<strong> [...] How much throughput could the ram take?

7mhz 68000 based Amigas can handle SCSI output from harddrives. Granted, there's DMA helping the whole thing along so it's another beast altogether. *humm* [...] </strong><hr></blockquote>

The cache I'm referring to is the CD drive cache, which is separated from the rest of the system.

There's also the normal work RAM where all the data gets loaded into.

So, first off we have the cache, which has a certain speed. Then there's the work RAM, and its speed is deteremined by the bus, tacted by the 12 MHz CPU. The CD drive is controlled by the bios, which gets called from the game code.

According to some tech buffs I talked to yesterday, the Neo CD drive must be some PC-compatible stuff, since 1994, when the CD was released, there were really no manufacturers of proprietary CD drives left, the world went PC, so I'd guess that there should be at least a basic compatibility.

There are drawbacks, however (how novel, eh); first of all, it would be necessary to check the commands the Neo CD's disc i/o controller sends out. There should be some for stepper movements/laser placement, spin up, spin down, etc., so you would need to find a drive which can properly "talk" to the controller, and vice versa.

Then, there still is the cache-to-RAM problem. If the Neo CD loads its data into the cache (which is, AFAIK, 128K in size), and AFTERWARDS streams it into the RAM, there would be a certain chance to get a, say, 12x drive working with the CD. Theoretically.

Originally posted by td741:
<strong> [...] a) Does software ever write anything directly in the cache? IE: Is the "cache" used as swap space.
b) Will it ever happen that the cache will be accessed by the CD Controller and the rest of the system at the same time? [...] </strong><hr></blockquote>

a: Provided it's a full blown disc i/o controller we're talking about, it's unlikely that the system has write access to the cache.

b: That's the point. If not, we could be lucky... if yes, well... tough luck! :)

Originally posted by td741:
<strong> [...] Hmm... I'm not convince that a powerful cpu is required to emulate the disk access. Granted yeah, a 68000 might be a little slow. Can we counter that with DMA? Again, I'm not sure how deep down inside DMA works.

On a side note, the fact that emu's manage to have games loading on faster systems does show that the actual game software itself doesn't seem to have problems with being on a faster cd. IE: no critical timing issues. Mind-you, I did see some sync problems between the CD audio and the graphics on screen (but that could have been due to slow drawing of graphics.) [...] </strong><hr></blockquote>

Only one Neo CD emu I've checked nearly fully emulates the i/o, all the others do simple fopen() for the PCM-data (sound), sprites, code, graphics, etc., directly from the PC's CD-ROM. The original Neo CD bios is still there, but only for "backwards compatibility", so it's really not possible to get any clues here, since the only full emu doesn't come as source, while the others do (and provide interesting reading that way).

And yep, the "urban legend" that Neo CDs would be readable in single speed only is just that, a legend.

DMA... well, uh... I don't know wether the Neo CD's motherboard has a DMA controller on-board. This is a matter of the chipset; the Amiga had its Agnus, but the Neo CD...?

Originally posted by td741:
<strong> [...] "fuzz"? Sorry, must be my francophoness coming through? What does that mean? [...] </strong><hr></blockquote>

Lots of hard, dirty, unrewarding work! :)

Originally posted by td741:
<strong> [...] Make a NeoGeoCD compatible expansion unit for the AES or MVS.
[...] </strong><hr></blockquote>

Hey, this is a blast from the past... in or about 1992/93, SNK were planning to build a CD-extension for the home cart system, but soon canned the idea and came up with the Neo CD instead.

Does this work? Possibly. Would I want to design it? NOOOO! :D
 

td741

, NOTE: Please add 16 points to his feedback., --
Joined
Jun 7, 2002
Posts
1,735
The cache I'm referring to is the CD drive cache, which is separated from the rest of the system.
<hr></blockquote>

Oh, I would have thought that that would be a buffer. Is it an honest to god cache? (see below)

There's also the normal work RAM where all the data gets loaded into.
<hr></blockquote>

This ram is what would "simulate" the cartridge "ROM" then right?

So, first off we have the cache, which has a certain speed. Then there's the work RAM, and its speed is deteremined by the bus, tacted by the 12 MHz CPU. The CD drive is controlled by the bios, which gets called from the game code.
<hr></blockquote>

If we're dealing with a really fast drive, the cache is not really that important. If we can go from the drive to the work ram, we can get away from a slow cache. (Slow cache? :p ) But I don't see the cache as being a bottleneck more then the actual bus. [Umm, that's if it's a cache and not a buffer. (see below)]

But if the work ram is fast enough to be used in a game environement, then I still don't see it as a problem?

According to some tech buffs I talked to yesterday, the Neo CD drive must be some PC-compatible stuff, since 1994, when the CD was released, there were really no manufacturers of proprietary CD drives left, the world went PC, so I'd guess that there should be at least a basic compatibility.
<hr></blockquote>

Yay! Score one for the good guys. :p

There are drawbacks, however (how novel, eh); first of all, it would be necessary to check the commands the Neo CD's disc i/o controller sends out. There should be some for stepper movements/laser placement, spin up, spin down, etc., so you would need to find a drive which can properly "talk" to the controller, and vice versa.
<hr></blockquote>

Okay, how's this... Is the CD Controller actually proprietary? Or did they get an off the shelf part for it?

Has anyone identified the controller. Can someone trace back what chip was used for it? Would there be a drop-in replacement for one supporting different types of drives? (Yeah, right, I know, probably not).

Then, there still is the cache-to-RAM problem. If the Neo CD loads its data into the cache (which is, AFAIK, 128K in size), and AFTERWARDS streams it into the RAM, there would be a certain chance to get a, say, 12x drive working with the CD. Theoretically.
<hr></blockquote>

Remember, this is just hammering out how it could be done. Not saying anyone COULD do it and no guarantees are being made.

Okay, I need a distinction, is it a cache, or is it a buffer?

Here's how I thought they were defined.

Cache: Memory used to speed up Disk I/O. It works by storing in memory the lastest files accessed. When someone asks to read/write to these files, it will check the cache to see if it's in there first. If it is, then grabs it from the cache. If it isn't, then it'll read it off the drive. If the cache is slow here, that shouldn't be much of a problem.

Buffer: Memory used to hold streaming data (keyboard strokes, bits coming in through serial ports, etc.) This is usually one way. People writing to a device writes to the buffer, people reading the device reads from the buffer. If the buffer fills up, then data is usually lost.

Having a slow buffer could be a pain in the butt. That I'll agree with. If the CD Controller has it's eye on the buffer, then it would hopefully be smart enough to stop/start the drive reading until the buffer is full. Or did SNK rely on the slow drive's constant timing?

And yep, the "urban legend" that Neo CDs would be readable in single speed only is just that, a legend.
<hr></blockquote>
I figured there wouldn't be a limitation. SNK would have shot themselves in the foot if there was such a limitation (IE: not being able to come up with an upgraded version of the system.)

DMA... well, uh... I don't know wether the Neo CD's motherboard has a DMA controller on-board. This is a matter of the chipset; the Amiga had its Agnus, but the Neo CD...?
<hr></blockquote>

Well, the Agnus is a different beast. It had some sort of pseudo DMA since it needed to access Chip ram without going through the CPU. In fact, I think the Agnus locks out the CPU from chipram while it's access it. That's why Amigas speed up when you add "fast ram". The CPU doesn't have to fight with Agnus for ram. :p But there are a few SCSI controller cards that have DMA as well.

But then again, I'm no hardware engineer and might have just mangled a bunch of stuff I read ages ago together. :p

Lots of hard, dirty, unrewarding work!
<hr></blockquote>

Hey, I'm not saying it would be easy. But if it worked it could be rewarding. :p

RE: NeoGeoCD Compatible expansion for the AES.
Hey, this is a blast from the past... in or about 1992/93, SNK were planning to build a CD-extension for the home cart system, but soon canned the idea and came up with the Neo CD instead.
<hr></blockquote>

Hmm... Sounds *vaguely* familliar.

At the time, I think the NeoGeoCD was a better option. The Neo hardware still cost a lot and making a stand alone unit was probably much cheaper then the AES + CD option.

Does this work? Possibly. Would I want to design it? NOOOO!
<hr></blockquote>

Makes me wonder if we can gather some hardware techs to look into either projects. ;)

[Edited for clarity]

[ July 19, 2002: Message edited by: td741 ]</p>
 
Top