| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed an annoying inconsistency between memory_share and memory_region:
the width() method of the former returned the width in bits (8, 16, 32 or 64)
while the width() method of the latter returned the width in bytes
(1, 2, 4 or 8). Now both classes have a bitwidth() method and a bytewidth()
method. Updated all callers to use whichever one was more appropriate.
Removed the implicit-cast-to-any-integer-pointer ability of memory_regions,
which was rather unsafe (if you weren't careful with your * operators and
casts it was easy to accidentally get a pointer to the memory_region object
itself instead of to the data, with no warning from the compiler... or at
least I kept doing it) Updated all devices and drivers that were accessing
regions that way to use a region_ptr_finder when possible, and otherwise to
call base() explicitly.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
except it finds a ROM region instead of a memory share.
Unlike the old memory_region_finder, these can be accessed without
any overhead (since it's a pointer directly to the data and not
to the memory_region object), can be whatever data type you want
(no casting needed) and are strictly type-checked--if you have a
required_rom_ptr<UINT32> the region has to be a ROM_REGION32
(or an implicitly 32-bit region due to belonging to a CPU) or
the finder won't find it and will tell you why.
Basically, rom_ptr_finders are strictly better than
memory_region_finders and all drivers using the latter should be
converted over. I've done megasys1.c and twin16.c as examples.
megasys1: Use a device address map for the peekaboo oki instead
of memcpy().
twin16: Convert the scrolling layers to tilemaps (the fixed text
layer was already one). Miscellaneous cleanups/modernizations.
(nw)
Notice that rom_ptr_finder has a length() method which returns the
length in whatever size unit the pointer is, instead of a bytes()
method. Yes, I'm going to convert shared_ptr_finder to match, since
this way makes a lot more sense (in particular, mask() is useless
for shared_ptrs that are anything other than INT8/UINT8)
|
| |
|
|
|
|
|
|
| |
Moved delegates into /src/lib/util to enable usage of delegates in other project parts
Moved mame_printf_* calls into /src/osd/osdcore.c and renamed them to osd_printf_*
Changed mess.mak to display compilation of ymmu100.ppm nicely
|
| | |
|
| |
|
|
|
|
|
| |
[Miodrag Milanovic]
and similar device finders to any device, and also created ability to
set tag inside static configuration of device so you can reference it in
driver machine configuration
|
| |
|
|
| |
to new license tagged form.
|
|
|
Tilemap system: numerous changes:
* Moved remaining legacy macros and typedefs to tilelgcy.h. This revealed
a few drivers mixing and matching modern & legcy, which have now been
fixed.
* Changed get info callback signature to no longer pass the user_data
pointer, but instead pass a reference to the tilemap object itself.
Updated those few drivers using user_data to pull it out of the
tilemap object with the new user_data() getter method.
* Changed get info and mapping callbacks to be device_delegates so that
they can be described at config time.
* Added tilemap_memory object that is used internally for reading/
writing to memory that backs a tilemap. This object is used to track
a memory pointer that backs tilemap memory, and also is designed to
transparently handle all bus width and endianness associated with
reading and writing data in a tilemap.
* Incorporated two tilemap_memory objects (basemem and extmem) into the
tilemap object and added accessors to them, as well as read/write
handlers for reading/writing to entries stored in the memory. This
means that tilemap get info callbacks can now easily read data out of
the tilemap in a generic way.
* Rejiggered the initialization sequence for tilemap objects so that
the tilemap_manager is not required to be present at instantiation.
* Created a new tilemap_device, which can be used to declare a tilemap
in the machine config, and which also is a tilemap object itself.
The tilemap device will look for shared memory regions called
"<tag>" and "<tag>_ext" and automatically plug them into the tilemap.
The device also provides write handlers that can be used to write
to the tilemap memory and mark tiles dirty, saving the need for each
driver to write their own.
Device system: moved required/optional device finders to a new header
devfind.h.
Atari drivers: removed all playfield and alpha memory and tilemap
variables, apart from those needed by atarivc-using games (this will
become a device in a future update). Updated all Atari 16-bit drivers to
use the new tilemap_device instead, which provides all the needed
functionality in a more generic way.
|