ports/tinygb: Set title like sdl frontend does

This commit is contained in:
Bananymous 2025-05-05 01:10:41 +03:00
parent 76d4e6bd18
commit c0181820a9
2 changed files with 22 additions and 26 deletions

View File

@ -5,7 +5,7 @@ VERSION='git'
DOWNLOAD_URL="https://github.com/jewelcodes/tinygb.git#57fdaff675a6b5b963b2b6624868d9698eabe375" DOWNLOAD_URL="https://github.com/jewelcodes/tinygb.git#57fdaff675a6b5b963b2b6624868d9698eabe375"
configure() { configure() {
: make -f Makefile.banan_os clean
} }
build() { build() {

View File

@ -1,16 +1,14 @@
From 3e565f7d35e842e246db3371776adae74d02ae62 Mon Sep 17 00:00:00 2001 From 7f7c6402e384591bca63021aa97d60a8107de88d Mon Sep 17 00:00:00 2001
From: Bananymous <bananymousosq@gmail.com> From: Bananymous <bananymousosq@gmail.com>
Date: Wed, 23 Apr 2025 13:10:38 +0300 Date: Mon, 5 May 2025 00:59:03 +0300
Subject: [PATCH] Add support for banan-os Subject: [PATCH] Add support for banan-os
--- ---
Makefile.banan_os | 28 +++ Makefile.banan_os | 28 +++
src/platform/banan-os/main.cpp | 365 +++++++++++++++++++++++++++++++ src/platform/banan-os/main.cpp | 362 +++++++++++++++++++++++++++++++++
src/platform/banan-os/main.cpp.o | Bin 0 -> 23536 bytes 2 files changed, 390 insertions(+)
3 files changed, 393 insertions(+)
create mode 100644 Makefile.banan_os create mode 100644 Makefile.banan_os
create mode 100644 src/platform/banan-os/main.cpp create mode 100644 src/platform/banan-os/main.cpp
create mode 100644 src/platform/banan-os/main.cpp.o
diff --git a/Makefile.banan_os b/Makefile.banan_os diff --git a/Makefile.banan_os b/Makefile.banan_os
new file mode 100644 new file mode 100644
@ -48,10 +46,10 @@ index 0000000..22e191e
+ $(LD) $(OBJ) -o tinygb $(LDFLAGS) + $(LD) $(OBJ) -o tinygb $(LDFLAGS)
diff --git a/src/platform/banan-os/main.cpp b/src/platform/banan-os/main.cpp diff --git a/src/platform/banan-os/main.cpp b/src/platform/banan-os/main.cpp
new file mode 100644 new file mode 100644
index 0000000..e9c6a02 index 0000000..94f249e
--- /dev/null --- /dev/null
+++ b/src/platform/banan-os/main.cpp +++ b/src/platform/banan-os/main.cpp
@@ -0,0 +1,365 @@ @@ -0,0 +1,362 @@
+ +
+/* tinygb - a tiny gameboy emulator +/* tinygb - a tiny gameboy emulator
+ (c) 2022 by jewel */ + (c) 2022 by jewel */
@ -246,10 +244,8 @@ index 0000000..e9c6a02
+ ASSERT(s_window->height() == static_cast<uint32_t>(SGB_HEIGHT * scaling)); + ASSERT(s_window->height() == static_cast<uint32_t>(SGB_HEIGHT * scaling));
+} +}
+ +
+int main(int argc, char **argv) +int main(int argc, char **argv) {
+{ + if(argc != 2) {
+ if(argc != 2)
+ {
+ fprintf(stdout, "usage: %s rom_name\n", argv[0]); + fprintf(stdout, "usage: %s rom_name\n", argv[0]);
+ return 1; + return 1;
+ } + }
@ -261,9 +257,8 @@ index 0000000..e9c6a02
+ load_keys(); + load_keys();
+ +
+ // open the rom + // open the rom
+ FILE* rom_file = fopen(rom_filename, "r"); + FILE *rom_file = fopen(rom_filename, "r");
+ if (rom_file == nullptr) + if(!rom_file) {
+ {
+ write_log("unable to open %s for reading: %s\n", rom_filename, strerror(errno)); + write_log("unable to open %s for reading: %s\n", rom_filename, strerror(errno));
+ return 1; + return 1;
+ } + }
@ -275,8 +270,7 @@ index 0000000..e9c6a02
+ write_log("loading rom from file %s, %d KiB\n", rom_filename, rom_size / 1024); + write_log("loading rom from file %s, %d KiB\n", rom_filename, rom_size / 1024);
+ +
+ rom = malloc(rom_size); + rom = malloc(rom_size);
+ if (rom == nullptr) + if(!rom) {
+ {
+ write_log("unable to allocate memory\n"); + write_log("unable to allocate memory\n");
+ fclose(rom_file); + fclose(rom_file);
+ return 1; + return 1;
@ -340,31 +334,32 @@ index 0000000..e9c6a02
+ time_t rawtime; + time_t rawtime;
+ struct tm *timeinfo; + struct tm *timeinfo;
+ int sec = 500; // any invalid number + int sec = 500; // any invalid number
+ char new_title[256];
+ int percentage; + int percentage;
+ int throttle_underflow = 0; + int throttle_underflow = 0;
+ int throttle_target = throttle_lo + SPEED_ALLOWANCE; + int throttle_target = throttle_lo + SPEED_ALLOWANCE;
+ +
+ for (;;) + while(1) {
+ {
+ s_window->poll_events(); + s_window->poll_events();
+ +
+ for (timing.current_cycles = 0; timing.current_cycles < timing.main_cycles;) + for(timing.current_cycles = 0; timing.current_cycles < timing.main_cycles; ) {
+ {
+ cpu_cycle(); + cpu_cycle();
+ display_cycle(); + display_cycle();
+ timer_cycle(); + timer_cycle();
+ } + }
+ +
+
+ time(&rawtime); + time(&rawtime);
+ timeinfo = localtime(&rawtime); + timeinfo = localtime(&rawtime);
+ +
+ if (sec != timeinfo->tm_sec) + if(sec != timeinfo->tm_sec) {
+ {
+ sec = timeinfo->tm_sec; + sec = timeinfo->tm_sec;
+ percentage = (drawn_frames * 1000) / 597; + percentage = (drawn_frames * 1000) / 597;
+ sprintf(new_title, "tinygb (%d fps - %d%%)", drawn_frames, percentage);
+ s_window->set_title(new_title);
+ +
+ // adjust cpu throttle according to acceptable fps (98%-102%) + // adjust cpu throttle according to acceptable fps (98%-102%)
+ if (throttle_enabled){ + if(throttle_enabled) {
+ if(percentage < throttle_lo) { + if(percentage < throttle_lo) {
+ // emulation is too slow + // emulation is too slow
+ if(!throttle_time) { + if(!throttle_time) {
@ -417,6 +412,7 @@ index 0000000..e9c6a02
+ die(0, ""); + die(0, "");
+ return 0; + return 0;
+} +}
\ No newline at end of file
-- --
2.49.0 2.49.0