-
-
Notifications
You must be signed in to change notification settings - Fork 483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Modifications for bare metal builds for Raspberry Pi with current circle-stdlib #1143
Comments
good to hear that it works on RPi4! how are the performances? |
For building I used the master branch of nesbox/TIC-80 at git revision 946d910 (accidently closed this issue by tapping on smartphone screen...) Performance has yet to be tested. My focus was on getting it to build within a Docker image for easier bare metal build workflow. |
So the keyboard problem described in post 1 in this issue is a bit annoying to fix. I have now had a look a the n3ds keyboard handling but it seems that n3ds does not use the lib and can access tic_api_key and such where the bare metal PI can't. I also don't understand at the moment why we have to use the circle raw keyboard handler for bare metal pi. I have attached a new zip archive to this posting with updated experimental kernels for Raspberry Pi 3+ 4 where the keyboard characters A-Z,0-9 are working now but if you press a key for a long time you get dozens of char repeats (very annoying). So it still is not really working well, but at least one can launch the surf mode and launch games. |
My current changes to make the Pi bare metal build work again are available here in the master branch: https://github.com/hpingel/TIC-80 |
@msx80 I think your file https://github.com/msx80/BareMetalTic80/blob/master/arm-gcc-toolchain.cmake is worth looking at again for me as I think my current version of CMakeLists.txt can still be streamlined/improved although it works for me. |
I have prepared another SD card image with experimental bare metal builds. What's new?
Enjoy! |
That's great! For the multiple key press, it often happens when you type fast, and in my case the keyboard is pretty hard to type, which make the problem even more present! What if you just add a slight delay after every input? It wouldn't be the best, but still better than hitting 2 keys together. Or maybe preventing any new repeat if 2 keys at hit together? Bare metal TIC-80 is awesome because it really feels like a "real" hardware console! |
Hi @hpingel . How could I compile it for Raspberry Pi OS 32 bits (no bare metal). I get a malloc issue and drive me crazy. Thks. |
@jmcerrejon As you stated it yourself, your issue has nothing to do with the bare metal version, so please have a look at this thread instead: #984 . And please post some extracts of your errors to get some help. I've succesfully compiled tic-80 on Raspberry pi a few days ago. |
Hi, as @farvardin stated, this is only bare-metal build related stuff in here. For TIC-80 a bare metal future depends on two things IMHO:
I will try to work on both of these issues but would also like some help on the first one to speed things up. I will post updates here whenever my time permits to continue playing with this. Once my Docker based stuff has matured a bit I will probably put it on Github. And it’s only meant for bare metal builds. |
The problem was @hpingel I couldn't contact with you (complete your GitHub's profile!) and this was the first post I found concerning the Pi. I maintain a project called PiKISS to provide scripts to easily compile/install software on the Pi, and my idea is give support to this project. Thank you all for the suggestions and links. I'll try to compile. 😉 |
Why don't you open up a new ticket for your project and goals and describe your problem in detail? This is a ticket about bare metal without Linux underneath and it is a different world to Linux. At the moment you are hijacking this issue with your goals and I would like help on my goals in this ticket. |
I did it. My last post was for explain you my situation. Nothing more, nothing less. Good luck! |
closing as dup of #912 |
Hi, thanks to the good work of @msx80 I was able to test the TIC-80 bare metal build of @msx80 on a Raspberry Pi 2. Because I couldn't find a current bare metal build (is there one somewhere?) I have then tried to compile it myself and was successful enough to get a 32bit bare metal kernel for Raspberry Pi 3 and 4.
For a successful compilation I had to change a bit of Makefile related stuff and also do some minor code changes.
I have used the latest GNU toolchain 9.2-2019.12 for aarch32 available at the moment and also the latest version of circle-stdlib v15 (containing Circle Step 42) together with the current state of the TIC-80 master branch.
The kernels are booting fine with video and sound via HDMI. The USB keyboard support is currently still broken in a way that I can only use half of the keys of my USB keyboard - I can use Cursor-Keys + Function keys but not normal letters. This issue can probably be fixed easily but I didn't look into it yet.
As a proof I will try to attach an archive with an SD card image to this github issue (the SD card image contains the carts provided by @msx80 in his SD card image). The SD card should boot fine with Raspberry Pi 3 and 4 but it has the keyboard issues. With the right USB gamepad it might still be usable to launch games.
experimental_tic80_bare_metal_builds.zip
Further work needs to be done. I want to clean up my changes and offer Pull Requests.
The text was updated successfully, but these errors were encountered: