Jump to content
IGNORED

Pokeymax v2


foft

Recommended Posts

3 hours ago, foft said:

I'm thinking about these 6 spare pins...

Perhaps PS2 keyboard, USB keyboard, digital audio out? Any other ideas?

Maybe providing the method to scan original Atari keyboard maxtrix KR1 and KR2 lines manually would be interesting feature? For example when SKCTL=%xxxxxx01 reading POTGO ($D20B) would return KR1 and KR2 states every scanline. This way we have got full keyboard scan after 64 scanlines. You can of course cache KR1 and KR2 states internally on normal keyboard scanning routine (when SKCTL.1 is active) and return cached values on subsequent read of KBCODE ($D209) or POTGO (let's name it RAWKEY). You need only 8*9 bits of internal cache for this purpose (KR1 is taken every scanline, KR2 every 8th scanline).

I can imagine following routine of full keyboard scan:

lda #%00000001
sta SKCTL
lda RAWKEY		;first KR1 states
sta buffer
lda RAWKEY
sta buffer+1
...
lda RAWKEY		;last KR1 states
sta buffer+7
lda RAWKEY		;all KR2 states
sta buffer+8
lda #%00000011
sta SKCTL

It doesn't reset POKEY timers neither LFSRs so normal POKEY operation wouldn't be distorted.

Edited by mono
Link to comment
Share on other sites

  • 3 weeks later...

Firmware version 1.21 is released. The 'core.bin' files to update are online for the first time:

http://www.64kib.com/pokeymax_files/1.21_202010110/v2/

This is only possible on the larger devices which have the 10M04 or 10M08.

 

The tool to update them is here, intended to be used in tandem with the appropriate core.bin file on D4.

http://www.64kib.com/pokeymax_files/pokeycfg_0_9.xex

 

1.21 changes:
  SID/PSG:
    1MHz and 2MHz clock are generated using the C64 method.
    - PAL: 5/9 PHI2
    - NTSC: 4/7 PHI2
    (2MHz is 10/9 and 8/7)
    Previously the SID/PSG clock varied up to 0-10% by device since its using the internal oscillator (now the internal oscillator only leads to a jitter change, since it counts the phi2 length)
  Config tool (0.9):
    Add PAL/NTSC selection for these clock dividers    
 
1.20 changes:
  SID:
    Wave and envelope timing verified/corrected vs 6581
    - 0 when all disabled, not 1
    - noise init fix
    - noise enable delay 2 cycles
    - pulse delay fix (asymmetric)
    - envelope stall bug fixed
    Fixed read of osc c register
    Sample support (dc offset in 6581 amplitude modulation, dc offset in 8580 ext in if digifix enabled)
    Filter
    - 6581 f distortion
    - Corrected 6581 and 8580 phase differences
    - Attenuate band pass (iirc) on 6581
 Common
   GTIA mixer fix    
 Config tool
   Added sid digifix support (select 6581,8580 or 8580Digi)
 

1.19 changes:

  Platforms

    PokeyMax v1 backport

  Common

    Stereo auto version code corrected to SA

    Remove some whistling (different dac frequencies)

  Keyboard scan

    Works with TKII well enough, though will be further improved in future TKII firmware

  Sample

     Tested/fixes: Clipping, correct data nibble, irq

  SID

     Fixed corrupted Q values

  Config tool

     Much improved display refresh time

     No need to press control for arrow keys

     Fixed apply settings for 2nd flash location

 
1.18 changes:
SID 
   filter q in flash (6581 or 8580)
   mixed waveforms in flash (6581 or 8580) 
Pokey
    Force break anded in (turbo tape fix)
    Volume to flash (In large FPGAs)
Keyboard scan
   Inversion corrected
   Scan uses interrupts
   Scan run off pokey timer
   I2C clock run at 1.5MHz (over spec but stable until 3.5MHz)
   TKii/AKI should work
PSG 
    volume to flash
Config
    Can disable devices by a register
Flash control fairness fix
 
1.17 changes:
Added sample player - Paula style with ADPCM (alpha test)
PSG volume linear or log
SID filter f in flash (6581 or 8580)
Pokey non-linear curve improved
 
1.16 changes:
i) 2nd order sigma delta dac excludes unstable top and bottom of range
ii) config tool update reads from the registers for the initial state
iii) right channel detection based on xor rather than 5 bits (covox 2 channel fix)
 
1.15 changes:
* Added flash support to M04 cores
* Added M04 support to flash program
* Flash program renamed to pokeycfg.xex
 
1.14 changes:
* Registers initialized from flash
* Flash access from the core
* Register to disable automatic mono detection
* Fix quad pokey mixer overflow bug 
* Serial input 5 cycle clock delay (brings sio timing closer to pokey)
 
1.13 changes:
* Doubled clock rate of second order sigma delta
* Changed version type of some cores:
   xel stereo(pokey) => M02SX
   psg quad(pokey) covox => M08QP -> wire up like quad pokey with covox (A4,A5,A7)
   sid quad(pokey) => M08QS  -> wire up with A4,A5 and A6
 
1.12 changes:
* Second order sigma delta
* Improved pokey non-linear volume curve
* Channel playing detection (if R not playing, it plays L)
* xel stereo build (disables CS1)
* New SID core developer build
* New PSG core developer build
 
1.11 changes:
Implemented IRQ enable reg.
 
1.10 changes:
i) covox left channel: channel 1 + channel 4
ii) covox right channel: channel 2 + channel 3
iii) covox volume halved
iv) Added quad with covox memory map.
v) Added 4 channel covox.
 
 
... lots of early/pre-release changes...
  • Like 4
Link to comment
Share on other sites

OK, lets try that again.

 

Flasher:

http://www.64kib.com/pokeymax_files/pokeycfg_1_0.xex

Cores:

http://www.64kib.com/pokeymax_files/1.22_20210113/

 

Important advice 1:

Recovering from a failed flash will require a USB blaster (+ making a small adapter board), or sending back to Retronics.

 

Important advice 2:

If flashing does not work, do not power off the computer off. Correct the issue and try again.

 

Changes:

1.22 changes:
  Environment:
    Upgraded to Quartus 20.1.1
  IP:
    Disabled wrapping burst mode on 10M08 flash access - it saves space but is non-functional! Issue raised with Intel.
  Config tool (1.0):
    Add some safety checks to the flashing tool
    - Allow halting and restarting the process (press break)
    - Check stdio error codes properly!
    Skip 0xff values (faster)
    'Secret key' (x!) to allow displaying some flash contents!
 
Edited by foft
  • Like 4
Link to comment
Share on other sites

On 12/17/2020 at 6:17 PM, Mathy said:

Hello foft

 

As in SPDIF?  That would be nice.

 

Sincerely

 

Mathy

 

Personally, I'd LOVE a way to get Sophia DVI to include a PokeyMAX digital signal straight into an HDMI port right on the system with both video and audio and reduce the delay and power required.

Link to comment
Share on other sites

Hello mi1ez

 

14 hours ago, Mi1ez said:

Personally, I'd LOVE a way to get Sophia DVI to include a PokeyMAX digital signal straight into an HDMI port right on the system with both video and audio and reduce the delay and power required.

And wouldn't it be nice if we could buy an off the shelf DVI2HDMI convertor that would fit inside the Atari.

 

Sincerely

 

Mathy

 

Link to comment
Share on other sites

I asked on the Sophia 2 and the current design can't output audio if I provide it. I guess I could make pokeymax 3 have 2 input pins for col/lum and output HDMI, though that feels like I'm stepping on the toes of Sophia's territory a bit! I have designed/included most of the required logic already for the Eclaire.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

i'm sure foft doesn't need this explained, but some of you might need that

for HDMI there are no separate audio pins - digital or analog, instead, audio data is embeded into tmds stream during horizontal and vertical synchronisation periods, and depeding on the logic inside tv it might be processed out of sync with video - thus most tv sets have some options to set audio to video delay/latency

 

if you can provide standard i2s output vbxe3 will use it

i'm using 50mil 4 pin header on simplestereo4 for this purpose

 

  • Like 5
Link to comment
Share on other sites

7 hours ago, candle said:

i'm sure foft doesn't need this explained, but some of you might need that

for HDMI there are no separate audio pins - digital or analog, instead, audio data is embeded into tmds stream during horizontal and vertical synchronisation periods, and depeding on the logic inside tv it might be processed out of sync with video - thus most tv sets have some options to set audio to video delay/latency

 

if you can provide standard i2s output vbxe3 will use it

i'm using 50mil 4 pin header on simplestereo4 for this purpose

 

and that lag is what makes such terrible game play on sets that require those adjustments, I had to trash a couple tv's for those reasons... blech nothing helped!

  • Like 2
Link to comment
Share on other sites

8 hours ago, candle said:

if you can provide standard i2s output vbxe3 will use it

i'm using 50mil 4 pin header on simplestereo4 for this purpose

 

Maybe, it’s 4 pins! Spdif is 1 pin:)

Any movement on sharing the vbxe hdl with me for the EclaireXL? ?

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...