Thursday, August 30, 2012

Still alive :)


Hey, as you might have noticed, I resumed my work on nulldc-360 and libxenon not long ago.

I'm currently working on 3 things: compatibility/sound/speed.

6 months ago I was badly stuck on 2 bugs, one texture endianess problem, and one random crash/infinite loop in the dynarec.
First thing I did was to look at that texture bug, in a few days I found the exact case where it happened and fixed it for good.
Then I fixed the dynarec one, it was quite an awful one: I forgot to save/restore the SH4 condition flag on dreamcast interruptions, so it was randomly corrupted as the emulated console handled its IRQs!
I fixed a few more bugs until it was clear I needed proper sound emulation for more games to boot.

Adding sound was relatively straightforward, of course there were the usual endianess related bugs, but I guess I'm getting used to it ^^
The Dreamcast sound chip (AICA) is a complex design, it has an ARM processor core, a 64 channel sound generator, and a DSP.
I don't emulate the DSP for now, many games don't really need it.
Main problem with sound is the induced emulator slowness, though thanks to the 360 multicore cpu, I was able to make it almost free.

Updating peripherals in the dynarec works that way: each code block knows how many SH4 cpu cycles it emulates, and each time a fixed number of cycles (448) is reached, it calls a procedure that updates those peripherals.
To multithread sound, and by the way, other peripherals, I run parts of that update on a separate core.
It runs concurently with the dynarec, and, basically, every 448 SH4 cycles both get sychronized. so as long as peripherals emulation takes less time than SH4 emulation, the dynarec doesn't have to wait for them!
So that makes them almost free to emulate, almost because they still stress the 360 L2 cache and memory controller a little.

Anyway, compatibility seems pretty good now, sound works, speed is more or less the same it was before sound emulation, a proper binary release *might* not be that far ;)

26 comments:

  1. And I already thought this blog was dead, keep the good work up and post more often :)

    ReplyDelete
  2. Thank you soo much for picking this up again, and a binary release may be on the horizon too? COOL.

    Thank you..

    ReplyDelete
  3. Thanks you sooo much for the update

    Gligli the best.

    ReplyDelete
  4. My DC died a few months ago & never got around to getting a replacement. Cant wait to play Power Stone again!!! Your a legend!!!!

    ReplyDelete
  5. Do a Github then people can help you :) !

    ReplyDelete
  6. I always had one: http://github.com/gligli :)

    ReplyDelete
  7. Hey I know this isn't exactly on topic but do you plan on picking up where you left off with mupen64 as well? It works great for some games (have played hours worth of Mario Kart) but some others are untouchable still (Goldeneye) and yours is the only N64 emulator I can find for the 360.

    ReplyDelete
  8. Keep up the good work! =D We're all waiting patiently.
    BTW: About Mupen64: excelent work. After nulldc360, if you have the time or interest, can you check why Evangelion doesn't work OK? Thanks.(thumbs up)

    ReplyDelete
  9. thanks for your work from mexico otherwise I will install the RGH I can be a tester seriously xD I love your contributions bye

    ReplyDelete
  10. Hey i do know this is not specifically on topic however does one arrange on finding out wherever you left off with mupen64 as well? It works nice for a few games (have contend hours price of Mario Kart) however some others square measure untouchable still (Goldeneye) and yours is that the solely N64 person I will notice for the 360.

    Microsoft Promo Code

    ReplyDelete
  11. I'm starting to get excited now that the release of Mupen64-360 is getting close, but I noticed DK64 has that annoying character clipping? bug that happens on PJ64 too. Is it graphic plugin related?

    Either way thanks alot for working on DC/N64 Emulation for the 360.
    Slowly but surely the my old Xbox is being used less and less and the 360 more and more. :)

    Thanks..

    ReplyDelete
  12. Thanks a lot dude for everything u have done with the scene! Sorry about my english, i'm Brazilian...

    GliGli, the legend!

    ReplyDelete
  13. Gligli you are the Best! Thanks for all!

    ReplyDelete
  14. any news about official release of nulldc-360?

    ReplyDelete
  15. I have a slim model with RGH/NAND mod and N64 and Saturn is not working,any suggEstions?

    ReplyDelete
  16. Hi! It's possible to fix the UV problems and then we can able to extract the models to convert on XNALara?
    Thank you for your hardly work. :)

    ReplyDelete
  17. Why hasn't there been an update on this? Its been a very long time, this NullDC-360 should have been out by now (Going on a year since this blog article was posted)

    ReplyDelete
  18. i'm eagerly awaiting for xbox one to launch in India.. good console..

    ReplyDelete
  19. keep spirit to blogging!!!
    share awesome articles :-)

    ReplyDelete
  20. you need nullDC360 ?

    here: http://www.logic-sunrise.com/forums/topic/62047-xell-nulldc-360/

    ReplyDelete
  21. Very informative, keep posting such good articles, it really helps to know about things.

    ReplyDelete
  22. Hi, please finish this emulator. With donations maybe he could get ahead.

    ReplyDelete