I know nothing about the z80 community!
Moderator: MaxCoderz Staff
I know nothing about the z80 community!
I come in peace.
I am from the 68k community (me), and I want to learn about the z80s.
What is the best doc for programming in asm ? what tool are there to program ? Who are the best z80 asm programmers ? what can be done on the z80 ? (raycasting ? real 3D ? mode 7? parallax scrolling? ...?) what z80 oriented website are there ?
Thanks in advance!
I am from the 68k community (me), and I want to learn about the z80s.
What is the best doc for programming in asm ? what tool are there to program ? Who are the best z80 asm programmers ? what can be done on the z80 ? (raycasting ? real 3D ? mode 7? parallax scrolling? ...?) what z80 oriented website are there ?
Thanks in advance!
-
- Calc King
- Posts: 2195
- Joined: Sun 27 Mar, 2005 4:06 am
- Location: sleeping
- Contact:
I use notepad to write the code and I use SPASM and Wabbit to assemble and make to 8xp. Those can be found on www.revsoft.org/phpBB2/ which is also a great z80 forum.
Another option is to use Latenight+Brass, both of which are found on this website. Latenite is a very nice IDE with cool features like syntax highlighting. However, the built-in assembler Brass is way slower than SPASM without being a lot more powerful. Which one you choose is up to you.
All of those things are possible. Raycasting and real 3d are being done by the staff here (benryves and qarnos). Mode7 discussion can be found on the revsoft.org forum. Parallax scrolling has been around forever. Jim e's grayscale package (also found on the revsoft.org forum) has built-in handling of parallax scrolling with grayscale tiles. I suggest you check out all the various subforums on both this site and www.revsoft.org and participate in the discussion and see what you can learn.
Another option is to use Latenight+Brass, both of which are found on this website. Latenite is a very nice IDE with cool features like syntax highlighting. However, the built-in assembler Brass is way slower than SPASM without being a lot more powerful. Which one you choose is up to you.
All of those things are possible. Raycasting and real 3d are being done by the staff here (benryves and qarnos). Mode7 discussion can be found on the revsoft.org forum. Parallax scrolling has been around forever. Jim e's grayscale package (also found on the revsoft.org forum) has built-in handling of parallax scrolling with grayscale tiles. I suggest you check out all the various subforums on both this site and www.revsoft.org and participate in the discussion and see what you can learn.
Ok, I'll tell you what I know. One of the best programming guides for z80 asm is Learn TI-83 Plus Assembly In 28 Days by Sean McLaughlin
The best programming tools are the Latenite, Brass, Earlymorning, and PindurTI combo(all developed here, a kind of programming suite). Also, you can use Timendus's API and CLAP. Latenite is a nice program for writing assembly. It has a lot of nice features and can be integrated with Brass, earlymorning, and PindurTI. Here's a screenshot of it with some asm code and the pindurTI emulator open.
PindurTI is the best emulator for the 83/83+ that can emulate the calculator and LCD screen almost perfectly. EarlyMorning is a tool for sprites. Brass is an assembler made by benryves to work nicely with LateNite, and give you an alternative to the somewhat problematic Tasm shareware assembler. Timendus's API makes programming in assembly more simple and easy, and his CLAP(calculator linking alternative protocol) makes linking between different calculators and even multiple calculators(more than 2 at a time) easy.
A lot can be done on the z80. A few 3d first person shooters have been made, including doom and Castle Wolfenstein, and also Gemeni, which I think is the best. These used raycasting 3d. There is a nice 3d racing game called lotus turbo challenge that has some nice effects and looks nice. There is also a full-3d wireframe racing game called glasscars that allows for 2 linked calcs to play multiplayer races. Also in 3d is a roller coaster design game where you can design a roller coaster and ride it. There are some good side scrolling games like mario and harvest moon, and Sonic and Metroid are being worked on. Also, a very nice version of Zelda is coming together nicely. It's been featured on a few other websites and has driven a lot of other people to these calc sites.
Other z80 programming sites include unitedTI.org, revsoft.org, omnimaga.org, and chemtech.org. omnimaga is more TI-basic oriented.
There are two real 3d engines being worked on right now here, one by quarnos, and one by benryves. quarnos's engine is more for 3d spacefighting games(like space dementia) and benryves is more suited to first person shooters.
I remember someone doing parallax scrolling, I think it was in grayscale with the revolution Greyscale Package (RGP).
Also done on the 84+ series is the usb8x which allows you to connect USB devices to the calculator, like usb flash drives, keyboards, or mice. It was demonstrated by showing the lobby scene from the matrix from a series of pictures stored on the flash drive. Also, realSound allows actual music recordings to be played on the calculator through the link port. This is real sound, not a midi or anything. It was demonstrated by playing GreenDay's Basketcase through computer speakers connected to the link port.
Another interesting program is Cabamap which is an app that allows you to calculate very large numbers at high speed. For example, you can calculate the square root of 3 to hundreds of thousands of digits in just a few minutes. You can also calculate the factorial of 1000!. It is much faster at calculating than even the 89, by a very large margin, usually at least twice as fast or more.
If you have any more questions, feel free to ask. Are you thinking about starting to program in z80 assembly? How about making a port of your excellant bomber Dude game? The only game like that we have is bomberkids, which doesn't have an AI. There is a slime volleyball game for the 83+, but it's a bit more primative, with no background and no hit effects. We also have a game called Arcade Mario, which is like the original mario bros game, but not nearly as good a port as your m4r10.
The best programming tools are the Latenite, Brass, Earlymorning, and PindurTI combo(all developed here, a kind of programming suite). Also, you can use Timendus's API and CLAP. Latenite is a nice program for writing assembly. It has a lot of nice features and can be integrated with Brass, earlymorning, and PindurTI. Here's a screenshot of it with some asm code and the pindurTI emulator open.
PindurTI is the best emulator for the 83/83+ that can emulate the calculator and LCD screen almost perfectly. EarlyMorning is a tool for sprites. Brass is an assembler made by benryves to work nicely with LateNite, and give you an alternative to the somewhat problematic Tasm shareware assembler. Timendus's API makes programming in assembly more simple and easy, and his CLAP(calculator linking alternative protocol) makes linking between different calculators and even multiple calculators(more than 2 at a time) easy.
A lot can be done on the z80. A few 3d first person shooters have been made, including doom and Castle Wolfenstein, and also Gemeni, which I think is the best. These used raycasting 3d. There is a nice 3d racing game called lotus turbo challenge that has some nice effects and looks nice. There is also a full-3d wireframe racing game called glasscars that allows for 2 linked calcs to play multiplayer races. Also in 3d is a roller coaster design game where you can design a roller coaster and ride it. There are some good side scrolling games like mario and harvest moon, and Sonic and Metroid are being worked on. Also, a very nice version of Zelda is coming together nicely. It's been featured on a few other websites and has driven a lot of other people to these calc sites.
Other z80 programming sites include unitedTI.org, revsoft.org, omnimaga.org, and chemtech.org. omnimaga is more TI-basic oriented.
There are two real 3d engines being worked on right now here, one by quarnos, and one by benryves. quarnos's engine is more for 3d spacefighting games(like space dementia) and benryves is more suited to first person shooters.
I remember someone doing parallax scrolling, I think it was in grayscale with the revolution Greyscale Package (RGP).
Also done on the 84+ series is the usb8x which allows you to connect USB devices to the calculator, like usb flash drives, keyboards, or mice. It was demonstrated by showing the lobby scene from the matrix from a series of pictures stored on the flash drive. Also, realSound allows actual music recordings to be played on the calculator through the link port. This is real sound, not a midi or anything. It was demonstrated by playing GreenDay's Basketcase through computer speakers connected to the link port.
Another interesting program is Cabamap which is an app that allows you to calculate very large numbers at high speed. For example, you can calculate the square root of 3 to hundreds of thousands of digits in just a few minutes. You can also calculate the factorial of 1000!. It is much faster at calculating than even the 89, by a very large margin, usually at least twice as fast or more.
If you have any more questions, feel free to ask. Are you thinking about starting to program in z80 assembly? How about making a port of your excellant bomber Dude game? The only game like that we have is bomberkids, which doesn't have an AI. There is a slime volleyball game for the 83+, but it's a bit more primative, with no background and no hit effects. We also have a game called Arcade Mario, which is like the original mario bros game, but not nearly as good a port as your m4r10.
In Memory of the Maxcoderz Trophy
- Madskillz
- Calc Wizard
- Posts: 745
- Joined: Fri 17 Dec, 2004 10:22 pm
- Location: Wandering around in the Jungle...
- Contact:
Dont forget Tifreak...heh put alot of work into a site with all sorts of goodies on coding for the calcs. BASIC, z80, or even C.
Heres the page on ASM/C:
http://tifreakware.calcgames.org/tutorials/asmresc.htm
Heres the page on ASM/C:
http://tifreakware.calcgames.org/tutorials/asmresc.htm
The Revolution is here...
-
- Calc King
- Posts: 2195
- Joined: Sun 27 Mar, 2005 4:06 am
- Location: sleeping
- Contact:
- benryves
- Maxcoderz Staff
- Posts: 3087
- Joined: Thu 16 Dec, 2004 10:06 pm
- Location: Croydon, England
- Contact:
Welcome! Sadly I only have a Z80 calc, so haven't had a chance to look at your programs in the past.
As far as already being an assembly programmer goes, I'd prefer to stick to CoBB's excellent no-nonsense Z80 tutorial. Lots of sample snippets to explain what's going on and a great reference in the appendices.
I was especially interested with your Kartingz program, as I've experimented with rotozoom effects on the 83+ in the past (screenshot) but my code was too slow to be of any real use.
Looking forwards to seeing what magic you can rustle up on the Z80
As far as already being an assembly programmer goes, I'd prefer to stick to CoBB's excellent no-nonsense Z80 tutorial. Lots of sample snippets to explain what's going on and a great reference in the appendices.
I was especially interested with your Kartingz program, as I've experimented with rotozoom effects on the 83+ in the past (screenshot) but my code was too slow to be of any real use.
Looking forwards to seeing what magic you can rustle up on the Z80
- benryves
- Maxcoderz Staff
- Posts: 3087
- Joined: Thu 16 Dec, 2004 10:06 pm
- Location: Croydon, England
- Contact:
I would have assumed it worked the same way as yours does (to some extent).Jyaif wrote:I was thinking of porting Kartingz, so your rotozoom interests me. How does your engine works ?
It fills pixels from left->right, scanline by scanline.
It starts by calculating a dX (cos(angle)) and a dY (sin(angle)). These are used to move the coordinate "under" the pixel that is under the current pixel being filled (as in, the coordinate of the source pixel). Two coordinates are kept track of - one for the current pixel, one for the pixel at the start of the scanline.
At the start of each scanline, the coordinates for the start of the scanline is copied to the current pixel coordinates. The start of current scanline coordinates are then adjusted so they're ready for the next row. As moving down Y should perform the same action as moving right X rotated through 90 degrees, x-=dy and y+=dx. Then, I fill each pixel, after each one moving along using x+=dx and y+=dy.
I really can't think of a better way to describe it. Here is a QB demo (binary) of what I mean. sp? is the start scanline pixel coordinate, p? is the current pixel coordinate.
I also preload sp? with values to the effect of moving up half the screen height and left half the screen width so that it rotates around the centre of the screen instead of the top-left corner.