Commit graph

2672 commits

Author SHA1 Message Date
Sven Eckelmann
421c5b059c Fix OSD crash after pause-stop-start-pause of emulator
The osd message handler for pause messages are managed outside the
message queue of the osd and will only be updated during
pauseContinueEmulation, but the message is bound to an OpenGL context
and thus must be also be deleted when the emulator is stopped and the
video plugin shuts down.
2009-11-14 01:01:38 -05:00
Sven Eckelmann
4923bcf6ad Don't override FGR with 0xffffffff after mtc0
When somebody switches between 64-bit wide FGR to 32-bit FGR it will
rearrange all registers in memory. This is partly done by shifting the
different parts of a new register pair for a double together. It is
important that this is done with unsigned integers or otherwise sign
extension is done and the upper part of the register will always be
0xffffffff when the bit 31 of the lower part of the register is 1.
2009-11-14 00:58:37 -05:00
Sven Eckelmann
27b4796613 Don't shuffle FGR loaded from Project64
I couldn't receive any comments from zilmar about the way the FGR
register is stored inside the savegame of pj64. So I wrote some
savegames to help me to reverse engineer it. The result was that we do
it nearly perfect, but the PJ64 savegame doesn't shuffle the data back
to 64 bit wide FGR before saving when it is currently in 32 bit wide
FGR. So we shouldn't do it when saving to or loading from PJ64 savegame.
2009-11-14 00:56:43 -05:00
Sven Eckelmann
814fa8df74 Set video width and status during savestate load
Not setting status and width for video plugins could result in
corrupted output in some programs.
2009-11-14 00:54:22 -05:00
Sven Eckelmann
69c0030c03 Set aiDacrate during savestate load
Without allowing the audio plugin to set the aiDacrate the program will
start to behave strangely because the audio plugin will work with a
wrong frequency.
2009-11-14 00:51:26 -05:00
Sven Eckelmann
93535075a2 Don't allow to override r0 register
r0 on MIPS is hardwired to zero. It is allowed to write to this
register, but the result of any operation with the target register r0 is
discarded.
2009-11-14 00:46:57 -05:00
Richard Goedeken
58c997278d cleaned up Auria's OSX bundle support patch 2009-11-14 00:39:08 -05:00
Richard Goedeken
2739a934c8 imported patch OSXBundleSupport 2009-11-14 00:32:56 -05:00
Richard Goedeken
6890b09c83 silly indentation 2009-11-14 00:32:37 -05:00
Richard Goedeken
6c151b57a7 imported patch FileReadBugFixed 2009-11-14 00:30:18 -05:00
Richard Goedeken
243fd15d2c cleaned up makefiles a bit 2009-11-14 00:29:31 -05:00
Richard Goedeken
7b602e0eba imported patch OSX_build 2009-11-14 00:24:08 -05:00
Richard Goedeken
13de16f444 zipped up the helper scripts into 1 tar.gz for easy linking from bitbucket 2009-11-09 07:52:45 -05:00
Richard Goedeken
72bcded234 updated the m64p_ tool scripts for more fine-grained operation 2009-11-08 23:50:13 -05:00
Richard Goedeken
0d283b31c2 in VidExt, track the current fullscreen/windowed state 2009-11-07 23:13:02 -05:00
Richard Goedeken
33fd1936a2 Fullscreen is not a core parameter anymore, now its in the Video-General section and the graphics plugin should correctly startup in fullscreen mode if set to True 2009-11-07 23:03:24 -05:00
Richard Goedeken
ac3543bf01 automatically save the configuration file the first time that the emulator is run 2009-11-06 19:45:54 -05:00
Richard Goedeken
a4878f044a added clone/build script in tools/ 2009-11-06 01:13:31 -05:00
Richard Goedeken
e3bef6c603 updated regression test script and config file to build the project with the 2.0 architecture 2009-11-05 01:15:29 -05:00
Richard Goedeken
5393c6fa7b bugfix: add path separator to the end of configuration folder, in case it was given through the command line and missing on the end 2009-11-05 00:38:53 -05:00
Richard Goedeken
94cf0bc5a3 added Stop, SetFrameCallback, and TakeNextScreenshot front-end functions. Fixed up the directory handling stuff in screenshot.cpp 2009-11-04 23:50:24 -05:00
Richard Goedeken
ea7fcf0c5d send the SDL KeyMod value to the input plugin 2009-11-04 22:31:06 -05:00
Richard Goedeken
62da3c1800 In the typedef struct {} BUTTONS data structure, X_AXIS and Y_AXIS were reversed, causing all kinds of brain damage to the code in the input plugin 2009-11-03 22:36:35 -05:00
Richard Goedeken
dd5a4108db added typedef'd pointer to ConfigDeleteSection() in m64p_config.h 2009-11-01 19:26:34 -05:00
Richard Goedeken
e624904332 Added ConfigDeleteSection() function 2009-11-01 19:20:44 -05:00
Richard Goedeken
1399f5177d wrote the Core Video Extension - part of this accepts and uses function pointers from the front-end for overriding the video functions, the other part calls SDL functions for fallback when the override is disabled 2009-10-30 01:12:41 -04:00
Richard Goedeken
76311e739c print warning if plugins are not attached in the proper order 2009-10-28 20:32:17 -04:00
Richard Goedeken
7719b7c6b6 print warnings when dummy plugins are attached 2009-10-28 07:55:24 -04:00
Richard Goedeken
40144ebea6 changed line spacing in written config file 2009-10-28 01:23:43 -04:00
Richard Goedeken
cc732fb536 bugfix: pass a pointer to the byte-swapped rom image to the gfx plugin, not the un-swapped header 2009-10-26 23:04:11 -04:00
Richard Goedeken
8a3e83927e added ROM Header back into GFX_INFO structure to sent when starting the video plugin. Changed ordering of startup operations: ROM must now be loaded _before_ the plugins are attached 2009-10-26 00:50:28 -04:00
Richard Goedeken
2ace585413 more user-friendly ROM information output through DebugMessage 2009-10-24 15:09:17 -04:00
Richard Goedeken
af80e7b4fb changed makefile option named DBG to DEBUGGER, and changed DBGSYM to DEBUG. added state load/save M64CMD enums 2009-10-22 23:06:50 -04:00
Richard Goedeken
2aeba8bf18 bugfix: need to set next pointer to NULL when creating new config section 2009-10-22 07:45:08 -04:00
Richard Goedeken
232faf5ae1 moved font.ttf file up one dir into data folder, removed fonts folder 2009-10-21 21:27:00 -04:00
Richard Goedeken
d4c357e4ff added rom handling and execute functions to CoreDoCommand. modified open_rom and close_rom in rom.c to work with new API 2009-10-21 21:23:17 -04:00
Richard Goedeken
debaf1a556 removed unneeded gui.h file 2009-10-20 23:47:43 -04:00
Richard Goedeken
90e6659a9a fixed minor chicken/egg problem; CoreStartup() needs a command-line specified shared data search path when it starts - it cant be specified later through the SharedDataPath core config variable because its needed at startup 2009-10-20 23:34:16 -04:00
Richard Goedeken
a213c0dbdd renamed some main.c functions for consistency. fixed segfault in ini_reader.c when cheat file .ini object is closed after failing to load 2009-10-20 21:35:01 -04:00
Richard Goedeken
0be75a2b23 filled in CoreErrorMessage() 2009-10-20 20:07:43 -04:00
Richard Goedeken
a98d235a49 another big changeset moving over to the new API: 1. removed main/config.h and config.c, refactored core code to use new config api 2. added code for CoreAttachPlugin/CoreDetachPlugin 3. refactored r4300 core selector mechanism for single variable, removing dynacore/interpcore 4. rewrote main.c, removing unneeded functions and variables, refactoring for new API 2009-10-20 19:47:04 -04:00
Richard Goedeken
9d76a0d749 refactor plugin API to match core<-->frontend API: created api/m64p_plugin.h with function pointers and structure definitions. main/plugin.h now contains just the extern plugin function pointer declarations, some version info, and the global functions for attaching/detaching plugins 2009-10-18 13:54:35 -04:00
Richard Goedeken
1f5117801d Completely rewrote Core's plugin handling code. Too many changes to list them all, but from a high-level perspective: 1. Remove all file-based library-handling code from plugin.c 2. Changed global API of plugin.c to integrate easily with entry-point code in api/frontend.c 3. New feature: automatic dummy plugin fallback 4. Removed legacy Win32 types (BYTE, DWORD) and struct members (hWnd, hInst, etc) 2009-10-17 22:09:51 -04:00
Richard Goedeken
fc935ffae2 Finished first draft of api/config.c: 1. added ConfigDirOverride parameter to ConfigInit 2. bugfix ConfigOpenSection: create new section if requested name doesnt exist 3. finished CoreStartup() function 4. Bugfixes in ConfigSaveFile() 2009-10-17 00:01:17 -04:00
Richard Goedeken
d907996618 implemented the last 4 functions in the Config section, the special ConfigSetDefault* functions 2009-10-16 19:33:07 -04:00
Richard Goedeken
25905c5e5c implemented special-purpose Get() functions in configuration module 2009-10-16 01:26:28 -04:00
Richard Goedeken
2ef22904b3 Added general-purspose config Get/Set functions. Changed internal config floating-point value type from Double to Float 2009-10-16 00:47:41 -04:00
Richard Goedeken
e48eb68133 bugfix in osal_mkdirp() function 2009-10-15 23:50:52 -04:00
Richard Goedeken
e4054426fe implemented remaining Selector functions in Config module 2009-10-15 23:38:47 -04:00
Richard Goedeken
cd54230594 moved all of the api_* files from main/ to api/, removing the prefix api_ from their names 2009-10-15 23:10:56 -04:00