What the Heck is NoFastMem? -- Amiga RAM and Older Games
Ғылым және технология
New videos will be published on PeerTube! makertube.net/c/the_industrio...
Topaz the Rabbit digs into NoFastMem, the Amiga system utility with the
rabbit-themed icon that makes it possible to play some older Amiga games.
Thanks to Tyrel (@tyrelsouza), Jim K. (@ijimkoz), Colin!
Read more at theindustriousrabbit.com and subscribe
to the channel and RSS feed for future updates!
---
References
* Nameless Algorithm post on Rogue (www.namelessalgorithm.com/ami...)
Blog post about Rogue, the Amiga 1000, and NoFastMem
* Hardware details on the blitter (amigadev.elowar.com/read/ADCD_...)
From the AmigaOS developer docs
* Amiga Programming in C Part 5 - Blitter Fundamentals ( • Amiga Hardware Program... )
Most blitter examples are in 68k assembler, but I wanted to work in C, and this series of videos helped me figure out how to do so!
* AmigaOS NDK 3.9 docs on AllocMem (amigadev.elowar.com/read/ADCD_...)
You'll have to hunt around a bit to find the 1.3 NDK
* Chip RAM vs. Fast RAM vs. Slow RAM (dfarq.homeip.net/amiga-chip-r...)
More details on Chip vs. Fast vs. Slow RAM
* GitHub repository with example C code & binary (github.com/TheIndustriousRabb...)
Read over the C code used in this video and try running it yourself!
---
Credits
* Black Vortex by Kevin MacLeod
incompetech.filmmusic.io/song...
Simplified Filmmusic.io Standard License (incompetech.filmmusic.io/stan...)
* Industrious Ferret by Kevin MacLeod
incompetech.filmmusic.io/song...
Simplified Filmmusic.io Standard License (incompetech.filmmusic.io/stan...)
* Mouse click sounds by Masgame
freesound.org/people/Masgame/...
CC-0 (creativecommons.org/publicdom...)
Пікірлер: 44
As an Amiga fan I was thrilled to find this video. So well produced and I even learn something new. Well done. You got yourself a new subscriber.
Thanks for this ! I grew up with Macs and Amigas and always wondered what that bunny Icon was for.
Way more in-depth than I expected. I think I'm going to like your channel. 8)
Do more Amiga content! These are by far your most popular videos. Love your content =)
@TheIndustriousRabbit
Жыл бұрын
There will definitely be more Amiga content in this channel's future! Thanks!
Great video really well explained
Well done. A good video for those who didn‘t grow up with an Amiga.
NoFastMem was only good for programs launched from Workbench. If you needed to boot a non-DOS game without Fast RAM, this wouldn't do you any good. I forget where I got it, but I used to have a floppy that had a small boot-block program on it. When you booted it, it came up with a screen that kind of looked like a cracking group intro and it let you disable Fast RAM, external drives, or both. It would then reboot the machine with those settings in effect for one session. I used to use this to disable Fast RAM for running the games Archon and Archon II. Later on, Degrader had the same options and more. Of course, if I remember correctly, Degrader only works on Kickstart 2.0 and the US releases of the Archon games only worked in Kickstart 1.x. Some say they needed KS 1.2, but I used to run them in KS 1.3 just fine.
@TheIndustriousRabbit
Жыл бұрын
Oh that's handy! Rogue runs from the disk's Startup-Sequence script, so it's possible to modify the script and run NoFastMem before running Rogue off floppy.
@lurkerrekrul
Жыл бұрын
@Neb6 Hm, I seem to recall having some problem using Degrader under KS 1.3. Maybe the PAL option didn't work for me.
Never have known that Amiga could even fail on this super critical condition. I thought that they would separate mem allocation functions for both chip RAM and fast RAM on first start. By the way, never have known that this masterpiece will live here. I subbed so I won't miss further contents!
Now let's talk about mergemem :D
I think the workbench manual answered the question. At least, i remember learning it from print in the time.
You might want to take another look at the captions btw. Edit: Nevermind, KZread did a weird thing and put all the captions together on one screen. It was trying to translate English captions to English too.
In the beginning, there were no Fastmem expansions. It's only possible to be backwards-compatible, never future-compatible. Today, the oldies are patched for WHDLoad, but if you have original disks and an Amiga with Fastmem (which all Amigas deserve and makes them thrive), then make the not-future-compatible games run by using HogFast. (Or NoFastMem, unless it gurus your Amiga - again, software cannot be future-compatible.)
Explained very well. Great video. 👍
Finally understood what it was about.
Really good explanation, nice video!
Oh, very interesting. Seen the icon before but never thought much about it.
This is fantastic!
Amiga being what it is, also having all those kickstart, RAM, NTSC-PAL incomptabilites for sure added to the mess.
A lot of this is also useful for memory management in other systems.
Thats why you code in asm and use sections 😊
since i watched this video i love my atari sts a bit more :)
@TheIndustriousRabbit
Жыл бұрын
😆 I've never used an Atari ST! I'm gonna get around to it eventually.
@frankerobert5315
Жыл бұрын
@@TheIndustriousRabbit it would be interesting to watch a amiga view on the hardware. no special chips beside the blitter, one type of ram and line a. never the less some interesting videos here, i am a bit cusiuos how this goes on. best regards
@kimorlandonilsson1196
Жыл бұрын
The Amiga vs. Atari war never ends 😈
Just found your channel. Love the topics and your style. I am now a subscriber. I'm a coder by profession. I own an A500 which I want to get to know more than in my youth. Being a dad with basically zero time over to side projects, I would LOVE a guide towards the lowest friction path towards coding on it. Preferably not cross compile or UAE or similar. I'm guessing limitating factors are how memory hungry the compiler is, how to get hold of one/transfer to the Amiga, how to store programs, etc. All in a way that won't either ruin me (new hardware seems prohibitively expensive), nor make me hate the experience (floppies aren't as fast as I remembered them...).
@TheIndustriousRabbit
Жыл бұрын
That sounds like a neat idea! I have both the Gotek USB drive and the PCMCIA slot on my A1200 for transferring files. I think the hardest part will be getting files onto your A500. A Gotek would likely be the cheapest solution. If you can get your hands on an expansion card that provides a hard drive interface, that'd be the fastest. Once it's on there, as long as your machine meets the minimum requirements for the compiler/assembler/etc, it's down to how patient you want to be with build times and how you'll deal with the build assets.
@siljamickeify
Жыл бұрын
@@TheIndustriousRabbit yesterday I had a pleasant experience compiling Hello World with Aztec C on an emulated WB1.3 A500 with HD. Beats compiling the work stuff (coming in at 15-20 minutes on bad days) by miles haha.
@TheIndustriousRabbit
Жыл бұрын
@Neb6 This is a great playlist!
@siljamickeify
Жыл бұрын
@Neb6 WOW, thanks!!
Any chance you can reprogram Robin Hood - Conquest of the Long Bow so it will draw Ram from where it is available? 🤭
@TheIndustriousRabbit
2 жыл бұрын
Haha I'm not *that* good at Amiga hacking...yet. 😉
What happens to programs that have already allocated memory from fast RAM? I wonder what NoFastMem actually does? I assume it simply allocates and consumes all remaining fast RAM. But if a program that was running before NoFastMem was run then frees its fast RAM then there would be fast RAM in the pool again. Unless NoFastMem switches something in the operating system to stop it freeing the RAM back to the pool.
@TheIndustriousRabbit
Жыл бұрын
I just tested out the memory allocation part and added the code I used, as well as a binary, to the repo linked to in the description. If you allocate Fast RAM, then run NoFastMem to prevent more Fast RAM allocations, the originally allocated Fast RAM doesn't go away or get relocated. It's still in Fast RAM, but new allocations will come from Chip RAM, until you run NoFastMem again.
Great, but how do you know which programs need you to turn off Fast Ram?
@TheIndustriousRabbit
Жыл бұрын
I searched a bit for a definitive list but couldn't find one (if there is one, someone please comment!). Very likely, if the game is an older one, like mid-to-late 80s, and there's graphical corruption like with Rogue, or it just crashes right away on a non-AGA Amiga, it might be a Fast RAM issue. If you're using an emulator, you can try turning off Fast RAM directly, or running NoFastMem manually or as as part of a modified startup sequence. Some WHDLoad-bundled games I believe fix these issues, so you don't need to worry about it as much.
@bradhansen2065
Жыл бұрын
@@TheIndustriousRabbit Thanks for taking the time. I always thought “No fast ram.” Was the opposite of “Fastmemfirst.” Appreciate the answer.
all amiga fans go to their graves wondering why commodore didn't release an amiga in 1989 with improved sound, 8 bit colours, and a faster processor thereby maintaining the amigas lead in custom hardware over PCs and a lead in price over Apples.
@ecernosoft3096
3 ай бұрын
1. They did. The A3000 existed in 1989 and it was a beast. 2. Apple was wicked expensive, you had the A500+
Most "older" PCs have custom chips? Its not like modern PCs come without a GPU or a Sound-Chip or a "Chipset"-Chip ;-) Sure, there are "System on Chip" things now, but not a lot of people are gaming on them to my knowledge.
Why are you a rabbit?
Pros use AllocVec() instead :P