Jump to content

Jan Hermanns

Members
  • Content Count

    93
  • Joined

  • Last visited

Posts posted by Jan Hermanns


  1. Interesting that the sprite design seems to be inspired by Super Mario Land on the Game Boy, rather than one of the console titles.

     

    Truth is, most of those sprites are based on the TI-83 calculator port of Super Mario Land, because Gameboy sprites are generally to wide - remember VCS sprites are max 8 px!

    • Like 1

  2. What's truly shameful is that I actually like the game better. The gameplay hasn't changed. I'm just as brainwashed by the mass media as the next guy

    What do you mean? You like this crappy hack better than the original? That would truly be a shame!

    • Like 1

  3. Very nice. I particularly the subversive nature of it considering what recently happened with another homebrew... ;)

     

    It's not that I'm gonna make cartridges or something - so it's not that subversive ;)

     

    And regarding that other homebrew... C'mon, I mean what were they thinking!?


  4. Buy 50 copies. Show nintendo. After C and D. sell 50 copies and take family to disneyland on profits.

     

    Well, I don't have the balls to do it and I don't like disneyland anyway...
    But why don't you do it yourself?
    You could even change the "lov3machine" moniker on the titlescreen to
    "nintendo", to make them really angry - though be sure you want their full
    attention ;)

  5. Just got my copy... If this is 4k, then you could conceivably get 30-40 levels on a 32k. (That's my basic math.. Not even close to understanding the programming world)

    Awesome game.. Very fun to play!

     

    Thank you!

     

    Btw, big levels like level 3 need aprox. 160 Bytes, so a 32k ROM could easily have 150 big levels...

    • Like 1

  6. Turns out, it's quite easy to implement a decent fighting logic...

     

    Here is an excerpt from the article "The Making Of: IK+"

     

    The development of IK+’s AI was, though prosaic by comparison, no less efficient. “It was easy, basically,” Maclean boasts. “In those days, it wasn’t even called AI – we would have called it ‘fighting logic’, or something. The whole thing was based on look-up tables of what moves to use based on how far away the opponent was. The game obviously knows which move, if it were used, would lead to a direct hit at that point in time. For the easy difficulty level, right at the start, the computer fighters would, 90 per cent of the time, look at what the best move would be and then ignore it. As the level of difficulty increased that percentage would drop, until level 25 or thereabouts where it would be 95 per cent accurate. It worked beautifully.”


  7. No. The code is not equivalent.

    int is not an 8-bit (one byte) data type. The c code int *colup0 = (int*)0x46; *colup0 = 7 will most likely write to both colup0 AND colup1. TWO bytes.

    you should use char instead. char *colup0.... etc

    Yeah, my C-skills are a bit rusty - but since we're at it. Shouldn't it be "unsigned char*" ;-)

  8. However you cannot access the processors internal registers in C anymore than you can in BASIC - stepping through a dataset with the internal index register in Cybearg's example or conducting register dances and swaps is low level only.

    Absolutely true, because this is the big idea behind C - abstract away the processor details to increase portability.

    One last thing, you could use the "register" keyword in C. It's a hint to the compiler to keep a variable in a processor register if possible.


  9. This all came from me asking my C++ professor if I could define a static data set that didn't use memory, like these Assembly data sets do. You can move through the data like an array, but it doesn't actually put all those bytes into a memory array, so it saves a lot of RAM.

    If you define a static data set it'll always use memory. In case of the 2600 it'll use ROM, because it's the only memory this poor device has (apart from the 128 bytes RAM) - in case of a modern computer it'll use RAM.

     

    When programming the 2600 it is often sufficient to load static data to one of the processor registers and then store it directly to some RIOT register - without using a temporary RAM variable, e.g.

     

    COLUP0 equ $46

     

    LDA #7

    STA COLUP0

     

    But, you can do exactly the same in C (if that's what you're after):

     

    int* colup0 = (int *)0x46;

    *colup0 = 7;

     

    Any decent C-Compiler would optimize this to the same asm code as above.


  10. ... What exactly is going on, technically? Is the program saving the current location of the program's execution in the stack, then jumping to DataSet, incrementing by index bytes, reading a single byte, and returning to the location pushed to the stack?

    Not much going on here:

    - the first instruction loads the value at address "index" to the X register

    - the second instructions loads the value at address "DataSet" + "the value in the X register" into the accumulator.

     

    As others pointed out the "LDA DataSet,X" would normally be executed in a loop. And you probably would rather use an immediate LDX #index (the difference is the '#' which means take the value of index rather than the value at the address index is pointing to).

     

    The stack is not affected by those instructions. Don't confuse the "LDA DataSet,X" with a subroutine call - it's just the 6502 pendant to the C idiom:

     

    DataSet[index]

     

    take care!


  11. Thanks dude. Even though I can't read German, maybe this will help me figure out Assembly and might have me graduate from Batari one day.

    You're welcome! I really think you should start learning Assembly language. You're very creative with Batari - but imagine how nice it would be if you had total control over the VCS ;-)

     

    Please let me know, if I can help you in any way.


  12. I love how the box is as new, fresh and different as the game itself.

    I just had to order this game with the box!

    Just goes to show that even at 4K a fun game sells!

    Photo manipulation by Russian artist Dmitry Maximov:

    attachicon.gifRussian artist Dmitry Maximov.jpg

    Thanks for the love! And I really like that photo :-)

     

    Got mine yesterday! Neat little simple game...frustrating as all hell though! I'm starting to dig collecting boxed games (homebrews only though) and the uniqueness of the box really stands out. The little bad guy (Tooby) reminds me a lot of the enemy in Marble Madness...(completely don't remember what he's called though).

    Well done!

    Actually, Tooby was inspired by one of the enemies in Giana Sisters.

     

    It's been a while since I've been on these forums, but I do remember when you first presented this thread. I must say, WELL DONE! This is a stunning effort.

    Thanks! It was a lot of work though.

    • Like 1

  13. Jan, thank you for making this game. It's nice to see the ol' VCS still can get an enjoyable game out of it.

    I think the sequel, especially if some random-ness could be managed (with some help from our friends here) then that game would be quite incredible.

     

    Congratulations on your release, I look forward to more!

     

    Thank, you very much!

     

    But what do you mean by

    if some random-ness could be managed

    What should be random?

    I was once thinking about an "infinity mode" (in style of "Super Mario Infinity", i.e. generated levels) but I'm not shure if it is a good idea...


  14. Cool game, very cool that you chose the 2600 :)

    One thing though

    This...

     

    Not true, Atari 2600 is actually insanely hard to program, far from simple, lol

     

    Cmon, are you serious? I chose the 2600 because I found it the most simple 8 bit system around.

    True, it has it's limitations - but programming the 2600 is dead simple.

    • Like 2
×
×
  • Create New...