Author
|
Topic: Question about rom enhancement (Read 1 times)
|
tcaudilllg
Guest
|
|
« on: July 23, 2010, 12:36:10 pm » |
|
Would it be possible to do the following:
- 1. add information to a rom (like an expanded palette for a sprite)
- 2. update the target addresses for all pointers which point to information after the added information
What would be the technical hurdles?
|
|
|
|
MathOnNapkins
Guest
|
|
« Reply #1 on: July 23, 2010, 12:48:04 pm » |
|
If you mean "Can I make a ROM do things that the original system couldn't do", then yes. It's just a matter of modding an emulator's code, along with data or code in the ROM.
If the question is "Can I do these enhancements while still keeping it in the original system limitations? (and without introducing new hardware like modding a cart)", then the answer is also yes, but with limitations. To take your sprite example, a sprite may only be allowed so many colors in its palette. You may be able to get around that by using two overlapped sprites that use different palettes. The limitation in that case is that there is often a limitation to the available memory for palettes. For example, the SNES has room for 256 colors in its palette RAM, and the DS has room (iirc) for 512 colors. There's also the limitation of how many sprites can be dispalyed on screen to take into account. You might not have room in the sprite memory for that. So the real answer is, you have to go find out for yourself if what you want to do is possible. Knowing whether it's possible is informed partially by knowing the system limitations, and partially by knowing how much of the system resources the game is already using (and in what manner is uses them.)
The second point about "updating target addresses for all pointers" is a really broad question. To answer broadly, yes you can do that, but it might be easy or it might be quite a bit of work, depending on the game.
|
|
|
|
tcaudilllg
Guest
|
|
« Reply #2 on: July 23, 2010, 01:49:41 pm » |
|
I would like to develop an automated method for updating the pointers. Specifically, I've got an idea for graphically enhancing GB games by converting them to GBC. It seems like it would be doable by doing address range scanning. (e,g, if the address is after the modified segment start address and in ROM, increase it by the number of bytes added to the modified segment). Now the matter of finding the palettes is a completely different matter, of course, but it's usually not difficult.
UPDATE: it looks like there is already a program that does this. However, it only works with bank 0. What's needed is ROM expansion, then.
|
|
« Last Edit: July 23, 2010, 02:34:31 pm by tcaudilllg »
|
|
|
|
Tauwasser
Guest
|
|
« Reply #3 on: July 24, 2010, 04:29:04 am » |
|
Expanding a game boy rom is really simple if you don't need additional functionality that is used by some MBCs. For instance MBC3 is the only one with a RTC, so this caps rom size for games with RTC to 2 MB, whereas MBC5 allows for a max of 4 MB.
The rest is just a matter of finding the bank switching routines and such. They don't even differ for the modern MBCs, but you would have to convert those for older MBCs.
cYa,
Tauwasser
|
|
|
|
|