Goals
0.9.12
-
Qt
Implement missing command line options
-
Qt
DirectX cores (they can be used, but not configured...)
-
Remove glut dependency and add a proper OSD system (something like what was done in the wiibrew port)
0.9.13
-
Finish stuff that was left over in 0.9.12 :)
-
Documentation reworking. May possibly delay to 0.9.14
-
Guill
Fix regressions introduced by 0.9.12
-
Guill
Implement Vdp1 manual draw
0.9.14
-
Clean up strings and translations
-
Clean up init/reset code to not require quit and restart for settings to take effect
-
Switch Qt port over fully to Qt5.
-
Documentation reworking.
-
Finish stuff that was left over in 0.9.13 :)
-
Fix regressions introduced by 0.9.13
-
Basic SCSP DSP emulation
-
Theo
Japanese Modem support. May be further out.
-
Possibly switch over to SDL2?
-
Guill
Modify Software Renderer to support High Resolution
1.0.0
-
Full "stock" saturn emulation. At the very least it should be "feature complete" (most major bugs should be fixed at this point too).
-
Any external carts or peripheral do not need to be fully emulated at this point.
-
Switchable SH2 Dynarec/Interpreter cores.
-
Full debugging support.
-
Speed should be high at this point (It's too tough ironing out those bugs with Yabause running slow).
-
Save States.
List of things that need to be done yet
-
OpenGL core needs rewriting to handle texturing better and to handle some of the more obscure features of the saturn.
-
Profiling of the Carbon port shows that about 8-9% is spent on texture uploads, most of this in the driver changing the pixel format. Using pixel buffer objects and using the GL_BGRA texture format with the GL_UNSIGNED_INT_8_8_8_8_REV type should reduce this to almost zero.
-
SCSP emulation is still missing DSP emulation.
-
CD Block emulation is still missing a few odd commands.
-
CD Audio isn't as noise free as it should be.
-
SCU still needs better DSP timing. Some registers might need better support.
-
SH2 still needs SCI emulation.
-
Eventually we're going to have to add support for multiple languages.
-
Better user documentation. A lot of aspects like the debug functions are very poorly documented. Primary location should be on the wiki, then converted to an offline format for the specific ports.
-
And much more.
Mac-specific goals (not specific to any release)
-
SDL is used only for sound. Talking to CoreAudio ourselves lets us get rid of it. There should not be any noticeable performance increase, but the size of the binary would shrink.
-
Joypad support via HID Manager.
-
Rewrite UI using Cocoa. Compiling Yabause as a 64-bit application should give a speed increase on 64-bit capable Intel Macs, but the Carbon UI libraries are not available for 64-bit applications. Cocoa should also make it easier to add the missing developer features.
Windows-specific goals (not specific to any release)
-
Add support for 64-bit windows.
-
UI handling should be rewritten so the UI and emulation are on two separate threads.
-
SPTI cd core needs some reworking so it doesn't dead-lock emulation while it's waiting on a command.
Dreamcast-specific goals (not specific to any release)
-
Execute SH-2 Instructions directly using a virtualization-like approach (think a very thin dynarec).
-
Utilize AICA directly, rather than emulating the SCSP. This will mostly work without problems, as AICA was based on SCSP in a way, but there are a few issues that could possibly occur. Hopefully those issues don't happen too often, eh?
-
Investigate utilizing an assembly 68k core, such as FAME, or writing one specifically for Yabause (I really doubt that the ARM core in AICA is fast enough to emulate the 68k properly in SCSP).
-
Attempt further optimization of the VDP code (especially VDP2).
-
Lots and lots more assembly code...
Qt-specific goals (not specific to any release)
-
Relook the settings dialog
-
action replay search own code
-