Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by NRV

  1. Nice! more PC tools are always well received future plans? Greetings (by the way.. I got an error when the exit operation was closing all those screens)
  2. Hi. I should say that right now there is no "vertices", because this will use a raycaster to get the rows (columns) that will be "feed" to the renderer (that is almost final). The renderer can display every row from 0x to 1x to 2x in vertical size, using the same information.. in other words I only use one picture, with 8 textures, to do all the scaling that you see in the demo. Well, I have one "mip map" that is one quarter of the vertical size and is used when the scaling is too small, because you start losing too much information just discarding lines (you can see the moment when is used if you set the "manual" mode and scale the size to something like 12 lines). When my raycaster is ready it should be mostly a "plug n play" thing with the current renderer. My plan for this is to have smooth rotations, not use any multiplication or division, use precalc data, clever algorithms and be very fast.. wish me luck I would say that there is one frame, and two lines even and odd .. the lines 0, 2, 4, 6.. are GTIA 11 and the lines 1, 3, 5, 7.. are GTIA 9. You see correctly the GTIA 11 line, but every pixel in the GTIA 9 line use its own brightness plus the color of the upper pixel in the GTIA 11 line And I'd love to see the next demo of WOTEF this is my old raycaster renderer from years ago.. (use the arrow keys to move and rotate in 90 degrees) old_raycaster.zip it is very fast, 50 FPS in PAL, 60 in NTSC, most of the time.. it's not fully optimized, because I have better ideas now, but I think that AT LEAST you should wait for something like this (running at 25 FPS) with the final "engine" but this is the good thing of this forum.. it's already a "cooperation" thing. You, Rybags, Phaeron, the people that give feedback (good or bad) are already helping with this project. Also I do this for fun and to see how far can it get, but I will ask for help when I need it (hint* music *hint). And no, I don't plan to be RICH with this, because I don't think that selling a game that is still selling copies in a lot of platforms would be a wise idea (but, the technology could be used to do other things..) Regards (going back to work-mode)
  3. just GTIA 11 and 9 interleaved lines to have the 256 colors on screen, but only on PAL.. I don't know what you really see in NTSC (I suppose I should test it.. I only have NTSC hardware ) you can see the players used for HUD like effects, by pressing the "P" key.. but yes, they can be used for one enemy, with better resolution, for example.. Regards
  4. Thanks, I think that I don't have another option right now
  5. great! going to use it.. Have you tested it on any emulator? haha Can we hope "perfect IRQ emulation" from Altirra? ( pleeeeeeeease ) Regards
  6. I hope to do it a lot better than Mood ... I suppose the c64 can do better anyways, the other time someone posted a link to a demo that have a 3d maze part that looked very nice.. not with 256 colors, but with better resolution I have seen the ZX demo, but they said that the machine is running in some kind of turbo mode.. but I like the bob up and down effect and some tricks they use to draw the sprites Regards
  7. I'm going to talk about the emulator, but I suppose that in this area the behavior is the same that on a real machine.. The answer is "almost not".. I started doing something like this for every scanline (also in narrow-screen, with the OS switched out and no NMI handler) : DLI1_address sta m_saveA lda #PRV_GTIA_11 sta PRIOR lda #<DLI2_address sta NMIH_VECTOR lda m_saveA rti ;---------------------------------------- ; display list interrupt 2 code DLI2_address sta m_saveA lda #PRV_GTIA_9 sta PRIOR lda #<DLI1_address sta NMIH_VECTOR dec m_dliLineCounter beq DLI2_last_line lda m_saveA rti ;---------------------------------------- DLI2_last_line lda #64 sta m_dliLineCounter ; reset last line counter lda #0 ; reset PRIOR to 0 for the rest of the screen sta wsync sta PRIOR lda m_saveA rti and it worked when I have a main loop of the type: "MainLoop jmp MainLoop" but when used in a real program, the "jitter" in the response of the interruption sometimes missed the start of the line.. so I thinked what thing I could still do.. and did this crazy thing: DLI1_address stx PRIOR ldx #PRV_GTIA_9 sta m_dliSaveA lda #<DLI2_address sta NMIH_VECTOR lda m_dliSaveA rti ;---------------------------------------- ; display list interrupt 2 code DLI2_address stx PRIOR ldx #PRV_GTIA_11 sta m_dliSaveA lda #<DLI1_address sta NMIH_VECTOR dec m_dliLineCounter beq DLI2_last_line lda m_dliSaveA rti ;---------------------------------------- DLI2_last_line lda #MAX_DLI_LINE_CTD sta m_dliLineCounter ; reset last line counter lda #0 ; reset PRIOR to 0 for the rest of the screen sta wsync sta PRIOR lda m_dliSaveA rti basically, sacrificed the "X" register for ALL the code... don't do that! (it worked for sometime.. until I really needed two indexes ) Hi Heaven!
  8. Thanks for the code! I will try to integrate and test it in real hardware before the weekend. I have a 130XE at hand but I need to write a real disk for every test (I only have a 1050 to PC cable), so is a little slow (and the drive sometimes fails).. well, if not I will try to post some new versions to see which one works I started using DLI's but I need to waste too much time with them, because I cannot do the change before the start of a line.. IRQ's seem to be the best way. I would like to try using the 1.79 clock, I can live without a sound voice, but is nice to have the "other clocks" alternative (by the way, Miker already did a good ambient song using the clock in 15khz with 3 voices .. I will attach it to the demo and post a new version soon). If you do your Pokey-init code please post it! Yeah, I also don't know why people don't used APAC for games... well I know the problems, you need to use IRQ's so you don't lose too much time, only works in PAL and the overall brightness is lower.. but yet the results are very good. My primary goal is still to do something in 64K that is very playable and fast.. between 20 and 30 FPS, lower than that I see it as a failure (sounds drastic but if I don't try I will never now ) .. in this moment, I can have this graphics and the functionality of AR at 25FPS, easily (there are no moving objects there).. my final raycaster, with smooth rotations should also have a similar frame rate, so it all depends on how many objects I want in screen at the same time.. and I think you can design a fun game that don't need that many objects (or don't show them to you all at once ) Also, full GTIA 10 and 9 screens alone provide some interesting possibilities.. Regards!
  9. thanks.. well, you are somehow guilty of this As promised, here is the code that I use to set the GTIA 11+9 graphic mode: gmode.zip the DL's are a little over complicated and I am only showing the first buffer, but the main code is there.. you can see where the changes are made because the COLBK color is different than 0 Mr. Rybags, could you post your changes and the code to sync the start of the IRQ's? so I can do a version that works directly on a real machine? thanks! NRV
  10. hmmm I had that kind of problem trying to make it work in the emulator, something like needing to add or remove a line in the DL or moving the DLI that starts all IRQ's one line up or down.. I will try to post some small demo code tomorrow to work over that, thanks for the help! I really don't know the correct method to sync the starting IRQ.. at one moment I wasn't even using STIMER and all seemed to work right in the emulator, but then I added some code and the lines that should be GTIA 9 were 11 and the GTIA 11 were 9.. going to sleep and then to work Regards
  11. don't worry, I'm reading that thread well, I don't used 1.79 because I believed that it doesn't worked in the emulator (and that's my main development platform right now), but if it's the best solution I will use it, you are right.. anyway I suppose that it should not be that difficult to sync the start of the IRQ's to the right position (in a real machine) and then the rest should follow in sync (and I'm not using DLI's in between) There are no 3D calculations right now (that would be provided by the raycaster), in the "automatic" mode the height of every row is changed based on some sinus tables, there is no "real perspective" yet, only Y-scaling (that's why the textures seems to be "wider" when you reduce the height in the "manual" mode).. for that I probably will use other kind of mip map than the one that I'm using right now
  12. Hi, I wanted to share a new project. This is the first part and is a test of the "renderer", the scaling system, a lot of optimizations and some software sprites. The second part will be the raycaster and moving around a level. The third part will have moving enemies, static objects and the interactions with them. PM_1.zip The graphic mode has 128 scanlines of GTIA modes 11 and 9 (interleaved, to get the PAL chroma effect for 256 colors), with a narrow field (32 bytes per line, 4096 bytes per buffer), so we have 64x64 "virtual" pixels. It's double buffered to avoid tearing. The GTIA 11+9 mode is done using IRQ's every 2 scanlines, with the 15KHz clock, so I lose an audio voice and the "normal" clock. I have not tested it in real hardware yet, so probably the IRQ initializing will need some adjusts. Keys: I: Interactive mode ON/OFF (when "ON" you can move and scale the screen holding down the arrow keys) P: switch between some Player/Missile effects (used for transparent "Hud like" effects, and the color bar is there to check the VCOUNT values) S: switch between 0, 1 or 2 software Sprites. The code for the sprites is unrolled, but is not fully optimized right now.. is just to add a more "real" load to the engine. L: switch between two "frame rate Lock" modes. It starts with the frame rate "unlocked", but if you add the 2 software sprites you can see the frame rate going down to 30 FPS. If you press L, then the frame rate is locked to 25 FPS in PAL (20 in NTSC) and all is more smoother. My final target is something near 25 FPS. Also you can see that the speed of the "barrels" is independent of the frame rate, that is because I use the "delta time" between frames to update its positions (counting VCOUNT lines). I don't used that for the background movement so you can see the difference. My next goal is a raycaster that supports smooth rotations and strafe. I have done a fast (but simple) raycaster before and I have most of the problems for the new one solved on paper.. yeah, I could use the old one already, but it's not the idea I'm not planning to do a full conversion (maybe the first level), just getting to the point where it will be easy to do something new. Having the 256 color is veeeery nice, but is a luxury.. not that much for the IRQ's (where I lose like 3000 cycles per hardware frame), but also for the resolution extra cycles and the memory. I can do a version for GTIA 9 (a dungeon like game, with more "lighting" effects) or GTIA 10 (using different colors per row) that could be a lot faster (and can look "better" in some ways).. and also work in NTSC. I think I can do a game in 64K with this (right now I'm using like 40K, but I have not optimized for memory yet), but speed and graphic variations would improve by using a 130XE.. Tools: Mads 1.9.0.b14, ConTEXT editor, Atari800Win PLus version 4.0, Gimp 2, Irfanview 4.2 and my own graphic tools and converters. Special thanx to Space Harrier XE for inspiration, some AtariAge threads and c64 users for "motivation" If someone wants to do some "ambient" music (in RMT), that only use 3 voices and the main clock in 15Khz, I will be happy to add it to the next technical demo. Regards!
  13. Nice game! I always liked the idea of doing some kind of sequel to Yars.. muahaha.. you are trapped..
  14. nice pictures seriously, we should be able to use the old red/blue glasses for a picture or demo (if we had a real red color, that is..) hmmm.. a blue/red version of Ballblazer or Encounter.. that could be nice
  15. remember that with that change, probably, you are going to complicate the collision checks and also how to determinate over what tile is really the player (you now can touch 4 tiles at a time).. hmmm.. so maybe we can hack the original to do "smooth" rotations and strafe?
  16. Some IRQ modes are not implemented? Some POT scan modes? also I think I have crashed Atari800Win using some "invalid" Display Lists, like using infinite loops with the jump instruction or something like that.. Regards
  17. also you don't need to wait forever for the "key up" condition, if you have the previous CONSOL value stored you can do the font change only when the old value is "not pressed" and the new value is "pressed".. (acting only in the "key down" condition) (and I don't think clearing CONSOL is necessary)
  18. Nice work! I didn't knew the game by the way.. NRV
  19. Thanx! (I will try not to use that kind of names for my labels )
  20. I sometimes think about doing something like that for a PC tool, maybe using some kind of iterative process.. see this for example: http://rogeralsing.com/2008/12/07/genetic-...n-of-mona-lisa/ I would start with something simple like using a 160x192, 4 color mode, only changing the 4 colors per line and letting the "algorithm" determinate the best fits per line and per full screen. Then you can add mid-line changes and the Players as underlays. The complicated part could be to get the function that evaluate your current version of the screen against the "real" version, and how to move in the "combination space".. anyway, it's fun Regards.
  21. yes! inclusive a list with all commands grouped by type (macros, arrays, structs..) could be useful.. one question.. (I don't know if is the best place, but..) in previous versions (1.7.5) I was able to compile macros like this: .macro Test1 lda $FFFF beq EndMark EndMark1 .endm .macro Test2 jmp EndMark EndMark2 .endm but in the last versions I get an error "Missing .ENDM" .. is there a new way to do this or just a bug? thanks! NRV
  22. Remember the PC tools: Envision PC: http://atari.miribilist.com/envision/ Antic 4 designer: http://calamari.reverse-dns.net:980/old/co...ools/tools.html With both I did this for example: (also "Mario inspired") Regards (well, with those and some dli's and one player to add more color )
  23. When do you start? Regards! (better yet, "borrow" some of the nice effects for one of your conversions )
  24. nice! you mean that if I start the DL with antic 4 mode and then disable the "instruction fetch", then all the next lines will be antic 4?? inclusive if they are blank lines or other modes in the real DL? what happens if I need a different LMS in every line? or with the other instruction bits (DLI, HSCROL, VSCROL)? (get repeated from the "source" line or use the information in the real line?) thanks NRV
  25. Well, I wouldn't call this an "engine".. but all the code is there http://www.atariage.com/forums/index.php?s...=108283&hl= unrolled code, heavy in memory usage but very fast.. Regards (hi Allas!.. did you see the "human animal part" video ?? ) maybe a little off topic, but I found these two pages today.. very nice http://www.spriters-resource.com/ http://www.spritedatabase.net/
  • Create New...