Quantcast

Page 7 of 10 FirstFirst ... 345678910 LastLast
Results 91 to 105 of 143

Thread: Super VDP for SegaCD

  1. #91
    Hero of Algol kool kitty89's Avatar
    Join Date
    Mar 2009
    Location
    San Jose, CA
    Age
    23
    Posts
    9,171
    Rep Power
    50

    Default

    Quote Originally Posted by Chilly Willy View Post
    Yep! No trouble at all... well beyond knowing how to program the CD of course.
    Crap, I've been mistakenly saying otherwise in several recent threads... (mainly as a disadvantage of a "Neptune CD") Oh well.

    How about the RAM though, games running on the 32x are still limited by it's 256k of SDRAM, right? You wouldn't be able to use the work RAM in the Genesis or CD. (except for stuff on the Genesis video layer?) Or could you use that RAM for other work as well, like tasks that you move over to the Genesis or CD processors. (ie could the 68k on the CD or Genesis be used to handle game logic and AI working in their own RAM or otherwise?)

    This has also been bothering me, the 32x SH2's are on a shared 16-bit bus, but is this bus also shared with the 68k?



    BTW, Chilly Willy, a while ago you mentioned you were looking into the CD ASIC's polygon rendering capabilities:
    Quote Originally Posted by Chilly Willy View Post
    The CD graphics array is capable of polygon rendering as well. I'm doing some experiments in that to see what kind of speed I can get. Of course, it's still 16 color rendering only.
    Any luck with that?

  2. #92
    ESWAT Veteran Chilly Willy's Avatar
    Join Date
    Feb 2009
    Posts
    5,832
    Rep Power
    51

    Default

    Quote Originally Posted by kool kitty89 View Post
    Crap, I've been mistakenly saying otherwise in several recent threads... (mainly as a disadvantage of a "Neptune CD") Oh well.

    How about the RAM though, games running on the 32x are still limited by it's 256k of SDRAM, right? You wouldn't be able to use the work RAM in the Genesis or CD. (except for stuff on the Genesis video layer?) Or could you use that RAM for other work as well, like tasks that you move over to the Genesis or CD processors. (ie could the 68k on the CD or Genesis be used to handle game logic and AI working in their own RAM or otherwise?)
    With CD 32X software, the 32X only has access to its own SDRAM (256 KB), and the framebuffers. In fact, the way you start up the 32X (for a CD 32X game) is to copy a header/code/data block into the framebuffer, then set one of the 32X communication registers telling it to do a CD-style startup. The 32X then copies the code/data from the framebuffer to the SDRAM and runs it. The Genesis 68000 has access to the CD Word RAM (either 128 KB or 256 KB, depending on the mode), its own Work RAM (64 KB), and the 32X framebuffer. The CD 68000 has access to the CD Word RAM (again, 128 or 256 KB) and its own Program RAM (512 KB). So the programmer has a bit of a juggling act to do if they mean to do something like read a file from a CD that is meant for the 32X processors. I think probably many CD 32X games use the CD 68000 as the main CPU running the main game code from Program RAM (at 512 KB, it's the largest block of RAM available to the CD 32X). It will then tell the Genesis 68000 to do some stuff itself (like read the pads or do some FM sounds or maybe display an overlay on the Genesis VDP), while the Genesis 68000 will then pass some of those tasks on to the 32X, like maybe do some wavetable synthesis, or draw images from SDRAM into the framebuffer. That would be a fairly straightforward way to make a CD 32X game.

    Of course, there are many MANY other permutations that a programmer could come up with. Another I could imagine would be the main game code running on the 32X, with the SH2 telling the Genesis 68000 to do something, some of which it then passes on to the CD 68000 (like read a CD file or play a CD audio track).

    This has also been bothering me, the 32x SH2's are on a shared 16-bit bus, but is this bus also shared with the 68k?
    Not quite. The ROM bus is shared, so if you have the SH2s and the 68000 all trying to get instructions/data from the ROM at once, you wind up with waits. The Master SH2 has first shot at the ROM, the Slave SH2 has next shot, and the 68000 goes last. That's why Wolf32X runs the 68000 code in Work RAM - so it's not on the ROM bus hardly at all. The Master SH2 runs the main game code out of ROM, but its caches are on, so it spends much of its time running from cache, not the ROM bus. The Slave SH2 is put in half-n-half mode and the code it runs is stored in the cache space. So it's not on the ROM bus much either. So with proper coding, a shared bus doesn't have to be a limiting factor.


    BTW, Chilly Willy, a while ago you mentioned you were looking into the CD ASIC's polygon rendering capabilities:

    Any luck with that?
    Not yet. I'll be doing my experiments once I've got my base code for running stuff from CD finished.

  3. #93
    Hero of Algol kool kitty89's Avatar
    Join Date
    Mar 2009
    Location
    San Jose, CA
    Age
    23
    Posts
    9,171
    Rep Power
    50

    Default

    Quote Originally Posted by Chilly Willy View Post
    Not quite. The ROM bus is shared, so if you have the SH2s and the 68000 all trying to get instructions/data from the ROM at once, you wind up with waits. The Master SH2 has first shot at the ROM, the Slave SH2 has next shot, and the 68000 goes last. That's why Wolf32X runs the 68000 code in Work RAM - so it's not on the ROM bus hardly at all. The Master SH2 runs the main game code out of ROM, but its caches are on, so it spends much of its time running from cache, not the ROM bus. The Slave SH2 is put in half-n-half mode and the code it runs is stored in the cache space. So it's not on the ROM bus much either. So with proper coding, a shared bus doesn't have to be a limiting factor.
    Yeah, with this set-up at least.

    I was discussing similar issues on the Jarguar recently, one its problems with using it 68000 is the whole system shares a single unified bus and it has to do everything in main and really bogs down the rest of the system. (one of the members actually suggested that a seperate bus with 64 kB dedicated to the 68k would really have helped things and actually made it a useful contribution to the system, rather than a hindrance)

  4. #94
    ESWAT Veteran Chilly Willy's Avatar
    Join Date
    Feb 2009
    Posts
    5,832
    Rep Power
    51

    Default

    Quote Originally Posted by kool kitty89 View Post
    Yeah, with this set-up at least.

    I was discussing similar issues on the Jarguar recently, one its problems with using it 68000 is the whole system shares a single unified bus and it has to do everything in main and really bogs down the rest of the system. (one of the members actually suggested that a seperate bus with 64 kB dedicated to the 68k would really have helped things and actually made it a useful contribution to the system, rather than a hindrance)
    The big problem with a single shared bus is the 68000 has no caches. So the only way to take it off the bus is to do a STOP instruction, which will put the CPU to sleep until an interrupt occurs. I imagine the better Jaguar games use the 68000 mainly just for interrupts, with it stopped the rest of the time to allow the more powerful processors more bus time.

  5. #95
    ding-doaw Raging in the Streets tomaitheous's Avatar
    Join Date
    Sep 2007
    Location
    Sonoran Desert
    Age
    36
    Posts
    3,058
    Rep Power
    31

    Default

    Quote Originally Posted by Chilly Willy View Post
    Not quite. The ROM bus is shared, so if you have the SH2s and the 68000 all trying to get instructions/data from the ROM at once, you wind up with waits. The Master SH2 has first shot at the ROM, the Slave SH2 has next shot, and the 68000 goes last. That's why Wolf32X runs the 68000 code in Work RAM - so it's not on the ROM bus hardly at all.
    I have a question on this. When the 68000 is accessing RAM instead of ROM, it's using CE (or CS) to set the chips active, but the same lower address lines are still attached to the rom chips. If the SH2 tried to access it and enabled the chips, you'd have an address conflict (and a bus conflict) because the 68k is asserting what it needs for address line assuming the rom chips are disable/unactive. Does the 32x unit itself have an intermediate device between the 68k and the cart rom that it can disable the 68k address lines from physically connecting with the rom chips when accessing/running in ram? Some sort of gate array chip?

  6. #96
    Mastering your Systems Hero of Algol TmEE's Avatar
    Join Date
    Oct 2007
    Location
    Estonia, Rapla City
    Age
    23
    Posts
    9,139
    Rep Power
    71

    Default

    the buses are separate, with a middleman between them, like between the 8 and 16bit buses in MD.
    Death To MP3, :3
    Mida sa loed ? Nagunii aru ei saa "Gnirts test is a shit" New and growing website of total jawusumness !

  7. #97
    Master of Shinobi ary incorparated's Avatar
    Join Date
    Dec 2005
    Age
    27
    Posts
    1,939
    Rep Power
    15

    Wink

    Quote Originally Posted by kool kitty89 View Post
    Not sure whay you're reviving an old thread just for that, but thanks, an interesting topic I've wondered about and otherwise might have missed.

    The SMS's PSG is very simple, 3 square wave channels and a noise channel. (a common, widely used chip, along with a couple very similar chips) The NES had much more divers audio (in terms of the waveforms available), and even had it's 5th channel for playing 7-bit ADPCM samples, hence the better sounding voiced than on the SMS. (which had to approximate that using some tricks, through the noise channel I think)

    Of course this is excluding the Japanese SMS (and Mk. III w/ FM module) for the games that took advantage of this.
    OTOH having the PSG in combination with the Genesis's YM2612 certainly adds added depth and contrast to quite a bit of the music on the MD/Genesis. (not just the added sound channels, but a different sound of square wave tones opposed to if the Genesis had 9 FM channels -and makes it actually more compeditive with the SNES audio wise because of this IMO)

    Codemasters did some really cool NES music (actually they pulled off some neat stuff on the SMS too), it hase a very C64-ish (almost primitive FM-synth) sound (almost like a kazoo crossed with an electric guitar if that makes any sense), sometimes refered to as "warbly," it's jest an awsome kind of sound. (that kazoo sound was on several Amiga games too, though in that case I think it may be using the Amiga's primitive FM-synth)
    Also that distinctive bubly kind of sound in many C64 games (though not uncommon for square wave stuff), really cool. (kind oa an echo/reverb effect)

    Like in this: http://www.youtube.com/watch?v=xsccNyTkWCw

    yeah that bubly delay stuff is what cought my head some years ago in carmageddon gbc altought nes is way beyond gbc.nes owned.i still try to get that bubly sound out of my guitar some way.all Hail to the bubly sound maybe some,someday everyone will do the bubly couse theyre going to discover that this is almost to awesome,oh almost forgot that trend is already bubling but seems nothing like it.btw what a kazoo? im from the country with a stupid culture,comon who like schlager and ducth pop and crap muziek not the klomps .so im curious about what kazoo means.

  8. #98
    Hero of Algol kool kitty89's Avatar
    Join Date
    Mar 2009
    Location
    San Jose, CA
    Age
    23
    Posts
    9,171
    Rep Power
    50

    Default

    I think tomaitheous pointed out that the "bubly" effect I was referring to is a form of arpeggio.

    This is a kazoo: http://en.wikipedia.org/wiki/Kazoo


    http://www.youtube.com/watch?v=iC65ufGUvKM

    The NES games don't really have that sound I was referring to, but it's extremely prevalent in C64 music (kind of a whiny sound I guess, similar to some of the FM synth of the Genesis and early PC soundcards and also a bit like an electirc guitar in some ways)
    On the NES there is something like it, but it sounds simpler, less whiney and more buzzy, I guess. (it's a bit hard to discribe but Mig 29 has this, and a good direct comparison is the theme from Treasure Island Dizzy on the NES, C64, and Amiga) This kind of sound was also fairly prevelent on the Amiga.

    http://www.youtube.com/watch?v=6klzhxDtI30
    http://www.youtube.com/watch?v=FeZLxEAUwjE
    http://www.youtube.com/watch?v=DUcEzUuneeU
    Last edited by kool kitty89; 06-16-2009 at 02:32 AM.

  9. #99
    Wildside Expert sasuke's Avatar
    Join Date
    Mar 2009
    Location
    Nowhere, USA
    Posts
    213
    Rep Power
    5

    Default

    The "Kazoo Guitar" sound in the video kind of reminds me of those toys that you shake and they make a wired, nasally sound (I forget what they're called). It's also used in the cave song in Lunar: Silver Star.

  10. #100
    Hero of Algol kool kitty89's Avatar
    Join Date
    Mar 2009
    Location
    San Jose, CA
    Age
    23
    Posts
    9,171
    Rep Power
    50

    Default

    Quote Originally Posted by sasuke View Post
    The "Kazoo Guitar" sound in the video kind of reminds me of those toys that you shake and they make a wired, nasally sound (I forget what they're called). It's also used in the cave song in Lunar: Silver Star.
    It's pretty common in FM synth stuff, like with the Genesis's YM2612, the JP SMS's YM2413, and the synthe chips of rht Adlib and Soundblaster sound cards. (as well as numerous arcade machines and several other home computers -especially Japanese)

    I know which kind toy you mean, there's also longer batton type ones that you turn over and a part slides down making the noise. (functioning similarly to a rain stick)

  11. #101
    Hero of Algol kool kitty89's Avatar
    Join Date
    Mar 2009
    Location
    San Jose, CA
    Age
    23
    Posts
    9,171
    Rep Power
    50

    Default

    Continued from an off-tip tangent here: http://www.sega-16.com/forum/showthr...923#post160923

    Quote Originally Posted by tomaitheous View Post
    I'm sure if you hit the max bandwidth of the ASIC, that would slow down some things but I was referring to the local DMA to VRAM.
    So, theoretically, the CD's ASIC could do a lot more with access to something like the 32x's video RAM (which was an unanswered question posed previously). And it would therefor have more capabilities in conjunction with the 32x, but the question there was whether using the ASIC would be faster than using software on one of the SH2's.

    Reading through the 1st couple pages here again, it really seems like they'd have been a lot better off elliminating the CD's added CPU and used the Genesis 68000 instead, while adding the "super VDP" (bitmap display processor) along with added video RAM to work with on the CD's side. The only problem with the Genesis CPU compared to the 12.5 MHz CD's one, is that it can only access RAM trhough the expansion port in 128 kB banks, so I don't know what effect this would have on performance. (then again, you've still got the 64 kB of work ram onboard the Genesis to use as well)
    Or they could have included additional RAM on a cartridge instead, similar to the PC Engine. (of course then you wouldn't be able to use a memory cart/card for game saves inless an additional slot was added to the CD unit to assept one -which in theory could allow cheaper, more compact, memory cards to be used instead of cartridges)

    The only other issue with the Genny CPU would be for playing compressed video (low res/frame rate uncompressed video should still work though), though maybe the ASIC helped with this already as even a 12.5 MHz 68k would be a pretty weak for handling even simple compression like Cinepak, in less of course the existing Sega CD port of Cinepak was highly custimized and cut-down for the console.

    And the only physical limitation for this is that you'd need the external video mixing cable like the 32x, but I hink that's a rather minor disadvantage. (particularly as this would have made the system much more versitile and simple to port VGA software to using a 256 color palette, probably at least part of the reason the CD never got a port of Wolf3D)
    Plus this cable could still be elliminated with the introduction of an integrated unit.

    Too bad they didn't include video lines on the expansion slot... Did the Genesis VDP support video overlay natively (ie unused features from the arcade implimentations), if so that could further simplify things by puting those pins on the expansion port. (otherwise just having the RGB signals included would have been nice, and some more address space, like 20-21 bit instead of 17)

    Was the address bus for the expansion port, seperate from the cartrige slot or was it just a redundant, more limited cartriged bus? (if it was seperate, the 17-bit/128 kB limitation makes a bit more sense)
    Perhaps an additional need for the CD's CPU was for booting the system and accessing the CD's bios as the address bus was limited as mentioned previously. (again, using the cartridge slot for te RAM+bios like the PCE did would solve this) Had the expansion bus been increased to just 18-bits it could have had the 128 kB bios and 128 kB of RAM address space available as well.



    Edit:
    I would assume the genesis cartridge bus would only support (expensive) SRAM without any additional logic onboard the cartridge. Soould you'd need to include that logic as well (along with the bios). which shouldn't be too much of a problem. (I beleive the PCE's system cards did this)

    I suppose you could have the bios onboad the CD unit on the expansion port bus, but it's probably a better idea to reserve this for the memory cards. (it might be beter to just go with memory cards, nothing onboard, maybe even include logic for using EEPROM for the cards instead of expensive -but simpler- battery backed SRAM)
    Last edited by kool kitty89; 06-28-2009 at 10:13 PM.

  12. #102
    Hero of Algol kool kitty89's Avatar
    Join Date
    Mar 2009
    Location
    San Jose, CA
    Age
    23
    Posts
    9,171
    Rep Power
    50

    Default

    Ok, one more thing, if the CD graphics ASIC was given it's own video RAM to work with, how much would be useful? Would it need as much as the 32x or would that be overkill?

    Also, this could either pertain to the hypothetical super VDP CD system, or for the current set up, how useful would dedicated RAM for the ASIC be in the current configuration? (and how much would be useful/necessary for it, as you'd still have the Genesis VRAM to work with as well) An additional 128 kB would be enough to double buffer a 320x200 screen, right? (with 3 kB left over, right, plus the Genesis VRAM)

  13. #103
    ESWAT Veteran Chilly Willy's Avatar
    Join Date
    Feb 2009
    Posts
    5,832
    Rep Power
    51

    Default

    Quote Originally Posted by kool kitty89 View Post
    Ok, one more thing, if the CD graphics ASIC was given it's own video RAM to work with, how much would be useful? Would it need as much as the 32x or would that be overkill?
    Err - the CD ASIC DOES have its own RAM, and it's the same amount of memory the 32X has, 256 KB. Remember, the CD memory is in two blocks: 512 KB of Program RAM for the CD CPU, and 256 KB of Word RAM for the CD ASIC that can be shared with the Genesis.

    Also, this could either pertain to the hypothetical super VDP CD system, or for the current set up, how useful would dedicated RAM for the ASIC be in the current configuration? (and how much would be useful/necessary for it, as you'd still have the Genesis VRAM to work with as well) An additional 128 kB would be enough to double buffer a 320x200 screen, right? (with 3 kB left over, right, plus the Genesis VRAM)
    The 32X frame buffers are set up as two buffers of 128 KB. This gives space for a buffer of 320x204 (yes, that resolution is correct) in 15 bit mode. The two buffers allows things to be double buffered.

    The Word RAM in the CD can be one bank of 256 KB, or two banks of 128 KB. So it's already in a form that can be identical to the 32X. They just needed the CD ASIC to draw in more modes than just four bit, and add a video display and it would have been perfect.

  14. #104
    Hero of Algol kool kitty89's Avatar
    Join Date
    Mar 2009
    Location
    San Jose, CA
    Age
    23
    Posts
    9,171
    Rep Power
    50

    Default

    Then what's with these comments about the ASIC being limited by the Genesis VRAM?
    Quote Originally Posted by tomaitheous View Post
    I'm sure if you hit the max bandwidth of the ASIC, that would slow down some things but I was referring to the local DMA to VRAM. For 320x224 (NTSC) it takes 5 frames (12fps) to update the a whole full screen plane. 3 frames(20fps) if you clip the display to 320x200. That doesn't include room for other vram updates (tilemap, etc) and doesn't leave room for double buffering (you'll get lots of mid screen screen tear a cross all those frames). I could see doing 128x128 chunk on a 320x200 clipped display. That'd give 60fps and still have 1/3rd bandwidth left to do tilemap/etc. No need for double buffering and no screen tearing.

  15. #105
    ESWAT Veteran Chilly Willy's Avatar
    Join Date
    Feb 2009
    Posts
    5,832
    Rep Power
    51

    Default

    Quote Originally Posted by kool kitty89 View Post
    Then what's with these comments about the ASIC being limited by the Genesis VRAM?
    The CD ASIC renders cells into the Word RAM, then the Genesis uses the VDP DMA to transfer that data from the Word RAM to the Genesis VRAM because only the VRAM can be displayed. However, the VDP spends most of the time fetching data from the VRAM for display, meaning you have little time for DMAing data. This is a problem for any Genesis game, not just CD games. So they say the ASIC is limited by the VRAM because no matter how fast the ASIC draws, you won't display anything faster than the data can be DMAd into the VRAM.

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
  •