More cleanups and revision.

This commit is contained in:
Tim Allen
2017-08-24 18:34:37 +10:00
parent d621136d69
commit 15b3dc8b0b
6 changed files with 252 additions and 212 deletions

View File

@@ -61,8 +61,9 @@ because there's two parts to it:
telling icarus where to put imported games, telling icarus where to put imported games,
and telling higan where to find them. and telling higan where to find them.
1. If necessary, 1. Move your existing game library folder
create the folder you want higan to use to the new location,
or otherwise create the folder you want higan to use
as its game library. as its game library.
1. Launch icarus, 1. Launch icarus,
then click the "Settings ..." button in the lower-right, then click the "Settings ..." button in the lower-right,

View File

@@ -11,28 +11,56 @@ unusual hardware.
Regular games Regular games
------------- -------------
icarus supports importing games icarus can import games
in the most commonly-used formats in the most commonly-used formats
for each supported console, for each supported console,
and also those same formats inside `.zip` files. and also those same formats inside `.zip` files
(as long as tthe `.zip` file contains only one game).
More advanced compression formats More advanced compression formats
like RAR or 7-zip are not supported. like RAR or 7-zip are not supported.
For most games To import a game,
that do not use special chips or co-processors, open [the Library menu](../interface/higan.md#the-library-menu),
importing a game is straight-forward.
From [the Library menu](../interface/higan.md#the-library-menu)
choose "Load ROM File ..." choose "Load ROM File ..."
to open [a filesystem browser](../interface/common.md#the-filesystem-browser), to open [a filesystem browser](../interface/common.md#the-filesystem-browser),
choose the game you want to play, choose the ROM file of the game you want to play,
and it will be imported into the library and loaded. and it will be imported into the library and loaded.
To play the game again **Note:**
select the console the game runs on from If you want to import many games,
[the Library menu](../interface/higan.md#the-library-menu) run icarus directly,
to open another or choose "Import ROM Files ..."
[filesystem browser](../interface/common.md#the-filesystem-browser) from the Library menu
that lists all the previously-imported games for that platform. (which just runs icarus anyway).
See [the icarus documentation](../interface/icarus.md) for details.
To play a game for a particular console from your library,
open the Library menu,
pick the console manufacturer submenu
(Nintendo for the Super Famicom,
Bandai for the WonderSwan,
etc.)
then choose the appropriate console menu item.
A filesystem browser will appear
listing all the games in your library
for that particular console.
Select the game you want to play
and click the Open button,
or just double-click the game,
and it will begin playing as though you'd just turned on the console.
**Note:**
Sometimes
the NTSC and PAL variants of a particular console
behave differently,
or the Japanese and American variants.
When choosing a game from the Game Library,
a drop-down list in the bottom-right of the filesystem browser
allows you to choose which regional variation
of the console it should emulate.
For most consoles,
higan can reliably guess which variant to use,
and the list defaults to "Auto".
Games with co-processor firmware Games with co-processor firmware
-------------------------------- --------------------------------

View File

@@ -31,7 +31,7 @@ It also includes some level of support for these consoles:
- Sega Megadrive/Genesis - Sega Megadrive/Genesis
- NEC PC Engine/TurboGrafx 16 (but not the CD-ROM² System/TurboGrafx-CD) - NEC PC Engine/TurboGrafx 16 (but not the CD-ROM² System/TurboGrafx-CD)
- NEC SuperGrafx - NEC SuperGrafx
- Bandai Wonderswan - Bandai WonderSwan
- Bandai Wonderswan Color - Bandai Wonderswan Color
**Note:** Some consoles were released under different names **Note:** Some consoles were released under different names

View File

@@ -1,65 +1,31 @@
When you launch higan, When you launch higan
the main window appears, the main window appears,
with a menu-bar across the top, with a menu-bar across the top,
a status-bar across the bottom, a status-bar across the bottom,
and a large area in the middle where the game's video output appears. and a large area in the middle that shows
the running game's video output.
The Library menu The Library menu
---------------- ----------------
The Library menu allows you Manufacturer submenus
to import games into higan's game library, allow you to play
and to load games from the library. games you've already imported
higan organises the games in your library into higan's
according to which console they were intended to run on. [game library](../concepts/game-library.md).
See [Importing and playing games](../guides/import.md).
To play a game for a particular console from your library, **Load ROM File ...**
click on the Library menu, opens a [filesystem browser](common.md#the-filesystem-browser)
click on the console manufacturer submenu allowing you to choose a single ROM file.
(Nintendo for the Super Famicom, It will be imported and immediately start playing.
Bandai for the WonderSwan, See [Importing and playing games](../guides/import.md).
etc.)
then click on the console menu item.
A window will appear listing all the games in your library
for that particular console.
Select the game you want to play
and click the Open button,
or just double-click the game,
and it will begin playing as though you'd just turned on the console.
**Note:** **Import ROM Files ...**
Sometimes launches the icarus importing tool,
the NTSC and PAL variants of a particular console allowing you to bulk-import many ROM files at once.
behave differently, See [the icarus documentation](icarus.md).
or the Japanese and American variants.
When opening a game from the Game Library,
a drop-down list in the bottom-right of the window
allows you to choose which regional variation
of the console it should emulate.
For most consoles,
higan can reliably guess which variant to use,
and the list defaults to "Auto".
To add a new game to your library,
choose "Load ROM File ..." from the Library menu.
A [filesystem browser](common.md#the-filesystem-browser) will appear,
allowing you to pick any ROM image for any supported system,
with any of the most common file extensions.
It also allows loading ROM images from `.zip` archives,
if the archive contains a single ROM image.
**Note:** Some games require extra steps to import correctly;
see [Importing and playing games](../guides/import.md) for details.
To add many games at once,
run icarus,
or choose "Import ROM Files ..." from the Library menu
(which just runs icarus anyway).
See [the icarus interface](icarus.md)
for more information about bulk-importing.
For more information about the higan game library,
see [The Game Library](../concepts/game-library.md).
The console menu The console menu
--------------- ---------------
@@ -80,51 +46,59 @@ to the particular console being emulated.
All consoles will have some of the following items, All consoles will have some of the following items,
but few consoles have all of them. but few consoles have all of them.
- **Controller Port 1**
**Controller Port 1**
allows you allows you
to connect different emulated controllers to connect different emulated controllers
to the first controller port, to the first controller port,
if there is one. if there is one.
- See [higan's Input settings](higan-settings.md#input) See [higan's Input settings](higan-settings.md#input)
for information about configuring for information about configuring
which host controller inputs are used which PC controller inputs are used
for the emulated controllers. for the emulated controllers.
- This menu appears for the Famicom,
This menu appears for the Famicom,
even though the Famicom did not support alternate controllers, even though the Famicom did not support alternate controllers,
because the Famicom emulation core also emulates the NES, because the Famicom emulation core also emulates the NES,
which did. which did.
- **Controller Port 2**
**Controller Port 2**
allows you allows you
to connect different emulated controllers to connect different emulated controllers
to the second controller port, to the second controller port,
if there is one. if there is one.
- See [higan's Input settings](higan-settings.md#input) See [higan's Input settings](higan-settings.md#input)
for information about configuring for information about configuring
which host controller inputs are used which PC controller inputs are used
for the emulated controllers. for the emulated controllers.
- This menu appears for the Famicom,
This menu appears for the Famicom,
even though the Famicom did not support alternate controllers, even though the Famicom did not support alternate controllers,
because the Famicom emulation core also emulates the NES, because the Famicom emulation core also emulates the NES,
which did. which did.
- **Expansion Port**
**Expansion Port**
allows you allows you
to connect different emulated devices to connect different emulated devices
to the console's expansion port, to the console's expansion port,
if there is one. if there is one.
- For the Super Famicom,
For the Super Famicom,
the [21fx][21fx] is a homebrew device the [21fx][21fx] is a homebrew device
that allows a program running on a PC that allows a program running on a PC
to control a physical Super Famicom (or SNES). to control a physical Super Famicom (or SNES).
This option allows the same program This option allows the same program
to control the emulated SNES, to control the emulated SNES,
for development or testing. for development or testing.
- **Power Cycle**
**Power Cycle**
restarts the loaded game restarts the loaded game
as though the emulated console were switched off and on again. as though the emulated console were switched off and on again.
- **Unload**
**Unload**
stops the current game, stops the current game,
as though the emulated console were switched off. as though the emulated console were switched off.
You can load the same or a different game You can load a new game
from [the Library menu](#the-library-menu). from [the Library menu](#the-library-menu).
[21fx]: https://github.com/defparam/21FX [21fx]: https://github.com/defparam/21FX
@@ -135,50 +109,64 @@ The Settings menu
The Settings menu allows you to configure things The Settings menu allows you to configure things
that aren't specific to any particular console. that aren't specific to any particular console.
- **Video Scale** determines the size and shape
**Video Scale** determines the size
of the emulated console's video output of the emulated console's video output
in windowed mode when higan is running in windowed mode
(as opposed to fullscreen). (as opposed to fullscreen).
- **Video Emulation** applies various effects
**Video Emulation** applies various effects
to the emulated console's video output to the emulated console's video output
to reproduce some behaviours to reproduce some behaviours
that aren't technically part of the console itself. that aren't technically part of the console itself:
- "Blurring" simulates the limited horizontal resolution
- **Blurring**
simulates the limited horizontal resolution
of standard-definition TVs of standard-definition TVs
by blurring together horizontally-adjacent pixels. by blurring together horizontally-adjacent pixels.
Games like Jurassic Park for the Super Famicom For hand-held consoles,
depend on this to emulate a transparency effect.
For hand-held consoles like the Game Boy Advance,
this simulates the slow response time this simulates the slow response time
of the cheap LCD screens these consoles used of the cheap LCD screens these consoles used
by blurring each output frame with the previous one. by blending each output frame with the previous one.
- "Colors" simulates the way a console's display device - Games like
Jurassic Park for the Super Famicom
or Chikyuu Kaihou Gun ZAS for the Game Boy
depend on this to emulate a transparency effect.
- **Colors**
simulates the way a console's display device
differs from modern computer monitor's colour reproduction. differs from modern computer monitor's colour reproduction.
In particular, In particular,
it simulates the slightly-different gamma correction it simulates the slightly-different gamma correction
used by the Super Famicom, used by the Super Famicom,
the dim, washed out colours of the original Game Boy Advance, the dim, washed out colours of the original Game Boy Advance,
and the pea-green display of the original Game Boy. and the pea-green display of the original Game Boy.
- **Video Shader** controls
**Video Shader** controls
how the low-resolution video output of the emulated console how the low-resolution video output of the emulated console
is scaled up to suit modern high-resolution displays. is scaled up to suit modern high-resolution displays.
The availability of items in this submenu depends on The availability of items in this submenu depends on
which video driver higan is using, which video driver higan is using,
so see [Choosing drivers](../guides/drivers.md) for more information. so see [Choosing drivers](../guides/drivers.md) for more information.
- "None" draws each output pixel according to
- **None**
draws each output pixel according to
the colour of the single nearest input pixel, the colour of the single nearest input pixel,
sometimes called "nearest neighbour" scaling. sometimes called "nearest neighbour" scaling.
This produces unnaturally crisp and blocky images. This produces unnaturally crisp and blocky images.
- "Blur" draws each output pixel by
- **Blur**
draws each output pixel by
averaging the colours of the four nearest input pixels, averaging the colours of the four nearest input pixels,
sometimes called "bilinear" scaling. sometimes called "bilinear" scaling.
This produces unnaturally blurry images. This produces unnaturally blurry images.
- When using the OpenGL driver, - When using the OpenGL driver,
an additional item appears in this menu for an additional item appears in this menu for
each installed Quark shader. each installed shader.
See [Using video shaders](../guides/shaders.md) See [Using video shaders](../guides/shaders.md)
for details. for details.
- **Synchronize Audio**
**Synchronize Audio**
causes higan to wait for audio playback to complete causes higan to wait for audio playback to complete
before resuming emulation. before resuming emulation.
This should reduce popping and glitching noises, This should reduce popping and glitching noises,
@@ -186,23 +174,30 @@ that aren't specific to any particular console.
If your PC cannot emulate at full-speed, If your PC cannot emulate at full-speed,
(60fps for most consoles, 75fps for WonderSwan) (60fps for most consoles, 75fps for WonderSwan)
this has no noticable effect. this has no noticable effect.
- **Mute Audio**
**Mute Audio**
causes higan to not output sound from the emulated console. causes higan to not output sound from the emulated console.
The sound hardware is still emulated. The sound hardware is still emulated.
- **Show Status Bar**
**Show Status Bar**
causes higan to show or hide the status bar causes higan to show or hide the status bar
at the bottom of the window. at the bottom of the window.
This option has no effect in full-screen mode. This option has no effect in full-screen mode.
See [The status bar](#the-status-bar) for more information. See [The status bar](#the-status-bar) for more information.
- **Video ...**
**Video ...**
opens [higan's Video settings](higan-settings.md#video). opens [higan's Video settings](higan-settings.md#video).
- **Audio ...**
**Audio ...**
opens [higan's Audio settings](higan-settings.md#audio). opens [higan's Audio settings](higan-settings.md#audio).
- **Input ...**
**Input ...**
opens [higan's Input settings](higan-settings.md#input). opens [higan's Input settings](higan-settings.md#input).
- **Hotkeys ...**
**Hotkeys ...**
opens [higan's Hotkeys settings](higan-settings.md#hotkeys). opens [higan's Hotkeys settings](higan-settings.md#hotkeys).
- **Advanced ...**
**Advanced ...**
opens [higan's Advanced settings](higan-settings.md#advanced). opens [higan's Advanced settings](higan-settings.md#advanced).
[svsa]: #why-do-synchronize-video-and-synchronize-audio-conflict [svsa]: #why-do-synchronize-video-and-synchronize-audio-conflict
@@ -213,19 +208,23 @@ The Tools menu
The Tools menu The Tools menu
contains features for manipulating the emulated console. contains features for manipulating the emulated console.
- **Save Quick State** **Save Quick State**
stores the current state of the emulated console stores the current state of the emulated console
into one of the quick state slots. into one of the quick state slots.
See [Save States](../concepts/save-states.md) for more information. See [Save States](../concepts/save-states.md) for more information.
- **Load Quick State**
**Load Quick State**
restores the emulated console to restores the emulated console to
a state previously saved to one of the quick state slots. a state previously saved to one of the quick state slots.
See [Save States](../concepts/save-states.md) for more information. See [Save States](../concepts/save-states.md) for more information.
- **Cheat Editor**
**Cheat Editor**
opens [the Cheat Editor window](higan-tools.md#the-cheat-editor) opens [the Cheat Editor window](higan-tools.md#the-cheat-editor)
- **State Manager**
**State Manager**
opens [the State Manager window](higan-tools.md#the-state-manager) opens [the State Manager window](higan-tools.md#the-state-manager)
- **Manifest Viewer**
**Manifest Viewer**
opens [the Manifest Viewer window](higan-tools.md#the-manifest-viewer) opens [the Manifest Viewer window](higan-tools.md#the-manifest-viewer)
The Help menu The Help menu
@@ -233,10 +232,11 @@ The Help menu
The Help menu contains information about higan itself. The Help menu contains information about higan itself.
- **Documentation** **Documentation**
loads the official higan documentation loads the official higan documentation
in your web-browser. in your web-browser.
- **About**
**About**
opens the About dialog, opens the About dialog,
which displays basic information about higan, which displays basic information about higan,
including the version number. including the version number.

View File

@@ -2,7 +2,15 @@ When launching icarus,
directly or by picking "Import ROM Files ..." directly or by picking "Import ROM Files ..."
from higan's [Library menu](higan.md#the-library-menu), from higan's [Library menu](higan.md#the-library-menu),
the main icarus window appears. the main icarus window appears.
This is [a filesystem browser](common.md#the-filesystem-browser), This window allows you to bulk-import ROM files
into [higan's game library][gamelib],
and also to access icarus' settings.
Bulk importing ROM files
------------------------
icarus' main window
is [a filesystem browser](common.md#the-filesystem-browser),
with customisations: with customisations:
- The filesystem browser only lists - The filesystem browser only lists
@@ -15,22 +23,24 @@ with customisations:
- You can un-tick all the check-boxes - You can un-tick all the check-boxes
by pressing "Unselect All" in the bottom-left. by pressing "Unselect All" in the bottom-left.
Pressing "Settings ..." in the bottom-right
opens [the icarus Settings dialog](#the-icarus-settings-dialog).
Pressing "Import ..." in the bottom-right Pressing "Import ..." in the bottom-right
will close the filesystem browser will close the filesystem browser
then try to import all the files then try to import all the files
whose check-boxes are ticked whose check-boxes are ticked
into [the Game Library][gamelib]. into [the Game Library][gamelib].
icarus displays a progress dialog during the import process. icarus displays a progress dialog during the import process,
and a result window if any errors occurred.
**Note:** Some games require extra steps to import correctly; **Note:** Some games require extra steps to import correctly;
see [the Game Library][gamelib] for details. see [Importing and playing games](../guides/import.md) for details.
The icarus Settings dialog The icarus Settings dialog
-------------------------- --------------------------
Pressing "Settings ..."
in the bottom-right corner of the main icarus window
opens the settings dialog.
The icarus Settings dialog contains the following settings: The icarus Settings dialog contains the following settings:
- **Library Location** determines - **Library Location** determines

View File

@@ -98,6 +98,7 @@ struct InputJoypadUdev {
} }
auto rumble(uint64_t id, bool enable) -> bool { auto rumble(uint64_t id, bool enable) -> bool {
print("Joypad ", id, " rumble: ", enable, "\n");
for(auto& jp : joypads) { for(auto& jp : joypads) {
if(jp.hid->id() != id) continue; if(jp.hid->id() != id) continue;
if(!jp.hid->rumble()) continue; if(!jp.hid->rumble()) continue;