0.78u4 2004/01/13 [#160 - David Haywood] ---------------------------------------- Please continue testing, it is rather important during periods like this. MAME testers bugs fixed ------------------- mappy37b4gre mappy37b8gre phozon37b8gre motos054gre Phase 2 of Aaron's Updates [Aaron Giles] ---------------------------------------- - Changes: * CPUs with an implicit address shift (e.g., the TMS34010 shifts addresses right 3 bits; the TMS32031 shifts addresses left 2 bits) now automatically get that shift applied to addresses in their memory maps and in calls to install_memory_read/write_handler(). This eliminates many ugly macros in the memory maps. Affected CPU cores are the ADSP210x, CCPU, PIC16C5x, TMS3201x, TMS3202x, TMS32031, and TMS340x0. Note that the CPU cores themselves still need to pass shifted values to the core read/write routines. All drivers using these cores have had their icky macros and bitshifts removed. * Harvard architecture CPUs now have data memory fully implemented now. Affected CPUs are the ADSP210x, TMS3201x, TMS3202x, PIC16C5x, and CCPU. All cores have been modified to fully split program and data memory. All drivers using these cores now specify explicit program and data memory maps. This also gets rid of a ton of ugly macros used in memory maps. * The memory_set_bankhandler calls are now officially history. There were fewer than a dozen drivers using them, and they all have been converted over to using install_mem_read_handler instead where appropriate. This eliminates the last 8-bit-specific hack in the memory system. As a result, RAM reads and writes out of banked memory should be slightly faster on 8-bit CPUs because they are handled inline. * New dynamic memory allocation scheme. The previous method relied on parsing the read/write handlers. The new method simply looks at the top-level memory map after it has been populated, and allocates memory for any mapped 16k chunk. This will likely cause more memory to be allocated than before, but the process is less error prone. Also, checks are now in to make sure that the memory_region for the program address space is the minimum necessary to support non-sparse address spaces. * Fully integrated save/restore memory blocks. Before, the save/restore system had its own memory map walking routines. That's gone now. Instead, memory blocks are registered as they are allocated by the dynamic memory allocator. Note that this will likely cause save states to be bigger than they were before (and certainly, they will not be compatible), but disk space is cheap, live with it. * Address spaces are now determined dynamically based on whether a given CPU returns a non-zero value for the address bus width for a given space. * Fixed incorrect address bus widths on the I8039 CPU core. * Added a TMS32026 entry and reworked the handling of internal RAM to work in the new system. This means the Taito Air system is now back to its former state. * Fixed the memory handlers in gottlieb.c to use address space masking instead of mapping extra mirrored areas. Source changes: ---------------------- - Some ST-V alpha blending (see bakubaku playfield, mausuke playfield, shienryu clouds etc.) [Mariusz Wojcieszek]. - Huge Namco Mappy Era Systems Update [Nicola Salmoria]. - Most games merged into mappy.c, so the following files are no longer needed [David Haywood]: drivers/superpac.c vidhrdw/superpac.c machine/superpac.c drivers/grobda.c vidhrdw/grobda.c machine/grobda.c drivers/phozon.c vidhrdw/phozon.c machine/phozon.c machine/mappy.c - One new file: machine/namcoio.c. This implements the 56XX and 58XX I/O custom chips used by all the games. The I/O chips are now accurately simulated, fixing subtle nuances during normal operation and not-so-subtle ones in test mode; e.g. you can now scroll the grid in Mappy's test mode [David Haywood]. - Fixed and verified inputs and dip switches for all games [David Haywood]. - found and documented the Easter eggs in all games except 'Toy Pop' [David Haywood]. - fixed interrupt and sub cpu reset handling, which caused some games to report errors when entering test mode without resetting. - Added detailed memory maps where schematics allowed [David Haywood]. - All drivers converted to tilemaps [David Haywood]. - Cocktail mode in 'Phozon', and non-hack implementation in 'Gaplus' [David Haywood]. - Fixed priorities in superpac. With the previos code, ghost eyes had priority over everything else, even other sprites, giving wrong results when two ghosts overlapped [David Haywood]. - Round advance dip switch in 'Gaplus' available and working [David Haywood]. - Fixed a missing sound effect in 'Phozon' that nobody would have ever noticed [David Haywood]. - I've also included a revised warpwarp.c, converted to tilemaps and with the 'Warp Warp' easter egg documented [David Haywood]. - Some slight SH-2 speedups [Carlos Santillan]. - Improved sound in 'Miss Bubble 2' and 'Power Instinct' (bootleg set 2) [Quench]. - Discrete Sound in Sky Diver [Derrick Renaud]. - Attempted to Improve Birdie Try sprites [Pierpaolo Prazzoli]. - Fixed last minute compgolf bug in u3 [Pierpaolo Prazzoli]. - Dipswitch in cross Pang [Pierpaolo Prazzoli].