Jump to content


DPC+ Playfield questions for Robot Zed

1 reply to this topic

#1 Sprybug OFFLINE  



  • 540 posts

Posted Tue Jun 20, 2017 3:49 AM

Hey guys, I'm back again with more questions about how DPC+ does things with playfield data and what exactly I can do with it.

So far I'm able to use it as it was meant to.  No problems.  I love being able to define 4 separate screen quadrants with different resolutions, which I do take advantage of.  The right 1/4 of the screen I have at a high resolution to act as a life/energy counter and inventory.  The left 3/4 I use for the game and I use the vertical scroll technique.  This means of course that I define the levels using the playfield: data table.  This works just dandy, but with only 4K of graphics data to store and play with, this makes me limit my levels, especially since i use 22 line resolution (for a nice even 4x4 playfield block look) and with all the sprites/enemies I have in this game.  So I thought of some ways I could possibly get around this so the game doesn't end up being so small.

I changed the game to act more like a fetch quest.  Which means you enter the same levels to do different tasks, but even with that method, it still means i can only have 3 or 4 different levels in total.  I was okay with this, but as I have continued my 20K of available program space started to get smaller and smaller the more I added, which also means that I can't do everything I want to do in this game.  So now I'm reimagining it once again.  I thought, why not turn it into a Rogue Like?  Kind of like Rogue Legacy. Where every time you play a stage, it's different every time.  I thought I could accomplish this by perhaps sectioning out the levels into different pieces and have the game arrange these sections into a complete level by random, so it'd be different every time.  I, of course, would design the sections to all be interchangeable.  However, the only method I know of in Batari DPC+ is using the playfield: data table.  Now sure, I could get it to jump to certain parts of the table using the Data Fetchers, but I'd rather have the program look at different tables and then piece a bunch of the parts of the tables into one big table in DPC+'s display RAM, so I can scroll from top to bottom without having it have to jump around.  Problem of course is that there is nothing in Batari that would allow me to do this.  I could do some inline assembly to send data to the display memory of DPC+ to make a level before you start  it, but I have a feeling that the format of this bank is done in a way where it constantly changes and it's just not stored there entirely to scroll through, like you would in a ROM Table.  I had a look at in the debugger in STELLA and there were certain values I was looking for in the 4K DPC+ Display RAM that I know my playfield table stage would represent and I just wasn't seeing it.


So, I'm just curious to see if anyone would have any idea how I could do something like that, or if it is even at all possible!

#2 iesposta OFFLINE  


    River Patroller

  • 3,337 posts
  • Retro-gaming w/my VCS
  • Location:Pennsylvania

Posted Wed Jul 19, 2017 10:29 PM

I can push a whole Playfield display from data statements in batari Basic. 

You set a hi and low address which I found thru trial and error. Then an ARM command pushes 8 bits at a time. 

Since it is bypassing basic's nice "Playfield:" command, you have to do it the strange way the hardware wants it, as in: it goes bottom row up, and the 2nd & 4th PF sections are reversed. 

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users