Commit graph

61 commits

Author SHA1 Message Date
Christopher Bonhage 6b7c2af8d4 Add support for 768Kbit SRAM save type
Fixes a Segfault when loading Dezaemon 3D.

  * Unfortunately, Dezaemon 3D does not actually work yet. It appears to
    fail the SRAM test, which still needs further investigation.

Adds an option alias for sram256k to disambiguate with new sram768k option.
2021-12-17 21:18:48 +01:00
Giovanni Bajo 87ed667c38 Show Windows console when isviewer is present. 2021-09-06 23:35:40 +02:00
James Lambert ee3d2fcc47 Implement gdb debugger 2021-01-10 17:07:29 -07:00
Simon Eriksson a109ac02de Cart DB updates 2020-05-31 20:55:02 +02:00
Lauri Kasanen 9812f78917 Add profiling support 2018-12-16 20:04:09 +02:00
Thomas Lercher 8dfae37edb Fix thread_setname handling for macOS and older Windows APIs 2018-05-05 23:01:35 +02:00
Thomas Lercher c16a317b3d Add thread names 2018-05-05 17:43:36 +02:00
Tyler J. Stachecki 294cb39d08 Report SSE4.1 build status correctly.
Fixes #83.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
2018-02-25 20:48:13 -05:00
queueRAM ac01d73146 Make save file warning messages consistent 2018-02-25 19:30:34 +00:00
queueRAM 9c5c5bb1fb Verify save file options for entries in cart DB
If an entry in the cartridge database specifies use of a save type, then
verify that save type is present in the options. If not, warn and allocate
the save file in RAM.

Fixes #76
2018-02-20 05:55:20 +00:00
Mike Ryan 8d0e7bb627 pi: add support for IS Viewer 64
When -is-viewer is passed on the command line, create an IS Viewer
object that intercepts writes at 0x13FF0000. This is used by Ocarina of
Time Master Quest Debug to log debug messages.

The messages are encoded in EUC-JP, so we bring in iconv to convert that
to UTF-8 so the messages can be printed to modern consoles.

Props to jrra (@jkbenaim) and spinout for reverse engineering the
interface and documenting it: http://wiki.spinout182.com/w/IS64
2017-02-28 19:55:55 -08:00
Mike Ryan 6acc6931ee core: detect CPU extensions at runtime and throw warning/error
If cen64 is compiled with CPU extensions not supported by the running
CPU, throw an error. If the code is compiled with older extensions but
the running CPU supports faster ones, throw a warning.
2017-02-14 20:11:57 -08:00
Mike Ryan 36a4a6fdfa dd: identify IPL and add support for all known dumped IPLs
This also fixes a regression introduced in 3900be4 that prevented the DD
IPL from booting.
2016-08-31 18:33:15 -07:00
Mike Ryan 406b080fd1 multithread: stop all threads from running when window is closed
Add a "running" boolean to the master device struct, and set it to false
when the main window is closed. All the tight inner while (1) loops now
become while (running).

Closes #24
2016-06-19 09:56:24 -07:00
Mike Ryan 73f4420a4c fix all build warnings, does not affect functionality 2016-06-16 20:40:51 -07:00
Simon Eriksson 802556002e Added region field in cart DB.
This field is required in order to distinguish between regional
versions where the game ID is the same but the save type differ,
such as the Castlevania games.

Also added more Japanese-specific game IDs and edited some descriptions.
2016-04-03 11:12:31 -04:00
Simon Eriksson 1b33cffa9c Add description field in the cart DB.
This description is printed along with the ID when a cart is detected.
Also includes a fix to a bug in the cart DB verification function.
2016-03-06 13:56:19 -05:00
Tyler J. Stachecki d2d9dd6371 simer's cart db patch.
simer suggested (and implemented) the use of ROM IDs instead
of titles: "I've also found that the header name in some cases
are too inprecise, for example "TOP GEAR RALLY" has EEPROM 4K
for the Japanese and European versions, but not for the American.
2016-02-27 15:39:26 -05:00
Tyler J. Stachecki bdee3731ae Don't abort emulation on SHA mismatch.
SHA checksum computation is broken on Windows builds,
so don't abort out if the checksum doesn't match; just
warn.
2016-01-30 18:42:46 -05:00
Jason Benaim 0c4a20abe1 Add support for MBC3. This is enough to get Pokemon games working with the transfer pak. 2016-01-28 00:42:35 -05:00
Mike Ryan 1146c33755 sha1: validate NTSC-J pifrom
Thanks @vgturtle127 !
2016-01-27 19:40:43 -08:00
Mike Ryan eaf3cee002 sha1: validate DD IPL 2016-01-27 13:28:32 -08:00
Mike Ryan bc9f14c7f9 sha1: detect and validate PAL PIFROM 2016-01-27 09:38:42 -08:00
Mike Ryan 2803a304bc validate SHA1 of important files
Currently only validating pifdata.bin. Probably also worth validating DD
IPL and other known binaries.
2016-01-26 22:15:38 -08:00
Mike Ryan 782b8cb826 flashram: take command line option and pass into PI 2016-01-25 20:09:46 -08:00
Tyler J. Stachecki b0082df3ca Add experimental multithreading support. 2016-01-25 01:10:10 -05:00
Tyler J. Stachecki 376dcc2f86 Add more options for running without audio/video.
This commit does the following:
  * Renames the -nointerface argument to -headless
  * Adds -noaudio and -novideo arguments
2016-01-24 23:29:46 -05:00
Mike Ryan 799b2af628 transfer pak: parse command line and load tpak ROM/saves 2016-01-24 17:46:44 -08:00
Tyler J. Stachecki cdd3c44aea Add a subsystem for detecting carts. 2016-01-24 19:01:51 -05:00
Mike Ryan 3ba39b536d sram: load on command line and stuff into PI 2016-01-24 14:18:18 -08:00
Tyler J. Stachecki f255fc94c3 Restore -nointerface functionality.
-nointerface was horribly broken when the device model was
refactored a few months ago. This commit unbreaks it and
restores functionality.
2016-01-24 16:13:43 -05:00
Mike Ryan e7bbc4f822 pak: implement mempak and stub out rumble and transfer pak 2016-01-24 12:28:48 -08:00
Mike Ryan 701388da13 save_file: return an int that indicates whether file was created 2016-01-24 12:28:48 -08:00
Mike Ryan 72c147255d eeprom: take options on command line and pass file into SI 2016-01-23 21:02:42 -08:00
Derek "Turtle" Roe 8b89df2fdc See long description
Replaced all references to simulation with emulation
Updated copyright year
Updated .gitignore to reduce chances of random files being uploaded to
the repo
Added .gitattributes to normalize all text files, and to ignore binary
files (which includes the logo and the NEC PDF)
2015-07-01 18:44:21 -05:00
Tyler J. Stachecki 653bd0d5b6 Add (initial) audio support.
"It's a meeee, Mario!"

There's no resampler as of yet, so we just tell OpenAL
that everything is 44.1KHz for the time being. In the
future, a resampler thread will be created and things
won't sound as bad as they do in this commit.
2015-05-23 22:00:20 -04:00
Tyler J. Stachecki 391b967725 Work on cleaning up the build system somewhat. 2015-05-16 17:15:19 -04:00
Tyler J. Stachecki 9a9388400f Commit the new WinAPI user interface.
Streamline the Windows version of the source. There is
some breakage with regard to the console window and other
odds and ends.
2015-05-16 15:51:29 -04:00
Tyler J. Stachecki 1619e0fd98 More cleanup/streamlining of UI pullup. 2015-05-16 15:51:21 -04:00
Tyler J. Stachecki 7f203b7175 Start working in the new interfaces.
Seriously broken WinAPI stuff, no input, no multi-
threading a bunch of other terrible stuff (yet).
2015-05-16 15:50:54 -04:00
Tyler Stachecki 28d4b7e122 Give DDIPL a lower priority than carts. 2015-01-17 11:51:29 -05:00
Tyler Stachecki 67fca6c47f Add -ddrom to the command line. 2015-01-08 12:17:17 -05:00
Tyler Stachecki 10fc81d7a3 Start filling in lots of 64DD implementation.
Also, fix a few bugs in the past two commits.
2015-01-06 22:21:00 -05:00
Tyler Stachecki 459aed5e8d Generate two binaries.
Generate a 'fast' release binary and a developer binary. The
developer binary contains extra calls that permit debugging and
such things.
2014-11-16 13:32:04 -05:00
Tyler Stachecki 1d339f8f74 Restructure a lot of OS-dependent stuff. 2014-11-01 14:36:48 -04:00
Tyler Stachecki d45cab877a Add a -printsimstats switch.
Start working in a "extra" mode for debugging and other features
that we don't want on the main path. As a demonstration of what we
can do with this extra mode, print out a bunch of simulation info
that can help us optimize offline.
2014-10-27 19:25:22 -04:00
Tyler Stachecki f569e5f839 Fix bug that produced false-positive error codes. 2014-10-18 09:20:19 -04:00
Tyler Stachecki 4fcd566f02 Add os/rom_file, implement backends. 2014-08-03 01:53:19 -04:00
Tyler Stachecki 490e896cc9 Reorganize pipeline code for lower binary size. 2014-07-31 13:27:04 -04:00
Tyler Stachecki c28f74ba98 Fix up warnings, clean up initialization code. 2014-07-31 12:07:12 -04:00