Giter Site home page Giter Site logo

blitterstudio / amiberry Goto Github PK

View Code? Open in Web Editor NEW
603.0 52.0 84.0 70.55 MB

Optimized Amiga emulator for Linux/macOS

Home Page: https://amiberry.com

License: GNU General Public License v3.0

Makefile 0.08% C++ 84.01% C 15.05% Assembly 0.75% Shell 0.02% CMake 0.09% Ruby 0.01%
raspberry-pi emulator amiga rpi sdl dispmanx amiga-emulator amiberry emulation arm

amiberry's People

Contributors

alynna avatar bspinner avatar chips-fr avatar dimitris-norce avatar erikbernsen avatar farox1 avatar fogobogo avatar gitter-badger avatar grethtom avatar gsfare avatar hissingshark avatar horaceandthespider avatar joolswills avatar kreeblah avatar michaing avatar midwan avatar mpcore-hub avatar n0rt0nthec4t avatar nemo93 avatar nuumio avatar osvaldolove avatar rdowner avatar rtissera avatar sigboe avatar sigurbjornl avatar solskogen avatar supervisedthinking avatar tednilsen avatar wn2000 avatar ziosante avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

amiberry's Issues

HDFs >2GB support missing

Uae4arm seems to miss support for more complexe HDF which contains more than partitions and files bigger than 2Gb.

CD emulation for A500/1200

The CD emulation is only(?) for CD32 pr. date. Would like to be able to mount a iso (AmigaOS 3.5 and 3.9)

eth0: not found - wlan not found :(

I can't install the Amiberry... The rasp starts with the SD card, but at the end of the script, eth0: not found... same with wlan.

an other sd card wirh a standard system works...

HDF size limit

I haven't tested this myself, but a lot of people say that it only supports HDF's up to 1 GB in size. I have always used a 1 GB HDF formatted to PFS3 but it would be good if it supported larger harddrives with RDB as there is also a 5 HDF mount limit.

TIP - entry GUI ?

Any chance to add free assign key to entry GUI when Amiga working ? For users (like me) which using keyrah2 is not possible to us F11 or F12 key to entry GUI.

Control the host resolution from within the emulator

Investigate how plausible the following scenario is:

Have the emulator itself control the host system's screen resolution.
E.g. change to 800x600 50Hz for PAL resolutions, 800x600 60Hz for NTSC, but switch to native (1080p 60Hz max) for Picasso96 ones.

Note: The emulator currently opens a "dummy" SDL screen on the host's native resolution and uses that to render the RGB surface requested. If a PAL resolution is requested, the RGB Surface uses the PAL width & height, which is then scaled to the SDL screen using DispmanX (if using that back-end).

If instead the emulator closed the SDL screen and opened a new one with the requested dimensions, it should improve the performance as less effort in scaling would be required.

DispManX does not work if OpenGL driver is installed

Edit: this is an issue with DispManX in general, not specific to the emulator.

There are a few problems if the (experimental) OpenGL driver is installed in the system:

  • The emulator GUI does not start up at all if started from the console. The application hangs. It opens up if started with xinit.
  • The emulation screen does not show at all when started. However, the emulation session is still running, you can return to the GUI with F12 and quit the emulation normally.

Note: The above apply when using the (currently default) approach of DispManX + SDL (v1). Tests showed that the SDL (v1) compile works without those problems, though it's many times slower.

Suggestion: move the emulator to SDL2. It should provide us with a nice speed boost also, since we can use GPU accelerated functions for the display.

SDL2 | Drive Lights

When enabling the drive lights they appear at the bottom middle of the screen with a black bar all the way to the right of the screen.

Floppy drive sounds (optional)

Hi all!

Well, my suggestion is pretty simple: Would be possible to add support for floppy drive sounds like WinUAE ones?

I would love hearing my Pi like my old A500 when the floppy was loading :3.

See ya!

Keyboard LEDs assigned to drives don't work in DietPi (work in Raspbian)

The keyboard LEDs (Scroll Lock, Num Lock) do not work as expected when they are assigned functions like drive activity, from within the emulator.

This works if the emulator is running under Raspbian, but not in DietPi. However, the following scenario applies:

  • Setting the Caps Lock when the key is pressed seems to work when running under xinit, but not when running in the console framebuffer. However, the functions assigned to the LEDs do not work when running under xinit.
  • On the contrary, the functions assigned to them (e.g. HD/DF* activity) seem to work only when running from the console framebuffer and not under xinit.

Note: The code uses calls to ioctl() (#include <sys/ioctl.h>) to get and set the keyboard LED status.

Ctrl+WinLeft+WinRight don't work to reset the emulation (bug?)

Hi all!

I don't know if this is a bug or there is another working key combination, but i tried restarting the emulation with Ctrl+Left windows+Right window (would correspond to Ctrl+Left Amiga+Right Amiga i think) and the key combination doesn't seem to be recognized. Nothing happens.

See ya!

SDL2 Questions/Bugs

Hi, I just compiled your SDL2 version on the Pi 3 and noticed the following -

'Fast Copper' has been removed. Is this going to make the emulation a lot slower, especially on a Raspberry Pi ? On testing the demo 'Big Time Sensuality AGA' the sound slows right down (which didn't happen on the latest UAE4Arm) and the game 'Jim Power' is over 20fps slower.

When enabling the drive lights they appear at the bottom middle of the screen with a black bar all the way to the right of the screen.

Frameskip is on by default ? This reduces the frame rate to 25fps.

When starting a game the screen is about 640x256 even though the Display Options say the screen is 640x200. Is the screen supposed to automatically change resolution ?

Very small mouse pointer in GUI.

Keep up the good work.

SDL2 | Invisible box on Desktop

Ref no: ccc1f11b-b7bb-4963-8e0c-eecc80de8920-0

I have just tried Amiberry so I can get 1920 x 1080 working which seems to be fine. However if I try opening a game through igame the pointer seems to get stuck in an invisible box on the desktop after the game has closed down.

It seems to happen after trying to get out of the game and I usually have to reset the session using F12 and soft rest in the settings. The invisible box survives multiple resets until the machine is hard rebooted then it goes away.

SDL2 | Quick floppy insert/eject keys

Hi all!

Would be possible add support for inserting/ejecting floppies with a key combination like WinUAE?
Like End+F1-4 for inserting a floppy in DF0-3 and Supr+F1-4 for ejecting the floppies.

See ya!

SDL2 | Keyboard Mapping

Sorry, more controls stuff. Unfortunately in it's current state, i find it difficult to use uae4arm because of these issues!!

This time it's the "other way around" ... It is not there in the GUI, but maybe it already existing in .uae file config settings ?

The joystick/joypad controller for my PiGrrl machine 'fakes' keyboard presses, by using the GPIO , so not a conventional 'controller' input.

This is pretty easy to do in winuae/fs-uae etc, but i would like to simple add something like keyboard_key_a = joy1_fire_button etc

in the days of E-UAE, i could do something like this:
input.1.keyboard.0.button.17=JOY1_UP
input.1.keyboard.0.button.11=JOY1_DOWN
input.1.keyboard.0.button.3=JOY1_LEFT
input.1.keyboard.0.button.4=JOY1_RIGHT

If this can already be done via the config file, please let me know, otherwise this goes down as a another new request!

thanks

SDL2 | Menu display on small screens

I have recently installed Retropie onto a PiGrrl machine, which has an Adafruit 2.8" PiTFT display 320x240.

Obviously this causes chaos when I press f12, so I'd like to support the case for even a minimal size menu display when either an host option is set (I.e. Not with the game config!) or better still, when a small display is auto detected.

It could probably suffice for this to be like the fs-UAE option screen (although not as pretty!!) and only have options for control changes and disk swapping.

I would be happy to help design something, even if I can't code it, it it would help!

Thanks

F1-F10 SDL2 not working

Hi. Just checked today Amiga keyboard function keys F1-F10 and doesn't work. Can someone check may i have wrong keyset in Amiberry distro or something wrong in code Amiberry SDL.

Technological Death - problem with demo

Please to check Technological Death demo. In scene at the Devil I see dissynchronizing scene (timer and animation) and scene still staying. For ex. FS-UAE nad WINUAE demo playing normal.

SDL2 | Various Control Mapping Issues (including CD32)

As requested, the controller issues to be raised here:

For context, I am using a PS3 pad on uae4arm. In all examples i am setting 'port 1' as the most common option.

  • with 'dpad as joy' or 'dpad as cd32' , i get no results.... no fire / no movement.
  • if i select 'sony ps3 controller' ....
    -- Analogue only works as directional controls (nothing on the d-pad)
    -- I cannot set joystick or cd32 options for the PS3 pad without using 'custom' setting.
    -- using custom setting, i am missing the option of adding anything to the PS3 start/select buttons. This creates an issue for CD32 pad mapping, as it is lacking a input button (i.e. having only 6 to choose, where my controller has 9 available and the CD32 has 7 to map)
    -- the cd32 options , when set on 'custom' do not appear to work, no response on testing so far.

-- there is no 'cd32 red' 'cd32 blue' or 'cd32 play' available in the custom drop downs.... please note that red/joy fire 1 and blue/joy fire 2 are not the same input.
Although they often operate the same, the code to read the (amiga side) differs, and this does cause 'fire' not to work in some games where 'red' does. (there is common CD32 WHDLoad asm reading code that has this difference)

If it helps, i have a small program for testing cd32 inputs, you are welcome to use

https://www.dropbox.com/s/3o505q9h8hh1of9/CD32-tester%20%282016%29.adf?dl=0
[link updated to latest version - 14/05/2017]

This was needed for resolving similar issues on PSPUAE development, some years ago.

I would also welcome the ability to map to all available host inputs, and not ony the ones 'equal' to the Pandora, as some controllers have extra buttons we cannot yet map to.

Similarly, the abilty to map some UAE controls (quit program, 'pause' , display menu etc) would be welcomed.

FOL, the final developer of PSPUAE added these comments on the same topic:

"Theres also an issue with multi-key press games, i.e. Microcosm, Subwar 2050. You can not press FWD and say Yellow at same time. It may be related to RED and BLUE input code. Every game I have tried that requires RWD or FWD + Colour keys do not work."

Many thanks for your work on this project.

[ADF] Jim Power slow on title screen

The game "Jim Power" has a slowdown on the title screen.
The audio is breaking up while trying to keep in sync with the video.

Frameskip helps resolve this, but we should try and to optimize the areas causing it.

Version tested:
Jim Power - Mutant Planet (1992)(Loriciel)(Disk 1 of 2)[cr FLT]

Default to 200 height resolution

@midwan

All the games I have are running in 200 height resolution (I'am yet to find one that runs at 256). We currently have it set to 256 and results in black bar at the bottom of screen.

Could we change the default to 640x200 ( currently 640x256)?

SDL2 | Use best scaling method depending on resolution

If it's possible to scale up the resolution as an exact multiple (emulator vs native resolutions), we should use nearest neighbor which provides a sharp picture.
In other cases "linear" should be used to avoid an ugly distorted image.

Example:

  • PAL modes scale up to 1280x1024 exactly (320x256, 640x512, 1280x1024 are exactly multiples) and if the native resolution of the monitor is such, we can easily use "nearest neighbor" scaling without problems.

  • Picasso96 modes such as 800x480 on a 1080p native resolution, should not use "nearest neighbor" as it would give an ugly result - instead, "linear" scaling works best in those conditions.

Suggestion:
Implement an mechanism to calculate requested vs native resolution and switch scaling method automatically, in order to provide the best image output.

XBOX 360 configuration not working when....

When we exclude PAD XBOX 360 when Amiberry work and re-run again then configuration file in Amiberry is not working. All assign keys (entry GUI or QUIT) not working. We should get out of AMIBERRY and re-run again Amiberry then the PAD is on and all work like before.

Slow Sound with Picasso Screen Mode (50Hz slowdown to 42Hz)

There is a problem with programs like demos or games with WHDLoad.
These are running slower than normal.
I use ClassicWB with WHDLoad.
In PAL High-Res Mode the WHDLoad games/demos runs fine, but when i use any Picasso Mode WHDLoad rund about only with a Speed about 80-90 Percent.
I think there is a Timing Problem with the Picasso Mode

Same with MOD playing. With Picasso Screen (any Resolution) MOD's runs slow. Without Picasso Mode all works perfectly.

WHDLoad First Samurai 1 & 2 Errors

Hi, I tested these two games. First Samurai completely exits the emulator for some reason. Second Samurai AGA has completely corrupted graphics.

All these games I think also suffer from the 'Play Too Fast, need Cycle Exact'. But that's a whole new problem. Will AmiBerry ever get some sort or Cycle Accuracy ?, maybe DMA/Memory Accesses just to get the many games to play at the correct speed on WHDLoad, or will it make the Raspberry Pi 3 slow down to a crawl ?

Super Stardust AGA SuperHires resolution

Hi, I tried this game on Amiberry 2.1 but at the beginning of the intro it completely locks up with no warning. I tried the same game on the Android version of UAE4Arm and it gave a warning saying "Superhires resolution requested. Not supported in UAE4ARM". I clicked OK and it continued, the graphics were corrupted but it didn't lock up. Once in game it's fine. I just wondered why AmiBerry never gave this message and locked up ?

SDL1 | Ctrl + LWin + Rwin keys don't cause a reset

I am currently writing on a keyboard interface for an Arduino to steer an Amiga 500 keyboard as HID interface.
Unfortunately, there is a small problem.
I can definitely not control the right Amiga button for a typical Amigareset.
The typical Amiga Reset on a Windows keyboard is done with CRTL + Win + WinMenu
The normal Winuae is thus clear that on a normal keyboard the right Windows key or the right Windows menu key together with CTRL and the left Windows key may be pressed, so the reset works.
The UAE4ARM can not do this because I have programmed my Amiga keyboard to the right Windows key and with the combination CRTL+LeftWin+RightWin the Reset don't work.
Now my little concern:
Can you possibly integrate both right keys (Windows key and the menu key) for a reset as well as the Winuae?
Then the Amiga 500 Keyboard would work perfectly.
Would be super if that would fold.

Greeting Markus

Can't untick "Write-Protected" in floppy drives

Hi all!

I was testing something in Workbench (i'm using an ADF of Workbench 1.3), and when i was going to save the changes, AmigaDOS told me that the floppy was write protected.

I thought: "No problem, i have to open the emulator GUI and un-tick the write-protection checkbox and i will be able to save my changes".

The problem came when i noticed that the checkbox... was... greyed out :S.
I tried enabling DF1 and DF2 as well, but... can't untick their write-protection checkbox neither :( .

Maybe a bug?

See ya!

P.D: Yes, i'm using Workbench and Kickstart 1.3, the ones of my beloved A500 :3 <3.

P.D 2: Also i wanted to ask if UAE4ARM is compatible with RDB for making hardfiles recognized by HDToolBox :) .

SDL2 | Port emulator to SDL2

The emulator currently uses SDL1 internally, for input events, graphics drawing (combined with DispManX), audio and joystick support.

We should move it to SDL2 which provides a more modern approach, hardware acceleration and enhanced joystick input features.

Segmentation fault while starting up

After the latest merge from Pandora sources, the emulator fails to start.
A segmentation fault error appears right after the title and version information.

Compilation errors

I tried your repo on raspbian and get many issue:
it doesn't compile due to RASPBERRY switch not pass into gcc command line (DEFS is not included into CFLAGS). Adding it to flags solve this.
Then it fault when starting. Removing USE_PROFILE=1 solve this.
Then i tried your rpi1 target (on a real rpi1) to try PICASSO96 and it doesn't success to start my A4000 HDD with RTG memory...
In which environment are you compiling ?

SDL2 | Use the requested resolution width/height for Surface

Instead of using the Display Preferences width and height in the emulator, we should be using the requested resolution's width/height.
This only applies to non-Picasso96 modes, as those are handled correctly.

Right now, the emulator uses a preset from a user-controlled slider (in the GUI->Display->Width and Height settings), but that has to be manually adjusted to get the correct aspect ratio. For example if the setting there is 640 x 270 and we open a game with a 320 x 256 resolution, the aspect ratio is 2 : 1 since the screen still stretches to 640 pixels wide.

If we use the requested width and height for the SDL Surface, we have have the aspect ratio calculated correctly automatically by the framework.

For Picasso96 screens, this is already correct as the surface is drawn based on the requested (Picasso96) resolution instead.

Weird problem with screen not being cleared

I'm using a RPi 3 with DietPi.

I have noticed that the screen don't get cleared when you resume the emulation, as there are chunks of the config GUI around the screen.

I have experienced another strange bug: If i configure the autostart config to not use the GUI, when i try to exit the emulator the systemd-journald process starts eating the 99% of the CPU and i cannot exit the emulator unless i open another console and kill the systemd-journald process.

Then, if i execute "journalctl -r", i get a lot of entries like these ones:

bash[101]: IP: 0x76ece624 [e5820000] 0xa7804664
bash[101]: processed: 0x76ece620

As i said, this only happens when i quit the emulator after the autostart config was autoloaded.

See ya!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.