This is used in a number of 3D games and called regularly. The MADAM graphics co-processor has a set of hardware accelerated 16.16 fixed point matrix arithmetic functions. Some of these functions are somewhat complicated but one set of SWI calls were a perfect candidate for HLE: the matrix arithmetic functions. This makes catching and overriding these calls very easy when combined with knowledge of the ARM procedure call standard.Ĭatching and overriding some or all of the OS functions would theoretically improve performance and/or enable advanced features. Many of the core OS functions are called via the ARM SWI (software interrupt) instruction. The ROM OS is pretty thorough but ultimately a bootloader and bootstraps the environment before handing control off to the software on the CDROM. The OS is present in the system’s ROM but also included on each CDROM. The OS and most/all software for the platform is written in C and compiled using the Norcroft ARM toolchain from that era. It has preemptive multitasking, threading, high level memory management, dynamic loading of “folios” (libraries), IPC, IO APIs, and general abstractions to much of the hardware. The 3DO was ahead of its time in a number of ways. Here’s an overview of some of that work and plans for the future. After a year’ish break I’m back and have been focusing on accuracy and some experimentation in HLE (high level emulation). After fixing a VSYNC issue that many had complained about I ended up almost completely refactoring the code and adding a number of features. About two years ago I more or less adopted the libretro 4DO core.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |