<commit_before>#######################
Platform-specific notes
#######################

This documentation outlines any platform-specific notes gathered by the
developers of SuperGameHerm as they were aware at the time of its release.

Note that this documentation may be out of date by the time you read this,
and suggestions given are simply that; notes here do NOT imply that a
specific platform is supported by SuperGameHerm nor does it imply any form
of guarantee the steps outlined will be a 'magic cure'.

*******
Windows
*******

This chapter outlines notes about building and running SuperGameHerm on
computers running Windows.

General
=======

The native Windows API frontend (sgherm-gdi.exe) uses GDI calls.  These
calls are accelerated under Windows Vista™ and later versions (including
7, 8, and 10).

The SDL 2 frontend (sgherm-sdl2.exe) will use OpenGL where available to
accelerate graphics calls.  This can result in a speed up over GDI if you
are running an older version of Windows that does not support accelerated
GDI calls, but does support hardware-accelerated OpenGL and SDL 2.

Windows 95/98/Me/NT4 (Visual Studio 6.0/98)
===========================================

Visual C++ 6.0 needs to be updated to at least SP4 to compile the code.
You will need to change the print_cycles function to use signed math as
this compiler does not support conversion of unsigned 64-bit integers to
double-precision floating point representation.

The Windows 95/98/Me kernels don't allow much throughput, even on fast
CPUs (such as the Pentium 4), so the emulator may be so slow as to be
unplayable.  This is a design issue with that version of Windows and it
cannot be worked around.

On Windows NT 4 it should be playable assuming your CPU is fast enough.

Windows 2000 (Visual Studio .NET 7.1/2003)
==========================================

No special build steps should be required.

The emulator should run without issue.

Windows XP (Visual Studio 2005)
===============================

SDL 2 is untested on Windows XP and Visual Studio 2005.

Windows Vista™ (Visual Studio 2008)
===================================

No special build steps are required.

The emulator should run without issue.

Windows 7 (Visual Studio 2010)
==============================

No special build steps are required.

The emulator should run without issue with both SDL 2 and GDI.

Windows 8 (Visual Studio 2012)
==============================

Untested.

Windows 10 Build 9879 (Visual Studio 2015 CTP)
==============================================

This compiler supports all C99 and C11 features in use by SuperGameHerm.
No special build steps are required.

The emulator should run without issue with both SDL 2 and GDI.


*****
Linux
*****

Most system/architecture/frontend combinations should run without error,
as long as the compiler in use is Clang.

GCC 4.8's optimiser has bugs that we attempt to work around, but we cannot
vouch for its correctness regarding code generation.  GCC 4.6 and 4.7
should also work, but do not support some C11 features.  We attempt to
work around this too, but it starts to become rather un-worthwhile to
continue writing code against buggy compilers (it's a miracle the code
works at all in Visual C++, even).

ICC has not been tested, but as it has its own optimisation engine, it
should work well.  Please report your findings, either way, to us.


***
BSD
***

FreeBSD
=======

The libcaca and SDL 2 frontends should work fine on at least amd64 and
i386.

NetBSD
======

The libcaca frontend works.  The SDL 2 frontend does not work due to
an incompatibility with NetBSD's X.Org distribution.

OpenBSD
=======

The libcaca and SDL 2 frontends work on 5.6/amd64.
Other versions and architectures have not been tested.


*****
Other
*****

Testing has not been done on any system not specified above.  If you are
able to run SuperGameHerm on one, or are having issues building, let us
know - however, we cannot and will not support every system and every
architecture ever made.<commit_msg>add OS X as a platform that sometimes is tested<commit_after>#######################
Platform-specific notes
#######################

This documentation outlines any platform-specific notes gathered by the
developers of SuperGameHerm as they were aware at the time of its release.

Note that this documentation may be out of date by the time you read this,
and suggestions given are simply that; notes here do NOT imply that a
specific platform is supported by SuperGameHerm nor does it imply any form
of guarantee the steps outlined will be a 'magic cure'.

*******
Windows
*******

This chapter outlines notes about building and running SuperGameHerm on
computers running Windows.

General
=======

The native Windows API frontend (sgherm-gdi.exe) uses GDI calls.  These
calls are accelerated under Windows Vista™ and later versions (including
7, 8, and 10).

The SDL 2 frontend (sgherm-sdl2.exe) will use OpenGL where available to
accelerate graphics calls.  This can result in a speed up over GDI if you
are running an older version of Windows that does not support accelerated
GDI calls, but does support hardware-accelerated OpenGL and SDL 2.

Windows 95/98/Me/NT4 (Visual Studio 6.0/98)
===========================================

Visual C++ 6.0 needs to be updated to at least SP4 to compile the code.
You will need to change the print_cycles function to use signed math as
this compiler does not support conversion of unsigned 64-bit integers to
double-precision floating point representation.

The Windows 95/98/Me kernels don't allow much throughput, even on fast
CPUs (such as the Pentium 4), so the emulator may be so slow as to be
unplayable.  This is a design issue with that version of Windows and it
cannot be worked around.

On Windows NT 4 it should be playable assuming your CPU is fast enough.

Windows 2000 (Visual Studio .NET 7.1/2003)
==========================================

No special build steps should be required.

The emulator should run without issue.

Windows XP (Visual Studio 2005)
===============================

SDL 2 is untested on Windows XP and Visual Studio 2005.

Windows Vista™ (Visual Studio 2008)
===================================

No special build steps are required.

The emulator should run without issue.

Windows 7 (Visual Studio 2010)
==============================

No special build steps are required.

The emulator should run without issue with both SDL 2 and GDI.

Windows 8 (Visual Studio 2012)
==============================

Untested.

Windows 10 Build 9879 (Visual Studio 2015 CTP)
==============================================

This compiler supports all C99 and C11 features in use by SuperGameHerm.
No special build steps are required.

The emulator should run without issue with both SDL 2 and GDI.


*****
Linux
*****

Most system/architecture/frontend combinations should run without error,
as long as the compiler in use is Clang.

GCC 4.8's optimiser has bugs that we attempt to work around, but we cannot
vouch for its correctness regarding code generation.  GCC 4.6 and 4.7
should also work, but do not support some C11 features.  We attempt to
work around this too, but it starts to become rather un-worthwhile to
continue writing code against buggy compilers (it's a miracle the code
works at all in Visual C++, even).

ICC has not been tested, but as it has its own optimisation engine, it
should work well.  Please report your findings, either way, to us.


***
BSD
***

FreeBSD
=======

The libcaca and SDL 2 frontends should work fine on at least amd64 and
i386.

NetBSD
======

The libcaca frontend works.  The SDL 2 frontend does not work due to
an incompatibility with NetBSD's X.Org distribution.

OpenBSD
=======

The libcaca and SDL 2 frontends work on 5.6/amd64.
Other versions and architectures have not been tested.


********
Mac OS X
********

SDL 2 has not been tested.  libcaca does not work.


*****
Other
*****

Testing has not been done on any system not specified above.  If you are
able to run SuperGameHerm on one, or are having issues building, let us
know - however, we cannot and will not support every system and every
architecture ever made.
{'fraction_non_alphanumeric': 0.12299792150629661, 'fraction_numerical': 0.023597016750213962, 'mean_word_length': 4.478901540522438, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6091709', 'n_tokens_mistral': 2332, 'n_tokens_neox': 2031, 'n_words': 1215}