punesemu/puNES

Disk System loading issues

Closed this issue Β· 28 comments

Hi. Mesen 2.0.0 switches and loads the first levels of these ROMs correctly, but they get stuck on puNES:

  • Michael English Daibouken (Japan) - This gave me an Err 07 on puNES even with the autoswitch option turned off
  • Moonball Magic (Japan) (Disk Writer)
  • Super Lode Runner (Japan)
  • Ultraman Club - Chikyuu Dakkan Sakusen (Japan) (Rev 1)

Additionally:

  • Zelda no Densetsu - The Hyrule Fantasy (Japan) (Rev 1) - Err 40 before loading the first level
  • The .fds version of [...] Game & Watch - Super Mario Bros. works on puNES, but the .qd ROM shows this message: "Please set disk card."
  • Autoswitch needs to be disabled for all ROMs with Kouhen in their titles, since they are the second disks in their releases and currently give a bootloop. Ideally, puNES would detect them and prompt the user to select their respective Zenpen disks (SourMesen/Mesen#537). Check [...] Shinban Tsumeshougi - Tsugi no Itte too

puNES D3D9 8a6ed11
Windows 10

The .fds version of [...] Game & Watch - Super Mario Bros. works on puNES, but the .qd ROM shows this message: "Please set disk card."

The .qd version is "wrong", every side in QD format must have a size of 65536 bytes while, as can be seen from the size of the file, in this case it has a size of 57344 bytes. In the emulator I do a check to verify that the size is correct otherwise I ignore the side. In my private build I changed this control and now the image is loaded correctly.

Try the last WIP (20b26f4).

Zelda no Densetsu - The Hyrule Fantasy (Japan) (Rev 1) - Err 40 before loading the first level

I don't consider this a problem, the game routine simply tried to read the disc a moment after the auto insert routine had simulated an ejection of the disc. It can happen.

I'm going to report the issue with the Game & Watch Mario ROM to No-Intro.

  • Please check Michael English Daibouken (Japan).qd again. It crashed with Err 01 on my first try.
  • Super Lode Runner (Japan).qd scrolls the screen when you start a new level. puNES seems to be fast-forwarding this.

Please Try the last WIP (fe10203). With this patch I made the recognition of loading/saving on disk more precise, making fast forward more precise. Given the significant changes I tried all the FDS again but if you could do a second check it would be much appreciated. The auto insert algorithm is not an exact science (unfortunately not all games use the same logic for waiting for disc change, I tried to consider all the various possibilities but I think it is impossible that everything goes well for all games) so Err 01 or Err 40 may occur which are normally automatically corrected, except in the case of Michael English Daibouken (Japan) which waits for a key to be pressed to try again (and perhaps there may be others that work the same way) .

  • Please check Koneko Monogatari - The Adventures of Chatran (Japan).qd. It requires a button press to read Side B, and autoswitch is messing with it.
  • Monitor Puzzle Kineko, The - Kinetic Connection (Japan).qd and Monitor Puzzle Kineko, The - Kinetic Connection II (Japan) (Disk Writer).qd request you to reset the game when Err 40 occurs. Can anything be done about this?

Monitor Puzzle Kineko, The - Kinetic Connection II (Japan) (Disk Writer)_000001

Please check Koneko Monogatari - The Adventures of Chatran (Japan).qd. It requires a button press to read Side B, and autoswitch is messing with it.

The auto switch, to identify which disk and side to insert, controls the call to the bios routine $E445 to which programmers pass as input a unique 10-character identification string of the disk/side (unfortunately this is not always true and this is why if there are two or more sides with the same identifier, the auto switch is automatically disabled). I don't know why in this rom the programmers, even if they ask for side B to be inserted, when they press the select/start button they look for side A, this is where the problem arises. I have disabled the autoswitch for this rom.

Monitor Puzzle Kineko, The - Kinetic Connection (Japan).qd and Monitor Puzzle Kineko, The - Kinetic Connection II (Japan) (Disk Writer).qd request you to reset the game when Err 40 occurs.

I couldn't get Err.40 but to be sure can you try with the latest WIP (1ab8c13)?

It happens if autoswitch is enabled and you press the Start button too fast on this screen:

Monitor Puzzle Kineko, The - Kinetic Connection (Japan)_000001

Load these states and keep hitting Start:

save.zip

  • Michael English Daibouken (Japan) (Sample) (1987-03-25).fds seems to be working fine with autoswitch, but it needs to be disabled for Koneko Monogatari - The Adventures of Chatran (Japan) (Sample) (1986-07-03).fds too.
  • FMC Disk Card Checker Ver 1.3 (Japan) (Rev 2) (Developer Card).fds - puNES fails the test:
Mesen

FMC Disk Card Checker Ver 1 3 (Japan) (Rev 2) (Developer Card)_000

puNes

FMC Disk Card Checker Ver 1 3 (Japan) (Rev 2) (Developer Card)_000001

These ROMs crash puNES:

  • Bishoujo Mahjong Club (Japan) (Unl).fds
  • Bodycon Quest I - Girls Exposed (Japan) (Unl) [T-En by DvD Translations Rev A] [n].fds
  • Dead Zone (Japan) [T-En by Stardust Crusaders v1.00].fds
  • Game no Tatsujin - Money Wars (Japan) (Unl).fds
  • Golf, The - Bishoujo Classic (Japan) (Unl).fds
  • Otocky (Japan) (Beta) (1986-04-15).fds

Illegal Opcode messages:

  • Graphic Editor Hokusai - Ver 1.2 (Japan) (Unl).fds
  • Jingorou (Japan) (Unl).fds
  • Quick Hunter (Japan) (Unl).fds

Nestopia UE displays a user-friendly warning about the last two ROMs:

Screenshot

Nestopia UE

I didn't disappear, I rewrote FDS support again. I will contact you when I have everything completed.

Hi AndrΓ©, when you have time can you try the latest WIP (d913e3b)?

  • Autoswitch needs to be disabled for all ROMs with Kouhen in their titles, since they are the second disks in their releases and currently give a bootloop. Ideally, puNES would detect them and prompt the user to select their respective Zenpen disks (SourMesen/Mesen#537). Check [...] Shinban Tsumeshougi - Tsugi no Itte too

For now I have added the possibility of being able to load the image of another Floppy on the fly (1bae89a).

Hello.

  • Please check all unlicensed ROMs with Disk 1 or Disk 2 in their names. Many of them are giving Illegal Opcode errors or getting stuck in autoswitch loops
  • Famicom Tantei Club - Kieta Koukeisha - Kouhen (Japan).fds - Illegal Opcode
  • Famicom Tantei Club Part II - Ushiro ni Tatsu Shoujo - Kouhen (Japan) (DV 3, 4).fds - Illegal Opcode
  • Puzzle Boys (Japan) (Disk Writer).fds and Puzzle Boys (Japan) (Disk Writer) [T-En by DvD Translations Rev A].fds sometimes crash with Error 01 before loading the first level (hold Fast forward down and keep pressing Start)
  • Souseiki Fammy - ROM-QD for 256K+64K (Japan) (Unl).fds gets stuck on the Now loading screen. Maybe it should display an Unsupported device message?
  • Please check all unlicensed ROMs with Disk 1 or Disk 2 in their names. Many of them are giving Illegal Opcode errors or getting stuck in autoswitch loops
  • Famicom Tantei Club - Kieta Koukeisha - Kouhen (Japan).fds - Illegal Opcode
  • Famicom Tantei Club Part II - Ushiro ni Tatsu Shoujo - Kouhen (Japan) (DV 3, 4).fds - Illegal Opcode

Try disabling "Use fast forward when loading the disk/side" and you will see that you will get the classic "Err. 20". To speed up the loading of the bios in this new version I skip the entire license check part, this generates the illegal opcode but is not an error.

  • Puzzle Boys (Japan) (Disk Writer).fds sometimes crashes with Error 01 before loading the first level (hold Fast forward down and keep pressing Start)

Yes you are right, I think I will have to disable autoinsert for this image

  • Souseiki Fammy - ROM-QD for 256K+64K (Japan) (Unl).fds gets stuck on the Now loading screen. Maybe it should display an Unsupported device message?

I will keep you informed.

  • Please check all unlicensed ROMs with Disk 1 or Disk 2 in their names. Many of them are giving Illegal Opcode errors or getting stuck in autoswitch loops
  • Famicom Tantei Club - Kieta Koukeisha - Kouhen (Japan).fds - Illegal Opcode
  • Famicom Tantei Club Part II - Ushiro ni Tatsu Shoujo - Kouhen (Japan) (DV 3, 4).fds - Illegal Opcode

Fixed with 6358116.

  • Puzzle Boys (Japan) (Disk Writer).fds sometimes crashes with Error 01 before loading the first level (hold Fast forward down and keep pressing Start)

The game routine tried to read the disc a moment after the auto insert routine had simulated an ejection of the disc. Unlike Zelda no Densetsu - The Hyrule Fantasy (Japan) (Rev 1) it doesn't try to read again but remains at the Err 01 screen, so it's not compatible with the auto insert (9e53074).

  • Souseiki Fammy - ROM-QD for 256K+64K (Japan) (Unl).fds gets stuck on the Now loading screen. Maybe it should display an Unsupported device message?

Yes, you are right again, this FDS requires specific unsupported hardware (2ce45cf).

The first two games with Disk 1 I tested are still getting into an autoswitch loop when they ask for a disk change before loading their first levels.

Wouldn't it be better to add Disk 1 and Disk 2 to this statement?

https://github.com/punesemu/puNES/blob/9e530749ae4a7cc914d4b4cfceabd084c5c449c1/src/core/fds.c#L1051C2-L1051C2

Yes, I can (8e4c491).

  • Please check if you get a green screen while loading the first level of SD Gundam World - Gachapon Senshi - Scramble Wars (Japan) (Rev 1) (Wii Virtual Console).qd
  • Also, the main character apparently won't move on these revisions of Nazo no Murasamejou: Nazo no Murasamejou (Japan) (Wii and Wii U Virtual Console).qd and Nazo no Murasamejou (World) (Ja) (3DS Virtual Console).qd
  • Also, the main character apparently won't move on these revisions of Nazo no Murasamejou: Nazo no Murasamejou (Japan) (Wii and Wii U Virtual Console).qd and Nazo no Murasamejou (World) (Ja) (3DS Virtual Console).qd

I checked and honestly I don't think it's an emulator problem. Have you tried with any other emulator?

  • Please check if you get a green screen while loading the first level of SD Gundam World - Gachapon Senshi - Scramble Wars (Japan) (Rev 1) (Wii Virtual Console).qd

Yes and even in this case I don't think it depends on the emulator. I think these Wii and Wii U Virtual Console and 3DS Virtual Console versions are modified to work with the proprietary emulator.

Alright. I couldn't get them to work on other emulators either, but asked you anyway to be sure.

These days I went through the whole QD set and haven't found any other problem, so I think this issue can be closed now.

@punesemu If puNES is closed and I try to launch it from the command line with a disk image, the latest build opens and then closes itself. This doesn't happen if puNES is already running. Please check if you can reproduce this on Windows.

Yes, I confirm that this problem only exists with the Windows version, I will investigate and let you know.

Fixed with 218114d.

Thank you! Please check the title screen of Vs. Excitebike (Japan) (En).qd too. It keeps fast-forwarding:

Video
Vs.Excitebike.Japan.En.qd.mp4

I haven't disappeared, in this period between the rewrite of the NSF player and life I have little time, but as soon as I have a little more free time I will take a look at all the reports you have given me.

Fixed with 0291a4e.