OS4 DepotLogo by Alessandro Bacchia 
(anonymous IP:,2218) 

   Bug tracker
   Locale browser


   o Audio (343)
   o Datatype (51)
   o Demo (203)
   o Development (600)
   o Document (22)
   o Driver (97)
   o Emulation (148)
   o Game (1005)
   o Graphics (499)
   o Library (116)
   o Network (233)
   o Office (66)
   o Utility (927)
   o Video (69)

Total files: 4379

Full index file
Recent index file



Support the site

 Readme for:  Audio » Misc » nallepuh.lha


Description: Nalle Puh (Paula,CIAA,CIAB emulation)
Download: nallepuh.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 504kb
Version: 1.8
Date: 11 Dec 2023
Author: Martin Blom (port by Stephan Rupprecht)
Submitter: Kjetil Hvalstrand
Homepage: https://github.com/khval/NallePuh
Category: audio/misc
Replaces: audio/misc/nallepuh.lha
License: GPL
Distribute: yes
Min OS Version: 4.1
FileID: 12758
Comments: 16
Snapshots: 1
Videos: 0
Downloads: 75  (Current version)
1203  (Accumulated)
Votes: 6 (0/0)  (30 days/7 days)

Show comments Show snapshots Show videos Show content Show crashlogs Replace file 
* Project to restore NallePuh *****************************

About AmigaOS4.1 version

	This is a chip set emulation, project based on the 
	Paula emulator by Martin Blom, it was ported to AmigaOS4.1 in 2009,
	then it stopped working, and it was fixed up by Kjetil and Damian, 
	in November 2022, after this we have been gradually adding support 
	for blitter and the timer circuits CIAA / CIAB, the aim of the project
	is to support system friendly software, that sometimes reserve hardware
	using the API / resources that OS provides. It's not designed to handle
	those programs that intent to take over the system, this application
	requires multitasking to work. The project does not guarantee that any
	software is bug free or will work perfectly, for the last few commits
	has been to improve timing and and provide better warnings, 
	user feedback has also been important as some people want to use 
	this tool for debugging, This is why the program provides basic
	monitoring features.

Please repport bugs and problems here:


	Please do not report bugs in forums and comment sections.

What works with NallePuh on AmigaOS4.1

		FastTracker are buggy, (problem is reported, s3m, xm files).
		MP2/MP3 sound is not good, no 14bit support in NallePuh.
	Dpaint4 (starts, you can do simple drawings, most of the tools are broken)
	Payback (game sound now works)
	SamplitudeOpus Light 3.5
	Myst playable demo (CGX)
	Symphonie Pro player (Some sound quality issues, 15bit playback not supported.)
	Symphonie Pro Editor (works partially can be unstable, some sound issues.)
	Electric Ocean - (use NewMode to set correct screen), 
		Ignore DSI error, and it starts, crashes after.
	ASnake - Workbench game
	MiniArcanoid - Workbench game

	if you find anything working, please report, 
	lets make this list longer.


List of tested - unsupported is here:


	If you find more thats not working, please report, 
	it saves people from wasting time on things that's not working.

Changes in 10 Desember 2023 Version 1.8

	* Updated translation for Italian.
	* Updated translation for Norwagine.
	* Bug fixed: logPUH() maybe it can cause ISI error.
	(So rewritten to make safer under forbid state and
	now use DebugPrintF to log output instead, of ugly callback hook.
	requester used if in GUI mode. text printed in console if not.)
	* Puh.c: Improved audio validation, 
	(to prevent playback of bad data.)
	* Puh.c: clean code style.
	* package change, tooltype settings disabled as default.
	* Reorganized lots of arrays into one array. (to reduce indexing)

Changes in 26 November 2023 Version 1.7

	* More text strings translated.
	* BLTSIZEH is now handled correctly.
	* Experimental uaeblit.library can be now used as alternative
	* You now enable or disable blitter.
	* Some work on the save/load routines.

Changes in 5 November 2023 Version 1.6

	* GUI now uses ReadOnly more places, instead of disable.
	* A few more text strings can now be translated.
	* Tools type support was added, (was requested, by tekmage)
	* Lots of typos corrected.
	* Makefile was updated.
	* Some code was not the same for CIAA as CIAB (merge).
	* Set priority 2 on CIA process.
	* Created process CIA for timers, so it's not handled by GUI
	* ReplyMsg was added to TimerRequest.

Changes in 29 October 2023 Version 1.5

	* GUI now uses "Read Only" instead of disabled.
	* TEST button is now disabled until, NallePuh is activated.
	* Deactivate button, now checks if it's safe, and asks.
	* Close Window, will check if safe to do so.
	* GUI frames can now be translated. (on request)
	* Translation from Samir Hawamdeh
	* Translation from Javier de las Rivas

Changes in 22 October 2023 Version 1.4

	* Window title status now updated, while window is inactive.
	* CIAA/CIAB Status page added to GUI.
	* Interrupt should point to $DFF000 not CIAA/CIAB on A0
		(INT4 and INT6)
	* Fixed bug, called wrong interrupt for ciab
	* Bug in ciab.resource fixed.
	* Missing opcode stbx added to CIAA/CIAB handler.
	(scale factor now not needed, now set to 1.0f)
	* Added "no chip ram" warning at load time.
	* Not setting timer on latch high byte. 
	(setting timer turned out to be a mistake 
	preventeds overflow and interrupts)

Changes in 3 October 2023 Version 1.3

	* Fire buttons should be active low
	* Joystick/mouse has wrong names.
	(Sorry broke ciaa.resource, use old one form 1.2)

Changes in 1 October 2023 Version 1.2

	* Added Joy 1 and 2 fire button 1 and 2 support
	* Fixed install script
	* Fixed make_lha script
	* Updated docs and readme

Changes in 28 September 2023 Version 1.1

	* Added CIAA / Timer A
	* Added CIAA / Timer B
	* Added CIAA / Timer VSync
	* Added CIAB / Timer A
	* Added CIAB / Timer B
	* Added CIAB / Timer HSync
	(No support for Serial, Parallel Port, Joy Port A, Joy Port B)

	Candidates that might work with this addition are Games / Demos and Music
	that freeze and locks up, (Please retest these programs.)

Changes in Nov. 2022

	* Added two missing PowerPC oppcodes to the exception handler.
	* VPOS/VPOSR support
	* ADKCON/ADKCONR is now handled correct.
	* libblitter.library is used.
	* Deprecated functions replaced.
	* Code cleanup, std style format.
	* Improved debugging (task name, etc).
	* Fixed/added a new GUI
	* Fixed/added iconify support
	* WB startup support
	* Load/save config file
	* Install script
	* Test button working (V0.6)
	* BBUSY flag is now set & cleared (V0.6)

	NallePuh for AmigaOS4.1 is not an Amiga hardware replacement project in
	software, it can never do what hardware does, because it depends on
	multitasking for time keeping, if multitasking is disabled, it will try
	its best to get out of nano/micro waits in forbid states, but can't do
	any real time keeping if that happens.

	NallePuh for AmigaOS4.1 is an exception handle, it does not hack function
	calls, it does not depend on external MMU libs, I wont call it a hack exactly.

	NallePuh does not fix broken software, if the mc680x0 game/application/demo,
	has bugs, there is nothing NallePuh can do to solve this issues.

	If you run several mc680x0 programs at the same time, that all depends on
	NallePuh. Then this can result in a unpredictable results. I know nothing
	that can be done about it.

	Programs that crash with DSI or ISI error, are unlikely to work, but plase
	check snoopy log, and make sure programs / demos / games are correctly
	installed. Some programs has poor sanity checks when opening libraries.

	Please install this libs from os4depot.net

	* ptreplayer.library 
	* powerpacker.library
	* reqtools.library
	Keep in mind cia.resource / misc.resource is not included, so some programs
	might refuse to run.

	Always start Nalle Puh first, if you don't timers might not be setup correct.
	(when program has frozen its already too late...)


	AmigaOS4.1 SDK can be downloaded from Hyperion Entertainment
	Flexcat - needed for building language catalogs.

Orginal ReadME 

Short:    Redirects any (hw-banging) sound program to AHI
Uploader: Martin Blom <martin()blom.org>
Author:   Martin Blom <martin()blom.org>
Type:     mus/misc
Requires: An MMU, 68020+, AHI v4, OS 3.5 for GUI mode
Version:  0.3

Q: What is "Nalle Puh"?
A: It's the Swedish name for Winnie the Pooh.

Q: Really?
A: Yup.

Q: But... Ehm. What does this program, "Nalle PUH", do?
A: It's a hack that intercepts some custom chip register accesses and
   turns them into AHI function calls.

Q: How?
A: By using the MMU to mark the page at $dff000 as invalid.

Q: Invalid? Doesn't that mean you will get an exception each time the OS
   or an application touches the registers?
A: Exactly.

Q: Isn't that kind of... slow?
A: You bet.

Q: How slow?
A: Unbearable.

Q: So the program is useless, then?
A: Not quite. It can be instructed to patch the OS and all applications that
   read or write to the custom chip registers, so that next time the 
   instruction is executed, no exception will be generated.

Q: How?
A: A new chip register area is created at $80dff000.  For the kickstart ROM,
   all modules except audio.device will be patched to access this address
   instead of $dff000. For applications, I simply guess when it's ok to
   patch the instructions.

Q: Is that fool-proof?
A: Of course not. It's a hack. A proof of concept. Nothing more.

Q: Alright then. So what programs can be redirected?
A: I've tried the following programs, and they seem to work:

   * audio.device
   * Digibooster 1.7
   * Musicline Editor 1.5
   * Octamed Soundstudio 1.03c
   * Protracker (version 2.3 and 4.0)
   * THX Sound System 2.3d.

   I've also tried the following, and they don't:
   * Delitracker 2.32
   * Newtracker
   * PlaySID

   (Note that Protracker disables multitasking and cannot be used with AHI
   drivers that are not interrupt based.)

   Previously, I wrote that Sid4Amiga also could be redirected, which is just
   plain stupid, since Sid4Amiga already uses AHI. Duh! Sorry, Paul.

Q: Will you extend Nalle PUH so the all of those program work?
A: Unlikely.

Q: Pretty, pretty please!
A: No. The source code is available. Why don't you give it a shot yourself?

Q: Because <insert lame excuse here>.
A: Too bad.

Q: Suppose I do fix the program, is there anything else I should do?
A: You could certanly improve the instruction patching method. And it could
   also be wise to set up a cachable Chip-RAM mirror so AHI won't have to
   mix the samples from a non-cachable memory area. 

Q: Hey! I found a memory leak: You don't close mmu.library! And you don't
   clean up the MMU tables fully either.
A: I know.  The custom chip register mirror must stay if applications were
   patched. mmu.library must not be flushed from memory, or we loose the

Version history:

0.1, 2001-04-23:	* Initial release.
0.2, 2001-04-28:	* Redirected logging to the listview in GUI mode.
			* Minor GUI updates.
0.3, 2001-05-04		* Clears insr. caches when patching applications.
			* Added a few more instr. patches (base relative).
			This means that I had to move the register mirror
			to $e00000. At least that area is unused on my A4000.
			* The GUI does not touch the Paula registers on exit, 
			unless the user has pressed "Test" at least once.
			* Final update! I've returned the sound card I
                        borrowed to write this hack. Thus, no more updates.

Copyright © 2004-2024 by Björn Hagström All Rights Reserved