vamphalf.c: Added correct speedup for Toy Land Adventure. Demoted Mr.Kicker to not working again. There is a serious bug with the nvramhandling (possibly due to a core bug) which causes the game to breakentirely if you get a high score and it rewrites nvram. [Dave Haywood]

i386: Made a start at Virtual 8086 Mode. Not fully working yet,though. Fixed an issue where two address or operand size prefixeswould cancel each other out. [Barry Rodewald]

Optimized PGM video rendering for a speedup in some video heavy cases[David Haywood]

Reinstated the old KOV protection simulation given that the ARM stillhasn't been dumped [David Haywood]

arm7: some code reorganization, used a jump table for a small speedup[David Haywood]

i386: Fixed high bits in eflags register from being changed by POPF,and VM and IF flags from changing depending on privilege level. Fixedexception error codes in protected mode. Further work on virtual 8086mode. EMM386 will now load, but will still die a few seconds later.[Barry Rodewald]

Enabling load of multi part softlist items on all available device[Fabio Priuli]

Major bitmap-related changes throughout the system: [Aaron Giles]There are almost certainly some regressions lurking. Let me know ifsomething seems busted.Bitmaps are now strongly typed based on format. bitmap_t still existsas an abstract base class, but it is almost never used. Instead,format-specific bitmap classes are provided:bitmap_ind8 == 8bpp indexed bitmap_ind16 == 16bpp indexed bitmap_ind32== 32bpp indexed bitmap_ind64 == 64bpp indexed bitmap_rgb32 == 32bppRGB bitmap_argb32 == 32bpp ARGB bitmap_yuy16 == 16bpp YUYFor each format, a generic pix() method is provided which referencespixels of the correct type. The old pix8/pix16/pix32/ pix64 methodsstill exist in the short term, but the only one available is the onethat matches the bitmap's pixel size. Note also that the old RGB15format bitmaps are no longer supported at all.Converted model1, megadriv, and stv drivers away from the RGB15 formatbitmaps.New auto_bitmap_<type>_alloc() macros are provided for allocating theappropriate type of bitmap.Screen update functions now must specify the correct bitmap type astheir input parameters. For static update functions the SCREEN_UPDATEmacro is now replaced with SCREEN_UPDATE_RGB32 and SCREEN_UPDATE_IND16macros. All existing drivers have been updated to use the correctmacros.Screen update functions are now required for all screens; there is nolonger any default behavior of copying a "default" bitmap to thescreen (in fact the default bitmap has been deprecated). Use one ofthe following to specify your screen_update callback:MCFG_SCREEN_UPDATE_STATIC(name) - static functionsMCFG_SCREEN_UPDATE_DRIVER(class, func) - driver membersMCFG_SCREEN_UPDATE_DEVICE(tag, class, func) - device membersBecause the target bitmap format can now be deduced from the screenupdate function itself, the MCFG_SCREEN_FORMAT macro is no longernecessary, and has been removed. If you specify a screen updatecallback that takes a bitmap_ind16, then the screen will be configuredto use a 16bpp indexed bitmap, and if you specify a callback thattakes a bitmap_rgb32, then a 32bpp RGB bitmap will be provided.Extended the bitmap classes to support wrapping a subregion of anotherbitmap, and cleaner allocation/resetting. The preferred use of bitmapsnow is to define them directly in drivers/devices and use allocate()or wrap() to set them up, rather than allocating them viaauto_bitmap_*_alloc().Several common devices needed overhauls or changes as a result of theabove changes: * Reorganized the laserdisc base driver and all the laserdisc drivers as modern C++ devices, cleaning the code up considerably. Merged ldsound device into the laserdsc device since modern devices are flexible enough to handle it. * Reorganized the v9938 device as a modern C++ device. Removed v9938mod.c in favor of template functions in v9938.c directly. * Added independent ind16 and rgb32 callbacks for TMS340x0 devices. * All video devices are now hard-coded to either ind16 or rgb32 bitmaps. The most notable is the mc6845 which is rgb32, and required changes to a number of consumers. * Added screen_update methods to most video devices so they can be directly called via MCFG_SCREEN_UPDATE_DEVICE instead of creating tons of stub functions.Added new template device_delegate which wraps a regular delegate andincludes a string pointer to a device tag, which can be simplyresolved later. Converted the screen_update delegates to to be basedon this. Changed the mechanism by which screen formats are auto-deduced. Converted SCREEN_EOF to use these delegates as well, so nowthere is MCFG_SCREEN_EOF_STATIC/ DRIVER/DEVICE just likeMCFG_SCREEN_UPDATE.

Death to SCREEN_EOF, which was ambiguously called either at the startor end of VBLANK depending on the video flagVIDEO_UPDATE_AFTER_VBLANK. Replaced with SCREEN_VBLANK callbacks whichare called both at the start and end of VBLANK, so you can operateeither way, and be explicit about it. Updated all callers. Alsoupdated screen_device to use device timers and some other minorcleanups.

Beginning to implement page faults [Carl]

Created new testcpu driver that shows how to develop an empty testdriver that (ab)uses the core to single step a CPU executing arbitraryinstructions and capturing before/after state and tracking memory.Currently this driver is always compiled, but is not referenced inmame.lst. [Aaron Giles]

Cleanup of bitmap classes now that formats and bpp are dictatedstrictly by the type. Also added code to more aggressively align thebitmap base and rowbytes, and create a resize method which attempts tore-use existing memory rather than always reallocating. [Aaron Giles]

i386: Added I/O permissions. [Carl]

Added new method screen_device::register_screen_bitmap which allocatesa given bitmap to match the screen size and resizes it as appropriatewhen the screen size changes. Updated all the obvious spots in thecode where this could be leveraged. [Aaron Giles]Move allocate/resize methods in the bitmap classes down into bitmap_tbecause they no longer have any dependency on the bitmap format ortype.Ensured that the bitmap's palette remains set across a resize call (itis lost doing an allocate).