News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Looking to get into rom hacking  (Read 1415 times)

FuxorLuck

  • Newbie
  • *
  • Posts: 2
    • View Profile
Looking to get into rom hacking
« on: June 06, 2020, 09:21:53 am »
Hey, I want to make some widescreen hacks for 5th/6th gen video games
I already made some widescreen hacks but sometimes I can't find a zoom out hack, a render fix or remove a filter that covers the screen


Is there any guide to begin learning this stuff?

Thanks

FAST6191

  • Hero Member
  • *****
  • Posts: 2864
    • View Profile
Re: Looking to get into rom hacking
« Reply #1 on: June 06, 2020, 12:14:50 pm »
So PS1, PS2 and attendant competitors.

Guides will tend to go by system, and by system the difficulty varies massively depending upon the underlying hardware and sometimes the game as well. Most of those are primarily 3d systems so you at least have that (widescreen on a classic 2d system is rather harder to do well or not just be a programming trick with an emulator that sort of works*).

*each frame trigger a savestate, press left and right, slice off only the new sides and stitch them onto the image. Works great until you hit a wall, are forced to stop because NPC or trigger a random battle. You can go a little bit further and try to decouple the camera a bit for games you study but that only gets you a bit further)

The general principle is that 3d games have a camera, sometimes called a viewport (though that is usually more for viewport rendering which is an issue to work around sometimes).
As it is just a camera shot of a 3d world then in theory it is no big deal to make it a bit bigger.
"zoom out" is much the same idea, unless you are talking about some of the first person camera stuff where there you are shoving the camera into the player's head rather than overhead or third person. Zoom might also be changed with some variables in the camera.
Speaking of cameras then while it is for 2d I will link https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pubas it is good stuff. If you want to learn the basics of 3d animation while you are at it (if the thing you are using has not taught you about gimbal lock then it has not gone far enough).

Overlays (such as the HUD) tend to be done in whatever piece of 2d hardware remains and slapped over the image. However some overlays can have visual effects included that do things like fog/shadow, cast it in a hue or have things taper off at the edge of a screen to simulate speed or something (which then have any artistic merit broken by having nice clean bars of image down the sides, or maybe being stretched to fit).

Viewport rendering is the name of the idea that the game only needs to render what the player sees which decreases computer power requirements considerably (cone of vision for the average game vs complete sphere and how many cones would be needed to make the complete sphere). Games will also however do things like pop items out of existence, only trigger enemies when they come into view (which might well be assumed to be 4:3) and make things break or look a pig if your nice widescreen/zoom hack is what it is.

Sometimes this sort of thing is only an option in emulators, or indeed only some emulators (it is usually for less accurate emulators that kick things to the system's 3d). Sometimes it can be done in hardware, sometimes only certain region's hardware (PAL usually being the ones left out of the fun), and sometimes it can be done in hardware but only on a successor system (the various homebrew gamecube options for the Wii still technically are hardware run rather than being emulation).

I mentioned hardware before and it is noted that the PS1 is kind of weird in its approach and uses something like the old 2d grid reference but also keeps something 3d. Not to mention workarounds like the prerendered backgrounds of various games (Resident Evil and many clones thereof being the more notable for this one).

Basically you are going to have to go on a system by system basis, see what hacks are there and what people did to make those hacks, issues they encountered and go from there. If you fancy learning about 3d in general as well as the hardware for all the systems that you care for here, and whatever has been done for emulators, then you can do a bit more.

FuxorLuck

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Looking to get into rom hacking
« Reply #2 on: June 06, 2020, 01:58:29 pm »
So PS1, PS2 and attendant competitors.

Guides will tend to go by system, and by system the difficulty varies massively depending upon the underlying hardware and sometimes the game as well. Most of those are primarily 3d systems so you at least have that (widescreen on a classic 2d system is rather harder to do well or not just be a programming trick with an emulator that sort of works*).

*each frame trigger a savestate, press left and right, slice off only the new sides and stitch them onto the image. Works great until you hit a wall, are forced to stop because NPC or trigger a random battle. You can go a little bit further and try to decouple the camera a bit for games you study but that only gets you a bit further)

The general principle is that 3d games have a camera, sometimes called a viewport (though that is usually more for viewport rendering which is an issue to work around sometimes).
As it is just a camera shot of a 3d world then in theory it is no big deal to make it a bit bigger.
"zoom out" is much the same idea, unless you are talking about some of the first person camera stuff where there you are shoving the camera into the player's head rather than overhead or third person. Zoom might also be changed with some variables in the camera.
Speaking of cameras then while it is for 2d I will link https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pubas it is good stuff. If you want to learn the basics of 3d animation while you are at it (if the thing you are using has not taught you about gimbal lock then it has not gone far enough).

Overlays (such as the HUD) tend to be done in whatever piece of 2d hardware remains and slapped over the image. However some overlays can have visual effects included that do things like fog/shadow, cast it in a hue or have things taper off at the edge of a screen to simulate speed or something (which then have any artistic merit broken by having nice clean bars of image down the sides, or maybe being stretched to fit).

Viewport rendering is the name of the idea that the game only needs to render what the player sees which decreases computer power requirements considerably (cone of vision for the average game vs complete sphere and how many cones would be needed to make the complete sphere). Games will also however do things like pop items out of existence, only trigger enemies when they come into view (which might well be assumed to be 4:3) and make things break or look a pig if your nice widescreen/zoom hack is what it is.

Sometimes this sort of thing is only an option in emulators, or indeed only some emulators (it is usually for less accurate emulators that kick things to the system's 3d). Sometimes it can be done in hardware, sometimes only certain region's hardware (PAL usually being the ones left out of the fun), and sometimes it can be done in hardware but only on a successor system (the various homebrew gamecube options for the Wii still technically are hardware run rather than being emulation).

I mentioned hardware before and it is noted that the PS1 is kind of weird in its approach and uses something like the old 2d grid reference but also keeps something 3d. Not to mention workarounds like the prerendered backgrounds of various games (Resident Evil and many clones thereof being the more notable for this one).

Basically you are going to have to go on a system by system basis, see what hacks are there and what people did to make those hacks, issues they encountered and go from there. If you fancy learning about 3d in general as well as the hardware for all the systems that you care for here, and whatever has been done for emulators, then you can do a bit more.

Thank you for your response
So do you tell me to move my character and then scan changes in the ram?
I understand i need to learn MIPS and X86.
There is also the SH2 for Sega Saturn but my Saturn games are 2d sprites" heavily
Can I make widescreen hacks for them I am talking about games like "Bug", "Clockwork knight" and "Astal"?
The link you sent me about 2d sprites doesn't work
Also, you didn't talk about removing filters and finding render fix which is my main problem.

FAST6191

  • Hero Member
  • *****
  • Posts: 2864
    • View Profile
Re: Looking to get into rom hacking
« Reply #3 on: June 10, 2020, 12:51:25 pm »
https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pub?embedded=true
Missed the space between pub and as in the next word.

Moving characters will come later. You can try if you want but most of the time it will be obvious there when something is broken and then you get to play with such things.

X86? not unless you want to do the original xbox. If you have to edit something to work on the PC you will probably want whatever language is used to talk to the 3d engine of the PC as well as whatever language will work with the emulator you are editing.
MIPS is what the playstation 1 and 2 used and a slightly different one again for the N64.
The Saturn is a whole other thing entirely with many processors in there doing all sorts of different things. The main CPU is SuperH while the video stuff is its own thing (and you will probably end up playing with both VDP1 and VDP2)

render fix = viewport rendering among other things in that. I see it is a term in some of the N64 stuff though so eh. In more general 3d discussions that can also be draw distance, actual rendering issues being fixed and a few other things so I would encourage more precise terminology.

Filters = overlays. Filters however have several other meanings ranging from things emulators do right

I will have to go look at those games and what systems they are on to see what can be done. For the most part anything is doable here as most things already have the data available and a known layout for it, just takes more effort in some cases and systems.