José Pereira #1 Posted September 15, 2011 Some days ago someone write in thread about 'using 130XE 'special Modes', or something like this... Then there's this today: "Next, the Video Blitz demo originally requires a 128k A8 machine with sep. Antic access. Thanks to TeBe for a conversion of this demo (named "Video") and many thanks to Hias for patching the original Video Blitz demo, so that it now works on any 128k A8 machine even without sep. Antic access..." What is this special Modes and what is this 'sep. ANTIC acess' (I think it's 'separate')? Quote Share this post Link to post Share on other sites
Rybags #2 Posted September 15, 2011 130XE "Seperate Antic access" means that the CPU and/or Antic can have fetches from $4000-$7FFF redirected to Extended RAM banks. The "Special Modes" are hardly ever used. You can have 4 times as much graphics data going to Antic, so e.g. you can have 16 colours in the 320x mode or 256 colours in the 160x modes. Quote Share this post Link to post Share on other sites
snicklin #4 Posted September 15, 2011 The "Special Modes" are hardly ever used. You can have 4 times as much graphics data going to Antic, so e.g. you can have 16 colours in the 320x mode or 256 colours in the 160x modes. Really? And these modes are accessible?? Are there any demos of this? Quote Share this post Link to post Share on other sites
José Pereira #5 Posted September 15, 2011 130XE "Seperate Antic access" means that the CPU and/or Antic can have fetches from $4000-$7FFF redirected to Extended RAM banks. The "Special Modes" are hardly ever used. You can have 4 times as much graphics data going to Antic, so e.g. you can have 16 colours in the 320x mode or 256 colours in the 160x modes. Another one that is: Quote Share this post Link to post Share on other sites
+rdemming #6 Posted September 15, 2011 Some days ago someone write in thread about 'using 130XE 'special Modes', or something like this... Then there's this today: "Next, the Video Blitz demo originally requires a 128k A8 machine with sep. Antic access. Thanks to TeBe for a conversion of this demo (named "Video") and many thanks to Hias for patching the original Video Blitz demo, so that it now works on any 128k A8 machine even without sep. Antic access..." What is this special Modes and what is this 'sep. ANTIC acess' (I think it's 'separate')? The only thing "special" about 130XE ANTIC modes, is that the extended memory can be turned on separately for the CPU or ANTIC. So the options are: CPU and ANTIC see regular memory at $4000-$7FFF CPU sees extended memory while ANTIC sees regular memory at $4000-$7FFF CPU sees regular memory while ANTIC sees extended memory at $4000-$7FFF Both CPU and ANTIC see extended memory at $4000-$7FFFF Using this, the CPU could execute code from $4000-$7FFF while the ANTIC/GTIA displays graphics from $4000-$7FFF (both seeing different data of course). The problem/limitation is that the extended memory bank the CPU and ANTIC see, is the same for both. It would be more useful if the bank number ANTIC/CPU see could be selected separately from each other. Robert Quote Share this post Link to post Share on other sites
José Pereira #7 Posted September 15, 2011 Some days ago someone write in thread about 'using 130XE 'special Modes', or something like this... Then there's this today: "Next, the Video Blitz demo originally requires a 128k A8 machine with sep. Antic access. Thanks to TeBe for a conversion of this demo (named "Video") and many thanks to Hias for patching the original Video Blitz demo, so that it now works on any 128k A8 machine even without sep. Antic access..." What is this special Modes and what is this 'sep. ANTIC acess' (I think it's 'separate')? The only thing "special" about 130XE ANTIC modes, is that the extended memory can be turned on separately for the CPU or ANTIC. So the options are: CPU and ANTIC see regular memory at $4000-$7FFF CPU sees extended memory while ANTIC sees regular memory at $4000-$7FFF CPU sees regular memory while ANTIC sees extended memory at $4000-$7FFF Both CPU and ANTIC see extended memory at $4000-$7FFFF Using this, the CPU could execute code from $4000-$7FFF while the ANTIC/GTIA displays graphics from $4000-$7FFF (both seeing different data of course). The problem/limitation is that the extended memory bank the CPU and ANTIC see, is the same for both. It would be more useful if the bank number ANTIC/CPU see could be selected separately from each other. Robert And where that Rybags talking of that colours in Hi-Resol. and 160p enters into this? Quote Share this post Link to post Share on other sites
Rybags #8 Posted September 15, 2011 No, I just used the italics as a subtle hint that I was bullshitting. Antic extended memory access doesn't really allow any special tricks. I guess one "advantage" is that in theory you could have 2-5 screen buffers in the exact same memory location and be able to use optimised code that renders directly to them, e.g. software strip sprites. Quote Share this post Link to post Share on other sites
José Pereira #9 Posted September 15, 2011 No, I just used the italics as a subtle hint that I was bullshitting. Antic extended memory access doesn't really allow any special tricks. I guess one "advantage" is that in theory you could have 2-5 screen buffers in the exact same memory location and be able to use optimised code that renders directly to them, e.g. software strip sprites. It's not 1st April... That now makes sense and that's what I always thought about it's use... Quote Share this post Link to post Share on other sites
+rdemming #10 Posted September 15, 2011 I guess one "advantage" is that in theory you could have 2-5 screen buffers in the exact same memory location and be able to use optimised code that renders directly to them, e.g. software strip sprites. The problem with a sensible use of the separate access is that both the CPU and ANTIC sees the same memory. Thus a double buffer system would not work. Actually you want that ANTIC is displaying data from buffer 1 (front buffer) while the CPU is updating the screen data in buffer 2 (back buffer). And then swapping the memory bank during VBLANK. Unfortunately, this is not possible with the current setup since the CPU can only update the same memory bank as the ANTIC is displaying. It could be used for animation as the VideoBlitz demo is using. But the same can be done without separate access as long as the CPU does not execute code from extended banks. Maybe it is more useful for animated character graphics used in various games. You could store different fonts in different banks and switch fonts during vblank for animation. So you could have 16 frames of animation per 16KB bank without using main memory. Robert Quote Share this post Link to post Share on other sites
Rybags #12 Posted September 15, 2011 Actually, I was going to say "The 130XE special mode was first shown in the TubGirl demo at the LemonParty 1996 Retro Convention" but I don't think too many would be happy with what they saw if they did a search on it. Quote Share this post Link to post Share on other sites
snicklin #13 Posted September 15, 2011 No, I just used the italics as a subtle hint that I was bullshitting. Rybags! Being British I can normally detect sarcasm, but it's a little difficult when in text and not speech! (though I really should have paid attention to the italics!) Quote Share this post Link to post Share on other sites
31336haxx0r #14 Posted September 15, 2011 I'm a bit confused. Let's assume the program switches back and forth between # CPU sees extended memory while ANTIC sees regular memory at $4000-$7FFF and # CPU sees regular memory while ANTIC sees extended memory at $4000-$7FFF. And then this comes into play: "Unfortunately, this is not possible with the current setup since the CPU can only update the same memory bank as the ANTIC is displaying." Couldn't the ANTIC display extended memory content while the CPU writes to regular memory and then during VBLANK switch ANTIC to reg. mem. und CPU to extd. mem.? Quote Share this post Link to post Share on other sites
simonl #15 Posted September 15, 2011 I'm a bit confused. Let's assume the program switches back and forth between # CPU sees extended memory while ANTIC sees regular memory at $4000-$7FFF and # CPU sees regular memory while ANTIC sees extended memory at $4000-$7FFF. And then this comes into play: "Unfortunately, this is not possible with the current setup since the CPU can only update the same memory bank as the ANTIC is displaying." Couldn't the ANTIC display extended memory content while the CPU writes to regular memory and then during VBLANK switch ANTIC to reg. mem. und CPU to extd. mem.? This is what I had in mind in the Sub Hunter thread. Then if you have unrolled code, lookup tables etc. they are always referring to $4000-$7FFF whichever of the two frame buffers you are updating, so you only need one set. The only thing I can't remember is where PMG DMA takes place - is this affected by the CPU setting, the ANTIC setting or neither? Cheers, Simon Quote Share this post Link to post Share on other sites
31336haxx0r #16 Posted September 15, 2011 I vaguely remember ANTIC does all the DMA handling. I'm not too sure about, though. Quote Share this post Link to post Share on other sites
simonl #17 Posted September 15, 2011 I vaguely remember ANTIC does all the DMA handling. I'm not too sure about, though. If so, you could also double buffer any PMGs, I will have to check this sometime if noone knows off the top of their head Otherwise I suppose you could just stick PMBASE somewhere else in memory and update that data during VBLANK as normal. Cheers, Simon Quote Share this post Link to post Share on other sites
+rdemming #18 Posted September 15, 2011 I'm a bit confused. Let's assume the program switches back and forth between # CPU sees extended memory while ANTIC sees regular memory at $4000-$7FFF and # CPU sees regular memory while ANTIC sees extended memory at $4000-$7FFF. And then this comes into play: "Unfortunately, this is not possible with the current setup since the CPU can only update the same memory bank as the ANTIC is displaying." Couldn't the ANTIC display extended memory content while the CPU writes to regular memory and then during VBLANK switch ANTIC to reg. mem. und CPU to extd. mem.? In this case you are right when flipping between buffers in main and extended memory. But not if both buffers are in extended memory and that is what I want to save main memory for other things. But flipping between main and extended memory can be very useful too so I stand corrected. Robert Quote Share this post Link to post Share on other sites
Bryan #19 Posted September 15, 2011 Actually, I was going to say "The 130XE special mode was first shown in the TubGirl demo at the LemonParty 1996 Retro Convention" but I don't think too many would be happy with what they saw if they did a search on it. Alright! I demand to know who has hacked Gary's account! Quote Share this post Link to post Share on other sites
+tf_hh #20 Posted September 16, 2011 And then this comes into play: "Unfortunately, this is not possible with the current setup since the CPU can only update the same memory bank as the ANTIC is displaying." Couldn't the ANTIC display extended memory content while the CPU writes to regular memory and then during VBLANK switch ANTIC to reg. mem. und CPU to extd. mem.? No, because only one "register" exists for the selected memory bank. Depending on the implementation of the memory expansion (in this case: with seperate ANTIC access) the PIA portbits 0, 1, 2, 3, 6 and 7 are selecting the desired memory bank. If portbit 4 is zero, then CPU is accessing the selected memory bank, otherwise the CPU uses normal main memory. If portbit 5 is zero, than ANTIC uses the selected memory bank for display list and display memory instead of usage the normal main memory. Problem: Any changes to the bank-number affects both processors, CPU and ANTIC. So it´s not possible to calculate, render etc. using the CPU in background, while ANTIC is displaying graphics from a memory bank with precalculated contents. The programmer can only switch between main memory and ONE of the memory banks... or loading graphics in each bank and display them in a slideshow - like VideoBlitz does. This is IMHO the main reason, why the seperate ANTIC mode in memory expansions is nice, but not very useful. Quote Share this post Link to post Share on other sites
31336haxx0r #21 Posted September 16, 2011 The programmer can only switch between main memory and ONE of the memory banks... One memory bank will suffice for a framebuffer with display list. The other bnaks could be used for title screens, menus, etc. Quote Share this post Link to post Share on other sites
flashjazzcat #22 Posted September 16, 2011 Software (interlaced) 80 column mode in Acid test would have been a good candidate for Antic extended mode. It looks really good, but takes 16KB. Quote Share this post Link to post Share on other sites
kurtm #23 Posted September 16, 2011 And then this comes into play: "Unfortunately, this is not possible with the current setup since the CPU can only update the same memory bank as the ANTIC is displaying." Couldn't the ANTIC display extended memory content while the CPU writes to regular memory and then during VBLANK switch ANTIC to reg. mem. und CPU to extd. mem.? No, because only one "register" exists for the selected memory bank. Depending on the implementation of the memory expansion (in this case: with seperate ANTIC access) the PIA portbits 0, 1, 2, 3, 6 and 7 are selecting the desired memory bank. If portbit 4 is zero, then CPU is accessing the selected memory bank, otherwise the CPU uses normal main memory. If portbit 5 is zero, than ANTIC uses the selected memory bank for display list and display memory instead of usage the normal main memory. Problem: Any changes to the bank-number affects both processors, CPU and ANTIC. So it´s not possible to calculate, render etc. using the CPU in background, while ANTIC is displaying graphics from a memory bank with precalculated contents. The programmer can only switch between main memory and ONE of the memory banks... or loading graphics in each bank and display them in a slideshow - like VideoBlitz does. But that's what he just proposed, flipping between main memory and *one* bank. Quote Share this post Link to post Share on other sites