- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
05948 | Graphics | Major | Always | Jun 1, 2015, 14:24 | Aug 20, 2015, 11:02 |
Tester | Mamesick | View Status | Public | Platform | MESS (Official Binary) |
Assigned To | Resolution | Open | OS | Windows Vista/7/8 (64-bit) | |
Status [?] | Confirmed | Driver | |||
Version | 0.162 | Fixed in Version | Build | 64-bit | |
Fixed in Git Commit | Github Pull Request # | ||||
Summary |
![]() |
||||
Description | There are big graphics issues caused probably by wrong timings and syncronizations between 6510 and VIC-II. It's easy noticeable in a lot of crack intros where raster interrupt effect are abused. Just look at the 3532/TRIANGLE intro in MAME and in VICE emulator. | ||||
Steps To Reproduce | Load the attached .D64 image and then LOAD"*",8,1. Wait a while and have a look. | ||||
Additional Information | |||||
Github Commit | |||||
Flags | |||||
Regression Version | |||||
Affected Sets / Systems | c64, c64p and clones | ||||
Attached Files
|
![]() C64 PAL MESS
| ||||
![]() C64 PAL VICE
| |||||
![]() Unzip it first | |||||
Relationships
Notes
2
![]() No.11710
Mamesick Senior Tester
Jun 3, 2015, 13:06
|
I think after a quick look at MOS6566.C file, that the problem lies in line 1436 and 2005 where the following condition is never reached:if ((cpu_cycles == vic_cycles) && (m_rdy_cycles > 0))It's never reached because MOS6510 CPU CYCLES are 64, VIC-II CYCLES (MOS6566, 6569 etc.) are 63. |
---|---|
![]() No.11979
robiza Developer
Aug 20, 2015, 11:02
edited on: Aug 20, 2015, 11:40 |
The problema is 6502 emulation. It's necessary to implement RDY signal in the core. RDY stop every read operation from the bus. When RDY will be present, the vic ii implementation could be modified to handle the RDY signal. Frodo source: // Set BA low #define SetBALow \ if (!the_cpu->BALow) { \ first_ba_cycle = the_c64->CycleCounter; \ the_cpu->BALow = true; \ <------------------------------------------ send RDY signal to CPU } Mess source: inline void mos6566_device::set_ba(int state) { if (m_ba != state) { m_ba = state; <------------------------------------------ don't send RDY signal to CPU if (m_ba) { m_aec_delay = 0xff; } } } |