chris_rainbow Posted July 18, 2012 Share Posted July 18, 2012 Hi all, Rainbow 2.0 is now available. This is a major rewrite of the old version 1.x. It features better emulation, real joystick support and full screen display. Trace tools are also included. http://www.chrislam....it-emulator.htm Thanks, Chris. 2 Quote Link to comment Share on other sites More sharing options...
phaeron Posted July 18, 2012 Share Posted July 18, 2012 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 Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 18, 2012 Author Share Posted July 18, 2012 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 Quote Link to comment Share on other sites More sharing options...
phaeron Posted July 19, 2012 Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 19, 2012 Author Share Posted July 19, 2012 Thanks, Phaeron. As you say Rainbow draws each scanline instantaneously, allowing enough cycles at the start for DLIs. Fortunately the side effects are only cosmetic and the game is playable Quote Link to comment Share on other sites More sharing options...
atx4us Posted July 19, 2012 Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
Tinman Posted July 19, 2012 Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 19, 2012 Author Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 19, 2012 Author Share Posted July 19, 2012 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... Quote Link to comment Share on other sites More sharing options...
Tinman Posted July 19, 2012 Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 19, 2012 Author Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
Kylev Posted July 19, 2012 Share Posted July 19, 2012 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 Quote Link to comment Share on other sites More sharing options...
phaeron Posted July 20, 2012 Share Posted July 20, 2012 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). Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 20, 2012 Author Share Posted July 20, 2012 Just curious, but what's the reason for autoswitching to the UK keyboard layout? I guess the UK map acts as a translation layer... as stated before the map is loaded only for Rainbow and not for Windows. Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 20, 2012 Author Share Posted July 20, 2012 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! Quote Link to comment Share on other sites More sharing options...
Kylev Posted July 20, 2012 Share Posted July 20, 2012 chris_rainbow, Thanks for the link. I have downloaded the most recent release. Thanks, also, for considering the double density issue. Keep up the good work. Russ Quote Link to comment Share on other sites More sharing options...
w1k Posted July 20, 2012 Share Posted July 20, 2012 we have altirra.. i dont understand Quote Link to comment Share on other sites More sharing options...
snicklin Posted July 20, 2012 Share Posted July 20, 2012 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. 1 Quote Link to comment Share on other sites More sharing options...
Vaughan Posted July 20, 2012 Share Posted July 20, 2012 I thought that a lot of the time people create these things as a fun little exercise, just an extension of their hobby. After all, since neither of them are charging money, it clearly have to be simply for the hell of it - right? As such, why not? Quote Link to comment Share on other sites More sharing options...
atarixle Posted July 20, 2012 Share Posted July 20, 2012 (edited) 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 July 20, 2012 by atarixle Quote Link to comment Share on other sites More sharing options...
phaeron Posted July 21, 2012 Share Posted July 21, 2012 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. Quote Link to comment Share on other sites More sharing options...
snicklin Posted July 21, 2012 Share Posted July 21, 2012 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! Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 21, 2012 Author Share Posted July 21, 2012 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. Quote Link to comment Share on other sites More sharing options...
chris_rainbow Posted July 21, 2012 Author Share Posted July 21, 2012 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? :-( This was answered in the Emulation group. Quote Link to comment Share on other sites More sharing options...
snicklin Posted July 21, 2012 Share Posted July 21, 2012 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...! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.