Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Dreamcast 32MB RAM Mod #1198

Merged
merged 7 commits into from
Sep 22, 2023
Merged

Add Dreamcast 32MB RAM Mod #1198

merged 7 commits into from
Sep 22, 2023

Conversation

cepawiel
Copy link
Contributor

This change adds support for the Dreamcast 32MB Mod as detailed here: tsowell's original blog post and
32MB Mod Wiki Page

Image showing new setting:
image

Support was added to KallistiOS (Open Source SDK for Dreamcast/NAOMI) for detection and usage of the 32MB modification in Janurary.

Tested using the KOS memtest32 example program.

32MB Mod Disabled:

This console has 16777216 bytes of system memory,
 with top of memory located at 0x8d000000.

Beginning memtest routine...
 Base address: 0x8c100000
 Number of bytes to test: 15663104
  memTestDataBus: PASS
  memTestAddressBus: PASS
  memTestDevice: PASS
Test passed!

32MB Mod Enabled:

This console has 33554432 bytes of system memory,
 with top of memory located at 0x8e000000.

Beginning memtest routine...
 Base address: 0x8c100000
 Number of bytes to test: 32440320
  memTestDataBus: PASS
  memTestAddressBus: PASS
  memTestDevice: PASS
Test passed!

@gyrovorbis
Copy link

Just wanted to chime in as a developer who has the 32MB mod that this would be fantastic to have. :)

@cepawiel cepawiel changed the base branch from master to dev September 17, 2023 19:54
@cepawiel
Copy link
Contributor Author

cepawiel commented Sep 17, 2023

  • Changed PR destination branch to dev
    - Rebased changes on existing dev branch I did something incorrect with my rebase, on it now
  • Added config option for libretro builds

@cepawiel
Copy link
Contributor Author

Fixed previous rebase error

core/rend/gui.cpp Outdated Show resolved Hide resolved
@flyinghead
Copy link
Owner

Thanks for the changes.

There's another issue regarding savestates:
Loading a 16MB savestate into a 32MB environment, or vice versa, will cause a crash.
I suggest to create a new savestate version (see serializer.h) and save a 16MB/32MB flag right after the savestate version (see Serializer and Deserializer constructors.) When loading the savestate an exception should be thrown if the savestate is incompatible with the current ram setting. (This check to be done only for dreamcast savestates, not arcade ones)

@flyinghead
Copy link
Owner

Not critical but nice to have: the Dreamcast 32MB RAM Mod option should be disabled/greyed out when a game is started, since it can't be changed at runtime. (There are already a number of options with this behavior.)

@cepawiel
Copy link
Contributor Author

I added a check to the Deserialization that throws an exception if the current ram setting does not match the save state and disabled changing the setting while a game is started. Let me know if there's anything else I can fix 😄

@flyinghead
Copy link
Owner

flyinghead commented Sep 22, 2023

Looks good to me. I fixed the failing test and rebased on top of the current dev branch.

I'll merge when checks are finished.

@flyinghead flyinghead merged commit a7dbbbe into flyinghead:dev Sep 22, 2023
13 checks passed
@cepawiel cepawiel deleted the 32mb_mod branch September 23, 2023 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants