Jump to content
IGNORED

Potential new hardware


foft

Recommended Posts

Are these testing boards that will eventually be the released version with rom upgrades and the like?

These will be break out boards to add missing ports to the FPGA board. So you will still need an FPGA board. For now the DE1 or Sockit. There will be no ROMs on the board. The FPGA board can be updated to the latest 'Atari XL core' easily though.

 

Now if someone wants to design and 3D print a case that can fit this + small FPGA board + a second board for video+audio out that would be awesome:-)

Link to comment
Share on other sites

I know nothing about hardware, but possible silly question here, but is it possible to bring out the necessary signaling so that a vbxe could be attached? I understand that the vbxe itself does the work of antic, so I assume such a setup might no longer need antic emulation in fpga.. I personally am following this project with great interest, but I am a big vbxe fan too.

  • Like 1
Link to comment
Share on other sites

I know nothing about hardware, but possible silly question here, but is it possible to bring out the necessary signaling so that a vbxe could be attached? I understand that the vbxe itself does the work of antic, so I assume such a setup might no longer need antic emulation in fpga.. I personally am following this project with great interest, but I am a big vbxe fan too.

My understanding is that the VBXE sits on top of GTIA, using the GTIA's existing functionality (collisions) and redoing the video portion including adding quite advanced overlay support. I guess theoretically it could be connected up as a PBI device + a couple of extra signals. Looking at the install guide and schematic all that I think is missing off the PBI is AN0-2 (Antic's video data stream to GTIA) and the high speed clock.

 

However I think what will make most sense is to put the VBXE logic into the FPGA itself.

 

I do think there are more 'Antic/GTIA'esque ways of improving graphics modes that are possible when replacing the Antic/GTIA with an FPGA implementation though. e.g. we could use some an unused display list code (Is $61 free? hscrol+jump and wait for vblank) as an escape code to allow some 2/3-byte codes for more screen modes. e.g. double/quad dot clock modes allowing higher res or more colours.

 

Personally I was most interested in the VBXE for higher quality VGA output (which precludes the fx core anyway) and a decent 80 column mode for editing. Going further than that requires much more developer effort - duplicate effort since its in addition to the core Atari graphics.

Link to comment
Share on other sites

the fx core is unfortunately limited to rgb output, however I picked up a 35 dollar flat panel LCD monitor from ebay that can sync to 15khz, so while I wish the fx core could just output regular vga...at least with the right monitor, the limitation can be overcome. I totally appreciate the desire for good 80 column output and usability with VGA monitors, but to me vbxe is also just about being a standard...the only one this community has for enhanced graphics that has some momentum behind it...years in the making, but now vbxe regularly available from lotharek and the user base and software base is growing. Sure, if your setup comes with vbxe in fpga, that'd be awesome. no doubt the system will be awesome in any event, for me though vbxe has importance as a target platform.

Link to comment
Share on other sites

...for me though vbxe has importance as a target platform.

Sure, understood.

 

Using the existing implementation in the FPGA depends on the view of Electron and Candle I guess. If that doesn't work out I'll see what I can do to keep the door open to using it as an expansion.

Link to comment
Share on other sites

I've put my latest development version up on my site - 20130831. End of August edition.

 

I did not manage to get Acid 100% for the end of August as planned, but very close. There are 3 fails remaining. Software compatibility now seems very good - I'd venture 95%+.

 

I'd appreciate some help tracking down the Star Raiders failure. I used an XL OS fixed version but still get a black screen/crash.

 

Details from my readme.txt:

experiment_20130831.sof

2.5(!) acid fails (5.5 in latest beta)

Not quite 100% by end of August, but very close.

Remaining fails are:

i) Blocked NMIs

ii) Illegal instructions (This almost passes - hence half)

iii) PIA IRQ

New switches:

SW3: On for Peter Wendrich's 6502 core with illegal op codes (FOR MY EDUCATIONAL/DEVELOPMENT USE ONLY - NOT MANAGED TO CONTACT PETER YET)/ Off for T65

SW2/SW1: ROM select: 00=0x00000,01=0x04000,10=0x08000,11=0x10000(may not work)

Notes:

This version appears to run almost everything now - expecially with the alternative 6502 core. The only game I'm running into issues with is unfortunately Star Raiders!

I've not fixed Pokey timing but high speed now works pretty well.

Games that now work (since last version): River Raid, Rally Speedway, Pitfall 2.

Demos that now complete and appear correct: Numen, Bitter Reality, Drunk Chessboard.

I ran it Sysinfo 2 benchmarks with turbo on and it shows it as 13x faster. I think this may access ROM routines though - these will be twice as fast when mirrored to RAM.

Notable bugs:

Star Raiders won't start

PMG debris on some blank screens

Remaining failed acid tests.

Link to comment
Share on other sites

Tests cases I would recommend, if you haven't tried them already:

  • Total Daze: Plays audio using channels 3+4 during SIO load.
  • Cross Town Crazy Eights: Sends data over SIO bus to disk drive using channel 2 as the transmit clock instead of channel 4.
  • Ilusia, Joyride disk B: Requires tight timing for PRIOR switches.
  • 8 players demo: Requires precise emulation of player retriggering.
  • Turmoil: Score is corrupted if DMACTL timing is off.
  • Pacem in Terris: Title screen is corrupted if DMACTL timing is off.
  • Spider City: Minimap is corrupted if playfield DMA is not cycle exact.
  • GILP: Significant use of illegal opcodes.
  • Caverns of Mars: Joystick control breaks if PIA port A output doesn't work properly.
  • Pole Position: Bonus counter underflows after race if N flag is wrong in decimal mode.
  • Ray of Hope: Plasma section breaks if per-scanline horizontal scrolling or GTIA modes don't work with IR mode 2.
  • Cup of Tea: Sound sample pitch will be wrong if high-speed IRQ timing is off.
  • Like 2
Link to comment
Share on other sites

Many thanks for those. Good to know some tricky ones to try - I'll run them up and see what works.

 

A few tricky ones I already need to fix:

a) Our Soft Unity part - Intra scan line gtia changes are not accurate. Trying to figure this out exactly on a real Atari with my scope/la but its not very clear.

b) Hires mode change example posted in this forum. As above I expect.

c) Silly things character split timing core posted in this forum.

Link to comment
Share on other sites

A good start...

Total Daze: Works

Cross Town Crazy Eights: Works

JoyRide disk B: Works

MadTeam Illusia 2009: Works

 

Then a bad run...

8 players demo: B of BEWESOFT is missing. 7 player demo:-)

Turmoil: Score fine, but lines between sections corrupted. Fine in 'demo mode' but not when actually playing.

Pacem in Terris: Initial title screen fine. Then it loads and the video is corrupt. Matches Altirra 2.3 but I expect this still needs real hardware? EDIT: It looks like its a compy shop Antic bank switching issue.

Spider City: Whole screen has stripes on. Underneath mini map looks ok!

GILP: Does not blit properly with either of the 6502 cores I'm using. Interesting while the game itself works on my XEGS the screen after dying does not.

 

Then some more passes:

Caverns of Mars: Works

Pole Position: Works (both 6502 cores)

Ray of Hope: Works

Cup of Tea: Works

 

Not a bad showing I think - thanks to the Acid 800 tests I expect:-). A few things to fix...

 

I forgot in my last list of interesting ones - Memopad 480i. Another DMACTL sensitive one.

Edited by foft
Link to comment
Share on other sites

  • 3 weeks later...

New version up: experiment_20130923.sof

 

The acid test now passes.

 

I'm working on the physical hardware side now - real joysticks/cartridges etc. Also we'll have 8MB more RAM available in the next version ... and maybe sd card support.

 

Interested if anyone has tried running much? Be great to have some videos:-)

  • Like 8
Link to comment
Share on other sites

The acid test now passes.

Great!! We're about to have a perfect Atari800 replica! How awesome is that?

 

 

I'm working on the physical hardware side now - real joysticks/cartridges etc. Also we'll have 8MB more RAM available in the next version

Will you support DE1 GPIO-attached joysticks like the Minimimg core does? I have that adapter and it works very well!

 

and maybe sd card support

This is what I need to start extensive testing :D

Edited by vanfanel
Link to comment
Share on other sites

Will you support DE1 GPIO-attached joysticks like the Minimimg core does? I have that adapter and it...

Yes. I'll match pinouts, though I'm not a fan of the minimig joystick pinout!

 

I was hoping to have 4 joystick ports though without tricks I won't have enough gpio pins (72 available for cart, keyboard, joystick, sio and pbi). Would it be a reasonable idea to build in a multijoy interface? I could make it software transparent...

 

Mark

Link to comment
Share on other sites

Getting closer. Joystick, cartridge, paddles, touch tablet, atari keyboard, porta output and light gun are all working on my prototype.

 

Few videos if interested... Please excuse camerawork!

Edited by foft
  • Like 9
Link to comment
Share on other sites

Looks like you have most of the hardware working.

Are you going to add software control of the CPU speed?

I need to load it on my DE1 and check it out.

Atari BASIC should be fast enough to write games that look almost like they are written in assembly.

Edited by JamesD
Link to comment
Share on other sites

Well I'm considering a few small extensions...

 

I) DMACTL bit 6 to allow 2-bit DMA speed/dot clock:00:off,01:1x,10:2x,11:4x.

Ii) d408/unused: HCOUNT

iii) PAL: high bits identify

iv) d310: FASTER: CPU clock multiplier:1x/2x/4x/8x/16x

v) d311: FEATURE:

vi) d312: MEMORY: 64KB/ 128KB/ 320KB/576KB/1MB. Antic banking versions.

vii) d313: ROM: Select OS ROM

 

Shame PRIOR in GTIA does not have more bits. GTIA could be widened for 16 colour regs in mode 10. 4 colour clock mode for 256 cols and regs to set rgb values for all 256 cols. More pmgs etc!

 

I think most likely these will just be used for an 80 column colour text mode + maybe a photo viewer. Good to keep writing software for the real base hardware in general.

 

Probably with a physical switch to enable all of these.

 

Yeah BASIC is much quicker in turbo mode. 16x (ram), 8x (rom - 2 cycle), 5x (rom - 3 cycle), no increased dma overhead. So mirroring to ram will help. Also an fpu will help if anyone fancies writing a hardware math pack?

  • Like 3
Link to comment
Share on other sites

New version up. This has the GPIO support I've posted the videos of above. Interested to hear if the Minimig joystick adapter works - for joystick only, will not work for paddles.

This will be the last major release for a while. There will likely be a smaller release in the next few days. After that I'm moving house, so will likely not update much until sometime in November.

experiment_20131002.sof

VSCROL row count bug fix - fixes Silly Things split.
Fixed serial port shift register busy bit in SKSTAT.
Stopped GTIA reading noise off bus for PMGs in vertical blank.
Removed spurious colour stripes in horizontal blank when in highres mode.
Removed t65, since I've re-purposed the switch.
Implemented Pokey keyboard scanner.
Implemented Antic light pen registers.
Fixed RDY delay to be one cycle - always.
Improved PRIOR timing - still not perfect.
Added GPIO support for Cartridge, Paddle, Joystick, Keyboard and Lightgun.
Switches update:
sw9(left): turbo (on is up)
sw8 : ntsc/pal (pal is up)
sw7 : 2/3 rom waitstates (3 is up)
sw6/sw5 : ram size 00=64KB/01=128KB/10=320KB Compy Shop/11=320KB Rambo (0 down, 1 up)
sw4 : scan doubler (up is vga/ down is tv)
SW3 : GPIO Enable (up - on/ down - off). Turns off Cartridge/Joystick and Keyboard support. Note that SIO still present when disabled for now.
sw2/sw1 : ROM select: 00=0x00000,01=0x04000,10=0x08000,11=0x10000 (Note basic still at 0x0c000 for backwards compatibility)
sw0 : reset (up to hold cpu in reset)
key3/key2: soft reset (one resets cpu only, other does async reset)
key1/key0: joystick1/joystick0 trigger
Joystick ports are on the Minimig pins on GPIO_1 (right hand one). Note that additional hardware is required to read paddles.
Cartridge is on GPIO_0 - pinout on request
Keyboard is on GPIO_1 - pinout on request
I am designing a breakout PCB in the next few days and may change pinouts.

 

Notable known bugs:
On boot a key is spuriously pressed.

Edited by foft
  • Like 2
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...