Commit Graph

424 Commits

Author SHA1 Message Date
Stefanos Kornilios Mitsis Poiitidis 2eb9d7908f A first hackthrough to get nacl compiling working 2015-07-29 04:17:31 +02:00
~skmp 376a36bf57 Emscripten: Hacky support, can boot bios
- Add TARGET_BOUNDED_EXECUTION, TARGET_EMSCRIPTEN
- Add emscripten makefile

Of course, there's no jit at this point
2015-07-29 04:08:08 +02:00
~skmp a2831d67a0 vmem/alloc: TARGET_NO_NVMEM to not use page tricks
This combined with various other configs avoid segfault/pagefaults usage
2015-07-29 04:08:07 +02:00
~skmp 59c6012db2 pvr/rend_if: TARGET_NO_THREADS support 2015-07-29 04:08:06 +02:00
Stefanos Kornilios Mitsis Poiitidis c8f982b8f5 linux-common: TARGET_NO_EXCEPTIONS, TARGET_NO_THREADS 2015-07-29 04:08:05 +02:00
~skmp 518c547fb5 nixprof: move to its own module, TARGET_NO_NIXPROF, NO_NIXPROF 2015-07-29 04:08:04 +02:00
~skmp b1a55aba3f ta_parser: use uniform function signatures for Append* callbacks
- Fixes emscripten build & makes more sense overall
2015-07-29 04:08:03 +02:00
Stefanos Kornilios Mitsis Poiitidis 2347b95bf2 aica/sgc: fix update_rate warning 2015-07-29 03:26:58 +02:00
Stefanos Kornilios Mitsis Poiitidis a28209cae2 deps/sha256: memset is in string.h, not memory.h 2015-07-29 03:26:08 +02:00
Stefanos Kornilios Mitsis Poiitidis 6ebaa74ffe core.mk: Only android needs deps/libzip/ right now 2015-07-29 03:24:51 +02:00
Stefanos Kornilios Mitsis Poiitidis 30229f6724 cl: Fix const warning 2015-07-29 03:23:08 +02:00
Stefanos Kornilios Mitsis Poiitidis 75fd698695 Merge pull request #701 from reicast/feat/rec-cpp
Initial implementation of a "dynarec-structured" cached shop interpreter
2015-07-29 02:43:51 +02:00
Stefanos Kornilios Mitsis Poiitidis a82f9704d6 shrec: Limit max blocksize to 511 shops 2015-07-29 02:29:16 +02:00
~skmp f1a6f04dce rec-cpp: verify() that we have an executer w/ shop_count 2015-07-29 02:29:07 +02:00
Stefanos Kornilios Mitsis Poiitidis ec5bb09917 rec-cpp: Add sig aCaCcCdC for mul_u64, mul_s64 2015-07-29 02:28:52 +02:00
~skmp 5b67e3f090 rec-cpp: SH4_TCB doesn't need to be in .text if not executable 2015-07-29 02:28:39 +02:00
Stefanos Kornilios Mitsis Poiitidis 1e0224dd1b rec-cpp: Add sig aCaCcCdC for rocl, rocr 2015-07-29 02:28:29 +02:00
Stefanos Kornilios Mitsis Poiitidis 7de36d56ec Merge pull request #712 from reicast/feat/imgread-readmiss-with-sector
imgread/common: On read error, print the sector that failed
2015-07-29 00:49:21 +02:00
~skmp 39e1439b93 imgread/common: On read error, print the sector that failed 2015-07-29 00:41:14 +02:00
Stefanos Kornilios Mitsis Poiitidis fb6d0a0166 Merge pull request #710 from reicast/feat/vmu-safer-creation
maple: Gracefully fail if vmu cannot be written
2015-07-29 00:03:00 +02:00
Stefanos Kornilios Mitsis Poiitidis 83d3abf266 maple: Gracefully fail if vmu cannot be written 2015-07-28 23:54:50 +02:00
Stefanos Kornilios Mitsis Poiitidis f62d532b78 Audiostream: Don't log on every push if audio is disabled
There is an initialization warning which is enough to warn users
2015-07-28 23:52:48 +02:00
Jan Holthuis 3faf51c6ce Removed mode variable in print_mem_addr()
This removes the mode variable in core/linux/common.cpp's
print_mem_addr(). It not neccessary and produces compiler warnings.
2015-07-27 19:12:28 +02:00
Jan Holthuis 9e00305c90 Fix anonymous struct/union linkage errors in gdromv3.cpp
Since read_params, packet_cmd, read_buff, pio_buff, ata_cmd, cdda and
ByteCount have not been declared static, they are visible in other
translation units. Since their structs are anonymous, their types have
internal linkage only. Thus, accessing them in other translations units
is impossible anyway.

By declaring them static, we're giving it internal linkage so that
neither the type nor the variable are visible in other translation
units.

Here are the errors:

../../core/hw/gdrom/gdromv3.cpp:50:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> read_params' with
linkage
 } read_params;
   ^
../../core/hw/gdrom/gdromv3.cpp:83:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> packet_cmd' with
linkage
 } packet_cmd;
   ^
../../core/hw/gdrom/gdromv3.cpp:91:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> read_buff' with
linkage
 } read_buff;
   ^
../../core/hw/gdrom/gdromv3.cpp💯3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> pio_buff' with
linkage
 } pio_buff;
   ^
../../core/hw/gdrom/gdromv3.cpp:106:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> ata_cmd' with
linkage
 } ata_cmd;
   ^
../../core/hw/gdrom/gdromv3.cpp:122:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> cdda' with linkage
 } cdda;
   ^
../../core/hw/gdrom/gdromv3.cpp:156:4: warning: anonymous type with no
linkage used to declare variable '<anonymous union> ByteCount' with
linkage
  } ByteCount;
    ^
2015-07-27 19:08:35 +02:00
Stefanos Kornilios Mitsis Poiitidis 4b97f468b5 rec-cpp: Implement block ends and a few more decoders
- Full IL mode now works!
- Dispatch up to 270 mips on 2.2ghz i7, on a complex 3d scene
- Will run many games fullspeed on modern pc, thanks to idleskip
2015-07-25 20:38:48 +02:00
Stefanos Kornilios Mitsis Poiitidis fb55e7f6f8 sh4/canonical: Provide impls for sync_sr and sync_fpscr
This shouldn't be a requirement as directly using shil_cf_ext should work,
but for some reason if I don't msvc optimizes the functions out.
2015-07-25 20:36:06 +02:00
Stefanos Kornilios Mitsis Poiitidis cbda836a96 she/core: Less stupid register swap functions 2015-07-25 20:33:53 +02:00
Stefanos Kornilios Mitsis Poiitidis b1f7015a98 rec/cpp: Mostly fully direct specialized dispatchers
- Nest shil implementations to shilop_##name::form::impl for easier template matching
- Add more direct handlers
- Add prints if a direct handler isn't found
- Remove multiple indirect handlers, leave them for fallback
2015-07-25 14:36:04 +02:00
Stefanos Kornilios Mitsis Poiitidis 51a6ed2146 rec/all: optional mips counter on recs
Also de-unroll rec-cpp for debug builds
2015-07-25 14:31:46 +02:00
Stefanos Kornilios Mitsis Poiitidis 00dbd6222f rec-cpp: Massage for gcc compatibility 2015-07-25 14:25:51 +02:00
Stefanos Kornilios Mitsis Poiitidis 1710f76ab1 unroll the execution loop 2015-07-25 14:24:11 +02:00
Stefanos Kornilios Mitsis Poiitidis 7303a046be rec-cpp: Direct calls to shil_opcl_* handlers for many opcodes 2015-07-25 14:23:59 +02:00
Stefanos Kornilios Mitsis Poiitidis 39e369411c shil/canonical: Fix decls, comment 2015-07-25 14:23:45 +02:00
Stefanos Kornilios Mitsis Poiitidis e4138f9a60 rec-cpp: Wastefully generate more dispatchers for better BTB cache locality
The real solution is to have inlining between the (now static) dispatchers and the impls.
It's gonna be hard to convince the compiler on that.
2015-07-25 14:23:07 +02:00
Stefanos Kornilios Mitsis Poiitidis fc01428c30 rec-cpp: Force resets when running out of blocks 2015-07-25 14:22:28 +02:00
Stefanos Kornilios Mitsis Poiitidis bfef969626 rec-cpp: Implement stuff up to the corejit layer 2015-07-25 14:21:53 +02:00
Stefanos Kornilios Mitsis Poiitidis cd80850acb First idea for a fully portable "jit" 2015-07-25 14:20:54 +02:00
Stefanos Kornilios Mitsis Poiitidis 39ead6159b Merge pull request #699 from reicast/feat/build-defines-cleanup
(Imma merge this, as it's needed for rec-cpp work, but that doesn't mean the discussion is closed)
2015-07-25 14:03:35 +02:00
Stefanos Kornilios Mitsis Poiitidis a4a427feea shell/windows: Move taskip, swap to F1,2,10 from '1', '2', '0' 2015-07-25 13:28:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 58d4a55696 build: fix makefiles 2015-07-25 13:19:38 +02:00
Stefanos Kornilios Mitsis Poiitidis 9cf9bacd13 build: Refactor HOST_NO_REC everywhere 2015-07-25 13:19:26 +02:00
Stefanos Kornilios Mitsis Poiitidis a9c76351f6 build: Draft & cleanup, refactor rec* options 2015-07-25 13:17:42 +02:00
TwistedUmbrella 0fb51735da Update iOS project, Add support for iOS define 2015-07-23 23:30:35 -04:00
Stefanos Kornilios Mitsis Poiitidis 67a8ceabdd shil/param: add imm_value() 2015-07-23 02:08:25 +02:00
Stefanos Kornilios Mitsis Poiitidis 19535cc34d vmem: Remove some useless/dead code 2015-07-21 16:04:22 +02:00
Stefanos Kornilios Mitsis Poiitidis 1aa01dbc63 sigsegv: Change print handler to use %p for pointers 2015-07-21 15:42:48 +02:00
Stefanos Kornilios Mitsis Poiitidis 82ef7d0754 jitx64: 16KBs of emit space are guaranteed, not 64 2015-07-21 15:42:10 +02:00
Stefanos Kornilios Mitsis Poiitidis 0a3fcfe4ac jit-x64: typofix on shop_writem, WriteMem64 2015-07-21 14:48:37 +02:00
Stefanos Kornilios Mitsis Poiitidis b056cf6cef Implement jitcore opset for x64
Now mov64, readm, writem, in addition to jittiny ifb, jdyn, mov32
2015-07-14 20:17:45 +02:00
Stefanos Kornilios Mitsis Poiitidis 1125f25eae Fix win86 build 2015-07-14 17:47:54 +02:00
Stefanos Kornilios Mitsis Poiitidis f3c8e3623d Fix HOST_CPU for x64 windows 2015-07-14 17:31:48 +02:00
Stefanos Kornilios Mitsis Poiitidis 8cb6d6578c Count cycles correctly 2015-07-14 17:23:02 +02:00
Stefanos Kornilios Mitsis Poiitidis e50cfe3010 x64 tinyjit: linux support 2015-07-14 03:35:34 +02:00
Stefanos Kornilios Mitsis Poiitidis 3852cf9ac8 Minimal x64 jit: Desync'd, but runs 2015-07-13 23:56:42 +02:00
Stefanos Kornilios Mitsis Poiitidis b385575d6f Get x64 building 2015-07-13 21:13:51 +02:00
TwistedUmbrella 115ee47efc Prevent log overlap when loading button.png 2015-07-08 10:21:26 +02:00
Stefanos Kornilios Mitsis Poiitidis def91fdc84 Remove personality fix for android 2015-07-08 10:15:37 +02:00
Stefanos Kornilios Mitsis Poiitidis 043d9004a0 Merge rapi2 to master 2015-07-07 16:20:14 +02:00
Stefanos Kornilios Mitsis Poiitidis 3f36e98f90 Linux: Make sure personality isn't READ_IMPLIES_EXEC 2015-07-07 16:00:50 +02:00
Stefanos Kornilios Mitsis Poiitidis 475b6bbc38 Merge pull request #686 from reicast/feat/merge-x86-recs
Merge windows and linux x86 recompiler paths
2015-07-05 23:40:05 -07:00
Stefanos Kornilios Mitsis Poiitidis ea26e2784a Merge windows and linux x86 recompiler paths 2015-07-06 08:15:45 +02:00
TwistedUmbrella 7db6966ef8 Merge pull request #671 from imirkin/master
linux: print memory map to stderr when fixed path not available
2015-07-05 19:37:21 -04:00
Stefanos Kornilios Mitsis Poiitidis 852672a2dc Merge pull request #667 from Holzhaus/fix-bug-660
sh4_opcodes: Fix printf arguments
2015-07-05 11:45:58 -07:00
TwistedUmbrella e229b44821 Merge pull request #673 from reicast/loungekatt
Fixes for building iOS / Android in parallel
2015-07-05 11:15:08 -04:00
Stefanos Kornilios Mitsis Poiitidis b5108993c9 Audio: Fix windows build 2015-07-05 14:53:43 +02:00
TwistedUmbrella e3744446f5 Support return to external launcher, Prep for linux
This adds the ability to simply close the emulator when launched
externally and prevents changes designed for linux from generating
conflicting controller configurations on Android (and may be needed for
iOS as well).
2015-06-28 11:29:34 -04:00
TwistedUmbrella c85a190d02 Relocate os_DebugBreak definition to origin 2015-06-28 11:11:39 -04:00
Jan Holthuis 6ae3c5d907 Introduce USE_ALSA and accomodate Makefiles
This introduces the USE_ALSA flag (replaces the somewhat hacky
"HOST_OS==OS_LINUX && !defined(TARGET_NACL32) && !defined(ANDROID)"
if case).

The Makefiles for beagle, gcwz, lin86 and pandora have been adapted to
reflect this change.
2015-06-27 20:45:42 +02:00
Jan Holthuis a9771c918d Added PulseAudio backend
This commit introduces PulseAudio support using PulseAudio's "Simple
API".

The PulseAudio backend will be included during compilation if
USE_PULSEAUDIO is defined.
2015-06-27 20:44:54 +02:00
Jan Holthuis c17c7502d8 Added newline to end of files and removed obsolete code 2015-06-27 20:44:53 +02:00
Jan Holthuis 1c1e779500 Added Android audio backend
This *should* add the Android audio backend. I do not have any idea how
to do this properly, but I figured that this might work for the moment.
There's probably a lot of testing required for this to work.
2015-06-27 20:44:53 +02:00
Jan Holthuis a65b752592 Added DirectSound audio backend
This commit adds the DirectSound audio backend, which is a modified
version of core/oslib/ds_audiostream.cpp.

Porting this was a bit tricky, since ds_audiostream.cpp defined 3
extern functions that the other backends didn't have:
* bool os_IsAudioBuffered();
* bool os_IsAudioBufferedLots();
* int os_getusedSamples();

I came to the conclusion that these methods are obsolete since they are
only used core/windows/winmain.cpp in the function void os_wait_cycl(u32
cycl) - which is used nowhere. Thus, I removed os_wait_cycl and the
headers of the three functions in core/oslib/oslib.h. I also removed the
functions themselves (except for int os_getusedSamples(), which is still
used inside the directsound backend, but can safely declared static for
that purpose).

The DirectSound backend will be included during compilation if HOST_OS
is OS_WINDOWS.
2015-06-27 20:44:53 +02:00
Jan Holthuis 167fba4c9f Added ALSA audio backend
This adds the OSS audio backend, which is basically a slightly modified
version of core/oslib/alsa_audiostream.cpp from the skmp/linux-x64
branch (as of commit cdf9f3dc971506c2efd979275c2869f064e1027c).

The ALSA backend will be included during compilation if HOST_OS is OS_LINUX
and neither TARGET_NACL32 nor ANDROID are defined. This should be
changed to a USE_ALSA flag in the future (for constistency and and
simplicity reasons), but i didn't want to put too much stuff into this
commit.
2015-06-27 20:44:53 +02:00
Jan Holthuis f6d2e3fa7e Added OSS audio backend
This adds the OSS audio backend and removes OSS code from
core/linux-dist/main.cpp and core/sdl/main.cpp.
The OSS backend will be included during compilation if the USE_OSS
flag is set.

Although OSS code in core/linux-dist/main.cpp depended on the
TARGET_PANDORA flag instead of USE_OSS, the latter should work too
since it is defined in the Pandora Makefile (lines 7 & 83).
2015-06-27 20:42:40 +02:00
Jan Holthuis e3f1784a0f Implement audio backend system
This makes it possible to have multiple audio backends compiled into
reicast (e.g. ALSA & OSS on Linux). These can then selected by the user
via a config option ("backend" iin the "audio" section). It *should*
also be possible to reduce the number of platform-specific ifdefs with this
approach.

Audio backends need to define a struct (audiobackend_t) that holds a
pointer to it's init, push and term function and also a slug and a name
as string. They then need to pass a pointer to this struct to
RegisterAudioBackend() before InitAudio() is called.

For now, I defined a function (RegisterAllAudioBackends) that get's
called exactly once (i.e. upon first call of InitAudio()), where
we can put ifdef'd RegisterAudioBackend() calls into for each backend
that reicast supports.

Please note that this commit just implements the basic audio backend
system - no backends have been ported to the new API yet. For the meantime,
reicast will run without any audio support accross all systems.
2015-06-27 20:41:49 +02:00
Jan Holthuis 35968c8291 Rename os_Push() to PushAudio() for consistency 2015-06-27 20:41:05 +02:00
Jan Holthuis 55c6667753 Rename audiostream_rif.h to audiostream.h
This makes the naming more consistent.
2015-06-27 20:40:19 +02:00
Jan Holthuis 4c5682ac89 Define audiostream.cpp's time_diff at global scope
There's no need to do this inside the InitAudio() function.
2015-06-27 20:39:28 +02:00
Ilia Mirkin 6d3269c91d linux: print memory map to stderr when fixed path not available 2015-06-19 19:00:29 -04:00
Jan Holthuis fb50c7570c sh4_opcodes: Fix printf arguments
This partly resolves #660 (needs to applied to linux-64 branch, too).
2015-06-13 16:55:12 +02:00
TwistedUmbrella 3f2f400c59 Fix compile on OSX by defining os_DebugBreak
This is an equivalent of the same functionality as per
http://stackoverflow.com/a/5561015
2015-05-23 12:25:22 -04:00
TwistedUmbrella 97569a9f24 too many arguments to function 'void armv_end(void*)' 2015-05-23 12:25:14 -04:00
Stefanos Kornilios Mitsis Poiitidis a9fc0f5aa8 Merge pull request #655 from reicast/feat/segfault-context-consolidation
ios merge, segfault context consolidation, linux86, android x86 jit
2015-05-18 14:56:55 +02:00
Stefanos Kornilios Mitsis Poiitidis f571d6c594 pvr/vram: Bank bit seems to be fixed on 4M, even on 16M hardware 2015-05-18 14:45:24 +02:00
~skmp 4ea7398d8a Linux: fix building 2015-05-16 11:23:31 +03:00
Stefanos Kornilios Mitsis Poiitidis 2d842b9257 Renderer_if: fix norend 2015-05-16 01:10:47 -07:00
Stefanos Kornilios Mitsis Poiitidis 9c2a4dc5a4 iOS fixes 2015-05-16 01:04:30 -07:00
Stefanos Kornilios Mitsis Poiitidis 6547d80095 Fixes for android, cleanup context.cpp 2015-05-16 08:18:46 +02:00
Stefanos Kornilios Mitsis Poiitidis 03914309e3 linux/context: Add updated context files 2015-05-16 07:16:46 +02:00
Stefanos Kornilios Mitsis Poiitidis 65ca1382d8 Merge remote-tracking branch 'remotes/origin/skmp/ios-wip' into feat/segfault-context-consolidation
Android/windows builds fine again. Android not tested yet, iOS/OSX not compiled yet
2015-05-16 07:12:19 +02:00
Stefanos Kornilios Mitsis Poiitidis 902c5e2949 linux/context.*: Add missing files 2015-05-16 03:10:39 +02:00
Stefanos Kornilios Mitsis Poiitidis 8c469e4b5c *nix: move context massaging to linux/context.cpp, ALIGN -> DECL_ALIGN
Yay some warnings gone from not conflicting with ALIGN anymore
2015-05-16 03:06:04 +02:00
Stefanos Kornilios Mitsis Poiitidis cf473a14a4 x86 jit: fix android 2015-05-15 23:33:47 +02:00
Stefanos Kornilios Mitsis Poiitidis 5b609a6be4 linux: Sh4 dynarec works 2015-05-08 18:59:20 +02:00
Stefanos Kornilios Mitsis Poiitidis d33ad6edfb Updating from linux/x64 2015-05-08 17:49:23 +02:00
Stefanos Kornilios Mitsis Poiitidis 5ef9d661a6 Merge remote-tracking branch 'origin/master' into skmp/linux86 2015-05-08 17:29:14 +02:00
Stefanos Kornilios Mitsis Poiitidis 5d3c71bee7 Merge master 2015-05-08 17:29:06 +02:00
Stefanos Kornilios Mitsis Poiitidis 3fe8f0eb94 tmu: Correctly schedule next interrupt in underflow, correctly differentiate between large values and underflows
- 32 bit code was "fudgy" on this, so simplified via 64bit counters for edge detection
- Maths to count cycles were wrong
- Let's not do 32 bit wrapped maths after beers without any kind of pen-and-paper design

Should fix #594, also see #645
2015-05-08 02:29:24 +02:00
Stefanos Kornilios Mitsis Poiitidis 7d75ee3839 gles: revert e5965e356d.
glCheck was already an option, and gcc sanely doesn't like if (do { ... } while(0))
2015-05-08 01:06:40 +02:00
Stefanos Kornilios Mitsis Poiitidis e5965e356d gles: Disable glChecks by default, glGetError can be painfully slow 2015-05-07 23:27:22 +02:00
Stefanos Kornilios Mitsis Poiitidis c25ce04b48 sh4_sched: Avoid scheduling to -1, because, magic values. 2015-05-07 22:10:00 +02:00
Stefanos Kornilios Mitsis Poiitidis 4b46de89bb sh4_sched: Handle disabled events correctly 2015-05-07 22:03:55 +02:00
Stefanos Kornilios Mitsis Poiitidis 20f7a41fe9 sched: Do not re-fire expired callbacks, use sh4_sched_remaing on sh4_sched_tick 2015-05-07 21:33:36 +02:00
Stefanos Kornilios Mitsis Poiitidis 0614680f8c WinThreading: DEBUG_THREADS for random sleep around sync primitives 2015-05-07 21:32:11 +02:00
Stefanos Kornilios Mitsis Poiitidis 330a60bcf4 Merge branch 'master' of github.com:reicast/reicast-emulator 2015-04-12 22:48:31 +02:00
Stefanos Kornilios Mitsis Poiitidis 64b2fcbb1c Disable glCheck by default, move to validate:OpenGlChecks config 2015-04-12 22:48:16 +02:00
Stefanos Kornilios Mitsis Poiitidis e98f69ebd9 Merge pull request #629 from Holzhaus/fix-typedef-default-args
Remove arm_dyna typedef default args
2015-04-12 22:35:09 +02:00
Jan Holthuis b3faffacc9 Remove arm_dyna typedef default args
Using default arguments is only allowed in function declarations, not
in typedefs. This fixes the invalid code that caused compilation errors
on systems using GNU g++ 4.9.2, i.e.:

> ../../core/rec-ARM/arm_dyna.cpp: At global scope:
> ../../core/rec-ARM/arm_dyna.cpp:186:79: error: default arguments are only permitted for function parameters
>  typedef void FPBinOP        (eFSReg Sd, eFSReg Sn, eFSReg Sm, ConditionCode CC=CC_AL);
>                                                                                ^
> ../../core/rec-ARM/arm_dyna.cpp:187:79: error: default arguments are only permitted for function parameters
>  typedef void FPUnOP         (eFSReg Sd, eFSReg Sm,            ConditionCode CC=CC_AL);
>                                                                                ^
> ../../core/rec-ARM/arm_dyna.cpp:188:79: error: default arguments are only permitted for function parameters
>  typedef void BinaryOP       (eReg Rd, eReg Rn, eReg Rm,       ConditionCode CC=AL);
>                                                                                ^
> ../../core/rec-ARM/arm_dyna.cpp:189:79: error: default arguments are only permitted for function parameters
>  typedef void BinaryOPImm    (eReg Rd, eReg Rn, s32 sImm8,     ConditionCode CC=AL);
>                                                                                ^
> ../../core/rec-ARM/arm_dyna.cpp:771:10: warning: anonymous type with no linkage used to declare variable '<anonymous struct> op_table []' with linkage
>  op_table[]=
>           ^
> Makefile:89: recipe for target 'obj/rec-ARM/arm_dyna.build_obj' failed
> make: *** [obj/rec-ARM/arm_dyna.build_obj] Error 1
2015-04-04 19:04:23 +02:00
Stefanos Kornilios Mitsis Poiitidis 014d739495 Update for ndk-10d, improved build options 2015-03-29 06:02:24 +02:00
Stefanos Kornilios Mitsis Poiitidis 0c04adba67 reios: Add support for elf booting 2015-03-22 01:30:19 +01:00
Stefanos Kornilios Mitsis Poiitidis 3b1c38ad55 sh4/driver: don't log on div32 missmatch 2015-03-22 01:26:43 +01:00
~skmp 0285e2c5da reios: Fix unaligned reads (emscripten, arm), more logging, u32be for LBA/sizes 2015-02-26 05:09:52 +01:00
Stefanos Kornilios Mitsis Poiitidis cca8558d08 Add Serial Console option (debug.SerialConsoleEnable) for KOS, etc 2015-02-25 20:56:58 +01:00
Stefanos Kornilios Mitsis Poiitidis 13f67e2d17 reios: CD/descrambling support, reduced log spam, improved boot context, hle address aliasing, bios memset to catch accesses 2015-02-25 19:47:09 +01:00
Stefanos Kornilios Mitsis Poiitidis 578bb6dadc reios/gdrom_hle: Fix TOC, better CHECK_COMMAND handling, split logspam to debugf 2015-02-25 19:33:36 +01:00
Stefanos Kornilios Mitsis Poiitidis 9ed6945826 sh4/cpu_iNimp: Nicer error output 2015-02-25 19:31:33 +01:00
Stefanos Kornilios Mitsis Poiitidis ae8ce5ad23 sh4/rdv_CompilePC: Fix boot time automatic cache flushes
The bios boots from 0xA... addresses, not 0x8... so the flushes were never triggered
2015-02-25 19:30:08 +01:00
Stefanos Kornilios Mitsis Poiitidis 7c64d57b35 Merge branch 'master' into skmp/bios-hle 2015-02-25 15:21:59 +01:00
Stefanos Kornilios Mitsis Poiitidis 952b1ae6e9 reios/hleboot: support cdroms, descramble, slightly smarter bootfile search 2015-02-25 15:21:22 +01:00
TwistedUmbrella ab0e67edc7 Merge pull request #585 from reicast/skmp/improve-coreio
http support for cdi & gdi, updated based gdipsr
2015-01-24 08:53:53 -05:00
Stefanos Kornilios Mitsis Poiitidis f2c07917c7 Partially working dyna for iOS. Very few games working atm.
This works, but is extremelly hacky. Must be started without attached debugger, lldb doesn't want to let go of EXC_BAD_ADDRESS, but reicast really depends on it getting delivered as SIGSEGV/SIGBUS. Also xcode has a really bad day upon seeing the jit code. Oh well.

There's some dynarec bug that causes color corruption on bios logo/boot triagles, TA crash on ikaruga and infinitive loop on crazy taxi. I'd guess some fp-memory-write thingy, abi, or smth. Too bad.

- Force code to compile in arm mode (arm jit -> thumb mem functions is complicated)
- SIGILL, SIGBUS. Works w/o Mach exceptions and EXC_BAD_ADDRESS
- Code buffers move to __TEXT, munmapped && memmapped to actually work
- Primitive input. Button + start, or left (works to get out of bios date screen)
- Fixup emitter for thumb2/interworking (didn't work though, reverted to arm cc)
- Block Manager: Disable mem saving / page fault alloc-on-demand logic
- Move cycle counter to r11, r9 is not clean on iOS. Remove r11 from reg alloc list
- Cache flushes for iOS
- log to log.txt
- load game.chd
2015-01-18 23:52:12 -08:00
Stefanos Kornilios Mitsis Poiitidis 4a917a003e Merge branch 'master' of github.com:reicast/reicast-emulator 2015-01-16 21:38:09 +01:00
Stefanos Kornilios Mitsis Poiitidis 977dff25ab Basic support for recording frames 2015-01-16 21:37:30 +01:00
Stefanos Kornilios Mitsis Poiitidis d9d9b76d79 TA/VTX: Reset current list on vdec_init
Fixes some rare cases where it's invalid or left over to some list, without a CurrentList set, leading to crash.
2015-01-15 14:23:56 +01:00
~skmp 33556f3863 64 bit fixes 2015-01-10 21:15:15 +02:00
Stefanos Kornilios Mitsis Poiitidis 0f60e72eb0 Add #include <cctype>, that's what isalnum is defined 2015-01-09 16:07:11 +01:00
Stefanos Kornilios Mitsis Poiitidis 3ca3b1220d http support for cdi & gdi, updated based gdipsr
- Fix coreio fsize
- Fix coreio fopen to seek to 0
- Fix coreio/http to smart-escape urls
-  For urls that include \ or % in the filenames, you have to pass them
   escaped
- Update gdi parser to use (mostly) streamstream. That code is horrible
  and should be rewritten
- coreio core is hacky and horrible at places as well
- Update imgreader to use coreio
- Update cdi parser + driver to use coreio
2015-01-09 15:50:07 +01:00
Stefanos Kornilios Mitsis Poiitidis d055dbd7cb TMU: Also set the underflow flag. Fixes KOS. 2015-01-07 03:12:33 +02:00
Stefanos Kornilios Mitsis Poiitidis 6ad25b8f53 TMU: Improve interrupt handling 2015-01-06 21:50:00 +02:00
Stefanos Kornilios Mitsis Poiitidis 11e9ed167a Fix building for android 2015-01-06 16:07:18 +02:00
Stefanos Kornilios Mitsis Poiitidis 118e9bb1d2 Merge branch 'master' of github.com:reicast/reicast-emulator 2015-01-06 15:02:16 +02:00
Stefanos Kornilios Mitsis Poiitidis 605fa1c40a TMU: Hello interrupts
Let's pretend that the TMU unit actually exists, it makes games like
Gaunlet Legends happy ~
2015-01-06 15:00:39 +02:00
Stefanos Kornilios Mitsis Poiitidis c5cc2f1e50 Document sh4_shced, fix tmu a bit 2015-01-06 14:10:48 +02:00
~skmp 0783875b84 Linux GLX/3.1 support
My setup is only 2.1 right now, so this is totally untested
2014-12-30 13:21:05 +02:00
~skmp 0bf6272b9c Avoid use of C++11, still too many compilers without support for auto :< 2014-12-30 10:58:13 +02:00
~skmp 78e4b3c5db Use netinet/tcp.h, not linux/tcp.h 2014-12-30 10:29:49 +02:00
~skmp 83752b9761 Fix building for linux (-DGLES && eglCreateWindowSurface) 2014-12-30 10:00:20 +02:00
TwistedUmbrella 28d0e0a08b Change directions on the path to success 2014-12-29 22:12:25 -05:00
Stefanos Kornilios Mitsis Poiitidis 65d19d8b9d Fix reios makefile building 2014-12-30 02:05:01 +01:00
Stefanos Kornilios Mitsis Poiitidis 088bbfd5e7 More work on reios 2014-12-30 01:57:13 +01:00
Stefanos Kornilios Mitsis Poiitidis 25eee26ce5 First steps towards a HLE bios implementation
This is very simplistic, but can already boot and run many games

Known working so far
- Dead Or Alive 2 LE
- Head Hunter
- Marvel VS Capcom 2

Not working
- (Almost) all others
2014-12-29 22:05:35 +01:00
Stefanos Kornilios Mitsis Poiitidis 9d7cac160a PVR: Fix hscale, VO vs FB_W scissor
Fixes w320 games (bangai-o, kof99, etc), and Half-x clip (Ready2Rumble,
more)
2014-12-22 16:46:40 +01:00
Stefanos Kornilios Mitsis Poiitidis 5b9ac040a4 FB_R_SIZE_type should be 32 bits, not 42 2014-12-22 16:45:32 +01:00
Stefanos Kornilios Mitsis Poiitidis 56ebda10a9 ios interpreter works, bios runs w/ 3d visulals
THIS IS A MESS. Sorry @angelXwind :p. We'll have to clean up and merge for r8, but most of the nasty work is there.

What works:
- full init, memalloc, mprotects, etc
- boot
- gles2

What doesn't:
- Exceptions for page faults
  - Breaks texture cache
  - Breaks dynarec because of fastpath
  - segfaults don't work, needs special mach exc_server magic that still eludes me after 5 hours
- Dynarecs. RWX issues, and broken buffer mappings. Also some minnor linking stuff (most of it is taken care of)
- Audio. I just killed it off.
- All of the ui. Was getting in the way of me not knowing how to edit story boards...
- Input

Also, merged branch 'skmp/mac86-hackport' into skmp/ios-wip

Have fun~
2014-12-17 10:19:44 -08:00
Stefanos Kornilios Mitsis Poiitidis 2978074fa6 Merge branch 'master' of https://github.com/reicast/reicast-emulator 2014-12-17 03:11:14 -08:00
Stefanos Kornilios Mitsis Poiitidis 86e2408ace wip to get ios compiling 2014-12-17 03:10:18 -08:00
Stefanos Kornilios Mitsis Poiitidis 160d6f0c48 Linux is case sensitive 2014-12-17 10:44:11 +01:00
Stefanos Kornilios Mitsis Poiitidis 09caf4a55e Lock the entire texture, not just the pixel array.
Fixes #49
2014-12-17 08:45:19 +01:00
Stefanos Kornilios Mitsis Poiitidis 29906d8416 Texkill, palette_update on correct place.
- Texkill needs to be done before texture allocation, which is now done during parsing (texture-sync update)
- palette_update needs to be called from the emu thread, before kicking off the render
2014-12-17 08:42:28 +01:00
Stefanos Kornilios Mitsis Poiitidis 9a5c3160a3 Documentation for dsp.cpp 2014-12-17 07:12:08 +01:00