Author Topic: Makaron is not dead  (Read 7958 times)

Offline CaptainCPS

  • FBNeo Dev
  • ******
  • Posts: 1513
  • Karma: +127/-0
  • FB Alpha Team
    • CaptainCPS's Home
Makaron is not dead
« on: October 24, 2008, 06:19:06 PM »
I was wondering how Makaron project was doing and found out that the author was porting the emulator to Microsoft Visual Studio because of problems with GCC and the limitation it have with Win32 (I have seen some of those limitations myself  :p), GCC team is just not to excited to work on Win32 these days so I think he did the right move.

Here you have a recent post at Makaron website were you can see the current progress that seems very cool to me ^^...

I've moved Makaron project to Microsoft Visual C++ 2008. Express edition for now as it's free and has about all the tools I need (resource editor would be nice though). Too bad I won't be using a profiler anytime soon - it's only present in the Team suite and that's a bit out of my price range :) Maybe I could use CodeAnalyst, though on Intel hardware it can only do timer-based analysis. But hey, this is still about as good as gprof and it's also free, whereas VTune prices start at 700$ - and that's just a licence for the basic module.
You know, it's funny but I also liked GPU ShaderAnalyzer better than NVidia tools. It's not as sophisticated but also easier to install and use. Get a hint, Intel and NVidia :)

There weren't too many problems with moving to MSVC. Mostly I had to switch to different alignment and structure packing semantics. That and some inline assembly had to give way to more generic C code - it was only worthwhile when using AT&T syntax with clobbered register hints. The YUV converter is now using MMX/SSE2 intrinsics (as it was meant to but I had no choice but to use assembly under MinGW 3.4.5).
All in all, it compiles and works. I'm still using controller and keyboard plugins done with MinGW but that will soon change as well.

I've also moved to Unicode - that was done even before I switched compilers though. The INI files can now be encoded as ANSI (that's ASCII plus current Windows code page character set), UTF-8 or (preffered) UTF-16. Little endian of course, as all x86 architecture is. The format will be autodetected based on the BOM and so Unicode files must start with one. Notepad will take care of that for you.

So far there are only two downsides to MSVC: it comes with standard STL headers only (so no slist for example) and running the executable requires one to download and install a redistributable package from Microsoft. The latter is only 4MB so it shouldn't be a problem.
As for STL, I've been experimenting with it for some time now. My own classes are not that universal and not really faster either. I did port some of that code back to plain C to use on Dreamcast, but that doesn't mean I need to keep Makaron STL-free forever. There wasn't much point in switching to STL under MinGW, but I did anyway, and I got rewared for that in MSVC. It's debug build helped me find some deeply buried bugs in the way I handled texture lists. Nothing major but still.

What else is new? The YUV->RGB texture conversion performance on NVidia cards should be a bit higher now. It also turns out using PUREDEVICE is not the best idea considering how many state changes I do per frame (even if I do try to limit the most costly ones).

Oh, and thanks to new compiler Makaron is now a tad bit faster. Not much, not always, but I'm getting up to 120 MIPS out of SH4 in full MMU mode where I was getting 90 before. Unfortunately the slower your CPU is the less boost you will see - but still, that's an improvement.

http://dknute.livejournal.com/

SeeYaa!
 :biggrin:

Offline CaptainCPS

  • FBNeo Dev
  • ******
  • Posts: 1513
  • Karma: +127/-0
  • FB Alpha Team
    • CaptainCPS's Home
Re: Makaron is not dead
« Reply #1 on: November 18, 2008, 06:38:59 AM »
November 17, 2008 - Makaron WIP posted

Makaron dev Deunan posted some nice info about his progress and some interesting pictures showing the hardware connected to a pretty nice Oscilloscope.

Quote
Still busy. Good news is I've been forced to add FEG emulation to AICA recently and now I dare say it's finally complete. Filtering isn't really used much but Shenmue needed it for the in-game music.
Since I'm still in the woods with other changes I suppose I could release another test version of Makaron with what I have now. Not much of that I'm afraid:

- Fixes to TA I've already wrote about (ie Excelica)
- Revised VMU plugin, it is now possible to save in WinCE games
- FEG/digital lowpass filter emulation in AICA

Stay tuned.

Also, some random pictures. If you know what it is you can start drooling now :) This will take time mind you, but maybe I'll have something working before 2009. Still waiting for the Altera board to arrive...

<pics attached>


SeeYaa!
 :biggrin: