DCEmulation

dreamcast development • homebrew software • hardware hacking • indie games • emulators • and more!
Back to main site
It is currently Mon Sep 22, 2014 5:12 am

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 139 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next
Author Message
PostPosted: Sun Jul 31, 2011 2:02 pm 
Offline
DC Developer
DC Developer
User avatar

Joined: Sat Dec 01, 2007 7:51 am
Posts: 295
PH3NOM wrote:
Neoblast wrote:
Great, but wouldn't it be better ( and obviously more diff and take more time ) to use the emulator core ( and not load the emu bin ) to load the rom directly from dcmc?

Two cons of this are the rom recognision, either using a different file extension for each rom type would work or maybe the header, but I get the feeling it would be a mess when loading bins.


As far as rom recognition, I don't see any problems.
True, the build of DCMC you tested determines how to process a file based on its extension.
It would be easy to change this to actually open the file first, read its header, then decide how to process it.
Simply, there has been no need to do so, until now...

Adding the EMU CORE into DCMC is a good idea.
But, as Quzar mentioned, this would inflate the binary size, that is something I dont want to do.
DCMC ( including romdisk ) is currently ~2.5Mb
If I had enough time, which I dont, I would implement a module system, similar to how Dreamshell functions.
Considering my time constraints, it is a realistic goal to simply go about this the way I originally mentioned.


Well you read my mind there, a module system would not increase bin size.
DCMC is shaping out to be one of the essentials, hope you manage to find enough time to complete it man.

And not only snes4all, there are still a few emus on the work ( emuforge ones, gens4all on its current build looks great and there's some steps that are being done that would increase the speed a lot ).

Once again, if you need some external help in testing let me know :)
Also the audio discussion of this thread should be split, my comprehension of all the audio system has increased a lot.


Top
 Profile  
 
PostPosted: Sun Jul 31, 2011 9:02 pm 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Sat Jan 31, 2004 1:34 pm
Posts: 172
Location: Russia/Novosibirsk
What is different ARM7TDMI and ARM7DI? T and M extensions? What is?

_________________
Image


Top
 Profile  
 
PostPosted: Mon Aug 01, 2011 4:26 am 
Offline
Insane DCEmu
Insane DCEmu

Joined: Thu Apr 03, 2008 5:01 am
Posts: 127
The ARM7TDMI is newer, it has a multiplier (hence the "M") which makes the multiplication opcodes faster (6 cycles for a 32b * 32b => 64b opcode on the TDMI, versus ~100 cycles on the DI).

The "T" stands for Thumb, which is an additionnal 16-bit instruction set.


Top
 Profile  
 
PostPosted: Mon Aug 01, 2011 8:21 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Sat Jan 31, 2004 1:34 pm
Posts: 172
Location: Russia/Novosibirsk
Thanks!
How can I replace these instructions? Specifically SMLAL and STRH?

_________________
Image


Top
 Profile  
 
PostPosted: Wed Aug 03, 2011 6:19 am 
Offline
Insane DCEmu
Insane DCEmu

Joined: Thu Apr 03, 2008 5:01 am
Posts: 127
Pseudocode for SMLAL:
L(x) low half-word of register x, R(x) high half-word of register x
Rn, Rm: 32-bit values to multiply
RdLo, RdHi: 2x32-bit registers containing the 64-bit value to add.

tmp1 = L(Rn) * H(Rm)
tmp2 = H(Rn) * L(Rm)

RdLo += L(Rn) * L(Rm) + L(tmp1) + L(tmp2)
RdHi += carry + H(Rn) * H(Rm) + H(tmp1) + H(tmp2)

I hope that works...


Top
 Profile  
 
PostPosted: Wed Aug 03, 2011 12:46 pm 
Offline
DC Developer
DC Developer
User avatar

Joined: Fri Jun 18, 2010 7:29 pm
Posts: 408
SMULL / UMULL aren't supported by the DC's ARM :cry:

Code:
static inline ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) {
  int lo,hi;
  asm volatile("smull\t%0, %1, %2, %3"
               : "=&r"(lo),"=&r"(hi)
               : "%r"(x),"r"(y)
          : "cc");
  return(hi);
}


Quote:
Assembler messages:
Error: selected processor does not support 'smull r3,r2,r1,r0'


Would the result be valid if SMULL were replaced by MUL, throwing away the most significant 32 bits?
Code:
int MULT32(int x, int y) {
  int lo,hi;
  asm volatile("mul\t%0, %2, %3"
               : "=&r"(lo),"=&r"(hi)
               : "%r"(x),"r"(y)
          : "cc");
  return(lo);
}


Top
 Profile  
 
PostPosted: Wed Aug 03, 2011 1:25 pm 
Offline
Insane DCEmu
Insane DCEmu

Joined: Thu Apr 03, 2008 5:01 am
Posts: 127
It is not possible to do it with MUL; it drops the most significant bits, while this MULT32 drops the least significant bits. The result would be just wrong.

Are you really trying to port an OGG decoder on the ARM?
Even with a real 25MHz ARM7 it would be quite difficult...


Top
 Profile  
 
PostPosted: Thu Aug 04, 2011 5:56 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Sat Jan 31, 2004 1:34 pm
Posts: 172
Location: Russia/Novosibirsk
On ARM7TDMI 25MHz mp3 and aac decoders with asm optimizations works fine (128 kbps). But this asm optimizations doesn't supported on ARM7DI :(

_________________
Image


Top
 Profile  
 
PostPosted: Thu Aug 04, 2011 7:06 am 
Offline
Insane DCEmu
Insane DCEmu

Joined: Thu Apr 03, 2008 5:01 am
Posts: 127
You won't go very far with a 3MIPS ARM7DI.

I believe that the only way to get a MP3/OGG decoder on the AICA would be to offload the dequantization and Huffman decoding to the DSP. But that is an enormous task…


Top
 Profile  
 
PostPosted: Mon Aug 08, 2011 12:44 am 
Offline
DC Developer
DC Developer

Joined: Thu Aug 20, 2009 9:00 am
Posts: 316
At least you have some ARM code to start with - it's just a matter of determining what's invalid on the DI and replacing it with something valid. I've been working on Tremor for the 32X, and there ain't NO SH2 assembly ANYWHERE for these things. With the current assembly and other optimizations I've made, I can play 22kHz mono or 11kHz stereo ogg-vorbis on the 32X. I think the main difference would be at least the SH2 has a cache where the DI doesn't. I'd bet even money you might get 11kHz mono out of the DC though. :lol:


Top
 Profile  
 
PostPosted: Thu Aug 11, 2011 6:11 pm 
Offline
DC Developer
DC Developer
User avatar

Joined: Fri Jun 18, 2010 7:29 pm
Posts: 408
Chilly Willy wrote:
Add FLAC to the audio codecs. That can be 6 ch as well, and is VERY popular right now for lossless backup of CDs. All my CDs are dumped as FLACs. AC3 6 ch from DVDs is commonly saved as FLAC, not AC3; that's because FLAC is more common on audio players than AC3. For example, if you're a filthy stinking pirate ( :lol: ), lots of SACD rips are all posted as FLAC.


LibFLAC added :lol:

I wrote a custom K:OS soundstream driver for this application.

Currently 16-bit Stereo is the limitation of the decoder application.

Here is the full source to libFLAC-DC and the decoder application:
http://www.megaupload.com/?d=FSQ9CWO0

I would really like input on how we can achieve multi-channel stream mixing on the AICA, using soundstream.


Top
 Profile  
 
PostPosted: Thu Aug 11, 2011 7:27 pm 
Offline
DC Developer
DC Developer

Joined: Thu Aug 20, 2009 9:00 am
Posts: 316
Thanks for sharing that. Every bit helps the community. :grin:

My own double-buffer support for Doom uses two separate hardware channels - one set to play completely to the right, and the other completely to the left. You COULD use something similar, just with more channels. A single hardware channel set to the center could play center, while another set to center, but using data 180 degrees out of phase to the center (negated) would play to surround. That's simple 4 channel surround. Not sure if the streaming in KOS supports anything like that.


Top
 Profile  
 
PostPosted: Sun Aug 21, 2011 2:39 pm 
Offline
DC Developer
DC Developer
User avatar

Joined: Fri Jun 18, 2010 7:29 pm
Posts: 408
Good news on this project!

I have implemented a new k:os soundstream AICA driver to replace the SDL Mixer driver that I was using.
DCMC is now completely free of using SDL.

The first beta release is ready! I will be posting more news soon... :grin:


Top
 Profile  
 
PostPosted: Sun Aug 21, 2011 4:28 pm 
Offline
DC Developer
DC Developer
User avatar

Joined: Fri Jun 18, 2010 7:29 pm
Posts: 408
Front Page News Post:

Dreamcast Media Center Beta 1 Public Release is available now!

Head over to the project site for download!
https://sites.google.com/site/dreamcastmediacenter/


Top
 Profile  
 
PostPosted: Mon Aug 22, 2011 2:20 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Wed Apr 09, 2008 7:04 am
Posts: 186
Location: Europe
Wow, thanks man. What about custom skins and fonts support ? ... and 50hz support.

_________________
Order Fast Striker, GunLord and NEO XYX for Dreamcast at http://www.ngdevdirect.com
Order 2d/3d Shoot 'em up Sturmwind http://www.redspotgames.com/shop
Order Dux 1.0, Redux incl. Dux 1.5 and The Ghost Blade at http://hucast.com/index.php


Top
 Profile  
 
PostPosted: Mon Aug 22, 2011 10:53 am 
Offline
DCEmu Newbie
DCEmu Newbie

Joined: Mon Aug 22, 2011 10:45 am
Posts: 3
Hello & thank you for the files !

I've launched it via dc-tool to do a quick video test... but unfortunately, the mpeg files I wanted to launch weren't visible in the directory.

I suppose it's because the files have the file extensions .mpg and .mpeg.

It would be nice to have a button that would filter all known extensions on & off, because you never know what extension somebody could give to a video file that could otherwise be played by your player....


Top
 Profile  
 
PostPosted: Mon Aug 22, 2011 2:10 pm 
Offline
The Crabby Overlord
The Crabby Overlord
User avatar

Joined: Mon May 27, 2002 9:31 am
Posts: 4164
PH3NOM wrote:
Front Page News Post:

Dreamcast Media Center Beta 1 Public Release is available now!

Head over to the project site for download!
https://sites.google.com/site/dreamcastmediacenter/
You should have access to post news now by creating a topic in the Front Page News forum. If you'd like to post news, feel free to write something up and post it in there. :wink:

Congrats on the release! :)


Top
 Profile  
 
PostPosted: Mon Aug 22, 2011 3:07 pm 
Offline
DC Developer
DC Developer
User avatar

Joined: Sun Sep 05, 2010 3:44 am
Posts: 78
I still haven't got time to try it, but in any case, congratulations for your work :)
Does DMC play MOD, S3M, and similar files? You could think in adding libmikmod or libmodplug for next release.


Top
 Profile  
 
PostPosted: Tue Aug 23, 2011 12:40 am 
Offline
DCEmu Newbie
DCEmu Newbie

Joined: Mon Jul 25, 2011 7:03 pm
Posts: 5
I downloaded it yesterday but truth be told I haven't a clue how to compile it, haven't compiled a program before. Tomorrow's my day off so I'll do some research to figure it out and let you know my results.


Top
 Profile  
 
PostPosted: Tue Aug 23, 2011 7:54 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Wed Apr 09, 2008 7:04 am
Posts: 186
Location: Europe
Quote:
I downloaded it yesterday but truth be told I haven't a clue how to compile it, haven't compiled a program before.

Man what the hell you need to compile it if there is compiled version inside and if you even dont know how to compile a programm??

_________________
Order Fast Striker, GunLord and NEO XYX for Dreamcast at http://www.ngdevdirect.com
Order 2d/3d Shoot 'em up Sturmwind http://www.redspotgames.com/shop
Order Dux 1.0, Redux incl. Dux 1.5 and The Ghost Blade at http://hucast.com/index.php


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 139 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


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:  
cron
Powered by phpBB® Forum Software © phpBB Group