What's new

High Level Emulation

Lionel

New member
hi there
i'm a young programmer interested in learning something about high-level emulation

for now,i've written a Sega Master System emulator for Windows,but it was a low-level one

i wonder what are,if any,the general principles of the high-level emulation programming...how can you recognize that a certain block of machine-code instructions on the rom perform a certain operation ? like for example drawing a green rectangle on the screen

this means applying reverse engineering for finding out semantics of blocks of instructions,but is a particular one,please let me know how i can learn the techniques you use for implementing high level emulation

i posted here because Project64 is the best example of HLE,and it is still alive
i'd be pleased if s.o. tells me the PJ64 internals and how it implements High Level Emulation...i'm non asking the source code but only what are the techniques used
 

Smiff

Emutalk Member
well i'm not expert on this, but (very) basically it only works if the games themselves are written in high level languages and use standard libraries. so you wouldn't have come across this on the Master System generation. HLE is not something i'd recommend (inaccuracy, lower compatibility, huge dev and testing time) but sometimes its necessary and it's encouraging to get results as you go along.
the HLE parts of pj64 (which are parts of the video plugin only, and a good portion of the video is not HLE btw) are not open sourced, suggest you look at some n64 video plugins from other emulators that are.

if anyone knows a good guide to HLE programming please point to it (Jabo, who really knows, is not likely to want to discuss it has not written one afaik, although Zilmar talked about it briefly in his emubook, if the site feels like working.) but really its hard to write a general guide since it totally depends on what you're trying to do.. basically the answer its an almost never ending process (on something as flexible as a games console) of adding more and more functions and getting simple demos then parts of games then more games working and trying not to break previous ones all whilst making sensible guesses about what the hardware is doing.. take a look at some of the other video plugins if you want clues about the n64 they're at least comparable with the ones in pj64.
 
Last edited:
OP
L

Lionel

New member
i have no choice but to read incomprehensible source code and to get an headache...understanding others' code is almost always difficult...

ok i also can write test programs and run them on the machine reading their output and finding out something from it...but this raises up one question:

if i want to write a test program i must have an sdk for the console in question (not the N64 in particular,but a modern console in general)...suppose that no technical infos are available,except for the main cpu and very few generic infos,how is it possible to build an sdk for that console? look at the PSP scene: at psphacks.com they have coded an unofficial sdk,how did they do it in a few months from the console release??
 
Last edited:

Top