Sunday, August 7, 2011

Amiga 1200 Pimping Project


Recently I bought a used - well, a really used - Amiga 1200 and decided to pimp it a bit just to reminiscence my youth. My plan was as follows: Disassemble the machine, mod the housing for the fantastic HxC floppy emulator, varnish the housing and put a 68030 accelerator card in it.

Well, disassembling is not that difficult (keeping the screws together over some weeks is different from that!). Before the varnishing I drilled three holes directly under the slot of the floppy drive. This should become the "front panel" of the HxC emulator (two keys for up/down, the middle one for select).

After that I thought a while about the display of the emulator. Although it's not necessary to have it connected, because there is some sort of manager software available for the Amiga, I decided to do it "the right way".

So I "dremeled" a hole in the middle of the upper part of the top case and put a black display frame there to hide the roughness of the border due to my limited drilling experience! ;)

Now I had to mount the LCD from the backside of the top case so it fits nicely under the display frame. I glued there four screws with a nut on each for the right distance to the case. To my surprise it fits really good. ;)

Than I glued the display frame on the top case and took a break. It was too easy, wasn't it?

Now I had to find the right place for the floppy emulator. It's halve the length of a real floppy. First I tought about of replacing the internal drive of the Amiga, but than I decided not to do so because of nostalgic reasons. So I found a place directly above the video port. If you remove the electrical shield (what is necessary for many other extensions, too) there is plenty of room.

Although I thought I finished all the drilling work I found out that there must be some access to the SD card reader of the emulator. ;) So once again I turned on the Dremel and drilled a small slot for the SD card.

Well, work done. Time for varnishing. I considered doing this myself with some varnish spray but then decided to let it do someone more professional. Well, the local varnisher did his job at least "ok". I'm a bit disappointed of the quality but it's probably far more better than what I could have done with my own varnishing skills.



So here are the results of the local varnishing vote:






Ok...so now for the mounting of the floppy emulator. I "dremeled" out two plastic plates and mounted the emulator on it with four screws and a nut on each as a distance holder. Than I glued the plastic plates on the left inner side of the top cover.


Now I installed the "front panel" connector. As the floppy emulator has a 14-pin header for connecting the buttons (and the LCD, too - but I didn't connect it there) I soldered an adapter and connected the buttons to the appropriate pins.
That was easy. ;) 

They only have to be connected to GND. I did a "first shot soldering". Everything worked fine after a short multimeter test.

So now I headed for the assembly of everything.

And here are the final results with the wiring.






Sunday, July 31, 2011

Netatalk 2.2 released!

Netatalk - the AFP-compatible fileserver - is ready in version 2.2. Well, that sounds not worth noting at all - just another open-source software climbs one up. But this time it's different. Netatalk is used throughout many NAS appliances including those of QNAP and Western Digital and the new version 2.2 is needed for TimeMachine backups under Mac OS "Lion" to network shares.
The guys developing Netatalk seemed to be not very happy with their situation at: They did the developing and the big (NAS-)companies got the money! So the developers wrote a open letter asking "Making money from Opensource, but who makes the source ?". A good question, isn't it? ;)
Fortunately Data Robotics, Western Digital Corporation and QNAP jumped in with a commitment and so we will (hopefully) see Mac OS Lion compatible TimeMachine shares in NAS firmwares soon. I'm at the moment waiting for a 0.7 release of FreeNAS with Netatalk 2.2. But maybe I should ask the same question as the Netatalk developers the other way around?
"I'm in need of source, who needs money?"

Saturday, July 2, 2011

Fresh Scumm for PS3 - yum, yum!

Since the ScummVM-Team has merged all necessary patches for the PS3, it's damn easy to compile binaries for the PlayStation. Unfortunately the ScummVM-Team has not yet integrated PS3-builds in their buildbot, so I decided to do the job and upload it here!

Download a fresh one (1.4.0git967) for your PS3 here.

Friday, July 1, 2011

Porting PUAE to PlayStation 3

Well, since I've setup PUAE to build properly on my MacBook Pro i7, I'm really interested in porting it to run on my jailbroken Sony Playstation 3 using the psl1ght SDK, a fully open source SDK for building app running on Sony PS3's GameOS. EUAE is already ported - but PUAE seems worth the effort.


Any help is appreciated. It should be possible to take the OS-dependent stuff from the PS3-version of EUAE.

P-UAE - The Amiga-Retro-Feeling on my Mac!

GnoStiC really made my day. While trying to get the latest version of E-UAE running on my MacBook Pro i7 I found out that GnoStiC is actively developing a new child of E-UAE and WinUAE named PUAE.

And it's running quite well with a nice Cocoa Interface. I've tested it with prebuilt MacOS binaries from BinaryDevotion. Unfortunately bulding the MacOS version myself didn't succeed. I've got the following error:
gcc -O2 -ffast-math -msse3 -pipe  -mdynamic-no-pic -fomit-frame-pointer -ffast-math   -Wall -Wno-unused -Wno-format -W -Wmissing-prototypes -Wstrict-prototypes -fno-strength-reduce -DREGPARAM="__attribute__((regparm(3)))"  -m32 -DNO_MAIN_IN_MAIN_C    -m32 -march=pentium2  -m32 -o uae  main.o newcpu.o memory.o rommgr.o custom.o serial.o dongle.o cia.o blitter.o autoconf.o traps.o keybuf.o expansion.o inputrecord.o diskutil.o zfile.o zfile_archive.o cfgfile.o picasso96.o inputdevice.o gfxutil.o audio.o sinctable.o statusline.o drawing.o consolehook.o native2amiga.o disk.o crc32.o savestate.o arcadia.o cdtv.o cd32_fmv.o uaeexe.o uaelib.o uaeresource.o uaeserial.o fdi2raw.o hotkeys.o amax.o ar.o driveclick.o enforcer.o misc.o a2065.o gayle.o ncr_scsi.o missing.o readcpu.o aros.rom.o hrtmon.rom.o md-i386-gcc/libmachdep.a jd-none/libjoydep.a sd-none/libsnddep.a gfx-x11/libgfxdep.a gui-cocoa/libguidep.a keymap/libkeymap.a archivers/dms/libdms.a archivers/zip/libzip.a caps/libcaps.a blitfunc.o blittable.o cpustbl.o cpudefs.o libcpuemu.a writelog.o filesys.o fsdb.o fsusage.o hardfile.o filesys_unix.o fsdb_unix.o hardfile_unix.o bsdsocket-posix-new.o bsdsocket.o scsi-none.o debug.o identify.o  td-posix/libthreaddep.a od-macosx/libosdep.a -framework Cocoa  -L/usr/X11/lib -R/usr/X11/lib  -lSM -lICE -lXext -lX11     -ldl -lz  -lm -L/usr/lib -lpthread -lstdc++  
Undefined symbols:
  "_picasso96_state", referenced from:
      _picasso96_state$non_lazy_ptr in inputdevice.o
      _picasso96_state$non_lazy_ptr in libgfxdep.a(xwin.o)
     (maybe you meant: _picasso96_state$non_lazy_ptr)
  "_InitPicasso96", referenced from:
      _drawing_init in drawing.o
  "_picasso_handle_vsync", referenced from:
      _hsync_handler in custom.o
  "_picasso_vidinfo", referenced from:
      _picasso_vidinfo$non_lazy_ptr in libgfxdep.a(xwin.o)
     (maybe you meant: _picasso_vidinfo$non_lazy_ptr)
  "_picasso_refresh", referenced from:
      _vsync_handle_redraw in drawing.o
  "_p96_rgbx16", referenced from:
      _p96_rgbx16$non_lazy_ptr in gfxutil.o
     (maybe you meant: _p96_rgbx16$non_lazy_ptr)
  "_picasso_demux", referenced from:
      _uaelib_demux in uaelib.o
  "_restore_p96_finish", referenced from:
      _savestate_restore_finish in savestate.o
  "_have_sound", referenced from:
      _have_sound$non_lazy_ptr in audio.o
     (maybe you meant: _have_sound$non_lazy_ptr)
  "_DisplayModes", referenced from:
      _DisplayModes$non_lazy_ptr in libgfxdep.a(xwin.o)
     (maybe you meant: _DisplayModes$non_lazy_ptr)
  "_init_hz_p96", referenced from:
      _init_hz_fullinit in custom.o
  "_clear_sound_buffers", referenced from:
      _check_prefs_changed_audio in audio.o
      _audio_hsync in audio.o
  "_picasso96_alloc", referenced from:
      _filesys_init_storeinfo in filesys.o
  "_config_filename", referenced from:
      _config_filename$non_lazy_ptr in libguidep.a(cocoaui.o)
     (maybe you meant: _config_filename$non_lazy_ptr)
  "_handle_input_event", referenced from:
      _handle_events in libgfxdep.a(xwin.o)
  "_setmaintitle", referenced from:
      _refreshtitle in misc.o
  "_picasso_reset", referenced from:
      _reset_all_systems in main.o
      _custom_reset in custom.o
  "_have_done_picasso", referenced from:
      _have_done_picasso$non_lazy_ptr in libcpuemu.a(compemu_support.o)
     (maybe you meant: _have_done_picasso$non_lazy_ptr)
  "_gfxmem_bank", referenced from:
      _gfxmem_bank$non_lazy_ptr in expansion.o
     (maybe you meant: _gfxmem_bank$non_lazy_ptr)
  "_picasso_handle_hsync", referenced from:
      _hsync_handler in custom.o
  "_picasso_enablescreen", referenced from:
      _vsync_handle_redraw in drawing.o
      _check_prefs_changed_gfx in libgfxdep.a(xwin.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [uae] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
I think this has something to do with SDL. I will try to figure it out and post the results later. Happy hackin'! ;)

Update 1:


Yep...here it is...
checking for SDL framework... no
configure: WARNING: SDL support wanted, but libSDL could not be found
This should throw an error, I think, because PUAE doesn't build without libSDL and a successful configure with unpredictable building errors led me to the red herring while seeking for the error.

Anyway, now that I found out, I'll try to fix it.

Update 2:

Hmm...configure will not find my MacPorts libSDL, although it sits nicely where it should under /opt/local. Confusing. Anyway, I installed SDL.framework in /Library/Framewoks and configure does it's job. Make, too! ;)


So my selfbuild PUAE is up and running. Happy hacking!