• Welcome to Talking Time's third iteration! If you would like to register for an account, or have already registered but have not yet been confirmed, please read the following:

    1. The CAPTCHA key's answer is "Percy"
    2. Once you've completed the registration process please email us from the email you used for registration at percyreghelper@gmail.com and include the username you used for registration

    Once you have completed these steps, Moderation Staff will be able to get your account approved.

MiSTer: the thread of cycle accuracy

Mightyblue

aggro table, shmaggro table
(He/Him/His)
Noctua fans are quiet and high quality yeah. They're mainly used for PC tower cooling singly and in sets, so a smaller one would be a pretty natural fit for something like a Mister.
 

Yimothy

Red Plane
(he/him)
I've got a slightly ridiculous plan in mind for my fan/case. Because of the trouble I had with the power cable for the USB board, the seller offered to send me a replacement for free. I'd already bought one, so I asked if they had any unpopulated IO board PCBs. The plan is to attach the IO board PCB to the top of my box with a foam buffer and mount the fan on that, which I'm hoping will get rid of what little resonance remains.
 

John

(he/him)
In other news, I think I'm going to give up on my horizontal integer scaling implementation. My pull request was rejected because it was slowing down the scaler. I don't think it was an actual problem in the genesis core where I'd implemented it, but the framework has to think of all cores and it could cause problems in some of them. I tried a few things that I thought might make it more efficient, but they mostly made it worse. Sorgelig suggested implementing it in individual cores, so I might give that a shot. Someone on the mister forum suggested doing it in the main mister's C code, which makes a lot of sense to me but would require me to figure out how all that works.
I see on Sorgelig's patreon that he uploaded a beta version of the Genesis core with both horizontal and vertical integer scaling. I don't know if this is your code, but you're certainly the catalyst!
 

John

(he/him)
He seemingly grudgingly put this option in.

"This version of Genesis has option for both vertical and horizontal integer scaling. This is quite specific feature making video narrower or wider in favor of integer horizontal scaling to eliminate shimmering on horizontal scrolling. I'm not fan of this feature but get request of it time after time. So, here is it."
 

Sarge

hardcore retro gamin'
I mean, options are good. Especially integer scaling to avoid horizontal shimmering without resorting to interpolation. Not sure why one would be so opposed to such a thing unless you're a hardcore aspect ratio purist. And to be sure, those exist... but I mean, come on, there's a lot of mixed evidence in support for both 8:7 and 4:3 aspect ratios on SNES, for example.
 
Last edited:

Yimothy

Red Plane
(he/him)
Sorgelig not wanting it makes this option not already being there make more sense. I’ll be interested to see how he implements it. If it’s really just by changing the individual core’s code and not involving any framework changes I can’t see how he could make it react to custom aspect ratios like mine did, but of course he knows the system and programming in general far better than I do.

I made a bunch of builds of other cores with my rejected code in them and tried them out yesterday. To be honest, in most cases I struggled to see the improvement from integer scaling. For some reason it’s really obvious to me with mega drive games but less so on sone of the others. I think the place where it would really help is with vertically oriented arcade cores using vertical scanlines, since they’re messed up by non-integer scaling, but I haven’t really spent time with them. I think they’re mostly fixed resolution anyway, so you really just need to set the correct aspect ratio for the vertical scaling to get integer horizontal.

I was planning a version of the MD core that would have an array of values to use as the aspect ratio (depending on the video mode) that would give integer horizontal, but I might not bother now.
 

muteKi

Geno Cidecity

Lynx core is coming to MiSTer! I'm not surprised, but I am happy to see it. Thanks Werner Herzog
 

Phantoon

I cuss you bad
That's going to be really interesting, I know really little of the Lynx outside being jealous of Lynx owners in the day
 

Yimothy

Red Plane
(he/him)
Latest update for Genesis, MegaCD, SNES, NES, NeoGeo, TurboGrafx-16, SMS, ColecoVision adds option for vertical and horizontal integer scaling. I haven’t had a chance to try it out yet, but it sounds very promising.

There’s also a main update including

-x86: prevent inlining of memcpyb function (dir command hang on shared folder).

Which sounds like the solution to a problem I was having just the other day where I could access the contents of a shared folder in ao486 but trying to list them with dir would cause a hang.
 

Yimothy

Red Plane
(he/him)
I’ve been looking at the horizontal integer scaling code, and while I haven’t fully gotten my head around it yet I notice that Sorgelig has renamed video_crop.sv to video_freak.sv while incorporating this change. Maybe it means something different, but I’m guessing that’s a comment on how he feels about integer scaling?
 

Sarge

hardcore retro gamin'
Dunno, but that kind of behavior rubs me the wrong way. I seriously cannot see why working in integer scaling would bother someone that much if that is truly the case.
 

Yimothy

Red Plane
(he/him)
I'm gonna assume it means something different and not worry about it, I think. As you say, I got what I was after.

I'm probably still going to try to tweak it some more, though. His implementation doesn't seem to take into account custom aspect ratio settings and there's no option to have it automatically choose between narrow and wide integer multiples based on which is closer to the desired aspect ratio.
 

Phantoon

I cuss you bad
I'm still endlessly impressed that you've had this thing for a month or so and you've changed the project. And this point I has swearing at RAM.
 

Yimothy

Red Plane
(he/him)
Squeaky wheel gets the grease, I guess.

Edit: one thing that does look good in this version is you can turn on vertical integer scaling through the OSD. I haven’t actually played with it yet but it looks like that would allow you to set Vscale to zero and then be able to turn on the cropped 5x mode or switch to uncropped 4x (in 1080p) all through the menu, no need to fiddle with the ini.
 
Last edited:

Yimothy

Red Plane
(he/him)
I'm probably still going to try to tweak it some more, though. His implementation doesn't seem to take into account custom aspect ratio settings and there's no option to have it automatically choose between narrow and wide integer multiples based on which is closer to the desired aspect ratio.

I've written code for this now, two separate versions - one to include custom aspect ratios and the other for the auto. I did two so that if it didn't work it'd be easier to identify the problem. Once they're both up and running I should be able to combine them no problems.

I did the aspect ratio one first. I think it's going to work, but my initial build did not. I've had a look and I'd put an exclamation mark in the wrong place in an if statement so it was doing the opposite of what I wanted. Sigh. I've fixed that, but I'm halfway through building the auto-select version so I won't be able to try the aspect ratio one again until after that finishes. Maybe two versions was a mistake.

edit: auto-select version seemed to hang when I switched to horizontal integer scaling. Game kept running in the background, but I lost any response to controller input in the menu. Have not yet figured out why. So total failure so far.
 
Last edited:
In a way I was lucky to have my old noisy fan first - when I got my USB board the fan speed started fluctuating. After a bit of fiddling I figured out that the power supply splitter cable that came with it was faulty and replaced it. If I'd had the quiet fan, I might not have noticed and could still be randomly undersupplying my MiSTer.

Hmm...I've noticed some weirdness with my USB device input on occasion; devices stop responding or input getting stuck and the only way to resolve it has being power cycling the system. I now wonder if it might be due to a faulty power supply splitter cable.

I've got the MiSTer in aluminum case now so I can't rely on a fan as a potential indicator. I did just upgrade to a 4A power supply from the included 2A one hoping that might alleviate the issue, but haven't had a chance to use the system much to verify if the issue still occurs now.

I'm curious, where did you get your replacement power supply splitter from?
 

Yimothy

Red Plane
(he/him)
Just the local electronics shop. If you’ve gotten a second power supply, you could try plugging one power supply into the main board and the other into the USB hub and see if that fixes it. That’s how I figured out it was the splitter (that and testing with the multimeter once I was suspicious of it).
 

MCBanjoMike

Sudden chomper
(He/him)
Hey MiSTer fans! I know this platform is an excellent way to sample tons of classic games, and often I'll fire up a core and flip through titles for a while just to try some weird stuff I've never played. But I'm curious to know what games (if any) you have actually spent a significant chunk of time playing on your MiSTer. I started using mine to stream kaizo Super Mario World hacks a few months ago, which has become the main thing I do on my MiSTer, but I've also done deeper dives into a few other games:

Astro Boy: Omega Factor (GBA) - completed several times (my son fell in love with it)
Castlevania: Rondo of Blood (PC-Engine CD) - full playthrough
Castlevania: Bloodlines (Genesis) - completed several times
Keio Flying Squadron (Sega CD) - multiple hours, even if I can't get past the second stage
Street Fighter Alpha (CPS1/CPS Changer) - multiple hours and one or two clears of the single player mode

How are you guys using yours?
 

Yimothy

Red Plane
(he/him)
As documented in this thread, I've mostly been using mine to learn a smattering of VHDL, verilog, and system verilog and try to fiddle with the cores. Of late I've been driving myself nuts trying to figure out why my code for tweaking horizontal integer scaling to consider custom aspect ratios and have an auto-selection between wide and narrow integer multiples is crashing the core menu. I think I've just figured it out: a missing comma in the menu items list meaning I had one long fourth option instead of a fourth and fifth option. What's particularly frustrating about that being the problem is that I had almost the exact same issue earlier and figured it out: if a menu option is too long it causes a freeze. I wish I'd remembered that. So I'm compiling a build with the missing comma in place, hopefully it's going to work. And then I'll need to apply my code to the updates Sorgelig made yesterday and I can submit a pull request (and probably see it rejected).

In terms of actually playing games, I've recently played through 2009 Commodore 64 release Knight 'n' Grail, which was pretty good. I haven't played much C64 since probably the 90s, when this game didn't exist, but it certainly feels like the real thing to me.

Up next, inspired by a recent thread, I'm thinking of starting a trip through the Shining Force series. I'm a pretty slow player, so if I'm lucky the MiSTer might have a Saturn core by the time I get to the SFIIIs.
 

Yimothy

Red Plane
(he/him)
So I'm compiling a build with the missing comma in place, hopefully it's going to work

This is half working - I have integer scaling taking account of aspect ratio setting (normal, full screen, custom ratios), but the auto width selection doesn't seem to be working properly. It almost always chooses wide. I can't figure out what I'm doing wrong in the logic, but with a bit more time I hope I'll get there. I haven't actually looked really closely at the maths modules I'm using - maybe they're behaving differently to what I'd expect? My current method of determining whether to go wide or not is to take the remainder of dividing the non-integer scaled image width by the input width, and divide that figure by half of the input width. Because division rounds down, if the remainder is less than half the input width it should give a result of zero, indicating I should scale narrowly. If it's more than half, it'll give a result of one or higher, indicating I should scale wide. Doesn't seem to be working, though. I set up custom aspect ratios of 1275:896 and 1285:896 (just below a 4x 320 integer scale and just above, respectively). On auto, 1275:896 should give wide scaling, and 1285:896 should give narrow scaling. In either case the result should be an aspect ratio of 1280:896. Instead, at 1275 it rounds up to 1280 (as expected), and at 1285 it rounds up to 1600 (incorrect!).

It is a mystery.

Edit: I had a look at the division module and while I’m sure I could figure it out, a simpler way to get the remainder (which I think must be what I’m getting wrong) is to subtract the integer scaled size from the non-integer scaled size. I think I’ll try it that way instead.
 
Last edited:
Top