Closed ghost closed 2 years ago
Did some more testing with the Famicom disk library, and it looks like automatic disk switching breaks some things.
Here are some that get "Error 07" but still load through it: Adian no Tsue (Japan)
Big Challenge! Dogfight Spirit (Japan)
Bishoujo Control (Japan) (Unl) breaks with graphics garbage (see second image) but only with automatic mode:
The last image has a diagonal split when I don't have any soft stretching or interpolation turned on, and it happens in other emulators too.
I get the message "2 ID sides founds, auto switch disabled". The 2 games I know don't work with this are:
This is not a bug. To perform the automatic switch, I need the side to be uniquely identified but some are not and have the same ID (programmers don't care) so, not knowing which is the right one, I automatically disable the auto switch to those games.
Here are some that get "Error 07" but still load through it:
This is also not a bug. With the FDS, timing is fundamental and it can happen that sometimes, the call to the bios routines "occur at different times" than expected (due to hardware interrupts for example) so there is a momentary loss of synchronization with the management of the autoswitch but after error 07 the bios tries again to see which disk is inserted and the autoswitch routine tries to insert the correct one again and succeeds.
Bishoujo Control (Japan) (Unl) breaks with graphics garbage (see second image) but only with automatic mode:
The strange thing is that I cannot reproduce the problem with "Bishoujo Control (Japan) (Unl)". I'll write you an email.
I sent everything I have, may not be everything in no-intro latest set though, haven't updated for months.
The problem is not the FDS but the bios, use the "[BIOS] Family Computer Disk System (Japan) (En) (Rev 1) .zip" and you will see that you will not have problems.
Are some of those game not compatible with a version 1 bios? The only other time I've heard of such a thing is with Wild Arms 2 on the PlayStation. Otherwise I emulate everything with the original bios of the first version of any console, no problems ever.
Yeah rev 1 works, I knew I played Akumajou Dracula (Japan) (Rev 2) (Disk Writer) before with no problems auto flipping, but still, doesn't solve the problem with the error 07.
They are certainly compatible with version 1. If you use the manual switch they work. The problem of the ID you would have with any bios since the ID of the side is written directly on the disk and if the programmers have not bothered to differentiate it I have no way to identify the correct one. The problem (which does not mean bug) with "error 07" can always happen to you (with any bios) for the reasons I explained to you earlier. The difference between the various bios, from the point of view of the autoswitch, concerns only the timing which influences a lot.
The timing is different indeed with version 1. I noticed that with Rev 1 playing Bishoujo Control (Japan) (Unl), the disk inserted message shows up before that turtle screen goes to the title, but with the first version bios, the screen changes first, then the disk inserted message pops up creating the garbage. If you want to close this, it is up to you, but maybe there need to be a note somewhere about this, like auto switching not recommended with certain bios versions?
For now I am not closing the issue. I'm doing some testing to see what the timing changes between the two versions. Let's see if I can figure it out.
You're pretty smart and fast from what I've seen, you can do it :D
If you have time to waste, could you try again with the latest WIP?
I tested as far as the letter "E", and got tired of doing it. Seems okay now with the errors. But I noticed something else, it looks like it runs Eject then Insert loop 2 times when going to Side B. Noticed it with Egger Land (Japan). I'll try to explain.
I run the game Egger Land (Japan) and I watch the "Eject/Insert" option while it is at this loading screen:
Watch very closely the Eject button with that tab open!! Auto flip runs like this: Eject Insert Now Side B is loaded in tab above but no message on the screen yet! Eject Insert Now message is displayed that Disk B is in. Since Disk A is where we started, it should only run that once not twice. Technically if we were to eject and flip twice, we would be back at Side A. Happens with both bios versions. You have to watch with the menu open though otherwise you don't see what I mean.
Also it is getting late here so I'll post back later on.
It's normal for this to happen, the auto insert routine tries to understand when it should go into action, but it's not always sure and when it's not, to force the rom to recall a certain function of the bios it simulates an eject and a insert but without changing the side of the disc. I hope I have been able to explain myself. The delay of the text is due to the update of the overlay, this is also normal.
Okay so it is a fail-safe of sorts. I had wondered if that was intentional but better to ask about it than ignore it. I haven't tested any more of the disk roms yet but I guess this can be closed for now, there's literally 250 more to load and test which is a bit too much right now lol.
Thanks for the effort yet again! puNES v1.10 is really going to be something special with all these fixes ;)
I saw a commit where you fixed the diagonal stretch but it is hardly noticeable? I ran the 240p test suite using the "Full screen stripes" and while power of 2 looks fixed (I measured and the vertical res is even now), it still looks messed up without any stretching applied. Filtering hides it though and I can live with that.
But the diagonal line with which aspect ratio does it appear (and I guess you only have it with "No filters" option)? However you see those artifacts just for the stretching of the image carried out to reach the desired aspect ratio. I'm not an expert in shaders but I don't understand why they come out only with certain video patterns (like black and white vertical lines) while in 99% they don't show up. The interpolation (like the HLSL/GLSL soft stretch) has the function of "cleaning" the image from these artifacts.
Found this by accident. I get the message "2 ID sides founds, auto switch disabled". The 2 games I know don't work with this are: Akumajou Dracula (Japan) (Rev 1).fds Akumajou Dracula (Japan) (Rev 2) (Disk Writer).fds
But the other 2 versions do work: Akumajou Dracula (Japan).fds (this was the first release of the game) Akumajou Dracula (Japan) (Rev 2) (Wii and Wii U Virtual Console).fds (most current version)
The message appears after this screen just before the title screen.
EDIT: here's a game that throws that message later on after the "Super Pig" screen scrolls out to the left: Aki to Tsukasa no Fushigi no Kabe (Japan) (Unl)