JinxDojo / genplus-gx

Automatically exported from code.google.com/p/genplus-gx
Other
0 stars 0 forks source link

(Only Dev-oriented) Working around SegaCD WordRAM limitations #399

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
(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.

Original issue reported on code.google.com by HCKTROX on 4 Oct 2014 at 2:52

Attachments:

GoogleCodeExporter commented 9 years ago
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.

Original comment by ekeeke31@gmail.com on 5 Oct 2014 at 8:57

GoogleCodeExporter commented 9 years ago
Thanks a lot! Looking forward for it.

Original comment by HCKTROX on 5 Oct 2014 at 8:37

GoogleCodeExporter commented 9 years ago
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.

Original comment by suparaic...@gmail.com on 5 Feb 2015 at 1:32

GoogleCodeExporter commented 9 years ago
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.

Original comment by ekeeke31@gmail.com on 5 Feb 2015 at 7:10