12 July 2019, 21:58 | #21 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,506
|
WinUAE thinks game isn't switching to CD32 pad when reading pad buttons. I need to do some more tests with real pad, unfortunately I only have the Boomerang pad which may not have 100% identical hardware compared to official pad.
|
12 July 2019, 23:39 | #22 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,166
|
Blue button quits to WB means that WinUAE isn't configured for CD32 pad but just "joystick" or "joypad" and the joypad reading routine doesn't check if a joystick or a CD32 pad is connected
So blue button enables all button bits and it triggers pause/quit whatever. Typical. |
13 July 2019, 00:10 | #23 | |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,438
|
Probably not the problem. Of course i'd set it to "CD32 pad" controller type in WinUAE. And Toni confirmed it too.
Quote:
Last edited by Retro-Nerd; 13 July 2019 at 00:55. |
|
13 July 2019, 08:44 | #24 |
CaptainM68K-SPS France
|
Hello JOTD, i have tried your update for the premiere game (core design), and it just failed big time.
The graphics are completely trashed, right once level 1 has loaded, otherwise i get a system error and then my A1200 reboots straight. |
13 July 2019, 10:03 | #25 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,166
|
It's because I allowed it to use fastmem and there are blitter errors (strange as the code uses tons of blitwaits...). You can try with EXPCHIP in the meanwhile.
I'll publish a update with 2 separate slaves (so 512k chip users with slow ram can play the game) Last edited by jotd; 13 July 2019 at 10:13. |
13 July 2019, 10:35 | #26 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,506
|
Attached is test program (improved version of previous "ciabutton"). WinUAE results match real hardware (=boomerang pad) behavior.
Setup difference is in Paula POTGO register which means pad is the only variable in this test. Any Amiga hardware should return valid results, it does not need to be CD32. Important bits in output are 4 10 character columns. 3rd column "mode" is the one that lowlevel.library and other read routines use. (Menace uses second or fourth, I didn't bother to check it yet) Test 1: press pad blue button. Only 3rd column should have 3 stars (*-------**), others should be filled with stars. Does same happen with non-Boomerang pads? Test 2: press other buttons than red or blue: First 3rd column star should move, last two should be always active. Other columns should be completely blank. Does same happen with other pads? Wait 1 second after pressing because updating is slow and partial updates are possible. Last 3 characters should always have same state in 3rd column: -**. This can be used to detect if pad is inserted without pressing any buttons but I suspect some 3rd party pads don't work identically.. Also check if other columns have same state when using other pad(s). EDIT: mouse button exits. Pad must be in joystick port. Last edited by Toni Wilen; 13 July 2019 at 10:43. |
13 July 2019, 11:29 | #27 |
CaptainM68K-SPS France
|
who use whdload with 512kb only ?
|
13 July 2019, 11:44 | #28 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,166
|
Some users have 68000/A500 + IDE and some slow extra ram.
About Snow Bros: cfou! released the source, I think I can easily fix it Last edited by jotd; 13 July 2019 at 14:07. |
13 July 2019, 13:22 | #29 | |
Registered User
Join Date: Jul 2017
Location: Budapest
Posts: 355
|
Quote:
|
|
13 July 2019, 15:06 | #30 | |||
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,438
|
Quote:
Yes, that happens with the Honeybee CD32 controller. And my Genesis2AmigaCD32 adapter+Sega 6 Button controller too. Quote:
Yes, happens. Same pads tested as above. Quote:
Yes, -** here for both pads. |
|||
13 July 2019, 20:54 | #31 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,506
|
Thanks. Official CD32 pad test still needed.
Menace problem is solved. This also finally explains why some CD32 pad read code sets POTGO START bit. It is useless in most code variants (which made me to assume it is never needed) but this pad read code really requires it. POTGO setting is wrong at the beginning of read code. It should set middle button=output mode, data=0 ($2x00) to set pad in CD32 pad mode. But it writes $dx00: input mode,data=1. Because it is in input mode, charge level in pot cap is the voltage level that CD32 pad sees. In this case it is always 0v (=CD32 pad mode gets enabled) because POTGO START bit first discharges the cap. (Paula pulls all pot lines to zero during first 7 or so scan lines after START bit is set, then original mode is restored. Don't attempt to read other port's second or third button immediately after setting START bit..) This can also cause side-effects: first pad read can return all buttons pressed because cap charge is not "initialized" until after first read (unless some earlier init code accidentally set it it to output mode).. It is also possible if time between pad reads is long enough, pot cap value may change enough to cause random button presses. Hopefully this was the last unknown bit in CD32 pad behavior |
13 July 2019, 21:12 | #32 |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,438
|
Great, thanks for investigating this. Menace is fixed now. Xenon pause key works too. Only the Snow Bros problem is left, if you select "Second button to jump" at the slash screen. Not sure if this indicates an improper WHDLoad patch solution though.
|
13 July 2019, 21:58 | #33 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,166
|
I added the CD32 support in Superfrog. I use the same code for all WHDLoad slaves now. Modified version of "ReadJoyPad.s" with first joystick/joypad detection to avoid the "blue pressed => all pressed" error when joystick is set (not CD32 joy).
Killergorilla: thanks for allowing me to write in the spreadsheet. I'll make my additions in the end, left in white. I'll let you officialize them. Ok? Last edited by jotd; 13 July 2019 at 22:04. |
14 July 2019, 08:39 | #34 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,506
|
Quote:
It also has another strange code sequence in fire button read code: Code:
_PatchFIRE1 bsr _CD32_Read BSR _CD32_Fire1_Red BEQ .Fire1Pressed move.l d7,-(a7) move.b #-1,d7 tst.l d7 move.l (a7)+,d7 rts .Fire1Pressed tst.w $bfe001 rts EDIT: Looks like game is 68000 compatible so tst.w probably should be fixed. (If those unnecessarily big movem.l's don't slow it down too much on 68000..) Last edited by Toni Wilen; 14 July 2019 at 11:03. |
|
14 July 2019, 09:29 | #35 |
Registered User
Join Date: Sep 2006
Location: New Sandusky
Posts: 942
|
Imagine if C= had provided a proper controller port protocol in 1985 instead of just copying the Atari 2600's. =( I guess it made sense for the VIC-20 and they wanted to save a few $ on controllers since they already had VIC-20/C64 stock. =(
|
14 July 2019, 10:27 | #36 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,166
|
yeah, this button read is just hell. But with the proper read routine, finetuned by several EAB users, you don't have that many problems. It's even reported that this "ReadJoypad.s" routine works on some A1200 motherboard revs where lowlevel library doesn't!
|
14 July 2019, 14:56 | #37 |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,438
|
Excellent. We'll see if more strange CD32 controller patched WHDLoad games pop up that need to be fixed. Updated the Google sheet with infos about Menace, Xenon and Snow Bros.
Last edited by Retro-Nerd; 14 July 2019 at 15:11. |
15 July 2019, 09:21 | #38 |
68k
Join Date: Sep 2005
Location: Somewhere
Posts: 828
|
@jotd
Can you post (in the Zone or via PM ) newest ReadJoypad.s source code. Thanks a lot. |
15 July 2019, 18:56 | #39 | |
Registered User
Join Date: Jul 2017
Location: Budapest
Posts: 355
|
Quote:
Now I've installed version 1.3 using the Islona release. Same thing happens: FIRE (red) button pauses/unpauses and shoots at the same time. It's like pressing pause right after shooting. |
|
15 July 2019, 19:44 | #40 |
Banned
Join Date: Aug 2005
Location: London / Sydney
Age: 47
Posts: 20,420
|
...so as Retro already mentioned, try 1.4.
Here is Retroplay's package, all you need to do is download / extract / play: Superfrog_v1.4_0035.lha |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Do you own a 2 button gamepad or joystick? | Tigerskunk | Amiga scene | 76 | 09 May 2023 12:47 |
Usb and PS2 Joystick/Gamepad Adapter for Amiga Atari Commodore 9pin D port! | ikonsgr | MarketPlace | 0 | 27 December 2016 18:13 |
Usb and PS2 Joystick/Gamepad Adapter for Amiga Atari Commodore 9pin D port! | ikonsgr | MarketPlace | 0 | 08 November 2016 23:00 |
Analog gamepad/joystick - problems | zygzak | support.WinUAE | 9 | 24 April 2014 17:20 |
Joystick vs. Gamepad | laser | Retrogaming General Discussion | 83 | 24 June 2008 15:49 |
|
|