DCEmulation

dreamcast development • homebrew software • hardware hacking • indie games • emulators • and more!
Back to main site
It is currently Tue Sep 02, 2014 4:37 pm

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 18 posts ] 
Author Message
 Post subject: Dreamcast's ARM CPU
PostPosted: Mon Feb 10, 2003 9:20 am 
Offline
DC Developer
DC Developer

Joined: Sun Dec 30, 2001 8:02 am
Posts: 9951
Couple of questions about the ARM CPU in the Dreamcast.

1 - What kind of CPU is it? I'm pretty sure it's from the same family as the Gameboy Advance's main CPU, but I'm not really sure what model it is.

2 - What clock speed does it run at? I've found the clock speed the AICA runs at, but I'm pretty sure that the ARM is not that fast. I thought it was somewhere around 20MHz

3 - Anyone know where I can find any emulators/simulators for it? Aside from trying to rip one out of a GBA emulator.

Basically, I want to try to code a couple of things on the ARM CPU, without worrying too much about how it interacts with the Dreamcast (for the moment), so I can see if it's fast enough, and get the basic program working first.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 11:03 am 
Offline
DC Developer
DC Developer

Joined: Sun Mar 24, 2002 6:48 pm
Posts: 2648
I think you be the first to have a crack at that apart from the dsnes team best bet i think would be to ask them

_________________
http://homebrew.dcemulation.com/dcgames/ *homebrew webbrowser games *

http://r2k2gate.topcities.com *dev site and my releases*
Image
Im' a Commodorian are you?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 12:49 pm 
Offline
The Crabby Overlord
The Crabby Overlord
User avatar

Joined: Mon May 27, 2002 9:31 am
Posts: 4145
1. The ARM processor is an ARM7, which I believe is the same as in the GBA
2. Not quite sure on the speed... But it is slow....
3. I dunno, a GBA emu would probably be the most likely place, but you could try a search on the net for one...


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 2:17 pm 
Offline
DCEmu Respected
DCEmu Respected

Joined: Sun Feb 03, 2002 2:52 pm
Posts: 221
Location: France
Well I found that on this site : http://www.vortexonline.com/previews/dr ... part5.html


The Yamaha Connection

Sega went back to Yamaha, arguably one of the leaders in synthesized audio, and makers of the Saturn audio subsystem, to design the sound subsystem for the Dreamcast. Yamaha answered with a two ton gorilla of a sound board.


The audio subsystem in the Dreamcast is made up of two chips: the ARM7 (32-bit RISC) and a DSP. Together these two chips make up what's called the Yamaha AICA. Coupled with 2mb of sound RAM, the Dreamcast?s audio system is a force to be reckoned with.

ARM7

The ARM7 is at the core of AICA. It has a clock speed of 45mhz and a rating of 40mips (more then the SH-2 that is the main CPU of the Saturn). ARM7 was actually licensed by Yamaha from the British company Advanced RISC Machines. The specific version of the ARM7 is the ARM7TMDI, which was designed with music and effects in mind.


One very important feature the ARM7TMDI has is hardware ADPCM
compression. The CPU will never be burdened decompressing sounds. This means the Dreamcast can actually store eight megs of sound files in the two megs of sound ram it possesses, with out any quality loss.

DSP

The Dreamcast is the first console ever to feature a DSP (Digital Sound
Processor). This means that if a developer wants a certain scene to have the sounds of a large theater room, the Dreamcast can emulate it. Imagine how much this will add to your games (think Metal Gear Solid).
One thing that this doesn?t do, is provide Dolby Digital support. To do this, Sega would have had to license the decoder technology from Dolby Digital Labs, and put coaxial or optical outputs on the Dreamcast, which would raise the price of the system.


Unfortunately, gamers will have to wait until Dreamcast2 comes out before they get to enjoy their games in 5.1 audio. On the plus side, you can still listen in Dolby Surround.




So it's an ARM7TDMI :wink:

There's some technical reference manual here : http://www.arm.com/arm/TRMs?OpenDocument

I think this one is the more interesting :wink: :

http://www.arm.com/techdocs/5GVEYM/$Fil ... DMI_R4.zip

maybe there's also some infos on this site :http://www.arm.linux.org.uk/developer/

2) for the speed I don't really know but this part from this doc (http://hitmen.c02.at/hitdc/aica_v08.txt) said that :
// ----------------------------------------------------------------------------
// 0x28a8 - ARMClock - GUESS
+--------------+
| 31-8 | 7-0 |
| n/a | mhz |
+--------------+

mhz: sets the speed of the ARM7 CPU in MHz steps.
00 = 1 MHz, 24 = 25 MHz
don't try to overclock the ARM7 it may get burned or something.


// ----------------------------------------------------------------------------




3) maybe a pocket PC emu could help too, this one for example : http://www.zophar.net/ppc/snes.html

_________________
Le site sur l'?mulation dreamcast en fran?ais c'est http://www.dcreload.fr.st

oggy aka polochon ;)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 2:38 pm 
Offline
DC Developer
DC Developer

Joined: Sun Mar 24, 2002 6:48 pm
Posts: 2648
SO if any of us had the skill perfect sound and speed emu's are not fiction but fact

8 meg compressed sounds like the way to go allowing larger romsets

hmmmm

_________________
http://homebrew.dcemulation.com/dcgames/ *homebrew webbrowser games *

http://r2k2gate.topcities.com *dev site and my releases*
Image
Im' a Commodorian are you?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 3:19 pm 
Offline
DCEmu Respected
DCEmu Respected

Joined: Sun Feb 03, 2002 2:52 pm
Posts: 221
Location: France
I do more investigation and I found that the gba had the type of cpu as the dreamcast .
see

http://www.goldroad.co.uk/downloads.html

My macro assembler for the ARM7DTMI, for more information on this item,visit the link on the main page


Also this links could help in ARM assembler programming :
http://www.heyrick.co.uk/assembler/index.html

_________________
Le site sur l'?mulation dreamcast en fran?ais c'est http://www.dcreload.fr.st

oggy aka polochon ;)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 7:24 pm 
Offline
Iron Fist of Justice
Iron Fist of Justice
User avatar

Joined: Sat Nov 10, 2001 2:08 am
Posts: 4931
Location: Houma
reaper2k2 wrote:
SO if any of us had the skill perfect sound and speed emu's are not fiction but fact

8 meg compressed sounds like the way to go allowing larger romsets

hmmmm


Actually no, since the codec abilities are in reference to sound. Kind of like some systems can use compressed textures. It's still 2 megs of sound RAM. That and I don't believe ferrying the data across would be feasible. Kind of like how VRAM can't be used due to the piss-poor bus speeds.

_________________
No signature.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 8:27 pm 
Offline
DC Developer
DC Developer

Joined: Sun Mar 24, 2002 6:48 pm
Posts: 2648
well BLEEM GT2 was pretty dam good none of us come close to that skill so i would say there is much more power then we know

OR will ever find

dont know to you try but ill take your word on it

_________________
http://homebrew.dcemulation.com/dcgames/ *homebrew webbrowser games *

http://r2k2gate.topcities.com *dev site and my releases*
Image
Im' a Commodorian are you?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 10, 2003 9:52 pm 
Offline
DC Developer
DC Developer

Joined: Sun Dec 30, 2001 8:02 am
Posts: 9951
Actually, I was wondering if I could use it to get a simple sound emulator running. I know that it's nowhere near fast enough to emulate a SNES's SPC700 (which is a CPU, sample player and DSP all in one), which is what the DreamSNES team tried, but I was thinking more along the lines of just the sound output part, and not for a system as complex as a SNES. Any kind of MP3 decoder, or anything like that, is probably a little too much for it to cope with.

After Googling for a bit, I've also come to the conclusion that it's probably a ARM7DTMI, as used in the GBA. 45MHz sounds like a lot more than I was expecting though. I seem to remember that it doesn't run at the same clock speed as the sound hardware itself.

Anyway, I thought it might be worth investigating. Even if I could only get it working at 11025Hz, it'd still leave more time for the SH-4 to emulate the main system. And if it's do-able for one sound system, it might be doable for others too.

polochon wrote:
One very important feature the ARM7TMDI has is hardware ADPCM
compression. The CPU will never be burdened decompressing sounds. This means the Dreamcast can actually store eight megs of sound files in the two megs of sound ram it possesses, with out any quality loss.
I knew that - nxDoom actually compresses the sound effects when it loads them, but because they're 8-bit instead of 16-bit, you can only fit about 3.7MB of sounds in there. It's something more like 7.8MB if you're using 16-bit sound sources though.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 11, 2003 12:40 am 
Offline
DC Developer
DC Developer

Joined: Sun Mar 24, 2002 6:48 pm
Posts: 2648
Well thats some good news 7.8 meg of space im not using!

_________________
http://homebrew.dcemulation.com/dcgames/ *homebrew webbrowser games *

http://r2k2gate.topcities.com *dev site and my releases*
Image
Im' a Commodorian are you?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 11, 2003 7:08 am 
Offline
DCEmu Nutter
DCEmu Nutter

Joined: Fri Jan 03, 2003 4:40 am
Posts: 945
Location: Dead in the Water
OFF TOPIC BUT - anyone know what processor the PS2 runs? branding i mean?

_________________
Dust on the Dreamcast


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 11, 2003 7:54 am 
Offline
Iron Fist of Justice
Iron Fist of Justice
User avatar

Joined: Sat Nov 10, 2001 2:08 am
Posts: 4931
Location: Houma
The Emotion Engine is a custom MIPS

_________________
No signature.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 11, 2003 9:30 am 
Offline
DCEmu Nutter
DCEmu Nutter

Joined: Fri Jan 03, 2003 4:40 am
Posts: 945
Location: Dead in the Water
Quote:
The Emotion Engine is a custom MIPS


yeh i knew it was the Emotion, but did Sony make it? all on there own?

_________________
Dust on the Dreamcast


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 11, 2003 10:59 am 
Offline
DCEmu Ex-Admin
DCEmu Ex-Admin

Joined: Wed Oct 17, 2001 5:44 pm
Posts: 1098
It's a customized version of the MIPS R5900. The VUs (vector units) are custom I believe.

_________________
"This is worse than when the Raccoon got in the copier!"


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 11, 2003 12:18 pm 
Offline
DC Developer
DC Developer

Joined: Sun Mar 24, 2002 6:48 pm
Posts: 2648
PS2 is a bit offtopic!

_________________
http://homebrew.dcemulation.com/dcgames/ *homebrew webbrowser games *

http://r2k2gate.topcities.com *dev site and my releases*
Image
Im' a Commodorian are you?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 11, 2003 2:16 pm 
Offline
bleemcast! Creator
bleemcast! Creator

Joined: Wed Oct 17, 2001 5:44 pm
Posts: 882
Location: Los Angeles, CA
Using AICA for sound is definitely possible ;-)

... but it's a significant undertaking, and classifying it as "complicated" is a major understatement.

There are some MAJOR restrictions on what can be done with the hardware, and in addition, AICA runs on the G1 bus, so any amount of data transfer beyond minimal is pretty much out.

Also, there's no cache, and as such, all instructions run from memory -- which is SLOW.... as in SLOW SLOW SLOW.

Oh, and it's not an ARM7TDMI -- there's no Thumb and there's no Multiplier logic... there *may* be the Debug logic, but I'm not sure.

There is an embedded DSP to do all sorts of awesome stuff, but it's an order of magnitude more complicated than the rest of the AICA -- basically, it makes the ARM side of stuff look like a cakewalk.

As for the touted "compression" of 8Megs from 2Megs -- If you convert all your samples to 4bit, that means *at most* you can fit 4Meg samples in the 2Megs of RAM.

If your samples started out at 16bit, you're still only storing 4bits of the original 16bits -- sure, you're storing more samples, but at a major cost in quality. Yes, ADPCM filtering smooths out a lot of the noise, but it still isn't close to the same quality.

ADPCM is great for some things, but as a "generic" compression, no -- think "majorly low-resolution JPEG" and you'll have a good idea of what it's like.

All that being said, a sound system is definitely feasible -- it all depends on how much time you want to spend on it... If you're looking for a research project that'll suck huge amount of time and have little progress to show for it, this is the one.

Rand.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 12, 2003 5:48 am 
Offline
DC Developer
DC Developer

Joined: Sun Dec 30, 2001 8:02 am
Posts: 9951
I thought as much. I certainly didn't expect it to be very easy, but thought it might be worth investigating.

ADPCM does tend to sound terrible in some cases. Using it for sound effects in Doom was alright, since they were pretty terrible to begin with, but a lot of the sounds get kinda distorted. The only reason I used it there was because some mods had 3MB of sample data, and I couldn't be bothered keeping in in main RAM and transferring it across when needed. And that'd probably be too slow anyway.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 14, 2003 6:39 am 
Offline
DCEmu Nutter
DCEmu Nutter

Joined: Fri Jan 03, 2003 4:40 am
Posts: 945
Location: Dead in the Water
Quote:
It's a customized version of the MIPS R5900


Thanks for that, sorry about the off topic :oops:

_________________
Dust on the Dreamcast


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 18 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group