Jump to content

KK/Altair

Members
  • Posts

    36
  • Joined

  • Last visited

Everything posted by KK/Altair

  1. K65 already saved me more time than it took to write, and enabled making some cool things I wouldn't dare to do with classic assembler, so they sometimes point in the same direction.
  2. Really nice game. I definitely should look into E7 bankswitching one day.
  3. I'm not quite sure which exactly STA happens to early or too late, but if you'd like to split the 2-cycle NOP in half for greater flexibility, you can use shadow registers on the $01xx page. In other words, for every TIA or RAM basic address, there's an alternate location 256 bytes higher. And by using these locations you can easily force the assembler not to use zeropage addressing mode - because the address is not on the zero page. Bad: STA GRP0 ; 3 - let's assume for this example it's 1 cycle too early NOP ; 2 STY GRP1 ; 3 Fix: STA GRP0+256 ; 4 - bullseye! this instruction now takes 1 cycle longer, but on VCS does exactly the same STY GRP1+256 ; 4 - this one needs 1 cycle delay too, to write at 8th cycle exactly as before This trick is VERY useful on the VCS to get 1-cycle NOPs.
  4. Well, that's the table. Measured on a PAL light sixer with a standard voltage multimeter. Of course much better measurement could be made (e.g. by better tools, or possibly automated with an Arduino or something), but this one was enough for my purposes. I tried matching these to a resistor network model, but the measurements failed to match any assumptions I tried, so I just used this table as it is. Also if you'd like complete emulation of TIA sound, I have written complete cycle-exact implementation basing on the TIA internal schematics, including some not really obvious quirks (e.g. the fact that it's actually driven by two clocks). Sadly, it looks like you can't glitch the sound in any meaningful way by exploiting this, which is something I hoped for. AUDF0 AUDF1 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF 0x 4.91 4.88 4.68 4.53 4.28 4.13 3.93 3.78 3.53 3.39 3.22 3.09 2.91 2.79 2.67 2.56 1x 4.89 4.73 4.53 4.37 4.14 3.98 3.79 3.64 3.40 3.26 3.10 2.98 2.80 2.69 2.57 2.47 2x 4.69 4.52 4.33 4.17 3.94 3.78 3.61 3.46 3.22 3.10 2.94 2.83 2.66 2.56 2.45 2.36 3x 4.53 4.37 4.18 4.02 3.80 3.65 3.47 3.33 3.11 2.97 2.83 2.72 2.57 2.47 2.36 2.28 4x 4.28 4.13 3.93 3.78 3.56 3.42 3.25 3.12 2.91 2.79 2.66 2.57 2.43 2.33 2.24 2.16 5x 4.13 3.98 3.79 3.64 3.43 3.29 3.12 3.00 2.80 2.69 2.56 2.47 2.34 2.26 2.17 2.09 6x 3.93 3.79 3.61 3.46 3.25 3.12 2.97 2.85 2.66 2.56 2.45 2.36 2.24 2.16 2.08 2.01 7x 3.79 3.64 3.46 3.32 3.12 3.00 2.85 2.74 2.56 2.47 2.36 2.28 2.17 2.09 2.01 1.95 8x 3.54 3.39 3.23 3.10 2.91 2.80 2.67 2.57 2.41 2.32 2.23 2.16 2.05 1.99 1.92 1.86 9x 3.41 3.26 3.10 2.98 2.80 2.69 2.57 2.48 2.33 2.25 2.16 2.08 1.99 1.93 1.86 1.81 Ax 3.23 3.10 2.95 2.83 2.67 2.57 2.45 2.36 2.23 2.15 2.07 2.00 1.91 1.86 1.80 1.75 Bx 3.10 2.98 2.84 2.72 2.58 2.47 2.37 2.28 2.16 2.09 2.01 1.94 1.86 1.81 1.75 1.70 Cx 2.91 2.80 2.67 2.56 2.43 2.34 2.24 2.17 2.05 1.99 1.92 1.86 1.78 1.73 1.68 1.63 Dx 2.80 2.70 2.57 2.47 2.34 2.26 2.17 2.10 1.99 1.93 1.86 1.80 1.74 1.69 1.63 1.59 Ex 2.67 2.57 2.45 2.36 2.25 2.17 2.08 2.01 1.92 1.86 1.79 1.75 1.68 1.63 1.58 1.54 Fx 2.57 2.47 2.37 2.28 2.17 2.10 2.02 1.95 1.86 1.81 1.75 1.70 1.63 1.59 1.54 1.51
  5. Well, looks like it's me. You might or might not remember me from games like RoboMechanik (VCS), Druidarium (XL/XE) or the Chiphead demo (VCS).
  6. Human ear is very sensitive to anything happening regularity at 5kHz rate. And my player was giving randomly 3-cycle peaks and notches exactly at that rate. Nice. And thanks, but I have enough confidence in my multimeter. The only oddity here is that I failed to found any reasonable approximation for this circuit, but on the other hand the DAC resistances in TIA are not real resistances but rather half-open transistors, so that was to be expected.
  7. AUDV0/AUDV1 is definitely updated immediately on real hardware. When writing my softsynth I tried use both registers separately to improve the output quality, because the volume addition is not linear in TIA. E.g. when setting both channels as "High", volumes don't simply add up, and volumes 0+14 give different voltage than 7+7. I was trying to use that feature to improve output quality, but even the 3 cycle delay in writing AUDV1 after AUDV0 gave audible buzz at 5kHz sampling rate. And if anyone would like to update Stella with the AUDV0+AUDV1 mixing table, just PM me. I have measured output voltage for all 256 combinations already and can share the table.
  8. World F renamed to G, and added new world in its place (to give ZPH some more levels to fill the stream). Also last boss got weakened considerably.
  9. Thanks! Also please note that worlds A-G are just preview. I have twice that number already.
  10. Looks really great! And playing mostly on Amiga, I definitely prefer the 1-button controls. I know this is far from being complete, but what really stands out right now is: - no proper gravity when jumping (the character moves up and down), - colors are broken on some moves (e.g. uppercut) - will this be fixed, or is it going to be some optimization (gfx reuse)? - Raiden sprite lacks hat - another optimization? - controls feel a bit unresponsive in general But other than that, it starts looking great. Good luck! (and PM me if you'd like some help with the msx/sound)
  11. Code size is not a problem, because all maps reside in two banks filled 99% with map data. Some map data could be shared between maps, but that would need serious cleanup of the maps.
  12. Hi guys! Thank you for your support and patience! I definitely didn't drop this project, just got a bit burned with my extreme perfectionism. Right now I'm able to fit about 97 maps in the 32k binary, but I would love to break the magic number of 100. I see a clear way of breaking that number, but it would require a bit of rewrite cleaning up tile data in all the existing levels, which is not something I'm looking forward to. So, given my very limited free time I focused on other things, waiting for my energy and focus to build up again for this task, or go forward to release the thing as is. And going 64k just to waste 31.9k is again something my perfectionism can't accept. In any case, the project is not abandoned, and if you would like to reach me (e.g. to help with testing), find me on Facebook and just PM me (as you have notices, I'm not active user of this forum). Take care! KK/Altair
  13. Never. Just Atari is also cool and Silly Venture needs some stuff to show. Good point! Haven't checked (i.e. updated) it for some time. I was already thinking in this general direction. Endbosses were on my wishlist as well.
  14. If I didn't want to "complicate things", I wouldn't code for Atari. Also the enemy count limitation would only be temporary for the duration of the move. As soon as the enemy moves to the desired row, it will free the previous one and continue horizontal movement. And I think it's worth including to break the row fragmentation and to surprise the player. Also diagonal shots is something I probably should consider, but only if I can come up with a control solution that doesn't break the general flow of the game.
  15. I have a few empty chars still left in the village/forest charset, and plenty in the stonehenge/cemetery one, so that would be a good idea. Also adding a third one could still be an option. Still, I have very limited amount of free time for all this, so I can't really promise. But any ideas on possible new locations are always appreciated. I can't really change their color without affecting other things (missiles), but I'd really like to make a few pain frames for them. I know this trick, but it requires a single texture for entire background, otherwise you get into trouble at edges (the edges should move with background speed). I also like to have some more background variety in the caves, even if it's just mixing background and black tiles, as it is right now. I did not create the font, so it's probably better as it is now. Using proper variable-width font in graphics mode would add even more, in this case. What elements exactly would you me to get inspiration from?
  16. Hi! Thanks all for the kind comments! Responding to some questions: - NTSC was supported, but right now is not due to code not optimized enough before Silly Venture deadline. But it's still on the list. - The music uses just 3 channels, 4th is dedicated to future SFX. - I didn't plan the multicolor sprites, especially that they are coupled with missiles, making things quite tricky. And it would limit the number of enemies. - I would love some parallax scrolling, but that would be tricky as well. - The name is "Druidarium". Title screen has a typo. Deadlines, again. - The picture is a conversion with off-the-shelf font. - The "Dru i dar i um" in the text is not stylized. Just monospace. - I can have enemies moving up/down. They just would need extra logic to reserve a sprite from line below and do a line transition. I'd love to have some one day. - The game wasn't really fast to make. 2 missile positions (4th missile is unusable) are updated every 2 scanlines so explosions are done using missiles and this system allows various spell projectiles (just deadline didn't allow adding more). And add to that running all the enemy logic and actually redrawing all the sprites - and you have the reason why it's not running in NTSC right now with some parts requiring (yet another) rewrite. - Hi-res sprites would be (twice the) pain to refresh. Also I don't think it would add that much to the visuals without the increased horizontal resolution. And thanks all again!
  17. Thinking a bit more on this, I'm trying to implement your idea in browser JavaScript. Long time since I touched JS at all, but early proof-of-concept looks promising. Maybe in some time I'll be able to give you guys some fun with level design.
  18. My thoughts exactly. But using third one in a demo (as on demoscene) would open some interesting options.
  19. No problem! If you have any questions, feel free to ask! Thanks for the update. Still, as far as I can see first two work just by flickering two 96px (or 80px, in this case) displays side by side, but the third one is a nice trick indeed.
  20. MS Paint. Really. Plus a custom made tool that shows the tiles with proper NTSC proportions and running animations. Some tiles were made with a bit of math (circles and rotations at that aspect ratio are a bit non-intuitive), but in the end they were mspainted, too. And the title screen was rendered in Blender, scaled to NTSC aspect ratio, dithered to 1-bit at several different brightness threshold levels and hand-merged in GIMP (by painting masks to choose which brightness threshold is used where). So there were no fancy tools involved in the process, and everything except title screen can be made with any editor showing correct pixel proportions and live animations. Thanks!
  21. Thanks for the info - I'll try to reproduce it. There's not much overscan time in NTSC, but I do my best not to roll (especially during gameplay, where it's a priority). But during transitions avoiding rolling is usually as simple as adding one blank frame devoted to processing. Thanks!
  22. There's a bit more to that. The game has 16 tile slots for unique tiles. Some are reserved, while other have hardcoded restrictions or special meaning in some cases (like certain monsters dropping "item" of hardcoded tile type), which are only partially automated. Also every monster has some customizable properties (speed, initial direction, behavior, etc), depending on its type. And there is a scripting system in place, allowing game to respond to certain events (pulling a level, breaking a tripwire) in quite a programmable way. So personally, I wouldn't like to approach this without a proper editor. But you have a point here. I'll look into some options - I have a framework ready, which compiles even to web, but it uses OpenGL, so I'd have to estimate the effort required.
  23. Well... porting command-line tool is one thing, and porting editor made with DirectX is completely another. Will the result be worth the effort?
  24. It's a WYSIWYG tile editor and a normal Windows application. And you can test levels instantly - just hit F5 and the editor compiles the map, patches BIN file with it and runs it with Stella. The game even detects it was patched and skips all menus straight to the gameplay, so the whole process is almost instant, and dying/winning while in this mode restarts the map immediately.
  25. I will definitely do that. Even if I would have to reserve a whole page for that (I have an option to switch to 64k cart, which would fit about 500 levels total, in case of a massive response).
×
×
  • Create New...