Jump to content


+AtariAge Subscriber
  • Content Count

  • Joined

  • Last visited

  • Days Won


Xuel last won the day on May 7 2018

Xuel had the most liked content!

Community Reputation

806 Excellent

About Xuel

  • Rank

Profile Information

  • Gender
  • Location
  1. I demoed 30FPS "RastaMovies" on a 600XL using my 140MB memory expansion back in 2012. You can read about it and see a YouTube video here. I think the technique could be applied to a 128MB The!Cart cart. It's a little tricky since the max bank size on The!Cart is only 16KB so a bank switch would have to occur mid-screen if you want full-screen video.
  2. I'm afraid not yet but it's still on my TODO list.
  3. Oh, and each sprite can independently be either be hi-res or lo-res. Again, the hi-res sprites are single-color and transparent, and the lo-res sprites all share two colors and have one independent color. See section 3.8 of VIC-Article.txt. You can overlay hi-res sprites to gain more colors. That appears to be the case for the Mario sprite, for example. And you can reposition already drawn sprites mid-screen to gain more than the eight natural sprites supported by the VIC.
  4. The C64 VIC chip has a text mode where you can independently select hi-res or low-res for each character on screen. See section "Multicolor text mode (ECM/BMM/MCM=0/0/1)" in VIC-Article.txt. You can see this being used in myriad C64 games and demos, e.g. the Turrican series. The hi-res characters all have to use the same background color but can select one of 8 colors for the foreground.
  5. Maybe check you HSCROL setting? Higher values will shift the screen to the left.
  6. Rereading your message, looks like you may be mixing terms. WSYNC is for scan line synchronization while VSYNC and VCOUNT would be for vertical blank synchronization. What is your use case? If you just want to wait for the vertical blank, then you can loop on RTCLOK: char *jiffies, prev; jiffies = (char*)20; prev = *jiffies; while (prev == *jiffies) ; /* synced to vblank here */
  7. You can just write any value to WSYNC: __asm__ ("sta $D40A"); If you want to guarantee the next instruction starts on exactly cycle 105, then you can INC WSYNC as long as you know the INC will occur complete by cycle 103: __asm__ ("inc $D40A"); Altirra Hardware Reference Manual exceprt: 4.9 WSYNC A write to WSYNC [D40A] halts CPU execution until the end of a scan line, allowing the CPU to synchronize to the display.
  8. 160 color clock 16-color mode would have blocked the DRAM refresh cycles too, no? Maybe they could have been moved to the HBLANK period.
  9. This is very cool. I googled your joystick tester so I could try it. I thought others might like to try it as well. Hope you don't mind me sharing the links I found: Forum post: http://www.atariware.cl/aw/foro/viewtopic.php?f=4&p=20400#p20467 XEX on Github: https://github.com/ascrnet/TestJoy2B/releases Github project: https://github.com/ascrnet/TestJoy2B Great work! And thanks to phaeron for Altirra support.
  10. Documentation excerpt: Inside strings, special characters can be specified by using a backslash followed by an hexadecimal number in upper-case, (i.e., "\00\A0" produces a string with a "hearth" and an inverse space), this allows editing special characters on any ASCII editor. Note that to force a backslash before a valid hex number, you can use two backslashes (i.e., "123\\456" produces123\456). You can find an ATASCII to hex table here: https://en.wikipedia.org/wiki/ATASCII
  11. Yeah, I think there's some confusion in this thread as people are talking about two different things. One is my bird movie XEX linked in post #1. That is emulation-only. It relies on the fact that XEX segment loads are instantaneous from the perspective of the emulated Atari. The second is phaeron's excellent 60 FPS IDE video player as first announced here. I agree that instantaneous XEX loads are useful for testing extreme throughput ideas. Some other examples: 2-bit chroma, 2-bit luma video using PAL blending: http://atariage.com/forums/topic/197450-mode-15-pal-blending/?p=2611298 4-bit chroma with 2-bit and 4-bit luma using PAL blending: http://atariage.com/forums/topic/211689-60-fps-video-using-side-2/?p=2763806
  12. That was from me. More here: http://atariage.com/forums/blog/387/entry-9460-atari-beaglebone-expansion/
  13. P2 and P3 are shifted left and right by 3 pixels compared to P0 and P1. P2 right bump = 3: Memory $4396 File $95fb P3 left bump = 3: Memory $439e File $9603 Here's what it looks like with left and right shifts of 0: mr-robot-shield-0-shift.xex Note that P0 and P1 always draw on top of P2 and P3. To make the shield cover the robot, you'd have to draw the robot with P2/P3 and the shield with P0/P1. This would require more significant surgery to the code. You'd have to swap all register writes and modify the pages that are written to for the PMG bitmap data.
  14. Change P2/P3 color in Altirra: e 4e8b $34 File location: $95f0 (38384) mr-robot-shield-34.xex mr-robot-shield-36.xex mr-robot-shield-ec.xex mr-robot-shield-ee.xex Unix command to create all of these different versions without manual hex editing: for f in 34 36 ec ee; do perl -p -0777 -e 'substr($_,0x95f0,1)=chr 0x'$f < Mr\ Robot\ and\ His\ Robot\ Factory\ \(Bender\ hack\).xex > mr-robot-shield-$f.xex; done
  15. You can change the robot's secondary color in Altirra with the following command: e 4164 94 You can make this permanent by changing location $1e93 (7827) in the .XEX file. Likewise, to enable 3-color PMGs: e 419d 31 .XEX: $1ecc (7884) Unfortunately, you cannot have two shades of gray and a color with OR'ed PMGs due to the ordering of the palette. The way 3-color PMG's works is that each pixel's color is the OR of player #0's and player #1's colors at that pixel, where the player's color is either transparent or some color depending on whether that pixel's bit is set in the PMG bitmap. So, to take Jose's example where P0's color is $C and P1's color is $94, then the possible colors are as follows: Hue Luma P0 0000 0000 ($00) Transparent P1 0000 0000 ($00) Transparent --------------- P0+1 0000 0000 ($00) Transparent Hue Luma P0 0000 0000 ($00) Transparent P1 0000 1100 ($0C) Light Grey --------------- P0+1 0000 1100 ($0C) Light Grey Hue Luma P0 1001 0100 ($94) Dark Blue P1 0000 0000 ($00) Transparent --------------- P0+1 1001 0100 ($94) Dark Blue Hue Luma P0 1001 0100 ($94) Dark Blue P1 0000 1100 ($0C) Light Grey --------------- P0+1 1001 1100 ($9C) Light Blue mr-robot-color-0c-94.xex EDIT 2019-01-23: Change P1/P2 to P0/P1.
  • Create New...