PDA

View Full Version : Yabause 0.9.0 Released



BlueCrab
September 24th, 2007, 05:01
A new version of the multi-platform Sega Saturn emulator Yabause has been released today. As usual, this release contains binaries for Dreamcast, Linux, Mac OS X, and Windows. The main fixes involve emulation of VDP1 Lines and VDP2 Rotation Screens that apply to most of those ports listed above. Other than that, several ports had UI issues corrected or new UI features added.

Get it from here (http://sourceforge.net/project/showfiles.php?group_id=89991&package_id=94504&release_id=541608).

RockinB
October 14th, 2007, 12:08
I like to see yabause evolving. Why isn't there a port of yabause for XBox? I think it's a great opportunity to have an open source Saturn emu, with ports to modern consoles, we can keep Saturn in peoples minds. But why are there no console ports, other than Dreamcast port?

BlueCrab
October 14th, 2007, 15:19
The amin reason that there's not an Xbox version is that nobody has stepped up to do it. A secondary reason is that there is not a legal hombrew development kit that can actually access the 3d hardware in any useful way (OpenXDK doesn't support the 3d hardware the last time I checked). If the 3d hardware isn't used, Yabause would probably run slower than the Dreamcast port (software rendering takes a lot more work to do).

Maturion
October 16th, 2007, 20:16
[quote]OpenXDK doesn't support the 3d hardware the last time I checked[/url]

It does now. Check out pbKit! (http://forums.xbox-scene.com/index.php?showtopic=573524)
I haven't used this library yet. ;)

I couldn't test Yabause on my DC yet (I'm still wating for my new DC). So does Yabause-DC work fast? How fast does it emulate?

PSmonkey
October 31st, 2007, 01:23
The amin reason that there's not an Xbox version is that nobody has stepped up to do it. A secondary reason is that there is not a legal hombrew development kit that can actually access the 3d hardware in any useful way (OpenXDK doesn't support the 3d hardware the last time I checked). If the 3d hardware isn't used, Yabause would probably run slower than the Dreamcast port (software rendering takes a lot more work to do).

Does the dreamcast version even use any hw rendering? It seems to be based on the software rendering code (i looked over it 2 versions back because i was currious).

BlueCrab
November 1st, 2007, 14:27
I couldn't test Yabause on my DC yet (I'm still wating for my new DC). So does Yabause-DC work fast? How fast does it emulate?
Its pretty slow at the moment. Only 2-7 FPS or so.


Does the dreamcast version even use any hw rendering? It seems to be based on the software rendering code (i looked over it 2 versions back because i was currious).
The VDP1 emulation is done in hardware, as much as I could anyway. VDP2 is done in software, rendered to a texture, and blit to the screen by the hardware.

RockinB
November 4th, 2007, 19:39
Hardware accelerated emulation is very interesting and impresses me quite a lot. Vbt made it for his sms plus port to Saturn, I'd like to do it one day, too, maybe for the snes9x-port for Saturn.

Is it ever planned to make/use a dynarec cpu core in yabause? The interpreter is already so fast on pc, that I could even guess it's a dynarec. How much speedup do you think can be expected from a dynarec cpu core on Dreamcast? What are the main bottlenecks on Dreamcast?

Please keep the Dreamcast port updated, that would mean a lot to me.

BlueCrab
November 4th, 2007, 21:19
Is it ever planned to make/use a dynarec cpu core in yabause?
It is in my plans, but I don't have the time lately to do much coding at all, more or less something like that. As I get the time, I'll attempt to do it. It is high up on my list of stuff to do for Yabause. As a side note, there was one for the Linux version, but it was actually slower than the interpreter in most situations. :confused:


How much speedup do you think can be expected from a dynarec cpu core on Dreamcast?
A lot, to put it simply. Many instructions would be able to be emulated by a chain of one or two instructions, and that's a heck of a lot better than what GCC dumps out for some of the instructions in the interpreter core.
What are the main bottlenecks on Dreamcast?
If I had to guess, I'd say the top 4 bottlenecks (in no particular order) are:

SH2 Core
68k Core
SCSP Emulation (yes it is emulating it, just not outputting anything)
VDP2 Emulation



Please keep the Dreamcast port updated, that would mean a lot to me.I'm glad that everyone still believes in the project. It truly makes me feel like I'm doing something important by maintaining it. :o

quzar
November 5th, 2007, 01:28
One of the biggest problems I remember from the interrpeter (back from yabause-c) was that it deals with pointers to malloc'd sh contexts. On the DC it probably ends up doing silly stuff like having to read it in from memory on every instruction since the cache is shit and the cotexts are fairly large. Of course, emulating both procs without doing this could be quite challenging.

Anyways, the biggest thing that makes the SH interpreter so fast is the idle cycle detection. That thing is amazing.

I guess another question would be if you've given up on the idea of trying to have the DC run the saturn code (semi) natively. The way I understand it, to do this would probably require you to butcher KOS so that it doesn't get in your way, but what do I know anyways =P

BlueCrab
November 5th, 2007, 05:08
I guess another question would be if you've given up on the idea of trying to have the DC run the saturn code (semi) natively. The way I understand it, to do this would probably require you to butcher KOS so that it doesn't get in your way, but what do I know anyways =P
Basically, that's how a dynarec would sorta work for it. Optimally, I'd use the MMU to map all the memory out, and then I wouldn't have to deal with memory mapping either. It'd be a pain in the butt, but when I actually have the time, its something I certainly want to experiment with.

PSmonkey
November 6th, 2007, 03:48
Its pretty slow at the moment. Only 2-7 FPS or so.


Hmm, I'd exspect a little higher out of the dreamcast. That's roughly what I got out of a cheap psp port (using a port of the ogl rendering code).

quzar
November 6th, 2007, 03:59
Hmm, I'd exspect a little higher out of the dreamcast. That's roughly what I got out of a cheap psp port (using a port of the ogl rendering code).

Unless the OGL implmentation on the PSP is software I can't see how you would possibly expect the DC to go faster. By having OGL, you get everything that bluecrab has done and more all for free. The fact that that much with hardware acceleration really points to how powerful the Dreamcast is.

Just because you don't like BlueCrab doesn't mean you need to start dissing the Dreamcast.

BlueCrab
November 6th, 2007, 04:11
Hmm, I'd exspect a little higher out of the dreamcast. That's roughly what I got out of a cheap psp port (using a port of the ogl rendering code).

Note that I have literally NO time to actually work on this stuff. I've done very little in the way of optimizing anything. In all actuality, the only optimization is the fact that it doesn't use the software core but rather the sorta kinda, but not really, hardware accelerated rendering core. Almost nothing is ACTUALLY hardware accelerated other than the fact that the polygons sent to the VDP1 are blitted to the screen by the PVR. All the texture conversions and all take place in software.

PSmonkey
November 7th, 2007, 20:10
Unless the OGL implmentation on the PSP is software I can't see how you would possibly expect the DC to go faster. By having OGL, you get everything that bluecrab has done and more all for free. The fact that that much with hardware acceleration really points to how powerful the Dreamcast is.

Just because you don't like BlueCrab doesn't mean you need to start dissing the Dreamcast.

The Dc is supost to have a stronger cpu then the PSP is it not? I assumed a direct port on the dreamcast would run a little better then the PSP since the bottleneck in yabause would be CPU emulation and not GPU emulation.

The only reason I could understand it not being so would be poor compiler optimisations or cache issues (ie loads of cache misses).

I said nothing about not liking bluecrab in this thread (it's it related to anything in the past that has nothing to do with my post in this thread). Second I am a massive fan of sega and the dreamcast.

I'm just ultimately currious about it's performance on the dreamcast after doing a fast port a month back.


Note that I have literally NO time to actually work on this stuff. I've done very little in the way of optimizing anything. In all actuality, the only optimization is the fact that it doesn't use the software core but rather the sorta kinda, but not really, hardware accelerated rendering core. Almost nothing is ACTUALLY hardware accelerated other than the fact that the polygons sent to the VDP1 are blitted to the screen by the PVR. All the texture conversions and all take place in software.

wouldn't it have just been easier to have it use the rendering hardware to draw the display tho? I'm just currious (i'm not very familiar with the GPU SDK for dreamcast).

If you have a PSP I can send you over my quick PSP port if you're currious (it's not really functional, just a very simple port).

Exophase
November 8th, 2007, 04:31
The Dc is supost to have a stronger cpu then the PSP is it not?

Nope.

BlueCrab
November 8th, 2007, 05:58
The Dc is supost to have a stronger cpu then the PSP is it not? I assumed a direct port on the dreamcast would run a little better then the PSP since the bottleneck in yabause would be CPU emulation and not GPU emulation.It is my understanding that the PSP's CPU is able to run much faster than can the DC's CPU (333 MHz is the top for the PSP, to my understanding, where a non-modded DC can only do 200MHz). I don't know which architecture is more suited toward emulation, as I haven't had any experience with the PSP at all.

CPU emulation is a major bottleneck, yes. I think VDP2 emulation is worse than it though. I could do a lot of improvements to the CPU core for the dreamcast port, I just haven't had the time to do them.


The only reason I could understand it not being so would be poor compiler optimisations or cache issues (ie loads of cache misses).That's probably a problem too. GCC generates some pretty crappy code for SuperH sometimes.


I'm just ultimately currious about it's performance on the dreamcast after doing a fast port a month back.Its not pretty, and its not fast... I dunno what else to say about it, unfortunately.


wouldn't it have just been easier to have it use the rendering hardware to draw the display tho? I'm just currious (i'm not very familiar with the GPU SDK for dreamcast).The Dreamcast's PVR is nowhere near suited for doing the stuff that the Saturn's VDP2 does. It is very well suited toward the tasks that VDP1 does however, which is why I emulate most of that in hardware.


If you have a PSP I can send you over my quick PSP port if you're currious (it's not really functional, just a very simple port).I'd be curious (from the point of view of a Yabause developer in general), but I don't have a PSP.

Also, in regards to the issue mentioned by Quzar... I'd rather put that behind us, I really would...

Exophase
November 8th, 2007, 19:51
It is my understanding that the PSP's CPU is able to run much faster than can the DC's CPU (333 MHz is the top for the PSP, to my understanding, where a non-modded DC can only do 200MHz). I don't know which architecture is more suited toward emulation, as I haven't had any experience with the PSP at all.

Dreamcast's SH4 is a dual issue architecture while PSP's Allegrex is only single issue, so at 200MHz vs. 333MHz they probably perform similarly (depending on the application of course). Dreamcast has worse RAM though.



That's probably a problem too. GCC generates some pretty crappy code for SuperH sometimes.

The sad truth is that GCC generates pretty bad code for any platform I've seen that isn't x86, and maybe PowerPC (since Apple invested a decent amount into it). The ARM output I've seen for it has a lot of problems, I would expect that for SH4 it'd be even worse though.