-
-
Notifications
You must be signed in to change notification settings - Fork 42
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
SiDi128: rotate module using the second SDRAM by robinsonb5 #899
Conversation
Credits to Alastair M. Robinson (https://github.com/robinsonb5/) for his rotating scandoubler extension, using the SDRAM as a framebuffer.
I noticed that some cores use a DIPBASE=8, which is not good, since many options are in the 8-15 range, so I removed them (need new MRAs, too, but AFAIK they're automatically updated). |
I have to review it but removing the dip base should be ok. That macro comes from the old times when MiST could not handle so many dip switches. The CPSx cores timing is failing. We need the timing to be clean before merging. 🙏🏼 |
And thank you!! |
They failed even before, for ages. It can be made clean, with "STANDARD EFFORT", but it slows down the compiling a lot, so we agreed to not apply it some time ago. |
But the daily compilation works. So I think it is the PR content. If using standard effort works, we could enable that for compilation with the JTFRAME_RELEASE macro set. |
If my understanding is correct, this uses the second SDRAM chip and does not interfere with the operation of the first SDRAM chip. Is that right? |
@@ -4,7 +4,8 @@ | |||
{{ if .JTFRAME_OSD_LOAD }} F,rom; {{ end }} | |||
{{ if .JTFRAME_VERTICAL }} | |||
{{ if .JTFRAME_OSD_FLIP }} O1,Flip screen,Off,On; {{ end }} | |||
O2,Rotate controls,Yes,No; {{ end }} | |||
O2,Rotate controls,Yes,No; | |||
{{ if .JTFRAME_SDRAM_ROTATION }} OD,Screen Rotation,No,Yes; {{ end }}{{ end }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On MiSTer, there is a way to disable the display of this line when the game is not vertical. So a core that handles both vertical and horizontal games only displays it when needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no feedback to the OSD from the core in the MiST firmware. It won't be hard to do it, just the urge wasn't too strong to implement it.
cores/outrun/cfg/macros.def
Outdated
@@ -71,3 +71,4 @@ CORE_OSD=OKM,Control Type,A.Stick,A.Triggers,A.Wheel; | |||
|
|||
[sidi128] | |||
JTFRAME_LF_SDRAM_BUFFER | |||
-JTFRAME_SDRAM_ROTATION |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This requires unsetting it manually on the horizontal games.
Maybe this could work instead:
`ifdef SIDI128
`ifdef JTFRAME_VERTICAL
`define JTFRAME_SDRAM_ROTATION
`endif
`endif
Added to the relevant files.
Another option is to have jtframe add it conditionally for SIDI128+JTFRAME_VERTICAL compilations. This function will need to be modified. I think modifying jtframe is cleaner.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It won't do any harm on non-vertical games, but I can disable it for them, also.
One more question, this only affects the HDMI output, right? The regular VGA output will be kept as it is, isn't it? |
It rotates the scandoubled output, so HDMI and VGA are rotated. 15kHz video is unchanged. |
Yes, that's true. The only game which already uses the second SDRAM is Outrun, but rotating is not needed for it. |
You meant with JTFRAME_RELEASE? |
This one:
doesn't seem to work:
|
It works with jtcore -d JTFRAME_RELEASE=1 ..., but not with jtcore -d JTFRAME_RELEASE ... |
It makes the timings better, as the flip-flop's reset input can be used instead of gating the clock/data lines with the reset signal.
Added a patch to CPS, which eliminates the worst paths starting from rst_video. Now it builds well with -d JTFRAME_RELEASE=1 |
Thank you! |
Hello @gyurco, I'm using VGA output with scandoubler |
Hi, |
I can confirm it work. |
Credits to Alastair M. Robinson (https://github.com/robinsonb5/) for his rotating scandoubler extension, using the SDRAM as a framebuffer.