Jump to content

DanBoris

Members
  • Content Count

    1,086
  • Joined

  • Last visited

Posts posted by DanBoris


  1. This appears to be Apple II DOS 3.3.  THis game was obviously developed on an Apple II.

    1022825[/snapback]

     

    There was a 2600 development system for the Apple called the Frob, maybe that was used to develop these games.

     

    Dan


  2. I am sure someone has done this before, but I haven't seen a complete list anywhere on these boards, so I throught I'd post it.

     

    I thought it would be interesting to scan through all the 2600 ROM images looking for ASCII text. So I wrote a little program to do this automatically. I had it look for runs of 5 or more upper or lower case ascii characters in each ROM file. Even at 5 characters it turned up a lot of false positives, but it also came up with some very interesting things.

     

    Most where just copyrights or credits:

     

    big bird's egg catch (1983) (atari).a26

    CHRISTOPHER H

    OMARZU

     

    blueprint (1983) (cbs electronics).a26

    DIDOMENICO

     

    bmx air master (1989) (tnt games).a26

    COPYRIGHT

    TNT GAMES

    DEVELOPED BY SCULPTURED SOFTWARE

    WRITTEN BY ADAM CLAYTON

     

    Bump 'N' Jump (1983) (Mattel) [b1].a26

    Copyright

    Mattel Dave Akers Jeff Ratcliff Pat Dulong

     

    elk attack (1987) (atari).a26

    ELK ATTACK

    Mark R

    Hahn

     

    gopher (1982) (us games).a26

    COPYRIGHT

    US GAMES CORP

     

    james bond 007 (1983) (parker bros).a26

    PJOE GAUCHER LOUIS MARBEL

     

    tutankham (1983) (parker bros).a26

    PARKERBROS

    DAVEENGMAN

     

    Word Zapper (1982) (US Games) (PAL) [p1][!].a26

    COPYRIGHT

    US GAMES CORP

    nGAME

    ZAPPER

     

    Mattel was a little posessive:

     

    star strike (1982) (mattel).a26

    MATTEL MATTEL MATTEL MATTEL MATTEL

     

    These two roms had this same set of text in them. Sorta looks like some compiler commands or parameters:

     

    cosmic corridor (zimag).a26

    space tunnel (bitcorp) (pal).a26

    LINK 1.6

    INIT

    TPLEN

    XMIN

    YMIN

    YMAX

    XMAX

    START

    CENT

    CC09

    CC06

    CC07

    CC08

     

    This one is very odd, looks like a chunck of disk commands and messages:

     

    parachute (homevision) (pal).a26

    OPE

    APPEN

    RENAM

    CATALO

    MAXFILE

    BSAV

    BLOA

    AVAILABL

    RANGE ERRO

    WRITE PROTECTE

    END OF DAT

    FILE NOT FOUN

    VOLUME MISMATC

    ERRO

    DISK FUL

    FILE LOCKE

    SYNTAX ERRO

    NO BUFFERS

     

    These two actually have chuncks of source code left in them:

     

    pompeii (apollo) (prototype).a26

    SCRLP1

    STA STRTLINE

    NOP

    NOP

    STA WORK

    LDA (DNROCK1),Y

    STA BULLETR

    LDA MNT1,Y

    STA HIRESL

     

     

    lost luggage (1981) (apollo) [a1].a26

    LSR A

    LSR A

    STA SNDTYPE

    LDA

    LDA #SUITCASE&255

    STA INTL

    BCS CONTINUE

    TAX

    .BYTE 0,0,0,0,0,0

    SUIT1 .BYT

    SUIT3 .BYTE $00,$18,$18,$3C,$24,$66,$42

    .BYTE $00,$00,$00,$00,$00,$00,$00

    SUIT4 .BYTE $00,$

    BRIEF .BYTE $00,$00,$00,$00,$00,$18,$18

    .BYTE $3C,$7E,$7E,$00,$00,$00,$00

    SOCKS .BYTE $00,$44,$CC,$66,


  3. If that was possible, could you have 10, 20, 30 levels in one game creating a large multi-level game stored on the cart chip and thus load them as they are beaten??

     

    I know that the real 2600 could not do this, but I didn't know if it could have used such a technique when it was designed through some internal programming?

    1021525[/snapback]

     

    This actually could have been done quite easily in Combat (and other games) on ther 2600. As someone else pointed out it really doesn't load seperate games for each variation, they are all available at one time from the cartridge. This is especially the case with Combat since it has one main game loop that runs every variation of the game, with a few branches in the code here and there to handle the variations. Pretty amazing piece of programming and all done in only 2K or ROM.

     

    Dan


  4. Thanks, but put simply can I use a supply that's I/P: 120V 60Hz, O/P: 9VAC 500 mA, without it stating the input wattage on it?  I've seen several PS state different wattages on them...  Thanks again.

    1018228[/snapback]

     

    The 2600 requires a DC power supply not an AC one like the one you are talking about. I have heard that the system will power up with an AC supply, but it's probably not a good idea to do that.

     

    Dan


  5. Has anyone got Pitfall to work on an emulator as yet ? If so I would appreciate some advice.

     

    I'm using Windows and have tried the following emulators:

     

    Atari 800 Plus v4.0

    Jum52 v1.0

    MESS v1.103b

     

    All have the same problem the game loads but doesn't respond when I press start.

    999508[/snapback]

     

    Pitfall works in Jum52 v0.8, but as you said it doesn't work in v1.0. It also works in the current version of VSS (http://danb.atarihq.com/)

     

    Dan


  6. We've learned in the past that copyright dates do not equal release dates, so it's hard to tell when games were released without documentation or from memory. I hope that there are more memories than mine available. It seems that I'm usually the only one around who remembers that stuff in detail. I must have really been Atari obsessed. I remember the order in which I acquired my games. I can remember the stores I first saw games in, pictures burned into my mind more vividly than last weekend is.

     

    I was thinking about the problem of figuring out release dates recently. I think the only way to really figure this out is to create a database of "evidence" for the release date of each game. This evidence could include:

     

    - Copyright dates

    - Year of a catalog that it first appeared in

    - Info from old videogame magazine (e.g. "Activision plans to release a new game called Pitfall this Summer")

    - Apperences of ads in magazines

    etc.

     

    No one of these items can truely determine the date, but taken as a group it would allow you to narrow the date range down.

     

    Dan


  7. I actually attempted this project "back in the day", but never completed it. The hard part of it is that the Armatron was controlled mechanically. It has a single continously running motor and a gear train that was manipulated by the joysticks. The only way to computer control this was to connect solenoids to the joysticks to pull them in the appropriate direction.

     

    Dan


  8. Could be a stuck address line going to the video memory. That would cause certain blocks of memory to be repeated because the state of the address line wouldn't change when it's supposed to.

     

    Dan

     

    the graphics all work, how ever there is two of everything displayed any ideas, this is the old black and white taito space invaders cocktail table.

     

    it's like it's drawn once i nthe right place then again 2 rows down

    988493[/snapback]


  9. I personally think the first option is the best, and this is the way I have done it in my emulators. There are a couple problems with option 2:

     

    - The full range of motion of a joystick is a much close approximation of the fully range of motion of a paddle, so cutting that range in half would be awkward.

    - Unless the stick is carefully callibrated you are not going to know what the actual center value is.

    - If you did go this route, I would avoid using the other half for "something else" since it would be very easy to overshoot the center which may have undesirable results.

     

    I also like the idea of using a mouse to simulate a paddle.

     

    Dan


  10. I found it disheartening that for a time MAME concentrated on getting humpty-nine Majong games to work instead of perfecting the emulation of the games it already supported.  Galaga is worth far more than all the Majong video games ever made. 

     

    As a member of the MAME development team I can tell you that there was never a time when someone on the team said "let's concentrate on Mahjong games and forget everything else". The MAME team is a large group of volunteer programmers that work on the games they want to work on. There is no leader on the team telling or even suggesting what games they should work on. The Mahjong games where probably added in such volume because the ROM images became available and it was easy to do. The problems with some of the existing games may be caused by very subtle problems with the emulation that can be very hard to find. This kind of troubleshooting work does not appeal to everyone. Fortunately there are people who like to hunt these obscure bugs and you do still see old games getting bug fixes in almost every release. If we were to wait for every bug in an existing game to get fixed before adding a new one, MAME would probably only support a few dozen games at this point!

     

    Dan


  11. As the author of quite a few emulators (and someone who has violated a few of these principles), I thought I should comment on this....

     

    First, concentrate on the important things, first and foremost, perfecting emulation accuracy.  However, priorities should be focused to ensure that the greatest games are emulated first and best.  It serves no one to add support for games that no one cares about while great, important games remain unplayable.

     

    By who's standards do we judge what are the "greatest games"? If there is a game that I loved to play, but no one else really cares about, it's still important to me to get it to work on the emulator. In some cases it may actually be more important to focus on the obscure games because they are the ones that are at a greater risk of being lost forever. I have seen this come up a few times in the MAME project.

     

    Third, GUIs should never be an afterthought.  Always make sure that people can easily change settings in the menu.

     

    But what if my interests lay speicifically with achieving highly accurate emulation, and not with writing fancy GUIs? Should I be discouraged from writing a good emulator just becasue I don't want to develop a GUI?

     

    Fourth, always have a ready supply of binaries because users don't have the time to figure out how to build from a source. 

     

    I personally can't think of any emulators that are released as source only. I think it's more important to encourage emu authors to release both the binary AND the source. (Note: I am being slightly hyprocritical here since I have not released the source for all my emulators ;) )

     

    Fifth, if the system supports joysticks, so should the emulator through DirectInput.  Try to support as many native peripherals as possible. 

     

    Same argument here as I made about the GUIs. I would rather focus my time on good emulation, then on trying to support every different type of controller out there.

     

    Ten, be sure that your emulator works with the original software dumps before it works with two-bit hacks, unless the original is unavailable.

     

    I'll come back to nine in a second. This one I actually do agree with. An emu author should always try to avoid the temptation to patch a ROM just to make it work, or modify the behavior of the emulation based on which game is currently loaded. These are just a way around finding what the real problem with the emulation is.

     

    Ninth, be sure that you have something new or different to add to the scene.  There are at least seventy-five NES emulators, yet about seven are worthwhile. 

     

    This point brings me to the one overriding comment I would like to make about all these Principles. Most of what is said here are good things, they do make emulators better, but a current or potential emulator author should not be discouraged to work on an emulator just because they don't follow these rules. Most emu authors do this is a hobby. They do it for the enjoyment, they do it for the challenge. If someone wants to write and release the seventy-sixth NES emulator, more power to them! Yes, this emulator may not constribute anything "new" to the emulation scene, but if it's rewarding for the author that's all that's important. Maybe this persons next emulator will be the killer app everyone is waiting for.

     

    The bottom line is, if you can, and want to follow these principles, great! But your emulation project should be no less special to you (and maybe others) if you don't.

     

     

     

    Dan


  12. Very nice work! The compatibility is excellent, you can run games in your first release that my emulator still can't run after all these years. Decathlon and MrDo's Castle have always been problems for me, but they run great on your emulator. You also managed to find the tricky little controller issue that would cause Star Trek not to start.

     

    A few issues I have spotted:

     

    Most of the graphics in Kaboom are missing, I am guessing that you haven't implemetned the GRAFP0..3 registers which are used to write directly the the PM hardware bypassing the DMA

     

    Alternate version of some carts do not work. This is probably a cart loading problem. 5200 carts where not all dumped in uniform ways, so there are multiple version of the same rom image floating around for some cartirdges. For example there is a 4K and 16K version of Kaboom, the 16K works, but the 4K doesn't.

     

    Dan


  13. $10 for a bidders number!  I know I wouldn't be back, but then we have several auctions here to choose from and only 1 charges a bidder fee.  I could see charging admission to try to keep the kids down, but why would you discourage people from bidding by making them pay for a number?

    976051[/snapback]

     

    I was also at that auction on Saturday, sold the Monaco GP machine I had refurbished. They had some interesting items I was temped to bid on (two really clean Asteroids machines, Star Wars pinball, Missile Command cabaret), but didn't go for anything.

     

    The other auction company that used to come to that same location didn't charge a bidding fee, but thier buyers premium was higher so it was a tradeoff. I am guessing that UsAmusements charges simply make a little extra cash. They also use it as a small perk for sellers, since they don't have to pay for a bid card.

     

    Dan


  14. And let's face it, the ROM packages do seem to change more often than necessary (I can't even play Galaga right now, thanks to a ROM package that won't work with MAME 0.101).

     

    Actually most of the "ROM package" changes are important to MAME's preservation goal. Whenever it is discovered that there is something incorrect about a ROM set it is updated so that MAME always supports the "best known" set which is really the one you want to preserve.

     

    Dan


  15. This may help you (from my Jum52 source code):

     

    for(i = 0; i < 0x4000; i++) mapper = MAPPER_RAM;        // RAM

    for(i = 0x4000; i < 0xC000; i++) mapper = MAPPER_ROM;    // CART

    for(i = 0xF800; i < 0x10000; i++) mapper = MAPPER_ROM;  // BIOS

    for(i = 0xC000; i < 0xC100; i++) mapper = MAPPER_GTIA;  // GTIA

    for(i = 0xD400;i < 0xD500; i++) mapper = MAPPER_ANTIC;  // ANTIC

    for(i = 0xE800;i < 0xE900; i++) mapper = MAPPER_POKEY;  // POKEY

    for(i = 0xEB00;i < 0xEC00; i++) mapper = MAPPER_POKEY;  // POKEY (mirror)

     

    - jum

    960982[/snapback]

     

    This still leaves some holes in the memory map. If you take a look at the address decoding on the schematics you get a memory map that looks like this:

     

            |15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0 |
           |--------------------------------------------|
    RAM     |0  0  A  A  | A  A  A A | A A A A | A A A A | 0000 - 3FFF  
    CART407F|0  1  A  A  | A  A  A A | A A A A | A A A A | 4000 - 7FFF
    CART80BF|1  0  A  A  | A  A  A A | A A A A | A A A A | 8000 - BFFF
    GTIA    |1  1  0  0  | X  X  X X | X X X A | A A A A | C000 - CFFF
    POKEY   |1  1  1  0  | 1  X  X X | X X X X | A A A A | E800 - EFFF
    BIOS ROM|1  1  1  1  | A  A  A A | A A A A | A A A A | F000 - FFFF

     

    In each line, the 0/1 are fixed values, A means this address line is connected to the chip, X means doesn't care. This gives the address ranges listed on the right side.

     

    This still leaves one hole, D000-E7FF. All 16 address lines go to the ANTIC chip and it does it's own address decoding. We know that it appears at the very least between D400-D4FF and Atari's Antic documentation confirms this, but it's still possible it mirrors into other areas. So this leaves D000-D3FF and D500-E7FF undecoded.

     

    Dan


  16. According to the equates...

    GTIA......$C000 - $C01F

    ANTIC....$D400 - $D40F

    POKEY....$E800 - $E80F

     

    What of the other registers? Are they used for anything? If not are they available to the programmer?

    960011[/snapback]

     

    I know about these and I'm pretty sure that whole pages are used for mirrored registers. But what's in $C100 - $D3FF, $D500-$E7FF and $E900-$F7FF ?

    960057[/snapback]

     

    The mirroring actually occurs through more then just one page. For example POKEY is enabled when A15=1, A14=1,A13=1,A12=0 and A11=1, the rest of the address bits don't matter. So $E800 will access the same register as $E900, $EA00, etc.

     

    Dan


  17. It just seems short sighted to me that Atari expected companies to go thru the extra expense of adding the pokey chip.  I could only see that happening if the 7800 was as big as the VCS in sales so the added cost was made up in volume.  Especially since they didn't even do it themselves on 99% of the games so Atari didn't even want to be bothered with it.

     

    Here is a theory I had on this...

     

    If you have looked at the 7800 PCB it's pretty crowded, so adding a pokey to the design probably would have increased the size of the PCB, the size of the system, and the overall cost of the system.

     

    A lot of the 7800 carts had one of three "added features", extra RAM, extra ROM, or a POKEY, so the Pokey cart would not have been much more expensive then the other carts to make. Even if you had to tack on a few dollars to the price of the cartridge, this may have actually been more palatable to the consumer then increasing the price of the console by say $10.00.

     

    Dan


  18. There was a book put out called The Atari BASIC Source Book that has the full source code the the BASIC cartridge. You can find the book online here:

     

    http://users.telenet.be/kim1-6502/6502/absb.html

     

     

    If you browse through the code you can see how each basic instruction is executed in assembly. For example here's the code for the POKE statement:

     

    XPOKE - Execute POKE
    
    B24C            XPOKE
    B24C  20E0AB        JSR     GETINT         ; GET INTEGER ADDR
    B24F  A5D4          LDA     FR0            ; SAVE POKE ADDR
    B251  8595          STA     POKADR         ;
    B253  A5D5          LDA     FR0+1          ;
    B255  8596          STA     POKADR+1       ;
                  ;
    B257  20E9AB        JSR     GET1INT        ; GET 1 BYTE INTEGER TO POKE
                  ;
    B25A  A5D4          LDA     FR0            ; GET INTEGER TO POKE
    B25C  A000          LDY     #0             ; GET INDEX
    B25E  9195          STA     [POKADR],Y     ;GET INDEX
    B260  60            RTS
    

     

    Dan

×
×
  • Create New...