Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
268
hpr_transcripts/hpr1324.txt
Normal file
268
hpr_transcripts/hpr1324.txt
Normal file
@@ -0,0 +1,268 @@
|
||||
Episode: 1324
|
||||
Title: HPR1324: Porting Mega Happy Sprite To Windows
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1324/hpr1324.mp3
|
||||
Transcribed: 2025-10-17 23:33:57
|
||||
|
||||
---
|
||||
|
||||
so
|
||||
I love you, I love you
|
||||
I love you, I love you
|
||||
I love you, I love you
|
||||
I love you, I love you
|
||||
My happy sprite is a sprite editor that I wrote some while ago, like in 2009
|
||||
So a good number of years ago, it's a sprite editor for the Psychogenesis
|
||||
It doesn't run on the Psychogenesis, it just makes sprites for use on the Psychogenesis
|
||||
It runs natively on Unix systems
|
||||
But I ported it to Windows about a year ago because of popular demand
|
||||
What I used to build a Windows program is the Ming W32 build environment
|
||||
That is for Unix
|
||||
I tried installing Ming W32 on OpenVSD and Linux and build miserably
|
||||
But I got working on FreeBSD, so that's good
|
||||
I'll talk about how to get working on FreeBSD
|
||||
First thing I want to do is install some ports
|
||||
Go to a slash user, slash ports, slash double
|
||||
And that you'll see some sub-directories called Ming W32-asterit
|
||||
And so you want to install, make install Ming W32-Bin-MSVCRT
|
||||
Ming W32-Bin-Utiles
|
||||
Ming W32-GCC
|
||||
Ming W32-Pthreads
|
||||
And finally, Ming W32-ZLIM
|
||||
Those are all the, we're not using open SSL or anything fancy, those are
|
||||
Just the Pthreads and ZLIMID primarily
|
||||
And the actual build environment we're using to build mega-happy sprite
|
||||
Mega-happy sprites will depend on the LibSDL
|
||||
And I'll talk about how to install LibSDL in a moment
|
||||
Once you've made and made installed those programs
|
||||
You'll see that it populated a directory called slash user, slash local, slash Ming W32
|
||||
And in that directory, you have sub-directories, BIN
|
||||
For instance, Lib and Include
|
||||
What we want to do is, mostly I don't know where to bin, see what's the side of it
|
||||
You can see that all the standard development tools are there
|
||||
R as CPP, GCC, LD, Object Copy, Object Dump, ForenLib, ReadAlpha, and so on
|
||||
Strings and Strip
|
||||
And a couple of new ones that you're not familiar with, WingDMC
|
||||
WingD Res, I'll talk about those in a bit
|
||||
So I'm mostly on over the LibDirectory
|
||||
And you see a bunch of libraries, these libraries are what you're going to be linking against
|
||||
They're not ELF archives, rather they're cough archives
|
||||
The library format that we're going to be using
|
||||
For Ming W32s is cough
|
||||
So yeah, these libraries get linked specifically with the Ming 32
|
||||
BINY TILs and GCC
|
||||
And then, mostly on over to the Include directory, these are all the inclusion files
|
||||
with definitions and whatnot for various windowy things
|
||||
Like, Windows, Windows, SX, and WinAir and so on
|
||||
So this is the complete environment here
|
||||
This is the complete make environment right here, this is everything you need
|
||||
Except for libSDL
|
||||
We want to add libSDL to this
|
||||
So I'm mostly on over to libSDL.org and go to the Download section
|
||||
You'll see the Wii Bottom
|
||||
Development Libraries, Win32
|
||||
What you want to download is STL-double-version number
|
||||
www.tarr.gz
|
||||
So go ahead and download this and uncompress it
|
||||
You'll see it creates a nice little directory for you, STL-version number
|
||||
And in it you'll see some familiar things, you'll see a slash BIN
|
||||
That's cool, you'll see a slash lib and slash include
|
||||
What you want to do is copy everything in slash BIN
|
||||
And include and lib
|
||||
BIN is not also necessary, but it helps
|
||||
To have that copy as well, just so you know where the BIN files are
|
||||
The only thing that BIN really includes is STL can big
|
||||
And we're not using STL for big, so it's not really necessary
|
||||
It does include a runtime library
|
||||
You might be familiar if you're familiar with Windows
|
||||
That DLL files, this contains STL.DLL
|
||||
Which you'll need in your runtime environment
|
||||
So again, go ahead and copy those files
|
||||
BIN, lib, and include into slash user, slash local, slash MING
|
||||
W32, BIN, info, and ink directories
|
||||
We're almost done now, what we need now is
|
||||
STL image, some was added over the STL website again
|
||||
Again, that's a lib, STL.org
|
||||
And go to libraries and search for STL image
|
||||
What you want to do is go to the website
|
||||
Which is ugly, really ugly
|
||||
And download STLimage-double-versionnumber-bc.zip
|
||||
And once you have unzip that
|
||||
You'll see that it creates
|
||||
A directory called STL underscore image-versionnumber
|
||||
In that directory, you'll see include in lib
|
||||
Which is awesome, that's the two things you want
|
||||
In lib you have a sub directory.x86
|
||||
Copy, STLimage.lib
|
||||
From that to your user slash local
|
||||
MING W32 slash lib
|
||||
And copy the include files as well
|
||||
And then your set, we have a complete make environment for MING W
|
||||
32
|
||||
So what you want to do is run it and use it
|
||||
Which is pretty straightforward
|
||||
Instead of typing GCC, you type MING W32-GCC
|
||||
And it should create a program for you
|
||||
So now that we've got a MING W32 environment
|
||||
And filing environment, I'll set up
|
||||
Actually porting
|
||||
My experience porting MING W32-GCC was actually pretty trivial
|
||||
My MING W32-GCC doesn't depend on Unix domain sockets
|
||||
Or anything that's obviously units
|
||||
It's pretty straightforward
|
||||
Just depending on STL
|
||||
Which is ported to windows
|
||||
All I really did was modify my MING file
|
||||
If you download the source from MING W32-GCC
|
||||
You'll notice that there are two MING files
|
||||
There's one you just call MING file
|
||||
And there's another one called MING file that windows
|
||||
I just pretty much changed the environment variable CC to MING W32-GCC
|
||||
And that's about it
|
||||
Including some of the libraries
|
||||
I'll let you know with the libraries we have to include
|
||||
If you want to make an STL application
|
||||
There are a few that you need to include
|
||||
First of all, you need to define MING
|
||||
And there's a variable they're called MING
|
||||
So you dash capital D main equals STL main
|
||||
And then you want to specify dash M windows
|
||||
I believe this is for architecture
|
||||
Which happens to be windows
|
||||
And then you want to link against MING W32
|
||||
The MING W32 library
|
||||
So that would be dash L MING W32
|
||||
And then the user 32 library
|
||||
The GDI32 library
|
||||
And then MM library
|
||||
The DXG UID library
|
||||
And then STL main
|
||||
STL and STL image libraries
|
||||
And so yeah
|
||||
There's a couple of things
|
||||
That this does
|
||||
It produces a mega dot EXC file
|
||||
Instead of just a mega out file
|
||||
That is directly
|
||||
You can run that on a windows computer
|
||||
I happen to
|
||||
Generate the mega dot EXC files
|
||||
And to a directory
|
||||
Called windows
|
||||
Where I have those files
|
||||
That I was talking about
|
||||
STL.DLL
|
||||
And STL image.DLL
|
||||
And look JPEG.DLL
|
||||
And that's it
|
||||
Those library files that I was talking about
|
||||
I actually get packaged with the run time
|
||||
With the actual program file
|
||||
And so windows will use those dynamic libraries
|
||||
If they're in the same directory
|
||||
And so it's good to package stuff
|
||||
With those libraries
|
||||
You don't necessarily have to
|
||||
You can hope that people have the libraries
|
||||
But chances are they don't
|
||||
So it's good to package those things
|
||||
With the binary
|
||||
The couple of things
|
||||
I had to look out for was
|
||||
There is no real path
|
||||
On windows
|
||||
Real path being a
|
||||
Particularly library call
|
||||
That's converts a path
|
||||
Like
|
||||
Slash mega
|
||||
Slash dot
|
||||
Slash cons
|
||||
To plain old slash cons
|
||||
And so I had to replace that
|
||||
And that's about it
|
||||
I had to modify my
|
||||
Loader to deal with the
|
||||
Slashes that go the other way
|
||||
And that's it
|
||||
Like there wasn't really much to
|
||||
Deporting this
|
||||
So you notice that there's mega
|
||||
That Ico in the mega happy
|
||||
Sprite service code file
|
||||
That happens to be the actual icon file
|
||||
You can save that with begin
|
||||
Begin below and save those files
|
||||
And then what you need to do
|
||||
Is edit mega rc
|
||||
And have the
|
||||
ID icon mega dot Ico
|
||||
In there to identify
|
||||
That there is an icon
|
||||
In the red script
|
||||
After that you want to run
|
||||
Ming W32 dash
|
||||
Wind res, wind res
|
||||
To generate a res
|
||||
Cop file
|
||||
You do that with these arguments
|
||||
Wind res, mega dot RC
|
||||
Dash O
|
||||
Cop
|
||||
Dash of a lowercase O
|
||||
That was a capital O before
|
||||
Mega dot res
|
||||
And then you can link against mega dot res
|
||||
As you would a regular object file
|
||||
And that includes your
|
||||
Your icon
|
||||
And let's see here
|
||||
What else
|
||||
What else
|
||||
I believe that's it
|
||||
So the hard part was getting the
|
||||
Make environment all set up
|
||||
The easy part was actually
|
||||
Parting it
|
||||
So I hope you guys have fun
|
||||
Parting the programs to windows
|
||||
What are you crazy people
|
||||
On Linux we don't want to
|
||||
Deal with windows
|
||||
But you know some people do
|
||||
And some people don't
|
||||
So it's not for everyone
|
||||
Just if you want to have your windows
|
||||
Program to working on windows
|
||||
You can definitely do it
|
||||
In a Unix environment
|
||||
So take care everyone
|
||||
And happy hacking
|
||||
Bye bye
|
||||
You have been listening to HackerPublic Radio
|
||||
At HackerPublicRadio.org
|
||||
We are a community podcast network
|
||||
The releases shows every week day
|
||||
On day through Friday
|
||||
Today's show, like all our shows
|
||||
Was contributed by a HPR listener
|
||||
Like yourself
|
||||
If you ever consider recording a podcast
|
||||
Then visit our website to find out
|
||||
How easy it really is
|
||||
HackerPublic Radio was founded
|
||||
By the digital dog pound
|
||||
And the infonomicum computer cloud
|
||||
HPR is funded by the binary revolution
|
||||
At binref.com
|
||||
All binref projects
|
||||
Are proudly sponsored by luna pages
|
||||
From shared hosting
|
||||
To custom private clouds
|
||||
Go to luna pages.com
|
||||
For all your hosting needs
|
||||
Unless otherwise stasis
|
||||
Today's show is released on the
|
||||
Creative Commons
|
||||
Attribution
|
||||
Share a line
|
||||
www.HackerPublic Radio
|
||||
Reference in New Issue
Block a user