Hengband Application for macOS
Binaries | English screen shot | Japanese screen shot | Feedback | Source code | 3.0.0 Changes | 2.2.1.7 Changes | 1.6.2 Changes
Changes
- May 4, 2023. 2.2.1.7i includes the following changes:
- For the Mac frontend, disable sending commands from the command
menu and changing the tile set or wide tile mode when in an in-game
menu.
- For the Mac frontend, avoid file descriptor leaks on macOS 10.15
(Catalina) or later when sound is enabled.
- For the Mac frontend, change some Japanese labels in the menus.
Resolves https://github.com/backwardsEric/hengband/issues/30 .
- For the Mac frontend, cover F17 to F19 in pref-mac.prf. Resolves
https://github.com/backwardsEric/hengband/issues/25 .
- For the Mac frontend, add paranoia about a big cursor extending
beyond a terminal's bounds.
- For English, backport two changes from 3.0.0: avoid duplication
of the second letter for names generated by get_table_name() and
shift the "Actual" and "Current" labels two character to the right
on the third page of the character sheet.
- For the GCU frontend, backport changes from 3.0.0 to avoid
flickering with TERM_XTRA_CLEAR and to increase the maximum
number of terminals.
- Remove dependence on sys/timeb.h so compilation is possible on
OpenBSD 7.2.
- The executable was compiled on macOS 12.6.5 rather than 12.5.1.
If you encounter problems with versions of macOS different than
12.6.5, please let me know.
- September 19, 2022. 2.2.1.7h includes the following changes:
- Port change from Hengband 3.0.0 to avoid accessing before the
start of a buffer in plural_aux() and to more generally handle
plurals for nouns ending in a vowel followed by 'y'.
- Port change from Hengband 3.0.0 so English activation messages for
artifact lights like the Phial are clearer.
- Declare feat_door and ugbldg as extern to avoid duplicate
symbol errors in some environments (seen on Debian 11 with
gcc 10.2.1 and ld 2.35.2).
- For the GCU front end, port changes from Hengband 3.0.0 and
Angband 4.2.4: avoid assuming a maximum width of 80 columns, fix
flickering cursor, and change color handling (avoids white
backgrounds in lit areas and parts of the character screen and
stats panel when using the default colors on terminals with an
extended color range; by default, use custom colors on terminals
with extended colors for more accurate colors; to get the old
behavior of looking for the closest matches use, the -K option for
the GCU front end; reset the terminal's clearing color when the
first color in Hengband's color table is changed).
- Port changes from Hengband 3.0.0 for English messages.
- The executable was compiled on macOS 12.5.1 rather than 11.5.1.
If you encounter problems with versions of macOS prior to 12.5.1,
please let me know.
- August 30, 2021. 2.2.1.7g includes the following changes:
- Fix bug, Hengband for OS X Issue 19,
that a font, specified in the preferences but no longer available
on the system, would cause the application to hang.
- Port fix from preliminary 3.0.0 versions so messages from
*identify* aren't messed up by reordering the pack.
- In the display, round the median advance down, rather than up, for
a more compact horizontal layout with some fonts. Change the
default window layout to better match the default font settings and
to accommodate the smallest native screen size for currently
supported Retina Macs (2304 x 1440).
- Port relevant changes to English messages and descriptions from
preliminary 3.0.0 versions.
- Clean up the Mac-specific code a bit for more consistent handling
of Booleans, fewer compiler warnings, and to better match up with
what's in Angband's version of the Mac front end.
- Change the build system to avoid warnings with recent versions
of autoconf and to be more consistent with the distclean and
uninstall rules.
- The executable was compiled on macOS 11.5.1 rather than 10.15.7.
If you encounter problems with versions of macOS prior to 11.5.1,
please let me know.
- January 24, 2021. 2.2.1.7f includes the following changes:
- Include a binary with native support for x86_64 and arm systems.
I don't have access to an arm-based Mac so it's best to treat
running natively on an arm-based Mac as an experimental feature.
- For the Japanese version, fixed regression introduced in 2.2.1.7d:
incorrect internal sanity check led to some characters not being
rendered (most obviously in item names in the stores) or to some
characters not being cleared (seen when switching between screens
in the character sheet).
- For the Japanese version, fixed garbled characters for some spells
in the spell lists.
- No longer use Angband 4's versions of the graphical tiles.
Instead used Hengband's versions converted to PNG with transparency
added.
- For Japanese, no longer use Osaka as the default font since it
is not included with macOS Catalina by default. Instead, use
Hiragino Maru Gothic ProN.
- Don't call Term_activate() from drawRect(). That caused crashes
with Angband on some versions of macOS.
- Changed how the fallback preferences for the font name and size
are set so they'll properly influence the configuration for the
windows.
- Changed to avoid a compilation error with recent versions of
Xcode.
- Allow for the possibility that a rendered character requires
a surrogate pair when encoded as UTF-16.
- Fixed regression in the macOS interface: wasn't considering the
full GLYPH_COUNT glyphs in updateGlyphInfo().
- Use VERSION_NAME rather than an explicit "Hengband" in more places
in the macOS interface.
- In Term_pict_cocoa(), step through the passed-in arrays in
increments of the tile width scaling. Does not matter in the
current configuration where only one tile at a time is passed to
Term_pict_cocoa().
- Made some comment changes and code rearrangements in the macOS
code so it can be more easily be compared against the code in other
variants.
- The executable was compiled on macOS 10.15.7 rather than
10.15.5. If you encounter problems with versions of macOS prior
to 10.15 or with macOS 10.16, please let me know.
- July 2, 2020. 2.2.1.7e includes the following changes:
- Fixed bug: initialize displayed state of the "big tiles" setting
in the menu from the stored value rather than always setting it to
true.
- Configured so the writable game files are put in
~/Documents/Hengband-2.2.1
rather than
~/Documents/Hengband
. You may delete
~/Documents/Hengband
if you don't want to retain the
high scores file and previously saved games. If you want to carry
over the high scores file or previously saved games you could
- Rename
~/Documents/Hengband
to
~/Documents/Hengband-2.2.1
prior to running the new
version.
- Copy the contents of
~/Documents/Hengband/apex
to
~/Documents/Hengband-2.2.1/apex
and the contents of
~/Documents/Hengband/save
to
~/Documents/Hengband-2.2.1/save
after running the
new version.
- The executable was compiled on macOS 10.15.5 rather than
macOS 10.14.6. If you encounter problems with versions of
macOS prior to 10.15, please let me know.
- Made minor changes to English messages:
- The short description for the Trump realm wasn't cleared
properly on the birth screen.
- Changed English diary entries about gender and personality
selection so "gender" appears in the one for gender and
"personality" in the one about personality.
- Changed diary entry about realm selection to put "and" between
the realms if there are two and to pluralize "realm" as
appropriate.
- Corrected typo in a rumor.
- Dropped period in a knowledge menu item for consistency with
the rest of the menu.
- Changed to initialize the effective group ID and effective user
ID before calling init_angband(). Has no apparent effect with
Hengband 2.2.1.7 but is necessary for Hengband 1.6.2.
- March 28, 2020. 2.2.1.7d includes the following changes:
- Fixed regression: changing the font or tile set during character
generation in the macOS front end would cause a crash.
- For ticket 40204,
configured terminals other than the main one in the macOS
front end as non-floating panels so they have narrower title bars.
Has the side effect that those terminals will automatically hide
when one switches to another application.
- For ticket 40203,
added the dimensions, in rows and columns, to the title bar for
each terminal window shown in the macOS front end.
- For ticket 40060,
changed the kanji for the File menu's "New" entry in the Japanese
version of the macOS front end.
- For ticket 40202,
changed so the prompt to select new or open on the splash screen
for the macOS front end always has the same position relative
to the rest of the splash screen text regardless of the dimensions
of the window.
- For ticket 39940,
changed English diary entries to consistently use simple past
tense. Also omitted the subject in the diary entries when it was
"you". Made some changes in the entries to be more idiomatic.
- For the macOS front end, brought over changes from Angband
to improve the drawing speed.
- For the macOS front end, modified so user changes to a
window's width are in increments of the width of a column and
user changes to a window's height are in increments of the height
of a row.
- For the macOS front end, changed to round down when
calculating the number of columns for a given size so a font change
can leave blank space at the end of a row rather than a partially
obscured character.
- Changed readme_eng.txt to bring it up to date.
- Changed some English game messages to fix a typo on the first
birth screen and improve some the notifications about the player's
aura damaging monsters.
- For the Japanese version of the macOS front end, changed the
copyright string to match the line crediting Mr. Hoge from
news_j.txt.
- February 24, 2020. 2.2.1.7c includes the following changes:
- The new version now requires 10.8 or later since the application
makes use of "Base localization" for internalionalization.
- Changed the encoding of the keycode and option modifier in macro
triggers generated by the Cocoa interface in response to
keypresses. Removed direct mapping of some keys (cursor keys, help
function key, and delete function key) to the underlying command
set and instead pass those through the macro trigger mechanism.
Those changes allow the cursor keys to work in the editor for the
autopick settings and allow more modifiers (like shift for running)
to work with the numeric keypad. Added trigger names to match the
macro triggers generated by the Cocoa interface in pref-mac.prf.
If you had set up custom macro triggers based on the old encoding
of the keycode, those will have to be redone.
- Corrected regression that caused the main window's minimum size
to not be correctly set at startup.
- The response to font changes in the main window does a better
job of keeping the player in the bounds of the window.
- Corrected handling of full screen mode: exiting while in
fullscreen mode no longer leaves the main window acting as if it
was still in fullscreen mode when the application is restarted.
- Keep the save and command menu items disabled during character
generation since they aren't useful until the character enters
the world. Also keep the save menu entry disabled while on the
splash screen.
- Made some additional English message changes including a
correction for the message about a weaponsmith adding an essence to
an item and more English descriptions of artifacts that were
missing descriptions.
- Merged in upstream's changes for building on non-Windows
platforms, including the new --with-varpath=PATH option to
configure.
- For developing the application, made it easier to change the
user interface with Xcode's Interface Builder.
- Tile set rendering changes:
- Since use Angband's version of the tile sets on the Mac, added
workarounds in the preference files for the cases where those
tile sets differ from Hengband's versions. Especially for
terrain, that makes tiles more useful in the Mac version.
- Added support for big tile mode in the Mac interface. It is
enabled by default and can be turned on or off from the Settings
menu.
- Corrected regression that objects and creatures were always
shown with a black background.
- Changed to better handle if an error occurs while loading or
converting the tile set image.
- Changed so that blending is used if the tile set has an
alpha channel.
- As an optimization, don't draw the foreground if it is the
same as the background.
- December 31, 2019. Plugged memory leak in autopick_autoregister().
Changed init_saved_floors() to only check for out-of-date saved
floors if savefile is not an empty string; that prevents spurious
messages about old temporary files when "New" is selected in the
Cocoa front-end for macOS. Redid earlier change for English
message crashes in spell_RF6_HEAL() to be more compact. Made many
adjustments to the text of English messages especially in monster and
item descriptions. To better match the source material, the base
object for the crown of Amber is now a Jewel Encrusted Crown rather
than a Golden Crown.
- December 1, 2019. Changed Cocoa rendering so text is rendered
more compactly and to avoid deprecated
CGContextShowGlyphsWithAdvances.
- November 12, 2019. Ported upstream's correction for a
division by zero exception when choosing monsters for arena battles.
Corrected English spelling mistakes in the Hunter's office and one
ability description. Changed the English description of the ranger
class.
- October 24, 2019. Added upstream's modification for the update
monster list option. Made several changes to English messages,
primarily for character generation, the in-game help, and
explanations in the autopick editor.
- October 2, 2019. Changed to use upstream's fix for rivers in
dungeons: levels in Yeek's den can have rivers of water. Changed
to avoid crash in English version if "Merfolk" is selected as the
race. Changed to avoid crash if "Auto" selected when destroying an
item and neither autopick preference file is present. For English,
adjusted layout in character screen so the row for sustains
experience aligns with the others. Made many adjustments, primarily
for spell and ability descriptions or messages, to English game
messages. For the macOS interface, changed to disable "Window"
menu entries until the backend is ready. That prevents crashes if
the item is selected before a character is selected. Also changed
to recompute the minimum window size after changing the font and to
coerce the current window size at least as large as the minimum size
if necessary.
- September 16, 2019. Changed floor-generate.c to avoid patches
of unidentified terrain and crashes in dungeons like Yeek's den.
Changes spells2.c to avoid an uninitialized variable and potential
crash in one branch of probing(). Changed cmd-smith.c to correct a
misleading English message about enhancing multiple items. For the
English version, modified monster1.c to avoid missing output in
monster recall and compiler warnings about unused expressions.
Made several changes for grammar or clarity in English messages.
Changed a cast in files.c to avoid a compiler warning. For the
macOS interface, changed the names for the terminal windows in
the Window menu to match the names in the windows' title bars.
Localized Info.plist for Japanese and changed the Japanese version
of the menus to use 変愚蛮怒 instead of hengband. Adjusted some
of the automake files to carry over more files when "make dist" is
run. Changed the handling of Objective C in configure.ac for better
portability. Also reduced the number of library dependencies for the
Cocoa version.
- September 10, 2019. Corrected two more English game messages that
could cause crashes (from spell_RF6_HASTE() and spell_RF6_HEAL() in
mspells4.c). Changed so that eating an unidentified item from the
pack or reading an unidentified scroll from the pack would not have
the potential to remove a different item from the pack. Changed so
that aiming an unidentified wand from the pack or using an
unidentified staff from the pack would not have the potential to
remove a charge from a different item. Corrected some typos in the
English version ("less" in some messages increasing a statistic;
duplicated character level in monster recall; some corrections in
the rumors). In the English version, made minor layout adjustments
for the level indicator in the main screen, page indicator in the
shops, and for the digging and infravision proficiencies in the
character screen. For the macOS interface, changed the rendering
to reduce the clearing and clipping artifacts with fonts like Snell
Roundhand and Zapfino. That will change the number of rows and
columns that can be displayed in a given space with most fonts so
you'll likely have to adjust your window layout. Added a
bigcurs_hook implementation so that the cursor over a kanji
character in the Japanese version will encompass the character.
- August 29, 2019. Corrected three English game messages that could
could cause crashes (from castle_quest() in bldg.c,
spell_RF6_HEAL() in mspells4.c, and project_m() in spells1.c).
Replaced more instances of "current_world_ptr->game_turn" with
"turn" in English messages. Changed macOS interface to avoid
clearing artifacts along the tops of characters when using the
Rockwell or DIN Condensed fonts. That change will mean less rows
for a given terminal height with some fonts. There still are
clearing artifacts on the right side of "@" with the Snell Roundhand
and Zapfino fonts.
- August 27, 2019. Initial release