Aaron's To-Do List: Difference between revisions
From MAMEDEV Wiki
m (→Sound) |
mNo edit summary |
||
Line 1: | Line 1: | ||
Note that nothing here is a promise. This all just represents ideas in my head. Who knows if I'll get to it all! | Note that nothing here is a promise. This all just represents ideas in my head. Who knows if I'll get to it all! | ||
==Immediate Bugs== | |||
* (done: 0.112u2) <strike>add back font size reduction</strike> | * (done: 0.112u2) <strike>add back font size reduction</strike> | ||
* add warning/error about wacky performance counter results | * add warning/error about wacky performance counter results | ||
Line 7: | Line 7: | ||
* add 64-bit debugging code to force allocations above 4GB | * add 64-bit debugging code to force allocations above 4GB | ||
==Video== | |||
* game-specific crosshair bitmaps and sizes | * game-specific crosshair bitmaps and sizes | ||
* add support for separate visible versus blanking rects | * add support for separate visible versus blanking rects | ||
Line 18: | Line 18: | ||
* move throttling and frameskipping code into the core | * move throttling and frameskipping code into the core | ||
==Interrupts== | |||
* (done: 0.112u1) <strike>add asserts to ensure proper PULSE_LINE/HOLD_LINE usage</strike> | * (done: 0.112u1) <strike>add asserts to ensure proper PULSE_LINE/HOLD_LINE usage</strike> | ||
* add MDRV_SCANLINE interrupt generators | * add MDRV_SCANLINE interrupt generators | ||
Line 24: | Line 24: | ||
* add timed interrupt generator: cpunum_toggle_input_line_timed(cpu, input, time). This will ASSERT_LINE immediately and then CLEAR_LINE after the specified time. 'time' can be zero, which is equivalent to PULSE_LINE, though perhaps we should discourage such usage since it's not realistic. If you've asserted the line via this function, and another cpunum_assert_input_line_timed() call is made, it will override the previous CLEAR_LINE time with the new time. Note that this is not a proper wire-OR, so we could alternatively reschedule the CLEAR_LINE to the maximum of the new time and the previously pending time. | * add timed interrupt generator: cpunum_toggle_input_line_timed(cpu, input, time). This will ASSERT_LINE immediately and then CLEAR_LINE after the specified time. 'time' can be zero, which is equivalent to PULSE_LINE, though perhaps we should discourage such usage since it's not realistic. If you've asserted the line via this function, and another cpunum_assert_input_line_timed() call is made, it will override the previous CLEAR_LINE time with the new time. Note that this is not a proper wire-OR, so we could alternatively reschedule the CLEAR_LINE to the maximum of the new time and the previously pending time. | ||
==Sound== | |||
* (done: 0.112u4) <strike>fix all sound cores to be independent of Machine->sample_rate</strike> | * (done: 0.112u4) <strike>fix all sound cores to be independent of Machine->sample_rate</strike> | ||
* (done: 0.112u4) <strike>fix all custom sound generators to be independent of Machine->sample_rate</strike> | * (done: 0.112u4) <strike>fix all custom sound generators to be independent of Machine->sample_rate</strike> | ||
* (done: 0.112u3) <strike>remove OSD hack that allows changing of sample rates on the fly</strike> | * (done: 0.112u3) <strike>remove OSD hack that allows changing of sample rates on the fly</strike> | ||
==Graphics== | |||
* fix drawgfx/palette global palette-ness | * fix drawgfx/palette global palette-ness | ||
** certain formats should imply a palette | ** certain formats should imply a palette | ||
Line 39: | Line 39: | ||
** single step forward/back | ** single step forward/back | ||
==CPUs== | |||
* automatically respect CPUINFO_INT_CLOCK_DIVIDER | * automatically respect CPUINFO_INT_CLOCK_DIVIDER | ||
* finish work on 64-bit DRC engine | * finish work on 64-bit DRC engine | ||
Line 56: | Line 56: | ||
** global timekeeping | ** global timekeeping | ||
==Sources== | |||
* move cleanup tool into tools | * move cleanup tool into tools | ||
* add pngcrc tool to tools | * add pngcrc tool to tools | ||
Line 65: | Line 65: | ||
* (done: 0.112u1) <strike>make util directory with corefile.c and all other utilities with light dependencies</strike> | * (done: 0.112u1) <strike>make util directory with corefile.c and all other utilities with light dependencies</strike> | ||
==Outputs== | |||
* (done: 0.112u2 by Bob Seidel) <strike>add pause notifications</strike> | * (done: 0.112u2 by Bob Seidel) <strike>add pause notifications</strike> | ||
* add ability to get XML description of current game | * add ability to get XML description of current game | ||
* add lamp output to afterburner driver | * add lamp output to afterburner driver | ||
==Debugger== | |||
* clean up APIs | * clean up APIs | ||
* add timer window | * add timer window | ||
* add CHD viewer window | * add CHD viewer window | ||
==Driver cleanups/To do== | |||
* cliffhgr.c: | * cliffhgr.c: | ||
** add proper latching/buffering to ensure no dropouts | ** add proper latching/buffering to ensure no dropouts | ||
Line 84: | Line 84: | ||
* 3DO-based systems | * 3DO-based systems | ||
==Documentation== | |||
* write description for how to compute crosshair parameters | * write description for how to compute crosshair parameters | ||
==mamedev.org== | |||
* source code browsing (a la MAWS but with proper spacing) [http://www.newty.de/lsc/index.html option 1] [http://www.andre-simon.de/ option 2] | * source code browsing (a la MAWS but with proper spacing) [http://www.newty.de/lsc/index.html option 1] [http://www.andre-simon.de/ option 2] | ||
==Other Stuff== | |||
* add regression testing tools to the tools directory | * add regression testing tools to the tools directory | ||
** add png diffing tool | ** add png diffing tool | ||
* look into inpout32.dll for hooking up ZVG to WinMAME | * look into inpout32.dll for hooking up ZVG to WinMAME |
Revision as of 01:32, 1 March 2007
Note that nothing here is a promise. This all just represents ideas in my head. Who knows if I'll get to it all!
Immediate Bugs
- (done: 0.112u2)
add back font size reduction - add warning/error about wacky performance counter results
- identify and fix up 64-bit specific errors
- add 64-bit debugging code to force allocations above 4GB
Video
- game-specific crosshair bitmaps and sizes
- add support for separate visible versus blanking rects
- font improvements:
- built-in font that is smaller, proportional
- good unicode font
- (done: 0.112u1)
change UI logic to allow for minimum font sizes
- change some page-flipping drivers to return UPDATE_HAS_NOT_CHANGED if no front buffer access and no page flip since last frame
- add code to not throttle if the video doesn't change? (maybe only for 1 frame)
- move throttling and frameskipping code into the core
Interrupts
- (done: 0.112u1)
add asserts to ensure proper PULSE_LINE/HOLD_LINE usage - add MDRV_SCANLINE interrupt generators
- change MDRV_CPU_VBLANK_INT to specify a screen number
- add timed interrupt generator: cpunum_toggle_input_line_timed(cpu, input, time). This will ASSERT_LINE immediately and then CLEAR_LINE after the specified time. 'time' can be zero, which is equivalent to PULSE_LINE, though perhaps we should discourage such usage since it's not realistic. If you've asserted the line via this function, and another cpunum_assert_input_line_timed() call is made, it will override the previous CLEAR_LINE time with the new time. Note that this is not a proper wire-OR, so we could alternatively reschedule the CLEAR_LINE to the maximum of the new time and the previously pending time.
Sound
- (done: 0.112u4)
fix all sound cores to be independent of Machine->sample_rate - (done: 0.112u4)
fix all custom sound generators to be independent of Machine->sample_rate - (done: 0.112u3)
remove OSD hack that allows changing of sample rates on the fly
Graphics
- fix drawgfx/palette global palette-ness
- certain formats should imply a palette
- palettes should be independent objects
- each palette can have multiple clients
- each client can request a list of changes, and clear out flags
- add laserdisc video viewer in F4 menu if A/V CHD is attached
- support straight playback with frame info
- single step forward/back
CPUs
- automatically respect CPUINFO_INT_CLOCK_DIVIDER
- finish work on 64-bit DRC engine
- write 64-bit MIPS3 DRC
- investigate and fix TMS32031 calculation bug
- optimize hyperstone core
- move video timing crap out of cpuexec.c and into video.c
- replace cpuexec.c with more generic schedule.c:
- clients register with a callback that receives a param and a mame_time for execution
- timer is the first client
- can specify maximum period (default is 1 second?)
- execution is round-robin
- anybody can call schedule_resync() to resynchronize execution with items below
- suspend/resume functionality
- time accounting
- global timekeeping
Sources
- move cleanup tool into tools
- add pngcrc tool to tools
- (done: 0.112u3)
add laserdisc VANC extraction and generation tool to tools - move fronthlp.c into common code
- push more options into the code to reduce OSD burden
- (done: 0.112u1)
break core fileio.c into fileio.c and corefile.c - (done: 0.112u1)
make util directory with corefile.c and all other utilities with light dependencies
Outputs
- (done: 0.112u2 by Bob Seidel)
add pause notifications - add ability to get XML description of current game
- add lamp output to afterburner driver
Debugger
- clean up APIs
- add timer window
- add CHD viewer window
Driver cleanups/To do
- cliffhgr.c:
- add proper latching/buffering to ensure no dropouts
- fix 9928a emulation to match screenshot
- astrocde.c
- vicdual.c
- Cubo CD32 (Amiga AGA-based)
- 3DO-based systems
Documentation
- write description for how to compute crosshair parameters
mamedev.org
Other Stuff
- add regression testing tools to the tools directory
- add png diffing tool
- look into inpout32.dll for hooking up ZVG to WinMAME