mirror of https://github.com/bsnes-emu/bsnes.git
Finally finished reviewing and polishing all the text!
This commit is contained in:
parent
fab830f84b
commit
d8a8f06c35
|
@ -2,22 +2,8 @@ A game folder
|
||||||
is higan's way of grouping all
|
is higan's way of grouping all
|
||||||
the information and resources required
|
the information and resources required
|
||||||
to properly emulate a particular game.
|
to properly emulate a particular game.
|
||||||
Other emulators group resources related to a game
|
|
||||||
by requiring that every file has the base name
|
|
||||||
but different file extensions.
|
|
||||||
|
|
||||||
For example,
|
For example,
|
||||||
if another emulator loaded the game `dkc3.sfc`
|
to represent a Super Famicom game named `dkc3`,
|
||||||
it might store the save data in `dkc3.srm`:
|
|
||||||
|
|
||||||
```text
|
|
||||||
+- Super Famicom
|
|
||||||
|
|
|
||||||
+- dkc3.sfc
|
|
||||||
|
|
|
||||||
+- dkc3.srm
|
|
||||||
```
|
|
||||||
|
|
||||||
higan would create a game folder named `dkc3.sfc`,
|
higan would create a game folder named `dkc3.sfc`,
|
||||||
and inside it store the game data as `program.rom`
|
and inside it store the game data as `program.rom`
|
||||||
and the save data as `save.ram`:
|
and the save data as `save.ram`:
|
||||||
|
@ -32,14 +18,30 @@ and the save data as `save.ram`:
|
||||||
+- save.ram
|
+- save.ram
|
||||||
```
|
```
|
||||||
|
|
||||||
|
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`:
|
||||||
|
|
||||||
|
```text
|
||||||
|
+- Super Famicom
|
||||||
|
|
|
||||||
|
+- dkc3.sfc
|
||||||
|
|
|
||||||
|
+- dkc3.srm
|
||||||
|
```
|
||||||
|
|
||||||
Why game folders?
|
Why game folders?
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
The traditional files-with-different-extensions system
|
A file extension doesn't offer
|
||||||
works well enough when a game only requires
|
much room for description,
|
||||||
a small number of files,
|
so the traditional name-based-grouping system
|
||||||
because a file extension doesn't offer
|
only really works when games use a small number of files,
|
||||||
much room for description.
|
|
||||||
Also,
|
Also,
|
||||||
since file extensions traditionally describe
|
since file extensions traditionally describe
|
||||||
the format of the file in question,
|
the format of the file in question,
|
||||||
|
@ -47,22 +49,23 @@ it also means a game can't use
|
||||||
two or more files in the same format.
|
two or more files in the same format.
|
||||||
|
|
||||||
Compared to other emulators,
|
Compared to other emulators,
|
||||||
higan tends to use a larger number of files per game.
|
higan can use a larger number of files per game.
|
||||||
For example,
|
For example,
|
||||||
higan's low-level emulation of Super Famicom co-processors
|
higan's low-level emulation of Super Famicom co-processors
|
||||||
often requires [separate firmware files][firmware].
|
often requires [separate firmware files][firmware].
|
||||||
higan's [MSU-1 support][msu1]
|
higan's [MSU-1 support][msu1]
|
||||||
requires up to 99 audio tracks per game,
|
supports up to 99 audio tracks per game,
|
||||||
and higan supports up to 133 save-states per game.
|
and higan supports up to 133 save-states per game.
|
||||||
Therefore,
|
Thus,
|
||||||
higan suffers from the limitations of name-based-grouping
|
higan suffers from the limitations of name-based-grouping
|
||||||
more than most.
|
more than most.
|
||||||
|
|
||||||
higan's game folders allow all a game's resources
|
higan's game folders allow a game
|
||||||
to be given unique, descriptive filenames,
|
to have unique, descriptive filenames
|
||||||
and to use the file-extension
|
for all its resources,
|
||||||
that's most appropriate for that file.
|
and for each file to use the extension
|
||||||
They also allow emulator-specific data
|
that's most appropriate.
|
||||||
|
They also allow emulator-specific extras
|
||||||
like save-states and the cheat database
|
like save-states and the cheat database
|
||||||
to be kept separate from the game's actual data,
|
to be kept separate from the game's actual data,
|
||||||
by putting it in a sub-folder.
|
by putting it in a sub-folder.
|
||||||
|
@ -78,12 +81,11 @@ see [Game Paks on the higan website][gp].
|
||||||
What's in a game folder?
|
What's in a game folder?
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
As mentioned above,
|
A game folder collects all the information relevant
|
||||||
a game folder collects all the information relevant
|
|
||||||
to emulating a particular game.
|
to emulating a particular game.
|
||||||
Not all of the following files
|
Not all of the following files
|
||||||
are relevant to every emulated console,
|
are relevant for every console,
|
||||||
or to every game on a given console,
|
or even for every game on a console,
|
||||||
but they may be present under particular circumstances.
|
but they may be present under particular circumstances.
|
||||||
|
|
||||||
All the files directly in the game folder
|
All the files directly in the game folder
|
||||||
|
@ -114,12 +116,12 @@ to all emulators that support them:
|
||||||
Games that include a save feature
|
Games that include a save feature
|
||||||
will create this file.
|
will create this file.
|
||||||
Note that it is only written to disk
|
Note that it is only written to disk
|
||||||
when higan exits gracefully,
|
when higan exits gracefully;
|
||||||
if higan crashes or is forced to quit,
|
if higan crashes or is forced to quit,
|
||||||
in-game saves may be lost.
|
in-game saves may be lost.
|
||||||
Other emulators sometimes call this an "SRAM file",
|
Other emulators sometimes call this an "SRAM file",
|
||||||
even though the same filename is used
|
even though the same filename is used
|
||||||
for cartridges that use EEPROM or Flash storage,
|
with games that included EEPROM or Flash storage,
|
||||||
not just battery-backed Static RAM.
|
not just battery-backed Static RAM.
|
||||||
- `rtc.ram`:
|
- `rtc.ram`:
|
||||||
Games that include a calendar or real-time clock
|
Games that include a calendar or real-time clock
|
||||||
|
|
|
@ -4,10 +4,10 @@ is the folder where all the
|
||||||
When [icarus](../interface/icarus.md) imports a game,
|
When [icarus](../interface/icarus.md) imports a game,
|
||||||
it creates or updates
|
it creates or updates
|
||||||
the corresponding game folder in the game library.
|
the corresponding game folder in the game library.
|
||||||
When you use the console menu items
|
When you use the console submenu items
|
||||||
in [higan's Library menu](../interface/higan.md#the-library-menu),
|
in [higan's Library menu](../interface/higan.md#the-library-menu),
|
||||||
it higan shows you the games for that console
|
it higan shows you the games for that console
|
||||||
already in the library.
|
that are already in the library.
|
||||||
|
|
||||||
Inside the game library folder
|
Inside the game library folder
|
||||||
there is a subfolder for each system.
|
there is a subfolder for each system.
|
||||||
|
@ -75,7 +75,7 @@ and telling higan where to find them.
|
||||||
where imported games will be stored.
|
where imported games will be stored.
|
||||||
1. Launch higan,
|
1. Launch higan,
|
||||||
then from [the Settings menu][settingsmenu],
|
then from [the Settings menu][settingsmenu],
|
||||||
choose "Advanced..."
|
choose "Advanced ..."
|
||||||
to open [higan's Advanced settings][advsettings].
|
to open [higan's Advanced settings][advsettings].
|
||||||
1. Click the "Change ..." button on the right.
|
1. Click the "Change ..." button on the right.
|
||||||
A [filesystem browser][fsbrowser] will appear,
|
A [filesystem browser][fsbrowser] will appear,
|
||||||
|
|
|
@ -3,8 +3,8 @@ the emulation equivalent of
|
||||||
a physical game cartridge,
|
a physical game cartridge,
|
||||||
a manifest is like
|
a manifest is like
|
||||||
the circuit board inside the cartridge:
|
the circuit board inside the cartridge:
|
||||||
it controls how all the other parts of the cartridge
|
it connects all the other parts together
|
||||||
talk to one another and to the console itself.
|
and to the console itself.
|
||||||
|
|
||||||
If you load a game into higan,
|
If you load a game into higan,
|
||||||
you can look at the game's manifest
|
you can look at the game's manifest
|
||||||
|
@ -14,15 +14,14 @@ and choosing [Manifest Viewer](../interface/higan-tools.md#the-manifest-viewer).
|
||||||
Why manifests?
|
Why manifests?
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Any given console might support
|
|
||||||
hundreds or thousands of different games,
|
|
||||||
but the vast majority of those games
|
|
||||||
use one of a few different circuit boards.
|
|
||||||
For most consoles,
|
For most consoles,
|
||||||
|
a manifest isn't strictly necessary:
|
||||||
the raw game data provides enough clues
|
the raw game data provides enough clues
|
||||||
to guess a circuit board configuration
|
for emulators to guess the circuit board configuration,
|
||||||
that will get the game running,
|
or at least
|
||||||
but relying on heuristics often leads to problems:
|
to guess a *reasonable* configuration.
|
||||||
|
However,
|
||||||
|
relying on such heuristics often leads to problems:
|
||||||
|
|
||||||
- Inventing heuristics
|
- Inventing heuristics
|
||||||
that correctly guess the configuration
|
that correctly guess the configuration
|
||||||
|
@ -47,10 +46,10 @@ but relying on heuristics often leads to problems:
|
||||||
- If a homebrew developer
|
- If a homebrew developer
|
||||||
takes a game that almost does what they want
|
takes a game that almost does what they want
|
||||||
and changes it slightly,
|
and changes it slightly,
|
||||||
it can result in the emulator
|
it may cause the emulator
|
||||||
doing something completely different
|
to do something completely different
|
||||||
because it now matches
|
because the modified game
|
||||||
some completely different game.
|
is now a closer match to some other game.
|
||||||
- Heuristics can make sensible configurations impossible.
|
- Heuristics can make sensible configurations impossible.
|
||||||
- If a homebrew developer wants
|
- If a homebrew developer wants
|
||||||
a particular hardware configuration
|
a particular hardware configuration
|
||||||
|
@ -63,8 +62,9 @@ but relying on heuristics often leads to problems:
|
||||||
it just used the actual configuration
|
it just used the actual configuration
|
||||||
of the actual hardware.
|
of the actual hardware.
|
||||||
|
|
||||||
Manifests provide a way to *tell* the emulator
|
Manifests provide a way to describe
|
||||||
what hardware configuration to use,
|
*exactly* what hardware configuration to use,
|
||||||
|
no guessing required,
|
||||||
avoiding all these problems entirely.
|
avoiding all these problems entirely.
|
||||||
|
|
||||||
Where do manifests come from?
|
Where do manifests come from?
|
||||||
|
@ -72,8 +72,7 @@ Where do manifests come from?
|
||||||
|
|
||||||
Ideally,
|
Ideally,
|
||||||
everybody who extracts the data from a game cartridge would
|
everybody who extracts the data from a game cartridge would
|
||||||
(at the same time)
|
also record the board configuration in a manifest file.
|
||||||
record the board configuration in a manifest file.
|
|
||||||
Unfortunately,
|
Unfortunately,
|
||||||
manifests were invented long after cartridge extracting,
|
manifests were invented long after cartridge extracting,
|
||||||
so there are a lot of previously extracted games
|
so there are a lot of previously extracted games
|
||||||
|
@ -95,7 +94,7 @@ this doesn't help for any other console.
|
||||||
Even for the Super Famicom,
|
Even for the Super Famicom,
|
||||||
there will always be games
|
there will always be games
|
||||||
too rare to acquire for re-dumping,
|
too rare to acquire for re-dumping,
|
||||||
and homebrew that was never on a cartridge to begin with.
|
and homebrew that was never on a physical cartridge to begin with.
|
||||||
For these games,
|
For these games,
|
||||||
heuristics will always be needed as a fallback,
|
heuristics will always be needed as a fallback,
|
||||||
but at least if the heuristics are wrong
|
but at least if the heuristics are wrong
|
||||||
|
@ -128,12 +127,16 @@ If the manifest that icarus generates
|
||||||
for some particular game
|
for some particular game
|
||||||
is broken or buggy,
|
is broken or buggy,
|
||||||
you'll need to switch the manifest machinery back on
|
you'll need to switch the manifest machinery back on
|
||||||
so you can fix the problem:
|
so you can fix it:
|
||||||
|
|
||||||
- Turn "Create manifests" back on in icarus' settings
|
- Turn on "Create manifests" in icarus' settings
|
||||||
- Re-import the game in question,
|
- Re-import the game in question
|
||||||
to store the broken manifest
|
to store the broken manifest
|
||||||
as `manifest.bml` in the game folder.
|
as `manifest.bml` in the game folder.
|
||||||
- Edit `manifest.bml`
|
- Edit `manifest.bml` as you see fit
|
||||||
- Turn "Ignore manifests" off in higan's settings
|
- Turn off "Ignore manifests" in higan's settings
|
||||||
- Load the game in higan to check that your edit fixed the problem
|
- Load the game in higan to check that your changes fixed the problem
|
||||||
|
|
||||||
|
If the manifest format changes in the future,
|
||||||
|
you'll have to repeat this process
|
||||||
|
to create a fixed manifest in the new format.
|
||||||
|
|
|
@ -109,8 +109,8 @@ or with the appropriate
|
||||||
|
|
||||||
Quick states are useful
|
Quick states are useful
|
||||||
as extra checkpoints
|
as extra checkpoints
|
||||||
in games that don't have them,
|
in games whose checkpoints are too far apart,
|
||||||
or where they aren't close enough together.
|
or in games that don't have checkpoints at all.
|
||||||
Map the "Save Quick State" and "Load Quick State" hotkeys
|
Map the "Save Quick State" and "Load Quick State" hotkeys
|
||||||
to your controller,
|
to your controller,
|
||||||
and you can cheese your way through just about anything.
|
and you can cheese your way through just about anything.
|
||||||
|
|
45
docs/faq.md
45
docs/faq.md
|
@ -6,10 +6,9 @@ to the display's vertical-synchronization (or "vsync") signal,
|
||||||
but the option is hidden
|
but the option is hidden
|
||||||
because it often causes more problems than it solves
|
because it often causes more problems than it solves
|
||||||
(see the next question).
|
(see the next question).
|
||||||
|
|
||||||
To enable video synchronization:
|
To enable video synchronization:
|
||||||
|
|
||||||
- Open the higan's configuration file, `settings.bml`
|
- Open higan's configuration file, `settings.bml`
|
||||||
- On Windows, look in `%LOCALAPPDATA%\higan`
|
- On Windows, look in `%LOCALAPPDATA%\higan`
|
||||||
or beside `higan.exe`
|
or beside `higan.exe`
|
||||||
- On Linux, look in `~/.local/share/higan`
|
- On Linux, look in `~/.local/share/higan`
|
||||||
|
@ -50,8 +49,8 @@ the emulated console's refresh rate:
|
||||||
- The Super Famicom usually runs a little faster than 60Hz
|
- The Super Famicom usually runs a little faster than 60Hz
|
||||||
- the PAL variants of most consoles run at 50Hz
|
- the PAL variants of most consoles run at 50Hz
|
||||||
- the WonderSwan runs at 75Hz
|
- the WonderSwan runs at 75Hz
|
||||||
- While the Game Boy does run its LCD at 60Hz
|
- While the Game Boy does run its LCD at 60Hz,
|
||||||
it can turn it off and on at any time,
|
games can turn the LCD off and on at any time,
|
||||||
requiring emulation to pause
|
requiring emulation to pause
|
||||||
until it can get back in sync
|
until it can get back in sync
|
||||||
with the computer display.
|
with the computer display.
|
||||||
|
@ -120,7 +119,7 @@ requires an Intel Ivy Bridge (or equivalent),
|
||||||
full-speed for the wireframe animations in Mega Man X2
|
full-speed for the wireframe animations in Mega Man X2
|
||||||
requires an even faster computer.
|
requires an even faster computer.
|
||||||
Low-power CPUs like ARM chips,
|
Low-power CPUs like ARM chips,
|
||||||
or Intel Atom and Celeron CPUS
|
or Intel Atom and Celeron CPUs
|
||||||
generally aren't fast enough to emulate the Super Famicom with higan,
|
generally aren't fast enough to emulate the Super Famicom with higan,
|
||||||
although other emulated consoles may work.
|
although other emulated consoles may work.
|
||||||
|
|
||||||
|
@ -168,11 +167,11 @@ Games can and do depend on timing details like
|
||||||
it will interrupt the CPU at exactly the right time
|
it will interrupt the CPU at exactly the right time
|
||||||
for the CPU to fiddle with the video chip".
|
for the CPU to fiddle with the video chip".
|
||||||
higan is therefore very cautious about timing:
|
higan is therefore very cautious about timing:
|
||||||
while it's emulating the audio chip (for example),
|
while it's emulating the CPU (for example),
|
||||||
at every point the emulated CPU *might* interrupt
|
at every point the emulated audio chip *might* interrupt
|
||||||
the emulated audio chip,
|
the emulated CPU,
|
||||||
higan switches to emulating the CPU up to the same point
|
higan switches to emulating the audio chip up to the same point
|
||||||
to find out whether the CPU *will* interrupt it.
|
to find out whether it *will* interrupt the CPU.
|
||||||
|
|
||||||
In this way,
|
In this way,
|
||||||
higan is a little bit like
|
higan is a little bit like
|
||||||
|
@ -180,8 +179,8 @@ an office-worker trying to do the jobs of three other people
|
||||||
by running from desk to desk,
|
by running from desk to desk,
|
||||||
sending the same emails
|
sending the same emails
|
||||||
that those three people would send to each other,
|
that those three people would send to each other,
|
||||||
leaving themselves a note at each desk to remind themselves
|
leaving itself a note at each desk to remind it
|
||||||
where they were up to when they come back.
|
where it was up to when it comes back.
|
||||||
Although this constant switching
|
Although this constant switching
|
||||||
is slow and inefficient,
|
is slow and inefficient,
|
||||||
higan does it
|
higan does it
|
||||||
|
@ -224,8 +223,8 @@ Why can't higan use multiple CPU cores?
|
||||||
|
|
||||||
These days,
|
These days,
|
||||||
most computers contain multiple CPU cores,
|
most computers contain multiple CPU cores,
|
||||||
allowing them to run different programs,
|
allowing them to run different programs
|
||||||
or different parts of the same program
|
(or different parts of the same program)
|
||||||
at the same time.
|
at the same time.
|
||||||
Since higan requires high CPU performance,
|
Since higan requires high CPU performance,
|
||||||
sometimes people suggest that it should split its work
|
sometimes people suggest that it should split its work
|
||||||
|
@ -257,26 +256,28 @@ do their work in exactly the same amount of time
|
||||||
as their hardware counterparts.
|
as their hardware counterparts.
|
||||||
The problem is forty years of technology
|
The problem is forty years of technology
|
||||||
designed to make programs run as fast as possible:
|
designed to make programs run as fast as possible:
|
||||||
optimizing compilers and superscalar, out-of-order CPU architectures
|
optimizing compilers
|
||||||
|
and superscalar, out-of-order CPU architectures
|
||||||
change programs to make them faster,
|
change programs to make them faster,
|
||||||
speeding up some programs more than others
|
speeding up some programs more than others
|
||||||
in ways that are very difficult to understand and predict.
|
in ways that are very difficult to understand and predict.
|
||||||
Even if higan's emulated devices
|
Even if higan's emulated devices
|
||||||
ran at the exact, correct speed
|
ran at the exact, correct speed
|
||||||
on one particular computer,
|
on one particular computer,
|
||||||
they'd still run differently on any other computer,
|
they'd still run differently on
|
||||||
or with a smarter compiler,
|
a computer with a smarter CPU,
|
||||||
or with a smarter CPU.
|
or when compiled with a smarter compiler.
|
||||||
|
|
||||||
Since higan needs its emulated components
|
Since higan needs its emulated components
|
||||||
to run at particular speeds,
|
to run at particular speeds,
|
||||||
and they won't run at those speeds naturally,
|
and it's not practical
|
||||||
|
to make them run at those speeds naturally,
|
||||||
it must force them manually.
|
it must force them manually.
|
||||||
An emulated device runs for a little while,
|
An emulated device runs for a little while,
|
||||||
then all the others are run until they catch up.
|
then all the others are run until they catch up.
|
||||||
It's this careful management,
|
It's this careful management,
|
||||||
regular stopping and starting,
|
regular stopping and starting,
|
||||||
that makes higan slow,
|
that makes higan slow,
|
||||||
not the actual emulation of each device,
|
not the actual emulation of each device.
|
||||||
and so it doesn't make sense
|
Having multiple CPU cores waiting on each other
|
||||||
for higan to be multi-threaded.
|
would not help them wait any faster.
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
Unfortunately,
|
Unfortunately,
|
||||||
there's no standard for
|
there's no cross-platform standard for
|
||||||
displaying video,
|
displaying video,
|
||||||
playing audio,
|
playing audio,
|
||||||
and accepting input from game controllers
|
and accepting input from game controllers.
|
||||||
that works on every operating system.
|
|
||||||
Or rather,
|
Or rather,
|
||||||
there's many standards,
|
there's many standards,
|
||||||
and different ones work best
|
and different ones work best
|
||||||
|
@ -20,7 +19,7 @@ of the Settings window.
|
||||||
|
|
||||||
Here are the most notable drivers
|
Here are the most notable drivers
|
||||||
for each platform
|
for each platform
|
||||||
for each category.
|
in each category.
|
||||||
If your copy of higan
|
If your copy of higan
|
||||||
includes a driver not listed here,
|
includes a driver not listed here,
|
||||||
it's probably a reasonable choice,
|
it's probably a reasonable choice,
|
||||||
|
@ -44,11 +43,11 @@ Video
|
||||||
|
|
||||||
On Windows:
|
On Windows:
|
||||||
|
|
||||||
- **OpenGL** is usually the best choice,
|
- **OpenGL** is the best choice,
|
||||||
since it supports [custom shaders](shaders.md),
|
since it's fast
|
||||||
however it does require support for OpenGL 3.2
|
and it supports [custom shaders](shaders.md),
|
||||||
which excludes some integrated graphics chipsets
|
but requires support for OpenGL 3.2.
|
||||||
and old graphics cards.
|
This excludes some older and weaker hardware.
|
||||||
- **Direct3D** is a good choice
|
- **Direct3D** is a good choice
|
||||||
if OpenGL is unavailable.
|
if OpenGL is unavailable.
|
||||||
It also allows
|
It also allows
|
||||||
|
@ -62,7 +61,7 @@ On Linux:
|
||||||
- **OpenGL** is the best choice,
|
- **OpenGL** is the best choice,
|
||||||
since it's fast
|
since it's fast
|
||||||
and it supports [custom shaders](shaders.md),
|
and it supports [custom shaders](shaders.md),
|
||||||
but requires OpenGL 3.2.
|
but requires support for OpenGL 3.2.
|
||||||
You can check what version of OpenGL
|
You can check what version of OpenGL
|
||||||
your system supports by running
|
your system supports by running
|
||||||
`glxinfo | grep 'core profile version'`
|
`glxinfo | grep 'core profile version'`
|
||||||
|
@ -82,7 +81,7 @@ On Windows:
|
||||||
- **ASIO** offers the lowest possible latency,
|
- **ASIO** offers the lowest possible latency,
|
||||||
but is the least likely to work on any given computer.
|
but is the least likely to work on any given computer.
|
||||||
- **WASAPI** offers low latency,
|
- **WASAPI** offers low latency,
|
||||||
but is only slightly more likely to work.
|
but is only slightly more likely to work than ASIO.
|
||||||
It also offers
|
It also offers
|
||||||
[Exclusive Mode](../interface/higan-settings.md#audio),
|
[Exclusive Mode](../interface/higan-settings.md#audio),
|
||||||
which can improve audio quality and lower latency,
|
which can improve audio quality and lower latency,
|
||||||
|
|
|
@ -219,8 +219,8 @@ and one that uses the DSP1B,
|
||||||
so if it cannot find your game in its manifest database,
|
so if it cannot find your game in its manifest database,
|
||||||
it will assume it uses DSP1B.
|
it will assume it uses DSP1B.
|
||||||
Many games work just as well with either variant,
|
Many games work just as well with either variant,
|
||||||
but Pilotwings requires the DSP1 firmware,
|
but *Pilotwings* requires the DSP1 firmware,
|
||||||
while Ballz 3D requires the DSP1B.
|
while *Ballz 3D* requires the DSP1B.
|
||||||
|
|
||||||
If you try to import a game
|
If you try to import a game
|
||||||
using the "Import ROM Files ..." option
|
using the "Import ROM Files ..." option
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
The consoles that higan emulates
|
The consoles that higan emulates
|
||||||
are similar in many ways,
|
are similar in many ways,
|
||||||
but some of them do have particular quirks
|
but some of them do have particular quirks of their own.
|
||||||
that you should be aware of.
|
|
||||||
|
|
||||||
Music and Sound Effect Volume on the Mega Drive
|
Music and Sound Effect Volume on the Mega Drive
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
|
|
||||||
The Mega Drive has two different audio-generating chips:
|
The Mega Drive has two different audio-generating chips:
|
||||||
|
|
||||||
- the SN76489 or "PSG" chip,
|
- the SN76489 or "PSG" chip
|
||||||
inherited from the Master System,
|
inherited from the Master System,
|
||||||
mostly used for sound-effects
|
mostly used for sound-effects
|
||||||
like Sonic picking up rings
|
|
||||||
- the YM2612 or "FM" chip,
|
- the YM2612 or "FM" chip,
|
||||||
mostly used for music
|
mostly used for music
|
||||||
|
|
||||||
With two different sound sources,
|
With two different sound sources,
|
||||||
it's important that they have similar volumes,
|
it's important that they have similar volumes
|
||||||
or the sound-effects will drown out the music,
|
or one kind of sound will drown out the other.
|
||||||
or vice-versa.
|
|
||||||
Sega did *not* do this,
|
Sega did *not* do this,
|
||||||
and different hardware revisions
|
and different hardware revisions
|
||||||
used different relative volumes.
|
used different relative volumes.
|
||||||
|
@ -26,8 +23,8 @@ used different relative volumes.
|
||||||
higan currently
|
higan currently
|
||||||
sets the PSG volume to [125% of the FM volume][vol],
|
sets the PSG volume to [125% of the FM volume][vol],
|
||||||
based on [a Sega Genesis model 1 VA6][va6] that byuu owns.
|
based on [a Sega Genesis model 1 VA6][va6] that byuu owns.
|
||||||
If you feel sound-effects in higan's Mega Drive core
|
If you feel sound-effects in higan's Mega Drive emulation
|
||||||
are too loud or too quiet,
|
are too loud or too quiet compared to the music,
|
||||||
you may be comparing it
|
you may be comparing it
|
||||||
to a Mega Drive calibrated to a different scale
|
to a Mega Drive calibrated to a different scale
|
||||||
(or to an emulator tweaked to match such a Mega Drive).
|
(or to an emulator tweaked to match such a Mega Drive).
|
||||||
|
@ -50,7 +47,7 @@ Games that required
|
||||||
the extra hardware in the Game Boy Color
|
the extra hardware in the Game Boy Color
|
||||||
came in transparent cartridges,
|
came in transparent cartridges,
|
||||||
and had a slightly different shape
|
and had a slightly different shape
|
||||||
to prevent them from being used in original Game Boys..
|
to prevent them from being used in original Game Boys.
|
||||||
ROM files for these games
|
ROM files for these games
|
||||||
typically have filenames ending in `.gbc`.
|
typically have filenames ending in `.gbc`.
|
||||||
|
|
||||||
|
@ -117,17 +114,9 @@ higan must guess which storage type to use
|
||||||
and sometimes it guesses incorrectly.
|
and sometimes it guesses incorrectly.
|
||||||
|
|
||||||
If higan guesses incorrectly for a game you want to play,
|
If higan guesses incorrectly for a game you want to play,
|
||||||
you will need to turn on
|
you will need to override the automatically-generated manifest.
|
||||||
"Create manifests" in
|
See [Ignoring manifests](concepts/manifests.md#ignoring-manifests)
|
||||||
[the Icarus settings dialog](interface/icarus.md#the-icarus-settings-dialog),
|
for details.
|
||||||
turn off
|
|
||||||
"Ignore manifests" in
|
|
||||||
[higan's Advanced settings](interface/higan-settings.md#advanced),
|
|
||||||
re-import the game,
|
|
||||||
and edit `manifest.bml` in
|
|
||||||
[the game folder](concepts/game-folders.md)
|
|
||||||
to describe the correct storage type.
|
|
||||||
Try importing other GBA games to see what save types they use.
|
|
||||||
|
|
||||||
For more discussion of the GBA save type mess,
|
For more discussion of the GBA save type mess,
|
||||||
see [What's the deal with... GBA save files?][gbasaves]
|
see [What's the deal with... GBA save files?][gbasaves]
|
||||||
|
@ -145,7 +134,7 @@ included a rumble motor within the cartridge itself.
|
||||||
Because higan does not currently support
|
Because higan does not currently support
|
||||||
game-specific controller features,
|
game-specific controller features,
|
||||||
to experience the rumble effect in higan
|
to experience the rumble effect in higan
|
||||||
you'll need to configure the console itself:
|
you'll need to configure the console:
|
||||||
|
|
||||||
- Open
|
- Open
|
||||||
[higan's Input settings](interface/higan-settings.md#input)
|
[higan's Input settings](interface/higan-settings.md#input)
|
||||||
|
|
Loading…
Reference in New Issue