![]() |
BBC Micro
http://spectrum.myriadcolours.com/~marnanel/bbc-maemo
Ten minutes' hacking around brings the Beeb to the N900. It has some keyboard focus issues which need seeing to. Also, beebem uses f12 to bring up an emulator menu, and the N900 has no f12. But with a little work we could see Elite running on this thing. (If this was ever a serious project, some serious thought would have to be given to copyright issues about the MOS, the DFS, and BASIC: you can't do anything without the MOS, you can't do much without BASIC, and life without the DFS is painful. But they are all still © Acorn, whoever that is these days.) |
Re: BBC Micro
Quote:
Other than that, it's a cool app :D |
Re: BBC Micro
Quote:
|
Re: BBC Micro
Quote:
Just kidding (about the implicit license), but Acorn was behind not only the beloved Beeb but also the incredibly successful ARM CPU (almost 3 billion a year sold.. quite a lot more than Intel has managed so far). |
Re: BBC Micro
Quote:
The problem is that there's a bit in WM_HINTS which (in both apps) isn't set. You can see this using "xprop -id 0x...": For Beebem: WM_HINTS(WM_HINTS):whereas for, say, mediaplayer we'd get: WM_HINTS(WM_HINTS):I believe this is a problem with libsdl, but I haven't dug down any further to find why it's not setting this bit. |
Re: BBC Micro
Whooa! Exile on the n900, that would be so cool!
|
Re: BBC Micro
Quote:
Code:
... Code:
... Yay, confirming: adding SDL_WM_SetIcon call makes the test case lose the input focus. |
Re: BBC Micro
Quote:
One rather interesting point is that a very quick perusal of Metacity's sources seems to indicate that Metacity will give focus if WM_TAKE_FOCUS is present or InputHint is set. Matchbox2, however, appears to give focus if and only if InputHint is set (it only checks WM_TAKE_FOCUS in order to tell whether to send WM_TAKE_FOCUS when focussing a window). According to the ICCCM, having WM_TAKE_FOCUS present but not InputHint means that a client "wants to prevent the window manager from setting the input focus to any of its windows", so Matchbox2 is technically correct here. It is possible, of course, that Metacity behaves that way because it solves some problem in a particular subset of clients, so perhaps it would be good to change Matchbox2's behaviour. Either way, it wouldn't solve the current problem, since the SDL apps in question set neither WM_TAKE_FOCUS nor InputHint. |
Re: BBC Micro
Quote:
|
Re: BBC Micro
I believe this is "our man":
SDL_x11wm.c, line 232 As a workaround, ifdef'ing the SDL_WM_SetIcon call out will work, since Maemo gets the icons from other sources either way. If you believe Matchbox is right here, then this is a SDL bug :S |
Re: BBC Micro
Quote:
Code:
wmhints->flags = Code:
wmhints->flags |= |
Re: BBC Micro
Wow. I should've google'd harder. It is a SDL bug, and it was already filed in 2008!
http://bugzilla.libsdl.org/show_bug.cgi?id=586 *sigh* Thanks marnanel for the hints (and keywords to search!)! |
Re: BBC Micro
Quote:
|
Re: BBC Micro
Yeah, or probably document it in the wiki (with all the other Maemo SDL "nuisances" ;)).
|
Re: BBC Micro
Quote:
http://spectrum.myriadcolours.com/~m...bc-maemo-exile And the obligatory Elite: http://spectrum.myriadcolours.com/~m...bc-maemo-elite I don't think I'll play with this much more, though, because:
Still, it's nice to have demonstrated that it's possible. |
Re: BBC Micro
I'd love to have some version of ARM RISC OS
(originally on the Acorn Archimedes 12 MHz ARM) on my NIT. But I suppose it takes to much work ? ---just a thought. |
Re: BBC Micro
Quote:
|
Re: BBC Micro
i see this app is on fremantle.
what other input focus bugs are you seeing. because when i started with liqbase on n900 every keypress would result in other apps being opened and getting input keystrokes. i could not enter any text for a while. |
Re: BBC Micro
i will just explain the noticed bug and fix that was made
using fremantle, when i started to run liqbase, i discovered that pressing any key in my app would mysteriously open up one of the search apps. this was not what was wanted and meant i could not enter any text in liqbase for a while. on the n810 it worked perfectly without this fix: this code is at the end of the open window function, it simply forces focus back to the app itself. http://github.com/lcuk/libliqbase/bl...x11info.c#L250 since you did not explain the problem and javispedro hasnt actually reproduced the error i think its at least something to consider and see. let me know if its the same error, or describe the actual effect more clearly so we may try to help :) |
Re: BBC Micro
Quote:
Quote:
Quote:
To recap:
I don't know whether your program is suffering from a similar bug, but I can check if you like. Or you can check, if you want, by running xprop against your toplevel window. |
Re: BBC Micro
Quote:
Quote:
so the workaround as suggested to me originally is due to a generic problem that has been there all along in fremantle, but was obviously handled differently by the n8x0 window manager? Quote:
Quote:
the version in extras-devel is unstable atm, its just waiting for me to push some updates after a short trip, but since you know what you are looking for, if you identify the patch point, I would be most appreciative. if it can be solved in a similar way to your fix - ie once for the entire app run, it will hopefully cure the other secondary liqbase problem where the symptoms of no text input return after minimizing. i'm sorry i didnt see the reasoning beforehand, i just saw the same symptoms and knew a fairly simple workaround existed. |
Re: BBC Micro
Quote:
Quote:
Quote:
|
Re: BBC Micro
Quote:
The problem with Elite would be the keys - the keyboard of an N900 is better than an N810's, but it ain't that good. Perhaps emulators (including DrNokSnes) could have a mapping from the accelerometers to keys on a game-by-game basis :-) |
Re: BBC Micro
I have modified the emulator a bit so it runs more smoothly on the device. So there are four things I want to sort out before I release anything.
For the hardware keys, I'm thinking of turning the N900's comma key into an extra shift (I'll call it "ultra" here), so that the keystrokes which don't exist on the N900 can be typed for the Beeb (most importantly, so that ultra-[P/0] can be f0, ultra-[Q/1] can be f1, etc. Here, have another screenshot. This has the processor speed of the Beeb turned right down so that the FPS will be higher. http://marnanel.org/pics/lj/elite |
Re: BBC Micro
Quote:
|
Re: BBC Micro
Quote:
|
Re: BBC Micro
I've now put a few minutes into packaging the thing; it's here:
http://people.collabora.co.uk/~tthur...01-1_armel.deb It works well enough to boot and load discs, but not well enough to do much else. I've turned off AMX (mouse) support and made the main menu come up instead when you tap the screen, because beforehand it came up on F12. Try this: boot the BBC. Touch the screen. Choose "Discs". Choose "Select, load, and run a disc". Select "welcome.ssd". Press OK. You will be running the Welcome disk. Note that the default screen size cuts off the bottom of the menus and the screen on the N900, unless you run in fullscreen mode, when it fits exactly. This can be a nuisance, because you might not be able to press the OK button on the menus. See points 3 and 4 below. Things which fairly urgently need doing with this: 1) I've found copies of Beebem which say they're GPL and copies which say they aren't. I'd like to know for sure when its status changed. 2) Really, I'd like it to download the MOS/BASIC/DFS roms on first boot, to save us having to package them. 3) It would be better if the main window was a GTK window than an SDL window. Then we could put a conventional Hildon menu on it and do away with the tapping-the-screen thing. 4) A screen mode that scaled the BBC's output onto the size of the screen *minus* the titlebar would be very useful. 5) The keyboard setup is a bit crappy at the moment. The N900's alt key doesn't work at all, so you can't type numbers. I meant to have it so that the comma key was a "hyper" key to let you use QWE... as f1, f2, f3... but that seems not to be working at present. 6) It should default to a sensible speed; the current default slows down the BBC too much, making everything sluggish. 7) What I would really like is a menu when you started up which listed a few dozen games, and if you chose one it didn't already have installed it would download it. 8) An onscreen virtual keyboard would be lovely. |
Re: BBC Micro
Quote:
>> Documentation: Cortex-A8 port This section of the wiki documents contains information about the port of the shared-source branch of RISC OS to the new ARM Cortex-A8 processors. http://www.riscosopen.org/news/artic...o-beagle-board >> Info on beagleboard port of RISC OS. |
Re: BBC Micro
Indeed, taking RISC OS Open's branch and running it on an RPCemu port would be good (hell, even porting RISC OS directly ;-))
But this isn't a thread about RISC OS :-) Might be worth checking if !65host (including the BBC MOS ROMs) is included in the RISC OS Open shared source bundle. |
All times are GMT. The time now is 13:48. |
vBulletin® Version 3.8.8