Aaron's To-Do List: Difference between revisions
From MAMEDEV Wiki
mNo edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
* add warning/error about wacky performance counter results | * add warning/error about wacky performance counter results | ||
* identify and fix up 64-bit specific errors | * identify and fix up 64-bit specific errors | ||
===Video=== | ===Video=== | ||
Line 12: | Line 11: | ||
** good unicode font | ** good unicode font | ||
** (done: 0.112u1) change UI logic to allow for minimum font sizes | ** (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) | |||
===Interrupts=== | ===Interrupts=== | ||
Line 29: | Line 30: | ||
** each palette can have multiple clients | ** each palette can have multiple clients | ||
** each client can request a list of changes, and clear out flags | ** 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=== | ===CPUs=== | ||
Line 35: | Line 39: | ||
* write 64-bit MIPS3 DRC | * write 64-bit MIPS3 DRC | ||
* investigate and fix TMS32031 calculation bug | * investigate and fix TMS32031 calculation bug | ||
* 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=== | ===Sources=== | ||
Line 52: | Line 66: | ||
===Driver cleanups/To do=== | ===Driver cleanups/To do=== | ||
* cliffhgr.c: | |||
** add proper latching/buffering to ensure no dropouts | |||
** fix 9928a emulation to match [https://giles.homeip.net/exchweb/bin/redir.asp?URL=http://www.sventech.com/~dereks/gallery2/main.php?g2_view=core:ShowItem%26g2_itemId=2499 screenshot] | |||
* astrocde.c | * astrocde.c | ||
* vicdual.c | * vicdual.c |
Revision as of 20:49, 12 February 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
- add warning/error about wacky performance counter results
- identify and fix up 64-bit specific errors
Video
- 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)
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
- fix all sound cores to be independent of Machine->sample_rate
- 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
- 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 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
- add pause notifications
- add ability to get XML description of current game
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
- source code browsing (a la MAWS but with proper spacing)