Oricutron patches for Mac OS X

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.
User avatar
Hialmar
Flight Lieutenant
Posts: 349
Joined: Tue Mar 04, 2014 11:25 am
Location: Toulouse, France
Contact:

Oricutron patches for Mac OS X

Post by Hialmar »

Hi,

It's me again :)

Here are a few files I have modified for Oricutron so that it works better on the Macintosh:
http://torguet.net/Hialmar/machine.c - I have modified the mapkey function so that my keyboard works (I use a PC keyboard on a Mac Mini but I suppose the problem is here for other keyboard as well - I'll check that on other Macs at work);
http://torguet.net/Hialmar/gui.c - I have modified the savesnap function so that, if the save box doesn't open (which is the case on Mac OS X 10.9 right now) it will save in ./snapshots/snapshot.sna (which is better than nothing - I plan to solve the problem with the save box not opening but for now I'm trying to learn Objective C as I don't know it).

I will iron this out before proposing it to Oricutron developers but would like to know if other people wanted to test this on other Macs (with a non French system for example) to see if my patch is okay.

If you want to test it without compiling I have an executable for Mac OS X 10.9 here:
http://torguet.net/Hialmar/oricutron

Cheers,
Patrice
Hialmar
CEO and Silicium member.
User avatar
Xeron
Emulation expert
Posts: 426
Joined: Sat Mar 07, 2009 5:18 pm
Contact:

Re: Oricutron patches for Mac OS X

Post by Xeron »

Good work! I look forward to your changes going into the emulator once they are ready.

Speaking of which, would you be interested in having commit access, and taking over maintenance of the Mac port? The Mac port is a bit unloved at the moment, and needs some TLC :-)
User avatar
Hialmar
Flight Lieutenant
Posts: 349
Joined: Tue Mar 04, 2014 11:25 am
Location: Toulouse, France
Contact:

Re: Oricutron patches for Mac OS X

Post by Hialmar »

I would love to.

I will first try to solve the save file dialog problem and then I'll be able to merge the changes.
Hialmar
CEO and Silicium member.
User avatar
Xeron
Emulation expert
Posts: 426
Joined: Sat Mar 07, 2009 5:18 pm
Contact:

Re: Oricutron patches for Mac OS X

Post by Xeron »

ok cool. Send me the email you use (or want to use) as your google code account via PM when you're ready.
User avatar
ibisum
Wing Commander
Posts: 1643
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: Oricutron patches for Mac OS X

Post by ibisum »

I'd be happy to help with any ports too ..
User avatar
Xeron
Emulation expert
Posts: 426
Joined: Sat Mar 07, 2009 5:18 pm
Contact:

Re: Oricutron patches for Mac OS X

Post by Xeron »

Cool. All help welcome :)
User avatar
Hialmar
Flight Lieutenant
Posts: 349
Joined: Tue Mar 04, 2014 11:25 am
Location: Toulouse, France
Contact:

Re: Oricutron patches for Mac OS X

Post by Hialmar »

I have checked with several keyboards on Macs at work (and with the 1.22 localized ROMs) and it's a mess.
Each keyboard gives a different ASCII code for the same key (mainly for the number keys).

I'm wondering if the best wouldn't be to give several keyboard mapping files that people could choose.

We could have:
- 1 for french Mac keyboard with Atmos or Oric-1 ROM ;
- 1 for french Mac keyboard with the Fr 1.22 ROM ;
- 1 for french PC keyboard with Atmos or Oric-1 ROM ;
- 1 for french PC keyboard with the Fr 1.22 ROM ;
...
Hialmar
CEO and Silicium member.
User avatar
Xeron
Emulation expert
Posts: 426
Joined: Sat Mar 07, 2009 5:18 pm
Contact:

Re: Oricutron patches for Mac OS X

Post by Xeron »

Yep.. its horrendous. This is why I haven't tackled it in all this time.
User avatar
Hialmar
Flight Lieutenant
Posts: 349
Joined: Tue Mar 04, 2014 11:25 am
Location: Toulouse, France
Contact:

Re: Oricutron patches for Mac OS X

Post by Hialmar »

I will work on this and propose something to you.

The key mapping files could be customizable by the user.

We could have files like this:
38 = '1'
161 = '2'
34 = '3'

Meaning, if the keyboard generates an ASCII code of 38, this should be translated into the Oric key 1 (which shifted gives !).

And we could put a switch in the configuration file that would output ASCII codes for key presses so that the user can customize the keyboard as he wants.
Hialmar
CEO and Silicium member.
User avatar
ibisum
Wing Commander
Posts: 1643
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: Oricutron patches for Mac OS X

Post by ibisum »

I think we might need to re-work the SDL handling to properly exploit SDL_KeyboardEvent for the keys that we want to have properly mapped 1-1 across the various platform barriers, and also the 'function key/platform-event-msg->menu' style events too. Any rework of the SDL key handling should be done with caution about things like the Android IME and iOS softkey events, which of course is where a lot of the general 'platform port' code comes from, in the first place .. so if SDL is going to do that work for us on those platforms, hmm ..
User avatar
Hialmar
Flight Lieutenant
Posts: 349
Joined: Tue Mar 04, 2014 11:25 am
Location: Toulouse, France
Contact:

Re: Oricutron patches for Mac OS X

Post by Hialmar »

The biggest problem here is the way the Oric manages the keyboard.

As far as I understand, you have to give it the keycode of the key that was pressed/released and it then manages the modifiers keys (shift, ctrl, funct).

This is very different from SDL which gives you the ASCII character that a keypress produces along with the modifier keys.

So for example, on my keyboard the PC key matching "6" will give you a '-' if pressed alone, '6' if pressed along with shift, and '|' if pressed along with "Alt Gr".
Hialmar
CEO and Silicium member.
User avatar
Hialmar
Flight Lieutenant
Posts: 349
Joined: Tue Mar 04, 2014 11:25 am
Location: Toulouse, France
Contact:

Re: Oricutron patches for Mac OS X

Post by Hialmar »

Ah no I'm wrong, in my case SDL will always give a '-' when pressing the above mentioned key.

This is why I couldn't get any numbers with my keyboard.
Hialmar
CEO and Silicium member.
User avatar
peacer
Flight Lieutenant
Posts: 451
Joined: Wed Jun 09, 2010 9:23 pm
Location: Turkey
Contact:

Re: Oricutron patches for Mac OS X

Post by peacer »

Speaking of keyboard patch of Oricutron, I'd like to remind my previously described issue.

As you know, Oric keyboard is standart english keyboard style.
Image

When you use Oricutron with english PC keyboard layout there's no problem with it as keys are nearly identical to Oric keyboard
Image

But, as I am using Turkish style keyboard on my laptop or PC, things get strange. Turkish keyboard layout is quite different from standart english keyboard.
Image

So, what happens if I click shift-8 on my keyboard, oricutron types "*" instead of "(" as if its english keyboard.

As you can see, in Turkish keyboard layout, keys located rightmost part of the keyboard are special turkish characters like Ş, Ğ, Ö, Ç, Ü etc. For example, if I want to type "; " in oricutron, I have to press Ş key on my keyboard. "?" is located on shift-"." etc.

I think you got my idea. As turkish kayboard layout differs from oric and oricutron, typing on Oricutron with Oric keyboard becomes really hard by this manner. I need to remember where it should be the :,;?-*/"@ keys are located... Usually I have to try different keys to find what I really want to type..

In euphoric, there was an option like "native keyboard" or something like that. So that, pressing the key on my PC keyboard types exactly what I pressed on Euphoric. But I could not find such an option in Oricutron.

Is it possible to do such setting on Oricutron too?
User avatar
Hialmar
Flight Lieutenant
Posts: 349
Joined: Tue Mar 04, 2014 11:25 am
Location: Toulouse, France
Contact:

Re: Oricutron patches for Mac OS X

Post by Hialmar »

I have the same kind of problem with a French keyboard.

I think that changing this will require even more modifications to the emulation than what I proposed.
Hialmar
CEO and Silicium member.
User avatar
ibisum
Wing Commander
Posts: 1643
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: Oricutron patches for Mac OS X

Post by ibisum »

The important thing, I think, is that we don't re-invent the SDL_KeyboardEvent/SDL_EnableUNICODE mechanism in our attempts to fix this in Oricutron - i.e. do *not* make another keymapping implementation, but rather use the one that SDL itself provides - as this will enable us to deal with porting to other platforms a lot easier.

What I think should happen is that the key thats on your physical keyboard should be the key that you use to get the same key on the Oric/Atmos - so if you've got a French or UK keyboard on your PC, it just works the way the labels work - you type the £, you get the £. I think this means we should be using SDL_EnableUNICODE somewhere .. anyway, I will have time to hack on Oricutron on the weekend (only got a few minutes to read machine.c at the moment) but if anyone else wants to have a crack at it I'd be happy to help in IRC or whatever ..
Post Reply