Enhanced Nemesis 3 test version

Página 4/5
1 | 2 | 3 | | 5

Por erikd

Master (255)

imagem de erikd

02-02-2015, 19:47

Quote:

I want to see SD Snatcher with smooth scroll and enhanced music, will be awesome! Maybe Contra with proper scroll.

TBH I haven't considered smooth scrolling for SD snatcher yet. I'm sure it's possible and maybe it'll be worth it to give it a try, but it'll be a lot more difficult than the Gradius-style games (and Knightmare, where I also implemented smooth scrolling).
Don't get your hopes up for Contra though. The MSX port is just not designed to scroll at all and no emulator trickery is going to help there.

That said, both already support enhanced music, fwiw.

Por erikd

Master (255)

imagem de erikd

02-02-2015, 19:51

Jupp3 wrote:

There's already patch for Gradius 2, that enables smooth scrolling on 2+ and tR systems, available here

Wow, that looks awesome; how could I have missed that!
Unfortunately emulator doesn't support 2+ and TR systems.

Por mars2000you

Enlighted (6098)

imagem de mars2000you

02-02-2015, 19:55

erikd wrote:

Unfortunately emulator doesn't support 2+ and TR systems.

If your emulator is based on fMSX, it should not be too difficult to add the MSX2+ support.

TurboR support is another story, as fMSX does not have this support.

Por Manuel

Ascended (18394)

imagem de Manuel

02-02-2015, 20:25

AFAIK erikd's emulator is written in Java, so I doubt he used fMSX as a base.

Por Grauw

Ascended (10315)

imagem de Grauw

02-02-2015, 20:39

@ericd By the way I wonder, as an emulator is a very realtime system; the Hotspot JVM’s garbage collector is pretty good, concurrent, generational etc. Did you need to make any special considerations to reduce garbage collection churn, such as object pooling? Or is the modern garbage collector good enough so that you don’t have to worry about it at all?

I made a pure-Java 3D test project on Dalvik (the old Android VM) and the results were disappointing, a lot of jitter due to pauses of sometimes in the tens of milliseconds. I need to try it again on the new ART runtime, its GC is supposed to have been improved a lot. I’ve never tried to do such a thing on Hotspot.

Por erikd

Master (255)

imagem de erikd

02-02-2015, 20:46

Quote:

If your emulator is based on fMSX, it should not be too difficult to add the MSX2+ support.

It isn't. It isn't even written in the same language (it's all java, except for some OpenGL stuff).
Of course I learned from reading code from existing emulators and as such there are definitely things that work quite the same way as other emulators, but by and large it isn't directly based on another emulator.
TBH it's probably one of the least accurate MSX emulators out there.

As an example my emulator treats the VDP as if it were infinitely fast and although I did emulate the VDP 'busy-flag', it is a really coarse approximation (which on the plus-side does eliminate tearing in some games Wink)

Por erikd

Master (255)

imagem de erikd

02-02-2015, 21:03

@Grauw
I don't do object pooling or some such. There are times where you don't want to depend too much on GC if you want to be real-time, but those considerations aren't all that different from writing in C (just don't allocate/de-allocate too much).
But by and large, the GC in JVMs perform surprisingly well and even if you do stress the GC a bit, it's hardly ever a problem.

Dalvik is another story though. First of all, Dalvik isn't really Java. The language is the same and parts of the API are the same, but the virtual machine and byte-code are entirely different.
Frankly, Dalvik kind of sucks. It's like going back at least 10 years back in time compared to desktop JVMs. In Dalvik, you do have to worry about GC a lot more if you care about consistent real-time performance.

Por Grauw

Ascended (10315)

imagem de Grauw

02-02-2015, 22:00

I see, good to hear. Re. Dalvik, yeah, that was my impression as well… Hopefully with ART they will do it right this time. It doesn’t all need to come out of Sun/Oracle’s bag, but the least they could do is implement a modern GC. Btw, the Mono garbage collector used for Unity 3D isn’t much better :/.

Por erikd

Master (255)

imagem de erikd

03-02-2015, 21:18

Well it's good to hear Google are moving away from Dalvik. To be honest I haven't heard about ART before. Hopefully that'll be a good improvement.

A few years ago I modified my emulator to run on Android, but the results were disappointing in terms of pure runtime performance.
I managed to get the Donkey Kong arcade running at (sort of) real-time speed by seriously down-clocking the CPU, but with even MSX I had no chance (think ~5fps on a 1GHz phone). GC wasn't the problem (there's hardly any garbage generated in my emulator anyway).
To compare, the MSX driver of my emulator even worked alright on an old 266MHz Pentium II laptop running the IBM Java 1.3 JVM or HotSpot 1.4.
(My emulator also supports Sega Y-Board arcades but I didn't even bother trying those on Android; I expect less than a slide-show there)

A good JVM can manage close to C++ speed (and in some cases even surpass it), but Dalvik isn't that.
My understanding is that Dalvik only has a very simple JIT compiler that doesn't do all the fancy optimisation stuff that the likes of HotSpot or IBM do. It's not just GC (which you can work around if you have to); it's just bad performance across the board.

Dalvik isn't completely useless though. For the typical 'app' it's usually good enough. The remote debugging facilities and such are nice. You can even code simple 3D GLES games at good framerates if you put the effort in. But more CPU intensive stuff like emulation is obviously not it's strong suit.

Por fernando.collazo.5682

Master (256)

imagem de fernando.collazo.5682

04-02-2015, 22:53

erikd where I find the latest version of your great emulator?

Página 4/5
1 | 2 | 3 | | 5