Announcement

Collapse
No announcement yet.

GliGli's NullDC-360 (DC Emu) W.I.P. Update

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GliGli's NullDC-360 (DC Emu) W.I.P. Update

    A new WIP update of GliGli's NullDC-360 (Dreamcast Emulator) for LibXenon-homebrew 360's has been posted:



    After a long dev period here's a little update about GliGli's nulldc port, on the last update, the emu was running on interpreter, and GliGli faced a big problem, there is no dynarec for the XBox 360 architecture (PowerPC), so he had to code his own

    Currently the port runs at 168mhz in-game for Soul Calibur (DC Cpu speed is 200mhz). The speed is not constant during games, for example you can see on the video that Soul Calibur stage 1 isn't at that emulation speed, but the other stages are.

    To Do :
    - Reach full speed
    - Sound Emulation
    - Add Save
    - Add Menu
    The Hackmaster

  • #2
    DreamCast Emulator For XBox 360

    By GaryOPA

    Good news for all the retro-fans out there. One of the best Dreamcast emulators for PC, nullDC has been ported to Xbox 360 and after a long time stuck in development, it has been resumed. According to French developer GliGli:



    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 IRQ's!

    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 multi-thread sound, and by the way, other peripherals, I run parts of that update on a separate core.

    It runs concurrently with the dynarec, and, basically, every 448 SH4 cycles both get synchronized. 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
    NEWS SOURCE #1: Gligli360 (via) Official Site
    NEWS SOURCE #2: GliGli (via) GIT Hub
    NEWS SOURCE #3:NullDC-360 project (via) 360 Crunch

    Our thanks to 'Kaos2K' for this news item!
    The Hackmaster

    Comment

    Working...
    X