Jump to content

EricBall

Members
  • Content Count

    2,362
  • Joined

  • Last visited

Blog Comments posted by EricBall


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


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


  3. '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?


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


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


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


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


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


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

    • Like 1

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


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

×
×
  • Create New...