summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--docs/source/commandline/commandline-all.rst37
-rw-r--r--docs/source/conf.py4
-rw-r--r--docs/source/debugger/memory.rst8
-rw-r--r--docs/source/techspecs/layout_files.rst36
-rw-r--r--src/emu/emuopts.cpp2
-rw-r--r--src/mame/dataeast/deco32.h3
-rw-r--r--src/mame/dataeast/deco32_v.cpp18
-rw-r--r--src/mame/novag/cnchess.cpp3
-rw-r--r--src/mame/novag/gomoku.cpp3
-rw-r--r--src/mame/seibu/sei25x_rise1x_spr.cpp9
-rw-r--r--src/mame/seibu/sei25x_rise1x_spr.h6
-rw-r--r--src/mame/skeleton/unkcrane8085.cpp1
12 files changed, 71 insertions, 59 deletions
diff --git a/docs/source/commandline/commandline-all.rst b/docs/source/commandline/commandline-all.rst
index a70593612d4..ac3220aeb16 100644
--- a/docs/source/commandline/commandline-all.rst
+++ b/docs/source/commandline/commandline-all.rst
@@ -2621,18 +2621,21 @@ Core Artwork Options
**-artwork_font** / **-artfont** *<fontname>*
- Specifies the name of a font file to use for artwork text elements. The
- details are the same as the :ref:`uifont option <mame-commandline-uifont>`.
+ Specifies the font to use for artwork text elements. The same
+ considerations apply as for the UI font (see the :ref:`uifont option
+ <mame-commandline-uifont>`).
- Be aware that picking a very wide font such as ``Courier New`` can result
- in text alignment issues with artwork that was designed with a smaller font
- such as ``Tahoma`` (the default on Windows).
+ Note that artwork is typically designed around a sans serif font with tight
+ character spacing (e.g. **Tahoma**, which is the default on Windows). Using
+ a font with wider character spacing or a fixed pitch font (e.g. a Courier
+ family font) may result in text positioning issues.
Example:
.. code-block:: bash
mame starwbc -artwork_font "Comic Sans MS"
+
.. _mame-commandline-screenoptions:
Core Screen Options
@@ -4018,15 +4021,21 @@ Core Misc Options
**-uifont** *<fontname>*
- Specifies the name of a font file to use for the UI font. If this font
- cannot be found or cannot be loaded, the system will fall back to its
- built-in UI font. On some platforms *fontname* can be a system font name
- instead of a BDF font file.
-
- Note that not all fonts support Non Latin script or special glyphs like
- arrow symbols, and will show squares or questionmarks instead.
-
- The default is ``default`` (use the OSD-determined default font).
+ Specifies the font to use for UI text. If this font cannot be found or
+ cannot be loaded, MAME will fall back to its built-in UI font. Supported
+ fonts depend on the platform and selected UI font provider module. In some
+ configurations, *fontname* can be a system font name or a path to a TrueType
+ font file. In all cases, a path to a BDF (Adobe Glyph Bitmap Distribution
+ Format) font file can be used.
+
+ Note that characters available depend on the font, and many fonts do not
+ cover multiple writing systems and languages, or symbols like arrows.
+ Depending on the configuration, MAME may not automatically substitute
+ characters from other fonts. Characters that are not available may be
+ replaced with substitute glyphs (often rectangles).
+
+ The default is ``default`` (use the default font determined by the UI font
+ provider module).
Example:
.. code-block:: bash
diff --git a/docs/source/conf.py b/docs/source/conf.py
index b77ea71efe5..0a56be81d7c 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -63,9 +63,9 @@ copyright = u'1997-2025, MAMEdev and contributors'
# built documents.
#
# The short X.Y version.
-version = '0.283'
+version = '0.284'
# The full version, including alpha/beta/rc tags.
-release = '0.283'
+release = '0.284'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docs/source/debugger/memory.rst b/docs/source/debugger/memory.rst
index 0edc49031eb..4828dd41387 100644
--- a/docs/source/debugger/memory.rst
+++ b/docs/source/debugger/memory.rst
@@ -209,10 +209,10 @@ By default, the data will be interpreted as a series of NUL-terminated
(ASCIIZ) strings, the dump will have one string per line, and C-style
escapes sequences will be used for bytes that do not represent printable
ASCII characters. The optional **<term>** parameter can be used to
-specify a different string terminator character. If **<term>** equals
--0x80, the terminator is not a separate byte but 0x80 added to the last
-character of each string.
-
+specify a different string terminator character. If **<term>** is equal
+to -0x80, strings will be treated as terminating after any byte with the
+most significant bit set, and the most significant bit will be ignored
+when printing characters.
Back to :ref:`debugger-memory-list`
diff --git a/docs/source/techspecs/layout_files.rst b/docs/source/techspecs/layout_files.rst
index ca95c081042..023a0bbb265 100644
--- a/docs/source/techspecs/layout_files.rst
+++ b/docs/source/techspecs/layout_files.rst
@@ -509,13 +509,13 @@ image
layout file. Image file formats are detected by examining the content of
the files, file name extensions are ignored.
text
- Draws text in the specified colour, using the font provided by the
- artwork_font option. The text to draw must be supplied using a ``string``
- attribute. An ``align`` attribute may be supplied to set text alignment.
- If present, the ``align`` attribute must be an integer, where 0 (zero)
- means centred, 1 (one) means left-aligned, 2 (two) means right-aligned, and
- 3 (three) means that the text will be stretched horizontally to fill its
- bounds. If the ``align`` attribute is absent, the text will be centred.
+ Draws text in the specified colour, using the artwork font. The text to
+ draw must be supplied using a ``string`` attribute. An ``align`` attribute
+ may be supplied to set text alignment. If present, the ``align`` attribute
+ must be an integer, where 0 (zero) means centred, 1 (one) means
+ left-aligned, 2 (two) means right-aligned, and 3 (three) means that the text
+ will be stretched horizontally to fill its bounds. If the ``align``
+ attribute is absent, the text will be centred.
led7seg
Draws a standard seven-segment (plus decimal point) digital LED/fluorescent
display in the specified colour. The low eight bits of the element’s state
@@ -557,17 +557,17 @@ led16segsc
segments are drawn at low intensity (0x20/0xff).
simplecounter
Displays the numeric value of the element’s state in the specified colour,
- using the font provided by the artwork_font option. The value is formatted
- in decimal notation. A ``digits`` attribute may be supplied to specify the
- minimum number of digits to display. If present, the ``digits`` attribute
- must be a positive integer; if absent, a minimum of two digits will be
- displayed. A ``maxstate`` attribute may be supplied to specify the maximum
- state value to display. If present, the ``maxstate`` attribute must be a
- non-negative number; if absent it defaults to 999. An ``align`` attribute
- may be supplied to set text alignment. If present, the ``align`` attribute
- must be an integer, where 0 (zero) means centred, 1 (one) means left-aligned,
- and 3 (three) means that the text will be stretched horizontally to fill its
- bounds. If the ``align`` attribute is absent, the text will be centred.
+ using the artowrk fong. The value is formatted in decimal notation. A
+ ``digits`` attribute may be supplied to specify the minimum number of digits
+ to display. If present, the ``digits`` attribute must be a positive
+ integer; if absent, a minimum of two digits will be displayed. A
+ ``maxstate`` attribute may be supplied to specify the maximum state value to
+ display. If present, the ``maxstate`` attribute must be a non-negative
+ number; if absent it defaults to 999. An ``align`` attribute may be
+ supplied to set text alignment. If present, the ``align`` attribute must be
+ an integer, where 0 (zero) means centred, 1 (one) means left-aligned, and 3
+ (three) means that the text will be stretched horizontally to fill its
+ bounds. If the ``align`` attribute is absent, the text will be centred.
An example element that draws a static left-aligned text string:
diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp
index bfc8087c459..27067aaebca 100644
--- a/src/emu/emuopts.cpp
+++ b/src/emu/emuopts.cpp
@@ -204,7 +204,7 @@ const options_entry emu_options::s_option_entries[] =
{ OPTION_BIOS, nullptr, core_options::option_type::STRING, "select the system BIOS to use" },
{ OPTION_CHEAT ";c", "0", core_options::option_type::BOOLEAN, "enable cheat subsystem" },
{ OPTION_SKIP_GAMEINFO, "0", core_options::option_type::BOOLEAN, "skip displaying the system information screen at startup" },
- { OPTION_UI_FONT, "default", core_options::option_type::STRING, "specify a font to use for the internal UI" },
+ { OPTION_UI_FONT, "default", core_options::option_type::STRING, "specify a font to use UI text" },
{ OPTION_UI, "cabinet", core_options::option_type::STRING, "type of UI (simple|cabinet)" },
{ OPTION_RAMSIZE ";ram", nullptr, core_options::option_type::STRING, "size of RAM (if supported by driver)" },
{ OPTION_CONFIRM_QUIT, "0", core_options::option_type::BOOLEAN, "ask for confirmation before exiting" },
diff --git a/src/mame/dataeast/deco32.h b/src/mame/dataeast/deco32.h
index ce435c8cd68..0fa769768c2 100644
--- a/src/mame/dataeast/deco32.h
+++ b/src/mame/dataeast/deco32.h
@@ -187,7 +187,7 @@ protected:
virtual void video_start() override ATTR_COLD;
required_device<deco_ace_device> m_deco_ace;
- std::unique_ptr<bitmap_ind16> m_tilemap_alpha_bitmap;
+ bitmap_ind16 m_tilemap_alpha_bitmap;
void tilemap_color_bank_w(u8 data);
void sprite1_color_bank_w(u8 data);
@@ -202,7 +202,6 @@ protected:
void nslasher_map(address_map &map) ATTR_COLD;
void mix_nslasher(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, gfx_element *gfx0, gfx_element *gfx1, int mixAlphaTilemap);
-
};
// tattass
diff --git a/src/mame/dataeast/deco32_v.cpp b/src/mame/dataeast/deco32_v.cpp
index dfac4a8963a..aac278d6ad4 100644
--- a/src/mame/dataeast/deco32_v.cpp
+++ b/src/mame/dataeast/deco32_v.cpp
@@ -121,7 +121,7 @@ void nslasher_state::video_start()
{
const int width = m_screen->width();
const int height = m_screen->height();
- m_tilemap_alpha_bitmap = std::make_unique<bitmap_ind16>(width, height);
+ m_tilemap_alpha_bitmap.allocate(width, height);
for (int chip = 0; chip < 2; chip++)
{
m_sprgen[chip]->alloc_sprite_bitmap();
@@ -332,7 +332,7 @@ void nslasher_state::mix_nslasher(screen_device &screen, bitmap_rgb32 &bitmap, c
{
const u16* sprite0 = &sprite0_mix_bitmap.pix(y);
const u16* sprite1 = &sprite1_mix_bitmap.pix(y);
- const u16* alphaTilemap = &m_tilemap_alpha_bitmap->pix(y);
+ const u16* alphaTilemap = &m_tilemap_alpha_bitmap.pix(y);
const u8* tilemapPri = &screen.priority().pix(y);
u32* destLine = &bitmap.pix(y);
@@ -485,7 +485,7 @@ u32 nslasher_state::screen_update_nslasher(screen_device &screen, bitmap_rgb32 &
m_sprgen[1]->draw_sprites(bitmap, cliprect, m_spriteram16_buffered[1].get(), 0x800);
/* Render alpha-blended tilemap to separate buffer for proper mixing */
- m_tilemap_alpha_bitmap->fill(0, cliprect);
+ m_tilemap_alpha_bitmap.fill(0, cliprect);
/* Draw playfields & sprites */
if (m_pri & 2)
@@ -500,7 +500,7 @@ u32 nslasher_state::screen_update_nslasher(screen_device &screen, bitmap_rgb32 &
{
m_deco_tilegen[0]->tilemap_2_draw(screen, bitmap, cliprect, 0, 2);
if (alphaTilemap)
- m_deco_tilegen[1]->tilemap_1_draw(screen, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
+ m_deco_tilegen[1]->tilemap_1_draw(screen, m_tilemap_alpha_bitmap, cliprect, 0, 4);
else
m_deco_tilegen[1]->tilemap_1_draw(screen, bitmap, cliprect, 0, 4);
}
@@ -508,7 +508,7 @@ u32 nslasher_state::screen_update_nslasher(screen_device &screen, bitmap_rgb32 &
{
m_deco_tilegen[1]->tilemap_1_draw(screen, bitmap, cliprect, 0, 2);
if (alphaTilemap)
- m_deco_tilegen[0]->tilemap_2_draw(screen, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
+ m_deco_tilegen[0]->tilemap_2_draw(screen, m_tilemap_alpha_bitmap, cliprect, 0, 4);
else
m_deco_tilegen[0]->tilemap_2_draw(screen, bitmap, cliprect, 0, 4);
}
@@ -536,7 +536,7 @@ void tattass_state::mix_tattass(screen_device &screen, bitmap_rgb32 &bitmap, con
{
const u16* sprite0 = &sprite0_mix_bitmap.pix(y);
const u16* sprite1 = &sprite1_mix_bitmap.pix(y);
- const u16* alphaTilemap = &m_tilemap_alpha_bitmap->pix(y);
+ const u16* alphaTilemap = &m_tilemap_alpha_bitmap.pix(y);
const u8* tilemapPri = &screen.priority().pix(y);
u32* destLine = &bitmap.pix(y);
@@ -687,7 +687,7 @@ u32 tattass_state::screen_update_tattass(screen_device &screen, bitmap_rgb32 &bi
m_sprgen[1]->draw_sprites(bitmap, cliprect, m_spriteram16_buffered[1].get(), 0x800);
/* Render alpha-blended tilemap to separate buffer for proper mixing */
- m_tilemap_alpha_bitmap->fill(0, cliprect);
+ m_tilemap_alpha_bitmap.fill(0, cliprect);
/* Draw playfields & sprites */
if (m_pri & 2)
@@ -702,7 +702,7 @@ u32 tattass_state::screen_update_tattass(screen_device &screen, bitmap_rgb32 &bi
{
m_deco_tilegen[0]->tilemap_2_draw(screen, bitmap, cliprect, 0, 2);
if (alphaTilemap)
- m_deco_tilegen[1]->tilemap_1_draw(screen, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
+ m_deco_tilegen[1]->tilemap_1_draw(screen, m_tilemap_alpha_bitmap, cliprect, 0, 4);
else
m_deco_tilegen[1]->tilemap_1_draw(screen, bitmap, cliprect, 0, 4);
}
@@ -710,7 +710,7 @@ u32 tattass_state::screen_update_tattass(screen_device &screen, bitmap_rgb32 &bi
{
m_deco_tilegen[1]->tilemap_1_draw(screen, bitmap, cliprect, 0, 2);
if (alphaTilemap)
- m_deco_tilegen[0]->tilemap_2_draw(screen, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
+ m_deco_tilegen[0]->tilemap_2_draw(screen, m_tilemap_alpha_bitmap, cliprect, 0, 4);
else
m_deco_tilegen[0]->tilemap_2_draw(screen, bitmap, cliprect, 0, 4);
}
diff --git a/src/mame/novag/cnchess.cpp b/src/mame/novag/cnchess.cpp
index 0f5f4bb9ea8..976b9c971d5 100644
--- a/src/mame/novag/cnchess.cpp
+++ b/src/mame/novag/cnchess.cpp
@@ -10,7 +10,8 @@ King) was distributed by Yorter Electronics for the local market. It's the same
hardware as model 866. The newer model 9300 is also presumed to be the same.
NOTE: If internal artwork Chinese text is not visible (either fontprovider or OS
-doesn't support font fallback), manually set the -artfont option to a CJK font.
+doesn't support character substitution), manually set the -artfont option to a
+CJK font.
Hardware notes:
- PCB label: 100054
diff --git a/src/mame/novag/gomoku.cpp b/src/mame/novag/gomoku.cpp
index 1bf5193f513..53409ca4926 100644
--- a/src/mame/novag/gomoku.cpp
+++ b/src/mame/novag/gomoku.cpp
@@ -12,7 +12,8 @@ doesn't count as a win).
For faster interface control in MAME, map the piece spawn inputs to your keyboard.
NOTE: If internal artwork Japanese text is not visible (either fontprovider or OS
-doesn't support font fallback), manually set the -artfont option to a CJK font.
+doesn't support character substitution), manually set the -artfont option to a CJK
+font.
Hardware notes:
- PCB label: 100015
diff --git a/src/mame/seibu/sei25x_rise1x_spr.cpp b/src/mame/seibu/sei25x_rise1x_spr.cpp
index b8ef9195ad9..3012c63d757 100644
--- a/src/mame/seibu/sei25x_rise1x_spr.cpp
+++ b/src/mame/seibu/sei25x_rise1x_spr.cpp
@@ -24,10 +24,11 @@
#include "emu.h"
#include "sei25x_rise1x_spr.h"
+
#include "screen.h"
-DEFINE_DEVICE_TYPE(SEI25X_RISE1X, sei25x_rise1x_device, "sei25x_rise1x", "Seibu Kaihatsu SEI251/SEI252/RISE10/RISE11 Sprite generator")
+DEFINE_DEVICE_TYPE(SEI25X_RISE1X, sei25x_rise1x_device, "sei25x_rise1x", "Seibu Kaihatsu SEI251/SEI252/RISE10/RISE11 sprite generator")
sei25x_rise1x_device::sei25x_rise1x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, type, tag, owner, clock)
@@ -87,7 +88,7 @@ Unmarked bits are unused/unknown.
*/
template <class T>
-void sei25x_rise1x_device::draw(screen_device &screen, T &bitmap, const rectangle cliprect, u16* spriteram, u16 size)
+void sei25x_rise1x_device::draw(screen_device &screen, T &bitmap, const rectangle cliprect, u16 *spriteram, u16 size)
{
if (m_sprite_bitmap.valid() && !m_pri_cb.isnull())
fatalerror("m_sprite_bitmap && m_pri_cb is invalid");
@@ -183,12 +184,12 @@ void sei25x_rise1x_device::draw(screen_device &screen, T &bitmap, const rectangl
}
}
-void sei25x_rise1x_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle cliprect, u16* spriteram, u16 size)
+void sei25x_rise1x_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle cliprect, u16 *spriteram, u16 size)
{
draw(screen, bitmap, cliprect, spriteram, size);
}
-void sei25x_rise1x_device::draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle cliprect, u16* spriteram, u16 size)
+void sei25x_rise1x_device::draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle cliprect, u16 *spriteram, u16 size)
{
draw(screen, bitmap, cliprect, spriteram, size);
}
diff --git a/src/mame/seibu/sei25x_rise1x_spr.h b/src/mame/seibu/sei25x_rise1x_spr.h
index 5eb96dbdade..25cea9611e8 100644
--- a/src/mame/seibu/sei25x_rise1x_spr.h
+++ b/src/mame/seibu/sei25x_rise1x_spr.h
@@ -31,8 +31,8 @@ public:
void set_pix_raw_shift(u32 raw_shift) { m_pix_raw_shift = raw_shift; }
void set_pri_raw_shift(u32 raw_shift) { m_pri_raw_shift = raw_shift; }
- void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle cliprect, u16* spriteram, u16 size);
- void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle cliprect, u16* spriteram, u16 size);
+ void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle cliprect, u16 *spriteram, u16 size);
+ void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle cliprect, u16 *spriteram, u16 size);
void alloc_sprite_bitmap();
bitmap_ind16 &get_sprite_temp_bitmap() { assert(m_sprite_bitmap.valid()); return m_sprite_bitmap; }
@@ -45,7 +45,7 @@ protected:
private:
template <class T>
- void draw(screen_device &screen, T &bitmap, const rectangle cliprect, u16* spriteram, u16 size);
+ void draw(screen_device &screen, T &bitmap, const rectangle cliprect, u16 *spriteram, u16 size);
pri_cb_delegate m_pri_cb;
gfxbank_cb_delegate m_gfxbank_cb;
diff --git a/src/mame/skeleton/unkcrane8085.cpp b/src/mame/skeleton/unkcrane8085.cpp
index 7cf90bb2782..ce3a223205c 100644
--- a/src/mame/skeleton/unkcrane8085.cpp
+++ b/src/mame/skeleton/unkcrane8085.cpp
@@ -4,6 +4,7 @@
/*
unknown crane game (supposedly)
PCB is only marked DC-1 and there are no strings in ROM
+QC sticker on solder side printed 検査印 and stamped 3.5.15 (15 May 1991, assuming Heisei date)
Components are:
- D8085AC CPU