Jump to content
IGNORED

Getting started with the DPC+ Kernel


Atarius Maximus

Recommended Posts

Great demo! But it also demonstrates what I was talking about. If you add:

 

if switchreset then reboot

 

... right after the main loop and then check the scanlines immediately after rebooting, it overcycles.

 

I also tried putting it on my Harmony and testing it on a 2600 and the move demo isn't even viewable--it's just a garbled, shaking mess of white and grey.

 

Have there been any confirmed cases of DPC+ working on real 2600 hardware?

 

Yep, I noticed the overcycle problem you described and I don't know how to fix that. I tried Evil Magician Returns II on my Harmony last week and it didn't work, same symptoms you describe of a garbled mess on the screen. I was thinking maybe my Harmony cart needed an update but I haven't looked in to that yet.

Link to comment
Share on other sites

Yep, I noticed the overcycle problem you described and I don't know how to fix that. I tried Evil Magician Returns II on my Harmony last week and it didn't work, same symptoms you describe of a garbled mess on the screen. I was thinking maybe my Harmony cart needed an update but I haven't looked in to that yet.

 

I *think* DPC+ ROMs have to be handled differently on a Harmony cart. Something weird like they must be the ONLY binary. This is just hearsay until more educated users show up. It had something to do with the fact they access the ARM chip.

Link to comment
Share on other sites

I found the info below in this thread: http://www.atariage.com/forums/topic/176401-next-version-of-bb/

 

------

 

"if switchreset then reboot" doesn't work, because the parser treats "reboot" as a label instead of as a command.

 

The following works as an alternative:

  if !switchreset then goto loop
  rem - or just "if !switchreset then loop" if "loop" is near enough or smartbranching is on
  reboot

Link to comment
Share on other sites

I found the info below in this thread: http://www.atariage....-version-of-bb/

 

------

 

"if switchreset then reboot" doesn't work, because the parser treats "reboot" as a label instead of as a command.

 

The following works as an alternative:

if !switchreset then goto loop
rem - or just "if !switchreset then loop" if "loop" is near enough or smartbranching is on
reboot

 

Good to know, though that doesn't remove the core problem. I wasn't actually using the reset switch on the Harmony, anyway--just to test how many scanlines the very first frame had.

 

I made the change you described and it certainly doesn't change anything on the Harmony. It's garbled and nothing viewable comes in either way.

 

I'm pretty shocked that no one noticed that DPC+ doesn't work on real hardware until now. I thought that ByteKnight's game came out on carts.

Link to comment
Share on other sites

I was thinking that was it. I got my harmony cart right when they were released, it's definitely running old firmware.

 

EDIT: To save people some searching, you can download the latest harmony firmware here: http://sourceforge.net/projects/harmonycart/files/

Link to comment
Share on other sites

I can't reflect player1

REFP1 = 8 doesn't do anything.

_NUSIZ1{3} = 1 doesn't work either.

 

NUSIZ2{3} = 1 does reflect player2. (Turning on bit 3, players 2 thru 9)

 

_NUSIZ1 = $15 will set player1 player / missile.

Note: player1 has a special case where NUSIZ must start with an underscore.

  • Like 1
Link to comment
Share on other sites

Yeah, DPC+ support was added after the original firmware, and it worked as theloon suggested. Then there was another update that allowed you to run DPC+ from the menu.

Yes! I got home from work a little while ago and upgraded to the latest firmware, and now EMR II works perfectly. Time to stop everything I'm doing and play that game! :)
  • Like 1
Link to comment
Share on other sites

Worked a little more on Satan's Hollow.

Source code posted, but the Titlescreen asm will be missing.

The score in the titlescreen does not work for me. I pointed it to garbage that I like. It is the color cycling part of the title screen. The score in the DPC+ works, you can see it at the bottom of the titlescreen and in the demo.

Press right to go to the demo.

post-29575-0-87589000-1362528005_thumb.jpg

Satan20130305a.bas

Satan20130305a.bas.bin

Link to comment
Share on other sites

Looks good!

 

Did you use the 1.1 version of the titlescreen kernel? It has special DPC+ fixes in it, including one for the score minikernel. If you used that one, how did it fail?

 

Also, on your problem on player1 reflection - are you using player1 at the top of the screen, or elsewhere?

Link to comment
Share on other sites

Worked a little more on Satan's Hollow.

Source code posted, but the Titlescreen asm will be missing.

The score in the titlescreen does not work for me. I pointed it to garbage that I like. It is the color cycling part of the title screen. The score in the DPC+ works, you can see it at the bottom of the titlescreen and in the demo.

Press right to go to the demo.

Nice work, iesposta. I like what you did with the playfield, it looks great. I'll have to look over your code and see how you did that. I'm still playing around, I'll be posting more demos in the coming weeks too. I'd like to dive in to exactly what you just did, making nice looking static playfields combining playfield pixels with the background. I'm out tomorrow at an IBM technology conference at Busch Stadium in downtown St. Louis, which ends with a tour of the stadium. I'm a huge baseball fan and my life revoles around the St. Louis Cardinals in the summer. I Can't wait for tomorrow and no Atari coding is going to get done. :)
Link to comment
Share on other sites

Worked a little more on Satan's Hollow.

Source code posted, but the Titlescreen asm will be missing.

The score in the titlescreen does not work for me. I pointed it to garbage that I like. It is the color cycling part of the title screen. The score in the DPC+ works, you can see it at the bottom of the titlescreen and in the demo.

Press right to go to the demo.

 

I don't geddit. Why aren't the green winged monsters flickering like mad?

Link to comment
Share on other sites

I got my Harmony Deluxe a couple weeks ago. I thought that it should have come pre-loaded with the latest firmware?

 

Why, then, does the skeleton DPC file that I posted earlier cause overscans on my 2600/Harmony and why do I get immediate overscans in Stella on the first frame as well?

Link to comment
Share on other sites

Looks good!

 

Did you use the 1.1 version of the titlescreen kernel? It has special DPC+ fixes in it, including one for the score minikernel. If you used that one, how did it fail?

 

Also, on your problem on player1 reflection - are you using player1 at the top of the screen, or elsewhere?

 

I will have to go through and make sure only version 1.1 titlescreen kernel is in on my machine.

I have it a bunch of places, maybe an old version is being used?

Where is it officially supposed to reside? Do you have to set something in VbB?

 

Player1 was the top bird, moving right and down. It wouldn't reflect so I swapped it with the "shooter" at the bottom that doesn't need reflected.

Link to comment
Share on other sites

Worked a little more on Satan's Hollow.

Source code posted, but the Titlescreen asm will be missing.

The score in the titlescreen does not work for me. I pointed it to garbage that I like. It is the color cycling part of the title screen. The score in the DPC+ works, you can see it at the bottom of the titlescreen and in the demo.

Press right to go to the demo.

I don't know what the heck is going on, but I can't compile/run your code. I just get a blank screen and Stella flickers the scanlines, thinking it's trying to render PAL (even if I enable your rem'd-out "set tv ntsc" code).

 

I'm thinking that my batariBasic version is broken. Again. But Atarius gave me his which seemed to work great for everything else.

 

... Sigh. Here we go again trying to track down what magical combination of assorted updates, patches, and random files will give me something that doesn't crap all over. There for-serious needs to be a stickied thread denoting the absolute standard files to be downloaded and used, because I'm sick as hell of trying to find compatible versions for every time I make a new project.

 

(Sorry for the tone, i'm more than a bit frustrated at this whole DPC+ ordeal, if my posts in this thread haven't made that crystal clear)

Edited by Cybearg
Link to comment
Share on other sites

 

 

I don't geddit. Why aren't the green winged monsters flickering like mad?

player0 never flickers.

player0 and player1 (or any virtual player) will not flicker on the same horizontal across. Here they are doubled wide copy with NUSIZ0 and _NUSIZ1.

player1 thru player9 are virtual, can be doubled (like here) or tripled, and will only flicker if they are less than 7 scan lines vertical.

 

I wanted to try a trick to see if I could get the flying in a circle without flicker, 2 wide copies, and it works. It is just using player0 and player1, 2, & 3. Player1 & player2 stay far enough away from each other that they don't flicker. Player3 is just sitting there. God is player9, fire pit is quad size player8. The bridge sections are playfield holes showing a white background.

The next hard part will be bullets since there are 2 wide copies, there are 2 wide missiles.

Link to comment
Share on other sites

I'm guessing Al has a stockpile of harmony carts and doesn't keep up with updating his stock. It's pretty easy to update it yourself, though. No good answer on the problem with too many scan lines, though.

So where do I get the latest firmware? You linked to where I can get the Harmony Porgrammin Tool, but where do I get the eeloader.bin and hbios.bin files that update the bios?

 

EDIT: Apparently the files are included in the Harmony Programming Tool, and the latest is the 2010 1.0.5 firmware, which I've installed.

 

I see no change, however--Atarius' move example just gives me a garbled explosion on the screen and my own stuff flickers as it did before.

Edited by Cybearg
Link to comment
Share on other sites

I will have to go through and make sure only version 1.1 titlescreen kernel is in on my machine.

I have it a bunch of places, maybe an old version is being used?

Where is it officially supposed to reside? Do you have to set something in VbB?

 

It's supposed to just be dropped into your project directory. No need to set anything in vbb.

 

Player1 was the top bird, moving right and down. It wouldn't reflect so I swapped it with the "shooter" at the bottom that doesn't need reflected.

 

Ok. I was just curious about some of the conditions it happens under, to see if I could find anything wrong with the 6507 part of the kernel. I'll check it out later, but geat that you were able to work around it.

Link to comment
Share on other sites

I got my Harmony Deluxe a couple weeks ago. I thought that it should have come pre-loaded with the latest firmware?

Yes it should, and I bet it does. Download the latest release candidate of Space Rocks and try it out. If you get anything at all, then your Harmony has a BIOS that can run DPC+.

 

Space Rocks is also one of the greatest games ever created for the 2600 IMHO, so don't be mad if can't pull yourself away from the TV for a few hours. :)

 

Why, then, does the skeleton DPC file that I posted earlier cause overscans on my 2600/Harmony and why do I get immediate overscans in Stella on the first frame as well?

By "overscans" I assume you mean taking too many scanlines. I looked at your barebones demo and it is fine. The reason the first frame takes too long is that the timer hasn't been initialized yet. Sometimes when I write a game I initialize the timer once after the clear loop and before the first VSYNC to avoid a long delay. It wastes a few bytes, but gives a little better feel. I don't think you can do that in BB unless you hack the startup file.

 

Anyhow, your barebones .bin ran, except everything was colored black. If you hit ALT and comma in Stella you can see the screen through the fixed color debugging.

Link to comment
Share on other sites

player0 never flickers.

player0 and player1 (or any virtual player) will not flicker on the same horizontal across. Here they are doubled wide copy with NUSIZ0 and _NUSIZ1.

player1 thru player9 are virtual, can be doubled (like here) or tripled, and will only flicker if they are less than 7 scan lines vertical.

 

I wanted to try a trick to see if I could get the flying in a circle without flicker, 2 wide copies, and it works. It is just using player0 and player1, 2, & 3. Player1 & player2 stay far enough away from each other that they don't flicker. Player3 is just sitting there. God is player9, fire pit is quad size player8. The bridge sections are playfield holes showing a white background.

The next hard part will be bullets since there are 2 wide copies, there are 2 wide missiles.

 

So, in other words the same limitations that applied to the traditional multi sprite kernel apply here too. It's just that YOU'RE SO DAMNED GOOD you managed the sprites to appear rock solid. :)

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...