diff --git a/Build/INSTALL.md b/Build/INSTALL.md index 43b5351aca..37088895ce 100644 --- a/Build/INSTALL.md +++ b/Build/INSTALL.md @@ -2,25 +2,25 @@ Warning == Make sure you read README.md first if you have not. -Compiling StepMania +Compiling ITGmania == -To use StepMania on your computer, it is first assumed that cmake is run (see README.md for more information). +To use ITGmania on your computer, it is first assumed that cmake is run (see README.md for more information). Then, follow the guide based on your operating system. Windows === Using Visual Studio, simply build and it will place the .exe file in the correct directory. -Mac OS X +macOS === Using Xcode, simply build in Xcode and it will place the .app file in the correct directory. Linux === -Using the command line, simply type make and it will place stepmania in the root StepMania +Using the command line, simply type make and it will place stepmania in the root ITGmania directory. There is no more need to symlink the files. -Installing StepMania +Installing ITGmania == Installing in this context refers to placing the folders and generated binary in a standard location based on your operating system. This guide assumes default install locations. @@ -28,14 +28,14 @@ If you want to change the initial location, pass in `-DCMAKE_INSTALL_PREFIX=/new Windows === -The default installation directory is `C:\Program Files (x86)\Stepmania 5`. +The default installation directory is `C:\Games\ITGmania`. -Mac OS X +macOS === -The `StepMania.app` package can be copied to `/Applications` and it will work as expected. +The `ITGmania.app` package can be copied to `/Applications` and it will work as expected. Linux === After installing, run `sudo make install`. The files will be placed in the location specified: -by default, that is now `/usr/local/stepmania-5.1`. +by default, that is now `/usr/local/itgmania`. diff --git a/Build/README.md b/Build/README.md index 5a00e2a1ef..aecd4da4fd 100644 --- a/Build/README.md +++ b/Build/README.md @@ -21,7 +21,7 @@ Windows For those that prefer package manager systems, [Chocolatey](https://chocolatey.org/) has a CMake package. Run `choco install cmake` to get the latest stable version. -Mac OS X Specific +macOS Specific === For those that prefer package manager systems, both [Homebrew](http://brew.sh/) and [MacPorts](https://www.macports.org/) offer CMake as part of their offerings. Run `brew install cmake` or `port install cmake` respectively to get the latest stable version. @@ -43,13 +43,13 @@ CMake Command Line If you are unfamiliar with cmake, first run `cmake --help`. This will present a list of options and generators. The generators are used for setting up your project. -The following steps will assume you operate from the StepMania project's Build directory. +The following steps will assume you operate from the ITGmania project's Build directory. For the first setup, you will want to run this command: `cmake -G {YourGeneratorHere} .. && cmake ..` -Replace {YourGeneratorHere} with one of the generator choices from `cmake --help`. As an example, Mac OS X users that want to have Xcode used would run `cmake -G Xcode .. && cmake ..` on their Terminal program. +Replace {YourGeneratorHere} with one of the generator choices from `cmake --help`. If you are building on Windows and expecting your final executable to be able to run on Windows XP, append an additional parameter `-T "v140_xp"` (or `-T "v120_xp"`, depending on which version of Visual Studio you have installed) to your command line. @@ -66,7 +66,7 @@ CMake GUI === For those that use the GUI to work with cmake, you need to specify where the source code is and where the binaries will be built. -The first one, counter-intuitively, is actually the parent directory of this one: the main StepMania directory. +The first one, counter-intuitively, is actually the parent directory of this one: the main ITGmania directory. The second one for building can be this directory. Upon setting the source and build directories, you should `Configure` the build. diff --git a/Docs/CommandLineArgs.txt b/Docs/CommandLineArgs.txt index ea2acb74f2..f044ab21a1 100644 --- a/Docs/CommandLineArgs.txt +++ b/Docs/CommandLineArgs.txt @@ -1,4 +1,4 @@ -StepMania 5 Command Line Arguments +ITGmania Command Line Arguments ================================================================================ Pass all arguments with --. For example, version would be entered as --version. stepmania --version diff --git a/Docs/Devdocs/versioning.txt b/Docs/Devdocs/versioning.txt deleted file mode 100644 index c4fd0f087b..0000000000 --- a/Docs/Devdocs/versioning.txt +++ /dev/null @@ -1,9 +0,0 @@ -[as taken from src/ProductInfo.h] - -Version info displayed to the user. - -These are the 'official' version designations: - * "v5.0 alpha #": Alpha versions (bug squashing, polishing until we reach beta) - * "v5.0 beta #": Beta versions (bug squashing, _focus_ is on high priority bugs) - * "v5.0 rc#": Release Candidates (if there are no problems, move on to final) - * "v5.0.0": Final Releases diff --git a/Docs/Doxyfile b/Docs/Doxyfile index d15f8c3544..bda1daf5ec 100644 --- a/Docs/Doxyfile +++ b/Docs/Doxyfile @@ -25,7 +25,7 @@ DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. -PROJECT_NAME = StepMania 5 +PROJECT_NAME = ITGmania # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or diff --git a/Docs/KnownIssues.txt b/Docs/KnownIssues.txt index 04ff7449f6..202bcadbf7 100644 --- a/Docs/KnownIssues.txt +++ b/Docs/KnownIssues.txt @@ -42,9 +42,6 @@ The following is a list of known issues with StepMania 5. * VBR MP3's don't seek correctly in the editor, which botches sync. -* There is no make install target for linux systems - this is important for - packaging purposes in particular (it would be great to release .debs!) - * LuaDriver works well, but without threading it has latency issues. * Survival courses crash if you set a noteskin in the player options diff --git a/Docs/Luadoc/LuaDocumentation.xml b/Docs/Luadoc/LuaDocumentation.xml index c5268d92e9..09f9f501c3 100644 --- a/Docs/Luadoc/LuaDocumentation.xml +++ b/Docs/Luadoc/LuaDocumentation.xml @@ -535,7 +535,7 @@ save yourself some time, copy this for undocumented things: Returns the product family. (e.g. "StepMania") - Returns the product ID. (e.g. "StepMania 5") + Returns the product ID. (e.g. "ITGmania") Returns the product version. (e.g. "5.0.11" or "5.1.0" or "5.2-git-96f9771") diff --git a/Docs/Mapping_keys_for_edit_mode.txt b/Docs/Mapping_keys_for_edit_mode.txt index 5f237910a9..c999fa758d 100644 --- a/Docs/Mapping_keys_for_edit_mode.txt +++ b/Docs/Mapping_keys_for_edit_mode.txt @@ -1,7 +1,7 @@ Don't try to change the way keys are mapped in edit mode unless you have a good reason. It's complicated and easy to mess up. If you do make a mistake, you can go back to the default edit mode keymapping just by removing the "User Data Folder/Save/EditMode_Keymaps.ini" file. -Edit Mode loads key mapping settings from "User Data Folder/Save/EditMode_Keymaps.ini". "User Data Folder" is a special name that means the folder where all your user data for stepmania is stored, the name depends on what OS you're on. See Docs/Userdocs/sm5_beginner.txt and search for "User Data Folder" to learn where it is on your OS. +Edit Mode loads key mapping settings from "User Data Folder/Save/EditMode_Keymaps.ini". "User Data Folder" is a special name that means the folder where all your user data for stepmania is stored, the name depends on what OS you're on. See Docs/Userdocs/beginner.txt and search for "User Data Folder" to learn where it is on your OS. Entries in EditMode_Keymaps.ini set which what keys trigger an action. Any function that doesn't have an entry in EditMode_Keymaps.ini will use the default mapping. Be careful when choosing a key for a function to make sure that same key isn't already mapped to something else either in the default mapping or in the mapping you are creating. If you hold F3, you can use the Debug Menu to reload the screen while in Edit Mode, which will reload the key mapping, so you can adjust the mapping while stepmania is running. @@ -264,7 +264,7 @@ RECORD_SELECTION=Key_r INSERT=Key_insert:Key_\ DELETE=Key_delete ADJUST_FINE=Key_right alt:Key_left alt -# Hold Ctrl or Cmd (OS X) for SAVE. +# Hold Ctrl or Cmd (on macOS) for SAVE. SAVE=Key_s UNDO=Key_u SWITCH_PLAYERS=Key_/ diff --git a/Docs/Userdocs/Keymaps_ini_format.md b/Docs/Userdocs/Keymaps_ini_format.md index 2b6a7bdeee..49db2797a5 100644 --- a/Docs/Userdocs/Keymaps_ini_format.md +++ b/Docs/Userdocs/Keymaps_ini_format.md @@ -9,11 +9,9 @@ prevents mapping keys through the Config Key/Joy Mappings screen. ## Location -Windows: %APPDATA%/StepMania 5.1/Save/Keymaps.ini -Linux: ~/.stepmania-5.1/Save/Keymaps.ini -OS X: ~/Library/Preferences/StepMania 5.1/Save/Keymaps.ini -(OS X location may be incorrect, report it if you use OS X and that location -is incorrect) +Windows: `%APPDATA%/ITGmania/Save/Keymaps.ini` +Linux: `~/.itgmania/Save/Keymaps.ini` +macOS: `~/Library/Preferences/ITGmania/Keymaps.ini` ## Structure diff --git a/Docs/Userdocs/sm5_beginner.txt b/Docs/Userdocs/beginner.txt similarity index 77% rename from Docs/Userdocs/sm5_beginner.txt rename to Docs/Userdocs/beginner.txt index af796bef30..a441189e9f 100644 --- a/Docs/Userdocs/sm5_beginner.txt +++ b/Docs/Userdocs/beginner.txt @@ -1,13 +1,13 @@ -StepMania 5 Beginner's Guide -Written and edited by the StepMania team +ITGmania Beginner's Guide +Written and edited by the StepMania team, updated for ITGmania -------------------------------------------------------------------------------- Table of Contents 1 Introduction -2 StepMania +2 ITGmania 2.1. Terms and Concepts - 2.1.1 Notable StepMania Versions - 2.1.2 StepMania Components - 2.2 StepMania Configuration + 2.1.1 Notable StepMania/ITGmania Versions + 2.1.2 ITGmania Components + 2.2 ITGmania Configuration 2.2.0 Configuring Keys 2.2.1 Frequently Asked Questions that can be Solved by Changing the Configuration @@ -15,21 +15,21 @@ Table of Contents 2.3.1 Installing Song Files 2.3.2 Installing Noteskins/New Gametypes 2.3.3 Installing Themes -3. StepMania 5 - 3.1 Frequently Asked Questions about StepMania 5 +3. Frequently Asked Questions 4. Reporting problems ================================================================================ Chapter 1: Introduction ================================================================================ -Welcome to the StepMania 5 Beginner's Guide. This guide is primarily meant for -people who do not have any previous experience with StepMania, but also includes -information on how SM5 differs from previous StepMania versions. If you already -know what StepMania is, and the basics of adding things to an install, you can -skip ahead to Chapter 3: StepMania 5. Otherwise, read on. +Welcome to the ITGmania Beginner's Guide. This guide is primarily meant for +people who do not have any previous experience with ITGmania or StepMania, but +also includes information on how SM5 differs from previous StepMania versions. ================================================================================ -Chapter 2: StepMania +Chapter 2: ITGmania ================================================================================ +ITGmania is a fork of StepMania 5.1 adding new features for the post-ITG +community. + StepMania is an open-source rhythm game/engine, used by many projects, both commercial and free. @@ -40,13 +40,13 @@ and configure the program to suit your playing style. -------------------------------------------------------------------------------- 2.1: Terms and Concepts -------------------------------------------------------------------------------- -Like many other video games, StepMania has a rich lexicon of words which may +Like many other video games, ITGmania has a rich lexicon of words which may confuse others. The most important of the terms has to do with versions of StepMania, as backwards compatibility is pretty much nonexistent between major versions. -------------------------------------------------------------------------------- -2.1.1: Notable StepMania Versions +2.1.1: Notable StepMania/ITGmania Versions -------------------------------------------------------------------------------- Knowing the versions of StepMania is helpful, as it will help you deduce what you can and can not install. (Most songs are version-agnostic, though the @@ -106,11 +106,28 @@ If you wish to port something to StepMania 5, or make a theme for StepMania 5, it had better work for this version, because it will report your theme mistakes to you on screen. +* StepMania 5.0.12 +The latest stable release of StepMania 5. + +* StepMania 5.1 beta 2 +The current beta release of StepMania 5.1. It introduced USB profiles and has +become the de-facto standard for StepMania 5 players. + +* Project OutFox (aka. Project Moondance, StepMania 5.3) +Currently in alpha. It is a fork of StepMania 5.1 introducing new game modes +and improving software performance. OutFox is scheduled to be released open +source as StepMania version 5.3 in the future, but the source is not available +to the public yet. + +* ITGmania 0.5.1 +The first release of ITGmania. It's a fork of StepMania 5.1 that focuses solely +on the dance game mode and the needs of the post-ITG community. + -------------------------------------------------------------------------------- -2.1.2: StepMania Components +2.1.2: ITGmania Components -------------------------------------------------------------------------------- Despite the title, this is a bit more broader-reaching, as it covers terms that -you may see in StepMania communities and online. +you may see in StepMania/ITGmania communities and online. -------------------------------------------------------------------------------- * Courses Courses exist in many different forms, but in general, they take you through @@ -171,54 +188,20 @@ you may see in StepMania communities and online. change. -------------------------------------------------------------------------------- -2.2: StepMania Configuration +2.2: ITGmania Configuration or "How to use the Options Menu" -------------------------------------------------------------------------------- -Learning how to properly configure StepMania can save you headaches. +Learning how to properly configure ITGmania can save you headaches. -Most themes will have the Options menu in plain sight on the Title Menu. -From there, it depends on which version of StepMania you have, as the options -menus were re-shuffled around for the StepMania 4 alphas and later versions. -This is also known as the Service Options menu. In all versions on -StepMania 5, this can be reached by pressing the Scroll Lock key at any time. -The key set as the "Operator" key in Config Key/Joy Mappings will also bring -up the Service Options menu. Some people also call this the "service button". -Note that in StepMania 5, the theme can control what options appear on this -screen. The information below applies only to the default theme and themes -that choose to present the same options. +Most themes will have the Options menu in plain sight on the Title Menu. In all +versions on StepMania 5 and ITGmania, the options menu can be reached by +pressing the Scroll Lock key at any time. The key set as the "Operator" key in +Config Key/Joy Mappings will also bring up the Service Options menu. Some +people also call this the "service button". Note that in StepMania 5, the theme +can control what options appear on this screen. The information below applies +only to the default theme and themes that choose to present the same options. -The typical StepMania 3.9 Options Menu: -* Appearance Options -* Background Options -* Bookkeeping -* Center Image -* Coin Options -* Config Key/Joy Mappings -* Input Options -* Gameplay Options -* Graphic Options -* Machine Options -* Sound Options -* Profile Options -* Other Options -* Reload Songs/Courses -* Test Input - -The StepMania 4.0 alpha 4 Options Menu: -* Config Key/Joy Mappings -* Test Input -* Appearance Options -* Graphics/Sound Options -* Advanced Options -* Network Options -* Profiles -* Reload Songs/Courses - -sm-ssc changed this up again, making the "Options" item on the Title Menu go -to System Direction (mostly-used options), leaving the normal options menu to -the Scroll Lock key. Blame Midiman. :) - -The StepMania 5.0 beta 4 Options Menu: +The StepMania 5 and ITGmania Options Menu: * Calibrate Audio Sync * Select Game * Config Key/Joy Mappings @@ -238,7 +221,7 @@ The StepMania 5.0 beta 4 Options Menu: -------------------------------------------------------------------------------- 2.2.0: Configuring Keys -------------------------------------------------------------------------------- -Controller mappings in StepMania are configured in the Config Key/Joy Mappings +Controller mappings in ITGmania are configured in the Config Key/Joy Mappings screen. To reach it, hit the Operator key (Scroll Lock) and select Config Key/Joy Mappings from the menu. @@ -284,20 +267,8 @@ and leave the screen. Choosing "Cancel" will do neither, leaving you on the scre -------------------------------------------------------------------------------- With that in mind, it's time to answer some questions using this knowledge. -Q: How do I disable the menu timer? -A: Where you go depends on the version of StepMania you use. - -[3.9] Machine Options -[4.0 alphas] Advanced Options -It will be the first option on each. -[5.0] UI Options, third option from the top. - Q: How do I play forever, without game overs? -A: Turn on Event Mode. Where you go depends on the version of StepMania you use. - -[3.9] Coin Options -[4.0 alphas] Advanced Options, a bit down the page. -[5.0] Arcade Options, bottom of the page. +A: Turn on Event Mode in Arcade Options. Q: What the heck is this thing that says "Toasty" and how do I get rid of it? A: It's a reference to Mortal Kombat 2, where Dan Forden would pop out from @@ -306,33 +277,29 @@ In order to get a Toasty in StepMania, one must get a 250 combo without any Greats. The number 250 is a reference to how many VS games of MK2 you had to play before you could play Pong. -As for turning it off, turn Easter Eggs off. -It appears in different locations between StepMania versions: -[3.9] Gameplay Options -[4.0 alphas] Advanced Options, a bit down the page. -[5.0] Advanced Options, 8th option from the top. +As for turning it off, turn Easter Eggs off in the Advanced Options. -------------------------------------------------------------------------------- 2.3: Installing Content -------------------------------------------------------------------------------- This is the most important section you will read, as all the time that you spend -not playing with StepMania will be adding/removing things to it. Well, not +not playing with ITGmania will be adding/removing things to it. Well, not completely, as you have other things to do. Before we touch on the specifics, there are a few skills you should learn. Previous versions of StepMania had instructions to install things in the main StepMania folder. This caused problems with UAC on Windows and went against -convention on Linux and OS X. Because of those problems, installing content in -the main StepMania folder is no longer the correct thing to do. +convention on Linux and macOS. Because of those problems, installing content +in the main StepMania folder is no longer the correct thing to do. -The correct place to install content on StepMania 5 is the User Data folder. +The correct place to install content on ITGmania is the User Data folder. The exact location is different for each platform. -Windows: %APPDATA%/StepMania 5.1/ -Linux: ~/.stepmania-5.1/ -OS X: ~/Library/Application Support/StepMania 5.1/ +Windows: %APPDATA%/ITGmania/ +Linux: ~/.itgmania/ +macOS: ~/Library/Application Support/ITGmania/ Wherever you see the name "User Data folder", this is the folder it refers to. -OS X additionally has ~/Library/Preferences/StepMania 5.1/ for storing preferences. +macOS additionally has ~/Library/Preferences/ITGmania/ for storing preferences. Inside the User Data folder you can install content by placing it in the following folders: * Songs @@ -359,9 +326,8 @@ There are multiple ways to deal this. 1) Put the SMZip file in the Packages folder. 2) Rename the file to have an extension of .zip and extract in the root User Data folder. - 3) Pass the smzip's filename to StepMania on the command line/terminal. + 3) Pass the smzip's filename to ITGmania on the command line/terminal. Dragging and dropping the .smzip may or may not work; we have not tested it. - Also, this may or may not exist in your version of StepMania. -------------------------------------------------------------------------------- 2.3.1: Installing Song Files @@ -373,10 +339,10 @@ For .smzip files, the section "Not on Windows and want to deal with .smzip files?" details all possible ways of installing .smzip files, but the most common ways are as follows: -1) For operating systems with a filetype handler (Windows and OS X), you can double - click on the .smzip file and the StepMania tools will handle it. +1) For operating systems with a filetype handler (Windows and macOS), you can double + click on the .smzip file and the ITGmania tools will handle it. 2) Putting the .smzip file in the Packages folder, where it will be automatically - read by StepMania. + read by ITGmania. If it's not a .smzip file, you'll have to do some detective work. Open up the song archive and see how the files are laid out. @@ -427,7 +393,7 @@ User Data folder\ 2.3.2: Installing Noteskins/New Gametypes -------------------------------------------------------------------------------- NoteSkins change the appearance of the arrows. They are also linked with getting -other gametypes supported in StepMania. +other gametypes supported in ITGmania. The noteskin installation process looks something like this: User Data folder\ @@ -456,7 +422,7 @@ If it is in a .smzip, you can put it in the Packages directory: User Data folder/ Packages/ MyTheme.smzip -and StepMania will automatically read it. +and ITGmania will automatically read it. On Windows, you can double click on the .smzip file to install it in your user packages directory. THIS IS NOT RECOMMENDED BECAUSE IT CAUSES CONFUSION. @@ -479,24 +445,15 @@ When in doubt, read any documentation that comes with the theme for proper installation instructions. Do not attempt to use any theme made for a StepMania version older than StepMania 5. -It will not work at all. Only use a theme made for StepMania 5 beta 1, or beta 2 -if you are a themer and you are working on that theme to make it work with -StepMania 5 beta 4. +It will not work at all. Only use a theme made for StepMania 5 if you are a +themer and you are working on that theme to make it work with ITGmania. ================================================================================ -Chapter 3: StepMania 5 +3: Frequently Asked Questions ================================================================================ -The modern StepMania 5 originally began life as sm-ssc, a fork of StepMania 4 -alpha 5 (later renamed to StepMania 5 after the reboot of SM4). sm-ssc was a fork -focused on adding features for theming, but also tried to make the process of -dealing with StepMania a little easier. - --------------------------------------------------------------------------------- -3.1: Frequently Asked Questions about StepMania 5 --------------------------------------------------------------------------------- Q: How do I keep my background videos/images from being stretched/distorted? -A: StepMania 5 has a preference for this, the "Set BG Fit Mode" option on the +A: ITGmania has a preference for this, the "Set BG Fit Mode" option on the Service Options screen. Each column on that screen is a possible setting for the preference. Each column shows how a background with each of the 3 most common aspect ratios @@ -518,14 +475,14 @@ Third, create the screen in your theme using the knowledge gained from step two. Q: I run multiple versions of StepMania and I don't want to copy all my songs to the new install location. A: Close stepmania. Look in your User Data folder for Save/Preferences.ini. -On OS X Save/ will actually be under ~/Library/Preferences/StepMania 5/. +On macOS Save/ will actually be under ~/Library/Preferences/ITGmania/. Open that file in a text editor. Add the full path to your Songs folder to the "AdditionalSongFolders" setting. If the folder your songs are in is anywhere under Program Files or anywhere else that UAC interferes with, you will probably have problems when editing simfiles. -Q: I have thousands of scores in StepMania 3.9, how can I copy them to StepMania 5? -A: Create a new profile in StepMania 5. The profile's folder will be +Q: I have thousands of scores in StepMania 3.9, how can I copy them to ITGmania? +A: Create a new profile in ITGmania. The profile's folder will be "User Data folder/Save/LocalProfiles/000000/" (000000 is the first profile created, if the new profile is the second profile, the folder name will be 000001, and so forth). Place your Stats.xml from StepMania 3.9 into the folder for the new profile, @@ -535,28 +492,20 @@ Q: I have some scores in one profile and some other scores in another profile, A: Hopefully, this feature will be added soon. Q: I want to make a theme, why do I have to learn Lua? Isn't making a theme just making graphics? -A: Themes are far more powerful in StepMania 5 than in previous versions. -Themes are more than just image files and can change every part of interacting -with StepMania. With this power comes the requirement of knowing how to use it. -If the thought of learning Lua and using it as a language frightens you, spend -more time reading the documentation and asking questions so you can learn to -understand how to use it. +A: Themes are far more powerful in StepMania 5 and ITGmania than in previous +versions. Themes are more than just image files and can change every part of +interacting with StepMania. With this power comes the requirement of knowing +how to use it. If the thought of learning Lua and using it as a language +frightens you, spend more time reading the documentation and asking questions +so you can learn to understand how to use it. ================================================================================ Chapter 4: Reporting Problems ================================================================================ -http://www.stepmania.com/forums/ is the official StepMania forum. -Use this for asking questions and generally posting about StepMania. -Please search the forums for threads that cover your question before making a -new thread. - -https://github.com/stepmania/stepmania/issues is the bug tracker list. +https://github.com/itgmania/itgmania/issues is the bug tracker list. Use this only for reporting problems or requesting features. Please search the list before reporting a new issue. -#stepmania-devs on irc.freenode.net is the IRC channel where the devs hang out. -Use this to chat with the devs and discuss StepMania related things. - When reporting issues on the bug tracker: 1: Make the title of your issue short and informative. "Crash report" is a bad title because it doesn't contain any context. @@ -577,13 +526,12 @@ go through a couple requests for more information. report. If the problem is not an outright crash and cannot be reproduced in the default theme, it is likely a problem with the theme and should be reported to the author of that theme. The main StepMania issue tracker is not the place to -report problems with any theme other than the default theme. +report theme problems. Requesting features on the bug tracker: If you are a themer requesting a new theme API feature, be prepared to describe very explicitly what you want. Same as for reporting bugs, be prepared to wait. -Spending time in the developer IRC channel discussing issues can help a lot. If you are a skilled programmer, implementing the feature and submitting a pull -request is a good way to get it added to StepMania 5. See github's instructions -on forking a repository and submitting a pull request. +request is a good way to get it added to ITGmania. See github's instructions on +forking a repository and submitting a pull request. diff --git a/Docs/versioning.txt b/Docs/versioning.txt deleted file mode 100644 index f5c45cb41a..0000000000 --- a/Docs/versioning.txt +++ /dev/null @@ -1,12 +0,0 @@ -[as taken from src/ProductInfo.h] (before doxygen) - -Version info displayed to the user. - -These are the 'official' version designations: - * "experimental: pre-release versions - * "private beta v0.0": hmm, think about it for a second there. - ==Public versions below this line== - * "v0.0 alpha #": Alpha versions (bug squashing, polishing until we reach beta) - * "v0.0 beta #": Beta versions (bug squashing, _focus_ is on high priority bugs) - * "v0.0 rc#": Release Candidates (if there are no problems, move on to final) - * "v0.0": Final Releases diff --git a/Themes/_fallback/Languages/de.ini b/Themes/_fallback/Languages/de.ini index f74af1c9ba..af21668c2b 100644 --- a/Themes/_fallback/Languages/de.ini +++ b/Themes/_fallback/Languages/de.ini @@ -351,7 +351,7 @@ AutoMapOnJoyChange=If this setting is &oq;On&cq;, the game will remap joysticks AutoPlay=This option is useful for those who would like to play without using a pad. However, you will not be able to set high scores or earn extra stages while this option is ON. AutogenGroupCourses=Show group Nonstop and Endless courses that were created by Autogen. AutogenSteps=Automatically generate steps from other game types. -AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on Mac OSX or Linux JS driver yet. +AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on macOS or Linux JS driver yet. BGBrightness=Controls how bright the background will appear. Turn this setting down if you have a hard time seeing the notes. Background=Change options that control the backgrounds that play during gameplay. BackgroundFitMode=Change the way backgrounds are scaled to fit the screen. diff --git a/Themes/_fallback/Languages/en.ini b/Themes/_fallback/Languages/en.ini index 21e26f7249..93a905f0d8 100644 --- a/Themes/_fallback/Languages/en.ini +++ b/Themes/_fallback/Languages/en.ini @@ -352,7 +352,7 @@ AutoMapOnJoyChange=If this setting is &oq;On&cq;, the game will remap joysticks AutoPlay=This option is useful for those who would like to play without using a pad. However, you will not be able to set high scores or earn extra stages while this option is ON. AutogenGroupCourses=Show group Nonstop and Endless courses that were created by Autogen. AutogenSteps=Automatically generate steps from other game types. -AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on Mac OSX or Linux JS driver yet. +AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on macOS or Linux JS driver yet. BGBrightness=Controls how bright the background will appear. Turn this setting down if you have a hard time seeing the notes. Background=Change options that control the backgrounds that play during gameplay. BackgroundFitMode=Change the way backgrounds are scaled to fit the screen. diff --git a/Themes/_fallback/Languages/es.ini b/Themes/_fallback/Languages/es.ini index 67c1a09482..3fdf72c677 100644 --- a/Themes/_fallback/Languages/es.ini +++ b/Themes/_fallback/Languages/es.ini @@ -347,7 +347,7 @@ AutoMapOnJoyChange=Si está activado, el juego redistribuirá los mandos que no AutoPlay=Esta opción es útil para quien quiera jugar sin plataforma. Sin embargo, no será posible optar a puntuaciones máximas o fases extra. AutogenGroupCourses=Mostrar cursos Sin parar e Infinitos creados con el generador automático. AutogenSteps=Genera los pasos automáticamente a partir de otros modos de juego. -AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on Mac OSX or Linux JS driver yet. +AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on macOS or Linux JS driver yet. BGBrightness=Controla el brillo del fondo. Regula esta opción si te cuesta ver las notas. Background=Cambia opciones que controlan los fondos que se reproducen mientras juegas. BarDrain=Drenado de barra. diff --git a/Themes/_fallback/Languages/fr.ini b/Themes/_fallback/Languages/fr.ini index 583df21bbc..75a38c48d1 100644 --- a/Themes/_fallback/Languages/fr.ini +++ b/Themes/_fallback/Languages/fr.ini @@ -349,7 +349,7 @@ AutoMapOnJoyChange=If this setting is &oq;On&cq;, the game will remap joysticks AutoPlay=This option is useful for those who would like to play without using a pad. However, you will not be able to set high scores or earn extra stages while this option is ON. AutogenGroupCourses=Show group Nonstop and Endless courses that were created by Autogen. AutogenSteps=Génère Automatiquement les pas depuis d'autres type de jeu. -AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on Mac OSX or Linux JS driver yet. +AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on macOS or Linux JS driver yet. BGBrightness=Contrôle la luminosité du fond. Descendez ce réglage si vous avez du mal à voir les notes. Background=Change les options qui contrôlent les fonds durant le jeu. BackgroundFitMode=Change the way backgrounds are scaled to fit the screen. diff --git a/Themes/_fallback/Languages/ja.ini b/Themes/_fallback/Languages/ja.ini index 883ff7952c..1a798679b8 100644 --- a/Themes/_fallback/Languages/ja.ini +++ b/Themes/_fallback/Languages/ja.ini @@ -528,7 +528,7 @@ AllowSongDeletion=ミュージックホイールでCtrl+Backspaceキーを押す AllowW1=Fantastic判定の使用範囲を設定します。NEVERでは出なくなります。\nCOURSES ONLYではExtendedモードかOniモードのみで出ます。\nALWAYSではどのモードでも出ます。 AutogenGroupCourses=OnにするとExtendedモードとEndlessモードのコースが自動生成されます。 AutogenSteps=Onにすると他のゲームモードやスタイルから譜面が自動生成されます。 -AxisFix=Onにすると方向キーを軸に割り当てるアダプタへの対応策を行います。\nMac OS XおよびLinux Joystickドライバは未対応です。 +AxisFix=Onにすると方向キーを軸に割り当てるアダプタへの対応策を行います。\nmacOSおよびLinux Joystickドライバは未対応です。 DefaultFailType=IMMEDIATEはゲージが無くなると即終了します。\nIMMEDIATE CONTINUEはゲージが無くなってもプレイを続けることが出来ます。\nEND OF SONGはプレイ終了時にゲージの残量でクリア判定されます。\nOFFはゲージの残量にかかわらずクリアになります。 DefaultFailTypeNoOff=IMMEDIATEはゲージが無くなると即終了します。\nIMMEDIATE CONTINUEはゲージが無くなってもプレイを続けることが出来ます。\nEND OF SONGはプレイ終了時にゲージの残量でクリア判定されます。 EasterEggs=このオプションをOnにして、Perfect以上で250コンボ繋ぐと…? diff --git a/Themes/_fallback/Languages/nl.ini b/Themes/_fallback/Languages/nl.ini index 65261e166e..713a6ba867 100644 --- a/Themes/_fallback/Languages/nl.ini +++ b/Themes/_fallback/Languages/nl.ini @@ -349,7 +349,7 @@ AutoMapOnJoyChange=Als deze optie op &oq;Aan&cq; staat, zal het spel joysticks o AutoPlay=Deze optie is handig voor mensen die zonder mat willen spelen. Maar je kan geen extra nummers verdienen of high scores opslaan als dit aan staat. AutogenGroupCourses=Laat de groep Nonstop en Eindeloos parkoers zien die door de Autogen gemaakt zijn. AutogenSteps=Genereer automatisch de stappen voor andere speltypen. -AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on Mac OSX or Linux JS driver yet. +AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on macOS or Linux JS driver yet. BGBrightness=Bepaalt hoe helder de achtergrond er uit ziet. Zet dit lager als je de noten niet goed kan zien. Background=Verander de opties die bepalen welke achtergronden tijdens het spelen zichtbaar zijn. BackgroundFitMode=Verander de manier waarop achtergronden worden geschaald om op het scherm te passen. diff --git a/Themes/_fallback/Languages/pl.ini b/Themes/_fallback/Languages/pl.ini index 3d547788af..e97401baeb 100644 --- a/Themes/_fallback/Languages/pl.ini +++ b/Themes/_fallback/Languages/pl.ini @@ -348,7 +348,7 @@ AutoMapOnJoyChange=Jeśli ta opcja jest włączona &oq;On&cq;, gra przemapuje au AutoPlay=Ta opcja może być użyteczna dla tych którzy z jakiegoś niezrozumiałego powodu chcą grać bez maty. W trybie AutoPlay nie da się zapisywać wyników ani zdobywać możliwości grania dodatkowych piosenek. AutogenGroupCourses=Pokazuje Maratony wygenerowane przez opcję AutoGen w grupach NonStop i Nieskończone. AutogenSteps=Automatyczne generowanie kroków dla innych typów gier nie uwzględnionych w stepchart`cie. -AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on Mac OSX or Linux JS driver yet. +AxisFix=Workaround for some adapters which map the D-Pad to Axis. Does not work on macOS or Linux JS driver yet. BGBrightness=Ustala poziom jasność filmów odtwarzanych w tle piosenki. Zmniejsz wartość opcji jeśli masz trudności z widzeniem strzałek. Background=Zmienia opcje kontrolujące tła odtwarzanych w trakcie gry. BackgroundFitMode=Zmień sposób skalowania tła do rozmiaru ekranu. diff --git a/Themes/_fallback/Languages/sk.ini b/Themes/_fallback/Languages/sk.ini index c40f365898..fbd842e424 100644 --- a/Themes/_fallback/Languages/sk.ini +++ b/Themes/_fallback/Languages/sk.ini @@ -352,7 +352,7 @@ AutoMapOnJoyChange=Ak je táto voľba nastavená na &oq;Zap&cq;, hra premapuje j AutoPlay=Táto voľba je užitočná vtedy, ak nechcete hrať na podložke. Pri jej zapnutí však nebudú zapisované Vaše rekordy a nebudete mať možnosť zaslúžiť si extra skladby. AutogenGroupCourses=Zobrazovať automaticky generované maratóny v skupinách Nonstop a Nekonečné. AutogenSteps=Automaticky generovať kroky z iných typov hier. -AxisFix=Obídenie problému s niektorými adaptérmi, ktoré mapujú D-Pad ako osi. Zatiaľ nefunguje na Mac OSX alebo s ovládačom JS na Linuxe. +AxisFix=Obídenie problému s niektorými adaptérmi, ktoré mapujú D-Pad ako osi. Zatiaľ nefunguje na macOS alebo s ovládačom JS na Linuxe. BGBrightness=Nastavuje mieru jasu pozadia. Znížte toto nastavenie, ak máte problémy s čítaním nôt. Background=Nastavte možnosti, ktoré ovplyvňujú zobrazovanie pozadí prehrávaných počas hry. BackgroundFitMode=Nastavte spôsob, akým sú pozadia upravené na veľkosť obrazovky. diff --git a/Themes/_fallback/Languages/zh-Hant.ini b/Themes/_fallback/Languages/zh-Hant.ini index 530d666e59..408d3a7ab5 100644 --- a/Themes/_fallback/Languages/zh-Hant.ini +++ b/Themes/_fallback/Languages/zh-Hant.ini @@ -353,7 +353,7 @@ AutoMapOnJoyChange=若選擇為開, 所有初次連接的輸入控制器將會 AutoPlay=自動遊玩, 不能用此方式進入額外關卡. AutogenGroupCourses=自動為專輯生成組曲與無限組曲. AutogenSteps=自動譜面生成, 至少需要一種譜面. -AxisFix=針對部分有類比控制鍵的控制器設定軸向, 目前在 Mac OSX 與 Linux JS driver 無法動作. +AxisFix=針對部分有類比控制鍵的控制器設定軸向, 目前在 macOS 與 Linux JS driver 無法動作. BGBrightness=背景明亮度設定. Background=背景動畫開關設定. BackgroundFitMode=改變背景填充螢幕的模式. diff --git a/Utils/Font generation/smfontgen.py b/Utils/Font generation/smfontgen.py index 3219366853..4bce6862ad 100644 --- a/Utils/Font generation/smfontgen.py +++ b/Utils/Font generation/smfontgen.py @@ -1,7 +1,7 @@ #!/usr/bin/python # WARNING: This only works in GIMP 2.4.7 and later. 2.4.6 had a nasty memory leak in # gimp_text_fontname that breaks this script in all sorts of bad ways. -# confirmed working on Linux, and broken on OS X. +# confirmed working on Linux, and broken on macOS. from math import ceil from gimpfu import * diff --git a/Utils/doxygen_config b/Utils/doxygen_config index 570a9100e4..6f0d798212 100644 --- a/Utils/doxygen_config +++ b/Utils/doxygen_config @@ -3,7 +3,7 @@ #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- -PROJECT_NAME = StepMania 5 +PROJECT_NAME = ITGmania PROJECT_NUMBER = OUTPUT_DIRECTORY = temp CREATE_SUBDIRS = YES diff --git a/src/CommandLineActions.cpp b/src/CommandLineActions.cpp index bf94daac91..65d72bd35f 100644 --- a/src/CommandLineActions.cpp +++ b/src/CommandLineActions.cpp @@ -45,7 +45,7 @@ static void LuaInformation() * @brief Print out version information. * * HACK: This function is primarily needed for Windows users. - * Mac OS X and Linux print out version information on the command line + * macOS and Linux print out version information on the command line * regardless of any preferences (tested by shakesoda on Mac). -aj */ static void Version() { diff --git a/src/DateTime.cpp b/src/DateTime.cpp index 722fc109be..df6d0b488e 100644 --- a/src/DateTime.cpp +++ b/src/DateTime.cpp @@ -249,7 +249,7 @@ RString HourInDayToLocalizedString( int iHourIndex ) tm AddDays( tm start, int iDaysToMove ) { /* - * This causes problems on OS X, which doesn't correctly handle range that are below + * This causes problems on macOS, which doesn't correctly handle range that are below * their normal values (eg. mday = 0). According to the manpage, it should adjust them: * * "If structure members are outside their legal interval, they will be normalized (so @@ -263,7 +263,7 @@ tm AddDays( tm start, int iDaysToMove ) * * Note "Log starting 2004-03-07 03:50:42"; mday is 7, and PrintCaloriesBurned calls us * with iDaysToMove = -7, resulting in an out-of-range value 0. This seems legal, but - * OS X chokes on it. + * macOS chokes on it. */ /* start.tm_mday += iDaysToMove; time_t seconds = mktime( &start ); @@ -302,7 +302,7 @@ tm GetNextSunday( tm start ) tm GetDayInYearAndYear( int iDayInYearIndex, int iYear ) { /* If iDayInYearIndex is 200, set the date to Jan 200th, and let mktime - * round it. This shouldn't suffer from the OSX mktime() issue described + * round it. This shouldn't suffer from the macOS mktime() issue described * above, since we're not giving it negative values. */ tm when; ZERO( when ); diff --git a/src/RageFileManager.cpp b/src/RageFileManager.cpp index 2e504a7736..8208989833 100644 --- a/src/RageFileManager.cpp +++ b/src/RageFileManager.cpp @@ -540,7 +540,7 @@ void RageFileManager::GetDirListing( const RString &sPath_, vector &Add UnreferenceAllDrivers( apDriverList ); // Remove files that start with ._ from the list because these are special - // OS X files that cause interference on other platforms. -Kyz + // macOS files that cause interference on other platforms. -Kyz StripMacResourceForks(AddTo); if( iDriversThatReturnedFiles > 1 ) diff --git a/src/RageSurface_Load_PNG.cpp b/src/RageSurface_Load_PNG.cpp index 041667ec73..13cf800e17 100644 --- a/src/RageSurface_Load_PNG.cpp +++ b/src/RageSurface_Load_PNG.cpp @@ -92,7 +92,7 @@ static RageSurface *RageSurface_Load_PNG( RageFile *f, const char *fn, char erro // Throwing an exception in the error callback would make the exception // pass through C code, which is undefined behavior. Works fine on Linux, - // and on OS X with C++11, but does not work on OS X without C++11. -Kyz + // and on macOS with C++11, but does not work on macOS without C++11. -Kyz if(setjmp(png_jmpbuf(png))) { png_destroy_read_struct(&png, &info_ptr, nullptr); diff --git a/src/SongCacheIndex.cpp b/src/SongCacheIndex.cpp index 4d8bed4325..1a8a0ef919 100644 --- a/src/SongCacheIndex.cpp +++ b/src/SongCacheIndex.cpp @@ -44,7 +44,7 @@ RString SongCacheIndex::GetCacheFilePath( const RString &sGroup, const RString & s = sPath; /* Change slashes and invalid utf-8 characters to _. * http://en.wikipedia.org/wiki/UTF-8 - * Mac OS X doesn't support precomposed unicode characters in files names and + * macOS doesn't support precomposed unicode characters in files names and * so we should probably replace them with combining diacritics. * XXX How do we do this and is it even worth it? */ const char *invalid = "/\xc0\xc1\xfe\xff\xf8\xf9\xfa\xfb\xfc\xfd\xf5\xf6\xf7"; diff --git a/src/StepMania.cpp b/src/StepMania.cpp index 7affd25b89..36861420bf 100644 --- a/src/StepMania.cpp +++ b/src/StepMania.cpp @@ -1454,7 +1454,7 @@ bool HandleGlobalInputs( const InputEventPlus &input ) INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, KEY_LALT), &input.InputList)) ) { // alt-enter - /* In OS X, this is a menu item and will be handled as such. This will + /* In macOS, this is a menu item and will be handled as such. This will * happen first and then the lower priority GUI thread will happen second, * causing the window to toggle twice. Another solution would be to put * a timer in ArchHooks::SetToggleWindowed() and just not set the bool diff --git a/src/arch/ArchHooks/ArchHooks.h b/src/arch/ArchHooks/ArchHooks.h index 123a320343..d49b8421d4 100644 --- a/src/arch/ArchHooks/ArchHooks.h +++ b/src/arch/ArchHooks/ArchHooks.h @@ -12,7 +12,7 @@ public: virtual ~ArchHooks() { } virtual void Init() { } /* - * Return the general name of the architecture, eg. "Windows", "OS X", "Unix". + * Return the general name of the architecture, eg. "Windows", "macOS", "Unix". */ virtual RString GetArchName() const { return "generic"; } diff --git a/src/arch/ArchHooks/ArchHooks_MacOSX.mm b/src/arch/ArchHooks/ArchHooks_MacOSX.mm index 3216e8d66a..d6f4754e94 100644 --- a/src/arch/ArchHooks/ArchHooks_MacOSX.mm +++ b/src/arch/ArchHooks/ArchHooks_MacOSX.mm @@ -130,12 +130,10 @@ void ArchHooks_MacOSX::Init() RString ArchHooks_MacOSX::GetArchName() const { -#if defined(__i386__) - return "Mac OS X (i386)"; -#elif defined(__x86_64__) - return "Mac OS X (x86_64)"; +#if defined(__x86_64__) + return "macOS (x86_64)"; #elif defined(__aarch64__) || defined(__arm64__) - return "macOS (ARM64)"; + return "macOS (arm64)"; #else #error What arch? #endif @@ -149,7 +147,7 @@ void ArchHooks_MacOSX::DumpDebugInfo() // http://stackoverflow.com/a/891336 NSDictionary *version = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"]; NSString *productVersion = [version objectForKey:@"ProductVersion"]; - SystemVersion = ssprintf("Mac OS X %s", [productVersion cStringUsingEncoding:[NSString defaultCStringEncoding]]); + SystemVersion = ssprintf("macOS %s", [productVersion cStringUsingEncoding:[NSString defaultCStringEncoding]]); } size_t size; diff --git a/src/arch/InputHandler/InputHandler_SextetStream.md b/src/arch/InputHandler/InputHandler_SextetStream.md index 17f57b9d4f..5f52903b70 100644 --- a/src/arch/InputHandler/InputHandler_SextetStream.md +++ b/src/arch/InputHandler/InputHandler_SextetStream.md @@ -124,12 +124,12 @@ TODO: Supply example Arduino/PIC/... firmware. TODO: Supply example of full-duplex in cooperation with the SextetStream lights driver. -### Mac OS X +### macOS FIXME: *This has not been tested at all.* The following is a guess at a synopsis of how it should work if you're lucky enough for everything to have fallen into place just so. (Please amend this message if you manage -to get this running consistently on Mac OS X.) +to get this running consistently on macOS.) Follow the instructions for Linux, but change the `InputDrivers` setting to: diff --git a/src/arch/Lights/LightsDriver_SextetStream.md b/src/arch/Lights/LightsDriver_SextetStream.md index 040934eb68..d83433dec7 100644 --- a/src/arch/Lights/LightsDriver_SextetStream.md +++ b/src/arch/Lights/LightsDriver_SextetStream.md @@ -74,14 +74,14 @@ TODO: Supply example Arduino/PIC/... firmware. TODO: Supply example of full-duplex in cooperation with the SextetStream input driver. -### Mac OS X +### macOS FIXME: *This has not been tested at all.* The following is a guess at a synopsis of how it should work if you're lucky enough for everything to have fallen into place just so. (Please amend this message if you manage -to get this running consistently on Mac OS X.) +to get this running consistently on macOS.) -The instructions for Linux should work equally well for Mac OS X. +The instructions for Linux should work equally well for macOS. TODO: Serial examples. diff --git a/src/arch/LoadingWindow/LoadingWindow_MacOSX.h b/src/arch/LoadingWindow/LoadingWindow_MacOSX.h index ddcfb09c37..8a99fee92d 100644 --- a/src/arch/LoadingWindow/LoadingWindow_MacOSX.h +++ b/src/arch/LoadingWindow/LoadingWindow_MacOSX.h @@ -3,7 +3,7 @@ #include "LoadingWindow.h" #include "global.h" -/** @brief Loading window for Mac OS X. */ +/** @brief Loading window for macOS. */ class LoadingWindow_MacOSX : public LoadingWindow { public: diff --git a/src/arch/Threads/Threads_Pthreads.cpp b/src/arch/Threads/Threads_Pthreads.cpp index 5d74f45e9a..eb7d53a240 100644 --- a/src/arch/Threads/Threads_Pthreads.cpp +++ b/src/arch/Threads/Threads_Pthreads.cpp @@ -457,7 +457,7 @@ bool SemaImpl_Pthreads::TryWait() return true; } #else -// Use conditions, to work around OS X "forgetting" to implement semaphores. +// Use conditions, to work around macOS "forgetting" to implement semaphores. SemaImpl_Pthreads::SemaImpl_Pthreads( int iInitialValue ) { int ret = pthread_cond_init( &m_Cond, nullptr ); diff --git a/src/archutils/Unix/Backtrace.cpp b/src/archutils/Unix/Backtrace.cpp index b650e3b415..db8ac06046 100644 --- a/src/archutils/Unix/Backtrace.cpp +++ b/src/archutils/Unix/Backtrace.cpp @@ -673,7 +673,7 @@ void GetBacktrace( const void **buf, size_t size, const BacktraceContext *ctx ) { ctx = &CurrentCtx; - /* __builtin_frame_address is broken on OS X; it sometimes returns bogus results. */ + /* __builtin_frame_address is broken on macOS; it sometimes returns bogus results. */ register void *r1 __asm__ ("r1"); CurrentCtx.FramePtr = (const Frame *) r1; CurrentCtx.PC = nullptr; diff --git a/src/tests/test_vector.cpp b/src/tests/test_vector.cpp index 7ddf9c1c21..41635e429f 100644 --- a/src/tests/test_vector.cpp +++ b/src/tests/test_vector.cpp @@ -7,7 +7,7 @@ #include #if 0 -# error This depends on OS X and Apple's gcc. +# error This depends on macOS and Apple's gcc. #endif #ifndef USE_VEC # error Enable altivec or sse.