Commit Graph

176 Commits

Author SHA1 Message Date
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 39e369411c shil/canonical: Fix decls, comment 2015-07-25 14:23:45 +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
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 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
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 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
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 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
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 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 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 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 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 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
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 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 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 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 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
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 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 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
Stefanos Kornilios Mitsis Poiitidis e43271e448 fix for msvc 2013 / C++14. Rend is now used by stdlib 2014-12-17 06:48:45 +01:00
Stefanos Kornilios Mitsis Poiitidis b1f88f258b Merge branch 'master' of github.com:reicast/reicast-emulator 2014-12-11 14:02:43 +01:00
Stefanos Kornilios Mitsis Poiitidis 34bc42b7a4 Add x64 target, fix Sh4RCB pointer sizing, u32->unat in vmem 2014-12-11 14:02:10 +01:00
Stefanos Kornilios Mitsis Poiitidis 2f171e3596 Support HOST_NO_REC for windows 2014-12-11 13:59:31 +01:00
Stefanos Kornilios Mitsis Poiitidis 22e95de2d1 Merge pull request #572 from reicast/skmp/pandora-merge
pandora merge
2014-12-11 03:26:13 +01:00
Stefanos Kornilios Mitsis Poiitidis 4500cfb1d3 Remove white-space changes 2014-12-11 02:57:23 +01:00
Stefanos Kornilios Mitsis Poiitidis 63485e7a72 SetFloatStatusReg: support gcc for x86 2014-12-09 22:15:44 +01:00
Stefanos Kornilios Mitsis Poiitidis 77390f861e DSP only if HOST_NO_REC is not enabled 2014-12-09 22:15:00 +01:00
Stefanos Kornilios Mitsis Poiitids f14932c362 Building on osx w/o rec or rend 2014-09-30 12:00:46 +03:00
Stefanos Kornilios Mitsis Poiitidis 4f3cee2d87 Improve async/mt rendering & sync logic.
Should fix texture staging issues for now, without degrading performance
Fixes #49 (mvsc2, sf3, etc sprites)
2014-08-18 22:39:21 +02:00
Stefanos Kornilios Mitsis Poiitidis b55fbef3a6 Stored TA command stream persists on TA_LIST_INIT, until first actual write.
Fixes #141, "Main menus on POD and Speed Devil show up black"

Seems like the TA doesn't touch any of the memory structures before first write (and probably later on, but we're not gonna support corrupted ta streams for now)

According to p1pkin

«At least in SpeedDevils, at title screen game do a bit weird thing
 - Init TA context
 - Send lists to TA
 - Init the same context again
 - Start Render

so, if you are clear stored poly/vertex data at "TA_LIST_INIT" pvr2 reg write - you'll get black screen instead game title»
2014-08-18 22:22:30 +02:00
ptitSeb 15708686b9 Added back manual frameskip due to forum request 2014-08-18 21:57:16 +02:00
ptitSeb b7afa6a498 some fixes for Pandora 2014-08-18 21:57:15 +02:00
ptitSeb 6a9cdd7633 added frameskip back, has asked in openpandora forum 2014-08-18 21:57:14 +02:00
TwistedUmbrella d31f324212 Add explicit casting for iOS, Import iOS EGL headers
EGL headers imported from https://github.com/alco/EGL_mac_ios for use
in iOS specialty directory
2014-08-18 21:56:02 +02:00
ptitSeb b5dcc93766 PANDORA: No mic on Pandora for now 2014-08-18 21:55:58 +02:00
ptitSeb aa80f4a852 PANDORA: Options and GUI 2014-08-18 21:55:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 734db8a743 Split CFLAGS/CXXFLAGS on core.mk, warning fixes 2014-08-18 21:54:30 +02:00
Stefanos Kornilios Mitsis Poiitidis 66d8b96ae3 Cleanup textures after they are dead for a while 2014-08-18 21:54:23 +02:00
Stefanos Kornilios Mitsis Poiitidis 9d438c3ff3 Improve async/mt rendering & sync logic.
Should fix texture staging issues for now, without degrading performance
Fixes #49 (mvsc2, sf3, etc sprites)
2014-08-18 21:54:21 +02:00
Stefanos Kornilios Mitsis Poiitidis 59fbb66a66 Stored TA command stream persists on TA_LIST_INIT, until first actual write.
Fixes #141, "Main menus on POD and Speed Devil show up black"

Seems like the TA doesn't touch any of the memory structures before first write (and probably later on, but we're not gonna support corrupted ta streams for now)

According to p1pkin

«At least in SpeedDevils, at title screen game do a bit weird thing
 - Init TA context
 - Send lists to TA
 - Init the same context again
 - Start Render

so, if you are clear stored poly/vertex data at "TA_LIST_INIT" pvr2 reg write - you'll get black screen instead game title»
2014-08-18 21:54:17 +02:00
Stefanos Kornilios Mitsis Poiitidis bcf299cfd4 Ignore group_en bit (via p1pkin, should fix "18 Wheeler - Minimap tiles / not confined to map boundaries") 2014-08-18 21:54:17 +02:00
ptitSeb b66de11664 PANDORA: No mic on Pandora for now 2014-08-18 21:54:11 +02:00
MrPsyMan 7916cd63f3 Removed commit ed8c25ef7c as it causes compatibility problems. 2014-06-05 04:34:25 +03:00
TwistedUmbrella c3b1e1087e Add explicit casting for iOS, Import iOS EGL headers
EGL headers imported from https://github.com/alco/EGL_mac_ios for use
in iOS specialty directory
2014-05-20 23:45:38 -04:00
Stefanos Kornilios Mitsis Poiitidis ee2a1b7d20 Split CFLAGS/CXXFLAGS on core.mk, warning fixes 2014-05-12 20:53:43 +03:00
Stefanos Kornilios Mitsis Poiitidis f1ef4877b8 Cleanup textures after they are dead for a while 2014-05-08 04:29:14 +03:00
Stefanos Kornilios Mitsis Poiitidis 411aade5e2 Improve async/mt rendering & sync logic.
Should fix texture staging issues for now, without degrading performance
Fixes #49 (mvsc2, sf3, etc sprites)
2014-05-02 03:45:31 +03:00
Stefanos Kornilios Mitsis Poiitidis 4492654a52 Stored TA command stream persists on TA_LIST_INIT, until first actual write.
Fixes #141, "Main menus on POD and Speed Devil show up black"

Seems like the TA doesn't touch any of the memory structures before first write (and probably later on, but we're not gonna support corrupted ta streams for now)

According to p1pkin

«At least in SpeedDevils, at title screen game do a bit weird thing
 - Init TA context
 - Send lists to TA
 - Init the same context again
 - Start Render

so, if you are clear stored poly/vertex data at "TA_LIST_INIT" pvr2 reg write - you'll get black screen instead game title»
2014-04-25 19:57:34 +03:00
Stefanos Kornilios Mitsis Poiitidis 35e357ad66 Ignore group_en bit (via p1pkin, should fix "18 Wheeler - Minimap tiles / not confined to map boundaries") 2014-04-25 19:52:27 +03:00
Stefanos Kornilios Mitsis Poiitidis ad054f1b96 Working on linux x86 dyna 2014-03-25 00:12:30 +02:00
Stefanos Kornilios Mitsis Poiitidis e356515198 compiles for lin86 (no rendering yet) 2014-03-20 17:13:53 +02:00
MrPsyMan 6b4deb4b16 Implemented a very basic form of GD-ROM Sense. Only disc swap related Sense currently works. Added some very basic disc swap handling on x86/Windows (press "0">Cancel to remove disc, then "0" again and select the new disc).
Notes:
Disc swapping should work on .gdi files (probably .chd files too).
Swapping with .cdi files is not currently supported because we currently create inaccurate TOC for them.
Only x86/Windows has a disc swap handler right now (ie: you can't swap on Android).
2014-03-15 13:42:17 +02:00
Stefanos Kornilios Mitsis Poiitidis 5fd8eb8903 widescreen compitable bg clear (fixes widescreen mode) 2014-03-13 21:49:02 +02:00
Stefanos Kornilios Mitsis Poiitidis ac2501549f Initial support for android-x86 (no idea if this actually works)
This is ugly, done via HOST_NO_REC, NOT_ARM. Only if I had merged the clean-makefiles work before rls... Oh well.
2014-03-03 14:06:00 +02:00
TwistedUmbrella d320b4a82e Merge pull request #361 from reicast/native
Native - This should start to resolve controller issues
2014-03-02 00:55:57 -05:00
Stefanos Kornilios Mitsis Poiitidis 1698b21ac6 Fix windows building 2014-03-01 22:07:28 +02:00
TwistedUmbrella 2a150ef61c Refactor @ptitSeb PANDORA: Options and GUI - NoSound 2014-03-01 07:38:54 -05:00
ptitSeb 54e3a0e4e0 PANDORA: Options and GUI 2014-03-01 07:38:40 -05:00
TwistedUmbrella b98b087435 Merge pull request #270 from hooby3dfx/vmu_support
on screen vmu :)
2014-02-13 05:52:15 -05:00
Bryan Barnes 52199df953 vmu :)
Conflicts:
	shell/android/jni/src/Android.cpp
	shell/android/src/com/reicast/emulator/emu/GL2JNIActivity.java
	shell/android/src/com/reicast/emulator/emu/JNIdc.java
2014-02-13 02:17:13 -05:00
TwistedUmbrella 4d322feacc In case of a memory allocation failure, print current readout 2014-02-13 00:45:17 -05:00
Bryan Barnes 3e33efa3ca learning the hard way
root cause found (i think). lesson: java functions called via jni dont
handle exceptions/tell you what happens when they crash.
2014-02-01 22:36:47 -05:00
Bryan Barnes 2403d13440 umm
ok its one of those things where the logging makes it work!
not sure whats up, but without the additional logging it crashes.
2014-02-01 14:05:09 -05:00
Bryan Barnes 208bcc0d79 its verking!
figured out issue, made mic setup simpler
2014-02-01 13:52:36 -05:00
Bryan Barnes 5b9dbd9fa3 This is ready to go
-Added config to input fragment
-Reduced logging
-Init the mic at the right time during startup so that port 2 either
gets vmu or mic
-Has not been tested on device without mic
-Needs more testing in games
2014-02-01 10:44:06 -05:00
Bryan Barnes 0c11acb931 better conformity to spec 2014-01-31 20:31:42 -05:00