Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/28/2021 in Blog Entries

  1. Here are my plans for platformers using that 7800Basic demo. The Agathodaimon (Rastan Saga and Curse of Issyos meet Zelda 2, Gargoyle's Quest II, and Robot Ninja Haggleman 3. I was planning on having 7800XM support, but Curt Vendel's death shot the chances of that happening down.) Kid Zenithian (Classic Mega Man, but with the ability to duck and shoot upward. See also Magical Doropie/The Krion Conquest.) Ð838 (Metroid Clone) Snáwcild (A Ninja Gaiden clone featuring a Demon Lands character whose name literally translates to Snow Child.) Ildu (Wonder-Boy-esque platformer with Old English/Anglo-Saxon themes. Part of the Middanyeard series.) Ghosts 'n Goblins clone.
    1 point
  2. This one is a bit more laid-back compared to the last entries. I had some irl stuff going on with my little sister... So anyway, today I dipped my toes into some basic bit-specific instructions. Those being, and and not. In order to understand how these instructions work, you need to first understand what the data equals in binary. Starting off with the not instruction, what it does is reverse the "bits" in binary for the amount of data specified. (e.g, if a bit is set, it'll change it to clear, and vise-versa.) Let's keep it simple and use a byte as an example: not.b $0000002C Let's pretend that a byte "5F" is located at address 0000002C: 5F = 0101 1111 The "NOT" instruction reverses the bits, which gives you: 1010 0000 = A0 Because "5F" has been reversed to "A0", the byte A0 is now located at offset 0000002C. Meanwhile, the and instruction is a bit more complicated. What it does is perform AND logical between the source operand and destination operand, with the result being saved to the destination operand. So what is AND logical? Let's take two bits, one from the source operand, and one from the destination operand to perform AND logical: source operand destination operand Result 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 Basically, both have to be 1 in order for the result to equal 1. The best way to look at it is that 0 = False and 1 = True. If the source operand AND the destination operand are true, then the result is "true". Which is where the instruction gets its name from. Let's use an example, pretend that "d0" contains 01234567. andi.b #$D1,d0 What this line of code does is perform AND logical between byte D1, and byte 67 (located in data register 0). D1 = 1101 0001 AND 67 = 0110 0111 40 = 0100 0000 (result) d0 now has 01234540 in memory. Anyhoo, that's all for today. I apologize for this entry not having as much content. Hopefully that won't be the case tomorrow.
    1 point
  3. Well, now I've got some new instructions under my belt. It's still the really basic stuff mind you (add, sub, swap, clr, exg etc.), but now I've got a decent handle on what it's like to move memory around. Right now I'm trying to memorize the technicalities (like how you cannot move word or long-word sized data in and out of memory if the address is an odd number, as the 68k will crash with an "address error"), and tomorrow I'll probably dip my toes into bit-specific instructions such as not. The tutorial I've been using online has little things at the end of each section to test your knowledge. Here's the last one I went through: move.w #$0010,d0 move.w d0,$00000040 move.w d0,d1 add.w d1,d1 add.w d0,d1 sub.w $00000040,d1 swap d1 move.w d0,d1 movea.l #$00000040,a4 add.w (a4),d1 move.w d1,(a4) exg.l d1,d0 swap d0 clr.w d0 Basically, each data register had the value of 00000000 to start with, and I needed to figure out what d0 contained after all of this information was processed. Here's my work: move.w #$0010,d0 (d0 now has 00000010) move.w d0,$00000040 (offset 00000040 and 00000041 have byte 00 and 10 respectively) move.w d0,d1 (d1 now has 00000010) add.w d1,d1 (d1 now has 00000020) add.w d0,d1 (d1 now has 00000030) sub.w $00000040,d1 (d1 now has 00000020) swap d1 (d1 now has 20000000) move.w d0,d1 (d1 now has 20000010) movea.l #$00000040,a4 (a4 now has $00000040, #$00000010) add.w (a4),d1 (d1 now has 20000020) move.w d1,(a4) (a4 now has $00000040, #$20000020) exg.l d1,d0 (d1 now has 000000010, d0 now has 20000020) swap d0 (d0 now has 00202000 clr.w d0 (d0 now has 00200000) I came to the conclusion that d0 had 00200000 in memory, which was correct!
    1 point
  4. I will work on the clouds in HERTS3 sometime when I'm bored. Right now I am working on Onion Ring of Fate for the Jaguar even though I don't have any idea for it. Right now, though, it's like Super Mario Bros. I put a few hours' work in today. I put in a temporary background that I'm scrolling. This is what it looks like. I really should hook up the Jaguar and give it a go. And if you'd like to make a couple of backgrounds for me, I'll give you an idea of what I'm doing here. Except the pictures need to be in bmp mode, preferrably 4 bit, but if you need to go 8 bit, please keep the # of colors below 100.
    1 point
×
×
  • Create New...