-
Content Count
16,912 -
Joined
-
Last visited
-
Days Won
10
Posts posted by SpiceWare
-
-
18 minutes ago, KevKelley said:How would one go about less total scanlines or increasing/decreasing the Hz?
Don't change the Hz, the further you get from spec the more likely the picture will become unstable on a real display. Do some research on fractional or subpixel movement which lets you move an object 0.7, 1, 1.2, etc. pixels per frame. Example would be this topic:
-
1
-
-
2 hours ago, pvmpkin said:I think I found it. It was a single missing # needed before doing the SetHPos routine — so silly !
Awesome! I encountered this with Medieval Mayhem about a year after it was released!
I forgot that @batari wrote a tool that analyzes the list generated by dasm to locate code that appears to be missing a #. However, the link to the source is broken. Hopefully he still has it utility and can fix the blog entry. Might make sense to add it to Club DASM as well.
-
2
-
-
-
most likely you left out a # on an immediate mode instruction, it's a very common bug that causes problems like you're seeing. Check the following topics for examples of this, as well as how to make those problems show up in Stella.
from reply 10 onward http://atariage.com/forums/topic/258401-trex-aka-first-attempt-at-6507
from 34 onward http://atariage.com/forums/topic/269701-nyan-cat-game-work-in-progress/-
2
-
-
By default the current directory is NOT part of the search path in Linux for executables. To tell it to run something in the current directory you need to use ./ before the program, as in:
./dasm
-
1
-
-
11 minutes ago, stephena said:Stampede is acting the same way in Stella as it does on a Harmony Cart.
Confirmed with an original cartridge, Stampede just freezes when the last stray gets past you.
-
On 4/30/2020 at 7:19 PM, ZeroPage Homebrew said:I take screenshots for mock cartridge labels for the ZPH show and have been noticing for a while that the screenshots weren't pixel perfect any more.
Maybe this will work for you - hit TAB to bring up Options:
Click Snapshots...:
Check Ignore Scaling (1x mode). That results in 320x snapshots (height depends on game, NTSC will be shorter than PAL):
If you need a larger image then use a graphic program to resize it to 640x or 960x, just be sure to do so without interpolation:
If you resize using interpolation you end up with those fuzzy pixels:
Closeup without interpolation:
Closeup with interpolation:
-
3
-
-
We're looking to add Kaboom! Deluxe! to the Hack section of the AtariAge Store. We'll need a label, anybody up for that?
-
4
-
1
-
-
On 4/17/2020 at 9:14 AM, SpiceWare said:Will be interesting to see if I manage to finally overproduce for a month or not.
Overproduced by quite a bit!
Solar produced 134 kWh more than I used, though efficiency loss of charging/discharging the PowerWall drops that down to 113 kWh. After thinking about that, I decided to increase the backup reserve on my PowerWall to 70% to reduce the loss.
Of course my billing cycle is the 16th to the 15th, so whether or not I end up with a credit on my next bill remains to be seen.
-
Thanks!
There's a Q & A (Questions and Answers) in the comments below each entry of the Collect Tutorial. Step 4 - 2 Line Kernel and Step 5 - automate Vertical Delay have the most comments, so the 2 Line Kernel is probably one of the most difficult parts of 2600 development for people to understand.Within the Q & A for Step 4 you'll find a more detailed explanation of DoDraw, additional information on how the .byte $2C trick works, and so on.
If you still have questions after reading thru the Q & A then post your questions there - it's better if they're together with the tutorial instead of scattered around the AtariAge forums.
-
2
-
-
On 4/23/2020 at 1:56 PM, Albert said:Disappointing that it seems to fail around 10% of the time. I wonder if that's typical.
I've been pondering on this - maybe it's related to only having 1 Powerwall, which supports everything except AC and car charging. Might be that a power loss when those are active results in #3.
-
There's a bit of variance with the clock used in Pitfall 2, so different cartridges will sound different. As of 6.1 Stella has an option for you to set the DPC clock, from the change log:
QuoteMarch 22, 2020
Stella release 6.1 for Linux, macOS and Windows is now available.
...
- Added option to change pitch of Pitfall II music.
This was implemented in issue 502, which includes a reference to this mappers doc:
QuoteThere's been some discussion about the pitch of the music generated by this chip,
and how different carts will play the music at different pitches. Turns out, on the
cart, the frequency is determined by a resistor (560K ohms) and a capacitor integrated
onto the die of the DPC chip itself. The resistor is a 5% tolerance part, and the
process variations of the DPC itself will control the frequency of the music produced
by it.If you touch the resistor on the cartridge board, the music pitch will drastically
change, almost like you were playing it on a theremin! Lowering the resistance makes
the music pitch increase, increasing the resistance makes the pitch lower.It's extremely high impedance so body effects of you touching the pin makes it
vary wildly.Thus, I say there's really no "one true" pitch for the music. The patent, however,
says that the frequency of this oscillator is 42KHz in the "preferred embodiment".
The patent says that it can range from 15KHz to 80KHz depending on the application
and the particular design of the sound generator. I chose 21KHz (half their preferred
value) and it sounds fairly close to my actual cartridge.The Stella implementation is defaulting to 20,000 which matches what you've come up with.
-
1
-
You might want to take a look at how Pitfall did it. @Thomas Jentzsch's disassembly of it can be found at minidig.
; Scene generation: ; The 255 scenes are randomly generated through a "bidirecional" LFSR. This ; means, that the process of generating the next random number is reversible, ; which is necessary to allow traveling though the jungle in both directions. ; The random number defines the scene with the following bits: ; - 0..2: type of object(s) on the ground (logs, fire, cobra, treasure etc.) ; - 3..5: type of scene (holes, pits, crocdiles, treasures etc.) ; - 6..7: type of the tree pattern ; - 7 : position of the wall (left or right)
-
1
-
1
-
-
4 hours ago, Lillapojkenpåön said:Related DPC+ question, how would one load data from tables in different banks with "(Indirect),Y" ?
You don't. If you need data from another bank you would need to call a subroutine in the other bank.
-
1
-
-
This looks like a game properties issue, brought up on FaceBook. Guy's trying to play Im Schutz der Drachen but the joystick doesn't work.
Stella IDs it as Dragon Defender, and has it configured for MindLink:If I switch it to Joystick I can control the dragon. I checked DefProps.hxx and found 3 versions of Dragon Defender in there, but only this specific MD5 is configured for MindLink.
-
-
- $73 for May, was $130 last year (solar only active for half this billing cycle)
- $35 for June, was $180 last year
- $60 for July, was $235 last year
- $10 for August, was $302 last year (was out of town 10 days with AC set to 90°F)
- $53 for September, was $297 last year
- $42 for October, was $235 last year
- $18 for November, was $108 last year
- $28 for December, was $99 last year
- $12 for January, was $103 last year
- $25 for February, was $93 last year
- $1 for March, was $93 last year
- $7 for April, was $112 last year
$364 to date, was $1987 last yearSomething to also consider is that $364 includes car charging for local driving. Charging costs for road trips was $185 - and that included 2 trips to Wisconsin.
April
-
I've encounter 3 different scenarios with power failures:
- cutover so fast I don't even notice
- cutover that flickers the lights. Clocks keep their time, but non-UPS computers might shut down
- slow cutover that causes lights to briefly cut out, clocks to lose time, and non-UPS computers to shut down
I suspect the difference is due to what happened with the power. My guess would be #1 occurs with a clean cutoff, #2 with a power surge, and #3 with a brownout.
As such, I've kept my computers on UPSs.
-
1
-
You can change the color registers at any time during the scanline. You can use Stella's Fixed Debug Color mode to get an idea of what's going on. To toggle it use COMMAND-PERIOD on a Mac, or ALT-PERIOD on Linux or Windows (if you're running an older versions of Stella use COMMA instead of PERIOD).
An example would be Congo Bongo. In the area I drew the red box in:
The brown ground, the green cliffside, and the far yellow cliffside are all drawn using the playfield, which is drawn in purple when using debug color mode.
These are the colors of everything - note there are 3 PF registers, which are used twice on each scanline. Each PF register has a slightly different shade of purple.
-
1
-
-
You left out the 3 cycles for sta RESP0 - (15*2 + 3) * 3 = 99.
As for the rest of the difference I believe it's caused by a propagation delay within TIA, but don't know specifics.I do know the results are slightly different for the ball and missiles, I cover that in Step 11 - add the ball object of my tutorial:
QuoteI then modified RandomLocation to set all objects to the same location for comparision:
RandomLocation: ... ; for alignment test, set to (100, 100) lda #100 sta ObjectX,x sta ObjectY,x rtsThis revealed a minor quirk with TIA - namely that when objects are set to the same X position, missiles and the ball end up 1 pixel to the left of where a player ends up (player1 is the green square and it's directly on top of the red ball).
This is a known issue and the solution is to increase the X value by 1 to compensate.
-
DPC+ started as an expansion of DPC - namely a larger ROM size, improved music, and replacing the unused DPC features with others. The ability to call custom ARM code was added late in the design, its use is not required though most DPC+ games do utilize it.
I'd recommend to start with the DPC+ Demo I posted, it does not require custom ARM code support. Be sure to check out the comments in the DPCplus.h file, such as this:
;---------------------------------------- ; Random Numbers ;---------------------------------------- ; DPC+ provides a 32 bit LFSR (Linear feedback shift register) ; which is used as a random number generator. Each individual byte of the ; random number will return values from 0-255. The random numbers will follow ; an exact sequence, so it's best to clock them at least once per frame even if ; you don't need the value (this allows the amount of time it takes the user to ; start the game to select a random starting point in the sequence) ;---------------------------------------- RANDOM0NEXT DS 1 ; $00 clock next 32 bit number and returns byte 0 RANDOM0PRIOR DS 1 ; $01 clock prior 32 bit number and returns byte 0 RANDOM1 DS 1 ; $02 returns byte 1 of random number w/out clock RANDOM2 DS 1 ; $03 returns byte 2 of random number w/out clock RANDOM3 DS 1 ; $04 returns byte 3 of random number w/out clock
You will need to refer to Stella source files CartDPCplus.cxx and CartDPCplus.hxx for some of the details, such as:
void CartridgeDPCPlus::setInitialState() { ... // Initialize the DPC's random number generator register (must be non-zero) myRandomNumber = 0x2B435044; // "DPC+" ... } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - inline void CartridgeDPCPlus::clockRandomNumberGenerator() { // Update random number generator (32-bit LFSR) myRandomNumber = ((myRandomNumber & (1<<10)) ? 0x10adab1e: 0x00) ^ ((myRandomNumber >> 11) | (myRandomNumber << 21)); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - inline void CartridgeDPCPlus::priorClockRandomNumberGenerator() { // Update random number generator (32-bit LFSR, reversed) myRandomNumber = ((myRandomNumber & (1U<<31)) ? ((0x10adab1e^myRandomNumber) << 11) | ((0x10adab1e^myRandomNumber) >> 21) : (myRandomNumber << 11) | (myRandomNumber >> 21)); }
The 0x10adab1e = LOADABLE, and is the signature in the ROM that the Harmony uses to detect a custom cartridge bankswitch driver like DPC+ and CDFJ.
I think there's a finished game or two that used DPC+ without custom ARM code, but don't recall which off the top of my head. @iesposta might know.
-
2
-
-
Here's the DPC patent. Note that table 1 shows all the registers at addresses $000-$07F, but they're located within the cartridge so are actually at $1000-$107F and the mirrors at $3000-$307F, $5000-$507F, ..., $F000-$F07F.
DPC contains a number of features that were not used in Pitfall 2 - ways to read data fetchers with nybbles swapped, bytes reversed, rotated, etc. Since nothing used them they haven't been emulated.
Some AA topics that could help:
- How exactly does the Pitfall 2 DPC work? - specifically replies by @batari
- DPC Music demo by @cd-w
- DPC Sprite Demo by me
-
2
-
Tesla released an update that lets you better control how the car charges during a power outage:
While reading up on it in I spotted a section on how to monitor the system during a power outage that includes a link to Connecting to Tesla Gateway. After following those instructions, to connect your computer/mobile device to the Gateway's WiFI, you can monitor the system via your web browser.
-
3 minutes ago, Yoruk said:@SpiceWar : these screens are amazing 😲 ! It's incredible to think that the 2600 can output this. Thanks for sharing them !
You're welcome! Part 7 - Menu of the CDFJ tutorial goes into detail on how it works, just need to scroll down to the section titled 48 pixel 2 color kernel to see it.
CDFJ takes advantage of the ARM chip, but it's not required to create this - @Omegamatrix posted a demo here using a stock 4K ROM:
-
1
-

Do PAL and NTSC 2600's run at different speeds?
in Atari 2600
Posted
To get 120 Hz you would have to cut the total scanlines in half to 131. I doubt any display will handle that very well. You can do some experiments using Jitter.bin from this blog entry, which should also answer your Jittery Recover question.
Jitter's default screen size is 262 with 128 rainbow lines being drawn. Use joystick to change rainbow line count, then hold fire for it to take affect.
My C=1084S can handle a variety of screen sizes, I frequently use it for PAL games. It can handle down to 51 just fine (185 scanlines @ 85.0 Hz):
At 50 and 49 the 1084S becomes unstable. From 48 down to 1 it draws the screen twice.