|
|
Search
|
|||||||
| Home | Register | Downloads | FAQ | Members List | Calendar | Arcade | Mark Forums Read |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Registered User
Join Date: Oct 2002
Posts: 34
|
Hi, I'm not really sure where to put this post, as it is sort of a pan-emulation question. So feel free to move it out of the N64 forum, but it certainly applies here. Has anybody ever tried optimizing a ROM statically, changing it from the original binary format compatible with whatever console and making it specific to an emulator or set of emulators? This is what I would call recompilation, but I'm not sure if that's what (for example) PJ64 and TR64 mean. Basically, I was thinking that a lot of time must be lost in interpreting the original bytecodes to something PC's can understand. The disadvantages of doing something like this (that I can think of): 1) if you had a PSX game on CD, to do what I'm talking about would require making an iso, and then recompiling that iso pre-runtime to be in a format PC's can execute directly, and that would mean you couldn't play off the CD (unless, you burnt the transformed iso back to CD). But for me, this wouldn't really be a problem because I never play off CD's anyways. 2) there might be incompatibilities between emulators unless some sort of standard was agreed upon (unlikely). but then again, this just means that people have to distribute original ROMs and not recompiled ones. the advantages to me seem very great. consider 2xSaI graphics interpolation. this works fine in ZSNES and everybody loves it. but for the PSX, although Pete's plugins can do it, it's very slow / takes lots of memory. Although my suggestion might not relieve the memory requirements, I think the speed decrease due to interpolation can be totally eliminated -- it can all be done pre-runtime, leaving no computations to be done. also, some movies / graphics might be compressed, and the decompression routines could be slow. with my suggestion, you could do all the decompression pre-runtime, and although this would take up more disk space, it might make loading textures and images and sounds and just about anything faster. and finally, the actual interpretation of bytecodes (we've been talking about data so far) -- if you can do that all statically, it could save a whole bunch of time. I suppose before anybody tried this, they might want to consider profiling the execution of whatever game that's slow, and see what causes it to be that way. If it's 95% because of slow video routines, then there probably isn't much to be done ... but if the slowness is due say 60% to slow video and 40% to interpretation / decompression / "recompilation" -- or more like JIT recompilation ... then a dramatic speedup might be achieved. Anyways, any emu / plugin authors out there that feel like responding, I'd love to hear why this is or isn't a good idea. Cheers. |
|
|
|
| Advertisement | [Remove Advertisement] | ||
|
|
|
|
#2 (permalink) |
|
Beta Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Apr 2001
Location: Nantes, France
Posts: 6,246
|
Basically what you ask for are ports on PC of the games, which requires a lot of info on the game itself. Translation : way too hard to do, cause you'd have to use a specific method for each game, and port them individually, way too much work for a low interest(emulation is here and that's enough ).
|
|
|
|
|
|
#3 (permalink) |
|
Registered User
Join Date: Oct 2002
Posts: 34
|
No, I'm not asking for PC ports of the games. Emulation requires conversion of some sort for things to work on PC's, and I'm just inquiring about the extent of preprocessing that can be done and if that can improve things. In what I'm suggesting, things would still run through the emulation engine, but you'd do as much as possible beforehand to get a speed increase. It would not be game specific -- obviously this is not appropriate. As I said, it sounds like N64 emulators do something like this through "recompilation" already, but maybe if it was done beforehand it would help out.
__________________
IBM Thinkpad A20p; 750Mhz P3; 384 Mb PC-133 RAM; 16MB ATI Mobility Rage Pro 128; 15" 1400x1050 TFT panel; 20Gb HD; ORiNOCO Gold Wireless; DVD-ROM; Win2K |
|
|
|
|
|
#4 (permalink) |
|
邪魔ゎ指せない
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jan 2002
Location: Gosport, England
Posts: 26,305
|
No, what you are suggesting is basicaly akin to porting it. The changes between the N64/PC/PSX are so drastic that major portions of the game would need to be re-written.... When I say major, I mean like 90% of it.
__________________
![]() >Site Live< Pop over to my site for help with setting up PSX emulators. Help for the Final Fantasies and other RPGs avalaible Celes: (Desktop) Athlon 64 X2 4200+, 2Gb 400MHz DDR Ram, MSI K8N Platinum, GeForce 8800 GTS 320Mb, 500Gb RAID HDD, Vista Business Erika: (MCPC) Athlon XP 2400+, 1Gb 400MHz DDR Ram, geForce 6800 256Mb, 80Gb Hdd, XP 2005 MCE Kimiko: (Desktop 2) Athlon 64 3000+, 512Mb 400MHz DDR Ram, Asus K8V, geForce 6800 128Mb |
|
|
|
|
|
#5 (permalink) |
|
Registered User
Join Date: Oct 2002
Posts: 34
|
You have a sequence of bytecodes in your ROM. Somehow the emulator turns these into bytecodes / API calls for the PC at runtime. Why can't this transformation be done pre-runtime? Nothing extra to be rewritten, since the emulator is doing this so called "rewriting" already when it executes the game. The only reason I can see why what we currently have is totally necessary is if you had to have a cross-platform VM to execute your games. But that's not the case.
__________________
IBM Thinkpad A20p; 750Mhz P3; 384 Mb PC-133 RAM; 16MB ATI Mobility Rage Pro 128; 15" 1400x1050 TFT panel; 20Gb HD; ORiNOCO Gold Wireless; DVD-ROM; Win2K |
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|