Albert Posted October 25, 2012 Author Share Posted October 25, 2012 Tried it with another EPROM and same result, so I assume there's something odd in the binary that's causing it to not fire up on real hardware. Any ideas? Thanks, ..Al Quote Link to comment Share on other sites More sharing options...
Albert Posted October 25, 2012 Author Share Posted October 25, 2012 Huh, well, for completeness' sake I tried it on a Harmony Cart...and...it works! So now I'm a bit confused. ..Al Quote Link to comment Share on other sites More sharing options...
Albert Posted October 25, 2012 Author Share Posted October 25, 2012 Okay, final update for me for now. I tried it with a different brand of EPROM using a regular 4K 2600 board and it does not work. So, there must be some subtle difference between the Harmony, Emulation and normal 4K boards that prevent this binary from working on a normal board (and the Imagic kiosk would fit into that latter category). Any ideas? ..Al Quote Link to comment Share on other sites More sharing options...
Joe Musashi Posted October 25, 2012 Share Posted October 25, 2012 That's very strange. One thing that's special about this binary is that it sets vblank only when syncing, but the original kiosk rom does this as well, and it seems to work on your monitor. Another thing I could think of is that the harmony menu already does some intialization that is missing when the program is run from an EEPROM. Here's another version you could try for testing. It uses standard blanking and is assembled as 4K. It also has a modified initialization routine. AtariAgeKiosk_20121025.bin Quote Link to comment Share on other sites More sharing options...
Albert Posted October 25, 2012 Author Share Posted October 25, 2012 That's very strange. One thing that's special about this binary is that it sets vblank only when syncing, but the original kiosk rom does this as well, and it seems to work on your monitor. Another thing I could think of is that the harmony menu already does some intialization that is missing when the program is run from an EEPROM. Here's another version you could try for testing. It uses standard blanking and is assembled as 4K. It also has a modified initialization routine. This binary DOES work on my 4K board! I'm going to plug it into the kiosk and see what happens. BRB! ..Al Quote Link to comment Share on other sites More sharing options...
Albert Posted October 25, 2012 Author Share Posted October 25, 2012 Success! Now to put it all back together and hope that it continues to work! ..Al Quote Link to comment Share on other sites More sharing options...
Albert Posted October 25, 2012 Author Share Posted October 25, 2012 Reassembled and still works! Thanks for modifying the default menu binary, I look forward to having two of these running at next year's PRGE! The display looks much better than it does in this photo, gets washed out with the flash. ..Al 2 Quote Link to comment Share on other sites More sharing options...
the.golden.ax Posted October 25, 2012 Share Posted October 25, 2012 Sweet, now send me an chip for my kiosk Quote Link to comment Share on other sites More sharing options...
Albert Posted October 25, 2012 Author Share Posted October 25, 2012 Sweet, now send me an chip for my kiosk Sure, send me your address. ..Al 1 Quote Link to comment Share on other sites More sharing options...
Joe Musashi Posted October 25, 2012 Share Posted October 25, 2012 Reassembled and still works! Thanks for modifying the default menu binary, I look forward to having two of these running at next year's PRGE! The display looks much better than it does in this photo, gets washed out with the flash. ..Al Great to see it working! The problem with the previous version was most probably just the missing timer initialization. I don't think you want to disassemble and assemble it again , so just in case and for all others who want to try it here's the (hopefully) final version. Like the original ROM, this is again 2KB and uses the non-standard blanking. This avoids black borders on top and bottom, but it may not work on all TVs. AtariAgeKiosk_20121026.bin AtariAgeKiosk_20121026.zip Quote Link to comment Share on other sites More sharing options...
Albert Posted October 25, 2012 Author Share Posted October 25, 2012 I don't think you want to disassemble and assemble it again , so just in case and for all others who want to try it here's the (hopefully) final version. Like the original ROM, this is again 2KB and uses the non-standard blanking. This avoids black borders on top and bottom, but it may not work on all TVs. Ahh! I didn't even notice that until I went back and looked at the photos I posted. in the last photo I posted you can clearly see the black bar at the top, but that 1702 isn't adjusted properly. You can easily center the image vertically, which I obviously need to do on that particular monitor. Not a big deal to me, but interesting nonetheless. Thanks again for putting this together, looks great! ..Al Quote Link to comment Share on other sites More sharing options...
Albert Posted October 28, 2012 Author Share Posted October 28, 2012 I've setup a second Imagic Kiosk with the AtariAge binary. I'm bringing both of these to the Houston Area Arcade Expo on Friday and they will be loaded up with homebrew games! Unfortunately no Melody-based games work in these kiosks (Epic Adventure, Epic Magician Returns II, Chetiry, Star Catle, Space Rocks, etc.), and only a small percentage of bankswitch games work in one of them. Still, should be able to load up 48 unique homebrew games I dumped the ROM in this second kiosk since it's PAL. Not sure if that's been dumped and/or made available before, so I've attached it to this post. ..Al Imagic_POP_Kiosk_PAL.bin Quote Link to comment Share on other sites More sharing options...
+Omegamatrix Posted October 28, 2012 Share Posted October 28, 2012 (edited) It is a new rom, Al. It is a 2k rom, and both halves match each other in the 4k rom you posted: imagic_pop_kiosk_pal(2k).bin I haven't gone through the rom, but it looks like they simply colored the other logos black on the screen to hide them. They are easily still seen on the screen by using ALT "," (that is alt-comma) in Stella. The new AA rom looks great. Edited October 28, 2012 by Omegamatrix Quote Link to comment Share on other sites More sharing options...
Albert Posted October 28, 2012 Author Share Posted October 28, 2012 It is a new rom, Al. It is a 2k rom, and both halves match each other in the 4k rom you posted: Whoops, that was my bad, I didn't change the device type before I read the EPROM. It's only a 2716 (2K) device. Interesting that the device programming software doubled up the image. ..Al Quote Link to comment Share on other sites More sharing options...
YANDMAN Posted May 29, 2013 Share Posted May 29, 2013 These things are beautiful! Quote Link to comment Share on other sites More sharing options...
Dionoid Posted May 12, 2020 Share Posted May 12, 2020 (edited) On 9/23/2012 at 10:04 PM, Omegamatrix said: I made a second version of the Atari Logo. It only uses 1 byte of ram, and it uses less rom then before. I pulled off a few tricks to get it all in a rom loop, but managed it with zero cycles to spare. AtariLogo2.zip 4.37 kB · 184 downloads ORG $9600 DoAtariLogo: sty TIM8T ;@65 sta PF1 ;@68 .loopAtariAgeLogo: ldx #<COLUBK ;@70 use JSR address to color BK, PF txs lda AALogoTab,Y ;@76 ;--------------------------------------- sta GRP0 lda AALogoTab+1,Y sta GRP1 lda AALogoTab+2,Y sta GRP0 lda AALogoTab+3,Y sta tempOne lda AALogoTab+4,Y ldx AALogoTab+5,Y ldy tempOne jsr ColorAtariAge ;@41 ORG $9627 ColorAtariAge: sty GRP1 ;@44 sta GRP0 stx GRP1 sta GRP0 lda #COL_BACKGROUND sta COLUBK sta COLUPF ldy INTIM ;@65 use INTIM for quick decrement/load bne .loopAtariAgeLogo ;@67/68 ;Y=0, X=$FF txs sty GRP1 sty GRP0 sty GRP1 sty ENAM0 sty ENAM1 sty PF0 sty PF1 Thanks for sharing this code, @Omegamatrix! I like your trick of changing the stack pointer to COLUBK and then using a single JSR instruction to set both BK and PF colors. And luckily the chosen colors look similar on both NTSC and PAL! I also see that you're using TIM8T as automatically decrementing index in the graphics data, which is a cool trick that I never saw before. This is my analysis: because each scanline is 76 cycles, this means that reading INTIM each scanline (76/8) will give you a decrement alternating between 9 and 10, which you have countered by using 3 or 4 free bytes in the gfx tables. Am I correct? Edited May 12, 2020 by Dionoid Quote Link to comment Share on other sites More sharing options...
+Omegamatrix Posted May 13, 2020 Share Posted May 13, 2020 Hello Dionoid, I don't have the code in front of me, but essentially yes the data is padded with some bytes that are never read due to timing. I believe I use TIM8T in this routine, but TIM64T can be used as well. Using the timer as loopcounter saved a few cycles in the code above. Another not so obvious use of timers include temp storage. TIM1T set and read at certain cycle is good for this. I think I did this in an unrolled loop once. T1024T I used in the original Circus AtariAge Demo as a counter for the balloon row index. T1024T is also useful for tempstorage loaded a few scanlines later as the original value -1, because the first thing the timer does is auto-decrement by 1. This won't work out for a value of 0, of course. Bashing the color registers with JSR is a useful trick. BRK can also be used for that. There was thread somewhere that we did that before. Other uses off the top of my head are for the RESxx registers. Actually, there are probably a few more combinations that could be done too, like the AUDxx or HMxx registers, CTRLPF, etc... Anyhow, here is another demo I did with JSR. While we often see color changes horizontally (scanline by scanline), this demo aims to have many different colors vertically. I was able to do 14 unique color changes per line with this method. 2 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.