Commit Graph
1174 Commits
Author SHA1 Message Date
nhmall a55ca016eb hints file update for wasm CFLAGS to include -DNHUUID 2026-05-03 13:18:37 -04:00
Ingo Paschke 2a59726f18 Amiga: disable SYSCF, drop sysconf from package
SYSCF is for multi-user system-admin lockdown; single-user Amigas
don't need it, and assure_syscf_file() killing the binary when run
outside NetHack: was breaking normal launches.
2026-05-03 17:48:22 +02:00
nhmall c2a7bdb369 less prone to overlooking target names next time 2026-05-02 22:05:31 -04:00
nhmall 77040f70c7 cross-compiler build fixes 2026-05-02 14:10:04 -04:00
nhmall 5167796d13 Merge branch 'NetHack-3.7' into to500 2026-04-30 17:09:02 -04:00
nhmall 319dd38873 simplify get_macos_uuid()
also remove a magic number 37 by replacing it with NHUUIDSZ
2026-04-30 09:27:50 -04:00
nhmall 2b985be3b9 macOS fixes 2026-04-30 01:13:40 -04:00
nhmall 6c36009ce4 case bit 2026-04-29 23:55:48 -04:00
nhmall 5035b36956 possible macOS build fix
I need someone with arm64 Mac to confirm.
2026-04-29 23:48:19 -04:00
nhmall 702fbfa06e make the inclusion of NHUUID support the default in hints files
On macOS, the required underlying pieces are in there.

On Linux, we try to test for the presence of libuuid and
the uuid.h header files. If the tests are both successful,
we proceed to include NHUUID support.

On either macOS or Linux, NO_NHUUID=1 on the Make command
line will forcibly prevent the inclusion of the support for NHUUID.
2026-04-29 21:48:52 -04:00
nhkeni 27fa906ebf update CRASHREPORTURL examples 2026-04-26 18:01:10 -04:00
nhmall 84e76bbbcb README-hints bit 2026-04-26 11:13:03 -04:00
nhmall 3cb7bfc0b3 more sys 2026-04-26 11:08:10 -04:00
nhmall a6cdb6aefd change sys/unix bits and doc 2026-04-26 10:41:11 -04:00
nhmall 2a6e7c47ec leave outdated files as 3.6; more to 5.0 2026-04-26 09:29:50 -04:00
nhmall 8ddfa958b1 HINTSVERSION 2026-04-26 09:09:14 -04:00
nhmall 99525ea7b7 hints files from .370 to .500 2026-04-26 08:15:08 -04:00
nhmall f9ccf24b0b date update 2026-04-26 07:28:04 -04:00
nhmall a3fa63f444 typo fix 2026-04-25 20:34:24 -04:00
nhmall 1d5397d35b follow-up with how-to for two Linux distros 2026-04-25 20:28:07 -04:00
nhmall b6503fa52e update README-hints 2026-04-25 20:22:12 -04:00
nhmall a906ed8236 another follow-up 2026-04-25 16:47:12 -04:00
nhmall 532152ffc0 macOS follow-up 2026-04-25 16:41:16 -04:00
nhmall 98308a8a7d thinko while looking into macOS 2026-04-25 16:19:24 -04:00
nhmall 89c7435b7a attempt macOS fix 2026-04-25 15:57:36 -04:00
nhmall 4cf78d8f31 add macuuid.m 2026-04-25 15:44:53 -04:00
nhmall 309afb2eb2 add support for a unique game identifier
A 37 character field for holding a unique identifier is added
to the save file, as well as to an ancestor field in bones files.

Since it requires installation of libuuid package on Linux,
it requires an exlicit WANT_NHUUID=1 on the Make command line there.
Without the libuuid support, the saved nhuuid is empty, which should
be harmless.

This also moves the save and restore of gm.moves higher up so that it
already has a value the first time it is used against a relative saved
timestamp.

Invalidates savefiles and bones files due to new fields.

I need to get this committed before I can test out the macOS portion,
so there may be some build issues there briefly (hopefully), and
follow-up commits to resolve them.

Increments EDITLEVEL.
2026-04-25 14:48:49 -04:00
karafruit dc920f6af4 Merge branch 'NetHack-3.7' into twitch-interact 2026-04-23 20:37:34 -07:00
nhmall 93ab8405d8 some further startup, option processing bits 2026-04-23 14:31:43 -04:00
nhmall 7d377a0f02 clang detection in unix hints
Closes #1500 but it does apply the pull request.
Hopefully, this makes things a little clearer.
2026-04-20 20:47:59 -04:00
karafruit ebed555f0a streamhack hints file 2026-04-19 08:33:57 -07:00
karafruit a34a07bb75 Merge branch 'NetHack-3.7' into twitch-interact 2026-04-13 15:05:44 -07:00
nhmall 92340a6827 consolidate some arg processing
Unix and Windows had diverged significantly for command line
options handling.

This:
   1. uses the the Unix processing as a baseline.
   2. consolidates the code in earlyarg.c, where it can
      be a common copy to be shared.
   3. start converting the Windows command line argument
      processing to the Unix code that now resides in earlyarg.c.
2026-04-04 13:44:23 -04:00
nhmall 7120a7190e some more discarded-qualifiers fixes 2026-04-04 07:52:06 -04:00
nhmall 396a3735ca follow-up for Xcode project 2026-04-01 08:48:05 -04:00
nhmall 686618f34d move early arg and enum dump processing to own file 2026-04-01 08:32:13 -04:00
Pasi Kallinen d78af5cec7 Add monster spell header file mcastu.h
Move the monster spell definitions there, and use hackery
(similar to objects.h) to generate enum and data from
the header file.

I have not tested Windows, VMS, or Amiga builds.
2026-03-24 17:26:24 +02:00
nhmall 39a4111104 Merge branch 'amiga-port' of https://github.com/ingpaschke/NetHack into NetHack-3.7 2026-03-24 07:53:39 -04:00
nhmall 4991339655 don't abort clean if target cross-compile directory isn't there 2026-03-24 07:49:38 -04:00
Ingo Paschke ced24f6fc9 Remove dead -DLUA_32BITS=1 flag
luaconf.h hardcodes #define LUA_32BITS 0 which overrides the
command-line flag. m68k-amigaos-gcc supports long long so 32-bit
mode is not needed anyway.
2026-03-24 12:49:14 +01:00
Ingo Paschke a398a9bdc7 Use NetHack's util/uudecode instead of system uudecode 2026-03-24 12:49:14 +01:00
nhmall aa90cd5cd8 Merge branch 'amiga-port' of https://github.com/ingpaschke/NetHack into NetHack-3.7 2026-03-24 05:37:17 -04:00
Ingo Paschke 2979030af1 Use NetHack's util/uudecode instead of system uudecode 2026-03-24 02:37:02 +01:00
Ingo Paschke c5dfd1fc5c Fetch BSD regex from GitHub at build time
Replace bundled Spencer regex with a fetch-regex build step that
clones https://github.com/garyhouston/regex.git, generates the
required .ih and regex.h headers via mkh, and copies the result
into sys/amiga/regex/.

Usage: make CROSS_TO_AMIGA=1 fetch-regex

The fetched sources are not tracked in git.
2026-03-24 01:21:00 +01:00
Ingo Paschke cb0b11be11 Add portable utilities for creating tiles, add AmigaFont to symbols
- bmp2iff_host: convert nhtiles.bmp to Amiga IFF tile files. Uses
  the AMIV UI palette in pens 0-15, remaining pens filled with tile
  colors sorted by frequency.
  Usage: bmp2iff_host -planes N input.bmp output.iff

- xpm2iff_host: convert XPM to IFF for tomb.iff (RIP screen).
  Adapted from xpm2iff.c, Copyright (c) 1995 Gregg Wonderly.

- Auto-select tiles32.iff (5 planes) or tiles16.iff (4 planes)
  based on screen color depth at runtime.

- Fix NO_GLYPH in amiv_lprint_glyph: return early to prevent
  blitting with uninitialised data (caused black spots).

- Add AmigaFont symbol set to dat/symbols for AMII text mode.
2026-03-23 21:11:56 +01:00
Ingo Paschke 2d597cb9fa Revive Amiga port for NetHack 3.7
Update the Amiga Intuition window port (AMII/AMIV) for the 3.7
window_procs API. Key changes:

- Update all window function signatures for 3.7
- Add assembly trampolines for AmigaOS register-based callbacks
- Convert all K&R function definitions to C99
- Add cross-compilation build system (cross-pre1/pre2/post.370)
  using bebbo's m68k-amigaos-gcc with -noixemul -std=gnu17 -m68000
- Clipping fixes: viewport centering, simplified ScrollRaster,
  duplicate Ctrl-R suppression, glyph buffer invalidation
- Add menucolor support in menu rendering
- Move native txt2iff.c and xpm2iff.c to outdated/
- Add nethack.cnf and README.amiga
2026-03-23 20:48:06 +01:00
nhmall 33b24fbd13 update Xcode project to reflect recent file addition 2026-03-21 18:43:04 -04:00
nhmall e21995a36d follow-up bit (from testing) 2026-03-19 10:10:59 -04:00
nhmall 87ab214229 allow some additional values for compiler testing
Allow compiler.370 to recognize a couple of additional values on the Make command line.
.
2026-03-19 09:54:19 -04:00
G. Branden Robinson a8253dda00 Update Unix hints to revise groff detection
The existing detection logic was not working on any groff since at least
1.22.3 (November 2014), as could be seen by uncommenting the "$(info
...)" line.  The regex used to match "nroff --version" output was
insufficiently flexible.

Fixes:
$ (cd doc && rm -f Guidebook && PATH=$HOME/groff-1.22.3/usr/bin:/bin make Guidebook) | grep NROFF
NROFFISGROFF=
$ (cd doc && rm -f Guidebook && PATH=$HOME/groff-1.22.4/usr/bin:/bin make Guidebook) | grep NROFF
NROFFISGROFF=
$ (cd doc && rm -f Guidebook && PATH=$HOME/groff-1.23.0/usr/bin:/bin make Guidebook) | grep NROFF
NROFFISGROFF=
$ (cd doc && rm -f Guidebook && PATH=$HOME/groff-HEAD/usr/bin:/bin make Guidebook) | grep NROFF
NROFFISGROFF=

Use a different approach in Make to recording groff detection.  Use
"grep -c" (which is POSIX-conforming) to count the number of matches so
that we can use the contents of the Make macro `NROFFISGROFF` as a sort
of Boolean, which reads more idiomatically (in my opinion).

Further, instead of trying to lexically analyze a matched line in the
output of "nroff --version" and parse components of a version number out
of it, use GNU troff's built-in facility for extracting its minor
version number by storing the output of a tiny *roff document that
reports that datum (and nothing else).

Ignore warnings in category "scale" in any version of groff, because the
`tmac.n` macro package provokes them.

Clarify comments.
2026-02-07 05:00:22 -06:00