diff options
| author | 2008-09-18 15:17:42 +0000 | |
|---|---|---|
| committer | 2008-09-18 15:17:42 +0000 | |
| commit | 1eb3c2d964342aef09a08d854bdab6716a6792bd (patch) | |
| tree | ac364ed9466a0556e178770d87855ed21ce113ea /src/emu/debug | |
| parent | 8e4ed692473ee31f5fdeee460526357ee4440392 (diff) | |
Changed requirements for laserdisc CHDs to require a new chunk of
metadata with pre-decoded frame information. Modified chdman to
automatically produce this for CHDs that are of the appropriate
parameters. To fix up existing CHDs, use chdman -fixavdata on the
CHD.
Modified the laserdisc core to leverage the pre-decoded frame
metadata, which is now required. This improves seek times when
searching and allows the player-specific emulation access to the
VBI data as soon as it would really be available. Changed update
callback timing to fire just before the first line of VBI data
would be read; at that point, the frame selection is assumed to
be committed.
Converted PR-8210 emulation over to using the actual MCU from the
laserdisc player. This MCU controls low-level functions such as
slider position and laser on/off, and receives decoded vertical
blanking data in order to make decisions. Removed old HLE behavior.
Note that the overlay text is displayed via the UI; this is
temporary and will be fixed shortly.
Converted Simutrek-hacked laserdisc emulation to using the actual
MCU from the game, which in turn hands off commands to the PR-8210
MCU. This is still not 100% but is pretty close at this point and
achieves the correct behaviors in most cases.
Fixed Cube Quest overlay scaling to cover the whole screen.
Changed laserdisc video parameters to position the screen area at
the bottom rather than the top, since this corresponds more closely
to standard line numbering.
Extended the vbiparse code to support pack/unpack, and to more
fully document all the meanings of the VBI codes.
Updated ldplayer to support slow/fast forward movement, frame/chapter
display, and separate controls for scanning/stepping.
Added new built-in variable "frame" to the debugger.
Fixed device-based ROM loading to support loading ROMs from the
game's ZIP as well.
Diffstat (limited to 'src/emu/debug')
| -rw-r--r-- | src/emu/debug/debugcpu.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/emu/debug/debugcpu.c b/src/emu/debug/debugcpu.c index d164e2ac0de..89f778df3c9 100644 --- a/src/emu/debug/debugcpu.c +++ b/src/emu/debug/debugcpu.c @@ -120,6 +120,7 @@ static UINT64 get_tempvar(void *ref); static UINT64 get_logunmap(void *ref); static UINT64 get_beamx(void *ref); static UINT64 get_beamy(void *ref); +static UINT64 get_frame(void *ref); static void set_tempvar(void *ref, UINT64 value); static void set_logunmap(void *ref, UINT64 value); static UINT64 get_current_pc(void *ref); @@ -200,6 +201,7 @@ void debug_cpu_init(running_machine *machine) symtable_add_register(global_symtable, "logunmapi", (void *)ADDRESS_SPACE_IO, get_logunmap, set_logunmap); symtable_add_register(global_symtable, "beamx", NULL, get_beamx, NULL); symtable_add_register(global_symtable, "beamy", NULL, get_beamy, NULL); + symtable_add_register(global_symtable, "frame", NULL, get_frame, NULL); /* add the temporary variables to the global symbol table */ for (regnum = 0; regnum < NUM_TEMP_VARIABLES; regnum++) @@ -2816,6 +2818,22 @@ static UINT64 get_beamy(void *ref) /*------------------------------------------------- + get_frame - get current frame number +-------------------------------------------------*/ + +static UINT64 get_frame(void *ref) +{ + UINT64 ret = 0; + const device_config *screen = device_list_find_by_index(Machine->config->devicelist, VIDEO_SCREEN, 0); + + if (screen != NULL) + ret = video_screen_get_frame_number(screen); + + return ret; +} + + +/*------------------------------------------------- set_logunmap - setter callback for the logumap symbols -------------------------------------------------*/ |
