SofaRun v2.0 bug report thread

Page 28/33
21 | 22 | 23 | 24 | 25 | 26 | 27 | | 29 | 30 | 31 | 32 | 33

By sd_snatcher

Prophet (3092)

sd_snatcher's picture

23-12-2018, 03:26

I noticed that using the /D1 command line option with SofaRunit greatly improves the compatibility with a lot of games that I thought that couldn't be run with this tool. Even Illusion City and Xak Tower of Gazzel will run fine.

Since this causes minimal impact on the disk performance, maybe it could be the default delay for the next version? Those wishing to be adventurous could try themselves the /D0 with specific games.

By Louthrax

Prophet (2093)

Louthrax's picture

23-12-2018, 06:06

sd_snatcher wrote:

I noticed that using the /D1 command line option with SofaRunit greatly improves the compatibility with a lot of games that I thought that couldn't be run with this tool. Even Illusion City and Xak Tower of Gazzel will run fine.

Since this causes minimal impact on the disk performance, maybe it could be the default delay for the next version? Those wishing to be adventurous could try themselves the /D0 with specific games.

Hi Snatcher,

Guess you're right about that. There's also the possibility to set /D1 as a default value in SofaRun, but it will be better to also have this as default in SofaRunIt.

I'm also interested if you remember or have a list of games that do not work with /D0 ? I know Rune Master 3 also shows incomplete graphics with /D0.

By Victor

Champion (470)

Victor's picture

23-12-2018, 06:11

Louthrax wrote:

I'm also interested if you remember or have a list of games that do not work with /D0 ? I know Rune Master 3 also shows incomplete graphics with /D0.

As I told you, time ago... This is just a question of check if a VDP command is in execution... Then wait VDP command is over before DISKIO... that's all... You should try to implement it correctly...

By sd_snatcher

Prophet (3092)

sd_snatcher's picture

23-12-2018, 12:04

@Victor

Very interesting! But does it have to wait before the disk I/O? Waiting after the disk I/O should be enough, shouldn't it? If the idea is to allow the maximum speed instead of fixed delays, then this would be the best approach.

By sd_snatcher

Prophet (3092)

sd_snatcher's picture

23-12-2018, 12:23

@Louthrax

I always tend to use command line tools directly. Probably this is why I was noticing this more than the guys who use it inside SofaRun. Smile

I don't have a complete list, but this is the list I have so far:

- Illusion City (translated version): Doesn't boot, aborts to the MSX-BASIC
- Xak Tower of Gazzel: Runs with glitches and corrupted graphics
- Elite (MSX1): Doesn't boot, aborts to the MSX-BASIC

Then there's the list of games that I just couldn't find a way to run with SofaRunIt:
- Rona: doesn't even boot
- Magnar: doesn't even boot. Maybe related to single-sided 3.5" disks?
- Zone Terra: hardcoded to the disk interface on slot3-2
- ParaDream: requires diskBIOS2. But works fine if I copy the files to a folder in the mass storage device
- MoonLight Saga: requires diskBIOS2

I could write some more games on both lists, but unfortunately I have some errands to do right now. I'll try to come back later with some more games.

@Victor: Given that the list has an MSX1 game (Elite) and some games that don't even boot and abort to the BASIC, the problem doesn't seem to be exclusively related to the blitter being busy.

Maybe the safer approach would be both: /D1 so games don't panic when booting and wait for the blitter to finish before returning to the game.

By Louthrax

Prophet (2093)

Louthrax's picture

23-12-2018, 13:54

Victor wrote:
Louthrax wrote:

I'm also interested if you remember or have a list of games that do not work with /D0 ? I know Rune Master 3 also shows incomplete graphics with /D0.

As I told you, time ago... This is just a question of check if a VDP command is in execution... Then wait VDP command is over before DISKIO... that's all... You should try to implement it correctly...

Hi Victor,

Yes, I know the reason of the problem, but I do not feel like having a dependency on the VDP from the disk driver (SofaRunIt is basically a disk driver), is wise. That implies not doing this wait on MSX1, and just the action of waiting for the VDP might also mess up things in some cases (I guess you need to change registers in order to know if a VDP command is in execution, that can definitively have unpredictable side-effects...).

That would also cause extra-slowdowns on games that are parallelizing VDP operations with disk-loading, and that do correctly wait for the command execution, unlike Rune Master.

Also, that adds complexity in SofaRunIt code in order to fix bugs in some games' code. I think these games would have the same problems with a real super-fast disk interface, that could probably be tested with openMSX and disabling FDD latency.

So, yeah, I might give it a try for fun, but that does not look too reliable to me right now Smile

By Louthrax

Prophet (2093)

Louthrax's picture

23-12-2018, 13:59

sd_snatcher wrote:

@Louthrax
I don't have a complete list, but this is the list I have so far:
I could write some more games on both lists, but unfortunately I have some errands to do right now. I'll try to come back later with some more games.

Thanks Snatcher for the lists. I think in most of the cases the games could be patched to run with SofaRunIt (or any fast disk interface). Yet anoher thing to add in my MSX todo list !

By Victor

Champion (470)

Victor's picture

23-12-2018, 14:44

Louthrax wrote:

Hi Victor,

Yes, I know the reason of the problem, but I do not feel like having a dependency on the VDP from the disk driver (SofaRunIt is basically a disk driver), is wise. That implies not doing this wait on MSX1, and just the action of waiting for the VDP might also mess up things in some cases (I guess you need to change registers in order to know if a VDP command is in execution, that can definitively have unpredictable side-effects...).

That would also cause extra-slowdowns on games that are parallelizing VDP operations with disk-loading, and that do correctly wait for the command execution, unlike Rune Master.

I've done the DSK emulator for Rookie Drive and Flashjacks... I know a little bit about this.... even the DSK in MegaflashROM (with OPFXSD) and EMUFILE check if a VDP command is executing... but... no problem... This is your program...

By Grauw

Ascended (8515)

Grauw's picture

23-12-2018, 15:02

Surprising that games would 1. run a VDP command during loading, and then 2. run another after loading without first waiting for the CE bit. Ouf.

By Victor

Champion (470)

Victor's picture

23-12-2018, 15:05

Grauw wrote:

Surprising that games would 1. run a VDP command during loading, and then 2. run another after loading without first waiting for the CE bit. Ouf.

would?? Ok...

Page 28/33
21 | 22 | 23 | 24 | 25 | 26 | 27 | | 29 | 30 | 31 | 32 | 33