this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fixed crash + browser timing fixes #1828

nesbox 40d0ff68 9248a684

+61 -39
+1 -1
src/studio/editors/code.c
··· 2240 2240 } 2241 2241 } 2242 2242 2243 - static void emptyDone() {} 2243 + static void emptyDone(void* data) {} 2244 2244 2245 2245 static void setIdle(void* data) 2246 2246 {
+1 -1
src/studio/editors/map.c
··· 1367 1367 memcpy(&tic->ram.vram.palette, getBankPalette(false), sizeof(tic_palette)); 1368 1368 } 1369 1369 1370 - static void emptyDone() {} 1370 + static void emptyDone(void* data) {} 1371 1371 1372 1372 static void setIdle(void* data) 1373 1373 {
+1 -1
src/studio/editors/sprite.c
··· 1980 1980 } 1981 1981 } 1982 1982 1983 - static void emptyDone() {} 1983 + static void emptyDone(void* data) {} 1984 1984 1985 1985 static void setIdle(void* data) 1986 1986 {
+3 -3
src/studio/screens/console.c
··· 589 589 590 590 static void onExitCommand(Console* console) 591 591 { 592 - exitStudio(); 592 + exitStudio(NULL); 593 593 commandDone(console); 594 594 } 595 595 ··· 2341 2341 { 2342 2342 commandDone(console); 2343 2343 2344 - resumeGame(); 2344 + resumeGame(NULL); 2345 2345 } 2346 2346 2347 2347 static void onEvalCommand(Console* console) ··· 3796 3796 console->commands.current++; 3797 3797 } 3798 3798 else if(getConfig()->cli) 3799 - exitStudio(); 3799 + exitStudio(NULL); 3800 3800 } 3801 3801 } 3802 3802
+9 -9
src/studio/screens/main_menu.c
··· 179 179 {"BACK", showMainMenu, .back = true}, 180 180 }; 181 181 182 - static void showOptionsMenu(); 182 + static void showOptionsMenu(void* data); 183 183 static void gameMenuHandler(void* data) 184 184 { 185 185 tic_mem* tic = menu_impl.mem; 186 186 tic_core_script_config(tic)->callback.gamemenu(tic, *(s32*)data, NULL); 187 - resumeGame(); 187 + resumeGame(NULL); 188 188 } 189 189 190 190 void freeGameMenu() ··· 235 235 } 236 236 } 237 237 238 - void showGameMenu() 238 + void showGameMenu(void* data) 239 239 { 240 240 studio_menu_init(menu_impl.menu, menu_impl.gameMenu->items, menu_impl.gameMenu->count, 0, 0, showMainMenu, NULL); 241 241 } ··· 258 258 {"QUIT TIC-80", exitStudio}, 259 259 }; 260 260 261 - void showMainMenu() 261 + void showMainMenu(void* data) 262 262 { 263 263 initGameMenu(); 264 264 ··· 273 273 COUNT_OF(OptionMenu), pos, COUNT_OF(MainMenu) - 3 - mainMenuStart(), showMainMenu, NULL); 274 274 } 275 275 276 - static void showOptionsMenu() 276 + static void showOptionsMenu(void* data) 277 277 { 278 278 showOptionsMenuPos(COUNT_OF(OptionMenu) - 4); 279 279 } 280 280 281 - static void saveGamepadMenu() 281 + static void saveGamepadMenu(void* data) 282 282 { 283 283 rwConfig()->options.mapping = menu_impl.gamepads->mapping; 284 284 showOptionsMenuPos(COUNT_OF(OptionMenu) - 3); 285 285 } 286 286 287 - static void resetGamepadMenu(); 287 + static void resetGamepadMenu(void* data); 288 288 289 289 static char MappingItems[TIC_BUTTONS][sizeof "RIGHT - RIGHT"]; 290 290 ··· 390 390 menu_impl.gamepads->key = -1; 391 391 } 392 392 393 - static void resetGamepadMenu() 393 + static void resetGamepadMenu(void* data) 394 394 { 395 395 menu_impl.gamepads->index = 0; 396 396 ZEROMEM(menu_impl.gamepads->mapping); ··· 398 398 initGamepadMenu(); 399 399 } 400 400 401 - void showGamepadMenu() 401 + void showGamepadMenu(void* data) 402 402 { 403 403 menu_impl.gamepads->index = 0; 404 404 menu_impl.gamepads->mapping = getConfig()->options.mapping;
+2 -2
src/studio/screens/main_menu.h
··· 22 22 23 23 #pragma once 24 24 25 - void showGamepadMenu(); 26 - void showMainMenu(); 25 + void showGamepadMenu(void* data); 26 + void showMainMenu(void* data); 27 27 void freeGameMenu(); 28 28 void initGamepadMenu(); 29 29 void initMainMenu(Menu *menu, void *gameMenu, Config *config, tic_mem* mem, Gamepads *gamepads);
+1 -1
src/studio/screens/menu.c
··· 82 82 enum{TextMargin = 2, ItemHeight = TIC_FONT_HEIGHT + TextMargin * 2}; 83 83 enum{Hold = KEYBOARD_HOLD, Period = ItemHeight}; 84 84 85 - static void emptyDone() {} 85 + static void emptyDone(void* data) {} 86 86 87 87 static void menuUpDone(void* data) 88 88 {
+4 -2
src/studio/screens/menu.h
··· 40 40 s32 pos; 41 41 } MenuOption; 42 42 43 + typedef void(*MenuItemHandler)(void*); 44 + 43 45 typedef struct 44 46 { 45 47 const char* label; 46 - void(*handler)(void*); 48 + MenuItemHandler handler; 47 49 48 50 MenuOption* option; 49 51 const char* help; ··· 51 53 s32 width; 52 54 } MenuItem; 53 55 54 - void studio_menu_init(Menu* menu, const MenuItem* items, s32 rows, s32 pos, s32 backPos, void(*back)(void*), void* data); 56 + void studio_menu_init(Menu* menu, const MenuItem* items, s32 rows, s32 pos, s32 backPos, MenuItemHandler handler, void* data); 55 57 bool studio_menu_back(Menu* menu); 56 58 void studio_menu_free(Menu* menu); 57 59
+1 -1
src/studio/screens/surf.c
··· 769 769 studio_menu_anim_scanline(tic, row, NULL); 770 770 } 771 771 772 - static void emptyDone() {} 772 + static void emptyDone(void* data) {} 773 773 774 774 static void setIdle(void* data) 775 775 {
+12 -12
src/studio/studio.c
··· 66 66 67 67 #endif 68 68 69 - static void emptyDone() {} 69 + static void emptyDone(void* data) {} 70 70 71 71 StudioImplementation impl = 72 72 { ··· 108 108 .text = "\0", 109 109 }, 110 110 111 - .gamepads = 112 - { 113 - .key = -1, 114 - }, 115 - 116 111 .video = 117 112 { 118 113 .record = false, ··· 120 115 .frames = 0, 121 116 }, 122 117 #endif 118 + 119 + .gamepads = 120 + { 121 + .key = -1, 122 + }, 123 123 }; 124 124 125 125 void fadePalette(tic_palette* pal, s32 value) ··· 1001 1001 impl.studio.quit = yes; 1002 1002 } 1003 1003 1004 - void exitStudio() 1004 + void exitStudio(void* data) 1005 1005 { 1006 1006 #if defined(BUILD_EDITORS) 1007 1007 if(impl.mode != TIC_START_MODE && studioCartChanged()) ··· 1142 1142 } 1143 1143 #endif 1144 1144 1145 - void resetGame() 1145 + void resetGame(void* data) 1146 1146 { 1147 1147 tic_api_reset(impl.studio.tic); 1148 1148 setStudioMode(TIC_RUN_MODE); 1149 1149 } 1150 1150 1151 - void resumeGame() 1151 + void resumeGame(void* data) 1152 1152 { 1153 1153 tic_core_resume(impl.studio.tic); 1154 1154 impl.mode = TIC_RUN_MODE; ··· 1552 1552 } 1553 1553 1554 1554 initMainMenu(impl.menu, &impl.gameMenu, impl.config, impl.studio.tic, &impl.gamepads); 1555 - showMainMenu(); 1555 + showMainMenu(NULL); 1556 1556 } 1557 1557 1558 1558 static void processStudioShortcuts() ··· 1589 1589 } 1590 1590 else if(ctrl) 1591 1591 { 1592 - if(keyWasPressedOnce(tic_key_q)) exitStudio(); 1592 + if(keyWasPressedOnce(tic_key_q)) exitStudio(NULL); 1593 1593 #if defined(BUILD_EDITORS) 1594 1594 else if(keyWasPressedOnce(tic_key_pageup)) changeStudioMode(-1); 1595 1595 else if(keyWasPressedOnce(tic_key_pagedown)) changeStudioMode(1); ··· 2079 2079 #endif 2080 2080 } 2081 2081 2082 - void exitGame() 2082 + void exitGame(void* data) 2083 2083 { 2084 2084 if(impl.prevMode == TIC_SURF_MODE) 2085 2085 {
+3 -3
src/studio/studio.h
··· 189 189 190 190 void setStudioMode(EditorMode mode); 191 191 EditorMode getStudioMode(); 192 - void exitStudio(); 192 + void exitStudio(void* data); 193 193 194 194 void toClipboard(const void* data, s32 size, bool flip); 195 195 bool fromClipboard(void* data, s32 size, bool flip, bool remove_white_spaces); ··· 230 230 void gotoSurf(); 231 231 232 232 void runGame(); 233 - void exitGame(); 234 - void resumeGame(); 233 + void exitGame(void* data); 234 + void resumeGame(void* data); 235 235 236 236 tic_tiles* getBankTiles(); 237 237 tic_palette* getBankPalette(bool bank);
+2 -2
src/studio/studio_impl.h
··· 212 212 213 213 } StudioImplementation; 214 214 215 - void resetGame(); 216 - void resumeGame(); 215 + void resetGame(void* data); 216 + void resumeGame(void* data);
+21 -1
src/system/sdl/main.c
··· 1601 1601 1602 1602 static void emsGpuTick() 1603 1603 { 1604 + static double nextTick = -1.0; 1605 + 1606 + bool vsync = platform.studio->config()->options.vsync; 1607 + 1608 + if(!vsync) 1609 + { 1610 + if(nextTick < 0.0) 1611 + nextTick = emscripten_get_now(); 1612 + 1613 + nextTick += 1000.0/TIC80_FRAMERATE; 1614 + } 1615 + 1604 1616 gpuTick(); 1605 1617 1606 1618 EM_ASM( ··· 1611 1623 FS.syncfs(false,function(){}); 1612 1624 } 1613 1625 }); 1626 + 1627 + if(!vsync) 1628 + { 1629 + double delay = nextTick - emscripten_get_now(); 1630 + 1631 + if(delay > 0.0) 1632 + emscripten_set_main_loop_timing(EM_TIMING_SETTIMEOUT, delay); 1633 + } 1614 1634 } 1615 1635 1616 1636 #endif ··· 1659 1679 SDL_PauseAudioDevice(platform.audio.device, 0); 1660 1680 1661 1681 #if defined(__EMSCRIPTEN__) 1662 - emscripten_set_main_loop(emsGpuTick, platform.studio->config()->options.vsync ? 0 : TIC80_FRAMERATE, 1); 1682 + emscripten_set_main_loop(emsGpuTick, 0, 1); 1663 1683 #else 1664 1684 { 1665 1685 const u64 Delta = SDL_GetPerformanceFrequency() / TIC80_FRAMERATE;