Jump to content

nanochess

Members
  • Content Count

    6,426
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by nanochess

  1. I should modernize that code. It is reading the screen to detect if the path is feasible (only can walk over a yellow dot or an empty space) IF dir = 0 THEN #c = #backtab(X1/8+Y1/8*20+1):IF #c <> (BG06+FG_YELLOW) AND #c <> 0 THEN dir = 4 IF dir = 1 THEN #c = #backtab(X1/8+Y1/8*20-1):IF #c <> (BG06+FG_YELLOW) AND #c <> 0 THEN dir = 4 IF dir = 2 THEN #c = #backtab(X1/8+Y1/8*20-20):IF #c <> (BG06+FG_YELLOW) AND #c <> 0 THEN dir = 4 IF dir = 3 THEN #c = #backtab(X1/8+Y1/8*20+20):IF #c <> (BG06+FG_YELLOW) AND #c <> 0 THEN dir = 4 You can see it checks the current direction (each sentence IF dir = ) and then reads the screen (player x1 coordinate divided by 8, and y1 coordinate divided by 8 to get the row/column) The row is multiplied by 20 to get the offset inside the screen and then it applies an offset to "see" ahead of the current position of the player. The offset is per the direction, one card to the left is -1, one card to the right is 1, one card upward is -20, one card downward is 20. If the screen card doesn't contain a yellow dot nor an empty space then it stops the player (by doing dir = 4)
  2. A graphic artist is very helpful to do quality game Excellent! That's exactly the objective of the book. Looking forward to your game
  3. I've to say that unfortunately it looks like a problem with libSDL. Myself I've a NES-style gamepad and I cannot get it to detect the D-pad. I'll try later to update the SDL version to see if something has improved.
  4. Glad to say that some days ago I've broke the one hundred books sold
  5. In fact you can create sprites using Paint .Net in a strip of (let us say) 256x16 pixels. And then convert this to BITMAP statements by means of IntyColor options -d -b -i2 These options instruct IntyColor to process the bitmap in chunks of 16 pixels high (the way the Intellivision handles 16-pixel high sprites). I tend to draw the sprites in white and keep the background black. For muticolor sprites you need to do it manually. Still you can use Paint.net but then separate the two color sprite in two separate sprites with a single color each.
  6. It looks so cool! You deserve it 👍🏻
  7. Probably because it is the afternoon, but I cannot "see" a game where an algorithm of this type could be implemented, also I cannot remember a game where a Monte Carlo algorithm is used.
  8. I never found documentation on EXEC entry points, so I never used the EXEC. At the end wasn't so bad, because the EXEC has some known limitations. And from reading the code shown, it appears like it is very inefficient!!!
  9. You should use "AND delta" and assign values 3 and 1 to 'delta' variable. The reason for this is because the division operation is done with successive subtraction, and once FRAME reachs 1500 it takes more than one frame of video to do a "big" division. The idiom SPEED = $20 could be interpreted like this: you are assigning the speed 32 to a "thing", let us say for #x and #y (we need 16 bits for big values, also put the statement SIGNED SPEED at the start of your code) Let us say that in each frame you add SPEED to #X and #Y, also let us say that you want to move #x and #y for a pixel each frame. So 32 is equal to one pixel per frame. We need to convert this #X and #Y variables to the real pixel coordinates, so we use this code: x = #x / 32 y = #y / 32 And then we can use the result values for positioning the sprite on screen. The beauty of this is that now we can modify SPEED to be anywhere from $01 to $40 and it will move in different speeds very smoothly! And also can be a negative value to move in reverse.
  10. I think IntyBASIC comes with the example game IntyPac that moves pseudo-ghosts in a maze. Basically when the enemy is aligned on the 8x8 grid you read the cards in the four directions (up/down/right/left) and choose the one getting you near the player.
  11. Haha, Mozart composed great melodies at young age, I was still doing bad games
  12. My boot sector games books have helped many people to learn x86 assembly language for the first time in many years. Unfortunately the x86 field is vastly different from IntyBASIC, so I wouldn't recommend them for enhancing your IntyBASIC comprehension. However if you show fragments of the code you don't understand I'll be happy to clarify it or give you an idea of how it works.
  13. That's right Well, I didn't saw that interpretation!
  14. And now available the remake of the game as I imagined it. (ROM download available at same page)
  15. Hi all. Just a few days ago I saw my old notebook in the corner for the nth time, In it I have took note of my first Z80 assembly language game, about a Karateka, written in 1988 when I was 9 years old. Not the most beautiful game in the world, and embarrassingly simple, but it gave me impulse to get into assembly language. I've ported it also to MSX and Colecovision just for the sake of watching it working again. Enjoy it! https://nanochess.org/notebook.html
  16. The utility uses Signed 16-bit PCM encoding, monoaural. Probably it already is sounding but you need to turn up the volume of your computer to the max. Use the Audacity, Effect-Amplify option to increase the volume of your wave sample.
  17. Give a look to the page 173 of my book Programming Games for Intellivision. Also you can search for "ASM ORG" in the file manual.txt included with the IntyBASIC distribution. Another option is to give a look to the included example program 42K.BAS
  18. The wave files consume great quantities of space on ROM. As the program handles 16-bit 8khz, and two samples are converted into a word, technically the maximum size of a WAV file should be 32K. I suggest using ASM ORG $C100 just before your wave data.
  19. Corrected bug on handling sound effects with a length bigger than 8. Please re-download the tool. Also made a video (added to first post) showing it with the sound effects examples from the chapter 2 of my book Advanced Game Programming for Intellivision.
  20. Typically the numbers and Enter key (or Fn+Enter on my Macbook) replace the same in Intellivision controller.
  21. Hi all. I was watching in delight how Brian Pudden wrote two new games in one month after getting into Intellivision Programming, and he posted on Intellivision Homebrew Games in Facebook. Then Bill Stahl made a question in the topic "Has anyone written sound ‘tool’ that runs in inty basic? To manipulate the registers, and hear in real time. " and I thought it would be good to have such a tool. So I've wrote a sound editor that allows you to write sound effects up to 20 tones long in one channel. Each tone frequency, volume, noise and mix can be setup. The manual of usage (also included at the start of the program): 1- Enter frequency (0-4095) Press Enter to complete or enter the four digits. 2- Enter volume (silence 0-15 high) 3- Enter noise value (high noise 0-31 low noise) 4- Enable/disable mix of noise 5- Increase length of sound effect by one tone. 6- Decrease length of sound effect by one tone. 7- Enter speed for playing tones (1 for changing tone on each video frame) 8- Toggle repeat (when playing it will keep repeating unless you disable it) 9- Start playing (BTW if you change data while it repeats, it will sound in real time!!) 0- Show IntyBASIC source code for playing the sound (you should do manually the speed with WAIT or the multitask method ON FRAME GOSUB) Enjoy it! effect.bas effect.rom
  22. Today corrected a pair of sound bugs. The AY-3-8910 counter were reset with each sound frequency change so it triggered bugs in Princess Quest music, while the noise generator LFSR was wrong. And BTW my pull request has been approved! This means that soon everyone using libretro cores will have a better Intellivision emulation
×
×
  • Create New...