kernelcrash / msx-rom-and-floppy-emulator

Emulate ROMs and Floppy images in MSX
MIT License
39 stars 7 forks source link

Can not load disk on Panasonic FS-A1 #5

Closed windship closed 1 year ago

windship commented 1 year ago

Hello again,

I made my test cart and it work nicely on my Korean MSX2 machine, so I tried to test it on another Japanese MSX2 - Panasonic FS-A1. Succeed on ROM loading normally, but I couldn't load any disk on FS-A1. It has its own internal menu shell and I think it's related with the problem. I tried pressing CTRL key when booting but it doesn't work either. Can you check it please?

https://github.com/kernelcrash/msx-rom-and-floppy-emulator/assets/24471913/919f538b-b70c-4ec8-8f46-bcfbbb79afa4

kernelcrash commented 1 year ago

I actually have an FS-A1 myself now (and do most of my testing on it). It's a Mk1 just like yours. You just need to press F8 (shift F3). Technically the disk rom is the 'disk BASIC rom' so you actually need to get into BASIC to access the disk.

And yes its annoying to press F8 all the time. I got so annoyed I desoldered the ROM, and replaced it with a flash ROM that is missing the Deskpac menu thing (ie. I don't have to press F8 anymore)

I did actually put the old ROM back in just now to double check it still all worked with my emulator and it works fine for me.

windship commented 1 year ago

Thank you for your check and comment!

I'll try F8 key and will consider HW MOD too.

BTW, I found this article and wonder if we can solve this with editing disk.rom:

"In the meantime, I found another method to bypass the firmware without remove the original ROM (but not tested yet).

To do this, you must write 23H to the address 0CBD8h before the firmware is executed. You can create a ROM for this or apply a small patch to the Disk-ROM of your flash card interface."

What do you think?

kernelcrash commented 1 year ago

That's the exact forum post I read when working out how to flash the flash ROM I put in ;-) (I read the 3rd post down with the photo and thought "I will do that!"). So yes I saw that thing about the 'write 23H' ... but I guess with all these projects I am trying to keep them quite generic and always worried about introducing regressions. Also, I actually wasn't too sure how that 'write 23H' would work, so I never tried it. For a ROM that is not a disk rom it has priority and boots before the deskpac thing, but if you look at how my menu.rom works it has to basically tell the stm32f4 to 'eject itself', and simultaneously make the MSX computer reset and then have another ROM inserted, so that that is used after the reset. But a disk ROM is different. It doesn't take priority like a normal ROM. Anyway, it was one of those 'I'm not sure if I want to spend much time on it' type of things. In theory, somehow modding the disk rom to do that write 23H is the better way to do it, but I still couldn't see how the disk ROM is executed early enough.

The FS-A1 circuit board is single sided. To me it was the easiest circuit board ever to desolder something from. I know from experience, you can spend a lot of your life desoldering badly, but more recently I just use that funny alloy stuff (the one I use is called Fast Chip). The downside is it makes a mess. The upside is that I had the ROM out in less than a minute. So I probably spent an hour cleaning up the mess from my one minute desolder job!

windship commented 1 year ago

Sorry for belated reply. I found another solution for this problem. For the MSX machine which has internal programs like as FS-A1, user can skip it by keep pressing "DEL" key while reboot. Of course, we can remove/desolder the chip what you said but I think DEL key is quite more simple than Shift + F3 lol. I think, you can add this for your description also, with CTRL key for skip internal FDD.