Author Topic: Makaron Test 9 (DreamCast Emulator)  (Read 14682 times)

Offline CaptainCPS

  • FBNeo Dev
  • ******
  • Posts: 1513
  • Karma: +127/-0
  • FB Alpha Team
    • CaptainCPS's Home
Makaron Test 9 (DreamCast Emulator)
« on: December 22, 2007, 03:06:24 PM »
Makaron Test 9

This is a nice DreamCast emulator (I didn't know about it until today  :p) that recently updated with various stuff. I have tested it with MvsC 2 and CvsS 2 and it run pretty good. There are two binaries, one for normal CPUs and the other for MT CPUs.

Here is what the author posted in his blog:

Quote

Test 9
   
   
Here is Makaron Test 9 for your pleasure. There are lots of internal changes, but nothing revolutionary - so don't expect it to be much better/faster compared to earlier versions. From user point of view, it's almost the same as T8. Quite frankly the only reason I'm releasing it is to test some new stuff inside. For example, it's only thanks to user input that I found the NVidia FX series cards bug so fast (and actually it affected all cards, just that FX couldn't cope with it at all).
There are also people out there who simply have to test anything new that is released, because they love emulating stuff. So this is like a small gift for them, to enjoy for few moments before the novelty wears off :)

Like I said, there are tons of small (and not so small) internal changes to the emulation engine. Some of this stuff is so new it wasn't even tested much yet, so expect bugs. If you find a game that doesn't work now and it used to, please drop me a note - I'd like to find and fix the regressions first.
I won't go into much detail, but here's a list of things I consider interesting enough to explain a bit:

Dynamic Z-buffer range compression
This is a new method of dealing with overblown Z/W values. Most of the work is done in vertex shader so there should be no noticable speed impact. I mean, if there is then your graphics card was too slow to begin with and this is just another drop in the bucket.
Now I can handle geometry more like PVR2 does, which is good because this allows proper shadow casting. Very much like NANs, infinities are now detected and handled CPU-side - so far it appears to work as expected. All this and no Z-precision issuses, not that I'm aware of at least. Unless there's a game out there making a real use of 32-bit floating point HDR in Z-buffer this might just be THE solution :)
Note: There are games that still do not render properly due to other bugs, also this does nothing to cure transparency/ordering problems.

Shader Model 2 is now default
Makaron will now use VS 2.0 and PS 2.x (x being 0, a or b - where available), and fall back to 1.1/1.4 if it has to. What's more, I might be dropping SM1 support sometime in future. There are so many problems with it... I've had VS 1.1 break geometry which VS 2.0 handled just fine. And let me remind you again that palletized textures filtering is disabled on PS 1.4 beacuse it's too primitive for that kind of processing.
It's also about features that older cards do not have - like multiple render targets, or floating-point type surfaces. The Z compression code is considerably shorter compiled for 2.0 profile than it is for 1.1 by the way. Funny thing though, even if SM3 code is shorter it actually executes slower on most cards. That and the bugs I found in the drivers made me choose SM2 as the best perfomer.

Texture caching fixed
At least I hope it is :) Makaron MT version should no longer crash so much or trash textures. That does mean the single-threaded version will be a bit slower though - it's a tradeoff I've made to allow for proper locking. Some bugs still remain, mostly to be seen in Soul Calibur, but that's another story.

Shadows now work
Well, most of the time, and so are enabled by default. There are several ways it can be done - so far I was unable to come up with one method capable of handling all cases. Maybe there isn't one... Well, for now you can switch between different algorithms - you'll need to do that for Crazy Taxi series at least.

You really should be using multiple-core system for Makaron, mind you - this is the target PC I'm aiming for. SH4 speed is very important, but once you can do rendering in parallel most games will happily run full-speed on as little as 70-100MIPS. Seeing as AthlonXP clocked at 2000MHz is just below the required minimum, I'd say any mid-level X2 or C2D system will do fine.

The known bugs you will surely ecounter are mostly in AICA (sound module) code. The volume levels are still wrong - not sure why, I made the tables up to the specs. And yet PCM range often exceeds 16-bit, causing major distortions even if clipped. Also, ARM speed has been reduced to 1.5MIPS - this should make Soul Reaver happy. This is not exactly correct either, and will probably break some other games... I'll keep looking for a better solution.

As usuall, if there are any silly-yet-critical bugs discovered, I'll fix them right away. Other ones will have to wait for next "major" release :P

WARNING! Be careful not to overwrite your VMU or INI files when moving to T9!



You can grab it here:

http://rapidshare.com/files/78142186/Makaron_T9.7z.html

And the original source from this:

http://dknute.livejournal.com/

SeeYaa!
 :biggrin:

Offline CaptainCPS

  • FBNeo Dev
  • ******
  • Posts: 1513
  • Karma: +127/-0
  • FB Alpha Team
    • CaptainCPS's Home
Re: Makaron Test 9 (DreamCast Emulator)
« Reply #1 on: December 28, 2007, 05:09:39 AM »
Makaron Test WIP

The author of Makaron DreamCast emulator posted a new WIP recently:

Quote

26th-Dec-2007 09:50 pm - Become my Soul Reaver
   
I found few bugs in T9, here's quick summary:

- T9 actually reports itself as Test 8/3, my bad. The EXE file info should be correct though.
- Due to small changes in SH4 recompiler it may now trip on illegal opcodes, including ones that real hardware would ignore (like 0x0000 in delay slot). That breaks "Tokyo Highway Battle 2" and some "backups". I've already fixed that.
- "Street Fighter Alpha 3" freezes when entering attract mode. Cause yet unknown.
- SH4 fast interpreter is very slow, I was testing something and forgot to undo the changes. And there's a key that will break it even further if pressed :) Fixed.
- ARM7 was set to normal interpreter rather then fast one and this will add a bit to CPU usage. Fixed. Actually, I've finally completed the ARM recompiler - not very sophisticated but it is somewhat faster. And is default now.

Somehow - thanks to the free time perhaps - I was also able to come up with several improvements to the AICA module. I got more things done in past 2 days that in last 3 months... Anyway:
- There are two types of ADPCM streams on DC, and both can be looped even if only one is supposed to be used that way. But that didn't stop people from trying... Long story short, background music in Soul Reaver sounds fine now. Also, ADPCM samples don't like simple linear interpolation it seems so I've removed it. Trust me, it's better this way.
- I've implemented the Amplitude Envelope Generator (AEG in short). There's very little information on how it works, not to mention several special cases that I found got me scratching my head for a while. It has to be recalculated per-sample, though on the bright side I've designed it to use integer math only. Makes "Gundam Side Story 0079" and "Gun Bird 2" BGM nicer.

I think I could now try to add FEG and LFO too, but before I do I might need to redesign the module so it's more clear what's happening and where. In other words: it will take time.



Here is the original post on his blog:

http://dknute.livejournal.com/

SeeYaa!
 :biggrin:

Offline CaptainCPS

  • FBNeo Dev
  • ******
  • Posts: 1513
  • Karma: +127/-0
  • FB Alpha Team
    • CaptainCPS's Home
Re: Makaron Test 9 (DreamCast Emulator)
« Reply #2 on: December 31, 2007, 03:44:30 PM »
Makaron Test 9/1 Released

Well he released a new version and posted some pictures on his blog with the latest updates, btw there you can find a link to a new FrontEnd for this DreamCast emulator so if you like to test new things check it out  :wink:

Note: The following quote doesn't include the link / images from the original news posted on the official Makaron website. You will find a link after this quote to the official website.

Quote

First I'd like to dedicate these two picture to people who claim that so-called 2D games should run better and require less resources to emulate than 3D ones. This is Bangai-O:

Makaron 2007-12-31 Bangai-O #1Makaron 2007-12-31 Bangai-O #2

As you can see, if there is a 3D hardware then 2D games will use it. Why? Because it's faster to have another processor (GPU in that case) rasterize things for you - with alpha blending and transparency, and even filtering if needed. This is full-blown 3D, just that the third dimension is used for composing multiple layers, including background and text messages.
Many such games not only use 3D - they abuse it. Use thousands of small triangles with most of those having individual, unique textures (which are probably not only palletized, but also compressed in some way). And change that a lot every frame - that is 50/60 times per second. Now try to keep up with that!
This is not an 8-bit console calculating and writing every pixel to VRAM (although it does happen, true 2D is still used from time to time; SEGA logo is one example). I may not need to keep things cycle-correct here, but I've my own problems handling graphics.

Okay, now some more fog (you'll find it's used in quite many places actually):







Ah, but that's not all. Here are some more interesting uses of fogging:

Case 1 - fog used as a special effect to light up parts of objects that are being hit by player. And yes, that could've been done in several other (easier?) ways...



Case 2 - now this is grand, Bangai-O uses fogging to show selected buttons :)




There's a special today - a frontend to Makaron donated by slrhui - you can get it here. Please contact the author about it should you need any changes done. And be sure to thank him if you find it usefull.

Here's Makaron Test 9/1. The main purpose of this release it to fix some issues T9 had, but there are other changes as well.
Firstly there's the new AEG code in AICA - not entierly correct mind you, but it will get better in time. I belive I've explained it enough before but just to be sure: It makes AICA module somewhat slower. Nothing is free you know. It should be offset by ARM7 code being recompiled this time.
Second major change is the addition of fog processing. You will need at least Pixel Shader 2.0 for this to work, and it better be fast (worst case scenario, that is palletized & filtered texture with fog and color clamping, is 9 textures lookups + some 50 other instructions per pixel).
This also causes Makaron to lag a bit at startup now, as it has to recreate some 200 PS programs to cover all possible cases.

I tried not to touch SH4 code much, but I did change how HOLLY handles DMA transfers. This might break quite a number of things but was necessary to fix couple of games. Mostly CAPCOM ones, go figure. Some people out there should really learn how to use DMA... There are games that start the DMA and assume it's going to finish before the program advances to the point where it has to use the transferred data - without actually checking that. The easiest way around this problem is to complete the transfers the moment they are started - but of course there are other games that get confused by immediate end-of-transfer interrupt, or miss it, and hang. Yet other games require that the transfer at least advances a bit once started, or the unchaged counter will make them think it's already done. All this is also very timing-related, might work or not depending how fast the emulator goes and when the interrupts actually arrive. Not funny.
I solved this by forcing DMA transfers to take time to finish - just like on the real hardware. The difference is a DMA in progress will slow SH4 (because it's blocking memory bus or HOLLY) and Makaron doesn't account for that. Not to mention I can't exactly check for interrupts every instruction, like SH4, as this would kill performance. I came up with timings that should work well on both slow and fast systems - but it might still need some tweaking.

As a side effect you now get to experience loading times. Just like on your good old Dreamcast. Yay! :) So be patient when staring at blank or "Please wait" / "Now loading" screens. I know this feature will not get good press but I like it. So it stays :)
By the way, fixes to DMA engine (although not timing-related) made "Soul Calibur" and "Dead or Alive 2" dialogs re-appear.

Emulation speed/statistics information is no longer displayed. If you want it, re-enable it in F12 menu.

On a special request from Yuki I've looked into MakaronPAD plugin. It is now possible to assign normal digital buttons to POV directional pad. The plugin version has been bumped up - not a big deal, but it won't work in T8/T9 unless you hex-edit it. You shouldn't be using those anymore :)

Enough Makaron for this year. Silmeria still needs to be rescued and I want some strong monsters to test out triple Nibelung Valesti combo (Hrist->Lenneth->Alicia) :]



Official Makaron website:

http://dknute.livejournal.com/

SeeYaa!
 :biggrin:

Offline nganiere

  • Newbies
  • *
  • Posts: 37
  • Karma: +0/-4
Re: Makaron Test 9 (DreamCast Emulator)
« Reply #3 on: January 11, 2008, 06:45:17 PM »
How do you use this emulator,  I don't understand the language of the error message I'm getting...

Offline Badablek

  • Jr. Member
  • **
  • Posts: 63
  • Karma: +0/-0
  • Member
Re: Makaron Test 9 (DreamCast Emulator)
« Reply #4 on: January 11, 2008, 07:48:33 PM »
How do you use this emulator,  I don't understand the language of the error message I'm getting...

and why don't you just try to read...the readme  :idiot:

I'm french and I was able to use this great emulator, why can't you ? Everything is in it in order to run it.

You only need :

BIOS_EU.bin
FLASH_EU.bin

or

BIOS_USA.bin
FLASH_USA.bin

or

BIOS_JP.bin
FLASH_JP.bin

in the ROM folder (edit makaron.ini for your country)....and a gamepad (keyboard not supported)

ps : this emulator is amazing
« Last Edit: January 11, 2008, 07:51:11 PM by Badablek »

Offline nganiere

  • Newbies
  • *
  • Posts: 37
  • Karma: +0/-4
Re: Makaron Test 9 (DreamCast Emulator)
« Reply #5 on: January 12, 2008, 12:54:27 AM »
I get the following message, I don't understand Russian or what ever it is, can anyone help, I think it's an error message of some kind.....