EricBall
-
Content Count
2,362 -
Joined
-
Last visited
Blog Comments posted by EricBall
-
-
Ah, cool! So you agree with me in most part, but you're way more efficient than me

Heh, I thought you had some things wrong, so I did it from scratch. But now I see that yours was right. (Note: I've made some edits so console reflects what it was set to in the routine.) The efficiency is just habit.
- It should be 254 for the ANDs no?
Not necessary since it's a left shift.
- I'm using unsigned temporary variables for the right shifts, since I thought C would do them signed otherwise?
Not important since you're masking off the LSB.
-
for ( x = 8; x != 0; x-- ) { console = ( levelSeed >> 5 ) & 1; levelSeed = (( levelSeed << 1 ) & 255 ) | ( mapSeed >> 7 ) & 1 ); mapSeed = (( mapSeed << 1 ) & 255 ) | ( console ^ ( mapSeed & 1 )); } -
My concern is I have the big-screen HDTV, but it predates HDMI by a few years. I have no incentive to buy into HDDVD or BluRay if the picture quality is going to be downgraded on the component video connection.
Currently, all BluRay & HD-DVD releases have image constraint disabled so will output full HD resolution over component cables. Whether that remains true for the future (in particular Disney hasn't released any of their classic animation or Pixar titles) remains to be seen. Unfortunately, whether one format or the other wins or dual-format becomes the rule, I don't see HDCP & image constraint going away.
-
'Tis madness. People willing to pay thousands of dollars over the sticker price rather than wait until after Christmas. This ain't no limitted edition folks. Sony will make as many as they can sell, even if they are losing hundreds of dollars on each unit.
And for what? A games console with a handful of exclusive titles for hardcore mature gamers. Yeah it has a BluRay drive, but that's almost a double-edge sword. I, for one, wouldn't want to lock into one side of this format war. I also wonder whether everyone buying one has the big screen HDTV needed to really show off the graphics.
Me? I'm looking at the Wii seeing as I have a 6 year old son. But not for Christmas this year. Maybe next year when prices have fallen and I can get Zelda & Mario for half price. And although IGN seems positive on the Wii-mote, I'm wondering whether motion sensing will stand the test of time. The next rumble?
-
Have you had any problems playing those old videotapes? I've been digitizing my wife's 100+ pre-recorded casette collection and I've come across several which squeak or are sticky and won't play properly. Apparently this is a known issue - basically the adhesive which is used to stick the magnetic particles to the actual tape can go bad or leak through. Some years, brands & formulations are worse than others, but no magnetic tape is safe - typical lifespan is around 10 years.
-
Ahh, if you already have a backup & network, then ignore my suggestion.
-
Go out and buy an external IDE to USB2 hard drive enclosure. Take the 40GB drive out of the old machine, put it in the enclosure, then use EZBack-It-Up to copy it to your new laptop. Now that won't install the apps or move over your settings, but it will grab almost everything.
-
Lady dragons are meaner & craftier. Like lionesses. The guys laze around in the sun all day combing their manes, while the girls are the hunters.
-
Sometimes ugly code is unavoidable. What you aim for is code that is as efficient (bytes & cycles) as possible.
It's also usefull to sometimes step back and take a look at the problem from a higher level and see if there are other ways of accomplishing the same thing.
For instance, with Leprechaun I originally copied the player sprites into a SC-RAM bitmap, but I discovered that was taking up far too many cycles. With some help a better BLIT routine reduced the time required. But the final solution was to copy the pointers instead and rework the kernel to use the pointers instead of a bitmap.
(I don't know how many times I've reworked the kernel for Leprechaun. More than I care to count.)
-
Yeah, branches are a bugger to handle. But I think it still may be possible with heuristics. The first thing to realize is the 6502 always fetches the next address following an opcode. Thus, if the PC has incremented, then we can assume the previous data was the opcode.
Not taken: 1000 branch 1001 offset 1002 opcode 1003 lsb Taken : 1000 branch 1001 offset 1002 ignored 1010 opcode 1011 lsb Taken over page : 10F0 branch 10F1 offset 10F2 ignored 1010 ignored 1110 opcode 1111 lsb
So the logic simply has to wait until the address bus starts incrementing, then take the previous data bus result and use it as the opcode. It also helps that during all those ignored reads A[13..15] remain the same.
Limitations:
1. Indexed addressing (i.e. ABS,X or (ZP),Y) over page boundaries won't work because it's impossible to predict whether the MSB comes from the code or data pointer.
2. Branches which skip the next 1 byte instruction since a taken branch would look the same as untaken (for the next two cycles at least). It might be possible to extend out the logic to handle everything but the 1 byte stack instructions. (And maybe those too since the MSB will be ignored anyway.)
The value of such an "un-bankswitching" is it would allow data in bank bank to be directly accessible by code running in any bank. 4A50 allows for read/modify/write to cartridge RAM, why not also do away with the 4K cartridge address space restriction as well?
Of course, talk & thoughts are cheap. But sometimes a "think" exercise can still produce things of value.
-
My idea is for truely seamless bankswitching. So you would have eight 4K banks located at $1xxx, $3xxx etc. No hotspots to switch between banks, so not just JSR, but also JMP and the ability to load data stored in a different bank than the code.
Though I'd forgotten about FE's automated JSR/RTS bankswitching.
-
Thanks for the Skelton+ plug.
The sideways nature of Merlin's Walls is simply because of the potential and limitations of the 2600's graphics. It would be impossible to create the same graphics "right way up" on the 2600. That's not to say you couldn't reproduce the gameplay though.
-
Actually, if $xE and $xF are truely unused, there's no reason those addresses couldn't be linked to queues, even on a static basis. That's 16 zero page read-only addresses. Plenty for player, playfield and even audio.
-
Hmm... so you're suggesting
LDA GRP0 ; read from linked queue
STA GRP0 ; write to TIA
That might work. It depends on whether the TIA drives the bus on the LDA. IIRC the TIA only drives the upper 2 bits even on the defined addresses. So the question becomes what it does for addresses outside the defined read addresses.
Unfortunately, looking at page 2 of the schematics, it appears the read address decoder is only 4 bits wide. So the read registers mirror at all addresses in the TIA address space. $xE and $xF aren't used so you might be able to use a queue to drive PF1/PF2 updates.
The emu guys might be able to confirm or deny this behaviour.
I wouldn't say stupid, just not familiar with the hardware side of things.
-
Good idea, but not really possible. Although you could have a queue drive the data bus when it sees the appropriate TIA address, the 6502 would also be driving the bus. i.e. on STA GRP0, both the 6502 and Chimera would be trying to change the data bus. For LDA GRP0 the 6502 wouldn't drive the bus, but the TIA wouldn't latch the data.
-
lda FractionalPosition clc adc FractionalVelocity sta FractionalPosition lda IntegerPosition adc IntegerVelocity sta IntegerPosition
-
Based on http://www.pong-story.com/coleco_arcade.htm and http://www.pong-story.com/gi.htm I'd say it's closer to a programmable system than something like the Magnavox Odyssey where the carts were just wires activating capabilities which already existed in the console. The trick with the Telestar Arcade is the cartridge contained both the ROM and the processor.
Unfortunately, I can't find a cartridge pinout nor a description of the console internals, so it's a little tough to determine how complex the cartridge could get. But I'd guess that the 36 pads on the cartridge PCB are I/O ports, not address/data busses, and connected directly to the various controllers along with resistor DACs for generating video and sound. The fact all four cartridges used the same microcontroller is coincidental and more a reflection of what was cheaply available at the time. I'm sure with something like the Parallax Propeller you could create almost any B&W game playable with the built-in controllers.
-
1
-
-
Both Mario Sunshine and Mario Golf (at least) include Yoshi.
-
Before you go out and buy an HTPC give some thought to what you're going to use it for; then research what software will do that for you; then find the hardware it wants.
HTPC are also typically cursed by fan noise unless you choose your HW with low power in mind. (Of course, low power also typically means lower performance, which may then restrict what the HW is capable of.)
You may also discover that if you really want a PVR that it'll be cheaper to buy a TiVo. And although TiVo has a monthly/annual subscription cost, there are very few HTPC/PVR apps which come close to it for ease of use, polish & search/auto-record capabilities. (I have a Sony branded Series 1 TiVo which I've upgraded with a Samsung 300GB drive.)
TiVo models:
Series 1 & 2 - standalone models with both coax (analog cable only) & A/V inputs (for connecting a set-top box). Series 2 software is slightly more advanced than the Series 1 (grouping episodes of the same show together) it also has a USB port which can be used to connect to a home network for sharing shows between TiVos and other tricks.
DirecTV TiVo - DirecTV receiver with built in TiVo. Can only record DirecTV, but can record two shows at once. An HD model was also available. Long term support unknown as DirecTV changes codecs.
Series 2 DVD (not TiVo branded) - Series 2 variation with the ability to copy shows to DVD-R
Series 2 DT - standalone with two coax (but no A/V) inputs and two tuners so it can record two shows at once
Series 3 - standalone with dual NTSC and ATSC tuners, two coax inputs, and two CableCard slots. Can record digital and analog TV & HDTV - two shows at once, from both antenna and cable.
-
Ooops, forgot to ftp the base image in binary.
-
Geez what a hassle.
Yeah, but it's a one time thing. Once they're gone & your're back to normal you don't have to do anything more except offer sympathy to others going through the same thing.
-
Clove oil helps. But if you get major pains, go back and have them take a look. I had a pin-hole dry socket and couldn't open my mouth more than half an inch.
-
Level Editor updated. (I update the "version" and add a link at the bottom back to the blog.)
-
If the price of an 8K cart goes down, will there be any remaining niche for 4K homebrews, or will they go the way of 2K games?
Probably not. Although bankswitching gives more space it also significantly increases the complexity (versus the simple 2K/4K addressing space). There's also the challenge of squeezing everything into the more limitted memory space, just like there's interest in the 1K compos. 2K was more a cost & complexity issue. There's no real reason to stop at 2K for homebrews.
What will be interesting is whether any of the alternate hotspot bankswitching methods catch on. The traditional 1FFx hotspots made sense because they could be included in a mask ROM for little cost, but it means a PLD needs to be connected to all 13 address lines. (The NES homebrewers are worse, often requiring complex mappers instead of something which could be handled with a PLD.)
But I'm really excited about 4A50's magic writes - real RAM access on the 2600. Reads & writes from the same address & full read/modify/write capabilities.

Postponed Xmas Lights
in atari2600land's Blog
A blog by atari2600land
Posted
I dunno. A good sized pipe organ in a cathedral has a sound & power to it which can't be duplicated.
And although a Theramin concert would be interesting, I think I'd go nuts after 5 minutes of listening to it non-stop.