2010-07-05

Makaron WIP (2010/07/05)

In a valiant (though doomed to fail, really) effort to clean up the mess that I call my living space I've made some shelf space by throwing away old junk. I'm the "collector" type, unfortunately, which means I tend to keep every bit of electronic or mechanic trash in hope it can be later salvaged for parts and whatnot. Every now and then I read about old people going through trash cans and bringing home anything they find interesting and can carry - and hope this is not how I'm going to end up...

Anyway, I got rid of some old and pretty much used up electron tubes. The radio those were meant for is long gone, and if I'm ever going to put something together using that technology I'll stick to noval/loctal tubes. Yup, still got some of these. There is just something magic about DIY dual-triode AM radios :) Though I guess AM is going to be dropped someday, just as morse code got...
The point here is that shelf space I mentioned. I decided to fill it up with something, obviously, and one of the things that ended up there is brand new Playstation 3. This is "new" in more ways than one, my first console that was not preowned and half the price when I got it. As you can guess it's been eating away some (OK, maybe most) of my free time now. And before you start the usual X360 vs PS3 war, I only went with SONY for the few exclusive games that I wanted to play. A difficult choice seeing how I most likely won't get to play Ace Combat 6. Or Tales of Vesperia. Hell, I'm even hesitating with Bayonetta now.

In fact I think X360 is a bit more powerful hardware - sure it can't compete with CELL SPUs in terms of raw SIMD/streamed data crunching performance but then again the single PPU unit is the very weakness of the PS3. That and the split memory, especially when you're planning on multi-platform launch. And it turns out the GPU is somewhat lacking as well, requiring SPUs for vertex processing. Not that it matters much for the end-user, although many people seem to insist on comparing the guts rather than games. Or should I say, the quality of games and I don't mean graphics here - I'm not really a fan of console FPP shooters (a.k.a interactive movies) even if I always liked all Metal Gear Solid. The first Modern Warfare wasn't bad too, especially Death From Above :) Other than that I'm sick of heavily scripted gameplay sequences, so no Uncharted for me either. I kinda like the idea though, I'm just bad at the game having used mouse and keyboard for FPP games all my life.
To prove my poing, I only played MGS4 for like 15 minutes and switched to other games. Fat Princess, Resonance of Fate and Valkyria Chronicles mostly, with some Eternal Sonata, GT5 Prologue (I suck at getting my RX8 through tight cornes using the pad) and few others. I would play those games on PS2 as well, even with inferior graphics. I really fail to see what is so great about these "next-gen" consoles, especially that both X360 and PS3 struggle at 1080p output.

In the meantime I've messed around with Dreamcast side of Makaron, had a few good ideas too. Sadly the new WinCE recompiler is not ready yet, I underestimated the amount of work needed here. Though on the bright side it seems the changes I've made so far don't seem to hurt performance.
The fundamental problem T12 series had was it's inability to properly regulate emulator speed to match given PC hardware. Problem was it always worked more or less OK for me and so when my Japanese friends pointed this out I didn't quite understand what they meant. And then I changed some code bits, a few parameters and got such a massive speed drop (varying from run to run) that I couldn't belive at first. Turns out the emulator can actually make things worse for itself while trying to optimize the main loop CPU usage... I changed that but it's still somewhat broken. I have to run some more tests but I suspect DirectX plays foul. It's partly my own fault, I should not be calling things like GetCurrentPosition so often in the main loop but there aren't that many other options. You can't properly micro-manage threads in Windows, you either go for a loop that does mostly nothig (hence uses 100% of a CPU core) but has very little latency, or you let it sleep when idle but the shortest time you can specify is 10ms. And that isn't even guaranteed, there is nothing stopping the OS from making it 100ms from time to time. Or worse.

I'll probalby just add another ring buffer for mixed samples and decouple the whole thing from DirectSound completly, it's not that big of a change. The downside would be the AICA will now use only HPET so there is a chance this will eventually desync with actual sampling rate so badly there will buffer under/overrun. This might result in brief audio distortions but I don't expect those to be noticable. We'll see I guess.
This just goes to show that coding for a PC can be difficutlt, especially when you try to make a realtime system. With so many different hardware configurations and OS issues it becomes even greater challenge than making the emulator core itself.

Oh and by the way, I found some interesting blogs recently, mostly hardware related - down to the silicon level. Some great photos of bare chip cores with explanation of what is what. Here, a couple of links:

http://www.flylogic.net/blog/
http://www.bunniestudios.com/

Stuff like that reminds me that I'm just a small fry and there are guys (and girls?) out there doing serious work. I'm too lazy to solder ca. 60 protection diodes for my FPGA kit to able to peek into M1 encryption. But I'm getting to it :) As for the chips themselves, without a a good microscope all I can do is this:
EmuCR:Makaron WIP (2010/07/05)
The noise is mostly due to dithering from color range reduction, and I could get a better magnification but it's a borrowed hand-me-down microscope for biological samples, so it only provides light from below. And don't ask how I got he shot with my compact camera :P

Oh, and there has been a lot of spam in the comments lately, most of it from LJ spambot accounts. If this gets worse I will have to switch to a nastier censorship mode, that will include logged in users. Let's hope it doesn't come to that. Ah, I miss the days when I had the comments fully open to anonymous posters...



Source:dknute.livejournal.com

0 Comments

Post a Comment