Commit Graph

1322 Commits

Author SHA1 Message Date
Maximilian Mader 7ce7c8c404
[GTK3] Add vram_viewer_finalize(), fix scroll rect, fix no-gl fallback 2020-05-19 02:33:26 +02:00
Maximilian Mader 6a15ff582e
[GTK3] Add vram_viewer_clear() 2020-05-19 02:33:26 +02:00
Maximilian Mader f74b1cd3d9
[GTK3] Improve VRAM viewer performance
– Fixed `g_idle_add`ed functions not returning `false` to signal that they are done and don’t want to get called again automatically
– Fixed memory leaks: `gtk_list_store_insert_with_values` *copies* string arguments and doesn’t take ownership
– Monospaced numeric values in the status bar and palette viewer
2020-05-19 02:33:26 +02:00
Maximilian Mader 825786210a
[GTK3] Convert VRAM viewer into proper GTK widget 2020-05-19 02:33:26 +02:00
Maximilian Mader accaedbdac
[GTK3] Move some functions into util.c 2020-05-19 02:33:26 +02:00
Maximilian Mader 7dbd0e18f9
[GTK3] Rename settings.c to config.c 2020-05-19 02:33:26 +02:00
Maximilian Mader 7e9ebde585
[GTK3] Fix compilation on GLib pre 2.62 2020-05-19 02:33:26 +02:00
Maximilian Mader 45e62a2f26
[GTK3] Use an abstraction over GtkCheckMenuItem instead of GtkRadioMenuItem 2020-05-19 02:33:25 +02:00
Maximilian Mader 1d7034fb88
[GTK3] Add `GtkRadioMenuItem`s at runtime
Defining them in the UI definition file was buggy in Unity
and MATE (Mutiny layout). Somehow creating them manually
via the API works around that bug.

The only problem is that Unity fails to update the
marker for the active menu item on the *first* click.
It then lags one item update behind, i.e.
1) CGB is active
2) Click on AGB, CGB is still rendered as active
3) Click on any (including AGB) of the options, now AGB is rendered as active

Also: The Gnome 3 style hamburger menu has been removed.
2020-05-19 02:33:25 +02:00
Maximilian Mader add54953c6
[GTK3] Start menu migration from GtkUiManager to GtkBuilder 2020-05-19 02:33:25 +02:00
Maximilian Mader 6ea36bbc39
[GTK3] Check if config changed before saving
This uses the file modification date and opens a choice dialog if
the date has changed since.
2020-05-19 02:33:25 +02:00
Maximilian Mader f6838a901c
[GTK3] Persist “mute sound” state in config 2020-05-19 02:33:25 +02:00
Maximilian Mader bdb22e7034
[GTK3] Save selected model family 2020-05-19 02:33:25 +02:00
Maximilian Mader 2887110e99
[GTK3] Restructure config_t by using sub structs 2020-05-19 02:33:25 +02:00
Maximilian Mader 116ea7d0d7
[GTK3] Improve analog speed controls a bit 2020-05-19 02:33:25 +02:00
Maximilian Mader f7beeb9c98
[GTK3] Add "no-gl" CLI option 2020-05-19 02:33:25 +02:00
Maximilian Mader f46d35528b
[GTK3] Prevent startup crash on Wayland sessions 2020-05-19 02:33:25 +02:00
Maximilian Mader 65fe7f2f9c
[GTK3] Add analog speed controls 2020-05-19 02:33:25 +02:00
Maximilian Mader 008db16fb5
[GTK3] Disable rumble for the WUP-028 for now 2020-05-19 02:33:24 +02:00
Maximilian Mader b6c949fa82
[GTK3] Add rumble mode setting
Also we now fall back to SDL_GameControllerRumble if a controller
doesn’t support the haptic feedback API.
This still poses problems with the WUP-028 but for now cou can disable
rumble completely if you want to use this controller adapter.
2020-05-19 02:33:24 +02:00
Maximilian Mader 8c3154a061
[GTK3] Accept input from all connected controllers
Rumble will be used on the most recently used controller.
2020-05-19 02:33:24 +02:00
Maximilian Mader 3fe57f976c
[GTK3] Implement rumble for controller one
Now we store references to all initialized controllers but
use only controller #0 for now.
2020-05-19 02:33:24 +02:00
Maximilian Mader 4042b7f38c
[GTK3] Make keyboard inputs less hardcoded
The mapping is now saved in a modifiable array
instead of being hardcoded into a switch-case
statement.
2020-05-19 02:33:24 +02:00
Maximilian Mader 4075a13b61
[GTK3] Enable SDL2 HIPAPI controllers 2020-05-19 02:33:24 +02:00
Maximilian Mader 4ac7c0dd0d
[GTK3] Add GB_debugger_load_symbol_file_from_buffer
Now we don’t have to rely on GB_INTERNAL anymore.
2020-05-19 02:33:24 +02:00
Maximilian Mader 6594edf1bf
[GTK3] Load and save ROM specific files
We now handle loading and saving of:
– Save files
– Cheats files
– Symbol files
2020-05-19 02:33:24 +02:00
Maximilian Mader 89080ef47e
[GTK3] Move loose state variables into GuiData struct 2020-05-19 02:33:24 +02:00
Maximilian Mader a08e1d1c83
[GTK3] Get rid of main.h 2020-05-19 02:33:24 +02:00
Maximilian Mader 8780aafe99
[GTK3] Use the audio abstraction of the SDL UI 2020-05-19 02:33:23 +02:00
Maximilian Mader 15d949e338
[GTK3] Try to reset VRAM viewer when closing a ROM 2020-05-19 02:33:23 +02:00
Maximilian Mader c00946ea2e
[GTK3] Implement the app.close action 2020-05-19 02:33:23 +02:00
Maximilian Mader e42d16290d
[GTK3] Implement ROM loading from open file dialog 2020-05-19 02:33:23 +02:00
Maximilian Mader 9b360ef292
[GTK3] Add DMG color palettes 2020-05-19 02:33:23 +02:00
Maximilian Mader 836cb024b5
[GTK3] Add the MonoLCD shader to the selection 2020-05-19 02:33:23 +02:00
Maximilian Mader b142227577
[GTK3] Implement the new SGB border options 2020-05-19 02:33:23 +02:00
Maximilian Mader 5b79094293
[GTK3] Make use of GB_set_boot_rom_load_callback 2020-05-19 02:33:23 +02:00
Maximilian Mader 53934aedec
[GTK3] Add the new frame blending modes to the GUI 2020-05-19 02:33:23 +02:00
Maximilian Mader 16c040d2d2
[GTK3] Clear sidebar in async input requests 2020-05-19 02:33:23 +02:00
Maximilian Mader 8f9d24c1e8
[GTK3] Implement debugger console sidebar 2020-05-19 02:33:23 +02:00
Maximilian Mader b428995126
[GTK3] Reflect CLI model override in GUI 2020-05-19 02:33:22 +02:00
Maximilian Mader a53d7f1e92
[GTK3] Add debug console prompt 2020-05-19 02:33:22 +02:00
Maximilian Mader 29ce04ff8a
[GTK3] Move &gb accesses on vblank to emu thread 2020-05-19 02:33:22 +02:00
Maximilian Mader a1b464bd23
[GTK3] Implement rewind, turbo and slow-motion 2020-05-19 02:33:22 +02:00
Maximilian Mader 9224b3f2ac
[GTK3] Convert to structured logging 2020-05-19 02:33:22 +02:00
Maximilian Mader 6a9ca41970
[GTK3] Allow switching the emulated model 2020-05-19 02:33:22 +02:00
Maximilian Mader df9189448d
[GTK3] Implement more menu handlers
Also fix some memory leaks.
2020-05-19 02:33:22 +02:00
Maximilian Mader 10ac1bd0a5
[GTK3] Implement basic debug console (no sidebar) 2020-05-19 02:33:22 +02:00
Maximilian Mader e1a1c3efbd
[GTK3] Use SDL2 for audio and (hardcoded) controllers 2020-05-19 02:33:22 +02:00
Maximilian Mader e38b0e40fa
[GTK3] Run the emulation in its own thread
The code has not been checked for thread safety yet!
2020-05-19 02:33:22 +02:00
Maximilian Mader ba82da5f49
[GTK3] Implement VRAM tile information on hover 2020-05-19 02:33:22 +02:00