log z80_to_x86.c @ 989:d70000fdff0b

age author description
Wed, 20 Apr 2016 23:19:13 -0700 Michael Pavone Fix bug in Z80 rrd implementation. This fixes the annoying high pitched wine in Afterburner II.
Wed, 20 Apr 2016 23:00:37 -0700 Michael Pavone Fix crash bug in Z80 debugger introduced with stack alignment changes
Fri, 27 Nov 2015 10:47:35 -0800 Michael Pavone Replace some hard-coded instruction length assumptions with a calculation so they will work properly on both 32-bit and 64-bit hosts
Thu, 26 Nov 2015 22:30:41 -0800 Michael Pavone Fix for Z80 retranslation post alignment rework
Thu, 26 Nov 2015 00:10:36 -0800 Michael Pavone Z80 core is now slightly less broken
Wed, 25 Nov 2015 20:18:34 -0800 Michael Pavone Get Z80 core sort of working again post alignment change
Wed, 25 Nov 2015 08:40:45 -0800 Michael Pavone Partially working change to do proper stack alignment rather than doing a lame alignment check when calling a C compile dfunction. 68K core seems okay, but Z80 is busted.
Fri, 13 Nov 2015 22:56:59 -0800 Michael Pavone Selecting a second game from the menu now works
Wed, 04 Nov 2015 19:14:39 -0800 Michael Pavone Improve timing of Z80 busack. Fixes a crash in Barkley: Shut Up and Jam. Also vastly improves the audio output of Stuck Somewhere in Time
Sat, 31 Oct 2015 13:49:27 -0700 Michael Pavone Small tweaks to timing of 68K/Z80 interactions based on latest tests
Sat, 31 Oct 2015 01:07:56 -0700 Michael Pavone Set flags for ld a, r
Thu, 29 Oct 2015 23:12:01 -0700 Michael Pavone Fix timing of certain variants of LD
Thu, 29 Oct 2015 21:42:10 -0700 Michael Pavone Fix timing of IM instruction
Fri, 18 Sep 2015 19:54:02 -0700 Michael Pavone Fixed a copy pasta error in the implementation of LDD and LDDR. HL should be decremented and not incremented in those instructions.
Sat, 01 Aug 2015 17:05:51 -0700 Michael Pavone Implement half carry for a couple of the trivial cases
Wed, 29 Jul 2015 00:03:36 -0700 Michael Pavone Added support for an IO memory map in Z80 core
Sat, 25 Jul 2015 18:22:07 -0700 Michael Pavone Use a new fatal_error function instead of calling fprintf and exit for fatal errors. This new function more gracefully handles the case in which BlastEm was not started from a terminal or disconnected from ther terminal (Windows).
Sat, 27 Jun 2015 12:17:18 -0700 Michael Pavone Cleanup some warnings under clang through a combination of code fixes and supressing specific warnings
Tue, 26 May 2015 20:00:50 -0700 Michael Pavone Fixes for the 32-bit build accidentally introduced a bug into the 64-bit build, this commit fixes the regression
Mon, 25 May 2015 18:56:22 -0700 Michael Pavone Add a define in both the source and Makefile for enabling logging of z80 instruction address/cycle counts. Fix Z80 in/out instructions to eliminate assumptions about which registers are stored in native regs. Fix read_16 to not corrupt the low byte when the read has to call into a C function.
Mon, 25 May 2015 17:08:56 -0700 Michael Pavone Fix RLD and RRD for the case in which HL does not map to a native register
Sun, 24 May 2015 21:11:18 -0700 Michael Pavone Z80 test cases that passed on 64-bit now pass on 32-bit
Sun, 24 May 2015 15:05:18 -0700 Michael Pavone More bugfixes for the 32-bit build of the Z80 core
Sat, 23 May 2015 20:26:20 -0700 Michael Pavone Fix a bunch of assumptions about which Z80 registers are stored in native registers to make the x86-32 build less broken
Sun, 17 May 2015 20:03:27 -0700 Michael Pavone Make sure z80_save_reg does nothing when there is no register in the reg field of the instruction. This fixes a bug that corrupted SP in the MDEM 2011 demo
Sun, 17 May 2015 19:14:41 -0700 Michael Pavone Call z80_handle_deferred after generating an insruction handler so that instructions like rst work correctly
Sun, 17 May 2015 15:40:31 -0700 Michael Pavone Fix crash bug in Z80 interpreter
Tue, 12 May 2015 19:14:09 -0700 Michael Pavone Save PC to context struct when syncing Z80 at instruction start. This fixes saving savestates and probably the Z80 debugger as well
Mon, 11 May 2015 20:34:33 -0700 Michael Pavone Remove/comment verbose logging added for tracking down sync bug
Mon, 11 May 2015 00:28:47 -0700 Michael Pavone Sync fixes and logging to fix more sync issues
Sun, 04 Jan 2015 23:35:55 -0800 Michael Pavone Merge
Sat, 03 Jan 2015 21:35:23 -0800 Michael Pavone When going directly from reset to busreq, do not allow the Z80 to run
Sat, 03 Jan 2015 18:49:07 -0800 Michael Pavone Restore Z80 interrupt pulse duration and make a small improvement to debug print output
Sat, 03 Jan 2015 18:23:04 -0800 Michael Pavone Made the Z80 core more contained by refactoring some code in blastem.c into z80_to_x86.c
Sat, 03 Jan 2015 16:08:23 -0800 Michael Pavone All cycle counters are now based off the master clock. This seems to have messed up Z80 interrupt timing (music in Sonic 2 is too slow for instance), but things are generally working
Fri, 02 Jan 2015 13:47:34 -0800 Michael Pavone In theory, the Z80 core should work on 32-bit builds now; however, I suspect there is some code that cannot deal with most of the Z80 registers not having a native register so more work will be needed
Fri, 02 Jan 2015 13:14:09 -0800 Michael Pavone Added functions to gen_x86 for saving and restoring callee save registers to better abstract over ABI differences between x86 and x86-64
Fri, 02 Jan 2015 12:04:58 -0800 Michael Pavone Use SZ_PTR instead of SZ_Q in Z80 core for 32-bit compat
Fri, 02 Jan 2015 00:19:10 -0800 Michael Pavone Sync Z80 when taking an interrupt so that int_cycle gets updated
Thu, 01 Jan 2015 23:37:24 -0800 Michael Pavone Remove dedicated registers for Z80 bank reg and Z80 bank pointer as they are no longer used
Thu, 01 Jan 2015 22:18:32 -0800 Michael Pavone Add the 3 cycle delay back in to Z80 bank area access
Thu, 01 Jan 2015 20:26:22 -0800 Michael Pavone Minor Z80 core cleanup
Thu, 01 Jan 2015 20:07:47 -0800 Michael Pavone Use call_args and call_args_abi in Z80 core
Thu, 01 Jan 2015 14:36:55 -0800 Michael Pavone Remove some of the hard coded assumptions about the memory map from the CPU cores
Tue, 30 Dec 2014 19:11:34 -0800 Michael Pavone Merge
Tue, 16 Dec 2014 01:10:54 -0800 Michael Pavone Fix flags for rra, rrca, rla and rlca. Fix timing for rr, rrc, rl and rlc when using IX or IY. Fix access to I and R registers (R still needs to be made 7-bit though). Fix flags for ld a, i. The fix for access to I fixes PCM playback in Titan Overdrive and music playback in Crackdown.
Wed, 03 Dec 2014 09:30:01 -0800 Michael Pavone Temporarily comment out code to translate Z80 instructions in place as in rare cases it can stomp the next instruction if a branch goes from a short from to a long one
Sat, 21 Jun 2014 09:36:15 -0700 Michael Pavone Fix Z80 interrupts
Fri, 20 Jun 2014 07:57:32 -0700 Michael Pavone Added some preliminary support for interpreting Z80 code from non-RAM addresses
Thu, 19 Jun 2014 19:50:16 -0700 Michael Pavone Properly handle Z80 breakpoints on self-modifying code and setting Z80 breakpoints before the Z80 program has been loaded
Thu, 19 Jun 2014 08:14:35 -0700 Michael Pavone Slight cleanup of vint handling on the Z80
Mon, 29 Dec 2014 23:08:39 -0800 Michael Pavone Fix handling of code writes for Z80 core. This seems to get things close to being back to where they were before the big refactor that broke the Z80 core. Some problems remain. Notably the sound driver in Sonic 2 is still quite broken.
Fri, 26 Dec 2014 15:45:31 -0800 Michael Pavone Fix a few bugs introduced in the Z80 core from the adjustments to fit with the code gen refactor
Fri, 26 Dec 2014 12:56:53 -0800 Michael Pavone Fix an off-by-one error in a branch destination in the generation of handle_cycle_limit for the Z80
Fri, 26 Dec 2014 12:52:13 -0800 Michael Pavone Update code->cur before calling z80_get_address_trans in z80_retranslate_inst to avoid any newly translated instructions from being placed in the "buffer zone". Save the current value of the code_info struct for placing the final jmp instruction in the correct place
Fri, 26 Dec 2014 12:34:41 -0800 Michael Pavone Add in missing generated Z80 helper functions. Fix a small bug in Z80_HALT. Fix generation of save and load context for Z80
Mon, 22 Dec 2014 20:55:10 -0800 Michael Pavone Z80 core is sort of working again
Wed, 17 Dec 2014 23:03:19 -0800 Michael Pavone Get rest of emulator compiling again with Z80 core enabled
Wed, 17 Dec 2014 09:53:51 -0800 Michael Pavone Get Z80 core back into compileable state
Sun, 14 Dec 2014 16:45:23 -0800 Michael Pavone WIP effort to update z80 core for code gen changes
Tue, 17 Jun 2014 01:50:29 -0400 Mike Pavone blastem builds and almost works on OS X now
Mon, 27 Jan 2014 22:12:22 -0800 Michael Pavone Fix timing of certain ld and jp instructions in the Z80 core
Mon, 06 Jan 2014 22:54:05 -0800 Michael Pavone The local clone on my laptop got messed up and some changes had not been pushed. This commit represents the status of the working copy from that clone. It unfortunately contains some changes that I did not intend to commit yet, but this seems like the best option at the moment.
Tue, 10 Sep 2013 23:31:08 -0700 Mike Pavone Added copyright notice to source files and added GPL license text in COPYING
Sat, 29 Jun 2013 17:15:08 -0700 Mike Pavone Add support for loading GST format savestates
Mon, 24 Jun 2013 21:32:25 -0700 Mike Pavone Fix access to int_enable_cycle in EI
Sat, 15 Jun 2013 23:10:48 -0700 Mike Pavone Fix DI
Fri, 14 Jun 2013 23:27:01 -0700 Mike Pavone Fix adc and sbc
Thu, 13 Jun 2013 22:23:15 -0700 Mike Pavone Fix LDIR
Tue, 11 Jun 2013 23:09:57 -0700 Mike Pavone Bail out on attempt to run code from bank area until it is properly supported
Sat, 08 Jun 2013 11:31:52 -0700 Mike Pavone Use a call instruction to figure out the original native address when retranslating so that it does not get lost when the byte transforms from a instruction word to extension word
Thu, 06 Jun 2013 08:45:54 -0700 Mike Pavone Removed out of date TODO
Thu, 06 Jun 2013 08:19:25 -0700 Mike Pavone Fix LDD and LDDR
Wed, 05 Jun 2013 22:55:23 -0700 Mike Pavone Fix dec and inc when the operand is in memory
Wed, 05 Jun 2013 18:47:39 -0700 Mike Pavone Fix LDI
Tue, 04 Jun 2013 22:30:49 -0700 Mike Pavone Fix set/res when the operand is in memory
Sun, 02 Jun 2013 21:12:26 -0700 Mike Pavone Fix cycle count for inc and dec
Sun, 02 Jun 2013 20:14:27 -0700 Mike Pavone Bunch of Z80 debugger improvements
Fri, 31 May 2013 20:46:56 -0700 Mike Pavone Fix P condition in Z80 core
Fri, 31 May 2013 19:43:13 -0700 Mike Pavone Partial implementation of Z80 debugger
Wed, 29 May 2013 00:13:48 -0700 Mike Pavone Fix push AF
Mon, 27 May 2013 20:37:55 -0700 Mike Pavone Fix sizeof expression passed to malloc in z80_init to avoid a minor memory error
Tue, 14 May 2013 21:59:56 -0700 Mike Pavone Some Z80 interrupt fixes
Thu, 09 May 2013 20:09:49 -0700 Mike Pavone Fix return address for RST
Thu, 09 May 2013 19:38:28 -0700 Mike Pavone Show absolute addresses for JR, JRCC and DJNZ in Z80 disassembler
Thu, 09 May 2013 19:24:18 -0700 Mike Pavone Fix terminal instruction detection in disassembler
Thu, 09 May 2013 18:36:21 -0700 Mike Pavone Properly handle instructions that use boty IYH and IYL
Thu, 09 May 2013 00:33:06 -0700 Mike Pavone Set the N flag to the correct value for DEC instructions
Thu, 09 May 2013 00:30:55 -0700 Mike Pavone Implement carry flag for shift instructions. Implement weird behavior for bit 0 of SLL. Fix missing break statement in SRL.
Thu, 09 May 2013 00:17:12 -0700 Mike Pavone Correctly set the N flag for SBC
Thu, 09 May 2013 00:14:54 -0700 Mike Pavone Deal with the fact that there's no 8-bit version of the BT family of instructions on x86
Wed, 08 May 2013 23:44:49 -0700 Mike Pavone Complete flag behavior for Z80 BIT instruction
Wed, 08 May 2013 23:31:19 -0700 Mike Pavone Properly handle negative displacements in Z80 core
Wed, 08 May 2013 23:29:21 -0700 Mike Pavone Contrary to the official documenation, OR and AND also set PV based on parity instead of overflow
Wed, 08 May 2013 23:20:41 -0700 Mike Pavone Set PV flag based on parity, not overflow for XOR
Wed, 08 May 2013 23:17:54 -0700 Mike Pavone BIT was setting the zero flag to the opposite of what it should have. This is now fixed.
Wed, 08 May 2013 23:12:08 -0700 Mike Pavone More fixes for confusion between Z80_UNUSED and MODE_UNUSED
Wed, 08 May 2013 23:03:18 -0700 Mike Pavone Compare src_op.mode with the correct constant in shift/rotate instructions
Wed, 08 May 2013 22:49:50 -0700 Mike Pavone Fix IX/IY register selection when the direction bit is set
Wed, 08 May 2013 22:46:03 -0700 Mike Pavone Fix calcuation of IX/IY dipslacements. Fix a bunch of stuff related to the IX/IY bit/shift/rotate instructions.
Wed, 08 May 2013 17:39:13 -0700 Mike Pavone Fix stupid copy-pasta bug in XOR
Wed, 08 May 2013 17:32:28 -0700 Mike Pavone Fix byte order of pop AF
Wed, 08 May 2013 14:40:48 -0700 Mike Pavone Added z80 test generator and z80 test runner.
Sun, 05 May 2013 11:17:37 -0700 Mike Pavone Implement RRD and implement flags on RLD
Sat, 04 May 2013 18:51:53 -0700 Mike Pavone Implemente RLD
Sat, 04 May 2013 16:23:28 -0700 Mike Pavone Implement HALT (sort of tested)
Sat, 04 May 2013 15:58:15 -0700 Mike Pavone Implement IN and OUT (untested)
Sat, 04 May 2013 15:15:55 -0700 Mike Pavone Implement RETI and RETN (untested). Cleanup tests for "terminal" instructions.
Sat, 04 May 2013 14:36:50 -0700 Mike Pavone Remove deferred address entries from abandoned translations inside z80_retrans_inst
Fri, 03 May 2013 20:18:28 -0700 Mike Pavone Fix native address lookup in bannked memory area
Fri, 03 May 2013 19:27:32 -0700 Mike Pavone Using push/pop inside translated code is not compatible with the current way the Z80 core returns to the caller
Fri, 03 May 2013 18:49:48 -0700 Mike Pavone Implement shift instructions (untested)
Thu, 02 May 2013 22:39:39 -0700 Mike Pavone Implement CPL and NEG (untested)
Thu, 02 May 2013 22:28:40 -0700 Mike Pavone Implement LDD and LDDR
Thu, 02 May 2013 22:26:47 -0700 Mike Pavone Implement LDI
Thu, 02 May 2013 22:18:22 -0700 Mike Pavone Fix IX/IY displace modes. Fix check for registers requiring REX.
Thu, 02 May 2013 21:54:04 -0700 Mike Pavone Sync Z80 on writes to busreq/reset ports. NULL out extra_pc on z80 reset
Thu, 02 May 2013 00:10:24 -0700 Mike Pavone Don't mix *H regs with the REX prefix
Wed, 01 May 2013 23:12:29 -0700 Mike Pavone Fix some more retranslation bugs in the Z80 core
Wed, 01 May 2013 20:09:53 -0700 Mike Pavone Fix a crash bug in instruction retranslation