forum.defence-force.org

Comments, problems, suggestions about Oric emulators (Euphoric, Mess, Amoric, etc...) it's the right place to ask. And don't hesitate to give your tips and tricks that help using these emulations in the best possible way on your favorite operating system.

It has been reported that the game STAR does not work in Oricutron 0.9 (see bug report and grab the tape image from here).

I have investigated the problem, but I'm really confused! Here is the description of my findings that I posted to the bug report:

Hmm this one is interesting. Once STAR has loaded, the CPU jumps to RAM containing complete nonsense. Lots and lots of BRKs and illegal instructions. It executes from $0501 to around $ff4.

Because Euphoric doesn't emulate illegal operations, it just skips 1 byte when it reaches them, which means it ends up executing the instruction at address $ff4, which is a jump to $6400.

Oricutron, however, executes illegal instructions. Right before the jump to $6400 is a bunch of $FF bytes, and $FF is a 3-byte illegal opcode. This means that at the end of the $FF byte region, Oricutron ends up at address $ff5 (the JMP opcode at $ff4 is interpreted as part of the last $FF instruction @ $ff2). This means instead of jumping to $6400, Oricutron executes a BRK followed by an RTS and ends up back at the BASIC prompt.

Indeed, if I disable illegal opcode handling in Oricutron, STAR works perfectly.

Now, apparently $FF is a DIFFERENT illegal opcode on 65c02, and may even be 2 bytes instead of 3. But the Oric usually has a 6502, not 65c02!

What I can't understand is why this works on your real Oric. Does your Oric have a 65c02 by any chance?

So... could someone with real hardware convert the exact .tap file linked to in that bug report and load it on a real oric with a 6502 and a 65c02 and tell me if it works on both machines?

I tested with Oricutron 0.9 and my own tape transfer, and it seems to work fine
This probably simply illustrates how many bad TAP files are around on the Internet!
The simple fact that the loading name is "STAR.TAP" on the crashing version proves that the transfer is suspicious, being not directly done (and thus not checked) from the tape content.

EDIT: now it still can be interesting to understand why something apparently working on real hadware doesn't work on an emulator, would it be bugged or not. But if the goal is to play Star, then there you are.