DanBoris
-
Content Count
1,086 -
Joined
-
Last visited
Posts posted by DanBoris
-
-
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,
-
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?
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
-
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
-
I saw a listing on E-Bay for a Pong Battery Eliminator, part number 4-0033-2 with the same specs, so the one you have is probably for one of the early Atari Pong consoles.
Dan
-
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
-
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
-
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
-
It's definitly different from the 2600 power supply. The Odyssey takes a 12 Volts AC, 400 mA. An NES power supply actualy makes a good replacement.
Dan
-
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
-
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
-
The bits in IRQST get set to 0 when the specific event occurs, not 1. So when the break key is pressed, bit 7 will be 0.
Dan
-
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
-
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
-
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
-
$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?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
-
Yes, the empty 14 pin slot is for a 7404 inverter chip. You should be able to put an inverter in there and cut jumper W3 to make the cartridge work with an EPROM. You can see how this works from the schematic here:
http://www.atarihq.com/danb/7800cart/C026461.shtml
Note that you will not be able to use the 7402 NOR Gate without some extra modifications.
Dan
-
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
-
I'll be there on Saturday.
Dan
-
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
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
-
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 ?
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
-
Accoring to Curt, the KERI is an ANTIC/GTIA/POKEY combination chip.
http://www.atariage.com/forums/index.php?s...ndpost&p=909032
Dan
-
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
-
My 5200 emulator VSS is command line and works fine under XP with the help of vdmsound (http://sourceforge.net/projects/vdmsound/).
You can get it here:
http://www.atarihq.com/danb/a5200.shtml
Dan
-
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

Ascii Text in ROMs
in Atari 2600
Posted
There was a 2600 development system for the Apple called the Frob, maybe that was used to develop these games.
Dan