Welcome to Emulationworld

Forum Index | FAQ | New User | Login | Search

Make a New PostPrevious ThreadView All ThreadsNext ThreadShow in Flat Mode*


Subjectaccording to Elsemi Reply to this message
Posted byIceMan
Posted on05/31/07 07:46 AM



Quote:

As you noticed, the emulator stores the calibration value as 1 byte, so for 65535 (0xFFFF) it stores 0xFF, that when transformed back to 65280 (0xFF00). When adjusting the analog range to the calibrated range, all values over the max are clamped to 0xFFFF, so it's not a problem, the same for values below the min.

The actual problem was not there, but in the daytona analog inputs processing function. The function converts back from the 16 bit analog range that the emulator input subsystem computes to 8 bit digital inputs (in model 2 and 2a there are no dedicated analog ports, there is an ADC with its output bits connected to the digital inputs).
The function that adjusts the range (from 0x3 to 0xFD with 0x80 center) was taking a byte value as input, while the adc output was ranging from 0 (left) to 0x100 (right) and the function was masking out the top 8 bits, thus sending a 0x00 at top right, that was converted to the top left value. The solution has been chaning that function to receive a full 16 bit value :)

Quote from here



-
Entire Thread
Subject  Posted byPosted On
*Model 2 Emulator 0.5a  Sune_S05/29/07 04:22 PM
.*steering STILL broken for me in Daytona  MegaHurtz05/30/07 06:56 PM
...according to Elsemi  IceMan05/31/07 07:46 AM
...*Ok, so...  MegaHurtz05/31/07 09:18 AM
....*Re: Ok, so...  ElSemi05/31/07 09:31 AM
.*addicted to vstriker and bringing back good memories :))  [seh]05/30/07 11:34 AM