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
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
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~
- 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
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»
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»
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»
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).
-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
- Clipping is done on the SH4 side, garbage might be outside the screen
- Mod vols aren't drawn anyway for now
- I wonder how much does this cost on the rend-thread?
Reverted changes in maple_cfg.cpp except a minor memory leak
Fixed an issue with the Xbox 360 controller support, that the first
press of the DPAD would not get handled
Lots of improvments on multi-controller support
- make ta_skip to ta frame skipping instead of skipping parsing entierly. it handles 1 out of every (N+1) frames.
- re purpose rend to unstable opts, as pvr.rend is of no real use right now