Jump to content
IGNORED

64K DPC+ Batari BASIC?


Sprybug

Recommended Posts

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!

  • Like 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 2
Link to comment
Share on other sites

  • 5 years later...
On 1/18/2017 at 10:54 PM, SpiceWare said:

 

 

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.

 

Is there something I can read up on somewhere about copying graphics into RAM as needed?

 

I have a DPC+ game. I didn't see that you only have 4k for graphics and I have 8 bytes left! I figured since the code is in bank3 that's all there is to it.

 

So this is what I have currently:

A game with title screen, game over screen, get ready screen, secret screen, and 30 levels.. not to mention player and 4 enemies. I do not have a boss yet and I was hoping to add more levels.

 

I could remove the secret screen or get ready because I need the boss.. but I'd love to keep it all in.

 

I have almsot 3 whole banks free.. well I still have to add boss code in, and some sound effects, and miscellaneous stuff to fix/add, so let's say for reference I have one bank totally free. I'd love to be able to swap out my levels so I can add another 15 or 30 levels.

 

I am not familiar with C or ASM.

Edited by Words Fail
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...