Kega Fusion v3.61

Talk about development tools here

Moderator: BigEvilCorporation

Snake
Very interested
Posts: 206
Joined: Sat Sep 13, 2008 1:01 am

Post by Snake » Fri Dec 12, 2008 4:19 pm

Nemesis wrote:Awesome! I've been waiting for this to come along.

You need to modify the framerate counter. The thing seems to cap at 999FPS. :D
Heh, yeah, when I first put that in, I never expected it to get that high. Adding another digit is too much hassle ;)
Nemesis wrote:I've been doing quite a bit of work on the VDP lately
Cool. I'm annoyed with myself right now, because I got various timings absolutely spot on at one point, and didn't see any remaining problems anywhere - of course now I've lost all my notes and the timings are wrong again. So I'm going to have to do it all over again...
Nemesis wrote:and I know of half a dozen or so confirmed test cases which can break things under Kega, Gens, and probably every other Mega Drive emulator to varying degrees, and I haven't even tested most of the stuff I've come across in emulators. Almost all of these cases are obscure and undefined points of behaviour, but that's not to say there isn't code out there which relies on some of them. There are some fundamentals about how the VDP processes control/data port access, how it works with its registers, and how and when DMA operations are initiated. When you get these right, all those little quirks go away.
Interesting. As I said, I didn't test everything fully. I know of a couple of things that frankly I'm surprised no emulator knows about (not even Kega, but I want to confirm on real hardware before I do anything about it).
Nemesis wrote:I'll be releasing my notes when I'm further along with the testing. I'm trying to get enough information to make my VDP core bulletproof, IE, behave correctly in response to all port access. Hopefully my notes will be good enough for you guys to do the same.
At the very least they'll cut down the number of tests that people need to do, which is going to be very useful :)

Snake
Very interested
Posts: 206
Joined: Sat Sep 13, 2008 1:01 am

Post by Snake » Fri Dec 12, 2008 8:59 pm

Ah, forgot this:
Nemesis wrote:Damn, you've got me beat. My Z80 core is nowhere near that level yet. A super-pedantic cycle-exact Z80 is filed under "insane project #247" in my to do list.
Well, it is a bit pedantic and insane for this purpose, yes - I don't think it's even remotely necessary. It just so happened that I DID need that level of accuracy for another project, so I wrote a new core, and figured I might as well use it in Kega, since it was better than my previous core.

Eke
Very interested
Posts: 884
Joined: Wed Feb 28, 2007 2:57 pm
Contact:

Post by Eke » Fri Dec 12, 2008 9:34 pm

Interesting. As I said, I didn't test everything fully. I know of a couple of things that frankly I'm surprised no emulator knows about (not even Kega, but I want to confirm on real hardware before I do anything about it).
again, some mystery words to pickout my curiosity :lol:

Snake, I would love to see you writing down and releasing your notes about all what you discovered around the Sega Genesis, 32X and SegaCD

Really, comparing to some other (more popular ?) consoles, I think our favorites ones are rather poorly documented and it seems like Charles McDonald has been the only one really putting some effort into this (his VDP doc is still the most valuable doc to start writing an emulator) :?

Hopefully, Nemesis somehow took the followship recently but I mean,
Kega is actually an achievment of quite 10 years of personnal research, I fully understand and approve your choice to keep control on it by keeping it closed-source but I also think everybody could take benefits of such unvaluable knowledge

I know there is personnal life,issues,job,etc, but I really hope you will consider it someday :wink:

Snake
Very interested
Posts: 206
Joined: Sat Sep 13, 2008 1:01 am

Post by Snake » Fri Dec 12, 2008 10:33 pm

Eke wrote:
Interesting. As I said, I didn't test everything fully. I know of a couple of things that frankly I'm surprised no emulator knows about (not even Kega, but I want to confirm on real hardware before I do anything about it).
again, some mystery words to pickout my curiosity :lol:

Snake, I would love to see you writing down and releasing your notes about all what you discovered around the Sega Genesis, 32X and SegaCD
I know what you mean...

In the early days, Stef, Gerrie and myself were talking almost every day about this stuff, but all of us were trying to figure out things on our own, and only when one of us was totally stuck on something we'd give up and say "ok, tell me." :) This was kinda cool, and actually worked better - who's going to research things properly if it's all, apparently, documented?

Take the fact that there are now a lot of emulators based on Gens, instead of based on research, as an example of what I mean here.

It's not that I don't want to share stuff, mostly its because I've forgotten most of it - I've now got to do tests (again) that I've done multiple times, and it's annoying as hell ;) I have in the past shared stuff that I figured most people probably wouldn't find (mainly odd 68K quirks) that is now implemented pretty much everywhere. Except, embarrasingly, I forgot to implement one of these things in Kega until recently. Doh.

I *DID* document a ton of stuff, especially SegaCD stuff, and unfortunately lost all of that at the same time I lost my source a few years back. Since then I really couldn't be bothered.

But at the same time I'd kinda like to see other people doing stuff like Nemesis is doing, because there are always new things to discover, and copying somebody elses work doesn't further the cause.

However, if there is something specific that I *can* answer, I'm happy to. But it's been a long time since I looked that closely at most of this stuff.

devzone
Interested
Posts: 18
Joined: Sun Jun 01, 2008 12:21 am
Contact:

Post by devzone » Sat Dec 13, 2008 3:30 pm

King Of Chaos wrote:
devzone wrote:This might be a noob question but is the source code for kega available ?
It's a closed source emulator.
Christuserloeser wrote:I wonder if you got any plans to release (parts of) the emulator under the GPL or a similar free software license one day ? (as this would be about the only thing anyone could possibly complain about with this emulator)
I can't speak for Snake, but I don't see this ever happening, mainly because I don't think Snake would want his code (that he has worked long and hard on) out there being changed, mangled and torn apart and added to different ports and emulator variants. Complain away, I guess. :)
Thanks for clearing that up, Its a shame that its closed source but I agree its upsetting when someone mangles your near perfect creation so fair enough

dr. apocalipsis
Interested
Posts: 17
Joined: Fri Oct 19, 2007 10:56 pm

Post by dr. apocalipsis » Sat Dec 13, 2008 11:42 pm

Hi.

Cool news about the update.

2 notes:

1. F1 have flickering lines on top and bottom.

2. Charles McDonalds color demo only displays 1288 Colors on screen. A big improvement, anyway, from older version.

Cya

Huge
Very interested
Posts: 197
Joined: Sat Dec 13, 2008 11:50 pm

Post by Huge » Sat Dec 13, 2008 11:57 pm

dr. apocalipsis wrote:Hi.
2. Charles McDonalds color demo only displays 1288 Colors on screen. A big improvement, anyway, from older version.
Try it without filters, Kega makes filtered screenshots. Without filters, I get 1408 colors which is iirc the correct number (assuming you are talking about the 1536 color test demo - that one just goes through every possible color in the megadrive palette three times, once normal, once with shadow mode, and once with highlight mode. A bunch of the colors displayed in that test have the same rgb values, due to shadow/highlight giving the same results for some combinations).

dr. apocalipsis
Interested
Posts: 17
Joined: Fri Oct 19, 2007 10:56 pm

Post by dr. apocalipsis » Sun Dec 14, 2008 8:05 am

I did the screenshot without filter. I hate fast blur :P

In fact, with filter it should display a lot more colors, due to interpolation.

I'll try later, anyway.

And yes, some colors overlap.

Near
Very interested
Posts: 109
Joined: Thu Feb 28, 2008 4:45 pm

Post by Near » Sun Dec 14, 2008 1:46 pm

who's going to research things properly if it's all, apparently, documented?
Me and Nemesis ;)
Take the fact that there are now a lot of emulators based on Gens, instead of based on research, as an example of what I mean here.
That bothers me too. You almost have to be a historian to know where some of these emulators began (FCE by Bero -> FCE Ultra -> FCEU XD -> FCEU XD SP -> FCEU XD SP++ -> FCEUX).

I don't mind that others who don't have access-to / desire-to-do hardware testing instead contribute to existing emulators, but past a certain level of accuracy, it's no longer beneficial to mess with the emulator cores. At best, it results in taking ambiguous guesses about how things work -- coming from someone unfamiliar with how the system as a whole works. At worst, it spreads wrong information to all the other emulators.

I do wish all of the non-porting emulator authors would perform their own hardware tests. The NES emulator scene, with its 50+ active emulators and maybe 3-4 people actually confirming behavior seems particularly silly to me. Still, not my place to tell others what to do with their time. So long as they're having fun, more power to them.
But at the same time I'd kinda like to see other people doing stuff like Nemesis is doing, because there are always new things to discover, and copying somebody elses work doesn't further the cause.
"If I have seen farther than others, it is because I have stood on the shoulders of giants." -- Sir Isaac Newton

My personal experience is that tech docs are almost always unclear, and assume too much pre-existing knowledge. It was because of the source code available for other emulators that I was able to catch up with them in two years, whereas it took them eight to get where they were.

And yet, for every good use, there are hundreds of bad uses of available source code. VBA's demise stands out in my mind.

Worst case scenario: someone forks your code, adds some silly feature you neglected for whatever reason, or does something you strongly oppose (speed hack / game-specific hacks / internal ROM database / whatever). All of a sudden, 2/3rds of your userbase that you need for bug/regression testing is gone. And the rest waste your time with bug reports from the forked version that you fixed in yours years ago (ala Snes9X forks). Competing against your own work must be so incredibly disheartening.

I know how hard it can be to spend years and years working on something, and to see some asshole come along, spend five minutes on it, slap their name on it and take all the credit. Thus, it's a question of how much trust you're willing to place in others. Nobody has the right to make that decision but the author himself. If one person benefits the scene thanks to your source, is that worth ten people ripping you off? Or would those ten peoples' damage exceed the benefit of the other one?

You mention "In the early days, Stef, Gerrie and myself were talking almost every day about this stuff, but all of us were trying to figure out things on our own", which is great; but reinventing the wheel can also be a severe waste when there are so few emulator authors around who do their own hardware research. That's a great attitude for the early days of emulation, but no single man can figure out 100% of a system alone.

That also becomes a balancing act: if a person uses others' findings as an answer-key, they will get nowhere. But if they use it as a study guide, and really try and understand the why, and not just the how, it can save an immeasurable amount of time.

Anyway, just food for thought. Not arguing for you to release the code -- I'd prefer you do what you feel is best with your source. I do hope you consider releasing it once you unfortunately leave the Genesis emulation scene, at least.
However, if there is something specific that I *can* answer, I'm happy to.
I'd like to hear more about KGen's commercial release history in SEGA et al's PC ports, heehee :D

Huge
Very interested
Posts: 197
Joined: Sat Dec 13, 2008 11:50 pm

Post by Huge » Sun Dec 14, 2008 3:37 pm

byuu wrote:And yet, for every good use, there are hundreds of bad uses of available source code.
I see his work like this: maybe 5% of his changes are actually beneficial (bug fixes or oversights, but sometimes he changes things that he just didn't understand in the first place, like VRAM mirroring), 15% are adding features that are very simple and I probably would have added eventually, 25% are adding features that I do not care to have in gpSP but now am basically obligated to put in there or people will complain, and the other 55% are just changing things subjectively, possibly to make it feel like it's more his work to him. Like changing the GUI, or changing extensions or locations, or even changing the formatting of the code. And it's these things that really annoy me. Another annoying thing he does is put in some kind of framework that he's adding for a new feature that does NOTHING, or doesn't work at all, then hype the hell out of it. He's been promising multiplayer support forever now, and has the binary do various wifi initialization things that just confuse people and give them false hope. I'm all but certain that he's doing this to generate attention and I don't like it at all
Oh man, that sounds exactly like many of those Gens builds that came out before kega. All of them had useless bells and whistles, but I don't think I've seen a single one that could do as much as display properly in 32bit mode (even though nearly all of them said it can do it).

I don't particularly care if Kega stays closed, but I'd really like to see (or hear) a foobar2000 VGM plugin using the Kega core, complete with the model 1 filtering.

Eke
Very interested
Posts: 884
Joined: Wed Feb 28, 2007 2:57 pm
Contact:

Post by Eke » Sun Dec 14, 2008 7:18 pm

hum, the discussion is derivating into something else...

Again, my purpose was not about sharing source code (I really wouldn't mind if Kega's source remains secret *forever*, this add to the legendary status also) but sharing knowledge in a more public and less private way (those golden days of emulation when you were like pionneers were certainly very cool though)


personnally, I don't have any meaning to test programs on real hardware and I am very thankful to all those "hardware" guys here or elsewhere who took the time to test undefined stuff AND to document them... as well as answering all my questions on this board

All I can do is software analysing/debugging on an emulator I'm trying to bring toward highest accuracy level, and guessing hardware real behaviour with that... maybe it's less valuable but this is still research and I force myself to write down every undocumented stuff I found,

I don't think documentation will ever make people doing less research or being lazier, on the contrary, I think it encourages them doing their best, knowing they are starting on solid and validated bases...

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Wed Dec 24, 2008 2:39 am

Another update...
---------------------------------------------------------------------------
Kega Fusion v3.61 (C) Steve Snake 2008
---------------------------------------------------------------------------

Whats New ?
-----------

Various fixes for problems found in the last version, plus a couple of
extras:

* Moved menus around a bit - the Country and CD Drive menus are now part
of the Options menu. This fixes problems with the old menus not fitting
properly in 320x240 mode, and is also a bit less cluttered.

* Timing was out by a small amount after I removed test code. It should
now be back to where it was supposed to be, removing minor glitches from
a few games.

* Problems with Vista-specific code reported by a few people should now
be fixed. Please report any problems with this as soon as possible.

* Windowed VSync is not required, or desired, under Vista. Fusion now will
default to ignoring the VSync flag when running windowed in Vista. There
is an INI file option to re-enable it just incase this causes problems
for anyone.

* Vista-specific code can also be disabled via another INI file option,
incase this causes problems, or you're trying to run Fusion under Wine,
Darwine, or Crossover.

* Sound effects in Primal Rage 32X are working again.

* AVI output now should not affect what you see on screen.

* Screenshot options - you can now select to save screenshots at various
stages. Final is what you'd get from earlier versions, Corrected is non
filtered but aspect corrected, and raw is not aspect corrected.

* Minor modifications to Render Plugin stuff.

* Upped the number of Render Plugins again, to 48. Please don't ask for
any more, there isn't, and probably never will be, anything like 48
different plugins that are actually worth bothering with ;)

* Modifications to Full Screen Resolution after noticing that default
resolutions for large widescreen monitors were sometimes not appearing
in the list. Should be fine now.

* A few more behind-the-scenes fixes.

Merry Christmas.

Snake.
kega kat at gmail dot com (withnospacesanywhere)
http://www.eidolons-inn.net/tiki-index.php?page=Kega

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Wed Dec 24, 2008 6:54 am

Hi,

Sky in Zero the Kamikaze Squirrel (U) flickers a little. I guess HINT timings got a bit off. It was fine in 3.6.

stay safe,

AamirM

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Thu Dec 25, 2008 8:59 pm

Also, Snake released a build of Kega for Intel Macs. ;)

Gary_Oak
Newbie
Posts: 6
Joined: Sun Jan 04, 2009 2:10 pm
Location: Portugal
Contact:

Post by Gary_Oak » Sun Jan 04, 2009 2:25 pm

Just wanted to say that it's great to see Kega come back after such a long while. It's alway been my sega emulator of choice (along with Regen :wink: ) ever since I returned to the wonders of emulation, thank you very much Snake. :wink:

There are just two questions I have about it if you don't mind:

The recommended Mega-CD/Sega CD bioses that should be used are the Model 1 ones right? Also, is it possible to access Kega's menu while playing a game in fullscreen?

Post Reply