Gens/GS TODO List Release 7: - Decrease PWM volume. Chilly Willy's PWM scaling patch made it too loud. - [Win32] Add a configuration option to disable ASPI support. (Win9x has issues occasionally.) - Finish the Gens/GS manual. - Implement GensUI::fsMinimize() support for dialogs. (Also, Win32 support.) MDP TODO for Gens/GS r7: - Finish MDP documentation. - Verify mdp_host_t "No (Not NULL)" and "No (NULL)" support in emulator and plugins. - Finish an initial test suite for MDP rendering plugins. Release 7.1: - Don't show "Zip File Selection Dialog" if: - A ROM is opened in Full Screen. - cc_window.c: Add checkboxes to the "Input Devices" listbox for filtering. - Verify error handling in plugins. - [Win32] Disable the "Apply" button on the "General Options" window if nothing has been changed. - [GTK+] Consider setting the event box's background color to match the border color. - Investigate Gens Rerecording commits r250, r252. - Implement fullscreen and render selection fallbacks. - Notably, DirectDraw doesn't like it when selecting 960x720 or 1280x960 on some systems. - [GDI] FPS counter is 2x what it should be. - Convert the SH2 memory functions to read/write memory in 16-bit byteswapped format, similar to 68K. - This will allow use of the MD ROM buffer for SH2 functions, and save 4MB of memory. - Extend MD ROM buffer to 8 MB. (8 MB in MD mode only; 32X limited to 4 MB.) - mdZ80 using function pointer tables and pagetables for memory access. - Change GensUI to C-style linkage instead of a class. - DirectDraw 7 VDraw backend. - Hardware color conversion. (Always render in 15/16-bit color.) - Get border color drawing working in fullscreen when in 2x or higher. - Initial VDP debugging plugin. - "Cheat Finder" plugin. - Use Flag_Clr_Scr consistently. (Maybe rename it?) - Z80 RESET should force YM2612 to hold RESET. (i.e. don't accept writes when Z80 is in RESET) - Allow selecting renderers on the command line. (regression from m6) - Set a variable in Gens_StartupInfo_t? - [Win32] Trim pathnames for all files and directories located in the Gens directory. - [Win32] hq3x: Broken in some cases. (Check width division!) - Reports of slowdown on fglrx 9.10/8.660 (Ubuntu 9.10 beta) with an rv710 (RadeonHD 4350) [dmb in @retro] - Check with Ubuntu 8.04 and fglrx on rv530 (FireGL V5200) TODO for later: - [Win32] Improve DirectDraw border color drawing, especially when the window is a different aspect ratio than 4:3. - Re-add v5 32X savestate load support. - Rewrite all GSX savestate functions to use structs. - Implement proper TMSS support using the !CartCE register ($A14101, bit 0) - Force a wakeup after an SDL hotkey is activated. (input_sdl_events.cpp) - Reimplement "MINIMIZE" for fullscreen. - Allow disabling SegaCD and 32X in build to make it easier to port to other platforms. - Allow disabling all emulation code to test the UI on other platforms. - Update v_effects.cpp::T_veffect_pause_tint() for RGB Color Scaling. MDP TODO for later: - Add "Exclusive Mode" so a plugin can gain exclusive control. - Disables reset, close ROM, etc. - Game Genie: Add support for S68K, Z80, MSH2, and SSH2. - Add "Input Remapping", needed for movie plugins and netplay. - GL shader renderer infrastructure in MDP. (OpenEmu has an ARB shader-based hq4x renderer.) Big Features TODO: - libcdio - ZOMG - Reimplement the language system. - Fix the interpolated_scanline 16-bit color asm (non-mmx) renderer. High-Level TODO: - Move most global variables to global Settings struct - Port all Gens Rerecording changes - Add Qt4 UI - [MDP] Add VGM dumping support - Add more compression format support - Improve the Zip File Selection Dialog - SSG-EG: http://www.spritesmind.net/_GenDev/forum/viewtopic.php?p=5716#5716 - (possibly?) Use Carbon/Cocoa for menus on MacOS. - Add a simple OSD menu for Gens/GS SDL in fullscreen. - Maybe later, add a full OSD UI. (Will need to implement runtime UI switching in Gens/GS and MDP.) Low Priority: - Add MacOS X Aqua UI - Automatic 32X mode switching when a 32X register is written to. This is how Kega enables 32X mode. High-Level TODO: - Rework border color emulation to be in the MD renderer, not the blitter. - Reimplement OpenGL projection so it doesn't stretch on widescreen monitors. (Make it an option?) - [Win32] Add OpenGL renderer. - Combine common portions of the GTK+ and Win32 UIs. - Combine the two versions of Starscream. (It'll still output two asms, though.) - [Linux] Add a No GUI mode that runs in a plain SDL window. - [Linux] Add a configure option to disable the GTK+ interface. - Port MP3 support to LAME or some other MP3 library. - Automatically format SegaCD RAM cartridges. - [SDL] Figure out the minimum SDL version. - [GTK+] game_genie: If Enter is pressed in a textbox, select "Add Code", not "OK". - Pausing using Esc while in interlaced mode (Sonic 2 2P) causes the bottom half of the screen to screw up. - [Win32] Windowed VSync might be broken. - [Win32] Full Screen: Frame counter flickers. - [Win32] Frameskip doesn't work correctly. (It completely disregards timing.) - [ASPI] Only initialize when "Boot CD" is selected. (Also, close when SegaCD is closed.) - Check if mingw32 forces 8-byte alignment for doubles. (ym2612 struct) - J-Cart: http://spritesmind.net/_GenDev/forum/viewtopic.php?start=15&t=177 - [Linux] Mono sound is broken. Low-Level TODO: - Fix Illegal Address bug. Gens doesn't crash, but Kega and the actual MD do. (Possible: Make an option to crash on illegal address.) - CD audio fixes in Gens Rerecording r65, r66, etc. - http://code.google.com/p/gens-rerecording/source/detail?r=65 - [MDP] Overclocking! Add an option to overclock the emulated CPUs so Sonic 2 2P doesn't lag. - Proper support for 448 lines in interlaced mode. (Sonic 2 2P) - Z80 initialization bug: http://forums.sonicretro.org/index.php?showtopic=11192 - [32X] PWM regressions from the C port, started in m5.1. PWM is broken in BC Racer, but BC Racer doesn't work anyway. Miscellaneous: - Commit fe2426a72420177fd3e7e4c086a673ec7273a97c fixed performance problems in VMware. This commit allows processing messages in GensUI::sleep(), which technically *shouldn't* fix the problem in VMware since GensUI::sleep() isn't called when a game is running.