Hello,
I'm interested in creating my own emulator to learn about the emu development itself, but the fact is I don't know how can I find the required informations about the console.
So how did you manage to get all these informations ?
I know there is everything about the CPU, the GUI shouldn't be the hardest part to do (In my opinion) but my main trouble is in the ROM stuff : how do you do to read the rom ?
Thanks for your answers !
Btw, the platform will be atari2600 to start with a small one.
[17:37:00]<TheCoreyBurton> It's N64 - it's ALWAYS bad news.
The CPU reads the ROM according to the memory mapping of the cart.
Here is a list of most mappers and there logic:
http://blog.kevtris.org/blogfiles/Atari%202600%20Mappers.txt
The simplest ones just read the ROM directly, you just need to locate it correctly in the CPU address space.
If you are trying to do the A2600, one of the most important documents you will need is this one:
http://www.atarihq.com/danb/files/TIA_HW_Notes.txt
If you are just getting started in emulation, A2600 is actually pretty complicated. You need to get every low level hardware timing pretty much perfect for it to look right. If you are open to suggestions, I might recommend doing A7800 instead as a first project. It uses the same 6502 CPU, but in my opinion is much simpler to get working (A7800 DMA is much easier then A2600 HMove.)
I'm open to suggestions, and I'd prefer start with the easiest console to emulate, and I thought A2600 was a really easy one.
I'll take a look at these links.
About legal stuff, what is legal and what is not in creating an emulator ?
[17:37:00]<TheCoreyBurton> It's N64 - it's ALWAYS bad news.
About finding information, there's lots of resources on many systems online, such as Nesdev for NES, etc. Try to find as many resources as you can on the system you're trying to emulate, hoover them up.
You can also study the source code of existing emulators to get some pointers.
Be warned though that not all documentation is correct or complete, and emulators may take shortcuts or emulate things flat out wrong as well, so be sure to use your head.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
First of all, IANAL (I am not a lawyer).
If you are in the United States, there are precedents that declare emulation of someone's hardware to be legal. However, in most cases it's necessary to provide some firmware to be able to run any program in the emulator, and distributing it together with your program would constitute copyright infringement. So, you either had to reimplement this firmware yourself, or just ship the program without it, telling the user to obtain it.
One possible issue is that some technology in the hardware you are emulating could be patented, and then the manufacturer could, in principle, ask you to stop distributing the software, or demand that you pay royalties to him in order to keep distributing the program. If that happens and the patent was registered in the U.S., you might be able to get away without spending too much by hiring a lawyer to ask a judge to dismiss the case to immediately dismiss the case under Alice, but there is no guarantee that the judge will comply with this request, as it is subject to interpretation.
In practice, though, copyright laws and patent related affairs everywhere require that the owner of the rights pursue in legal litigation against anyone who infringes them. That means if you receive a letter from someone claiming infringement, it's never the government telling you to do something, it's always a private entity, and that makes a huge difference.
So, in principle, if you receive a letter claiming infringement, you can always reply with another one saying that you're sorry they think their rights are being violated, but that you are not doing anything wrong for whatever reason, and state that you will "troll them back" in court if they move forward. Even simple cases take years to be decided in court, and are very expensive for the people stating the claim, so I really don't see any copyright holder pushing forward unless you are hurting their sales by a significant margin. Since you want to write an emulator for a very old system, I would say you are safe.