Skip to content

SDL2 + X64 Support#95

Merged
djdiskmachine merged 70 commits intodjdiskmachine:masterfrom
simotek:x64-SDL2
Sep 1, 2024
Merged

SDL2 + X64 Support#95
djdiskmachine merged 70 commits intodjdiskmachine:masterfrom
simotek:x64-SDL2

Conversation

@simotek
Copy link
Copy Markdown

@simotek simotek commented Aug 5, 2024

This pull request adds a new X64 target for 64 bit Linux machines thanks mostly to @Nine-H alongside a working SDL2 port.

Currently the port is only used on the x64 platform although so far i've also done limited testing for Raspberry Pi and rg35xx which needs a different keymap. They can be added in the near future.

Currently the only known issue is there are race conditions in the RTMidi code so for now its using the DummyMidi backend.

emartinez-dev and others added 21 commits April 23, 2024 21:02
By using pkg-config to set the cflags and libs, the Makefile should
work across all Linux distro's even if they move some libraries
into non standard locations
Both the RtAudio and Picotracker implementations flush there midi
queues multiple times per audio buffer fill. So the SDL
implementation should probably do the same.

The midi implementation seems to still have issues related to key
presses and releases.
This is based off the SDL code with the unsupported platforms
removed. Currently this implementation isn't in use.
Now all header files are in the following order
* Class Related
* External Libs
* Internal Libs
This is based off the SDL code with the unsupported platforms
removed. Currently this implementation isn't in use.
Currently on a multicore system RTMidi seems to add a number of
race conditions so disable it until resolved.
SDL2 doesn't support SDL_EnableUNICODE() so conditionally don't
include it when building with SDL2. SDL2 is still not tested on
any of these platforms but hopefully this change makes someones
life easier in the future.
This reverts commit d98ef99.

This is mostly to make the SDL2 review cleaner
Comment thread projects/Makefile.PLUSH Outdated
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't intentionally include this file intentionally so happy to drop it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: there is a convention in muOS community to use SPLUSH24 name, which meant to include entire group of "new" RG35XX devices: S/PLUS/H/2024 (everything except OG).

Also make some other makefiles more consistent.
@simotek simotek mentioned this pull request Aug 6, 2024
@simotek
Copy link
Copy Markdown
Author

simotek commented Aug 6, 2024

For now there are 3 Linux targets:
X64 - SDL2, 64bit
X86 - SDL2, 32bit
DEB- SDL1, 32bit (Should be functionally unchanged)

For now all other targets should be unchanged. They can be tested by modifying the makefile to define -DSDL2 and changing the LFLAGS

@simotek
Copy link
Copy Markdown
Author

simotek commented Aug 9, 2024

Ive setup workflows in a branch for testing, currently there are still a couple of issues that need addressing, i'll also attempt to add builds for all 3 of the new targets (X64, X86, rg35xx_stock).

simotek added 2 commits August 9, 2024 20:43
* Fix a regression with midi/audio files being included in some
  makefiles
* Remove PLUSH we already have RG35XX
* Partially add RG35XXS for running on the Stock ROM with SDL2
  Support
Now that we are using pkg-config to set the lib and include files
for the deb target we need to make sure its installed on the CI
#include "SDLInput.h"
#include "Application/Model/Config.h"

#ifndef PLATOFM_BITTBOY
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PLATFORM_BITTBOY

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't realize this was legacy carryover 😅

@djdiskmachine djdiskmachine merged commit cf66ee5 into djdiskmachine:master Sep 1, 2024
djdiskmachine pushed a commit that referenced this pull request Sep 12, 2024
Contributors:
```
**koisignal**
        Config option feature for loading embedded and custom fonts (#107)
        * Possibility to select font in config.xml
        * "digital" font by Nine-H (CC-BY-SA)
**clsource**
        MacOS 64 Build (#108)
**Simotek**
        RG35XX +/H builds + SDL2 + X64 Support (#95)
        * add support for rg35xx-plus boards, tested on RG35XX-H
        ---------
        Co-authored-by: emartinez
        Co-authored-by: Nine-H
        Co-authored-by: igavrilov

Platform Makefile Cleanup (#114)
```

**Other stuff:**
```
        PPSSPP install instructions (#124)
        Added packaging resources for bittboy (#123)
        Allow warping over empty chains (#99)
        * Jump over empty neighbors in chain or phrase view instead of forcing you to go back to song screen.
        Deep clone hint (#98)
        * Adds a 1 second notification when deep cloning
        Install instructions for PocketCHIP (#111)
```
djdiskmachine pushed a commit that referenced this pull request Sep 12, 2024
Contributors:
```
**koisignal**
        Config option feature for loading embedded and custom fonts (#107)
        * Possibility to select font in config.xml
        * "digital" font by Nine-H (CC-BY-SA)
**clsource**
        MacOS 64 Build (#108)
**Simotek**
        RG35XX +/H builds + SDL2 + X64 Support (#95)
        * add support for rg35xx-plus boards, tested on RG35XX-H
        ---------
        Co-authored-by: emartinez
        Co-authored-by: Nine-H
        Co-authored-by: igavrilov

Platform Makefile Cleanup (#114)
```

**Other stuff:**
```
        PPSSPP install instructions (#124)
        Added packaging resources for bittboy (#123)
        Allow warping over empty chains (#99)
        * Jump over empty neighbors in chain or phrase view instead of forcing you to go back to song screen.
        Deep clone hint (#98)
        * Adds a 1 second notification when deep cloning
        Install instructions for PocketCHIP (#111)
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants