The Lameguy64 website is back online!
Posted December 3, 2019 12:07AM MST
Thanks to my Internet provider at home (PLDT) just recently implemented a shitty forced NAT infrastructure I could no longer host my own web server as global IP addresses provided by the ISP are no longer public, so nothing from the outside world can connect to my router whatsoever and this explains why my website suddenly became inaccessible to everyone last week... No. I did not pull a nekochan. What a way to start Christmas eve for me.
This was absolutely devastating to me after finding out about it as I was planning to do more with my setup in the future. But thanks to my ISP's changes it has been made impossible for me, or it would cost me a lot just to be able to get a real public IP which is not really worth doing as the whole point of being able to host shit all by myself was being able to do it 100% free of charge with virtually no rules or limits aside from bandwidth and the monthly Internet bill.
Fortunately, Raion/Kazuo Omura of IRIX Network offered to host my website with zero strings attached on his servers and are most likely REAL servers and not some cheap SBC with a external USB hard drive acting as a server. I decided to take the offer as its pretty much the most practical way for me to get my website online again. Took me a day to migrate and configure stuff to get my site running again and Lameguy64 is now back online! Possibly with better download speeds especially if you live in the US.
I'll miss hosting my own stuff with my humble little makeshift server comprised of a Raspberry Pi Model B and a 500GB external USB hard drive. It was quite novel running your own server despite the annoyances of having to update the domain name whenever a power outage occurs or the global IP changes. At least my website and most of the stuff is back online including the SVN repositories and down times would be less frequent now as the IP of the host is permanent and I don't have to worry about power outages. It'll take a day or two for me to get the FTP back up as of the posting of this message.
PSn00bSDK: libpsxcd is out!
Posted November 25, 2019 8:21PM MST
As of November 22, 2019, a new library for PSn00bSDK has been released that adds the long awaited CD-ROM support to the SDK aside from using the limited BIOS CD-ROM subsystem. libpsxcd supports pretty much all useful CD-ROM features such as asynchronous data reading, CD audio and XA audio playback. The library also expands upon the official libcd in that libpsxcd can query directories with more than 30 files and discs with very large directory structures. Though it does not support Rock Ridge or Joliet extensions for things like long file names. not that they're really needed for PS1 homebrew games really.
Data streaming should also be possible but you'll have to develop your own streaming data container and write your own streaming and ring buffer routines as PSn00bSDK does not have yet an equivalent to the STR streaming data format. Data streaming won't be very useful at the moment anyway as support for MDEC has not yet been implemented so FMVs are not possible yet, unless you want to do fancy tricks like reading data while XA audio is playing.
I believe this is a huge enough update to warrant taking a break on PSn00bSDK for awhile. I wanted to give more time on other useful projects such as a TIM manager/editor that's more powerful than TIMTOOL to complement the PSn00bSDK development suite and is very much needed for larger homebrew projects. I also wanted to resume development on Scarlet Engine but for PSn00bSDK.
PSn00bSDK: Non-BIOS CD-ROM library in the works
Posted November 17, 2019 8:02PM MST
As stated in one of my ramblings in my HD CRT video, I've been working on the long awaited CD-ROM library for PSn00bSDK (libpsxcd) in the last week or so. I got CD IRQ handling and command processing down pat that I can reliably query and play CD audio tracks in a manner very similar to how you play CD audio tracks in the official SDK. CD-XA audio should also be working if CD-DA is working, but I haven't tested it yet since I don't have ISO file system stuff for locating CD-XA tracks working at the moment. I don't see how it wouldn't work if I can play CD-DA.
Yesterday, I've tested and confirmed my CD data read routines work on real hardware and I just need to polish things up before I start working on the ISO file system stuff which shouldn't be too difficult for me as I've worked with that extensively before with MKPSXISO. Once that's implemented libpsxcd will be golden.
That's the ISO descriptor of Twisted Metal 3 read using CD reading functions in the work in progress libpsxcd library. Data streaming with XA audio should be possible with libpsxcd as the library provides the necessary callbacks and functions for dealing with incoming data sectors, though you'll have to devise your own streaming data format as I haven't devised one for PSn00bSDK yet since priority is more on being able to read files and playing CD-DA and XA tracks. FMVs won't be possible for awhile until I get MDEC stuff implemented.
Added PSn00bDEBUG page
Posted October 20, 2019 10:14PM MST
I've just added a new page dedicated to another impressive project of mine that came before PSn00bSDK; PSn00bDEBUG
As far as I'm aware of, it is the only 100% open source PS1 debugger that works with real hardware featuring a bunch of useful debugging facilities. While it is nowhere near as powerful as the official debuggers that only work on official development systems, it is a very usable debugger for tracking down crashes. This debugger has become so useful to me that it basically rendered my DTL-H2000 obsolete as I've not used that to debug my programs in a very long time, plus the debugging tools for it do not support binaries produced by my SDK unless I write a converter that converts ELF to CPE and SYM files.
Anyway, that's all for this news more or less. You can read more details about the debugger on the page itself.
Oh... And I'm not dead. Things are just going slow as of late for me.
Got new hardware: Toshiba Libretto ff 1100v
Posted August 18, 2019 9:14AM MST
Last week, I got a new piece of hardware from 1999 to early 2000s, a Toshiba Libretto ff 1100v.
Its a sub-notebook (or netbook) from Toshiba's Libretto line of very small (for its time) laptops, most known for packing a complete multimedia hardware setup (sans a CD-ROM drive) and a fairly beefy CPU for its time (a full fat Pentium MMX) in such a tiny package. This particular Libretto model was only sold in Japan.
I bought this laptop for just 200php (roughly around $4) from some local surplus store and is by far the smallest vintage laptop in my possession. It didn't come with a charger so I had to use some pin header connectors with the plastic removed, so I can stick it into the charger pins of the laptop. Conveniently, the polarities are labelled.
I've also gone through the trouble of attempting to rebuild the battery, as I would like it to be able to run off batteries again. The rebuild process involves replacing the cells in a parallel manner so the smartass controller in the battery pack won't loose power, otherwise the battery would probably brick itself and render it useless.
(that is my character on the wallpaper btw, art commissioned off of murnintheair)
...And it now holds a charge!
Unfortunately, it doesn't last very long on battery despite charging up to 75%. I believe its due to the first two cells on the right not holding much of a charge anymore, as they were salvaged from a failed attempt at fixing a cheap RC helicopter last year and both cells ended up leaking (the first one on the right had it worse). This was mostly a test anyway and I'll be replacing the old ones with brand new cells, as well as tidying up the wiring so I can put the cover back on.
Expect a dumb video of this laptop to be made soon, but I want to do a video of this thing first, to make fun of people spending hundreds on expensive upscaler hardware for their fancy new 4K TV:
Things have been going pretty slow lately due to life and shit getting in the way as per usual...
PSn00bSDK: Now has C++ support!
Posted July 17, 2019 9:58PM MST
I've published a commit on PSn00bSDK yesterday that adds C++ support to my SDK finally. As mentioned numerous times in the SDK documents, only basic C++ is supported such as classes and the ability to dynamically create and delete class objects. I do not plan to implement full C++ support as it would be too bloated for my standards. Remember, the PS1 only has 2MB of RAM.
I've also added a new example program that demonstrates a first person perspective camera with six degrees of movement using fixed point integer math. The example also includes a look-at implementation and dealing with analog controller input, which should solve most PS1 programming questions in just a single example program.
I'm probably not going to work on the PSn00bSDK project for awhile after this though as I'm starting to feel a little tired working on this project and I wanted to take a break from it and focus on other things for awhile. Not that I'm calling quits on this project, I just wanted to focus on something else in the meantime, particularly making new videos and maybe some art stuff, and maybe resuming work on Scarlet Engine.
New page added to my PS1 tutorial series
Posted July 7, 2019 5:43AM MST
Just added a new page to my PS1 programming tutorial series that covers basic graphics programming, something that I believe hasn't been explained in tutorials before considering many tutorials usually jump straight into using libgs instead of being more hands on with libgpu. Progress on this tutorial series has been quite slow since I tend to do a bunch of things simultaneously.
I would also like to mention a brief update regarding PSn00bSDK where I managed to get C++ support working in my SDK. The support only goes up to basic C++ such as classes and being able to dynamically create and delete class objects, no standard C++ support at all especially when it'll be too bloated for PS1. I still need to do some cleaning up and further testing before I release it.
You can find the tutorial series at http://lameguy64.net/svn/pstutorials/index.html
Remember to login to the SVN as annoyingmous
. I have bizarre reasons why I don't want the 'internet default login' on my website because I'm such a weirdo.
PSn00bSDK: Global ISR and Serial I/O in the works
Posted June 14, 2019 2:16AM MST
I've been brewing a pretty juicy update for PSn00bSDK in the past few days that adds a global ISR handler (the exact kind in the official SDK) and Serial I/O support. The global ISR handler provides a very simple and very stable way of handling hardware interrupts on the PS1 and should provide great compatibility with HLE BIOS implementations in emulators like PCSXR. The global ISR would also make implementing support for hardware devices that depend on interrupts such as the CD-ROM much easier.
The global ISR is hooked to the kernel using BIOS function B(19h) (SetCustomExitFromException) which is executed past the kernel's internal IRQ handlers. To ensure that the hook is executed whenever an interrupt occurs, BIOS functions ChangeClearPad(0) (B(5Bh)) and ChangeClearRCnt(3, 0) (C(0Ah)) must be called so that VSync and timer interrupts can be processed by the hook (turns off auto acknowledge).
Among the first to utilize the global ISR handler is the shiny new Serial I/O library, which, not only provides a serial tty device that redirects printf() output to serial but also a complete Serial I/O implementation with callback support exactly like in the official SDK. Now that PSn00bSDK has complete Serial I/O support, I plan to work on porting my LITELOAD loader from the official SDK to PSn00bSDK, probably making it the first homebrew serial loader for the PS1 made with an open source SDK and the first PS1 homebrew to be ported from the official SDK to an open source SDK. The PSn00bSDK version should yield a smaller program size as PSn00bSDK is a lot more efficient than the original Sony libraries.
The update will also include a revised library reference manual that not only looks better formatting wise but also has more of the graphics library documented. It also has the Serial I/O library completely documented as well.
Estimated time of release for this update might be next week. Early access to this update in a work-in-progress state can be accessed in the self-hosted SVN found in the PSn00bSDK page on this website.
PSn00bSDK: Added controller and CD-ROM Support
Posted May 24, 2019 8:30PM MST
As of May 24, 2019, I've pushed a commit to PSn00bSDK on Github that adds controller and some CD-ROM support to the SDK using BIOS functions. The relevant functions for controllers are _InitPad(), _StartPad() and _StopPad() and _InitCd() for CD-ROM. Since pad stuff is working, BIOS memory card functions should also be working as well but I haven't tested it yet.
The _InitCd() function just merely calls the _96_init() BIOS function but it preserves the DPCR DMA settings as _96_init() would clear the settings of other channels causing graphics functions that use DMA to stop working. Files from CD can be accessed using BIOS file functions with the path name leading with cdrom:.
The commit also adds two new example programs to the SDK which includes an RGB24 image example and a Turboboot ROM firmware for cheat cartridges written entirely in assembly language.
See the PSn00bSDK page
for links to the Github repository. Details on the page will be updated soon.
Small server upgrade
Posted April 22, 2019 11:40PM MST
I just upgraded the little RPi based server that hosts this very website with a 500GB laptop hard drive which replaces the USB thumb drive as I feel spinning rust is less likely to corrupt without warning than flash memory knowing from experience. Not sure what I'm going to do with this significant increase in storage but its nice to have ready I suppose.
PSn00bSDK is now officially released
Posted April 6, 2019 12:02AM MST
What originally started as a GNU toolchain experiment turned PS1 SDK from scratch, the PSn00bSDK project has now been officially released on Github
under the MPL license. It includes everything stated in the last post including full source code of n00bDemo which was made using this SDK and has some of the most intense visuals for a demo made with an open source SDK on the PS1 to date that I'm aware of.
What drove me into creating this SDK from scratch in the first place was that I wanted to make a proof of concept that a PS1 SDK that is almost on par to the official SDK in terms of capabilities should be possible considering that extensive documentation of the hardware is readily available. This feat was demonstrated in n00bDemo which showcases extensive GPU and GTE accelerated visuals in high resolution mode which PSn00bSDK supported.
While PSn00bSDK is still a work in progress and far from being production ready, I believe this would serve as a great foundation in developing a complete replacement of the official SDK. Assuming this project garners some interest and people start contributing stuff to it eventually. I'm keeping my expectations low on this project.
A dedicated project page on this website will be created soon.
Image posting test
Posted April 5, 2019 9:33AM MST
Just testing an image upload on my news blog system... That's my stupid head btw (and no, I'm not a useless shadow person).
The release of PSn00bSDK is nigh
Posted April 4, 2019 9:42AM MST
My completely homebrewn SDK project that was used to make the small but technically impressive demo n00bdemo
is slated to be released in source form hopefully by the end of this week on Github under the MPL license. As of the making of this post the SDK has just been tested and made to compile flawlessly Linux and FreeBSD environments, though majority of the testing was conducted in a FreeBSD environment.
The release will also include source code of n00bdemo and some prototype technology of Scarlet Engine (aka. Project Scarlet) for the 3D model drawing routines. The drawing routines are rewrites of the old SMD routines I made years ago that comply to a newer SMD model data format. Though most of the new features the new SMD format includes is not implemented yet hence why they're still prototypes and I haven't worked on Scarlet in a long while. At least they'll serve as very important examples on programming with the GTE in MIPS assembly.
If things go according to plan PSn00bSDK should be released on my Github
page by Saturday or Sunday if delay causing things occur.
I implemented my very own blog style news system
Posted March 21, 2019 8:31AM MST
I've wanted to be able to easily post news and updates of my stuff so I actually spent some time developing my own blog style system from scratch using PHP and good ol' MySQL. Its a very simple system but I think its better than using some existing solution that is likely bloated as heck and my Raspberry Pi based server would likely struggle hosting it and I have full control over it as well.
I could just create a social media account on Twitter or Twatblr but I wanted to take things a step further and create my own very own blog from scratch that I host myself. The advantage of this is I can literally post whatever I want as I'm not restricted to any ToS conditions because I'm literally running the service that hosts this website which means I can pretty much do whatever the hell I want. Unless the service that hosts my domain would notice me posting explicit hentai on my page in which they'll nuke my domain, if they actually check what's being hosted on their domains.
Anyway, all site and project news will be posted through here.