2017-08-18 05:18:15 +00:00
|
|
|
A game folder
|
|
|
|
is higan's way of grouping all
|
|
|
|
the information and resources required
|
|
|
|
to properly emulate a particular game.
|
|
|
|
For example,
|
2017-08-29 07:22:11 +00:00
|
|
|
to represent a Super Famicom game named `dkc3`,
|
2017-08-18 05:18:15 +00:00
|
|
|
higan would create a game folder named `dkc3.sfc`,
|
|
|
|
and inside it store the game data as `program.rom`
|
|
|
|
and the save data as `save.ram`:
|
|
|
|
|
Hack around some code-block formatting errors.
By default, mkdocs uses "highlight.js" to apply syntax-highlighting
to code blocks. Left to its own devices, highlight.js will guess the
language being used in the code block, apply the "hljs" CSS class
(so the code block will be given a nice border, a sensible font-size,
etc.) and apply the appropriate formatting markup. If it guesses wrongly,
you can give a language hint on the opening line of the block.
If you use a language that highlight.js does not recognise, or
the special name "nohighlight", highlight.js will leave the block
alone. Unfortunately, in mkdocs' default theme, that means it will be
formatted like *inline* code, with a border and background that wraps
behind each line of the block.
In order to make a code-block that looks like a code-block, you have
to carefully pick a language that highlight.js has heard of, but whose
syntax is sufficiently different from whatever's in the block that no
unwanted highlighting will occur.
This seems to be fixed in the readthedocs theme that comes with mkdocs
0.16.1, but ReadTheDocs doesn't actually seem to be using that version. :/
2017-11-11 07:22:08 +00:00
|
|
|
```python
|
2017-08-18 05:18:15 +00:00
|
|
|
+- Super Famicom
|
|
|
|
|
|
|
|
|
+- dkc3.sfc
|
|
|
|
|
|
|
|
|
+- program.rom
|
|
|
|
|
|
|
|
|
+- save.ram
|
|
|
|
```
|
2017-07-21 11:40:03 +00:00
|
|
|
|
2017-08-29 07:22:11 +00:00
|
|
|
In contrast,
|
|
|
|
other emulators typically
|
|
|
|
group resources related to a game
|
|
|
|
by requiring that every file has the same base name
|
|
|
|
but different file extensions.
|
|
|
|
For example,
|
|
|
|
if another emulator loaded the game `dkc3.sfc`
|
|
|
|
it might store the save data in `dkc3.srm`:
|
|
|
|
|
Hack around some code-block formatting errors.
By default, mkdocs uses "highlight.js" to apply syntax-highlighting
to code blocks. Left to its own devices, highlight.js will guess the
language being used in the code block, apply the "hljs" CSS class
(so the code block will be given a nice border, a sensible font-size,
etc.) and apply the appropriate formatting markup. If it guesses wrongly,
you can give a language hint on the opening line of the block.
If you use a language that highlight.js does not recognise, or
the special name "nohighlight", highlight.js will leave the block
alone. Unfortunately, in mkdocs' default theme, that means it will be
formatted like *inline* code, with a border and background that wraps
behind each line of the block.
In order to make a code-block that looks like a code-block, you have
to carefully pick a language that highlight.js has heard of, but whose
syntax is sufficiently different from whatever's in the block that no
unwanted highlighting will occur.
This seems to be fixed in the readthedocs theme that comes with mkdocs
0.16.1, but ReadTheDocs doesn't actually seem to be using that version. :/
2017-11-11 07:22:08 +00:00
|
|
|
```python
|
2017-08-29 07:22:11 +00:00
|
|
|
+- Super Famicom
|
|
|
|
|
|
|
|
|
+- dkc3.sfc
|
|
|
|
|
|
|
|
|
+- dkc3.srm
|
|
|
|
```
|
|
|
|
|
2017-07-21 11:40:03 +00:00
|
|
|
Why game folders?
|
|
|
|
-----------------
|
|
|
|
|
2017-08-29 07:22:11 +00:00
|
|
|
A file extension doesn't offer
|
|
|
|
much room for description,
|
|
|
|
so the traditional name-based-grouping system
|
|
|
|
only really works when games use a small number of files,
|
2017-08-18 05:18:15 +00:00
|
|
|
Also,
|
|
|
|
since file extensions traditionally describe
|
|
|
|
the format of the file in question,
|
|
|
|
it also means a game can't use
|
|
|
|
two or more files in the same format.
|
|
|
|
|
|
|
|
Compared to other emulators,
|
2017-08-29 07:22:11 +00:00
|
|
|
higan can use a larger number of files per game.
|
2017-08-18 05:18:15 +00:00
|
|
|
For example,
|
|
|
|
higan's low-level emulation of Super Famicom co-processors
|
|
|
|
often requires [separate firmware files][firmware].
|
docs: Review and update docs for v107.
Changes include:
- The "Library" menu was replaced with the "Systems" menu
- The "Settings" menu was reorganised
- Game Boy rumble is now under the MBC5 "controller" for the cartridge "port",
instead of being presented as a part of the base console
- Import instructions now mention that icarus ships with some firmware files,
and describe the "Firmware" directory that icarus will use for firmware
it needs.
- Apparently the correct name is "MSU1", not "MSU-1"
- v107 changes the way MSU1 data is stored in game folders
- PowerFest '94 import instructions removed, since I can't get it to work
with v107
- Links to the official forum have been replaced with links to the unofficial
forum archive, since the official forum is shutting down
- Links to Mercurial Magic updated to point at qwertymodo's archive, since
hex_usr is no longer developing it
- Links to nSide updated, since hex_usr no longer uses GitHub.
- Windows build instructions now describe a compiler that is actually
maintained, instead of stale TDM64-GCC.
- Linux build instructions now mention higan requires SDL 2.0.
- minor wording changes, typos, broken links fixed, etc.
2018-11-16 05:09:30 +00:00
|
|
|
higan's [MSU1 feature][msu1]
|
2017-08-29 07:22:11 +00:00
|
|
|
supports up to 99 audio tracks per game,
|
2017-08-18 05:18:15 +00:00
|
|
|
and higan supports up to 133 save-states per game.
|
2017-08-29 07:22:11 +00:00
|
|
|
Thus,
|
2017-08-18 05:18:15 +00:00
|
|
|
higan suffers from the limitations of name-based-grouping
|
|
|
|
more than most.
|
2017-07-21 11:40:03 +00:00
|
|
|
|
2017-08-29 07:22:11 +00:00
|
|
|
higan's game folders allow a game
|
|
|
|
to have unique, descriptive filenames
|
|
|
|
for all its resources,
|
|
|
|
and for each file to use the extension
|
|
|
|
that's most appropriate.
|
|
|
|
They also allow emulator-specific extras
|
2017-08-18 05:18:15 +00:00
|
|
|
like save-states and the cheat database
|
|
|
|
to be kept separate from the game's actual data,
|
|
|
|
by putting it in a sub-folder.
|
2017-07-21 11:40:03 +00:00
|
|
|
|
docs: Review and update docs for v107.
Changes include:
- The "Library" menu was replaced with the "Systems" menu
- The "Settings" menu was reorganised
- Game Boy rumble is now under the MBC5 "controller" for the cartridge "port",
instead of being presented as a part of the base console
- Import instructions now mention that icarus ships with some firmware files,
and describe the "Firmware" directory that icarus will use for firmware
it needs.
- Apparently the correct name is "MSU1", not "MSU-1"
- v107 changes the way MSU1 data is stored in game folders
- PowerFest '94 import instructions removed, since I can't get it to work
with v107
- Links to the official forum have been replaced with links to the unofficial
forum archive, since the official forum is shutting down
- Links to Mercurial Magic updated to point at qwertymodo's archive, since
hex_usr is no longer developing it
- Links to nSide updated, since hex_usr no longer uses GitHub.
- Windows build instructions now describe a compiler that is actually
maintained, instead of stale TDM64-GCC.
- Linux build instructions now mention higan requires SDL 2.0.
- minor wording changes, typos, broken links fixed, etc.
2018-11-16 05:09:30 +00:00
|
|
|
[msu1]: ../guides/import.md#msu1-games
|
2017-08-18 05:18:15 +00:00
|
|
|
[firmware]: ../guides/import.md#games-with-co-processor-firmware
|
2017-07-21 11:40:03 +00:00
|
|
|
|
2017-08-18 05:18:15 +00:00
|
|
|
For a more detailed motivation for game folders,
|
|
|
|
see [Game Paks on the higan website][gp].
|
2017-07-21 11:40:03 +00:00
|
|
|
|
2017-08-18 05:18:15 +00:00
|
|
|
[gp]: https://byuu.org/emulation/higan/game-paks
|
2017-07-21 11:40:03 +00:00
|
|
|
|
|
|
|
What's in a game folder?
|
|
|
|
------------------------
|
|
|
|
|
2017-08-29 07:22:11 +00:00
|
|
|
A game folder collects all the information relevant
|
2017-07-21 11:40:03 +00:00
|
|
|
to emulating a particular game.
|
|
|
|
Not all of the following files
|
2017-08-29 07:22:11 +00:00
|
|
|
are relevant for every console,
|
|
|
|
or even for every game on a console,
|
2017-08-18 05:18:15 +00:00
|
|
|
but they may be present under particular circumstances.
|
2017-07-21 11:40:03 +00:00
|
|
|
|
|
|
|
All the files directly in the game folder
|
|
|
|
are expected to be useful
|
|
|
|
to all emulators that support them:
|
|
|
|
|
|
|
|
- `manifest.bml`:
|
2017-08-22 08:12:17 +00:00
|
|
|
The [manifest](manifests.md) for this game folder.
|
2017-07-21 11:40:03 +00:00
|
|
|
- `program.rom`:
|
|
|
|
For most consoles,
|
|
|
|
this contains
|
|
|
|
the executable instructions and graphics data
|
|
|
|
from the cartridge's ROM chips.
|
|
|
|
For the Famicom,
|
|
|
|
this contains only the executable instructions.
|
|
|
|
- `character.rom`:
|
|
|
|
For the Famicom,
|
|
|
|
this contains only the graphics data
|
|
|
|
from the cartridge's ROM chips.
|
|
|
|
- `ines.rom`:
|
|
|
|
While other consoles typically include enough hints
|
2017-08-18 05:18:15 +00:00
|
|
|
in `program.rom` for icarus to guess a working manifest,
|
2017-07-21 11:40:03 +00:00
|
|
|
the Famicom does not.
|
|
|
|
Famicom games not stored in game folders
|
|
|
|
typically include an "iNES header" to store that information,
|
|
|
|
which icarus preserves after import as `ines.rom`.
|
|
|
|
- `save.ram`:
|
|
|
|
Games that include a save feature
|
|
|
|
will create this file.
|
|
|
|
Note that it is only written to disk
|
2017-08-29 07:22:11 +00:00
|
|
|
when higan exits gracefully;
|
2017-07-21 11:40:03 +00:00
|
|
|
if higan crashes or is forced to quit,
|
|
|
|
in-game saves may be lost.
|
|
|
|
Other emulators sometimes call this an "SRAM file",
|
|
|
|
even though the same filename is used
|
2017-08-29 07:22:11 +00:00
|
|
|
with games that included EEPROM or Flash storage,
|
2017-07-21 11:40:03 +00:00
|
|
|
not just battery-backed Static RAM.
|
|
|
|
- `rtc.ram`:
|
|
|
|
Games that include a calendar or real-time clock
|
|
|
|
will create this file.
|
|
|
|
- `*.data.rom`, `*.program.rom`:
|
2017-08-18 05:18:15 +00:00
|
|
|
Files named like this are usually [co-processor firmware][firmware].
|
docs: Review and update docs for v107.
Changes include:
- The "Library" menu was replaced with the "Systems" menu
- The "Settings" menu was reorganised
- Game Boy rumble is now under the MBC5 "controller" for the cartridge "port",
instead of being presented as a part of the base console
- Import instructions now mention that icarus ships with some firmware files,
and describe the "Firmware" directory that icarus will use for firmware
it needs.
- Apparently the correct name is "MSU1", not "MSU-1"
- v107 changes the way MSU1 data is stored in game folders
- PowerFest '94 import instructions removed, since I can't get it to work
with v107
- Links to the official forum have been replaced with links to the unofficial
forum archive, since the official forum is shutting down
- Links to Mercurial Magic updated to point at qwertymodo's archive, since
hex_usr is no longer developing it
- Links to nSide updated, since hex_usr no longer uses GitHub.
- Windows build instructions now describe a compiler that is actually
maintained, instead of stale TDM64-GCC.
- Linux build instructions now mention higan requires SDL 2.0.
- minor wording changes, typos, broken links fixed, etc.
2018-11-16 05:09:30 +00:00
|
|
|
|
|
|
|
Files used by higan's [MSU1 extension][msu1]
|
|
|
|
are in the `msu1` sub-folder:
|
|
|
|
|
|
|
|
- `data.rom`:
|
|
|
|
Holds data that the MSU1 can stream.
|
2017-07-21 11:40:03 +00:00
|
|
|
- `track-*.pcm`:
|
docs: Review and update docs for v107.
Changes include:
- The "Library" menu was replaced with the "Systems" menu
- The "Settings" menu was reorganised
- Game Boy rumble is now under the MBC5 "controller" for the cartridge "port",
instead of being presented as a part of the base console
- Import instructions now mention that icarus ships with some firmware files,
and describe the "Firmware" directory that icarus will use for firmware
it needs.
- Apparently the correct name is "MSU1", not "MSU-1"
- v107 changes the way MSU1 data is stored in game folders
- PowerFest '94 import instructions removed, since I can't get it to work
with v107
- Links to the official forum have been replaced with links to the unofficial
forum archive, since the official forum is shutting down
- Links to Mercurial Magic updated to point at qwertymodo's archive, since
hex_usr is no longer developing it
- Links to nSide updated, since hex_usr no longer uses GitHub.
- Windows build instructions now describe a compiler that is actually
maintained, instead of stale TDM64-GCC.
- Linux build instructions now mention higan requires SDL 2.0.
- minor wording changes, typos, broken links fixed, etc.
2018-11-16 05:09:30 +00:00
|
|
|
Holds audio that the MSU1 can stream.
|
2017-07-21 11:40:03 +00:00
|
|
|
|
|
|
|
Files that are only useful to higan specifically
|
2017-08-31 04:48:52 +00:00
|
|
|
are placed in a `higan` sub-folder:
|
2017-07-21 11:40:03 +00:00
|
|
|
|
|
|
|
- `cheats.bml`:
|
|
|
|
All information present in
|
docs: Review and update docs for v107.
Changes include:
- The "Library" menu was replaced with the "Systems" menu
- The "Settings" menu was reorganised
- Game Boy rumble is now under the MBC5 "controller" for the cartridge "port",
instead of being presented as a part of the base console
- Import instructions now mention that icarus ships with some firmware files,
and describe the "Firmware" directory that icarus will use for firmware
it needs.
- Apparently the correct name is "MSU1", not "MSU-1"
- v107 changes the way MSU1 data is stored in game folders
- PowerFest '94 import instructions removed, since I can't get it to work
with v107
- Links to the official forum have been replaced with links to the unofficial
forum archive, since the official forum is shutting down
- Links to Mercurial Magic updated to point at qwertymodo's archive, since
hex_usr is no longer developing it
- Links to nSide updated, since hex_usr no longer uses GitHub.
- Windows build instructions now describe a compiler that is actually
maintained, instead of stale TDM64-GCC.
- Linux build instructions now mention higan requires SDL 2.0.
- minor wording changes, typos, broken links fixed, etc.
2018-11-16 05:09:30 +00:00
|
|
|
the [Cheat Editor](../interface/higan-tools.md#cheat-editor)
|
2017-07-21 11:40:03 +00:00
|
|
|
is stored here.
|
2018-05-17 10:10:57 +00:00
|
|
|
- `notes.txt`:
|
|
|
|
Everything entered in the [Game Notes] is stored here.
|
2017-07-21 11:40:03 +00:00
|
|
|
- `states/quick/slot-*.bst`:
|
2017-08-18 05:18:15 +00:00
|
|
|
All [Quick States](save-states.md#quick-states) are stored here.
|
2017-07-21 11:40:03 +00:00
|
|
|
- `states/managed/slot-*.bst`:
|
2017-08-18 05:18:15 +00:00
|
|
|
All [Manager States](save-states.md#manager-states) are stored here.
|
2018-05-17 10:10:57 +00:00
|
|
|
|
|
|
|
[Game Notes]: ../interface/higan-tools.md#game-notes
|