Jump to content

Dmitry

Members
  • Content Count

    459
  • Joined

  • Last visited

Blog Entries posted by Dmitry

  1. Dmitry
    With the announcemenet of the ABBUC contest, and the entry deadline of July 31st, I decided to, as they say "go for it"

    But it's a no-nonsense complete change of focus. The Nerm rewrite is over for now. With so little time left my focus is getting Frake finished.

    Ignore the colors, ignore the glitches - I changed the character to Frake today.

    It's not really glitchy, more like not finished. The original nerm only took care of the worm head changing from purple to green.
    I have a two char snake head and so I have to take care of 3 characters at the top - plus put in special characters for any corner and handle turning with yet another set of characters.
    On top of all that, I will have additional characters lining the body - and quadruple all that - I will use four character sets to simulate fine animation.

    So you can see why I immediately jumped into Frake movement, I've only got until July 31st - that's it....had to move on it.

    Plus Frake has tongue and mouth open animations - plus the gameplay differences....best not to think about it. I'll sprint towards July 31st and submit what can be finished.


  2. Dmitry
    I implemented a copy charset routine in assembler. At first I tried to use the one from the basic listing, I tried to push things on the stack so they could be PLA'd back off in the right order, and be used by the original basic listing's ML subroutine. Didn't work, and ultimately just a bunch of .byte directive's is hardly readable code, so I decided to rewrite - using, of course, some help from the internet to get started.

    Well that was the one part of the original game written in machine language, and yet when I did the rewrite, my copy charset routine is faster?!?...seems to be faster.

    And the one thing where I was going to continue to use C (remember this is a C/assembly rewrite, even if I'm using assembly 90% of the time)...., the one area where I hoped C would be fast enough, was plotting the borders. Well even after optimizing that a little - C is dog slow, not only slow compared to assembly, but dog slow compared to the original basic....LOL. apparently using COLOR, PLOT and DRAWTO in a character mode worked pretty good in basic.

    Today has been all weirdness and unexpected behavior, but nevertheless I did copy and modify the charset per the original code - so I did make progress on one of today's goals. But I'm feeling its enough for now.
  3. Dmitry
    Folks, I have wanted an "ultimate" Atari for a while now, and for me that is : VBXE, 65c816 and hdd solution. And it will have a flat screen monitor. And it will be connected to the internet. These solutions have extended memory and SDX on them - that's implied. But some things that might be in another's ultimate atari, are not in mine - I do not care for side loaders, stereo cards or cards that interface with other cards and allow you to turn off features in software. I don't really need a keyboard interface. I wouldn't mind a laptop, but that's a bit of a stretch.

    I've been unable to obtain my desired Atari for a while, because my first attempt at purchasing a VBXE resulted in a total loss of my investment (VBXE was never shipped).

    65c816 was unobtainable at first...there are some classic upgrades or I would've counted the 65802, even without acceleration, but those were impossible to obtain. Then came the rapidus.

    Then the irregular availability of HDD made that hard. Although I've owned a Sio2SD for a while, and frankly I should've just counted that. Because I love my SIO2SD and use it all the time...but I got stock on ordering something like an IDE Plus or SIDE 2 or blackbox or even a classic HDD, like a Supra (impossible to find in working condition).

    Anyway this is to say, today I have a VBXE/Rapidus/Side 2 and while it is unbelievably flaky for doing things like - putting a cartridge in to play a game, somehow it does work perfectly for what I want it for, so far.

    Now, I haven't gotten much into using the 65c816 yet, so we'll see....but it does "finally" have permanent storage. VBXE has worked for a while, and I have a flat screen. I once had a sio2pc setup, but have gone backwards on that...but so be it, I was never really happy with that anyway.

    OK, long story short I have finally gotten at least something that works, flaky or not, I can finally transfer Frake...test it on real hardware.

    So, I have finally returned to programming and did my first feature update in a month. It now remembers the direction you entered the room, instead of always nonsensically starting you at the bottom and going up.

    hurrah.


  4. Dmitry
    You've got to be real careful around here. Few years ago, I gotten taken for a few hundred by a community member with a sterling reputation....sometimes people go through hard times, but this person, I won't rehash who it is, he's retired his old nickname anyway....he wasn't just going through a hard time, he was also an unabashed liar. Everything he said was just a lie, there was little point in trying to talk with him. There was no reason for anyone to defend him, but a lot of people did - because he felt like family. So that's just how it is.

    I can't talk about this too much, because it's not timely and anyway, I've got other people doing work for me, and I don't want them to think I am not a good customer. I am a great customer, btw.

    If it helps any, I let that guy rob me for a couple hundred dollars and he got off scot free. He never gave me anything except lies, it's been 3 years, if anyone still thinks its a delay - get real.

    Another subject, today I don't have any Atari. They are all out for upgrades. At first I was just going to do one, and do others later, but since I never got the first one back, I've switched tactics....got all the Atari's out. Hopefully one will find its way back, if not, I'm done.

    But I won't be done- I'm sure, without a doubt - some of these guys are awesome, and beyond reproach...I just need one of those Atari's back in my greedy hands, and my faith in humanity will be restored, and my hobby - back on track




  5. Dmitry
    Updating my list of tasks for "version 1" I knocked out quite a few minor tasks today.
    But I'm under heavy pressure not to finish now - due to demands made on my time.

    On the other hand, I'm going to do my best to sneak it in, because this task should complete- the game is mostly finished and I still have over a month before the deadline.

    # done: player color the grand hallway curtains
    # done: fix the egg showing up on unlocked rooms
    # done: fix the egg counting below 0
    # done: complete treasure room
    # complete grand hallway
    # complete chapel
    # done: snake exit shrink, with sounds
    # fix the changing colors on snake exit
    # fix the start freeze
    # done: fix oops color
    # game ending screen
    # done: bonus life screen
    # frake's home screen
    # design all other rooms
    # complete all other rooms
    # semi-smooth animation
    # re-implement snake look
    # animate flags, waving
  6. Dmitry
    While these tasks are at various levels of granularity, meaning a task like 'fix oops color' is trivial, and a task like 'complete all other rooms' is huge and vague, that inconsistency doesn't bother me. This is my roadmap, and when this list is done, I"m done. It'll go to ABBUC.

    Which means, I neither implemented two player mode, nor added the save score feature, and neither of those features is that hard, I just have to cut off development and finish version 1.

    Of course, I can take it back up and even years from now keep tweaking it and adding features. Life can jump in and take you away, and I'd rather have a version 1 done that I can fall back on, if that happens.

    # tasks
    #
    # player mask the grand hallway curtains
    # fix the egg showing up on unlocked rooms
    # fix the egg counting below 0
    # complete treasure room
    # complete grand hallway
    # complete chapel
    # snake exit shrink, with sounds
    # fix the changing snakehead color when in exit
    # fix the start freeze
    # fix oops color
    # game ending screen
    # bonus life screen
    # frake's home screen
    # design all other rooms
    # complete all other rooms
    # semi-smooth animation
    # re-implement snake look for Frake
    # animate flags, waving
  7. Dmitry
    Due to time constraints all progress has halted. I'm determined to report bad news as well. The hope is if I stay connected to the project, that it'll finish anyway and not fall to the wayside.
  8. Dmitry
    I am still making daily progress, although recently I've been squeezing in maybe 20 minutes before work and maybe 20 minutes at lunch. As I probably mentioned before there is a 10 room castle, that you can now travel about. And I've put objects now in 3 of the rooms, but even those 3 rooms are not complete. By that I mean, I have a treasure chest in one room...but that is the "Treasure Room" and so it'll have 3 treasure chests and two torches, and I'll call that done. I have a room with a flag in it, but that room will have two flags and stained glass window and be known as the 'Chapel'. And I've got a room with a window that has drapes/curtains - and that will be doubled up and be known as "the Great Hall" - and so on and so forth, every room is in various stages of conceptualization, partially developed or showing some objects on the screen. I actually thought I was going to hit a burst of energy and populated all the rooms in 1 day. Wow, you are never too old or wise for wishful thinking - at least some of us


  9. Dmitry
    One of the original improvements was the doors would have meaning - that is done already.
    Although it won't be as visually obvious until each room has it's own furnishings/look.

    But you can already travel around the castle, with today's mostly empty rooms. In the video I put one treasure chest in the second room.
    When you unlock a room - it is remembered. But for now....it'll be the next video before the real visual feast is ready to be unveiled.

    I'm putting you know, more than 5 colors on my screens anyway - 7 or 8 usually.
  10. Dmitry
    Oh I wrote a little entry and apparently forgot to save it. So, for this re-typing, I"ll be more brief.
    I fixed some DLI glitches, although I notice one will re-appear after playing the first game through, if you start a second game.
    That's odd, what would be different about starting a second game - isn't immediately apparent. Anyway, it's a very small visual artifact, and I'll fix it later, if I get a chance.

    Uhm, so I have graphics in the first room, and so it's a matter of building out the other rooms. Then really it's minor stuff to complete the game. I should finish on time and send it off to the ABBUC folks.


  11. Dmitry
    Sometimes I do some work moving C functions into assembler, or reorganizing memory...I'd describe this weekend as mostly doing that. At first, I couldn't get started - didn't do much work on Saturday. But Sunday brought some productive work.

    I'm really getting close to firing up my new graphical rooms, and I imagine after I do that, I'll make another youtube video showing progress.

    The game is nearly complete as a game. Meaning you can go through the rooms, get to the end, win the game, lose the game, etc.

    It's missing bonus life...the snake shrink animation, and the animation to move between rooms...stuff like that.

    But in a week it'll be a complete game and just a race to see how refined I can make it before ABBUC.

    However, there is one other thing - I fundamentally don't like Snake. Making it better and showcasing my son's artwork have been fun, but the concept of hitting your body or a wall and then you die - is not coming together as a game concept that I find interesting. I'm thinking maybe allowing for hitting both your body and a wall, with no serious consequence.

    And maybe instead you have to chase mice - and maybe you have to encircle them...I don't know I'm just spitballing here. But the original Nerm relied on your ability to line up vertically or horizontally your position to align with a small hole for exiting a room - and I just don't find that fun as a skill exercise. I want fast action, that works the twitch of the joystick, not your retinas.
  12. Dmitry
    Mushroom is gone, replaced with Egg.
    5 eggs count down now. After 5 no more eggs and the doors open.
    You can go into a new room now.

    OK, that's some minor progress on Frake - although it feels like the game just got ten times bigger because you have all these rooms,and I could pull a Nerm of Bemer and just through some blocks out there, that's all the original did, and you could have 10 rooms by tomorrow.
    But I'm hand crafting the rooms, so it'll be a little bit longer, plus the doors have meaning - still this is certainly feeling like it's on track to finish.

    Now the gossip, friggin work man....friggin work, some guy claimed that my stuff wasn't working - nevermind the details, isn't important....,but my stuff is working great.

    well, the problem is, it's a big corporation, and you'd think you could just say, hey look, look, no turn your head, no look at it, its working...doesn't work that way. the way it works is politics. people try to guess who to believe....

    I'll win, I have some influence, but.....frustrating day. and I will never say where I work - because they don't need it to be public. But big corporations man...crazy politics. In a little company you'd just sit down, and people would know, they'd know their stuff, and reality would be important, not perceptions. But perceptions rule, so the working or not working of it has no importance, have to work the politics tomorrow, big time.
  13. Dmitry
    OK, this is getting insane - programming for over a month now without a real Atari.

    So, I wonder how it'll play on the real thing? Since it doesn't play the same from one emulator to the next, and it's how it plays on a real Atari that counts

    Of course it's going to be different, and I'll have to do some last minute troubleshooting. Best just to prepare for that with grace and patience.

    The new look is in place, along with a new "indexed" method for handling all the DLI's - I have 4 or 5 already, went a little hog wild with DLIs.




    I've replaced the snake with the worm, for now, because I was just showing someone Nerm, that's all - the snake is just commented out.

    And remember in this version rooms have meaning and you are really exploring a castle - so the castle rooms will be designed unlike the original nerm which was just some blocks on the screen.



  14. Dmitry
    I found yet another lag within controls - related to the original logic of Nerm, and I was upset.

    I know it's ludicrous and wrong. Someone didn't write this program 33 years ago to upset me.

    And furthermore the game was well received and enjoyed at the time - but it has 3 different problems with lag.

    And when I found the third one, in my mind - 3 strikes and you're out. That's the third strike. Suddenly, the game author went from hero of the Atari community to a loser who purposely sabotaged us with lag. 3 strikes!!!!!

    OK, I abandoned the original logic completely and Frake is feeling better. But here we are, two days of progress lost - poot.

    It's my fault, I should've written my own logic in the first place, at least then I'd have to live with my results and not engage in these criticims, good grief!!!!!

    OK, today I'm implementing castle walls - yeah!
  15. Dmitry
    I am inviting criticism and comment for the artwork. Because I like to program with the artwork finished, it's just more pleasant to me. So I'm not likely to change this again, after a while.

    You don't have to say you like it if you hate it - feel free to share.

    However, if you do criticize you are volunteering to do all the artwork

    KIDDING

  16. Dmitry
    Found out about the countdown timers today. I don't remember ever reading about those before. What I remembered was the RTCLOCK and initially based some code on that. Obviously the countdown timers are easier to use and even have a callback when they reach zreo.

    Well it is easier, but wish I hadn't wasted time earlier on the RTClock based timers that I did. OK, now I will work on a simple thing - getting the character set into the app.
  17. Dmitry
    Purely scratch padding ideas here. However, for me its a good day when things work as expected.
    I did put up players on the screen. I did use them to mask. Which means I will have added colors on my screen, going way beyond the original.

    Also, I finally tested out that idea I had for constantly polling the joystick and immediately responding to any valid change without regard to the animation cadence, and it works great! In assembler.

    I say, because I got so excited about it, I back ported it to the original Nerm in basic, and there Basic is so slow it just is so disappointing and so I went down the avenue for no particular reason, wasting a bunch of time.
    Still, I was making so much progress, I should call it a good day anyway.

    These early previews are ugly, because I don't have the players tracking the snake head, so it appears cut off right now. And I've clearly just put a white player on the screen to test masking. And...but you know, the joystick control is gonna be sweet. And that's today's takeaway.


  18. Dmitry
    I took out all delay loops, using register $14 instead.

    What this means is Nerm will run on your 20mhz Atari just as well as stock - it's not dependent upon a specific clock any more.

    For those of you who don't know register $14 is where the 'jiffy' is stored, that's 1/60th of a second. After you get 255 of them, register $13 bumps - that's called a 'slappy.' sure, why not. And that represents 4.2 seconds. And then after 255 of them, register $12 bumps. 255 of those is over 18 minutes and is called a 'stopbragging'

    Where these names come from, nobody knows....or I made 2 of them up.

    I also moved the joystick read back into the vbi, the reason for that, is I'm going to be taking all delay of any kind out of the game - even these jiffy based delay routines. Now that doesn't mean the game runs full blast all the time, it just means it cycles through the game loop at full blast all the time, and then in the vbi the snake advance will occur at the desired speed, plus songs playing via the vbi routine. \f you are changing direction that will be instant, regardless of speed - that way the game seems responsive. That's the theory.

    The original nerm didn't seem responsive,a nd I'll soon know if i cracked that nut.
  19. Dmitry
    Still on the phase of the project "re-implement Nerm in Assembler". After completing that, I will build Frake. The reason functionality moves so slowly forward, is I'm still fiddling with memory.

    I re-organized all my external functions, first only those without parameters and then including those with parameters. Only to discover my character data was being overwritten.

    So I suspect the normal C run time was adding to it's internal sp stack, and was eventually overwriting my character set.

    Blargh, back to organizing memory - but I eventually put it aside and added some more features.

    I know why the snake is glitchy - I totally put in some quick code for testing, I'll fix that on a later build.

    Nerm has the purple head now, mushrooms are appearing in a psuedo random fashion. bumping score - to test score memory/display. bumping speed of snake, bumping length of snake.

    I am not going to fiddle with memory again for now, but go back to complete some of the quickly implemented functions.
  20. Dmitry
    Well since my first post got borked, this re-post will be shorter, maybe that's a good thing

    Since I last blogged - pulled out most of the IOCB code and now have custom routine for outputting text and characters.

    Bugs are gone with the old putchr getchr stuff. Redid the linker config - looking much better now.
    put 'externs' in snake.c - making that look cleaner.

    Score working, lives working, Nerm has purple color. Snake struct working, but not optimized. Progress flying along.
    Decided that "Nerm" will get some improvements that will go into Frake. No graphics changes, but I think I'll try to give Nerm the no joystick read routine for better responsiveness, and real delays, not delay loops - for working on accelerated machines without issue.
  21. Dmitry
    Because step 1 is to completely re-implement the original program, I'm following along it's logic. I'm using CIOV to put the snake head, clear the snake tail and soon, to check for collision - much like basic locate.

    Anyway, snake is moving.... it's a lot of code so far, lol. I mean the basic listing is deceptively small compared to this mountain of code today....


  22. Dmitry
    No, this isn't an improvement, it's actually worse than the original I haven't ported over the copy char routine yet, so I put asterisks as a place holder, and I put them on the screen using printf which is so slow it looks like a 300 bps modem typing across the screen.

    But good progress today. I did the 3rd display list. This one has a display list interrupt. As mentioned before, got the sound mostly done - it's not exactly the same sound, but OK. The dashboard is there, 80%.

    Tomorrow, get all the games variables and flags mapped out, and implement the copy char routine. Then I can start moving a little snake around the screen....that's when it gets fun, I guess





    After the straight port is done - that's when I'll start working on improvements.

    But it's going to be fun to release the straight port - will I be the first to port game from the Atari 800 to the Atari 800? LOL...probably not.
  23. Dmitry
    5540 FOR X = 1 TO 14:READ NN : SOUND 0, NN, 10, 10 : SOUND 1, NN + 1, 10, 5 : FOR D = 1 TO 25 : NEXT D : NEXT X
    I was just wondering why my ASM version of this doesn't sound the same, the math is the same.

    Then I finally realized, basic is so slow there is a delay between SOUND 0 and SOUND 1 starting - they don't start at the same time!

    I added a delay, not simply the one after the sounds start, but a delay between voice 0 and voice 1 starting, and now my sound is a lot closer to the original.
×
×
  • Create New...