log vdp.c @ 1442:59e1dbb795a7

age author description
Mon, 21 Aug 2017 23:49:56 -0700 Michael Pavone Fix external v counter when normal resolution interlace mode is active
Mon, 21 Aug 2017 23:08:36 -0700 Michael Pavone Fix timing of VDP ODD flag toggle
Sun, 13 Aug 2017 22:59:01 -0700 Michael Pavone Move vscroll latch further forward in H40 mode. Fixes a minor graphical glitch in Skitchin. Needs a proper test ROM to verify exact latch position
Fri, 11 Aug 2017 18:58:03 -0700 Michael Pavone Update VDP color map when loading a native save state
Wed, 09 Aug 2017 23:26:51 -0700 Michael Pavone New savestates are working. New config file option for selecting format states will be saved in. Mostly complete, needs a little more work before release
Sun, 06 Aug 2017 00:06:36 -0700 Michael Pavone WIP - New savestate format
Fri, 30 Jun 2017 00:36:18 -0700 Michael Pavone Change where vscroll is latched in full plane mode. Fixes Top Gear 2
Thu, 15 Jun 2017 09:45:21 -0700 Michael Pavone Properly release and reacquire framebuffer pointer when switching contexts. Hopefully fixes the LOCKRECT issue some people are seeing with the SDL 2 fallback renderer
Wed, 31 May 2017 21:10:49 -0700 Michael Pavone Prevent emulated screen from "rolling" when the vertical resolution is changed at an inopportune time
Mon, 29 May 2017 22:19:33 -0700 Michael Pavone Implement horizontal border in Mode 4 and make a minor fix to advance_output_line to handle the later vcounter increment in that mode
Mon, 29 May 2017 17:30:40 -0700 Michael Pavone Get H32 in sync with H40 with regards to borders and test register support. Minor cleanup to H40 border rendering
Sun, 28 May 2017 21:03:55 -0700 Michael Pavone Implemented SMS pause button
Tue, 23 May 2017 21:09:38 -0700 Michael Pavone Remove HINT_FUDGE and make a small adjustment to how VDP syncs with rest of system instead. Worse results on CRAM dot issue, but much less of a hack
Tue, 23 May 2017 19:09:57 -0700 Michael Pavone Fix handling of test register selected sprite layer in border area. Gets rid of the border garbage in the "disco floor/ceiling" scene of OD2
Tue, 23 May 2017 09:39:22 -0700 Michael Pavone Fix small blank spot on line -2 in "ninja escape" border fade in OD2
Mon, 22 May 2017 21:11:13 -0700 Michael Pavone Fix regression in horizontal interrupt timing that was breaking the "water" palette swap in the Sonic series and other games
Fri, 19 May 2017 22:07:50 -0700 Michael Pavone Add a bit of a hack to HINT start cycle to give correct values in my test ROM and further improve prevelance of CRAM dot noise in Outrunners and OD2
Sun, 14 May 2017 12:07:39 -0700 Michael Pavone Fix regression in games that disable the display early like F1 World Championship. Remove debug printf
Sun, 14 May 2017 11:15:56 -0700 Michael Pavone WIP attempt at fixing the minor line -2 glitch in the OD2 Ninja Escape scene
Thu, 11 May 2017 20:33:31 -0700 Michael Pavone Fix regression in Mode 4 sprite rendering
Thu, 11 May 2017 08:01:10 -0700 Michael Pavone Fix regression in mode 4 introduced when advance_output_line was added
Fri, 05 May 2017 23:45:45 -0700 Michael Pavone Fix sprite rendering in double resolution interlace mode
Fri, 05 May 2017 22:08:30 -0700 Michael Pavone Fix vscroll latching when full screen vscroll is used in combination with the window plane on the left side of the screen
Thu, 04 May 2017 22:47:51 -0700 Michael Pavone Fix transition from active to inactive display
Thu, 04 May 2017 22:14:12 -0700 Michael Pavone Fix border rendering so that the first and last line of display are consistently drawn
Wed, 03 May 2017 21:28:40 -0700 Michael Pavone Implement the effect of VDP test register usage on the top and bottom borders. Fixes the remaning issue with the border dissolve in the "Ninja Escape" scene of Overdrive 2
Mon, 01 May 2017 20:33:59 -0700 Michael Pavone Fix sprite rendering for negative line. Fixes remaining visual glitch in the Titancade scene of Overdrive 2
Sat, 29 Apr 2017 16:51:57 -0700 Michael Pavone Initial stab at horizontal border when VDP test register layer selection is in effect for H40. Extended horizontal borders in Titancade scene and ninja escape scene mostly correct now
Thu, 27 Apr 2017 23:08:49 -0700 Michael Pavone Fixes to sprite phase 2 so that sprite X reads use the exact same slot as on hardware in the case that there are fewer than the max number of sprites on each line. Re-read sprite Y from SAT cache during phase 2 and properly mask the calculated row. Fixes remaining issues with spinning cube scene in Overdrive 2.
Thu, 27 Apr 2017 09:32:21 -0700 Michael Pavone Adjust how the invalid size is handled for the horizontal dimmension of a plane. Fixes some garbage on the spinning cube scene of Overdrive 2
Wed, 26 Apr 2017 22:16:12 -0700 Michael Pavone Small tweak to how SAT cache updates are done. Mostly fixes the rotating cube scene in Overdrive 2
Wed, 26 Apr 2017 01:12:28 -0700 Michael Pavone Add 128K VRAM bit to VDP register print in debugger
Fri, 21 Apr 2017 01:22:52 -0700 Michael Pavone Fairly major rework of how active/passive is handled along with how the V30 mode bit is handled. Allows the vertical border extension trick in Overdrive 2 to work right
Tue, 18 Apr 2017 19:27:10 -0700 Michael Pavone Initial stab at implementing the output disable/layer selection bits of the VDP test register
Mon, 17 Apr 2017 23:58:21 -0700 Michael Pavone Fix time 68K is locked out of bus when doing a 128KB VRAM mode DMA transfer. Fixes a number of problems in Overdrive 2
Mon, 17 Apr 2017 20:54:33 -0700 Michael Pavone SAT table register bit 0 is not used in H40 mode. Fixes corrupt sprites in ship crash landing scene in Overdrive 2
Sun, 16 Apr 2017 18:43:34 -0700 Michael Pavone Fix some edge cases with regards to 128KB VRAM mode and the SAT cache
Sun, 16 Apr 2017 16:40:04 -0700 Michael Pavone Initial work on handling the 128KB VRAM mode bit and some basic prep work for VDP test register support
Wed, 05 Apr 2017 09:48:49 -0700 Michael Pavone Fix minor bug that displayed window plane as if it were plane A In plane debug view
Sat, 25 Mar 2017 11:31:43 -0700 Michael Pavone Fix latching of V32 mode bit
Sun, 19 Mar 2017 12:54:20 -0700 Michael Pavone Change handling of invalid scroll plane sizes. Fixes title and high score screens in The Incredible Hulk
Sun, 19 Mar 2017 11:17:40 -0700 Michael Pavone Adjust DMA start delay to not break the FIFO Wait State test in the VDP FIFO Testing ROM
Sat, 18 Mar 2017 17:09:14 -0700 Michael Pavone Remove hacky post-DMA delay add proper pre-DMA delay based on logic analyzer capture. 512 color screen is a bit messed up but mostly works. Needs investigation
Mon, 13 Mar 2017 23:13:24 -0700 Michael Pavone Fix VDP buffer overrun that was causing sprite flickering in some games
Thu, 09 Mar 2017 19:23:24 -0800 Michael Pavone Fix graphical corruption and sprite flickering introduced into some games by the last change for horizontal border support
Tue, 07 Mar 2017 20:17:12 -0800 Michael Pavone Fill in the rest of the framebuffer holes created by horizontal border. Work remains for things to be seemless when display gets turned on and off mid frame
Tue, 07 Mar 2017 00:01:16 -0800 Michael Pavone Fix some of the framebuffer fill holes introduced by horizontal border changes
Mon, 06 Mar 2017 23:05:31 -0800 Michael Pavone Adjust correspondance between slot number and actual video output to better match video signal measurements and analysis of Outrunners behavior on hardware. Partially fixes ticket:13
Mon, 06 Mar 2017 09:54:44 -0800 Michael Pavone Render horizontal border in H32 mode as well. Both modes still need some minor work to deal with inactive/active transition
Mon, 06 Mar 2017 00:23:35 -0800 Michael Pavone Initial stab at horizontal border emulation. Only works for H40 and still has a few minor holes to fill
Tue, 24 Jan 2017 00:02:03 -0800 Michael Pavone Remove accidentally committed debug logging
Sun, 22 Jan 2017 19:40:32 -0800 Michael Pavone Force IPV4 for GDB remote debugging on Windows. Bind to localhost instead of unspecified address since listening on external ports probably isn't a good idea in the general case
Thu, 19 Jan 2017 09:32:34 -0800 Michael Pavone Fix border rendering at end of line 1FE. vdp_inactive will probably need a small fixup for the edge case when we start between when the vcounter is incremented and the line is truly finished.
Wed, 18 Jan 2017 21:30:20 -0800 Michael Pavone CRAM contention artifact emulation
Tue, 17 Jan 2017 19:01:04 -0800 Michael Pavone Undo poorly thought out minor optimization that screwed up rendering
Tue, 17 Jan 2017 09:27:05 -0800 Michael Pavone Fix vdp_run_to_vblank
Tue, 17 Jan 2017 09:18:35 -0800 Michael Pavone Disable timing debug
Tue, 17 Jan 2017 09:18:16 -0800 Michael Pavone Fix line advancement in Mode 4 during inactive display. Fix a Mode 4 VInt timing discrepency
Tue, 17 Jan 2017 09:02:36 -0800 Michael Pavone Fix H40 VInt inconsistency
Mon, 16 Jan 2017 23:34:30 -0800 Michael Pavone Fix H32 VInt timing inconsistency
Mon, 16 Jan 2017 22:30:21 -0800 Michael Pavone Fix H32 inconsistency
Mon, 16 Jan 2017 21:38:49 -0800 Michael Pavone Added synthetic test for tracking down interrupt timing issues
Mon, 16 Jan 2017 09:31:33 -0800 Michael Pavone Fix some timing inconsistencies in H40 mode. Added some ifdefed timing debug code.
Sun, 15 Jan 2017 22:54:01 -0800 Michael Pavone Don't adjust cycles every frame. Only when we start getting close to UINT_MAX. Don't adjust all the way down to zero when we do adjust. Shouldn't fix anything, but may make debugging current issues easier.
Sun, 15 Jan 2017 22:38:31 -0800 Michael Pavone Rework how inactive lines are handled. Fix H40 cycle increment in slot 182
Sun, 15 Jan 2017 15:29:32 -0800 Michael Pavone Fix benchmark mode
Sun, 15 Jan 2017 15:07:24 -0800 Michael Pavone Initial work on emulating top and bottom border area
Mon, 09 Jan 2017 19:24:11 -0800 Michael Pavone Fix disagreement on line change location between vdp_h32_mode4 and vdp_run_context that was causing the first line to be garbage in some cases
Sun, 08 Jan 2017 13:39:44 -0800 Michael Pavone A bunch of Mode 4 fixes
Sun, 08 Jan 2017 10:46:32 -0800 Michael Pavone Update H32 and Mode 4 mappings based on latest tests
Fri, 06 Jan 2017 19:25:04 -0800 Michael Pavone Fix H40 slot mapping to better match old VRAM bus captures and adjust for recent VCounter measurements
Thu, 05 Jan 2017 19:15:53 -0800 Michael Pavone Clear sprite overflow flag when control port read. Fix vcounter progression in Mode 4
Thu, 05 Jan 2017 00:42:11 -0800 Michael Pavone Fix Mode 4 sprite collision flag
Thu, 05 Jan 2017 00:36:23 -0800 Michael Pavone Implemented Mode 4 H conter latching
Thu, 05 Jan 2017 00:08:28 -0800 Michael Pavone BlastEm now passes all of the tests on the first page of "Megadrive VDP Test" in VDPTEST.sms
Wed, 04 Jan 2017 23:01:58 -0800 Michael Pavone Fix to pass a couple more tests in VDPTEST.sms
Wed, 04 Jan 2017 22:48:00 -0800 Michael Pavone Fix some issues with VDP interface in Mode 4/PBC mode
Wed, 04 Jan 2017 21:23:59 -0800 Michael Pavone Display both byte and word pending values to better reflect VDP pending state in PBC mode
Wed, 04 Jan 2017 20:43:22 -0800 Michael Pavone Don't lock up CPU if performing a read with writes configured when in PBC mode. Allow access to VDP debug commands from Z80 debugger in PBC mode. Handle Mode 4 in VDP debug print functions
Mon, 02 Jan 2017 16:25:13 -0800 Michael Pavone Fix Mode 4 sprite table Y scan to account for VRAM byte swapping
Sun, 01 Jan 2017 23:00:28 -0800 Michael Pavone Fix slot tracking screwup
Sun, 01 Jan 2017 22:47:23 -0800 Michael Pavone Fix horizontal scrolling in Mode 4
Sun, 01 Jan 2017 21:06:32 -0800 Michael Pavone Update Mode 4 rendering to match logic analyzer captures
Sun, 01 Jan 2017 02:33:06 -0800 Michael Pavone Fix a bug in hslot advancement in Mode 4. Fix some of the "inactive_start" calculations that did not take into account Mode 4.
Sun, 01 Jan 2017 01:23:26 -0800 Michael Pavone Make Mode 4 sprite rendering a little less broken
Sun, 01 Jan 2017 01:16:43 -0800 Michael Pavone Fix rendering of BG color index 0 in Mode 4. Only transparent with respect to sprites and not the backdrop like in Mode 5
Tue, 27 Dec 2016 14:31:27 -0800 Michael Pavone Fix Mode 4 color mapping
Tue, 27 Dec 2016 13:46:06 -0800 Michael Pavone Brighten up Mode 4 colors
Tue, 27 Dec 2016 13:38:58 -0800 Michael Pavone The function of the HVC Latch enable bit in mode register 1 is different when not in mode 5
Tue, 27 Dec 2016 13:26:14 -0800 Michael Pavone Fix inactive start line for Mode 4 in vdp_next_hint. Fix an off by one error in the range of registers allowed to be written in Mode 4
Tue, 27 Dec 2016 13:11:07 -0800 Michael Pavone Implemented Mode 4 sprite list termination
Tue, 27 Dec 2016 12:43:37 -0800 Michael Pavone Less broken Mode 4 implementation
Tue, 27 Dec 2016 11:31:17 -0800 Michael Pavone Somewhat broken implementation of Mode 4
Thu, 22 Dec 2016 19:51:25 -0800 Michael Pavone Initial support for Genesis/Megadrive PBC mode. VDP still needs Mode 4 to be useful.
Mon, 12 Dec 2016 09:50:33 -0800 Michael Pavone Fix field flag handling bug introduced with VDP/render interface cleanup
Fri, 09 Dec 2016 09:48:48 -0800 Michael Pavone WIP split of ROM loading/argument parsing from Genesis emulation code. Compiles and doesn't crash, but nothing works. Still a few too many globals as well.
Mon, 28 Nov 2016 22:45:46 -0800 Michael Pavone Clean up symbol visiblity and delete a ltitle bit of dead code
Mon, 22 Aug 2016 09:46:18 -0700 Michael Pavone Cleanup the separation of render backend and VDP code in preparation for having extra debug windows. Make determination of H40/H32 based on number of lines in each mode.
Fri, 12 Aug 2016 09:39:39 -0700 Michael Pavone Removed obsolete TOOD
Sun, 15 May 2016 16:22:45 -0700 Michael Pavone Fix bug in vflip implementation when in double resolution interlace mode
Wed, 11 May 2016 22:43:18 -0700 Michael Pavone Fix implementation of sprite collision flag. Old implementation did not make sense.
Mon, 02 May 2016 23:08:20 -0700 Michael Pavone Fix GST savestate loading to deal with SAT cache to fix sprite corruption on savestate load. Clear out Z80 native_pc so the Z80 state does not get hosed when loading a savestate while the emulator is already running
Sat, 30 Apr 2016 20:57:29 -0700 Michael Pavone Fix bug in SAT cache address calculation that caused a crash in Strider II
Sat, 30 Apr 2016 16:19:57 -0700 Michael Pavone Added TODO for hardware checking
Sat, 30 Apr 2016 16:19:19 -0700 Michael Pavone Set sprite overflow flag if we completely consume sprite rendering capacity for the line even if there is nothing left to draw. This graphical corruption in the vertical stretching scroll section. Needs hardware confirmation.
Sat, 30 Apr 2016 15:31:48 -0700 Michael Pavone Implement SAT cache. Causes some graphical corruption in Overdrive due to an unrelated bug.
Sat, 30 Apr 2016 08:37:55 -0700 Michael Pavone Fix some stuff with interrupt timing. The change in adjust_int_cycle gets Overdrive working again (vint was not being preferred over hint in some cases). One of the changes seems to have broken Fatal Rewind again, but no other regressions that I can see.
Wed, 27 Apr 2016 23:57:00 -0700 Michael Pavone Properly emulate machine freeze when reading from VDP while configured for writes
Sun, 24 Apr 2016 14:30:15 -0700 Michael Pavone FIFO should show as empty during a DMA fill after the initial write is done. BlastEm now gets a perfect score in VDP FIFO Testing
Sun, 24 Apr 2016 11:53:59 -0700 Michael Pavone Fixes to the DMA busy flag and DMA fill. Now up to 120/122 on VDP FIFO Testing.
Sun, 24 Apr 2016 02:19:48 -0700 Michael Pavone Half assed, prefetch based open bus value emulation. Gets BlastEm up to 119/122 in VDP FIFO Testing
Sun, 24 Apr 2016 01:24:38 -0700 Michael Pavone Implemented VDP read prefetch and made DMA copy not use the FIFO any more. Now up to 114 out of 122 passing on VDP FIFO Test ROM
Tue, 12 Apr 2016 21:38:24 -0700 Michael Pavone Remove the int number argument to vdp_int_ack since it is no longer used
Tue, 12 Apr 2016 08:35:44 -0700 Michael Pavone Fix VDP interrupt ack. Big thanks to Eke-Eke or whoever left that helpful comment in Genesis Plus GX. Fixes Fatal Rewind
Tue, 02 Feb 2016 18:33:00 -0800 Michael Pavone Change the sentinel value for the hslot parameter of run_dma_src to something that is not a valid slot number and actually use it for calls during the active display period
Tue, 02 Feb 2016 18:24:15 -0800 Michael Pavone Perform the same slot mapping shift for H32 mode as I did for H40
Thu, 28 Jan 2016 09:10:14 -0800 Michael Pavone Shift slot number to slot behavior mapping by six slots in H40 mode. This makes the line change slot align with the point at which the display turns on and off at the end of the active display area. Also fixed a regression in which an external slot got accidentally changed into a sprite draw slot
Tue, 26 Jan 2016 19:23:10 -0800 Michael Pavone After reviewing the results of my test ROM again it seems pretty clear that the VBlank flag gets set at the same time as the vcounter changes
Sun, 17 Jan 2016 14:46:12 -0800 Michael Pavone Fix calculation of window start column when it's on the right side. This removes graphical glitches in Afterburner 2, Fireshark and Dungeons and Dragons: Warriors of the Eternal Sun and probably others
Fri, 13 Nov 2015 22:56:59 -0800 Michael Pavone Selecting a second game from the menu now works