* Unify code for copying PNG data into bitmap for MAME and pngcmp
* Fix upsampling of monochrome PNGs (need to splat across byte)
* Add support for greyscale+alpha
* Detect more unsupported conditions rather than just behaving badly
------------------------------------------------
Anpanman Pico Wakuwaku Pan Koujou (Jpn) [Team Europe, The Dumping Union]
Ett År med Nalle Puh (Swe) [Team Europe, The Dumping Union]
New not working software list additions
-----------------------------------------------------
Lejonkungen Äventyr (Swe) [Team Europe, The Dumping Union]
(nw) This is the path of least resistance, and I plan to fix it up
later, I just wanted to get it to actually work first. Decompression
and unfiltering is fully supported, at least for all the pixel formats
that previously worked. Expanding 1/2/4bpp to 8bpp should work
properly, too. Bitmap mapping for Adam7 is only implemented in
rendutil.cpp which is whate everything in MAME uses. The function in
png.cpp (used by pngcmp) has not been updated. At some point I'll unify
at least one of the functions in rendutil.cpp with the one in png.cpp
and we can go from three functions that need to do the mapping down to
two at the most.
- Correct the decryption of some V25 opcodes used in the EEPROM service routine
- Remove the ugly routine that hardcoded a region for each set
- Add and document a secret input that rewrites the EEPROM for any region
consolidate more logic, more code deduplication, fix gutters on dats
view, fix fallthrough from dats to save
there's some weirdness with shortcust for dats/export/favourite toggle
if they result in a character being typed
* category filter is now saved/restored if it's last used
* category filter can be used in composite custom filters
* category filter now provides UI rather than relying on options menu
* less confusing when no categories found
* also de-duplicated code for drawing category list
(nw) please test this everyone and let me know if there are reproducible
crashes or things that don't work right - I'm trying to make the
internal UI more consistent and stable
text, allow home/end to jump to beginning/end of filter list,
consolidate logic
(nw) A number of vestigial constants have been removed. Some hacky
input types that were just used as a trick to pass information between
menu functions are gone. MACHINE_NO_STANDALONE is a relic from when
drivers were used as arbitrary ROM containers, and in a world of
first-class devices this is no longer necessary.
There are a couple of issues here:
* Firstly, the determining factor for whether I64 or ll is needed as the
size qualifier doesn't depend entirely on whether you're using MSVC or
not, it depends on the the C runtime library. The msys64 C runtime
apes the Microsoft runtime and requires I64 as well, so a lot of files
where LLFORMAT had been copy/pasted wouldn't work right if you
depeneded on it anyway.
* Secondly, one of the major benefits of util::string_format,
util::stream_format and logerror in their current forms is that you
don't need size specifiers for integers at all (unless you're using
them to truncate a value, but in that case you're better off casting
the argument for clarity). If you do use them, logerror and friends
will accept both Microsoft- and SUS-style independently of the C
runtime.
So please everyone, don't go gratuitously throwing these around, and if
you must use them (e.g. for osd_printf_* functions), make sure your
conditionals are actually correct. Also, conisder using
util::string_format to do the formatting into a temporary string and
just feeding that to the output function so you can avoid the mess.