| |||
Views: 88,442,918 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-20-24 04:32 PM |
|
Guest: Register | Login |
Main - Posts by RetroRain |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 41/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Thanks for the code frantik. I have been experimenting with it. It definately does something. I am so close to what I want, but I'm not sure of the right code. I'm having a tough time with it. I can get 4-tile animation, but it is very flickery, because it is using pages I don't want it to use.
LDA #$03 STA $8000 LDA #$09 STA $8001 LDA $09 AND #$03 STA $8001 I have even used the LSRs, and all sorts of different remixes of the code you gave me, and nothing is getting me the results I want. PPU Viewer: [][][][][][][][] [][][][][][][][] [][][][][][][][] [][][][][][][][] <----- PPU $1400 (LDA #$03 and STA $8000, We don't need to worry about this) [][][][][][][][] [][][][][][][][] [][][][][][][][] [][][][][][][][] It is the LDA #$09 and STA $8001 that is the problem here. There are 4 pages that have to be animated. #$09 = First ? Block Frame #$0D = Second ? Block Frame #$11 = Third ? Block Frame #$15 = Fourth ? Block Frame #$09 needs to be incremented by 4 to do each frame, because.... Right Side Pattern Table: [][][][][][][][] #$08 [][][][][][][][] #$09 [][][][][][][][] #$0A [][][][][][][][] #$0B [][][][][][][][] #$0C [][][][][][][][] #$0D [][][][][][][][] #$0E [][][][][][][][] #$0F [][][][][][][][] #$10 [][][][][][][][] #$11 [][][][][][][][] #$12 [][][][][][][][] #$13 [][][][][][][][] #$14 [][][][][][][][] #$15 [][][][][][][][] #$16 [][][][][][][][] #$17 And that is because I am using Mapper 4 (MMC3), where the Right side pattern table is split into 4 VROM pages, as opposed to the Left side, which is split into 2 VROM pages, like so....... [][][][][][][][] [][][][][][][][] [][][][][][][][] [][][][][][][][] [][][][][][][][] [][][][][][][][] [][][][][][][][] [][][][][][][][] Now I could use a different mapper, but that is running away from the problem at hand. I need to be able to do this. The only thing I have to do is get proper code for my animation to work. Everything else is already taken care of. I guess what I'm asking is, how do I get the frame counter (Address $09), to select my 4 values, without selecting other pages that I don't want in there? I tried CMPs also... I'm going to keep playing around with it though, because I'm almost there. This is the last part. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 42/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
I tried it, but it is not working. Here is the code I typed, shown from the debugger:
$89E1: A9 03 LDA #$03 $89E3: 8D 00 80 STA $8000 = #$78 $89E6: EE 0F 00 INC $000F = #$01 $89E9: AD 0F 00 LDA $000F = #$01 $89EC: 29 03 AND #$03 $89EE: 8D 0F 00 STA $000F = #$01 $89F1: AA TAX $89F2: BD F8 89 LDA $89F8,X @ $89F9 = #$09 $89F5: 8D 01 80 STA $8001 = #$D8 $89F8: 05 09 ORA $09 = #$1A $89FA: 0D 11 00 ORA $0011 = #$00 Since $0F isn't used, I decided to use that as my counter. Also, I confused the numbers before. It is #$05, #$09, #$0D, and #$11. It appears to stop loading at #$09. Is there any errors in this code? EDIT - It is actually only loading one tile, because the INC $000F comes before it is stored, so it is storing #$09, and then that's it. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 43/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Dude, you are the best! Really man, thanks a lot!
____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 44/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
If I wanted to do 8-tile animation, or 16-tile animation, would I have to make just a few minor adjustments to the code? ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 45/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
A Super NES game called Kablooey. Have you ever played it? If not, and you like puzzle games, you should definately try. I have many memories of playing this when I was kid, when the Super NES was a big thing. Not a lot of people talk about it, or even heard of it. It's so unheard of, that there isn't even a YouTube video of the game. Has anyone ever played it? ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 46/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
I added 16-frame tile animated rain to SMB3. There's just one thing. Is there anything I can do to make the rain come down faster?
DahrkDaiz's SMB3 Notes: $8E35:AC 1A 07 LDY $071A ; This loads the current bank from lower left corner of the pattern table $8E38:C0 6A CPY #$6A ; 6A is the bank for the Airship, which doesn't have animated bg tiles $8E3A:F0 21 BEQ $8E5D ; thus skip the animating routine $8E3C:A5 15 LDA $15 ; This loads the constant timer $8E3E:29 03 AND #$03 ; used for battleship animated tiles $8E40: D0 1B BNE $8E5D ; but skips it on xxxx xx00 since there's only 3 frames of animation $8E42:C8 INY $8E43:C8 INY $8E44:C0 76 CPY #$76 ; 74 is the last bank for the battle ship animated tile sequence (70, 72, 74) $8E46: D0 02 BNE $8E4A ; a table isn't used here, thus, Y (from 71A) is increased twice $8E48:A0 70 LDY #$70 ; if it reaches 76, loop back to the first animation sequence (70) $8E4A:8C 1A 07 STY $071A ; and store it into the gfx bank $8E4D: D0 0E BNE $8E5D $8E4F:A5 15 LDA $15 ; this loads the constant timer and indexes it for the global $8E51:29 18 AND #$18 ; animated tiles (coins, ? blocks, munchers, etc) $8E53:4A LSR $8E54:4A LSR $8E55:4A LSR $8E56:AA TAX $8E57: BD FC 83 LDA $83FC,X ; Loads a bank from the animation sequence (60, 62, 64, 66) $8E5A:8D 1A 07 STA $071A ; and finally stores it into the ram for the lower left gfx bank With what I highlighted in bold, I changed the location it gets the tiles from. I put 16 bytes (16 tiles) in some free space, and changed other parts of the code above. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 47/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
I noticed that when I mess with the LSRs, by NOPing them out, it puts frames in there that don't belong, obviously, but the rain comes down a lot quicker when its their turn to show up.
EDIT - Nevermind. I figured it out. It CAN be done by tweaking the value at AND, and NOPing out 2 LSRs. The ? blocks and coins are spinning super-fast, because I didn't make animations for them. Its the same original 4-frames being done over a few times. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 48/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Might as well post this here too, since I finally have something decent enough to show.
Through all of the help I have received, and with a lot of practice, I was able to add 16 frames of animation to SMB3. Right now, the rain is animated through 16 frames, but the ? blocks and coins are animated with 4 frames (hence why they move really fast), because I didn't draw frames for them yet. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 49/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Yeah but that can easily be fixed. Since I plan on re-drawing the rain anyway (it looks like shit really), all I have to do is copy each of the original 4 frames, 4 times. Then, if I don't want 16 frames for certain things, I don't need to. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 50/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Those familiar with Star Trek, will understand this...
____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 51/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Thanks. I took the flash effect out. I decided not to use it. It started hurting my eyes after a while, so if it hurts people's eyes, that's not a good thing. I could probably put the flash at random intervals, but right now its not a priority for me. Maybe later on, we'll see... There have already been a lot of minor changes to the first level, since the video. Level 1 is finally done, and Level 2 has been started. I did some graphics changes as well. I'm having fun making this, so hopefully I can get it done. I want to get a lot more done, before I show more. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 52/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
RT-55J:
Heian: The Mirror Universe is a parallel universe. It exists just as the normal universe exists. This game happens during the exact same time as Super Mario Bros. 3. In the Mirror Universe, Mario is a soldier of the empire, trying to help take down the resistance, the rebels (koopas). The koopas are the good guys. Mario is a part of the empire (the bad guys). The music is from the two-part Episode of Star Trek: Enterprise, titled "In a Mirror, Darkly" This is the YouTube video that inspired my preview trailer: http://www.youtube.com/watch?v=Dl5zw6fGjdA&NR=1 If you want the music from it, right click and save as: http://ent.trekcore.com/multimedia/audio/inamirrortheme.mp3 You can actually find the whole episode on YouTube. It's very good, and what has inspired this hack. Googie: I appreciate the effort you put in to the title screen. Your support and enthusiasm is great. What I was thinking about doing for the title screen, is having the Terran Empire logo in there somewhere: The crows look good too, but I might be trying to lose the "Mario feel" the game has to it, and make the game more serious. I'm not sure yet. I also implemented an Enemy Physical Hit Counter. Every time you physically stomp or kill an enemy, the counter is increased by 1. Right now I"m working on a way to get it to show up properly. I want the player to be able to see how many enemies he has killed. I have also been brainstorming about a Mutany Meter, Mission-Based Objectives, and other neat things. Perhaps, one level you will have to find a p-switch, or one level you will have to kill a boss, or one level you will have to find a certain amount of coins, etc... Just some ideas I have been thinking of. Plus, the graphics are getting a complete overhaul. I want to put a lot of work into this. Any other ideas or suggestions are welcome! ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 53/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Like what? A mushroom with a knife through it? lol. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 54/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
My rain background for the hills level is acting as water. I don't want Mario swimming in it. Now, I read the readme, I played around with the Object Definition Editor, but I can't seem to get it to do anything. Can this indeed be changed with the editor? ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 55/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
Posted by CeliceSame here. When frantik and Panophobia posted their stuff, I wanted to comment, but I had a lot of typing to do in regards to my own hack. But I wanted to comment. frantik and Panophobia, I like what I see. Very nice work, and very inspiring. Keep up the good work guys! EDIT - Here is another preview of Dark Mario. It shows you some of the things I changed. Enjoy! EDIT - I fixed the glitches! ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 56/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
haha I know. XD I fixed it though. I added some code which compares the tile sets and sets the appropriate one. I could use a little help with one thing: When adding one 16-K PRG-ROM bank to the ROM, you can't just put it anywhere, or the game won't run. Does the total number of PRG-ROM banks have to be an even number? Also, where can I put it to make the game run?
Ice Penguin: I like it. Zelda II is a cool game. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 57/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
JaSp, any idea on how to go about doing this? I know $70A is the Current Object Set/Level Type, and I know the actual tile numbers for the rain. I'll be able to do it, if I know what I'm looking for. ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 58/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
I like the title screen. If you don't mind me asking, how did you make it? I've been drawing in Paint, and trying to copy and paste it into YY-CHR, but the graphics don't show up right, because of the coloring. Could you tell me how you did it? ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 59/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
1. What is the best low-level NES Assembler to use? NESASM or FSNASM? Or is it something else?
2. Reason I'm asking, is because these two assemblers are being anal about compiling my code. They keep saying that my .db or .dws are invalid codes, and they're not. It's pissing me off. Let me show you some simple code I'm trying to compile: .inesprg 1 .ineschr 1 .inesmir 1 .inesmap 4 .org $8000 .bank 0 Start: LDA #$08 STA $2000 LDA #$1E STA $2001 LDA #$3F STA $2006 LDA #$00 STA $2006 LDX #$00 Load_Palette: LDA Palette, X STA $2007 INX CPX #$21 BNE Load_Palette .db $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03 .bank 2 .org $0000 .incbin "font.chr" .bank 1 .org $FFFA .dw 0 ;(NMI_Routine) .dw Start ;(Reset_Routine) .dw 0 ;(IRQ_Routine) If I compile this with NESASM Now, if I leave this out: LDX #$00 Load_Palette: LDA Palette, X STA $2007 INX CPX #$21 BNE Load_Palette .db $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03 It will compile, because of the .db. But what I don't get, is that the .db is a prefectly valid code. Now, lets move onto FSNASM. FSNASM doesn't recognize a lot of the same code that I used here: Consulting the FSNASM Readme...... The following directives can be used (the period is optional): .data - Create a section. .code - Create a section that will be placed within one bank. .ram - Allocate an area in the RAM .zram - Allocate a RAM area, that will end up between $0000 and $2000 .org .end - Ends a section. .dc - Put specified data, separated with commas. Use double quotes for character strings. .incbin .equ/= .align .block .global .base .endb - Restore the address .defchars < name > [ s ]< range >=< value > [,...] - Define a character set. Place an "S" to specify a sequence of characters. .charset FSNASM doesn't support .db, .dw, .inesprg, .inesprg, etc.? So how the hell do I compile my code? I can compile it easily with NESASM if I take out the .db, and just manually have it read each line by line by line. That's impractical though. Consulting the NESASM Readme: Directives ---------- LIST, tell the assembler that you want a complete listing file. You can later stop temporarily the output with the NOLIST directive and restart it with LIST. NOLIST, stop the listing output. MLIST, include the macros in the listing file. NOMLIST, stop expanding macros in the listing file. EQU, assign a value to a symbol. The character '=' has the same function too. BANK, select a ROM bank (0-127) and reset the location counter to the latest known position in this bank. ORG, set the location of the program counter. The thirteen lower bits of the address inform the assembler about the offset in the ROM bank and the third upper bits represent the page index. DB, data byte(s). DW, data word(s). RSSET, set the internal counter of the RS directive to a specified value. RS, assign a value to a symbol; a bit like EQU but here the value assigned is taken from an internal counter and after the assignation this counter is increased by the value specified in the RS directive. It's a very handy way of defining variables, here's a small example: .rsset $2000 ; set the initial value of ; the RS internal counter my_byte .rs 1 ; define a var of 1 byte my_word .rs 2 ; " 2 bytes MACRO, start a macro definition. ENDM, end a macro definition. INCBIN, include a binary file at the current location. If the file is bigger than a ROM bank, as many successive banks as necessary will be filled and the bank and the location counter will be updated. INCLUDE, include a source file at the current location. Up to 7 levels are possible. INESPRG, specifies the number of 16k prg banks. INESCHR, specifies the number of 8k chr banks. INESMAP, specifies the mapper used. INESMIR, specifies VRAM mirroring of the banks. refer to INES header documents (neshdr20.txt). This file should be part of the compiler archive. As you can see, NESASM supports these commands, so how come it gives me an invalid message then? Am I doing something wrong? ____________________ My YouTube Channel |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 60/994 EXP: 2437027 Next: 24824 Since: 09-30-07 Last post: 1929 days Last view: 951 days |
I already figured out what the problem was. I sent a PM to Ailure to have this closed. I appreciate the response though.
For those that are curious, here is what the problem was: My Code LDX #$00 Load_Palette: LDA Palette, X STA $2007 INX CPX #$21 BNE Load_Palette .db $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03 Correct Code LDX #$00 Load_Palette: LDA Palette, X STA $2007 INX CPX #$20 BNE Load_Palette Palette .db $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03, $0F, $01, $02, $03 I had to add the label name to the beginning of the data table. ____________________ My YouTube Channel |
Main - Posts by RetroRain |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 130, rows: 162/162, time: 0.229 seconds. |