Comments (15)
I am running X on on AMD64 though.
from tic-80.
Compiles from source version 1.2.2867-dev Pro. The slowness is present here as well. I don't know what it is but it feels like this is something as simple as decrease of frame rate by 50%, maybe as a result of doubling of some value somewhere else in the system?
Anyway, thx for a fun system. Let me know if I can help and do more testing.
from tic-80.
As I remember previously it was a problem with clock()
function 0cd38fd
from tic-80.
I'm seeing the same symptom with a from-source build of 1.1.2837-pro for a Raspberry Pi 5. Curiously, I thought I'd built the same version with the same options for the RPi400 which the Pi5 replaced, but I didn't see ther same slowdown there.
from tic-80.
Update: for me, it's specifically when I run tic80 in fullscreen mode (whether I pass --fullscreen
on the command line, or switch at runtime). When not in fullscreen, things seem to run at full speed; with fullscreen on, everything's chopped & screwed.
So, possibly something with the fullscreen upscaling code -- does that sound plausible?
My display is only 1280x720 at 60Hz, so I don't think I'm trying to push a ludicrous number of pixels. As further evidence, if I manually maximize the window to cover nearly my whole desktop, the frame/audio rate is still fine (with or without "integer scale" mode enabled). It's only when I enable fullscreen mode that the slowdown kicks in.
from tic-80.
Another update: the problem doesn't occur if I force software rendering with --soft
on the command line, even in fullscreen mode.
from tic-80.
Could pls someone test it with the disabled lines in src/system/sdl/main.c
from tic-80.
That seems to work. Just to confirm, the tic80 binary is in the bin dir and labeled player-sdl, correct? That plays my tic files are normal speed.
Anyone else?
from tic-80.
I must have a different problem. I tried building the main
branch today (commit 3cf27c5). Without modifications to sdl/main.c
(which includes the else
branch in the screenshot) running bin/tic80 --fullscreen
is still running slowly on my Pi5, while bin/tic80
(not full screen) runs at normal speed.
Commenting out the else
branch and rebuilding, I see no change to this behavior.
from tic-80.
Correction: I was wrong, re-compiling with lines 1926 & 1927 removed and Tic80 is slow playing local tic games or downloaded over the internet.
My apologies for the false positive in the original follow up. If I had the skills I would help track this down.
Thank you kindly for this great open source project, it really is appreciated. I can always use an older version so I am good. I hope my follow up provides useful in some way.
from tic-80.
Hi there, i observe the same behaviour as @cdwfs. On Raspberry Pi 5 Tic80 runs fine when windowed or maximized (still windowed), but slows down considerably when fullscreen. Strange thing is, when fullscreen is basically the same size as maximixed, so i don't think it's about performances. Top tells me tic80 stays at about 30% cpu utilization even when slowed.
I tried to comment the two lines as shown by @nesbox but no change in behaviour. I commented also the previous two (including the one with the delay) and still no change in behaviour, which is kind of strange i think. Shouldn't it run as fast as possible in that situation?
I'll keep investigating a bit
from tic-80.
So i got something: i turned to player-sdl. It only runs in windowed mode, but if i add the following line SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP);
before the main while loop, it goes fullscreen and runs at normal speed (no slow down!). If i then comment the lines dealing with the delay (SDL_Delay), then the game goes ultra fast, just as expected.
It kind of looks like main.c is doing a delay check somewhere else other than the main loop.
from tic-80.
watching this thread, no promises but i do have a RPi4 and a RPi0W and i hope to test this sometime
from tic-80.
can repro the slow full screen on the latest RPi OS (64-bit) on the RPi4 at last.
from tic-80.
@cdwfs are we sure it's not an Rpi5 issue? i tried to chage display from Wayland back to X and it seems to have improved a lot in fullscreen. You can change it with raspi_config
from tic-80.
Related Issues (20)
- Sometimes can't execute the first command after launch (keyboard input weirdness) HOT 1
- [Question] How i can compile TIC-80 as a Libretro core for Nintendo Wii? HOT 1
- [libretro] minimap arrows are wrong direction HOT 2
- [linux] Shadows Over the Twelve Lands crashes in latest Arch build HOT 2
- Android: TIC80 (PRO) not showing virtual gamepad every second run HOT 3
- Associate .tic files with TIC-80 on macOS
- TIC-80 doesn't start properly on Windows XP unless forced to `--soft` HOT 1
- New release soon / more frequent releases? HOT 3
- The "X button to enter surf" needs a better input check HOT 6
- Better import screen error messages HOT 1
- Tiles in map editor does not update after editing tile HOT 1
- Scaling issue on web export on mobile
- Native Apple Silicon version and Black Borders
- `--fs` accepts files, not just folders; errors follow
- Command line not fully visible when using past commands
- [Libretro] iOS support HOT 2
- Using surf, 'close game' should go back to surf and not console
- Mouse sprite and ram aren't linked
- keyword 'of' in javascript is not colored
- Segmentation fault HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tic-80.