Jump to content

EricBall

Members
  • Content Count

    2,362
  • Joined

  • Last visited

Everything posted by EricBall

  1. The front matter is certainly different between the March 84 and the October 84 documents, but there's a lot of common stuff. However, I haven't looked hard enough to confirm that everything in the March 84 document is in the October 84 document. Huh, it looks like there was a planned 68K bus version. For arcade games maybe?
  2. Okay, I've done some work on it an have tested out my algorithm on one image. Each column is processed separately (i.e. assume sky is at top, water below) and image is pre-processed to greyscale (luma only). A "target window" is also defined to help avoid false positives. 1. Use a 16 tap FIR edge filter (f[0..7]=1, f[8..15]=-1) to identify (via max value) the 16 pixels containing the horizon. 2. Use a 15 tap FIR low pass AC filter to isolate the zero crossing between two pixels. 3. Use linear interpolation between the filter output for those two pixels to determine the sub-pixel value for the horizon. Hmm... I wonder if there would be any value in passing the LPF over the resulting values to smooth them out.
  3. What does it say when this blog entry is on the first page of a Google search for "horizon detection" ... done later in the day?
  4. One side effect of buying a new camera (Panasonic FZ40 to replace a Canon S3) is I've rekindled my interest in panoramic photos. Using Hugin (free software) a series of overlapping photos can be assembled into one giant image. Doing this requires identifying "control points" which either link to photos together (i.e. this white dot on photo 1 is the same as this white dot on photo 2) or identify horizontal, vertical or straight lines. With enough control points, the software can determine the direction the camera was pointing, correct pitch and roll, and even adjust for less than perfect camera lenses or handheld photos. Some of the photos I want to assemble look out at the ocean horizon. So I want to be able to add control points which identify the horizon as a straight and horizontal line across multiple photos. Thus I want to make those control points as accurate as possible. Right now I'm doing some research into edge/horizon detection, and playing around with some of my own ideas. What I want to be able to do is to build a utility which will load a JPEG and identify the horizon Y coordinates across the entire photo to sub-pixel accuracy.
  5. EricBall

    Fear of the Dark

    I think you're selling yourself short. Learning something new takes time and dedication, but one of the joys of homebrew is you can take as much time as you need and you are doing something you want to do. So don't start with ASM. Many people have done some amazing games with batari Basic. Work through the tutorials and documentation. Read through other people's code, make changes and see what happens. You don't even need a VCS, just use one of the emulators. Put the same amount of passion and enthusiasm you put into your artwork into learning something new.
  6. EricBall

    Fear of the Dark

    Sorry to rain on your parade, but ideas and artwork are only 1% of the final product. And no-one, except yourself, has the passion to see the project to completion. Sure, there are many who will cheer you from the sidelines. But I doubt you will get anyone to put in the time and effort to provide you with code on a platter. Coders have their own ideas and passions. Yes, coding is hard. (Although batari Basic is easier.) It requires lots of time, knowledge and patience. But all of the information you need is on this site. Plus there are lots of coders who are willing to share their tricks. You just need to take the initiative. That being said, coders often do need help with artwork. Sometimes there are label contests. Or see if there are projects looking for assistance with sprites. (8 pixels wide, one color per line).
  7. EricBall

    Fear of the Dark

    While I applaud your enthusiasm, many a great game idea has been smashed by the limitations of TIA graphics. Looking at your "screenshot", I think your biggest challenge is going to be making the platforms, particularly if they have to change color. The TIA has the following graphics capabilities: background color 20 quad pixel playfield graphics, which may be mirrored or duplicated for the right & left sides (for a total of 40 quad pixels. Different playfield graphics may be shown on the left & right, but requires the registers to be updated mid-line ball sprite, same color as playfield, may be 1, 2, 4 or 8 pixels wide two 8 pixel player sprites, may be duplicated and double or quad pixels two missile sprites, same color as player, may be 1, 2, 4 or 8 pixels wide The sprites can be repositioned, but that takes a line of CPU time when little else can be changed. Okay, so let's think about your "screenshot" and break it down into TIA objects. 1. dark - probably easiest to use the playfield, although it will require mid-line updates 2. dashed bar - use the ball sprite, but it will be the same color as the dark 3. platforms - use the missile sprites, just remember the player sprites will be the same color on the same line and only two per line; repositioning required. Note: two color platforms (dark transition) would require both sprites to be used. 4. player and other objects - use the player sprites. Repositioning required if there is more than one non-player object on screen. Only two objects may be on the same line unless flicker is used. So put away your doodle pad and start coding the kernel to create your vision.
  8. Part of me thinks this would be cool, but I'm wondering what options you have to get your creations out of the Wii. Can the pictures be saved to the SD as a standard graphics file? Is it possible to drag in previous creations or clip-art? Hmm... I wonder if there's a way to use a DS as a tablet. I'll have to check wiibrew and see if anyone has linked a Wii and a DS.
  9. Everything but the Adventure dragon is horrible and shouldn't be seen outside of a frat costume party. IMHO the Adventure dragon is a bad costume, but a cool inside joke.
  10. SMG2 is fun, but I also enjoyed SMG1 (except for a couple of levels).
  11. Kinda like my situation. I'd love to watch more channels in HD. But to receive those additional half dozen HD channels which I can't get via antenna to my existing SD cable subscription would cost me $22/month ($34/month w/ PVR). I'll live without, thanks.And I wonder when the various Canadian content creation & distribution conglomerates will start playing these kinds of games with each other. (Here in Canada a lot of channels are owned by either a cable, telephone or satellite company.)
  12. The 7800 uses the same sound processor as the 2600. There is an audio input on the cartridge connector which was used by a couple of cartridges which included a POKEY (from the 5200). Attached is a set of samples for all of the "notes" which the TIA can create. tia_wav.zip
  13. I've done some handheld panoramics and then stitched them together with Hugin. Hints and tips
  14. Let me see how quickly I can help you develop your text display. I'm going to work backwards from the graphics data. The target is a 40x25 monochrome text display using 8x8 1bpp characters. On the 7800, graphics data is stored as follows: 1. most signficant bit is leftmost pixel 2. each line is stored on a separate page 3. the last line is stored on the first page 4. graphics data is stored on even 2K (8 line) or 4K (16 line) segments So, for your text display, each character is made up of 8 bytes which will be stored at $F000 - $F7FF. For example, the letter F (ascii $4F) would be: $F04F $00 ; ........ $F14F $60 ; .##..... $F24F $60 ; .##..... $F34F $60 ; .##..... $F44F $7E ; .#####.. $F54F $60 ; .##..... $F64F $7E ; .######. $F74F $00 ; ........ The 7800 supports direct sprites, where the address in the display list entry points to the graphics data, and indirect sprites (also called characters or tiles) where the address in the display list entry points to a list of indexes which are then used to address the graphics data. For your text display we will use indirect addressing as it is then possible to create a standard memory mapped text display where each byte in memory is displayed as a single character onscreen. The display will be stored at $2200 - $25BF (40x24 bytes). On the 7800 a set of lines of graphics are described by a display list (stored in RAM) which is made up of display list entries. For your text display each active line contains two 5 byte display list entries and a 2 byte display list terminator. For example, the display lists for the first two rows of text would be: $2600 $00,$60,$22,$0C,$00, $14,$60,$22,$0C,$50, $00,$00 $260C $28,$60,$22,$0C,$00, $3C,$60,$22,$0C,$50, $00,$00 The format of each 5 byte entry is: address LSB, mode byte, address msb, width, horizontal position. So for your text display you will need 24 display lists with the correct address for the start and middle of the line. (The width is limited to 32 characters, so each line is broken into two 20 character segments.) Graphics processing on the 7800 starts with the display list list which is a series of 3 byte entries which point to the display list and the number of lines to use for the list. The format of each 3 byte entry is: control byte (number of lines), address MSB, address LSB. The display list list also contains entries for offscreen lines. For your text display, the display list list would be: $2780 $0F,$26,$0A, $08,$26,$0A $2786 $27,$26,$00, $27,$26,$0C, $27,$26,$18, $27,$26,$24 $278C $27,$26,$30, $27,$26,$3C, $27,$26,$48, $27,$26,$44 ... $27CE $0F,$26,$0A, $09,$26,$0A Once all of the display lists and display lists list are created in RAM, the MARIA registers are set to start the display: $20 $00 ; BACKGRND = black $21 $0F ; P0C1 = white $2C $27 ; DPPH = LSB of display list list $30 $80 ; DPPL = MSB of display list list $34 $F0 ; CHARBASE = MSB of indirect graphics $38 $00 ; OFFSET = always zero $3C $C3 ; CTRL = 320 1bpp, monochrome, 1 byte per character, DMA enabled Your ROM also needs to set the following values: $FFF8 DC.W ROMTOP + $07FF $FFFA NMI DC.W DLLNMI $FFFC RESET DC.W START $FFFE IRQ DC.W IRQRTI
  15. I know I said last year that it was debugged, but it wasn't. Now it is. But it's now checked out and verified from top to bottom including deriving the algorithm, the pseudo-code implementation, and the actual Propeller code. Backed up with spreadsheet comparisons between the algorithm outputs at each stage versus the base transform. And it's still fast! 256 samples takes 645,520 cycles (31.7 KHz) and 1024 samples takes 3,534,656 cycles (23.1KHz) with full 32 bit precision. (Good enough for filtering.) I need to code up the 16 bit precision version, which shouldn't be too difficult, then put in some sample usage code.
  16. I have to say that I enjoy watching it when it shows up in my TiVo's suggestions. I haven't taken the step of actually setting up a season's pass though (don't know why, it probably deserves it). But it means I'm not watching them in order, although I haven't found that much of a problem.
  17. Take this as an opportunity to explore other options. For TV you may be able to simply use an antenna to get your local broadcasters (see tvfool.com). Satellite (DirectTV/Dish) is also an option. Your "phone company" may have TV offerings. Same for internet. You might be even able to use basic dialup for email and web browsing. (Just disable or uninstall Flash.)
  18. Modern drives do have bad sectors; they're just good at hiding them from the host computer (by having "spare sectors" which get used to replace "bad sectors" under the covers). A clicking noise, however, sounds like more of a hardware problem. The best advice is to simply replace the disk with a brand new drive. Disks are cheap, replacing data is not. The "bad" disk may still be usable - put it in an external USB case and use it for sneakernet file transfers. In most cases disks die after 3 years of use, YMMV. Disks on the shelf, not powered up, age slower. Always on disks age slightly slower than disks which are cycled.
  19. Portal is great fun. It's more of a puzzle game than an FPS (although it uses a first person perspective). There are turrets which shoot at you, but the idea is to disable them by either picking them up from behind or (more usually) dropping them through a hole you create with your "gun". Trying to go toe-to-toe with them is not advised unless you like dyin'. There's a free demo available for download on Steam which allows you to play through the first dozen or so tasks.
  20. It's probably a combination of the two; plus if it's only worth $5 then it's not really worth the seller's time & effort to deal with it. But if someone were to pay $50, then the time & effort would be worth it. However, the Internet does mean collectors can exchange information much more easily than in the past. So in the past prices of items would be much more localized and the seller may have had more information available. But now the buyers have access to all of the information and the seller may not understand the value of what they have. What boggles my mind are people who price eBay items far above the price of sales of previous items, and those that price stuff over retail.
  21. Netflix could somewhat be regarded as a media bill. However, there's also a control aspect which I dislike intensely. Consider the people who "bought" Animal Farm for their Kindle, or those who used Linux on their PS3, or anyone who "bought" DIVX Silver DVDs. I can still listen to the first CD and DVD I ever bought. And yes, physical media is subject to loss, but it can also be replaced via the secondary resale market. This is not to say I won't buy digital downloads, but even those I prefer with no strings attached. Otherwise it's just a rental I am keeping at someone else's pleasure.
  22. I agree that $300 is a little steep for a handheld game system - 3D or not. And right now there aren't that many games on my must-buy list. But I doubt there will be a resurgence in DS games. Nintendo might just be forced to cut the price if sales don't meet expectations. (But I wouldn't hold my breath.) There have been rumblings of a PSP2. But now that Nintendo has announced the 3DS, I suspect Sony will be going back and putting a 3D screen into the PSP as well. The real question for Sony is whether they will try to stick with downloads or go back to media for games.
  23. Yes, a lot of the copy protection was broken. But at least the A2 had disk based copy protection - it simply wasn't an option on the CoCo. I did forget to consider the CoCo had cartridges - although I don't think there were any gamecarts released by 3rd parties; everything was sold by Radio Shack. (There were some third party expansion cartridges, I had a sound cart.) However, cart address space was limited to 8K. But Streck is probably right - the few years of lead time gave developers the ability to develop the software techniques to code around the A2's limited graphics and sound capabilities. When the CoCo arrived, it was competing against the superior C-64.
  24. This weekend the family and I got together with the in-laws for a Canadian Thanksgiving dinner. We arrived early and ended up spending the time watching "How to Train Your Dragon". About halfway through, their son comments, "pretty good quality for a download." I'd figured we were watching a DVD instead of a Blu-Ray, even though they had a PS3. But then I realized he wasn't saying this was streaming from Netflix, but it was pirated (via LimeWire, which he was using to download Gladiator). I have to confess that my past is not lily white when it comes to copyright infringement. However, I have to say that my DVD library is made up of pressed, not burned, media. And I don't have a folder of MP3s shared via BitTorrent. (Heck, I seldom even run BT.) So let's just say I try to set a good example and respect copyright. But free is a major temptation for people, especially when it is easy and seemingly risk free. So while I don't support extortion-style lawsuits, I have to wonder if there's any way the genie can be put back in the bottle. Technology doesn't help as experience has shown any DRM will be defeated or worked around given enough time. Quality seems irrelevant as people will watch movies recorded with a cellphone. IMHO The place to attack is on the suppliers - those who make pirated material available for download. And although there might be some value in going after the middlemen, like LimeWire, it may be tougher to make things stick since they can hide behind claims that they don't provide the materials themselves. (Plus, I'm sure someone will come up with a decentralized solution.) Thinking further, the best people to identify megahosts are ISPs. And many of those ISPs are telecommunications companies selling Internet along side TV. Hmm... I'm thinking there might be a possibility of some enlightened self interest here. The studios tell the telcos it's in their best interest to crack down on piracy. Every pirated movie is a lost PPV sale. Although just because it makes sense doesn't mean it will happen. Here in Canada there was a huge amount of grey/black market satellite TV (i.e. US satellite TV with or without a subscription). I always wondered why the Canadian cablecos & satcos didn't each toss a million dollars into a legal/lobby/enforcement fund to make having a grey market dish illegal. (They're out in plain view and I bet you could even figure out what satellite they are pointing at.)
  25. Back in the day my family owned a CoCo (partially because my Mom worked at a Radio Shack computer store at the time, so got a discount), but at school I user Apple ][s (pluses and Es). Unlike the C64 (or the Atari 8 bit computers), neither the CoCo or the A2 has any sound or sprite hardware. Yet the A2 had a huge library of games, and I have to ask myself why. I think it was the disk drive. Although a disk add-on existed for the CoCo, cassette tapes were still very popular. And, unlike the A2, the CoCo disk drive (since it used standard hardware) wasn't capable of the same levels of copy protection as the A2. So the A2, with a disk drive, programmers had the advantage of read/write random access copy-protected storage.
×
×
  • Create New...