| |||
Views: 88,554,218 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 05-07-24 07:53 AM |
|
Guest: Register | Login |
Main - Posts by infidelity |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 283/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Excellent! Thats good that you understand JSR's. Its also good that you know how to write the proper address for the JSR. The very basic things people should learn, is loading and storing, compares, branches, jsr's and jmp's. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 284/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Trying to remember off the top of my head with megaman4. The F8's are constantly stored there, so that nothing appears on the screen that isnt supposed to be there. There is very technical asm that goes on, that constantly updates that entire area. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 285/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
I never messed with the weapon menu asm extensively, but i assume its an entire separate entity. If it wasnt, an you opened the menu, then megaman, the health bar, enemies/boss, would appear on the weapon menu. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 286/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
UPDATE 4-17-13
It was brought to my attention, that my SRAM was all messed up within my game, when it was running off of a TKROM board, and within Nestopia. I have went back and fixed this issue. I have removed the older version from Uploader. Here is the newer version for TKROM boards & Nestopia. Tetris Zero (MMC3_118_v2) http://acmlm.kafuka.org/uploader/get.php?id=4409 For detailed info on what i did, ive included a .txt file within the .zip. Original Release Announcement Below Last year I released a little hack i performed on Tetris called, "Tetris Zero" Last month, i received a message from a fan of my work, who wanted to see if i could revisit what i made, and try to improve on it, game play & graphics wise. But most importantly, the main reason was that he wanted this to work properly on an actual NES. I remembered some of the thigns that i did, went back to my old notes, and since that time, my asm had gotten better, and certain things that i couldn't pull off then, i could pull off now. So in case many of you had forgotten what i did, i will briefly re-explain, and then explain the newly enhanced version from my last version. I wanted to bring a 2 player mode to the Nintendo version of Tetris. While i was working on it, I discovered a hidden 2 player mode using register $BE. But alot of functions were missing. The only function the was done by Nintendo, was the player 2 controller to control the 2nd players piece. I had to write custom code, to allow a slew of things for player 2, and for certain things to coexist with player 1's asm. Specificly giving player 2 the ability to choose his/her own starting level/height, like i accomplished in my last version. With this version, i went all out. First the rom specs. 1. Converted the rom from MMC1 to MMC3's alternative 118 *needed because Tetris uses special mirroring that MMC3 doesnt have, but 118 does, and, i needed the extra PRG space to perform all of my custom asm* 2. Expanded PRG to have 2 additional PRG banks 3. Had to create a custom bankswap routine, since no bankswap was present in original rom *$10-$4000 & $4010-$7FFF originaly* Now these are the new features that i have added to Tetris. 1. Enabled 2 player mode 2. Created custom controls for 2nd player on non & in-game screens 3. Created custom designs for A/B-Type 2 player mode 4. Created asm to allow 2nd player to have stats shown on in-game screen The next feature, #5, i'm really proud of cause i've never done this before in a rom hack on my own, and it flipping works, emulation and on NES hardware! 5. Made it so players can save they're high scores using SRAM Explanation - Tetris has a Top 3 scoring system for both A/B-Type screens, giving you a total of 6 individual high scores. I've completely rewritten the asm, so that the 2 player mode is taken into consideration, giving you 6 more high scores in the game. So that means, Tetris Zero has 12 individual names/scores! 3 scores for each mode (A-Type 1 player) (B-Type 1 player) (A-Type 2 player) (B-Type 2 player) And they all save, and all load back up properly! I performed power off on FCEUX, restarted, and the names/scores were there. I also performed this on an actual NES using a powerpak, and it saved/loaded everything! 6. Player 2 has the ability to write his/her name into the scoreboard 7. Added a new gameplay feature to the B-Type Mode Explanation - In B-Type mode, in order to win, you have to clear 25 lines. I made it so now you have the ability to choose how many lines you wish to clear. You can choose from 01-80 lines to clear. I personaly love this idea, and i'm very proud of it. :-) 8. Player 2 now has the ability to obtain it's own game piece, no longer sharing/stealing from player 1 9. Player 2 now has a properly NEXT piece box, along with working select button to enable/disable display 10. Player 2 now has the ability to select an additional +10 levels from what he/she chooses from A/B-Type Explanation - In Tetris, player 1 can hold the A button down when he/she has level 0-9 highlighted, and when he/she presses start with A held, you start +10 levels from what you selected. I made it so player 2 can do the same thing. However, this can only be done while player 2 holds down the B button. When player 1 presses start, player 2 needs to have the B button held down, in order for him/her to get to the +10 level. I was experiencing issues with FCEUX 2.1.2, with both A buttons held down by player 1 & 2, and when player 1 would try to press start, nothing would happen. I watched the hex viewer while holding/pushing, and it just wouldn't register, but it would register on an actual NES. So to be safe, i just made it so player 2 holds down the B button. Now some screenshots And here is the .ips REMOVED AS OF 4-17-13. OBTAIN LATEST IPS AT THE BEGINNING OF THIS THREAD The .zip includes an .ips of Tetris Zero, and a .sav file for those who own a powerpak for the NES. If you own one of those powerpaks, that allow you to play roms on an actual NES, you will need that .sav that i included. For those who run this rom on an emulator, on pc/wii/ps3/360/psp/ds, etc, you don't need it. I hope all of you enjoy this, and like the new features that i have implemented into it! :-D -infidelity |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 287/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Hahaha! Thank you RetroHelix! I loved the GB version as well, especially the music. Maybe i'll revisit the sound engine once i finish my work on Zelda. The first song in the GB version, i absolutly love! |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 288/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Thank You Superjustinbros. And Thank You Lunaria for relocating this thread! :-) |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 289/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
OLD THREAD
DO NOT OBTAIN ANY FILES FROM THIS THREAD PLEASE GO HERE FOR NEW THREAD http://acmlm.kafuka.org/board/thread.php?id=7573 |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 290/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Are there any detailed documents on the snes, like the YOSHI doc for nes? After my Zelda hack, im moving onto SNES romhacking, and would like to get an idea on how the machine works. Are there mappers? How does the ppu/nametable work? How is RAM setup?Etc |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 291/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
I found an actual doc by YOSHI, but my phone bunches up all the text, so i gotta wait till i get wifi with my laptop. I just wish the griger snes debugger had a code data logger, which would show yellow,blue,green, within the hex viewer. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 292/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Thank you for the info justin3009!
I actually began looking at Megaman X, and figure out how to turn on all of his weapons, and sub tanks, without having to obtain them. I've read that 6502 still applies in some aspects to the snes. And from what i've seen when it deals with the opcodes, i got a pretty good head start in being able to accomplish some things with the snes, i just need to get an idea on where to start. I'm hoping that i'll be able to figure things out like... Is there a NameTable for the snes, how does it work? I know there are multiple backgrounds as well, do they all coexist in one NameTable? Is there a PPU, and if so, how does it load sprite/bg tiles? Is it just like NES, where $0-$FFF is sprite or bg, and $1000-$1FFF is sprite or bg? My main desire, if there was a code data logger, i know i've mentioned this already, but that is what has made me do so well in writing/understanding asm. You say 7E0000 & 7FFFFF. Is there like a $0 to $7FFFFF? I'm going to check out that doc by YOSHI, and see what i can figure out. :-) This is the document by Yoshi that I found http://patpend.net/technical/snes/snes.txt |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 293/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Maybe i dont have the right boxes checked off in the debugger, for the code data logger to display highlighted values when viewing ROM in the hex viewer? When viewing RAM with Geigers emu, is 7E0000 the beginning of the snes memory? |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 294/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Its annoying i cant do hex searches! Geigers allows copy/paste, but if i want to look for specific values or a string of data, theres no option to do that. So frustrating its not like FCEUX. I really like SS$NS, great debug emu! You can view all the vram. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 295/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
So is there a dedicated Hard Wired bank in SNES roms, or is that just specificly for NES?
This is not a thread to discuss how to hack Megaman X, but i'm using that rom as my personal introduction to working with SNES. Anyways, i learned about LoROM & HiROM, how LoROM's individual banks are $8000 bytes each, and HiROM's individual banks are $10000 bytes each. Megaman X uses LoROM. Using Geigers as an example, i open the hex viewer and select ROM. It then starts at $808000, which i believe is Bank $80. When I scroll through the hex, it will go to 80FFFF then to 818000. So for LoROM, each individual bank appears to have a dedicated $C000-$FFFF. So does that mean the Hard Wired bank from the NES days, no longer applied when the SNES came out? And here's another confusing concept to me. Do rom's have individual bankswap routines, or is there a dedicated method to jumping to different banks within the rom on SNES? I ask because, when viewing Megaman X in Geigers hex viewer, it starts at 808000 and goes to BFFFFF. How come it doesn't show 008000-7FFFFF? Does the rom contain 008000-7FFFFF? *this is where i really wish CDL was a feature in Geiger's debug...* Thank you justin3009 and MikeFuryXP for your input(s) |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 296/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Great example, i understood that perfectly! Thats so awesome there is a dedicated sub routine & jmp for bankswapping! So is 808000 really bank 0? Cause when you boot Megaman X, the SEtInterupt (78) starts, and the text says $00/8000? |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 297/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Already found a spot within bank 0 for me to do some custom asm. Im seeing how i can manipulate the pixelation of each bg layer or all bg layers, its awesome! I think its $2106. I cant wait to try to attempt to zoom in/out and rotate the bg layer! |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 298/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Im still workin on tryin to get some kind of bg to rotate or inc/dec in size. Then id like to find the individual xy registers for all 4 bg layers. Do all snes roms use compression for gfx? Some games you never see all tiles with yy-chr or tlp. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 299/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Im familiar with TM. I used it when Megaman 9 came out on the Wii, and people learned how to rip the gfx from it using a specific codec within TM. So am i correct in assuming this is the same thing for SNES, to properly rip/paste based on the codec? |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 300/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Been a long time since i've given an update on this, i apologize for such a long delay.
I have finished constructing the Light World. Right now im in the process of checking each individual screen id to make sure there are no crashes. There have been a few, and i believe it is primarily due to specific tiles not being present for specific enemies, and it will cause the rom to go in what i believe is a constant loop, or sometimes just crashing all together. At this time i have made it so each screen id works when you walk onto it. I now have the grueling task of setting up massive tables to determine when to switch out certain CHR for certain areas Link visits. Creating the table is a cinch, no worries on that, it's just the thought process will begin on where to initiate those CHR changes. I was smart in designing the layout of the outworld, and wrote markers on each screen id, that reminds me which value to insert to show the proper CHR. I will also need to create another vast table to determine which of the swapped CHR tiles are solid/non solid. AND, i've noticed something that may be an issue. I have been using non solid color tiles, to construct vast amounts of solid grass or solid plush throughout the entire world, and i'm seeing enemies forming in those areas that are supposed to be solid, and they get stuck and spazzing out. I have 4 slots left in the solid area for tiles, where i can place 4 color tiles, and then redo those specific areas, but i hope it's not a pain in the ass to redo. I promise to continue to update at a better pace, and at some point i will release a demo for people to tinker around with. :-) -infidelity |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 301/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Thank you for those kind words, optomon! As for "Infedit" that was created for me by snarfblam. I completely rewrote how Zelda constructs it screens, and by doing that, i made all current level design editors for my copy of Zelda, useless. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 302/968 EXP: 2370135 Next: 91716 Since: 05-24-07 Last post: 969 days Last view: 825 days |
So ive managed to pull off having all of the light world's screen id's, (00-FF aka 256 individual screens) to look at a vast table to decide what chr bank to load for the proper gfx to display. |
Main - Posts by infidelity |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 130, rows: 162/162, time: 5.412 seconds. |