pete-gordon / oricutron

Portable Oric-1/Atmos/Telestrat and Pravetz 8D emulator
http://www.petergordon.org.uk/oricutron/
GNU General Public License v2.0
67 stars 25 forks source link

Oric-1 fails to read from (some?) tapes #133

Open rzumer opened 5 years ago

rzumer commented 5 years ago

I have reproduced this with tape images for the title "Le Diamant de l'île maudite". Both sides of the tape ("demo" and first part of the program) fail to load, despite the program being compatible with Oric-1.

I reproduced it in the Win32 (x86) MSVC build, and from my brief testing this also seems present in the Win32 version of the 1.2 release.

To reproduce:

The program seems to load normally at first, but eventually the program crashes to the debugger and becomes hard-locked.

I got Opcode 22 executed at 2C5F as the first instruction that caused the program to enter the debugger, but prior to that I could see graphics being corrupted and overwritten with garbage. See this screenshot:

image

rzumer commented 5 years ago

Does anyone have a sample that will work correctly on all machines?

Godzil commented 5 years ago

Are you loading from a tap file or wave file?

As far as I know turbo tape is only for .tap file not wave. It really sounds like there are undetected loading error.

Where does the tape wave/tap file come from?

rzumer commented 5 years ago

Both samples are in TAP format and come from oric.org.

Godzil commented 5 years ago

The same file work without any issue on an Atmos?

rzumer commented 5 years ago

On Atmos in Oricutron, yes, both files seem to boot without an issue.

I do not have real hardware so I cannot test if the rip would run correctly on it.

Godzil commented 5 years ago

Well there is the possibility that they do some ROM CALL, and can end badly if it jump to an incorrect address.

So if the tap file work with an atmos rom, that may mean either the version is not universal and there is a specific Oric 1 version, or just that they Goofed with the 1 jumps, or the dump is invalid there,or oricutron is patching the exact function they are calling (don’t know if oricutron patch the rom) and it is not what the game is expecting and that just do some random memory jump leading to the crash or there are more than one version of the oric 1 rom? (And incompatible)

Hard to tell, I don’t have access to oricutron right now but can have a look later to see what the game is doing.

Do you know exactly when this happen in the loading process? Does the game look finished to load or it is in the middle of loading? (If I do remember the game show a loading page while loading from the tape)

Edit: Looking here: http://www.le-grenier-informatique.fr/pages/la-collection-jeux/le-diamant-de-l-ile-maudite-oric.html I wonder if there were universal tape, the tape photo clearly show “Oric Atmos” even if the box state for both. I wonder if there were to tape or not.

Symoon probably knows about that if he is the one who dumped the game.

rzumer commented 5 years ago

The crashes occur in the middle of loading, but the splash screens load successfully before that. It is when loading a large amount of data that it finally fails.

The tape label has a slash in the middle, so maybe "Oric/Atmos" implies compatibility with "regular" Oric, but you could be right.

polluks commented 5 years ago

@rzumer Maybe you can try another emulator, for example Euphoric?

rzumer commented 5 years ago

I am travelling now and away from my PC, but if no one else is able to test by next week I will give it a try.

rzumer commented 5 years ago

With Euphoric I can go as far as the part that asks to stop the tape player, after that I get an undef'd statement error. However no corrupted text or crash.