-[no]exit_after_playback (default=no)
-[no]record_input (default=no)
Added new UI shortcut to save current timecode (default F12)
Translated variable names and comments to english language
Fixes the issue where, if the save state button was bound to something
that was a legal save state input, it would occasionally immediately
save the state onto the same button as "save state" input itself was
bound.
Before this change, if you try to save state to a bound which already
does something as a UI button, it will save state there and then
immediately execute the bound action (sometimes it would not happen).
So, if you have state to P, with default button it would pause the game
immediately after saving state (except sometimes it would not).
This feature is enabled when executing 'mame driver software'. After the specified software is found in the software list and attached to an appropriate image device, the software part's feature list is examined for any feature whose name is that of a slot device with _default appended. The feature's value field becomes the slot's default option, which overrides any driver-specified default and can be overridden by user-specified options.
No software lists have been updated to use this feature at the moment.
- Add screen_device::has_palette()
- Require device_gfx_interface::gfx() and palette() to access members
- Getters for atari_vad_device return devices as references, not pointers
- strprintf is unaltered, but strformat now takes one fewer argument
- state_string_export still fills a buffer, but has been made const
- get_default_card_software now takes no arguments but returns a string
- replace beam width by beam min. and beam max. width, this makes it
possible to create a linear dynamic beam width by the amount of
intensity of the beam
- added beam intensity weight, this adds an exponential factor to the
dynamic beam width (values greater than 0 will push larger intensities
more than smaller intensities)
- fixed displayed ratio of vector points (zero-length lines)
m_. Rewrote code accessing members to use seconds() and attoseconds().
The changes were triggered by a test how gcc __int128_t would perform as
the internal representation. This test revealed that the current
implementation is still faster. (nw)
this better fits the drivers from MESS (which have always illogically used the GAME_ flags despite not being games) and also fits fine with arcade machines.
a CHD from the internal UI. [Fabio Priuli]
out of whatsnew: this is the correct fix which replaces the hacky workaround that I had submitted earlier today...
This commit fixes an infinite loop in draw_text_full(),
happening when there is not enough space to draw even a single
a char before trying to word-wrap.
Signed-off-by: Luca Bruno <lucab@debian.org>
Do not assume ui-container aspect when drawing on other containers.
This fixes LUA draw_text() in multi-screens games, where the font
aspect for each screen is wrongly computed on the aggregated target.
Signed-off-by: Luca Bruno <lucab@debian.org>
the ordering is still not optimal, imho, but at least if you launch SMS
with a lphaser and a paddle you don't get anymore their input mixed
in the menu. I will probably get back to this after next release.
missing files. [Fabio Priuli]
ui: when launching systems with mandatory carts, either from
command line or from the game selector, prompt the user with
the file manager menu so that he can mount a game where
needed, instead of killing emulation with an error. [Fabio Priuli]
out of whatsnew: it is now finally possible to launch nes and
snes and a2600 (and a few more) from the internal system
selector! also MESS doesn't error out anymore if you launch
such systems with no carts mounted from command line.
in short: emulation finally behaves as users typically expect!
create their sub-options. [Fabio Priuli]
out of whatsnew: to see the bug, try to manually set from the UI "com" in a PC ISA port or "multitap" in
the SMS driver in an old build, then reset (to apply changes) and re-enter the Slot Options menu just
to see that the sub-options (the com serial ports and the multitap joypads) are not configurable because
the core was not "informed" of their addition. no bug was present if the options were set from command
line or from QMC2, so it was not so easy to spot the issue...
device option to see whether it is currently mounted or not, and which
additional options depend on the selected value. [Fabio Priuli]
out of whatsnew: eventually, mounted devices should be configurable
from this menu.
device each media belongs to, so that if you change slot options
(e.g. adding further floppy drives to the emulated machine) you
can more easily spot which image is currently mounted in each
drive. Next, I plan to group media switches by owner, so to avoid
unnecessarily long menus. nw.
systems with many image devices. [Fabio Priuli]
out of whatsnew: compare old and new with a system like smssdisp
to see what the "fully display" refers to ;-)
device. also, group inputs in UI based on the device they are attached to and display
their tag only once instead of at each input. nw.
p.s. a clean build is likely needed
connected to a device different from the root_device. these are the dynamical
inputs and it might be useful to be able to catch them without performing a
string comparison of the device tag against the root_device one. [Fabio Priuli]
ui: start displaying the device tag close to input names for the dynamical inputs
which use PORT_DEVICE, so to avoid some weird quirks in the input menus
when slot devices are modified. [Fabio Priuli]
out of whatsnew: for testing purposes I have added PORT_DEVICE only to serial inputs (bus/rs232)
and SMS controllers (bus/smsctrl). if you want to test these with slot devices of a driver you are more
familiar with, just add the macro to the inputs you want to test.
note: it is under discussion whether PORT_DEVICE is in fact useful, or if a string comparison for each
input port is not too costly in terms of performances and thus enough for our scopes... we will see the
result of the discussion, but in any case it will remain possible to match the sets of inputs with their
device :)
multiple cassettes are available it is clear which drive controls are
displayed (see e.g. sol20 or pet2001 with "-tape2 c2n" slot). also
cleaned up some function names and better described the usage of
the devctrl.h base class. nw.
as to the File Manager, for consistency with other menus where an hard
reset is of help [Fabio Priuli]
ui: Fixed DipLocation drawing so that it remains on screen also when
highlighting switches without locations [Fabio Priuli]
out of whatsnew: while at it, I have also cleaned up a bit the handling of
"Reset" in the slot and bios menus...
Squashed commit of the following:
commit 040fd169bfd6845b33d3f86fd66afb4a632605c6
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date: Sun Nov 30 22:24:30 2014 +0000
Fix more typos in comments
commit 6121ae593008a574735427e047fdb7a16f4fa47f
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date: Sun Nov 30 22:20:37 2014 +0000
Fix more typos
Not all are in comments this time, but the vast majority are, and
the rest are in printed text. None are variable or constant names.
commit 84bc72573009bb46f5601f7257a7f7538f25cfc2
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date: Sun Nov 30 22:01:46 2014 +0000
Fix some typos
by default mapped to F2 and Shift+F2, respectively. This is not meant
as a replacement for the internal Tape Control menu, but it shall make
simpler the usage of game tapes in home computers. Notice that
REC/RWD/FWD have still to be pressed from the internal UI and that
if you mount multiple cassettes in a driver with multiple tape drives
only the first one will be controllable with these shortcuts. [Fabio Priuli]
The idea is that more complex actions (e.g. save you own BASIC program
or copy programs from a tape to another, etc.) should be performed through
the internal menu, while people just aiming to play games can use the
shortcut.
This commit requires probably a clean build.
-Updated LUA engine to run in machine_manager instead of being initialized per machine
-Added "-console" option so emulator can be started with LUA enabled console
-Update LUA to version 5.2.3
-Enabled SQLite3 to be compiled and added LUA module for it
-Moved midi handling in base class
-Cleaned running_machine of information of next machine
-All is cleaned after exiting of running_machine so debugger window is removed as well till next machine is started
-Made osdmini to compile
Moved graphics decoding to a new device interface class: device_gfx_interface.
The gfxdecode device is now a device that simply inherits this interface and
does nothing else. Devices that draw tilemaps or sprites using gfx_elements
should in time be updated to use this interface rather than connect to a
machine-global gfxdecode device. Updated toaplan_scu.c as an example (also
fixed off-by-one sprite alignment in twincobr and rallybik while I was at it).
gfx_elements are normally created in interface_post_start(), making it
possible to dynamically create or modify the graphics decoding info during
device_start() if you need to. On the other hand, if you need the gfx_elements
during device_start(), you can directly call decode_gfx() to create them early.
This interface also provides a standard and init-order-safe way to connect to
a palette device (similarly to how device_video_interface helps devices
connect to a screen), so it's handy for any device that does palettized
drawing even if it doesn't use gfx_elements. Updated k053250.c as an example
of this usage.
gfxdecode info entries can now reference shared RAM regions by tag as well as
ROM regions, automatically handle endianness, and have some other new
capabilities. Updated nemesis.c and pgm.c to showcase the new features.
Removed validate_display() (it was just a commented out stub already) since
its only function, checking that drivers don't have an ind16 screen without
a palette, is now done by screen_device::device_validity_check().
Updated obsolete comments about GFXLAYOUT_RAW (cps1.c hasn't used raw gfx for
years, and "to save memory" is no longer a good reason to use it)
gfxdecode devices must now be assigned a palette in MCFG. Added palette devices to several MESS drivers and devices to comply with this requirement. This palette is assigned as a default to the gfx_elements created by the device (but still not used for drawing yet, except in the UI graphics viewer)
Tilemaps now have a pointer to a palette device and use that palette for rgb32 drawing, rather than the palette of the screen or bitmap they are drawing to (since rgb32 screens don't have palettes now). When a tilemap is created, it takes its palette from the gfxdecode device it was created with, but you can change a tilemap's palette device with set_palette() at any time (doing this does not mark the tilemap dirty, since all tilemaps use indexed bitmaps internally)
[Aaron Giles]
* these classes now no longer take a resource_pool; everything is
managed globally -- this means that objects added to lists must be
allocated with global_alloc
* added new auto_pointer<> template which wraps a pointer and auto-frees
it upon destruction; it also defaults to NULL so it doesn't need to
be explicitly initialized
* moved tagged_list template to tagmap.h
Redo of the low-level memory tracking system: [Aaron Giles]
* moved low-level tracking out of emu\emualloc into lib\util\corealloc
so it can be shared among all components and used by core libraries
* global_alloc and friends no longer use a resource pool to track
allocations; turns out this was a wholly redundant system that wasted
a lot of memory
* removed global_resource_pool entirely
* added global_free_array to delete arrays allocated with
global_alloc_array
* added tracking of object versus array allocation; we will now error
if you use global_free on an array, or global_free_array on an object
Added new utility helper const_string_pool which can be used to
efficiently accumulate strings that are not intended to be modified.
Used by updated makelist and software list code. [Aaron Giles]
Updated png2bdc and makelist tools to not leak memory and use more modern
techniques (no more MAX_DRIVERS in makelist, for example). [Aaron Giles]
Deprecated auto_strdup and removed all uses by way of caller-managed
astrings and the software list rewrite. [Aaron Giles]
Rewrote software list management: [Aaron Giles]
* removed the notion of a software_list that is separate from a
software_list_device; they are one and the same now
* moved several functions into device_image_interface since they really
didn't belong in the core software list class
* lots of simplification as a result of the above changes
Additional notes (no whatsnew):
Moved definition of FPTR to osdcomm.h.
Some changes happened in the OSD code to fix issues, especially regarding
freeing arrays. SDL folks may need to fix up some of these.
The following devices still are using tokens and should be modernized
(I found them because they kept their token as void * and tried to
delete it, which you can't):
namco_52xx_device (mame/audio/namco52.c)
namco_54xx_device (mame/audio/namco54.c)
namco_06xx_device (mame/machine/namco06.c)
namco_50xx_device (mame/machine/namco50.c)
namco_51xx_device (mame/machine/namco51.c)
namco_53xx_device (mame/machine/namco53.c)
voodoo_device (emu/video/voodoo.c)
mos6581_device (emu/sound/mos6581.c)
aica_device (emu/sound/aica.c)
scsp_device (emu/sound/scsp.c)
dmadac_sound_device (emu/sound/dmadac.c)
s3c2440_device (emu/machine/s3c2440.c)
wd1770_device (emu/machine/wd17xx.c)
latch8_device (emu/machine/latch8.c)
duart68681_device (emu/machine/68681.c)
s3c2400_device (emu/machine/s3c2400.c)
s3c2410_device (emu/machine/s3c2410.c)
strataflash_device (mess/machine/strata.c)
hd63450_device (mess/machine/hd63450.c)
tap_990_device (mess/machine/ti99/990_tap.c)
omti8621_device (mess/machine/omti8621.c)
vdt911_device (mess/video/911_vdt.c)
apollo_graphics_15i (mess/video/apollo.c)
asr733_device (mess/video/733_asr.c)
as follows:
MAKE_RGB(r,g,b) == rgb_t(r,g,b)
MAKE_ARGB(a,r,g,b) == rgb_t(a,r,g,b)
RGB_ALPHA(data) == data.a()
RGB_RED(data) == data.r()
RGB_GREEN(data) == data.g()
RGB_BLUE(data) == data.b()
RGB_BLACK == rgb_t::black
RGB_WHITE == rgb_t::white
Implicit conversions to/from UINT32 are built in as well as simple
addition, subtraction, and scaling (with clamping).
As a result of being a class, some stricter typing was needed in
a few places but overall not too much.
Updated all devices and drivers for using it.
out of whatsnew:
Note that it is made to work same as before, in some cases it can be more
logic to move gfxdevice into subdevice itself then to keep it in main driver.
UPC-A, EAN-13 and EAN-8 format, stores them in both byte format and in pixel
format; it is up to the driver to implement the correct transfer protocol. [Fabio Priuli]
Added UI menu to enter barcodes via keyboard. It only gets activated if the running
machine has a barcode device. [Fabio Priuli]
out of whatsnew: The latter change was coordinated with Nathan, so it shall not
create problems with his UI reorganization ;)