Final Fantasy Better Shops ROM Hack Pt. 2

  Рет қаралды 8,830

NesHacker

NesHacker

Күн бұрын

In this episode we go through how the NES processes game programs and show how to trace and edit subroutines using FCEUX.
Support the channel on Patreon: / neshacker
Better Shops Hack Part 1 - • Final Fantasy Better S...
Binary & Hexadecimal Video - • Binary & Hexadecimal D...
Chapters:
0:00 Cold Open
0:30 Introduction
1:18 NES Game Processing
3:55 FCEUX Tracing Overview
6:02 Subroutine Tracing Example
8:05 FCEUX Hex Editor Overview
9:28 FCEUX In-line Assembler Overview
10:03 Editing Game Routines
14:33 Conclusion

Пікірлер: 26
@thehollowknerd3858
@thehollowknerd3858 Жыл бұрын
Thank you for explaining a lot of this. I've really been interested in making ROM hacks of final fantasy and this really helped :)
@NesHacker
@NesHacker Жыл бұрын
Awesome, hope you have fun!
@EriknocTDW
@EriknocTDW 2 жыл бұрын
@12:53 "Then, I replaced the last 2 instructions of section 4 with a single instruction that jumped to the correct spot in the code. This eliminated the redundancy by having the program just reuse the same 2 instructions. More importantly, it freed up 3 bytes..." There are 2 more optimal ways to skip over the LDA #$0C without having to do a JMP. After the LDA #$13, you could: BNE +2 (Using 1 less byte, saving 4 bytes total.) --OR-- .byte $2C ;BIT abs instr to mask out next 2 bytes (Using 2 less bytes, saving 5 bytes total.) Of course since you didn't need that additional byte or two, your JMP does get the job done without leaving a hole in the code, which I'm assuming was why you decided to do that.
@NesHacker
@NesHacker 2 жыл бұрын
Yeah, I think that was just the first decent way I came up with when I was working on the hack and it seemed relatively clean so I went with it. I like your solutions though, they’re really clever :)
@EriknocTDW
@EriknocTDW 2 жыл бұрын
@@NesHacker Thank you. I can't take credit as I have learned those techniques from others. I am happy to pass it on though. 🙂
@HardwareSavvy
@HardwareSavvy 2 жыл бұрын
Superb video!
@edmocaldas
@edmocaldas 8 ай бұрын
Congratulations! 👏
@alieander
@alieander 3 жыл бұрын
Meet to see the code moving around! Can't wait for the final results!
@NesHacker
@NesHacker 3 жыл бұрын
Make sure to check out part 3, more moving code... but this time in 3D ;)
@erikhendrickson59
@erikhendrickson59 Жыл бұрын
Awesome video and awesome shirt!
@twobob
@twobob 8 ай бұрын
i did the cheat hacking to add perma fly to your nes input contoller rom. was fun.
@AT-zr9tv
@AT-zr9tv 2 жыл бұрын
Great video, once again. It must have been quite satisfying to manage to save exactly the 3 bytes you needed for your hacked code to fit. :) I've had that issue when hacking GameBoy games, and a quick and dirty trick (when possible) is to write your code in an unused section of the ROM bank. You then only need to jump to that location, which takes very few bytes.
@NesHacker
@NesHacker 2 жыл бұрын
Indeed, you should check out part three ;)
@riyantan9237
@riyantan9237 2 жыл бұрын
That's a fantastic video. Thank you very much for making and sharing with us!!
@NesHacker
@NesHacker 2 жыл бұрын
No problem :), they’re a lot of fun to make
@cartman9652
@cartman9652 2 жыл бұрын
Hi. I have seizure problems. Could you make a video about how to Romhack Nes games to turn off those infamous flashing effects during NES era?
@hicknopunk
@hicknopunk 2 жыл бұрын
Love your videos. One day I hope to learn the 6502 enough to program simple mac games I made as a kid.
@NesHacker
@NesHacker 2 жыл бұрын
Nice! Yeah I just found a box that had been tucked away in my parent’s attic and it had both an Atari 2600 and an Atari 600XL in it. Can’t wait to start messing with those in the future xD
@f.berger7756
@f.berger7756 7 ай бұрын
So basically you made a trainer 😀
@kevinferneine553
@kevinferneine553 2 жыл бұрын
In the minute 4:27 you make Conditions, where or where is the list of all the conditions for NES? in order to carry out and understand them.
@NesHacker
@NesHacker 2 жыл бұрын
Ah, so the conditions I’m talking about there are for when you set breakpoints in the FCEUX debugger. It’s not a full list of what can be done (cause that would be very long) but you can learn how to better use the debugger and set conditional breakpoints by reading the FCEUX docs here: fceux.com/web/help/Debugger.html
@JacklapottTv
@JacklapottTv 2 жыл бұрын
A mere question related to bank switching, how can a CPU continue execution when a bank is switched on the current active bank ? For me the CPU end up executing a random code on the newly activated bank
@NesHacker
@NesHacker 2 жыл бұрын
There are two banks of memory active at a time. One is always fixed to a specific bank (in this case the upper addresses fixed to the $0F bank) and the other is swapped. To make sure random code isn’t executed the bank swap code is usually placed on the fixed bank. This way the PC is executing instructions there while the other bank is swapped out.
@JacklapottTv
@JacklapottTv 2 жыл бұрын
@@NesHacker i see, then in this case what if my code jump to the new bank, and continue execution from there, how can i activated a 3rd bank and jump to it ?
@NesHacker
@NesHacker 2 жыл бұрын
@@JacklapottTv Well there is only enough address space to hold two banks. So you’ll never have three banks active at the same time. For the MMC1 mapper chip, which is used by Final Fantasy, you always have bank $0F active and one swappable one. So if you needed to access code in a third, you’d need to hop onto the fixed bank and swap the banks again. Having three active at the same time is not possible. A side note though. If you ensure every bank has the exact same swap code at the same locations it’s possible to perform the swap from any bank, but it’s not really needed if you structure your swap routines correctly and use parameters to tell it when to jump after it is done.
@JacklapottTv
@JacklapottTv 2 жыл бұрын
@@NesHacker awesome, now i understand better the need for having a fixed bank & a swapable one, thank you (y)
Final Fantasy Better Shops ROM Hack Pt. 3
15:34
NesHacker
Рет қаралды 7 М.
How NESticle changed NES Emulation forever | MVG
11:27
Modern Vintage Gamer
Рет қаралды 287 М.
когда одна дома // EVA mash
00:51
EVA mash
Рет қаралды 9 МЛН
SMART GADGET FOR COOL PARENTS ☔️
00:30
123 GO! HOUSE
Рет қаралды 22 МЛН
ТОМАТНЫЙ ДОЖДЬ #shorts
00:28
Паша Осадчий
Рет қаралды 13 МЛН
Final Fantasy Better Shops ROM Hack Pt. 1
10:56
NesHacker
Рет қаралды 13 М.
How Speedrunners Destroy Every Version of Final Fantasy 1
22:25
DoctorSwellman
Рет қаралды 173 М.
Coding NES Subroutines
8:15
NesHacker
Рет қаралды 53 М.
How to Make SNES Music (in 1995)
15:00
GST Channel
Рет қаралды 74 М.
The Making of: ROM City Rampage (Retro City Rampage)
10:45
VblankEntertainment
Рет қаралды 392 М.
The SNES Emulation War of 1997  | MVG
13:48
Modern Vintage Gamer
Рет қаралды 293 М.
Final Fantasy 3 Speedruns Are Only 6 Minutes Long?
17:44
DoctorSwellman
Рет қаралды 49 М.
Coding NES Loops
17:10
NesHacker
Рет қаралды 26 М.
How we fit an NES game into 40 Kilobytes
12:04
Morphcat Games
Рет қаралды 3,5 МЛН
когда одна дома // EVA mash
00:51
EVA mash
Рет қаралды 9 МЛН