project development and progress

If you have any questions on programming, this is the place to ask them, whether you're a newbie or an experienced programmer. Discussion on programming in general is also welcome. We will help you with programming homework, but we will not do your work for you! Any porting requests must be made in Developmental Ideas.
Post Reply
chao2
DCEmu Freak
DCEmu Freak
Posts: 62
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Sun Mar 10, 2013 9:55 am
Has thanked: 0
Been thanked: 0

project development and progress

Post by chao2 »

It's been a while since posted and lot has happened in the dreamcast scene. Elysian shadows has recently just been funded on Kickstarter and Ph3nom just released his new Open GL API. Im hoping next year we can start see more advancements in the dreamcast scene. I specifically want to see more games that try to challenge or push the dreamcast to new heights like Elysian shadows. So I was wondering if any of guys would like to hint or give details on any new developments or progress you have had on your projects?
dreso741
DCEmu Fast Newbie
DCEmu Fast Newbie
Posts: 22
Joined: Thu Oct 09, 2014 8:06 pm
Location: Oakland, CA
Has thanked: 0
Been thanked: 0

Re: project development and progress

Post by dreso741 »

I'm working on a minimal software interface to hardware. I'm almost done with the graphics system but, before I make a release I want to finish the store queue and DMAC modules. I'm hoping to make an alpha release by the end of the year.

I'm also working on a port of OpenGL ES 1.1 built on my lib and, hope to get that released early next year.
chao2
DCEmu Freak
DCEmu Freak
Posts: 62
Joined: Sun Mar 10, 2013 9:55 am
Has thanked: 0
Been thanked: 0

Re: project development and progress

Post by chao2 »

Cool,I can't wait to see a demo or video of your work in progress. Are there any pictures available or do you want to wait until the release?
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5666
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: project development and progress

Post by BlueCrab »

One of these days I should really work on something a bit more visible to most people again...

I still do work on a number of Dreamcast-related things, though. I still (occasionally) do a bit of work on my Sega Master System/Game Gear emulator CrabEmu. Beyond that, I'm pretty much the only person maintaining the library/toolkit KallistiOS -- which most homebrew for the Dreamcast (including a good amount of the various indie games that have come out as well as PH3NOM's OpenGL-like API) uses.

Tangentially (i.e, related to Dreamcast but not really running on it), I also wrote and continue improving upon the Sylverant Phantasy Star Online server.
dreso741
DCEmu Fast Newbie
DCEmu Fast Newbie
Posts: 22
Joined: Thu Oct 09, 2014 8:06 pm
Location: Oakland, CA
Has thanked: 0
Been thanked: 0

Re: project development and progress

Post by dreso741 »

viewtopic.php?f=29&t=103331

I posted a quick and dirty demo built on the lib in this thread.


I will release the lib before I release the source. The graphics part of the programming manual is almost done. I want to make a public release of the source but, I need to write up a spec document and style guide before I do that.

I'm also working on improving / building off nullDC. I finally got it running of OS X. IDK when that will go public.
User avatar
PH3NOM
DC Developer
DC Developer
Posts: 576
Joined: Fri Jun 18, 2010 9:29 pm
Has thanked: 0
Been thanked: 5 times

Re: project development and progress

Post by PH3NOM »

dreso741-
I am curious about your project.

When it comes down to graphics operations on the CPU, the most important instructions on the SH4 are basically ftrv and fipr.
What throughput do you get with your lib?
I remember at least 24million fipr operations per second using KOS with inline ASM.
And at least 16million ftrv operations per second using KOS with inline ASM.

BTW your demo did not seem to run (it crashes) on NullDC or Demul, have not tried on real hardware yet...
dreso741
DCEmu Fast Newbie
DCEmu Fast Newbie
Posts: 22
Joined: Thu Oct 09, 2014 8:06 pm
Location: Oakland, CA
Has thanked: 0
Been thanked: 0

Re: project development and progress

Post by dreso741 »

I haven't benchmarked anything because I still haven't written any math functions, store queue functions, or DMAC functions yet. I just took some from other people as a placeholder while I investigate.


http://yam.20to4.net/dreamcast/hints/index.html

This is some of what I'm using for information for math. I guess the performance would depend on what type of math you're doing per scene and how you set things up. What kind of scene do you use to benchmark? Do you use DMAC or Store Queue? What effects are you doing?
User avatar
bogglez
Moderator
Moderator
Posts: 578
Joined: Sun Apr 20, 2014 9:45 am
Has thanked: 0
Been thanked: 0

Re: project development and progress

Post by bogglez »

dreso741 wrote:http://yam.20to4.net/dreamcast/hints/index.html

This is some of what I'm using for information for math.
Beware, the cache section on that website seems to be wrong. It claims that the DC CPU uses a direct mapped cache, but that conflicts with what I read in the CPU manual. Not too sure about this, but worth verifying.
dreso741 wrote:What kind of scene do you use to benchmark?
There are OpenGL examples/benchmarks in KOS. However, I think they're too simple for serious benchmarking (no long triangle strips, state switches etc). I suggested to PH3NOM before that we should come up with something more complex, we should work something out.
Wiki & tutorials: http://dcemulation.org/?title=Development
Wiki feedback: viewtopic.php?f=29&t=103940
My libgl playground (not for production): https://bitbucket.org/bogglez/libgl15
My lxdream fork (with small fixes): https://bitbucket.org/bogglez/lxdream
dreso741
DCEmu Fast Newbie
DCEmu Fast Newbie
Posts: 22
Joined: Thu Oct 09, 2014 8:06 pm
Location: Oakland, CA
Has thanked: 0
Been thanked: 0

Re: project development and progress

Post by dreso741 »

The manual is very vague. The SH-4's cache is mapped to a part of ram but the parity is not guaranteed. So basically it is mapped but you should explicitly fetch - operate - purge.
User avatar
PH3NOM
DC Developer
DC Developer
Posts: 576
Joined: Fri Jun 18, 2010 9:29 pm
Has thanked: 0
Been thanked: 5 times

Re: project development and progress

Post by PH3NOM »

dreso741 wrote:I haven't benchmarked anything because I still haven't written any math functions, store queue functions, or DMAC functions yet. I just took some from other people as a placeholder while I investigate.


http://yam.20to4.net/dreamcast/hints/index.html

This is some of what I'm using for information for math. I guess the performance would depend on what type of math you're doing per scene and how you set things up. What kind of scene do you use to benchmark? Do you use DMAC or Store Queue? What effects are you doing?
I am a bit confused.

Your demo 5k Rotating Cube Dem (that did not run for me on NullDC or Demul) I have not seen screens of.
From the name I assume there are 5 thousand cubes rotating on screen.
How can that be done without use of the ftrv, fipr, and fsca instructions?

All I am asking is how many vertices can you transform per second using your lib(ftrv)?
How many vectors can you find the dot-product of per second using your lib(fipr)?
How many vertices can you rotate per second using your lib(fsca)?

My guess is that we can perform the same if not better numbers using KOS.
dreso741
DCEmu Fast Newbie
DCEmu Fast Newbie
Posts: 22
Joined: Thu Oct 09, 2014 8:06 pm
Location: Oakland, CA
Has thanked: 0
Been thanked: 0

Re: project development and progress

Post by dreso741 »

My bad mane. I meant that it's a 5kb demo not 5000 cubes. There is only one multicolored cube on a multicolored background.

I'm the one that's fucked up on your question. The cpu prepares and sends the scene. After that the cpu is free. So if you're asking how many vertices can be transformed and dot products can be calculated... FTRV takes 4 cycles and FIPR takes 1 cycle so I guess it's just the theoretical maximum. Idk if that's what you meant.

KOS should be able to do the same amount of CPU operation because the PVR and CPU are mostly separate. But there are other problems when using KOS.

I don't want to conversate too much on KOS because it isn't relevant to my project and, there is thread where I explain how I feel about KOS. If someone want to conversate on KOS vs. my project I'd prefer we do it in the 5k rotating cube demo thread or PM me about it.


Edit:

I just realized what you meant.

The cpu can't handle the math for 5000 rotating cubes. There's no magic going on. I can only hope to get up to the theoretical max for cpu performance.
Post Reply