mirror of https://github.com/bsnes-emu/bsnes.git
Start fleshing out the "console-specific notes" section.
This commit is contained in:
parent
1faa263a4a
commit
fe9820481f
134
docs/notes.md
134
docs/notes.md
|
@ -1,15 +1,137 @@
|
||||||
TODO
|
The consoles that higan emulates
|
||||||
|
are similar in many ways,
|
||||||
|
but some of them do have particular quirks
|
||||||
|
that you should be aware of.
|
||||||
|
|
||||||
The WonderSwan rotates!
|
Video Shaders and the Super Famicom (and Mega Drive)
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
Shaders look weird on Super Famicom because of interlace/hi-res
|
Shaders look weird on Super Famicom because of interlace/hi-res
|
||||||
|
|
||||||
|
[Video Shaders](guides/shaders.md)
|
||||||
|
customize how higan scales
|
||||||
|
the low-resolution video of the emulated console
|
||||||
|
up to the high-resolution of the computer display.
|
||||||
|
Simple shaders
|
||||||
|
(like "None"
|
||||||
|
and the third-party "AANN" shader)
|
||||||
|
just blindly scale up the images they're given,
|
||||||
|
but sophisticated shaders
|
||||||
|
(such as the third-party "xBR" shader)
|
||||||
|
try to produce higher-quality output
|
||||||
|
by recognising particular patterns of pixel,
|
||||||
|
like taking three diagonal pixels
|
||||||
|
and turning that into a smooth diagonal line.
|
||||||
|
These shaders assume that
|
||||||
|
each pixel drawn by the game's artists
|
||||||
|
is a single pixel in the video output they analyze.
|
||||||
|
|
||||||
|
Most of the consoles higan emulates
|
||||||
|
can only output video at one specific resolution,
|
||||||
|
so this "one pixel equals one pixel" rule holds true,
|
||||||
|
and shaders like "xBR" work just fine.
|
||||||
|
Unfortunately,
|
||||||
|
this is not the case for the Super Famicom.
|
||||||
|
|
||||||
|
The "normal" video mode for the Super Famicom
|
||||||
|
draws 256 pixels across the width of the screen,
|
||||||
|
but it also supports a "hi-res" mode
|
||||||
|
that draws 512 pixels on each line.
|
||||||
|
Since Super Famicom games can enable hi-res mode at any time,
|
||||||
|
even halfway through a frame,
|
||||||
|
higan always renders Super Famicom video output at 512 pixels wide,
|
||||||
|
just in case hi-res mode is enabled later on.
|
||||||
|
This means that in "normal" mode,
|
||||||
|
each pixel drawn by the game's artists
|
||||||
|
becomes two pixels in the video output,
|
||||||
|
breaking the assumption pattern-based shaders are based on.
|
||||||
|
|
||||||
|
The Super Famicom has a similar issue in the vertical direction:
|
||||||
|
normally,
|
||||||
|
an NTSC-based Super Famicom draws 238 rows of output,
|
||||||
|
~60 times per second.
|
||||||
|
This is sometimes referred to as "240p" video.
|
||||||
|
When a game turns on "interlaced" mode,
|
||||||
|
it draws ~480 lines of output,
|
||||||
|
~30 times a second;
|
||||||
|
first the ~240 odd-numbered lines,
|
||||||
|
then going back to the top and drawing the ~240 even-numbered lines.
|
||||||
|
This is sometimes referred to as "480i" video.
|
||||||
|
|
||||||
|
TODO: https://board.byuu.org/viewtopic.php?p=44758#p44758
|
||||||
|
|
||||||
|
Music and Sound Effect Volume on the Mega Drive
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
The Mega Drive has two different audio-generating chips:
|
||||||
|
|
||||||
|
- the SN76489 or "PSG" chip,
|
||||||
|
inherited from the Master System,
|
||||||
|
mostly used for sound-effects
|
||||||
|
like Sonic picking up rings
|
||||||
|
- the YM2612 or "FM" chip,
|
||||||
|
mostly used for music
|
||||||
|
|
||||||
|
With two different sound sources,
|
||||||
|
it's important that they have similar volumes,
|
||||||
|
or the sound-effects will drown out the music,
|
||||||
|
or vice-versa.
|
||||||
|
Sega did *not* do this,
|
||||||
|
and different hardware revisions
|
||||||
|
used different relative volumes.
|
||||||
|
|
||||||
|
higan currently
|
||||||
|
sets the PSG volume to [125% of the FM volume][vol],
|
||||||
|
based on [a Sega Genesis model 1 VA6][va6] that byuu owns.
|
||||||
|
If you feel sound-effects in higan's Mega Drive core
|
||||||
|
are too loud or too quiet,
|
||||||
|
you may be comparing it
|
||||||
|
to a Mega Drive calibrated to a different scale
|
||||||
|
(or to an emulator tweaked to match such a Mega Drive).
|
||||||
|
|
||||||
|
[vol]: https://board.byuu.org/viewtopic.php?p=42482#p42482
|
||||||
|
[va6]: https://board.byuu.org/viewtopic.php?p=42195#p42195
|
||||||
|
|
||||||
Playing Game Boy Colour games in Game Boy mode
|
Playing Game Boy Colour games in Game Boy mode
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
|
|
||||||
GBA in-game saves are Difficult
|
Games for the original Game Boy
|
||||||
|
came in solid grey cartridges,
|
||||||
|
and only supported four-shade greyscale graphics.
|
||||||
|
ROM files for these games
|
||||||
|
typically have filenames ending in `*.gb`.
|
||||||
|
|
||||||
PSG volume for the Mega Drive
|
The Game Boy Color played all the original Game Boy games,
|
||||||
(see https://board.byuu.org/viewtopic.php?p=42158#p42158 for info)
|
but extended the hardware to support colour graphics.
|
||||||
|
Games that required
|
||||||
|
the extra hardware in the Game Boy Color
|
||||||
|
came in transparent cartridges.
|
||||||
|
ROM files for these games
|
||||||
|
typically have filenames ending in `*.gbc`.
|
||||||
|
|
||||||
|
TODO: Rename files before import!
|
||||||
|
Or afterward.
|
||||||
|
|
||||||
|
In-Game Saves and the Game Boy Advance
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
TODO: GBA in-game saves are Difficult
|
||||||
|
|
||||||
|
Rumble compatibility for Game Boy (Color)
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
TODO: Test Pokémon Pinball
|
||||||
|
|
||||||
|
Rumble compatibility for Game Boy Advance
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
Some GBA carts contained an actual rumble feature (which?),
|
||||||
|
some only supported rumble via the GBA Player (which?).
|
||||||
|
Which does higan support?
|
||||||
|
|
||||||
|
WonderSwan rotation
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
TODO: The WonderSwan rotates!
|
||||||
|
|
||||||
Rumble for GB and GBA?
|
|
||||||
|
|
Loading…
Reference in New Issue