78 Commits

Author SHA1 Message Date
Brian Pugh
55394c70e3 Add naive zelda START and SELECT button support. Currently they just perform the same actions as GAME and TIME, respectively 2021-11-16 18:34:47 +01:00
Konrad Beckmann
086f50e8d2 Use a global enum definition for appids 2021-11-02 22:09:00 +01:00
Konrad Beckmann
ee3cb5e9b5 Add screenshot support
Closes #163
2021-10-31 02:30:13 +02:00
Konrad Beckmann
017e2c7183 gb: Add more scaling options
Added:
- Fit + Soft -> bilinear scaling
- Full + Off -> NN scaling
2021-10-23 23:34:00 +02:00
Brian Pugh
278616969e fix savestates from saving/loading from the wrong location when __EXFLASH_OFFSET__ is specified (#136) 2021-08-17 20:13:39 +02:00
Brian Pugh
dbc2253023 Working Bank2 Flashapp (#131)
* set intflash address when programming

* Allow flashapp to work when flashing bank 2

* update readme

* Add tim bootloader SRAM magic-byte

* move boot stuff around to more appropriate locations
2021-08-15 21:42:57 +02:00
northskysl
d9542eb709 STM32 RTC Hardware Support & User Interface for Watch and Calendar (#128)
* Update rg_main.c

Added a menu to view and configure RTC parameters. It is activated by pressing 'TIME' button in retro-go main menu.

* Update main.c

Enable LSE oscillator and enable it as RTC clock source. Additionally enable CRS Sync LSE.

* Added time display to RTC menu

Added time display to RTC menu and also modified RTC initialization code so that it does not set the RTC date and time. Assuming that a fresh RTC has sensible values.

* Add date display to time menu

Added date display to time menu

* Fix predivs for LSE

Fixed predivs for LSE clock

* move RTC stuff to rg_rtc

Consolidate all RTC functions to rg_rtc. So far getters have been implemented only.

* Time setup UI + setters for Time

Setters for Time have been implemented and Time setup has been added into the UI to use them.

* Date setup added

Date setup with callbacks added

* Add real time datetime display

Modified the time menu to display and update in real time.

* Add a function to return Unix time

Unix time is returned as a 64-bit time_t. Casting to uint32_t will yield time in seconds since 1st Jan 1970.

* Fix setters' return type

Fixing warnings about wrong setter return type.

* Update rg_rtc.h

Missed the .h while updating return types of setters.

* Update rg_rtc.c

Add a nicer year display

* Reactivate LSI

This should fix an issue with DACs that causes Brightness control not to work.
2021-08-12 14:34:00 +02:00
Konrad Beckmann
283a0619df Add lz4 support for PCE engine
Limited to roms smaller than 300k
2021-08-11 21:51:19 +02:00
zx81
6d269a8219 Zx81 (#126)
* - Fix sound in PCE emu
* - New fixes for PCE audio
2021-08-10 14:07:08 +02:00
ludo
3514fb8613 Add GW support 2021-08-09 20:20:17 +02:00
Brian Pugh
f96b4bcb43 In-game macro overlay (#122)
* draw_darken_rounded_rectangle initial commit

* image drawing routines

* mostly working static overlay

* use 24x24 instead of 32x32 images, slightly tweak some layout

* complete volume and brightness overlays

* save/load overlay

* png icons and tool to convert them to bit arrays

* add speedup overlay icons

* install common_ingame_overlay hook to all emulators

* explicitly invoke ingame overlay when saving so that the icon shows up before the pause

* make transparency look a little better on dark backgrounds

* tweak bars offset

* have pce use lcd_get_active_framebuffer

* shift sun 1 pixel to the right; even though it's just as off-centered, it looks better
2021-08-08 16:11:50 +02:00
Brian Pugh
a3af61f484 continue drawing frames and don't skip until CPU usage hits 100 percent 2021-08-03 23:58:49 +02:00
Konrad Beckmann
ade7cb6fc5 New flash driver and integrated loader 2021-08-03 17:06:54 +02:00
Brian Pugh
1541393509 Long hold pause/set to toggle speedup (#114)
* nes long hold pause/set to toggle speedup

* refactor nes common emu loop; need to fix busyTime

* move odroid_system_tick into common loop, fix cpumon

* nes common_emu_loop

* pce common_emu_loop

* sms common_emu_loop

* fix some warnings

* setup pause/set macros; remove speedup based on long-pressing pause/set

* Update readme. Initial Controls section commit

* linting

* mute while macro save-stating
2021-07-29 20:20:55 +02:00
Brian Pugh
013083f827 have rom manager expose the rom extension 2021-07-08 20:06:43 +02:00
Konrad Beckmann
c73bd95d74 Suspend after idling in the main menu
Default timeout is 10 minutes.

Also adds a configurable timeout for this.

Closes #80
2021-07-03 01:45:02 +02:00
Konrad Beckmann
e4ec6ce857 Set TIM1 frequency to 1Hz and add an uptime counter 2021-07-03 00:23:51 +02:00
Konrad Beckmann
4be407159f emulators: Render frames and pause on power resume
When the user presses the power button from the off
state, the last played game will load. A few frames
will be rendered and the emulator will be paused.

Closes #10
2021-07-01 21:02:16 +02:00
Konrad Beckmann
559e2fc6ec Resume last played game when booting
Closes #38
2021-07-01 00:24:01 +02:00
ludo
711052daf7 - Add SG-1000 support 2021-06-30 00:21:12 +02:00
ludo
c01ee42360 Add support of Colecovision 2021-06-30 00:21:05 +02:00
bzhxx
b30d09365c GB/GBC : add LZ4 ROM compressed support (#91)
* add LZ4 decompression support

* NES: add support for LZ4 compressed ROM. Example : lz4 --best --content-size --no-frame-crc my_rom.nes my_compressed_rom.nes

* fix Makefile

* nes: Expose a buffer with unused ram

* nes: Fix indentation in osd_getromdata

* nes: Use _NES_ROM_UNPACK_BUFFER for LZ4 unpacking

* parse_roms: Compress NES ROMs with LZ4

* fix python typing for backward compatibility 3.6

* NES LZ4 support : add LZ4 format parsing

* Update parse_roms.py

remove unecessary line.

* Update lz4_depack.c

reorder the source code. The notice is now at the top.

* Update parse_roms.py

clean up.

* Update lz4_depack.c

remove  <string.h>.

* change submodule link

* typo comment fix

* GB/GBC add LZ4 ROM compression

* LZ4 library can be shared between emulators

* Add GB SRAM buffer setup using linker

* GB/GBC add LZ4 ROM support with bank switching

* add LZ4 decompress function in assembler for fun and test

* Remove static SRAM memory allocation used by the save function to increase the bank switching cache (14 > 26). The SRAM cache is stolen during save and reloaded right after

* add support for Mix compression and alternative compression statregy to limite cache swapping. By default (--compress), all the banks are compressed except bank#0. Using (--compress_gb_speed), the ROM banks are lightly compressed by selecting the larger banks to fill the cache and by trimming the empty banks. The option (--compress_gb_speed) can be used when a game speed is affected by the compression by default (--compress).

* update LZ4 loader with increased SRAM cache size and support for mixing compressed/uncompressed banks

* Fix to support MBC5 8MB ROM size (256 banks)Fix to support MBC5 8MB ROM size (256 banks)

* Linux emulator NES and GB start checked

* module update.

* Update parse_roms.py

remove print.

* update submodule. fix. LZ4 GB for roms size > 2MB

* LZ4 change compression args --best replaced by -9. Fix typo in new args

* Revert "Merge remote-tracking branch 'upstream/main' into main"

This reverts commit 487606760c, reversing
changes made to d9ab8c2870.

* Revert "Revert "Merge remote-tracking branch 'upstream/main' into main""

This reverts commit 6882de3955.

* GB/GBC: fix LCD glitch at the start by cleaning up the buffer emulator

Co-authored-by: Konrad Beckmann <konrad.beckmann@gmail.com>
Co-authored-by: brice <brice.lehouerou@free.fr>
2021-06-25 09:10:30 +02:00
Konrad Beckmann
0459feb40a debug: Add more flash debug features 2021-06-17 12:22:46 +02:00
Konrad Beckmann
b250e5c555 Add debug menu to show flash jdec id 2021-06-17 10:30:58 +02:00
Konrad Beckmann
5db4adc40f Increase audio level with a factor 2
Sound will be twice as loud now.

This may lead to a brownout if the battery isn't connected.
2021-05-24 14:09:43 +02:00
bzhxx
8a4ede05c1 nes: Add LZ4 compression support (#86)
Co-authored-by: Konrad Beckmann <konrad.beckmann@gmail.com>
2021-04-26 21:12:29 +02:00
GaryZ88
3df1e0a0c0 Adding PC Engine (TurboGrafx-16) Emulation (#78)
Adding PC Engine (TurboGrafx-16) Emulation
2021-02-18 08:16:32 +01:00
Scorp0rX0r
0e2edb09d2 Fix LCD init and merge resume support 2021-02-07 16:36:09 +01:00
Jan Dumon
8b5dd9aca6 reduce memory usage of listbox_item_t
Instead of using a fixed-length buffer, the user of listbox_item_t is
responsible for the memory. Most of the items are titles of roms and
those are static.
2021-01-22 19:11:10 +01:00
Jan Dumon
39377661f8 parse_roms: generate a const struct of the roms
This avoids using malloc for the menu structure of the roms.
2021-01-21 17:26:34 +01:00
Konrad Beckmann
6932a5f341 Improve audio volume calculation 2021-01-18 21:31:34 +01:00
Konrad Beckmann
7ce42520d6 Move headers to more sensible places 2021-01-12 23:49:30 +01:00
Franz Levin
bc61c642b1 battery: Added battery status 2021-01-11 02:30:22 +01:00
Franz Levin
58573dc296 cubemx: Generated new code 2021-01-11 02:30:22 +01:00
Jan Dumon
b656959c4d Integrate smsplusgx 2021-01-08 16:27:21 +01:00
Konrad Beckmann
d3bdb98781 Persist and show log after watchdog reset 2021-01-08 16:04:20 +01:00
Konrad Beckmann
9359d8b374 bsod: Encode fault in boot magic 2021-01-08 15:38:55 +01:00
Konrad Beckmann
c34d0e2cb8 Set boot_magic when watchdog expires 2021-01-08 15:32:41 +01:00
Jan Dumon
00e5d9a25c Added a watchdog to avoid power-cycles when things go wrong 2021-01-08 14:28:48 +01:00
Jan Dumon
0b553b87da Load emulators from flash into memory
This was originally written by Thomas Roth <code@stacksmashing.net> to
make it possible to support more emulators than what fits into memory at
the same time (commit c13aa09b).

Instead of generating a monolithic binary, the different emulators are
stored in flash and loaded into ram right before they are launched.

This is the basis for adding more emulators e.g. smsplusgx.
2021-01-04 17:20:48 +01:00
Konrad Beckmann
52c6150519 Increase emulator_framebuffer to correct size 2021-01-04 08:19:51 +01:00
Konrad Beckmann
5bf02cb429 Relocate emulator_framebuffer to .emulator_data 2021-01-04 08:19:02 +01:00
Konrad Beckmann
2c3c566437 Support 4K, 32K and 64K flash erase 2020-12-29 17:02:43 +01:00
Konrad Beckmann
c1efeecc23 Correctly specify the audio buffer size to handle 50/60 Hz 2020-12-29 03:05:15 +01:00
Konrad Beckmann
1d930d84a0 Default to 60 Hz 2020-12-28 21:58:08 +01:00
Konrad Beckmann
e4add4a4a4 nes: Support PAL and NTSC 2020-12-28 21:21:06 +01:00
Franz Levin
76b248e2a3 use dynamic array size 2020-12-28 15:38:15 +01:00
Konrad Beckmann
bd02b964fe Fix some additional warnings 2020-12-27 22:01:33 +01:00
Konrad Beckmann
09148a16f6 Fix rendering bug, support changing palettes 2020-12-27 16:34:33 +01:00
Konrad Beckmann
c4aba07673 disable profiling 2020-12-27 16:28:44 +01:00