29 Commits

Author SHA1 Message Date
zakk4223
bc49794c6e Initialize empty n64 save file with all 0xFF instead of zero (fixes some game hangs) (#1085) 2026-01-13 22:18:57 +08:00
Rikard Bengtsson
5e82f602ed N64: Tiny fix (#1071)
* Fix of-by-one error

ROMs with headers containing an internal name of 20 characters (or more) got truncated to 19.

* Make sure not to read outside of the intended header section
2025-12-12 13:19:52 +08:00
Rikard Bengtsson
ba0ae19cd2 N64: Save file fix and fix (#1072)
Got rid of the annoying message you get when opening the menu in a game that uses cpak.
It said "Saving..." even when there wasn't anything to save.
Cleaned up and refactored the save file code. Much easier to follow now.
2025-12-12 13:18:05 +08:00
misteraddons
2efa6a87a8 Write unique game info to /tmp/GAMENAME (#1045)
* Write unique game info to /tmp/GAMENAME

* Remove CD product code lookup, and crc32

* Remove product codes

/tmp/GAMENAME only uses file path and crc32

* Clean up

* Cleanup

* Only write CRC32 and or Product Code to /tmp/GAMEID

Realizing we already have the file path, this change writes the already calculated CRC32 and or game ID (N64 and PSX only) to /tmp/GAMEID. This ignores boot*.rom and cd_bios*.rom

CRC32: XXXXXXXX
Product Code: XXXXXXXXXXXX

* Clean up

* Update neogeo_loader.cpp

* Skip GAMEID for all BIOS files

* Guard behind log_file_entry ini option and clean up print statements

* Add MRA GAMEID support and improve GAMEID writing

MRA files use setname as serial

* Add MGL handling for /tmp/ STARTPATH, FULLPATH, CURRENTPATH, and FILESELECT

* Update mgl /tmp/ file handling
2025-10-22 19:54:43 +08:00
paulb-nl
425780205a Minor: N64 fix include path. SNES load rom with index 0 only (#921) 2024-10-03 14:34:28 +08:00
Rikard Bengtsson
b2c96be7f8 **N64** (#916)
Add in-memory patching to the few remaining games that still don't work property, like Jet Force Gemeni and Resident Evil 2.
Removed unused tag.
2024-09-04 14:18:14 +08:00
Rikard Bengtsson
f3736a4e13 Fix potential error in the trim() function (#912)
String length returned at line #514 could be longer than 20, not good. Using strnlen instead, to avoid reading garbage bytes.
2024-08-27 18:30:39 +08:00
RoboSchmied
bd096798a0 Fix: 8 typos (#892)
Signed-off-by: RoboSchmied <github@roboschmie.de>
2024-03-29 16:37:43 +08:00
Sorgelig
77b41d0c6a MGL/MRA: add same_dir attribute for setname. 2024-03-26 01:11:12 +08:00
Rikard Bengtsson
6ab4f0036f N64: Software cheats (#882)
* N64: Implement cheats

* Remove unused function

* Corrected byte mask condition (skip if 0xffffffff)

* Meow

* Final changes to make the parser compatible with gamehacking.org's cheat files.

* Revert back to old pointer convention.
2024-03-07 19:39:20 +08:00
Rikard Bengtsson
9ba9b7febd N64: Push transfer pak save data directly to GAMEBOY folder (#871)
* N64: Implement improved save handling for Transfer Pak games.
2024-02-03 23:47:53 +08:00
Rikard Bengtsson
03b4e0097c N64: Hide auto-detect info with MiSTer.ini (#868) 2024-01-16 20:24:40 +08:00
Rikard Bengtsson
09e2f4fd03 Fix bug in dead zone code affecting DS3/DS4 (#866)
A small bug was introduced with the new dead zone code that made it ignore "quirks" regarding DS3/DS4. These devices should automatically be given a dead zone of 10, as it was before.
2024-01-15 13:00:13 +08:00
Rikard Bengtsson
1b8ed443a8 Add setting to disable automatic switching of controller pak for p1 (#863) 2023-12-22 14:36:23 +08:00
Marcoen Hirschberg
52076b908b N64: support fast ROM loading (#862)
Normal ROM loading is still supported to not break older versions of the
core.
2023-12-16 01:35:57 +08:00
Rikard Bengtsson
e9340593f4 N64 improvements, save files (#859)
N64 improvements. Split N64 save files into eep, sra, fla, mpk and tpk files.
Add "wide" tag detection to database, auto-switches to widescreen if found.
Prioritize N64-database_user.txt, so that people can override games already in the regular database file.
Honor order that rpak, cpak and tpak are written in database, for p1 controller.
2023-12-05 20:55:12 +08:00
Rikard Bengtsson
c802a6a014 N64 improvements. (#853)
* N64 improvements.

Better Auto detection of N64 games (region, security chips, save type).
Better info message after loading a game. Clean up.

* Update n64.cpp

Accidentally included the header file twice.
2023-11-21 02:08:58 +08:00
trbocode
c0e69e170b Fix N64 for gb file extension (#847)
Previous commit detected .gb files as N64
2023-11-06 16:34:00 +08:00
trbocode
c3c0d8cf64 Fix N64 condition (#845) 2023-11-03 18:41:22 +08:00
Rikard Bengtsson
61efed2cba N64: Add CIC5101 type. Don't analyze gameboy roms. (#843)
* Squashed commit of the following:

commit 40c58abf1d87e870d20ab77bf2934df6ed6d7b94
Merge: 1fc9c37 7c65b22
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 09:00:07 2023 +0200

    Merge branch 'master' of https://github.com/yxkalle/Main_MiSTer

commit 1fc9c37c070b54719aa6ae14890db5fc6bcec3e1
Author: Rikard Bengtsson <rikard.bengtsson@yahoo.se>
Date:   Fri Oct 6 08:57:57 2023 +0200

    N64: Just some cleanup. Made code simpler. Added some comments where needed.

commit 7c65b22cab1a33f599b3a7ecb2faaaa27613046b
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 04:09:51 2023 +0200

    Delete MiSTer_noface

commit fe2169544f5ce5ace125109bf65df16dc65594a2
Merge: c163956 ee5659a
Author: Rikard Bengtsson <rikard.bengtsson@yahoo.se>
Date:   Fri Oct 6 03:28:02 2023 +0200

    Merge branch 'master' into add-id-to-db

commit c1639563da1ea714575f51f27a21df9c2f493a6e
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 03:15:05 2023 +0200

    Update n64.cpp

commit f4a6b98b5dd650bc13e08db8bb21e3da31fea64b
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 03:12:51 2023 +0200

    cleanup

commit 401b9dc6a9b2d0dd06c18be1e48014b3dc81e946
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Tue Oct 3 22:48:03 2023 +0200

    Clean-up

    Clean-up the code, added some comments. Allow uppercase md5s in the database.

commit e0e2affdfe277577820ba73a202b06311b645ec7
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Mon Oct 2 20:05:28 2023 +0200

    Cleaner code?

commit 554666832bd55d924b531f469a45cb7996f13e03
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Sun Oct 1 02:13:00 2023 +0200

    Delete N64-database.txt

    Delete before PR

commit 9e8fc3f30c36ea9de59d4f1801a4341edbf73eb8
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Sun Oct 1 02:09:07 2023 +0200

    Some commenting and clean-up

commit be19bb6e679cd76d32f9b0382c08052ba1e68944
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Sun Oct 1 01:19:05 2023 +0200

    Autodetect settings by ID

    Settings are saved in the database text files as usual, but you can match by both MD5 (first 4096), MD5 (full) as well as ID + region + revision.

* Added support for hacked boot codes

* Update n64.cpp
2023-10-29 06:52:17 +08:00
trbocode
78edf5f58c Added controller handling for new N64 options (#838)
* Added controller handling for new N64 options

* Move to N64 folder and add per stick ranges

* Improve latency
2023-10-16 07:08:44 +08:00
Patrick Pollock
22834acc98 Scale N64 analog optimally for different gate shapes (#834)
* Scale N64 analog optimally wrt gate shapes

* Limit max_range to near diagonals

* Make magic numbers adjustable constants
2023-10-11 03:05:52 +08:00
Rikard Bengtsson
c9994f9dd2 Cleanup of n64.cpp (#833)
* Squashed commit of the following:

commit 40c58abf1d87e870d20ab77bf2934df6ed6d7b94
Merge: 1fc9c37 7c65b22
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 09:00:07 2023 +0200

    Merge branch 'master' of https://github.com/yxkalle/Main_MiSTer

commit 1fc9c37c070b54719aa6ae14890db5fc6bcec3e1
Author: Rikard Bengtsson <rikard.bengtsson@yahoo.se>
Date:   Fri Oct 6 08:57:57 2023 +0200

    N64: Just some cleanup. Made code simpler. Added some comments where needed.

commit 7c65b22cab1a33f599b3a7ecb2faaaa27613046b
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 04:09:51 2023 +0200

    Delete MiSTer_noface

commit fe2169544f5ce5ace125109bf65df16dc65594a2
Merge: c163956 ee5659a
Author: Rikard Bengtsson <rikard.bengtsson@yahoo.se>
Date:   Fri Oct 6 03:28:02 2023 +0200

    Merge branch 'master' into add-id-to-db

commit c1639563da1ea714575f51f27a21df9c2f493a6e
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 03:15:05 2023 +0200

    Update n64.cpp

commit f4a6b98b5dd650bc13e08db8bb21e3da31fea64b
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Fri Oct 6 03:12:51 2023 +0200

    cleanup

commit 401b9dc6a9b2d0dd06c18be1e48014b3dc81e946
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Tue Oct 3 22:48:03 2023 +0200

    Clean-up

    Clean-up the code, added some comments. Allow uppercase md5s in the database.

commit e0e2affdfe277577820ba73a202b06311b645ec7
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Mon Oct 2 20:05:28 2023 +0200

    Cleaner code?

commit 554666832bd55d924b531f469a45cb7996f13e03
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Sun Oct 1 02:13:00 2023 +0200

    Delete N64-database.txt

    Delete before PR

commit 9e8fc3f30c36ea9de59d4f1801a4341edbf73eb8
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Sun Oct 1 02:09:07 2023 +0200

    Some commenting and clean-up

commit be19bb6e679cd76d32f9b0382c08052ba1e68944
Author: Rikard Bengtsson <rikard@loginhasselberg.se>
Date:   Sun Oct 1 01:19:05 2023 +0200

    Autodetect settings by ID

    Settings are saved in the database text files as usual, but you can match by both MD5 (first 4096), MD5 (full) as well as ID + region + revision.

* Added support for hacked boot codes
2023-10-07 02:36:57 +08:00
Rikard Bengtsson
ee5659ad9c N64: Find ROM settings in database by ID, region and revision (#830)
ID, region and revision are grabbed from the games' header and are looked up in the database text file, the same file where MD5 hashes are now. Both MD5 and ID will be valid ways of determining ROM settings, so old database files will still work. The benefit of this is that the database can be shrunk quite considerably, as many, many duplicates can be removed. It will be (much) easier to maintain. I'm hoping to see fewer pull request made to the database repository as a consequence of this change.
2023-10-01 19:56:12 +08:00
Marcoen Hirschberg
d53a998eac N64 joystick emulation (#828)
* input.cpp: pass dev nr to joy_analog

This allows for per-controller behavior

* N64: add emulation for the analog joystick

This applies the reduced-range octagonal gate of the N64 analog stick to
regular analog sticks.

The code was mostly written by Patrick Pollock with small optimizations
by Martin Donlon and myself.
2023-09-24 17:22:02 +08:00
Rikard Bengtsson
257e81ed32 Fix my previous pull request (#827)
Some users complained that some games weren't working anymore after my submission. The reason is that I always set save type to "none" when the game wasn't detected in the db. This reverts some of the old behavior, don't touch the save type and controller pak settings when these settings are unknown because of missing db.
2023-09-24 13:42:07 +08:00
Rikard Bengtsson
dc7fa8253f Always try to auto detect system region and CIC (#825)
* Auto detect system region, CIC, and save type if the ROM is missing from N64-database

Make it possible to to load games with correct settings even if they are missing from the database file.

* Removed auto-detection of save type

Only detect system region and cic type, use db for save type.

* Replace info texts with shorter variants

.
2023-09-23 21:38:22 +08:00
Marcoen Hirschberg
d98ae034e0 N64: also search in N64-database_user.txt for rom info (#821)
Having a 2nd user database has the advantage of allowing custom entries
without losing them every time when N64-database.txt is overwritten.
2023-09-15 15:07:59 +08:00
Marcoen Hirschberg
aa76842194 N64 loading improvements (#804)
* add n64 type

* use a custom loader for N64

This loader:
- converts little-endian and byte-swapped ROMs
- auto-detects ROM properties, this requires a N64-database.txt file in
  the N64 games folder
2023-08-18 19:27:46 +08:00