Jump to content
IGNORED

Rainbow 2.0 Atari 400/800XL/130XE/5200 Emulator released


Recommended Posts

I tried my Acid800 test suite on Rainbow 2.0 and ran into the problem that the ATR header wasn't detected (image attached). Removing the ATR header allowed it to boot and the test suite revealed some non-timing issues you may want to look at:

 

  • The basic CPU test tripped on an ORA $FFF8,Y instruction -- possible failure to handle wrapping around the 64K address space.
  • The ANTIC address mirroring test failed. IIRC, lack of support for this breaks Bounty Bob Strikes Back.
  • The value read from undefined POKEY addresses is wrong ($00 instead of $FF) -- I believe this can break the Recycle demo.
  • Based on the PIA test results, it looks like the IORs and DDRs aren't separate.

 

In 5200 mode, it looks like Rainbow has the same problem that several other emulators do with 5200 Pengo where the poor penguin gets shoved into the ice blocks as soon as you try to move. This happens because CONSOL bit 2 isn't emulated and the game thinks a trackball is connected.

acid800.atr

Link to comment
Share on other sites

I tried my Acid800 test suite on Rainbow 2.0 and ran into the problem that the ATR header wasn't detected (image attached). Removing the ATR header allowed it to boot and the test suite revealed some non-timing issues you may want to look at:

 

  • The basic CPU test tripped on an ORA $FFF8,Y instruction -- possible failure to handle wrapping around the 64K address space.
  • The ANTIC address mirroring test failed. IIRC, lack of support for this breaks Bounty Bob Strikes Back.
  • The value read from undefined POKEY addresses is wrong ($00 instead of $FF) -- I believe this can break the Recycle demo.
  • Based on the PIA test results, it looks like the IORs and DDRs aren't separate.

 

In 5200 mode, it looks like Rainbow has the same problem that several other emulators do with 5200 Pengo where the poor penguin gets shoved into the ice blocks as soon as you try to move. This happens because CONSOL bit 2 isn't emulated and the game thinks a trackball is connected.

 

Thanks for that, very useful info. I too noticed Pengo jumping into ice blocks in the 5200 version, and Bounty Bob does not work. Great test suite!

 

Now if anyone has any idea why the score text at the top of Fast Eddie is not lined up properly I would appreciate it :)

Link to comment
Share on other sites

Now if anyone has any idea why the score text at the top of Fast Eddie is not lined up properly I would appreciate it :)

 

You're not going to like the answer to this....

 

The problem is that Fast Eddie is a 2600 port and is racing the beam while rewriting a scanline buffer that is being reused for each scanline. Here's a display list dump from my emulator Altirra:

 

Ycoord DLIP PFAD H V DMACTL MODE
--------------------------------
39: 0800 00c0 8 0 22 5c
40: 0803 00c0 8 0 22 5c
41: 0806 00c0 8 0 22 5c
42: 0809 00c0 8 0 22 5c
43: 080c 00c0 8 0 22 5c
44: 080f 00c0 8 0 22 5c

 

...and here's what the CPU is doing:

 

76: 38: 28 | A=A7 X=DB Y=07 S=FF P=35 | B67A: A9 08			 LDA #$08
76: 38: 31 | A=08 X=DB Y=07 S=FF P=35 | B67C: 8D 04 D4		 STA HSCROL
76: 38: 36 | A=08 X=DB Y=07 S=FF P=35 | B67F: 8D 0A D4		 STA WSYNC
76: 38:105 | A=08 X=DB Y=07 S=FF P=35 | B682: B9 66 BF		 LDA $BF66,Y ;$BF6D
76: 38:109 | A=F3 X=DB Y=07 S=FF P=B5 | B685: 85 C8			 STA $C8
76: 38:112 | A=F3 X=DB Y=07 S=FF P=B5 | B687: B9 6E BF		 LDA $BF6E,Y ;$BF75
76: 39: 3 | A=1D X=DB Y=07 S=FF P=35 | B68A: 85 C9			 STA $C9
76: 39: 8 | A=1D X=DB Y=07 S=FF P=35 | B68C: B9 76 BF		 LDA $BF76,Y ;$BF7D
76: 39: 12 | A=F0 X=DB Y=07 S=FF P=B5 | B68F: 85 CA			 STA $CA
76: 39: 15 | A=F0 X=DB Y=07 S=FF P=B5 | B691: B9 7E BF		 LDA $BF7E,Y ;$BF85
76: 39: 21 | A=1E X=DB Y=07 S=FF P=35 | B694: 85 CB			 STA $CB
76: 39: 26 | A=1E X=DB Y=07 S=FF P=35 | B696: B9 86 BF		 LDA $BF86,Y ;$BF8D
76: 39: 34 | A=E7 X=DB Y=07 S=FF P=B5 | B699: 85 CC			 STA $CC
76: 39: 39 | A=E7 X=DB Y=07 S=FF P=B5 | B69B: B9 8E BF		 LDA $BF8E,Y ;$BF95
76: 39: 47 | A=2F X=DB Y=07 S=FF P=35 | B69E: 85 CD			 STA $CD
76: 39: 54 | A=2F X=DB Y=07 S=FF P=35 | B6A0: 88			 DEY
76: 39: 58 | A=2F X=DB Y=06 S=FF P=35 | B6A1: 10 DC			 BPL $B67F
+ Last 15 insns repeated 3 times
76: 42: 61 | A=AF X=DB Y=03 S=FF P=35 | B67F: 8D 0A D4		 STA WSYNC

 

Note that the code that writes the six bytes crosses well into the visible region. This means that proper emulation of this requires emulating correct playfield DMA timing. I'm guessing Rainbow is reading the scanline instantly at some point early in the scanline which is why you get the shear after two bytes. Since doing exact cycle timing is expensive, an alternative might be to read playfield memory at the end of the scan instead of the beginning... but this risks the opposite problem where late writes are picked up when they shouldn't be.

Link to comment
Share on other sites

Thanks for reviving the Rainbow emulator. I like the name of it. It reminds me of the Atari "Rainbow" color bars. Please continue to improve it and to bring it up to par with current emulators. Also, please improve support for .car cartridge and .atr file formats.

Link to comment
Share on other sites

Nice job with the emulator, but it seems that it remapped my keyboard when I ran it; I'm guessing so that it would match the old Atari keyboard. Unfortunately, it didn't unmap my keyboard when I shut it down and I had to reboot to get everything back to normal.

Link to comment
Share on other sites

Thanks for reviving the Rainbow emulator. I like the name of it. It reminds me of the Atari "Rainbow" color bars. Please continue to improve it and to bring it up to par with current emulators. Also, please improve support for .car cartridge and .atr file formats.

 

Just released v2.0.1 which should load ATRs ok now.

Link to comment
Share on other sites

Nice job with the emulator, but it seems that it remapped my keyboard when I ran it; I'm guessing so that it would match the old Atari keyboard. Unfortunately, it didn't unmap my keyboard when I shut it down and I had to reboot to get everything back to normal.

 

Strange, will look into it. Perhaps Rainbow needs to map the keyboard when it gets focus and unmap it when it loses focus...

Link to comment
Share on other sites

Nice job with the emulator, but it seems that it remapped my keyboard when I ran it; I'm guessing so that it would match the old Atari keyboard. Unfortunately, it didn't unmap my keyboard when I shut it down and I had to reboot to get everything back to normal.

 

Strange, will look into it. Perhaps Rainbow needs to map the keyboard when it gets focus and unmap it when it loses focus...

That would be fantastic if you could do that! That way all my other apps would behave normally with the keyboard.
Link to comment
Share on other sites

Well there is a problem with keyboard locality - if I set Windows keyboard to say German some Rainbow keys don't work. This is now fixed and I will roll out 2.0.2 tomorrow.

 

@Tinman: I can't see your problem. If I set my keyboard from UK to German, open Rainbow, then close it, then check the keyboard it's still German. Can you check your Windows Regional Settings? Rainbow is not changing any global Windows settings; it's just doing a LoadKeyboardLayout() which only affects Rainbow.

Link to comment
Share on other sites

chris_rainbow,

 

I visited your website, but I can't find a link to the newest release. Is it the link labeled Rainbow 2.0 for Windows 7, Vista and XP? I used that link yesterday to download version 2.00.

 

Just curious. The emulator feels very stable for my uses and runs well. I do note that the drive emulation only supports densities up thru enhanced. Do you plan to implement true double density support in the future?

 

Russ

Link to comment
Share on other sites

Just curious, but what's the reason for autoswitching to the UK keyboard layout? I was wondering why I couldn't type backslashes in the file dialog... and I think UK keyboards have it on an extra key that US keyboards don't have. Also, this is actually a user setting that's exposed via the language toolbar, so it's possible to switch to any other layout inadvertently. However, I haven't seen the keyboard layout switch affect any other programs in the system (Windows 7 x64).

Link to comment
Share on other sites

I visited your website, but I can't find a link to the newest release. Is it the link labeled Rainbow 2.0 for Windows 7, Vista and XP? I used that link yesterday to download version 2.00.

 

Just curious. The emulator feels very stable for my uses and runs well. I do note that the drive emulation only supports densities up thru enhanced. Do you plan to implement true double density support in the future?

 

That's the filename for the previous version, new version at www.chrislam.co.uk

 

I'll add double density support on the To Do list!

Link to comment
Share on other sites

we have altirra..

i dont understand

 

This is initially what I thought. Then I recalled that Rainbow was around before Altirra, so we could have said, "Why have Altirra when we have Atari800Win Plus and Rainbow"?

 

Altirra is a fantastic emulator, but by having two currently supported emulators, this has to be better for us as users.

 

1) Two minds on two emulators may mean that problems are solved in less time.

2) If one person walks away, we are still left with someone else working on an emulator.

3) A little friendly competition (with co-operation as we have already seen) is always good.

4) The two may go in different directions, suiting two groups of people rather than one.

  • Like 1
Link to comment
Share on other sites

Nice to see that this classique Atari Emulator for Mac OS is still under development - and the developer of that former commercial product is still interested in the A8 and the community ... but - why no Mac OS X Version of Version 2.0.x? :-(

Edited by atarixle
Link to comment
Share on other sites

we have altirra..

i dont understand

This is initially what I thought. Then I recalled that Rainbow was around before Altirra, so we could have said, "Why have Altirra when we have Atari800Win Plus and Rainbow"?

 

Excellent point. The reason that I sent out to write Altirra... is that I wanted to write an emulator. It took quite a while before it began to approach A8WP's level of emulation, and to this day for each emulator you can find something that it does better than any other. Rainbow is easy to get going and actually runs a pretty good set of software.

 

I have a lot of experience in diagnosing emulation issues with Atari 8-bit software and also know a lot of specific quirks with various games, so I'm happy to help out with tracking down issues in Rainbow or any other Atari emulator. Not sure what Chris's goals are with it, but we could probably get a good number of additional titles working on Rainbow with some detective work.

 

I did notice that Rainbow appears to have some problems with 15KHz timer sounds at high frequencies, which drops out the high end of the warp sound in The Last Starfighter, and there are also some problems with high-pass filtering that are affecting sounds in Alley Cat.

Link to comment
Share on other sites

The reason that I sent out to write Altirra... is that I wanted to write an emulator.

 

And we are all lucky that it was an Atari emulator that you wished to write. I've been watching your work with Virtualdub on and off for many years now, probably about 10 years now. I had no idea that you were an Atari fan. I was always impressed with what you've done with Virtualdub and how you extended it and you've had a quick turn-around time for new features. It's great to see your extensive coding skills applied to the Atari. The question is though, do you have any time for anything outside of coding?

 

If I could just have one thing, that'll be more coding time!

Link to comment
Share on other sites

My interest in emulators started in 1994 when I bought a BBC emulator to play some old games to find out it was hopeless. I thought it can't be too hard to write my own...! This is perhaps one of the most bonkers ideas I've ever had cos since then I must have given up thousands of hours of my life. By 2000 I was maintaining the BBC and Atari emulators for both Windows and Mac, so 4 projects on the go. I gave them up for 12 years and only got interested in them again this year. If I wasn't doing this I'd probably be solving the Times crossword instead. I will probably post more Qs here rather than try to figure everything out myself. I'm more than willing to share ideas with Phaeron and others to push Atari emulation forward.

Link to comment
Share on other sites

This is perhaps one of the most bonkers ideas I've ever had cos since then I must have given up thousands of hours of my life.

 

I've not used Rainbow yet as I first need to sort out the Visual C++ libraries. When I've done this however I will take a look. By the way, is it possible to distribute them with the product or does that break some copyright somewhere?

 

As I can't see what it is like yet, I'd like to ask, are you looking for a niche path to follow for the emulator? For example, for me, Altirra is very good for debugging any issues with my developed code. Atari800Win seems quite good to just pick up and play a game quickly. What would you say Rainbow is best at? And also, do you want it to develop in a certain direction? Or alternatively do you just want to see where it ends up?

 

I'm very pleased that we have a new (sort of!) developer on the scene. Thank you for your time.

 

For me, I label people like yourself and Avery (Phaeron) amongst those people that I label as "enablers". I label anyone that works on software for modern computers based around the Atari as 'enablers'. You are the people that help the scene to do their development work and also to maintain interest in the scene. I would imagine that if emulators didn't exist, many people here would not be around. Hmm, that sounds like a good topic to ask about on here...!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...