This is an updated list as of current state of spoon + fjd repositories as
of 20111111.
PENDING CHANGES
NEW: Jeffrey Lee Portable Module and IOMD suspend method
- iomd.c riscos-progs/Portable/*
- Host CPU throttling when idle.
- Verify license on portable module src.
- RESOLUTION: Still to be decided, might be a nicer way to do this, and we
probably shouldn't clash with the potential real behaviour an OS might
trigger on IOMD suspend register (find an unused one, or other
non clashing method).
NEW: Mac OS X NX bit support
- codegen_amd64.c codegen_x86.c
- Reuse the linux method of marking pages as code not data.
- RESOLUTION: to be merged, comparaitvely trivial
NEW: podulerom to ignore hidden files
- podulerom.c
- Similar to Romload block loading of txt files and . hidden files
- RESOLUTION:
NEW: rpcemu.h to include config.h
NEW: extra default resolutions
- vidc.20
- Add in 1440x900 and 1440x1050 to the list of modes rpcemu will try to fit in when resizing
- Poss add in 1920x1080, 1280x720 as well
- Two other changes to vidc20.c (whitespace and a commented out log line ignored.
- RESOLUTION:
Additional key mappings
- keyboard.c
- Cmd-F12 to break
- RESOLUTION: to be merged
change seems a little 'hacky', but is relatively small and will be
well protected by RPCEMU_MACOSX defines.
DONE
VIDC Big Endian fixes
- vidc20.c
- Lots of changes for bigendian displaying
- RESOLUTION: to be merged
Although we've a much larged VIDC rewrite coming in the future,
there's no reason to not add these now. However we will standardise on
#define for it, you've changed from WORDS_BIGENDIAN to
_RPCEMU_BIG_ENDIAN which seems to be the most appropriate (it's defined
in rpcemu.h). Can test code on Sparc solaris.
config.h.in
- Added detection for gettimeofday()
- and an option to make a universal binary
- RESOLUTION: to be merged
Hopefully straightforward
config.h.in
- Altered detection of BIG ENDIAN platforms
- RESOLUTION: to be merged
If this is the simplest it can be on mac, and provided it's still
working on other platforms.
Configure
- Need to update head to autoconf 2.65 to check for more diffs.
mb_to_rammask(mem_size) and rammask_to_mb() refactoring
- rpcemu.c
- Simplify conversion between ram-mask and numeric value of ram.
- RESOLUTION: won't merge
Having had a think about this, It would be nicer if the config
value of memsize is always passed around as a proper number (easier to
read code in GUI sections), and the rammask was only used inside mem.c.
Therefore mem_init() would take mem size value rather than rammask.
- Recommendation, move rammask_to_mb() (plus other if needed) to Mac dir, so they can still be used by the Mac GUI/
NEW: Bigendian romload
- romload.c
- Remove the #error for big endian platforms, else no PPC Macs or Sparc boxes.
- RESOLUTION: to be merged
NEW: Network 'on' define
- rpcemu.h
- Add Mac to list of platforms that support Networking
- RESOLUTION: to be merged
VIDC extra debugging
- vidc20.c
- You appear to have printed out a line each time the bpp and drawcode
values change.
- RESOLUTION: won't merge
Unless you're really desperate for this extra debug, I'll skip this
one.
NEW: 'bs' variable in vidc20.c, removal issue
- vidc20.c
- The removal of the 'bs' variable has caused issues with the Mac Build, need to figure out why, the variable is not in use on
windows/posix. Is the Mac Cocoa GUI using it for something? Failing that sticka debugger on the var and find out what it's being used for.
- RESOLUTION: much more investigation needed
copy_alleg_string_to_utf8()
- rpcemu.c allegro-util.c allegro-util.h
- Take a copy of an internal allegro string, doing transcoding for type
- RESOLUTION: won't merge
Unless the Mac version of Allegro is doing something very unexpected,
this isn't needed. Allegro strings are already UTF8 and can be safely
copied using strdup(). We're now taking copies off all the network
related config strings, due to them now being dynamically alterable
via the GUI.
* http://home.marutan.net/hg/rpcemu/rev/d58bce8ed5af
Networking
- ArmDynarec.c etc
- Lots of additions of Mac to the list of platforms that could handle
networking
-
- RESOLUTION: won't merge
I recently refactored the HEAD networking code, so Mac should only have
to change one line in rpcemu.h to activate networking.
* http://home.marutan.net/hg/rpcemu/rev/c7051bafa398
EmuFS
- rpc-macosx.c
- It appears at some point you tried to merge in the HOME path and free
disc space parts from EmuFS
- RESOLUTION: won't merge
At some point in future we'll work on adding free space support to
HostFS and all platforms would need an update then, but ATM that's not
supported.
HostFS Endian fix get_string() function
- Fetching a value from emulated memory
- RESOLUTION: won't merge
get_string() appears to have been rewritten to fetch a byte of memory
at a time (rather than a word), which I believe is endian neutral.
Also this means the MAKE_BIGENDIAN define in rpcemu.h is no longer
needed.
loadfloppy() abstraction
- rpcemu.c, gui.c
- An external function to ease changing floppy disc ADFs called from
various GUI bits
- RESOLUTION: to be merged
but probably namespaced rpcemu_floppy_load() etc, and make it be
used in the windows GUI too.
rpcemudatadir() in rpcrpc-machdep.h
- rpcemu.c cmos.c romload.c podulerom.c podules-win.c
- provide an abstracted location for data path, so it doesn't have
to live relative to the binary anymore.
- Standard version in machdep-simple.c
- Mac version stored in rpc-macosx-cocoa.m
- RESOLUTION: to be merged
Possible namespaced to rpcemu_get_datadir(void).
Although there's a huge amount of extra thought that might have
to go into handling these paths on a 'system-wide' installation of
linux/unix, this does get the mac build working better and at least
points out all the places that would have to be checked for
system-wide.
Ought to add void to the prototype though