Add some documentation about what's in various bsnes directories.

This commit is contained in:
Tim Allen 2020-11-03 23:38:25 +11:00 committed by Screwtapello
parent 09100f5d88
commit 33cb7eb106
2 changed files with 84 additions and 0 deletions

53
bsnes/README.md Normal file
View File

@ -0,0 +1,53 @@
bsnes source code
=================
A guide to what all these directories are for:
- [Database](./Database/)
contains the databases bsnes uses
to figure out what circuit board a game expects,
and also the database of pre-made game cheats
- [emulator](./emulator/)
contains the interface
that the emulation core in [sfc](./sfc/) implements
- It comes from higan v106,
which has many emulation cores
that all implement the same interface —
bsnes only has one,
but the interface is still a good abstraction,
so it's still here.
- [filter](./filter/)
contains classic CPU-based image upscaling filters,
like HQ2x and Super Eagle
- [gb](./gb/)
contains the SameBoy emulator code
used for Super Game Boy emulation
- [heuristics](./heuristics/)
contains the logic that guesses
which memory map a particular game expects
and what extra hardware it assumes is present,
when a game cannot be found in the database
- [Locale](./Locale/)
contains translation databases
that bsnes can use to display its user interface
in a different language
- [lzma](./lzma/)
contains the 7-Zip SDK
allowing bsnes to understad `.7z` archives
- [processor](./processor/)
contains all the CPU emulation cores
used by the hardware bsnes emulates
- Another holdover from higan v106,
where different supported systems
happen to use the same model CPU,
so the CPU emulation cores
are not specific to a system
- [sfc](./sfc/)
contains Super Famicom (SNES) emulation code
- [target-bsnes](./target-bsnes/)
contains the normal bsnes user interface
- [target-libretro](./target-libretro/)
implements the "libretro" API
on top of bsnes' native
[emulator](./emulator/) API,
so bsnes can be used with libretro-based frontends

View File

@ -0,0 +1,31 @@
bsnes user interface
====================
This directory contains the code for
the normal bsnes user interface.
- [bsnes.cpp](./bsnes.cpp)
contains the `nall::main()` entry point
- [input](./input/)
contains the glue logic
that maps incoming controller inputs
into emulated controller inputs and hotkey signals
- [presentation](./presentation/)
contains the code that sets up the main window
(menu bar, status bar, etc.)
- [program](./program/)
contains the glue logic
that connects the UI to the emulation core,
generating manifests,
loading games,
displaying video and playing audio, etc.
- [resource](./resource/)
contains all the data bsnes uses at runtime,
like icons,
the about box logos,
the SNES board database
- [settings](./settings/)
contains Settings window stuff
- [tools](./tools/)
contains Tools window stuff