Jump to content

Photo

64K DPC+ Batari BASIC?


2 replies to this topic

#1 Sprybug OFFLINE  

Sprybug

    Dragonstomper

  • 526 posts

Posted Sat Jan 14, 2017 10:05 PM

Hey guys, I know that the new Harmony is able to do 64K, does that also mean that DPC+ would also be able to handle 64K?  If so, that'd be excellent, because I'd love to continue using DPC+ for Robot Zed, but for the scale of the game, I need more space.  Not so much in coding, but for the graphics bank.  Would it be possible to do, let's say, Bank 1 being used as it is now for the DPC+ code, banks 2-8 for your personal code, and then banks 9-16 (32k) for the graphics bank and the rest of what needs to make DPC+ work.   Let me know!



#2 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 8,821 posts

Posted Wed Jan 18, 2017 8:24 PM

I'm pretty far from an expert on DPC+. Until a better answer comes along here's what my impression is:

You get around 24k max. batari would have to be convinced to refocus his time to expand that.

I think the Melody boards can go up to 64k. Maybe you could try your hand at writing your own display kernel in assembly to get better fidelity without DPC+

 

I guess another option would be the stuff Spiceware is working on.  Apparently it would allow most of your game to run in C.  Maybe that would allow you to store more stuff as well.



#3 SpiceWare OFFLINE  

SpiceWare

    Quadrunner

  • 11,141 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Wed Jan 18, 2017 9:54 PM

Hey guys, I know that the new Harmony is able to do 64K, does that also mean that DPC+ would also be able to handle 64K?


The DPC+ driver's designed around a 32K of ROM with this layout:
 
blogentry-3056-0-26480200-1425338924.png
 
 
What I would do is:
  • clone the driver
  • revise the bank layout by inserting 8 new banks (6-13) before Display Data
  • add 8 bankswitch hotspots so they'd range from $FFEE-FFFB (32K uses $FFF6-FFFB)
I implemented the support in Stella and believe it'd be fairly easy to modify it to support 32K and 64K versions.  I think batari's the only one with source for the DPC+ Harmony/Melody driver, so he'd need to make those changes.  After that bB would also need to be updated.
 
Data for the datastreams must be in Display Data RAM due to performance (the ARM can access RAM 4 times faster than ROM).  When a DPC+ cartridge is first powered on the contents of Display Data ROM is copied into Display Data RAM.  I suspect bB is set up so the graphics all exist in that 4K Display Data, which limits how much you can have.  For my games I copy the graphics into RAM as needed, so the RAM holds different data when the main menu is displayed than it does when the game screen is active.

 

I guess another option would be the stuff Spiceware is working on.  Apparently it would allow most of your game to run in C.  Maybe that would allow you to store more stuff as well.


Space Rocks and Stay Frosty 2 are DPC+ games written in C (not bB). I've a tutorial on that - it's not finished, but is probably enough to get somebody started, especially if they download the source for my games that I've posted in my blog.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users