(Only Dev-oriented) Working around SegaCD WordRAM limitations

Issue #399 new
Former user created an issue

Original issue 399 created by HCKTROX on 2014-10-04T14:52:26.000Z:

(I'm currently taking 2M mode in account)

While not cesessarily a big issue from "gameplay" side, indeed it difficults the creation of hacks and/or homebrew program for those who doesn't have real hardware: Genesis Plus GX doesn't emulate WordRAM's access limitations (and the fact is that so does any other emulator).

Lack of this limitation, like so, makes creation of compatible complex shared code between Main and SubCPU beyond hard (as a side note, around 20 discs had to be recorded for this to be correctly done: http://info.sonicretro.org/Sonic_the_Hedgehog_1_for_SegaCD).

SegaCD doesn't allow WordRAM to be accessed from both MainCPU and SubCPU at same time, and while program may run ok from all emus, it doesn't guarantee correct compatibility in real hardware (see, pretty much like romhacks doing illegal addressing errors everytime because of addr error vector not being supported in other emus).

I may keep whole days or even weeks trying to check compatibility is correct, but nothing replaces direct testing. Nor I can keep sending other 20 (or more) ISOs to my friend, every one based on trial-and-error fixes.
Is there any chance this behavior could be added?

What steps will reproduce the problem?
1. Skipping all possible memory reconfig, but switching by either 1M and 2M WordRAM modes.

What is the expected output? What do you see instead?
Doing so, I expect the code to "crash" correctly :V

What version of the emulator are you using (official, SVN revision,...)?
Genplus-gx-1.7.4, official release.

Please provide any additional information below (Emulator settings, Console
setting,...)
Since I have no Wii console, I have been testing in Dolphin emulator instead (latest official Windows release), and Linux version of RetroArch/Libretro/GenGX.

Comments (4)

  1. Former user Account Deleted
    • changed status to new

    Comment # 1 originally posted by ekeeke31 on 2014-10-05T08:57:12.000Z:

    This was done for optimization and simplification but it's indeed not correct.
    I also think I remember this was a work-around for some game with very tight timings which would only work in the emulator if there was no access restriction on both sides but this could be fixed in current revision since the synchronization between MAIN- and SUB-CPU was improved.

    I leave this issue open since it's not really high priority but I guess i will look into it at some time.

  2. Former user Account Deleted

    Comment # 2 originally posted by HCKTROX on 2014-10-05T20:37:16.000Z:

    Thanks a lot! Looking forward for it.

  3. Former user Account Deleted

    Comment # 3 originally posted by suparaichardw on 2015-02-05T01:32:21.000Z:

    Are there any news regarding this? I mean, in case current Main and SubCPU sync isn't yet accurate enough, may the access restriction be togglable as an optional feauture, just like 68k's illegal addressing?
    If not, until which version of Gen GX+ was this feature supported?

    Thank you.

  4. Former user Account Deleted

    Comment # 4 originally posted by ekeeke31 on 2015-02-05T07:10:53.000Z:

    When this get implemented it will be reported here and the issue request closed, so you will be aware of it, don't worry. I have no idea when this will be done though, I only work from time to time on the emulator.

  5. Log in to comment