29 December 2017, 15:09 | #1 |
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,154
|
Display problem - works on emulation, not on real hardware
I've been tinkering with a graphics demo to draw a Space Harrier style chequered floor and got a little prototype working reasonably well - or so I thought.
It works fine on linux uae 0.8.15, the latest fs-uae and the latest WinUAE, and also on the Chameleon64's Minimig core - but on real hardware (tested so far with A500 and A500+) the playfields aren't displayed - I just get a black screen, yet a placeholder sprite that I've included is displayed correctly. I've not done much programming of the Amiga's hardware so I'm probably making a stupid mistake here - but if anyone can shed any light on what's going on I'd be very grateful! The program sets up a dual-playfield screen, but the front playfield isn't yet used. A precalculated floor texture is rendered by manipulating bitplane pointers with the copper, and the colours are also changed each line with the copper. Source is attached - I've been building with VBCC. A small amount of ASM code which includes the copperlist, and the main program prototyped in C (with critical sections to be converted to ASM later on, once it works.) |
29 December 2017, 15:29 | #2 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,528
|
It seems to be yet another BPLCON2 invalid value side-effect in dual playfield mode.
Only 0 to 4 PF1P2 or PF2P2 value is valid. 5 to 7 does weird things, at least on OCS/ECS hardware. Most known side-effect is SWIV scoreboard where invalid value causes plane 4 to become "selector" plane, if it is set: color is always 16. If not set: planes 0 to 3 work normally. At least one dual-playfield side-effect is emulated which seems to be similar or even same (Will check later) as this one, empty dual play field plane is invisible (background color) but it still hides the other playfield behind it. EDIT: It is same side-effect but conditions to trigger it conflict (either running man/scoopex logo disappears or your test program is not blank), more testing to do.. Last edited by Toni Wilen; 29 December 2017 at 15:43. |
29 December 2017, 16:17 | #3 |
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,154
|
Many thanks - that was indeed my problem, and having changed my BPLCON2 value from 0x7f to 0x64 it works as expected.
Thanks again! |
21 January 2018, 20:53 | #4 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,528
|
I did some more tests and it seems to be quite simple after all. (Not yet confirmed enough to post in undocumented features thread)
OCS/ECS only. No dual playfield: If number of planes is 5 or 6 and BPLCON2 PF2 is >= 5 and if plane 5 (counting from 1) has bit set: other planes are ignored in palette selection. (This was also incorrect previously, it happens both 5 and 6 plane modes, not just 5 plane mode) Dual playfield: Any number of planes. No 5+ requirement here. If playfield's matching BPLCON2 PFx value is >=5 and if playfield is not transparent, it is always drawn using COLOR0. Priorities still work normally, only color selection becomes strange. EDIT: HAM interestingly is 100% unaffected. Last edited by Toni Wilen; 22 January 2018 at 17:49. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Trying to find ADF files of Pinball Illusions that works on a real A1200 | spannernick | support.Games | 18 | 28 August 2016 12:32 |
On real hardware one CF card works the other doesn't, but... | Sim085 | support.Hardware | 3 | 20 July 2015 22:26 |
OS3.9 install works WinUAE but not with CF in real Amiga | eebuckeye | support.WinUAE | 26 | 12 May 2014 15:16 |
WHDLoad on PC works fine but not on real Amiga | DC33 | support.Apps | 17 | 04 September 2011 21:57 |
What display do you use for real Amiga? | kixs | New to Emulation or Amiga scene | 47 | 18 November 2007 23:48 |
|
|