New GenesisPlus: GPDCQ-01202007

This forum is for discussion pertaining to homebrew and indie software for the Dreamcast, such as homebrew games, emulators/interpreters, and other homebrew software/applications. Porting requests and developmental ideas are not to be made here; you can make those here. If you need any help burning discs for homebrew software, this is the place to ask as well.
User avatar
Quzar
Dream Coder
Dream Coder
Posts: 7486
Joined: Wed Jul 31, 2002 12:14 am
Location: Miami, FL
Has liked: 0
Been liked: 3 times
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Quzar » Thu Mar 06, 2008 10:01 am

Christuserloeser wrote:One thing is that in your release, C68k performs noticeably slower than in BA's. That's a big problem as your build is using a beta version of FAME from 2006 that doesn't work half as good as the earlier one used in BA's build (Fox68k explained why here: viewtopic.php?p=938607#p938607).
...
So all in all, your version isn't that bad but it doesn't fix the issues that BA's "official" release had, broke most of those games that needed FAME to work at all, and introduced a slight decrease in C68k's performance (no idea why, maybe because of something simple as slightly different compiler flags).
I don't know where you get your information, but pretty much everything in that post was wrong. I use a release of fame that is almost a year newer than the one in BA's last release, the post you reference discusses an issue common to FAME in general, not to the specific version I used. The only way you could possibly get 20fps difference is with c68k+software vs fame+hardware. Neo4all works because the rendering system can be faked with 20 lines of code (I should know). I'd bet that genplusdc can play more games percentagewise than Neo4allCD can considering it doesn't do scanline emulation (which means that it can only properly play about 90% of it's software).
BlackAura wrote:What I always found even more surprising is that I've not been able to get FAME to work at all. I got pretty much the same problems you guys had with Quzar's build - virtually nothing works, and those games that do work are full of all kinds of strange bugs.
both cores also depend on CZ80 which likely is the reason for most of the incompatibility issues with many games in BA's build
Yep. Restoring MAME's CPU emulator fixes a lot of games, but causes an even bigger slowdown when sound is enabled.
Quzar wrote:was extremely dissapointed by my attempts at it though
That's pretty much how I've felt. About my own changes to it, that is. It's an absolute bastard to improve further - there's nothing that can really be sped up without rewriting huge chunks of the emulator again, it's too slow to spend extra CPU time improving video / audio quality, and it's so fiddly, brittle and difficult to debug that improving compatibility is nearly impossible. Same problem with trying to add features - even adding GUI stuff to it increases memory usage and causes random crashes as it exhausts the heap.

Not to mention that, as the codebase diverges further from the original, it becomes much more difficult to incorporate fixes from other branches (such as all the compatibility fixes from the GameCube version).
Yes, I've never had many severe problems when using c68k so I've always assumed fame was the issue. I don't know if you've looked at any of my bits, but more recently I was able to tune up the twiddling thing a bit more (one of the more apparent todos in your code). If you're interested I could foward that bit over to you. The last large chunk of work I did was to write in an interface that I had worked on for another emulator for z80 emulation. The idea is an interface that works just like the API for a z80 emulator but with a function to change the core being used. The end goal would be to have cz80, mame's z80, and crabz80 all running transparently.

I'm glad to see though that you're still around at all.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Christuserloeser » Thu Mar 06, 2008 10:50 am

Quzar wrote:
Christuserloeser wrote:One thing is that in your release, C68k performs noticeably slower than in BA's. That's a big problem as your build is using a beta version of FAME from 2006 that doesn't work half as good as the earlier one used in BA's build (Fox68k explained why here: viewtopic.php?p=938607#p938607).
...
So all in all, your version isn't that bad but it doesn't fix the issues that BA's "official" release had, broke most of those games that needed FAME to work at all, and introduced a slight decrease in C68k's performance (no idea why, maybe because of something simple as slightly different compiler flags).
I don't know where you get your information, but pretty much everything in that post was wrong. I use a release of fame that is almost a year newer than the one in BA's last release, the post you reference discusses an issue common to FAME in general, not to the specific version I used.
It's hard for me to communicate with you. You don't seem to understand my posts at all so I always get the impression that my English isn't good enough to express things accurately enough for you to understand what I mean. - On the other hand it's very possible that you just don't read them.

I've tested BA's build a lot and I've tested your build and FAME works surprisingly well in BA's (better than C68k actually) but not in yours. Many games that worked in BA's with FAME don't work in yours at all. Please check the link above to understand why. - It is not possible that this is a "general issue with FAME" like you wrote. There obviously is a difference on how FAME is interacting with GPDC in BA's and your release.


Anyway, that is not important at all. What I meant to say was that we need help from Fox to update GPDC to fully use FAME and FAZE. - It would be a shame not to use them.
Quzar wrote:The only way you could possibly get 20fps difference is with c68k+software vs fame+hardware.
Please do read what I actually wrote:
Christuserloeser wrote:
BlackAura wrote:That's surprising. On everything I've tested on, the C68k version is pretty much fast enough, frequently hitting 60FPS. Some games had some minor frameskipping in C68k mode, but that was typically no more than 1 in 5 frames or so.
I tested it with the software renderer in either WT's or your built. Whether it's been 10 or 20fps I can't remember, but the difference is very impressive.
Download BA's version and try it yourself.
Insane homebrew collector.
User avatar
Quzar
Dream Coder
Dream Coder
Posts: 7486
Joined: Wed Jul 31, 2002 12:14 am
Location: Miami, FL
Has liked: 0
Been liked: 3 times
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Quzar » Thu Mar 06, 2008 2:56 pm

Christuserloeser wrote:Download BA's version and try it yourself.
I had written a very long verbose response that was repetative to enforce the points, but I figured it may be lost so I should go with clear succinct statements (in no particular order):

1) I did not call you a liar. That would imply that I thought you knew the truth and were purposefully claiming the contrary. Even though you seem to always assume it, I do not have some sort of malicious ill will towards all.

2) The issue between FAME and Genplus that you have referenced multiple times has nothing at all to do with speed. NOTHING. The issue is that a raised IRQ may not be attended to in the same timeslice. The issue simply breaks games. Try out Streets of Rage 2, which is the game that fox first noticed the issue with. I did not change the interaction between FAME and genplus at all. I also don't really know what your deal is, as in the most recent version, with hardware video, both fame and c68k tend to run at between 50 and 60fps in my experience.

3) I've tried BA's version, thank you. The fact that you changed your statement from: "c68k and FAME differ by 20fps in BA's version" to "c68k and FAME differ by 10 or 20fps in either BA's or WT's version" discredits your statement greatly. I have not seen such a large difference in the versions I've messed with, and apparently neither has BA.

It has seemed that one of your major issues has tended to be that you misinterpret technical descriptions. The cause seems to an eagerness to help, which is admirable, but it often causes confusion.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Christuserloeser » Thu Mar 06, 2008 3:07 pm

Will you please just try it so we can get over with this. It doesn't help to write "Yes" and "No" over and over again. We're wasting our time here.

Here's what I did to get said difference in performance:

1. I took your build (not BA's, it definitely has to be yours because BA's doesn't show the FPS counter! Sorry for the misinformation, it's been a long year... ^ ^)

2. I've set it to SW (not HW)

3. Launched a game

4. Launched the same game again in SW but with the other CPU core.

= 10fps difference
Insane homebrew collector.
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Christuserloeser » Thu Mar 06, 2008 3:19 pm

Quzar wrote:The issue between FAME and Genplus that you have referenced multiple times has nothing at all to do with speed. NOTHING.
Very funny. Where did I mention that it had anything to do with speed ? It's compatibility that has changed greatly.


(It's been C68k that seemed slower in your build than in BA's and I wrote that I got no explanation for that.)

Quzar wrote:The fact that you changed your statement from: "c68k and FAME differ by 20fps in BA's version" to "c68k and FAME differ by 10 or 20fps in either BA's or WT's version" discredits your statement greatly.
I changed my statement because it's been about 15-16 months (!) since I tested it. I couldn't remember the exact number.
Insane homebrew collector.
User avatar
Quzar
Dream Coder
Dream Coder
Posts: 7486
Joined: Wed Jul 31, 2002 12:14 am
Location: Miami, FL
Has liked: 0
Been liked: 3 times
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Quzar » Thu Mar 06, 2008 3:19 pm

Christuserloeser wrote:Will you please just try it so we can get over with this. It doesn't help to write "Yes" and "No" over and over again. We're wasting our time here.

Here's what I did to get said difference in performance:

1. I took your build (not BA's, it definitely has to be yours because BA's doesn't show the FPS counter! Sorry for the misinformation, it's been a long year... ^ ^)

2. I've set it to SW (not HW)

3. Launched a game

4. Launched the same game again in SW but with the other CPU core.

= 10fps difference
I believe it. I never said otherwise. I never argued otherwise. It seems YOU are the one who needs to go back and read what is written.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Christuserloeser » Thu Mar 06, 2008 5:05 pm

Just had to test it again myself to see if my memory doesn't fail me. Here's my impressions:

With C68k the frame rate jumps between 10-20 fps in SW, with FAME it's 20 fps pretty constant with only minor hickups below 20 fps every now and then. If paused, FAME gives almost 30 fps, C68k seems to jump more from 20-30 fps.

The games I tested were Sonic 2 and Streets of Rage.


- The difference actually isn't as much as I remembered, but still it doesn't change the fact that FAME seems to perform better.


Overall I am pretty impressed that it's that fast in SW, I am sure it would be possible to underclock the Z80 and the disable music for full speed in SW (kinda like in GPDC v01).

Does the SW mode use frame skipping ? (I am asking because it seems to just run slower.)
Insane homebrew collector.
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has liked: 0
Been liked: 0

Re: New GenesisPlus: GPDCQ-01202007

Post by BlackAura » Fri Mar 07, 2008 1:55 am

Christuserloeser wrote:I tested it with the software renderer in either WT's or your built. Whether it's been 10 or 20fps I can't remember, but the difference is very impressive.
Oh, right. I stopped testing against the software renderer ages ago, basically because getting it working well is somewhere towards the bottom of my list of stuff that needs to be done.
Well, we got FAZE which we could use. It won't give us a boost as big as with FAME vs C68k but I am sure it would perform much better than MAMEZ80 and provide greatly improved compatibility compared to CZ80. I remember that Fox and Chui spend ages testing it.
I've not extensively tested it, but yes, FAZE (at least, the version from Neo4All) does work.

Bear in mind though that both software and hardware mode will run full speed with sound disabled, and that the slowest part of the emulator by now is the FM sound emulator. No matter how fast FAZE is, it won't improve speed by any noticeable amount.
Quzar wrote: I don't know if you've looked at any of my bits, but more recently I was able to tune up the twiddling thing a bit more (one of the more apparent todos in your code). If you're interested I could foward that bit over to you.
Yeah, I did notice that in the last source release of yours that I saw (although I don't remember when that was).

I really need to collect all these different versions of GP/DC, and run diff over them to see what's actually changed between them.
Christuserloeser wrote:Overall I am pretty impressed that it's that fast in SW, I am sure it would be possible to underclock the Z80 and the disable music for full speed in SW (kinda like in GPDC v01).

Does the SW mode use frame skipping ? (I am asking because it seems to just run slower.)
Pretty much everything runs full speed with sound disabled. SW mode doesn't have frameskipping as far as I remember, at least not in any of my builds. Then again, none of my builds had sound output enabled in SW mode either, and the frameskipping was based on the sound output.
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Christuserloeser » Fri Mar 07, 2008 4:10 pm

BlackAura wrote:Bear in mind though that both software and hardware mode will run full speed with sound disabled, and that the slowest part of the emulator by now is the FM sound emulator. No matter how fast FAZE is, it won't improve speed by any noticeable amount.
I understand that we won't magically get full speed with 24khz sound just by using FAME and FAZE, but every gain in FPS won't hurt. If as a side effect compatibility improves in comparision to CZ80, that would be worth something.

BlackAura wrote:SW mode doesn't have frameskipping as far as I remember, at least not in any of my builds. Then again, none of my builds had sound output enabled in SW mode either, and the frameskipping was based on the sound output.
In both yours and Quzar's release, sound is enabled for SW (yet there's no frameskipping it seems, as the games play slow but smooth). If sound is turned off via the GUI, none of the games I tried seems to work.
Insane homebrew collector.
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has liked: 0
Been liked: 0

Re: New GenesisPlus: GPDCQ-01202007

Post by BlackAura » Fri Mar 07, 2008 6:33 pm

Christuserloeser wrote:In both yours and Quzar's release, sound is enabled for SW (yet there's no frameskipping it seems, as the games play slow but smooth). If sound is turned off via the GUI, none of the games I tried seems to work.
Really? I don't think I've ever even attempted to run software mode with sound enabled.

In that case, the sound in software mode should be pretty glitchy. Getting the sound to play properly requires that the emulator is running fast enough (it can tolerate 30FPS as long as the CPU emulation can keep up over the skipped frames), and that the emulator's framerate is synchronised to the sound output.
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Christuserloeser » Fri Mar 07, 2008 7:57 pm

BlackAura wrote:Really? I don't think I've ever even attempted to run software mode with sound enabled.
Yeah, and this time I even tested it before making any half wrong claims based on memory (jaja, I am a fast learner ^ ^ )
BlackAura wrote:In that case, the sound in software mode should be pretty glitchy.
*boots up DC*

It echoes quite a bit... but it plays.


- If I disable sound I can't get any game to even show the SEGA screen it seems... The emulator just shows a frozen screen of the last game I tried with sound enabled.
Insane homebrew collector.
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by Christuserloeser » Fri Mar 07, 2008 8:00 pm

BlackAura wrote:Getting the sound to play properly requires that the emulator is running fast enough (it can tolerate 30FPS as long as the CPU emulation can keep up over the skipped frames), and that the emulator's framerate is synchronised to the sound output.
I just realized that this means that C68k can't even provide 30 fps all the time in HW mode. - I am currently running Sonic 2 in Quzar's build and everytime the FPS counter drops, the sound glitches. :o

This problem doesn't seem to happen with FAME at all! The sound is perfect!


(boy, Sonic 2 is FAST! and it looks AWESOME in VGA :D )


EDIT #1: It seems that C68k performs much better if the FPS counter is deactivated.

EDIT #2: That's interesting... There is a section in Sonic 2's Emerald Hill Zone's music where it noticeably slows down... It doesn't seem to affect game play but you can hear it. Even when using FAME and when you're in the Sound Test menu. It's track #02 and the slowdown happens at about 0:43-0:45.

I compared it against the VGM I attached below.
Attachments
Sonic the Hedgehog 2 - 03 - Emerald Hill Zone.rar
Sonic 2 - Emerald Hill Zone
(32.01 KiB) Downloaded 60 times
Insane homebrew collector.
DcSteve
Modder Of Rage
Modder Of Rage
Posts: 805
Joined: Mon Mar 18, 2002 12:41 pm
Location: Midwest
Has liked: 0
Been liked: 0
Contact:

Re: New GenesisPlus: GPDCQ-01202007

Post by DcSteve » Fri Mar 14, 2008 1:07 am

Ive done extensive testing on gens4all. The authors claim that gens4all is designed to be better for accuracy of emulation and game compatibility. Do you guys believe the team is stating in dcemu.co.uk forums that GPDCQ uses many shortcuts and tricks to achieve the greatness it has? According to the latest releases of GPDCQ VS Gens4all. GPDCQ emulation is more accurate and less bugs so far.
Check out the beats of rage community at http://borrevolution.vg-network.com/
law56ker
DCEmu Cool Poster
DCEmu Cool Poster
Posts: 1024
Joined: Wed Oct 17, 2001 7:44 pm
Has liked: 0
Been liked: 0

Re: New GenesisPlus: GPDCQ-01202007

Post by law56ker » Fri Mar 14, 2008 2:03 am

DcSteve wrote:Ive done extensive testing on gens4all. The authors claim that gens4all is designed to be better for accuracy of emulation and game compatibility. Do you guys believe the team is stating in dcemu.co.uk forums that GPDCQ uses many shortcuts and tricks to achieve the greatness it has? According to the latest releases of GPDCQ VS Gens4all. GPDCQ emulation is more accurate and less bugs so far.
I don't think it's fair to assume that. They simply stated their goal and it is to try to maintain accuracy with their emulator. I don't see how that has anything to do with other emulators. And for gens4all being buggier, that in fact is most likely true, but that doesn't change what their goal is with the emulator. I'm still hoping for a new version of genesis plus. I believe it has so much potential. Could the 2 teams work together and share info on optimization? I am happy to see the dreamcast emulation scenes heart beating again.
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has liked: 0
Been liked: 0

Re: New GenesisPlus: GPDCQ-01202007

Post by BlackAura » Fri Mar 14, 2008 2:48 am

DcSteve wrote:Do you guys believe the team is stating in dcemu.co.uk forums that GPDCQ uses many shortcuts and tricks to achieve the greatness it has?
The goal of GPDC was always to make the emulator playable, but not at the expense of completely breaking everything.

It's had a couple of features which make it more playable, typically at the expense of compatibility and accuracy. Each of which was a stopgap measure until a better solution became available, and for the most part they were optional. You could call these shortcuts, if you like.

Those "shortcuts" were, in their entirety:

Ability to underclock both CPUs in the first release version. The CPU emulation at the time was simply too slow, and since we had no sound output anyway there was no sense in wasting CPU time emulating the Z80 any more than needed. In newer releases (assuming they even have it - none of mine did), underclocking doesn't have any benefit.

The hardware VDP (probably the shortcut fox is referring to). This was written before any of C68k, FAME, CZ80, or FAZE were available. It's a huge shortcut, but made it possible to play games at very nearly full speed, even using MAME's CPU emulators. With the newer CPU emulator cores available now, you can do this with the software VDP. The hardware VDP has stuck around because it frequently allows enabling sound while keeping a smooth framerate - something that couldn't be done on most games with the software VDP.

That's it, really. GP/DC does have compatibility problems, but they're not because of shortcuts. They're bugs.

I do believe that the Gens4All team have a slightly different approach to it. That's probably just the different backgrounds of the teams - I'm fairly sure that none of the contributors to GP/DC are assembly gurus (I'm certainly not), nor do any of use have any particular prior experience with the MD hardware, 68k, or writing other emulators.
law56ker wrote:Could the 2 teams work together and share info on optimization?
Certainly can, if need be.
Post Reply