Posted on
March 31, 2009.

Fixed 3d GPU support for EmuFox, but it’s not yet full done (I’m working on redoing 3d rendering system, so it finnaly properly supports lighting and projection).
The old 3d system had a problem with flushing vector data, and a problem with calculating lighting. I’m gonna fix this in new 3d system.
The problem with flushing – it didn’t accept vector data properly if you transferred more than 1 triangle per opcode, I fixed this already. The problem with calculating lighting – it seemed to use pretty much random normal when doing that (it’s a luck it resulted in moderately correct lighting).
There was a bug which actually made it stop drawing everything at all, for no reason (thats gonna be fixed too in an update I’m gonna make soon)
Posted on
March 30, 2009.
Here is the full list of API functions (somewhere around 80 functions!). These can (and should be) used by all games/applications running on BlackFOX architecture.
BIOS routines
32 BIOS_Version()
33 BIOS_SetVideoMode(videomode,datastart,dataend)
34 BIOS_SetGPUState(state)
35 BIOS_Delay(seconds)
36 BIOS_Idle()
37 BIOS_Unlock(unlockptr)
38 BIOS_LoadBlock(name,blockptr)
39 BIOS_SaveBlock(name,blockptr)
ACPI control
40 ACPI_Restart
41 ACPI_TurnOff
42 ACPI_SetLED1(R,G,B)
43 ACPI_SetLED2(R,G,B)
44 ACPI_SetCPU1(state)
45 ACPI_ResetCPU1()
46 ACPI_SetCPU0Speed(speed)
47 ACPI_SetCPU1Speed(speed)
48 ACPI_SetWIFIAutoScan(state)
Continue reading ‘BlackFOX API (final version)’
Posted on
March 29, 2009.
More laser stuff. Here is the refraction inside glass:

Here is the interference of laser beam when it passes very close to edge of some flat object. The beam is fairly big because it’s focused that way:

Posted on
March 28, 2009.
It only took 2 years to add “##include##” macro to ZASM – local clientside file inclusion. Well I added it, and it’s also supported by EmuFox now (SVN version).
I used this to divide BlackFOX bios into separate parts – and I moved out WireFI and GPU driver into separate file. They are not dependant on BlackFOX architecture or anything, so you can use these drivers in other ZASM programs!
The API got updated, and the FoxBIOS is now 62KB in total (7200 fbytes compiled).
Posted on
March 27, 2009.
My laser arrived few days ago. Here is a demonstration I made, from some plastic (half-transparent plastic lid), and a HDD (works good as a mirror).

It’s very powerful, it reaches as far as 1km (couldn’t test further, I got no buildings that far from me). Here is the photo with low exposure time, you can see the beam clearly in the night.

Posted on
March 26, 2009.
A new game I’m writing for BlackFOX. It is a replica of Pump It Up! arcade machine, in a tiny cartridge (plus a huge dance pad).

The dance pad is based on players sensors, it has no moving parts, and therefore you get no physics shaking when moving on it (especially in multiplayer). It uses standard BlackFOX controller interface, and links wirelessly to console.
The game itself is still work in progress, but it uses some nifty rendering methods to draw blurred stuff on GPU.

Arrows are fully working now, and are loaded from CPU (there is no input right now, only autoplay):

This game is time-synchronized with HL2 songs (and possibly more if I get to do it). Right now synchronization is automatic, and it looks like this (it’s not very precise with beats.. but it gives good timing):

As you can see I’m using EmuFox to develop it, and it works same way in-game. I’ll release source code along with new version of EmuFox (with debugging), and new version of BlackFOX console (and BIOS source code, it is pretty huge right now).
Posted on
March 25, 2009.
New version of OMFGNotepad! This version includes support for debugging programs with conjunction with EmuFox emulator (Wiremod ZCPU).Download:
http://users.d2k5.com/Black%20Phoenix/files/OMFGNotepad.3.1.rar

Debugging features:
- Step by step execution
- Pausing CPU execution at any time
- View complete CPU state (registers only for now)
- Breakpoints (setable in source code by special EmuFox-only opcode)
- Supports loading map file for any source code
- Properly debugs even if code moves within memory
Posted on
March 24, 2009.
I’ve been working on BlackFOX, for fun. It’s now almost ready to release (first version at least). I fixed a lot of bugs, and added some new features, expanding BIOS functions to a real lot of useful routines.

I also updated VectorBall (it now supports two-player game on one screen).
These are the changes:
- Increased BIOS size to 16384 bytes
- You can skip cartridge loading by holding B when console boots
- Extended interrupt set (added new routines, renamed old ones, and added FoxFX rendering subsystem routines)
- Fixed videomode selection
- Fixed bugs when restoring from program back to BIOS
- Fixed menu jerking a bit when navigating around
- Fox facts screen is now scrollable
- BlackFOX now displays unknown WireFI devices, or generic radio devices which it found
- Fixed Console-to-Network and Network-to-Console data transferring in ACPIBIOS
Also fun thing, I found some old Saturn Emerald BIOS which I never fully tested, and tried to run it. After some changes (it required more advanced platform) it booted, but logo was a bit screwed, and it hangs after showing the logo (fun).
