Jump to content
IGNORED

Next version of bB


batari

Recommended Posts

@RevEng: Thanks for posting gotchas and workarounds! Tempted to get my feet wet again (in bB programming). Definitely helps to know what the beta is capable and not capable of.

 

No problem. I'm also trying to make it easier for batari to squash the bugs, so it's self-interest too. :)

 

One more issue for the running list...

 

  • setting COLUPF or pfcolors doesn't work. It looks like this is getting fetched from DPC in the kernel, but maybe the setup isn't working? (workaround by enjoying the color yellow)
  • collision()s never clear, because the DPC kernel isn't hitting CXCLR up front like the other kernels. (workaround by adding a "CXCLR=1" prior to your drawscreen, or after your collision detections.)
  • You can't call drawscreen from another bank when using the DPC kernel, due to the DPC setup using a plain jsr. (workaround by creating a drawscreen wrapper function in bank1, and use "gosub drawwrapper bank1" instead of a drawscreen)
  • player0x=0, ballx=0, etc. all position the objects on the right-hand side of the screen. (workaround... no trivial one. All coordinate comparisons will need to take this into account, and then updated when this bug is fixed.)

Link to comment
Share on other sites

player0x=0, ballx=0, etc. all position the objects on the right-hand side of the screen. (workaround... no trivial one. All coordinate comparisons will need to take this into account, and then updated when this bug is fixed.)

I'm torn on this one. The horizontal positioning routine uses cycle 73/74 HMOVEs which means the players will appear 8 pixels to the left of where they do in other kernels. A fix is to adjust all X coordinates in a big loop before the kernel and unadjust them after the kernel (and indeed the multisprite kernel does this.) Or, just say this is an artifact of the DPC+ kernel and leave it alone.
Link to comment
Share on other sites

Does it need to? In "Chun-Li" the initial positioning uses the traditional sprite positioning with the HMOVE after WSYNC while all mid-screen repositioning uses cycle 73/74 HMOVES. It's configured to use the same X values for both routines and no adjustments are being done to X.

Link to comment
Share on other sites

I think I had a reason, but it could be simply because one of the multiplexed sprites was positioned offscreen while the others were onscreen and they could also share some data tables. Maybe just adjusting that one sprite would be enough, coupled with a bit of data replicating.

Link to comment
Share on other sites

You mean keyboard controllers? Then probably not. There are some special challenges to reading them. They must be read one row at a time, and you need to delay for 480 cycles before reading each row. The timing is a real pain because it's short enough and requires enough accuracy such that it would be hard to put just enough useful work in between rows since bB abstracts the timing away from the programmer. Also, you can't just delay for the entire time as together the delays are long enough to take up nearly all of the time between frames so very little time would be available for code.

Link to comment
Share on other sites

I also wanted to add a note about backups. (partially Atari related)

My primary reason for backing up is personal digital photos. I have taken about 10,000 over the years, mainly my family. I CANNOT lose them.

I used to use my old pc as a backup site. I would use robocopy scripts to make a file structure mirror my main PC. I did not have it automatically run. To me that is useless, say you delete/alter a file, then it gets backed up. You lose the previous version without even knowing it, even backed up. (maybe not if using incrementals and you can select when you want the restored file from...)

I recently got a 2TB external Seagate for $89 at Wal-mart! I like that idea better, then if there is a fire or other reason for quick snatch (FBI, Family member with a sledge hammer...) you can just grab the 2tb and run.

 

Also, to FORCE myself to backup. When I import pictures, I import to the backup drive, not my PC. Then I use a script to copy to my PC for viewing/editing. So I have to have them in 2 places before I even look at them.

 

Lastly, Microsoft Mesh! You need Vista or 7, and install the Live software. You get 5GB of online storage, and it automatically updates. I keep current year photos there, as well as my Atari folder (lists, scans, code in progress, database...) It will even keep the data synched between multiple computers, and you can grant other Live members access to specific folders. That way I don't have to worry about my wife asking "Can you send me the pictures from the kids birthday, she can get them herself from anywhere.

Link to comment
Share on other sites

You mean keyboard controllers? Then probably not. There are some special challenges to reading them. They must be read one row at a time, and you need to delay for 480 cycles before reading each row. The timing is a real pain because it's short enough and requires enough accuracy such that it would be hard to put just enough useful work in between rows since bB abstracts the timing away from the programmer. Also, you can't just delay for the entire time as together the delays are long enough to take up nearly all of the time between frames so very little time would be available for code.

 

Oh, I didn't know things were that complicating when it comes to reading the keyboard controllers. But it was just more of a curiosity for me, keep rocking the new batari :thumbsup:

Link to comment
Share on other sites

Can you only have one C-style multiline comment block with /* and */? Seems like if I have more than one it won't compile.

 

-Jeff

Bugs are coming out already :)

 

Looks like multiline comments currently cannot precede a label. If they precede anything else, they seem to work fine.

 

EDIT: Found another workaround - start the /* at the beginning of the line.

 

I've already fixed it on my end. Keep the bug reports coming.

Edited by batari
Link to comment
Share on other sites

...Keep the bug reports coming.

Ok, you asked for it. :D

 

The first byte of PF data on the screen isn't aligned with the other bytes. I took the sample program and changed the PF data to horizontal lines to illustrate...

 

post-23476-129943458035_thumb.png

Fixed. Any more bugs?

Link to comment
Share on other sites

Silly question, but I just want to verify that my copy of Stella is working right. I took the version in the link about the new bB and replaced the files I already had. Anyway, when I run the sample program msdpc.bin here's what it looks like:

post-12524-129944328249_thumb.png

 

Also, if I move my mouse across the playfield it moves the number 1 and messes with the foreground. I don't know if it's just me or not.

Edited by jbs30000
Link to comment
Share on other sites

Silly question, but I just want to verify that my copy of Stella is working right. I took the version in the link about the new bB and replaced the files I already had. Anyway, when I run the sample program msdpc.bin here's what it looks like:

post-12524-129944328249_thumb.png

 

Also, if I move my mouse across the playfield it moves the number 1 and messes with the foreground. I don't know if it's just me or not.

For some reason, the mouse in Stella moves both joysticks at the same time. Either use the keyboard, or change the settings in Stella to use a single joystick.

 

To change the number you want to move, press the left joystick button.

Link to comment
Share on other sites

For some reason, the mouse in Stella moves both joysticks at the same time. Either use the keyboard, or change the settings in Stella to use a single joystick.

Yeah, that's annoying. You can fix that by unchecking the bottom option on this screen. TAB -> INPUT SETTINGS -> DEVICES & PORTS

post-3056-129945168288_thumb.png

Edited by SpiceWare
Link to comment
Share on other sites

Here is a sample music file using sdata. Compiles using previous releases, but not the current 1.1 beta. I get this error:

 

DASM V2.20.07, Macro Assembler (C)1988-2003
music_little_lamb.bas.asm (1920): error: Illegal Addressing mode 'sta '.
--> _begin f500              	
music_little_lamb.bas.asm (1923): error: Syntax Error ''.
music_little_lamb.bas.asm (1923): error: Illegal Addressing mode 'sta +1'.
Errors were encountered during assembly.

 

music_little_lamb.bas

 

-Jeff

Link to comment
Share on other sites

Here is a sample music file using sdata. Compiles using previous releases, but not the current 1.1 beta. I get this error:

 

DASM V2.20.07, Macro Assembler (C)1988-2003
music_little_lamb.bas.asm (1920): error: Illegal Addressing mode 'sta '.
--> _begin f500              	
music_little_lamb.bas.asm (1923): error: Syntax Error ''.
music_little_lamb.bas.asm (1923): error: Illegal Addressing mode 'sta +1'.
Errors were encountered during assembly.

 

music_little_lamb.bas

 

-Jeff

This was an attempt to fix an outstanding bug in sdata (others reported different issues with it) and in doing so I added another bug. Anyway, it's fixed now.
  • Like 1
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...